我需要更新(好吧,重写)一个小型VB6应用程序,它使用ADO访问JET数据库,到Visual Studio 2008中的vb.net应用程序。
我的研究表明我应该使用LINQ,但似乎无法连接到JET。如果现在不推荐使用JET,我应该使用什么?或者我应该在没有LINQ的情况下使用ADO.NET吗?
请不要回答SQL Server! - 这需要是最终用户可以在企业或非企业环境中轻松安装的应用程序,并且不得要求任何持续的技术维护。我开始安装SQL Express,但在需要至少2次系统更新时就停止了,因为这对于这个小应用来说太复杂了。
答案 0 :(得分:1)
Jet已被弃用,但有ACE(Access数据库引擎)的替代品。
然而,关于从LINQ使用它。这个question的答案有各种各样的建议,我也在某处读过,可以使用LINQ to DataSet
来做这件事。这是一篇关于它的博客文章:Querying DataSets – Introduction to LINQ to DataSet但我找不到我读到的地方的链接,有人成功使用它来访问Access数据库。
我建议,如果没有使用LINQ的明确解决方案,那么实用的方法就是坚持使用正常的ADO.Net并等待使用LINQ,直到你确定你使用的是完全支持它的数据源。
答案 1 :(得分:1)
这是一个很好的升级工具,如果您的项目包含少于10000行代码,则该工具是免费的:
http://msdn.microsoft.com/en-us/vbasic/ff793478.aspx
您应该遵循的一般方法是首先从VB6到VB.NET的干净迁移,让.NET版本与VB6完全一样,然后开始在.NET中寻找替代技术。当你有一个可用的.NET应用程序时,比在手动尝试直接从VB6代码转换为.NET中的替代方案更容易在不同技术之间进行转换。
以下是一些很好的理由首先迁移而不是手动重写:
5 myth busting reasons for choosing automatic migration vs manual rewrite
来自文章:
即使在最糟糕的情况下,您仍然需要在自动迁移阶段后重写某个应用程序,最终结果将始终是总成本和时间的一小部分。
答案 2 :(得分:0)
这些可能是有意义的:
Which O/RM tool supports Microsofts Access? http://blogs.msdn.com/b/adonet/archive/2007/01/26/querying-datasets-introduction-to-linq-to-dataset.aspx
答案 3 :(得分:0)
只需使用OleDbConnection
/ OleDbCommand
/ OleDbDataReader
个对象来模仿VB6 / ADO代码中的相同逻辑。它将以相同的方式工作,不再需要比现有应用程序更多的依赖项。