【问题标题】:so many data access options, what to use?这么多数据访问选项,用什么?
【发布时间】:2011-04-02 06:28:06
【问题描述】:

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

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

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

  1. 使用存储过程生成整个 DAL 的数据适配器
  2. 具有不同风味的 Linq
  3. 实体框架
  4. 使用 SQLDataSource 和动态数据等数据控件
  5. 其他映射器、代码生成器和实用程序

考虑到我的开发可能是快速的、可扩展的、可重用的并且符合标准,我在决定我应该采用哪种开发模式时感到困惑。此外,如果我需要使用其他技术,例如 silverlight、mvc 框架、服务,我还想寻求一种方法。

请指导我并提供帮助。

谢谢

【问题讨论】:

  • MS 总是有一种“最新最好的”数据访问技术。令人困惑。

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


【解决方案1】:

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

Entity Framework 在 Visual Studio 中具有拖放式设计器支持,而 NHibernate 具有更好的基于代码的配置。我建议您尝试这些选项中的哪一个听起来最适合您。

来自企业库和存储过程,您会很快发现这些工具使 CRUD 任务变得多么容易,但是对于更复杂的更新和查询来说,还有一点需要学习。

【讨论】:

  • +1 - 我同意。要记住的关键是每个选项都适合不同的场景。要记住的另一件事是,如果您使用接口分离了 BL 和 DAL,则可以更改具体的 DAL 实现;因此,如果您一开始选择了 ORM 工具,但随后需要添加(或替换)它,它不会影响应用程序的 est。另一个优势是您可以提供多种数据源选项,从而拓宽您的市场。
【解决方案2】:

您已经通过良好的实践来做事。你搬进去的任何东西只会让你知道的事情变得更容易。混合、匹配、使用每个选项。没有什么会伤害你,因为你获得的知识只会让你更有价值。

【讨论】:

    【解决方案3】:

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

    您也可以使用 Microsoft 的 MVC# frameworkASP.NET MVC framework。至于您的存储库模式,您是否考虑过NHibernate

    祝你好运。

    【讨论】:

    • 感谢您回复 0A0D,您的想法看起来不错,但您能否解释一下“您可以更进一步,为您的类定义基本接口层,这样您就不必重写相同的接口了结束,然后您可以通过添加可用接口来进一步扩展该接口。这将为您节省一些时间。谢谢
    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多