如此多的数据访问选项,使用什么?

时间:2010-08-22 12:14:15

标签: c# asp.net architecture data-layers

我是一名asp.net Web应用程序开发人员,我总是使用Enterprise Library DAAB和存储过程进行数据访问,具有4个单独的层(表示层,自定义类型层,业务逻辑层和数据访问层)。

我的感觉是这种方法浪费了很多时间。

我没有使用其他方式访问数据,但确定有很多方法可以节省开发时间。在搜索时我读到了这些:

  1. 数据适配器,它们使用存储过程生成整个DAL
  2. Linq与不同的flavers
  3. 实体框架
  4. 使用SQLDataSource和动态数据等数据控件
  5. 其他映射器,代码生成器和实用程序
  6. 考虑到我的开发可能快速,可扩展,可重复使用以及达到标准,我很难决定应该采用什么样的开发模式。另外,我想找到一种方法,我的代码库可以与其他技术一起使用,如silverlight,mvc框架,服务,如果我需要使用。

    请指导我并帮助。

    感谢

3 个答案:

答案 0 :(得分:4)

对于访问SQL Server等关系数据库,对象关系映射器(ORM)非常有用。在.NET领域,微软的实体框架和开源的NHibernate是流行的选择。我强烈建议尝试其中之一。

Entity Framework在Visual Studio中具有drag-n-drop样式设计器支持,而NHibernate具有更好的基于代码的配置。我建议尝试哪些选项最适合你。

来自企业库和存储过程,您很快就会发现这些工具可以轻松地创建CRUD任务,但是对于更复杂的更新和查询而言,有一些东西需要学习。

答案 1 :(得分:3)

你已经做好了练习。你进入的任何东西只会让你知道的更容易。混合,匹配,使用每个选项。没有什么会伤害到你,因为你获得的知识只会让你更有价值。

答案 2 :(得分:2)

有大量的模式可供阅读和学习(适配器,存储库,MVP等)。你必须决定哪一个适合你。听起来您已经通过将业务逻辑与UI逻辑隔离并将数据访问层划分为单独的层来适当地对应用程序进行分层。编写软件很难,但您可以更进一步为类定义基本接口层,这样您就不必反复重写相同的接口,然后您可以通过添加到可用接口来进一步扩展该接口。那会节省你一些时间。

您还可以查看使用Microsoft的MVC# frameworkASP.NET MVC framework。至于您的存储库模式,您考虑过NHibernate吗?

祝你好运。