从MS Access应用程序迁移到.Net应用程序的优势

8

现有一个中等大小的应用程序是使用 MS-Access 开发的,目前只有 15 个用户使用。我们现在陷入了困境,不知道是要废弃这个现有的 MS-Access 应用程序,还是开发相同功能的 .Net 应用程序(可以是 Windows 或 Web)。 由于这不是一个庞大的应用程序,将功能移植到 .Net 应用程序中是否有积极作用呢?比较两者(.Net VS MS-Access)- 在性能、安全性等方面进行比较,并阐述开发 .Net 应用程序的优势也会对我有所帮助。


这是一种通常会引起更多争议而不是解决问题的类型,但你非常幸运,在这里得到了三个非常高质量和经过深思熟虑的答案。 - David-W-Fenton
3个回答

14

我认为将“.NET”和“MS-Access”进行一般性的比较是没有意义的。当然,您可以将当前应用程序与预期迁移应用程序的功能/性能/安全等方面进行比较,但需要了解更多关于应用程序细节以及如何设计“.NET”版本的信息。

如果您正在寻找理由来证明迁移的努力是值得的,您应该问自己以下问题:

  • 是否有人在您当前的应用程序中缺少功能,而使用Access前端不能轻松开发?这将是改变到.NET的一个很好的理由。
  • 谁会在未来进行维护?只有一点VBA经验的C#程序员还是完全没有或只有一点C#知识的有经验的Access程序员?或者您完全可以自由选择任何类型的维护开发人员,所以这没有区别?
  • 您的Access应用程序是否被困在特定的MS-Office版本中?或者它是否可以轻松地迁移到新版本?摆脱特定Office平台可能是更改开发平台的一个很好的理由。
  • 关于您的后端呢?您对此是否满意(即使前端转移到.NET,您仍然可以将Access作为后端),或者您需要一个真正的客户端服务器数据库(在大多数情况下,您可以将Access应用程序作为其前端使用,这比完全迁移到.NET更容易)?像MS-SQL服务器这样的CS数据库允许您拥有更多的同时用户,并具有改进的安全模型(当然需要管理开销),但实际上并没有给出您不能将Access作为前端的理由。
  • 在您当前的应用程序中,使用了多少“RAD”功能(例如,使访问表单自动切换到类似表格的模式,或者报告功能)。对于其中一些功能,在.NET框架中没有现成的解决方案,您必须以不同的方式或使用第三方工具来解决。另一方面,这也是继续使用Access的一个很好的理由。

编辑:这是Joel Spolsky的一篇10多年前的文章。

http://www.joelonsoftware.com/articles/fog0000000069.html

这篇文章与该主题有关。了解他对于放弃现有应用程序并重新开始的看法。


1
第4点中没有提到的一件事是,基于服务器的后端(如SQL Server)给您更多选项和灵活性,如果您可能需要远程访问的话(例如Web应用程序、手机应用程序或仅仅在笔记本电脑上远程使用应用程序)。非常好的文章! - HK1
1
这篇文章真的很棒。如果可以的话,我会给它加上 +10 的评分,因为它确实做到了完美无缺。我特别喜欢 Spolsky 的引用,因为每当客户提出这个问题时,我总是会引用这个例子。 - David-W-Fenton

3

如果您的应用程序主要是一个工具,用于查看和编辑与表格布局紧密耦合的简单表格中的数据记录,并且在整个过程中几乎不需要计算逻辑,则MS Access似乎是一个很好的选择。

我刚刚完成了对一个包含约2000行VBA代码、10个表单、50个表和80个查询的MS Access应用程序的重新实现,将其转换成了Java,因为它包含了许多与数据库无关的计算和I/O操作。Java应用程序使用约18000行代码实现了相同的目标。整合所有不同的数据库所需的努力是相当可观的。使用C#或其他.NET技术可能会略有改善,但并不显著。

这完全取决于您的Access应用程序的设计目的。


2

与其将 .net 与 Access 进行比较,我认为您真正需要比较的是在 Access 中存储数据和在 SQL Server 中存储数据。

请记住以下所有组合都是有效的:

  1. 数据和前端在 Access 中
  2. 数据存储在 Access 中,前端使用 .net 编写
  3. 数据存储在 SQL Server 中,前端在 Access 中
  4. 数据存储在 SQL Server 中,前端使用 .net 编写

一般来说,如果您的数据库和用户数量正在增长,但前端的复杂性并没有增加,我建议选择选项3。如果数据和复杂性都在增长,可能值得全面升级到一个访问 SQL Server 的 Windows/Web .net 应用程序,并进行完全重写。这将需要更多的专业技能和潜在的开发时间,但会带来无法衡量的灵活性和更多的调整性能的选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接