【问题标题】:What design pattern works for you? ASP.NET with MySQL哪种设计模式适合你?带有 MySQL 的 ASP.NET
【发布时间】:2011-03-18 04:34:40
【问题描述】:

您好,这是向所有使用 ASP.NET(C#) 和 MySQL 创建 Web 应用程序的经验丰富的开发人员提出的问题。我目前正在使用 Microsoft Enterprise Library 来实现数据库工厂设计模式。

我有一个返回 DataTable 的 DAL。我有一个执行 DAL 的 BLL,它返回我的 DataObjects 的 List。 BLL 具有用于排序、限制记录和过滤器的参数。

到目前为止,您认为哪种设计模式适用于事务查询和包含多个连接(4 到 10 个表)和条件的查询。

我对当前的实现不满意,我不知道从长远来看它是否对我有用。我每次都继续创建 DataObjects -> BLL -> DAL 类。

【问题讨论】:

  • 这可能应该是一个“社区 Wiki”问题,如果它在即将关闭的人们的攻击中幸存下来。
  • 我在这里看到了一些类型的设计模式。 w3mentor.com/learn/asp-dot-net-c-sharp/c-asp-net/… 。你用过这些吗。你认为什么是可扩展且不耗时的

标签: c# asp.net mysql design-patterns data-access-layer


【解决方案1】:

对于事务性查询,我会使用lookintoUnitOfWork 模式,它可以帮助管理在可以被视为单个工作单元(通常关联直接与单笔交易)。

对于具有多个连接的查询,lookintoCommand-Query Responsibility Segregation。 CQRS 背后的一般思想是,当我们查询数据(例如,用于报告)时,我们的数据访问模式看起来与我们请求数据以修改它时非常不同。 CQRS 告诉我们要接受这种差异并对我们的访问进行不同的编码,因为每种访问的技术要求确实如此不同。

【讨论】:

  • 这是一个有趣的话题。
  • 这些模式是否可以使用 ORM 工具。这些问题让我远离使用 ORM 工具
  • 这些模式绝对使用 ORM 工具是可行的。事实上,ORM——至少是成熟的——将直接支持这些。例如,NHibernate Burrow (nhforge.org/wikis/burrow/home.aspx) 是工作单元模式的实现。通过 NHibernate ORM 和 ASP.Net 应用程序,它可以非常轻松地使用 UoW。
  • 顺便说一句,你个人用什么? ORM 工具或代码生成软件?你有一个有很多连接和查询条件的例子吗?
猜你喜欢
  • 2011-02-27
  • 1970-01-01
  • 2023-03-10
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多