使用MS Access作为.NET应用程序后端

时间:2010-01-05 12:34:31

标签: c# .net ms-access

我是非IT组织中唯一的.NET开发人员。我被要求使用Microsoft Access作为后端(现有数据库)开发.NET应用程序。

我不知道从哪里开始。

由于我自己开发,在开发过程中我应该记住什么?只有单独的开发人员面临什么情况?

请在答案中包含Microsoft Access特定建议,因为这与问题密切相关。

6 个答案:

答案 0 :(得分:13)

从哪里开始?

  1. 选择开发环境(我建议使用Visual Studio 2008 Express或Professional,具体取决于预算和专业版功能的需要)
  2. 即使对于一个单独的开发人员:选择版本控制系统!!!! (Subversion只有很少的管理开销,对于一个开发人员来说很好)
  3. 选择一个.NET Framework版本(除非您的应用程序必须在Win2K上运行,否则3.5是正常的;对于Win2K使用.NET 2.0)
  4. 选择一种成熟的编程语言(C#或VB.NET,你或你老板最喜欢的)
  5. 选择GUI技术(对于单个开发人员,我建议使用WinForms,除非您要编写Web应用程序或命令行实用程序)
  6. 选择成熟的数据库访问技术(ADO.NET适用于很多方面,除非你有更高的性能要求,更好地处理旧的ADO / OleDB或DAO)
  7. 编辑:根据选择的技术使用Google查找一些条目示例,或者自己购买一本书。例如,here是使用OLE DB访问MS Access DB的C#的一个。 This Access site也是一个很好的起点。
  8. EDIT2 :熟悉“Microsoft Access”(Office应用程序)。不是因为您将像典型用户一样使用它,但您可能需要它用于管理目的。而VBA&即使您使用C#或VB.NET
  9. 进行编码,包含的SQL文档有时也会有所帮助
  10. EDIT3 :出于报告目的,请选择报告技术。这里有很多可能性,具体取决于您的需求,技能和/或预算,例如

    • 纯ASCII或CSV报告(手工编码)
    • HTML或XML报告
    • 使用Excel作为报告引擎
    • 使用Report.NET
    • 等PDF库
    • 使用Crystal Reports等第三方工具

    当您向Google提供“report generation .net”时,您会找到许多有用的链接,例如this one

  11. 最后:当你到达那里时,回到SO并提出更具体的问题。

    可能存在其他限制,具体取决于组织中已存在的代码。我会避免像F#,WPF或 Linq to Entities 这样的技术。

答案 1 :(得分:6)

你的问题太模糊了,不仅仅提供一般性建议。如果您已经开发了其他.Net应用程序,那么开发这个新应用程序的方法应该没有任何不同。

数据库注意事项:

将MS Access用作后端数据库时,唯一需要注意的事项是:

  1. 可伸缩性 - MS Access没有 规模很好,只适合 适用于少数用户 *编辑:数字取决于用户正在执行的活动类型 - 对于报告解决方案,Microsoft自己建议最多约100个并发用户 - 此white paper提供更多信息*
  2. 安全性 - MS Access不提供相同的复杂级别 您将找到的安全性 其他数据库产品(SQL Server, Oracle,MySQL)
  3. SQL语法 - 你的方式有一些细微的差别 为MS编写某些类型的查询 访问
  4. 其他限制 - MS Access不支持存储过程,因此您的所有数据访问代码都必须使用内联SQL命令(command.Type = CommandType.Text)
    1. Microsoft Access支持的最大数据库大小为2GB - 密切关注数据库的增长
  5. 设计考虑因素:

    1. 现有的MS Access数据库中是否已包含一些用户表单和代码模块?如果是这样,您可以使用这些作为您的应用程序的基础 - MS Access使用Visual Basic for Applications(VBA)作为它的编程语言,并且没有我知道的将VBA移植到VB.Net的工具/实用程序

    2. 其他地方是否存在可以帮助您设计的类似应用程序?

    3. 尽可能将数据访问代码保留在表单之外 - 尝试将数据访问代码保存在单独的类/ DLL中,以便更容易维护

      • 编辑:正如其他人所建议的那样,尽量避免在整个用户界面中分散ADO.Net连接和命令对象的实例 - 将所有数据库连接代码放在一个类/ DLL中,以便更容易修复/维护/替换。我还建议将所有SQL查询语句放在单独的类或模块中,原因相同。 *
    4. 遵循您或您之前的其他人制定的内部指南。

    5. 牢记可维护性 - 您之后可能需要进行更改。在代码中使用注释并为您的对象(表单/变量/函数名称)提供合理的名称

    6. 定期备份您的代码 - 每天将副本放在网络驱动器或USB驱动器上

答案 2 :(得分:4)

一点建议,将所有特定于Access的代码封装在单个类中。该课程至少应该能够:

  • 找到Access .mdb文件
  • 创建并打开所有OleDbConnection个对象
    • 保证关闭所有连接至关重要,因此将其用于using块是一个非常好的主意
  • (可能)构建并执行所有OleDbCommands(从消费组件中删除特定于db的逻辑 - 它们应该能够在透明地创建Connection& Command等时发出数据请求并检索结果。

答案 3 :(得分:0)

如果您已经熟悉.NET语言和MS Access,那么我的建议是从开发一个非常简单的MS Access数据库开始,编写一个连接到该数据库并执行一些基本功能的小型.NET控制台应用程序例如查询/插入/删除/更新。然后它只是一个由peice建立在这件作品之上的案例,在途中引入了GUI /单独的库(dll)等。

不幸的是,.NET Linq to SQL(ORM)不支持MS Access数据库,因此您必须从头开始构建Business Objects(并不总是坏事!)。

这是一个很好的起点MS Application with C#

答案 4 :(得分:0)

要访问Access数据库,您可以查看NHibernate吗?据我所知supports Microsoft Access并使用像这样的库可能会使事情变得更容易,如果你以后要将数据移动到其他类型的数据库。

答案 5 :(得分:0)

这里有很多好的建议,我要添加的是确保构建所有数据访问并修改定义良好的接口后面的类。我相信这个应用程序会增加MS Access,并且具有良好定义的接口将使得升级到另一个数据库变得更容易。