使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?)

2024-05-13

我避免在 .net arch/n 层架构上编写看起来像是另一个线程的内容,但请耐心等待。

希望我和其他人一样,在选择用于企业应用程序的架构时,考虑到当今的趋势和新兴技术,仍然没有 100% 满意或不清楚应采取的最佳方法。

我想我正在寻求大众社区对方向和架构实施的意见you在利用当今 .NET 技术的大部分方面构建企业应用程序时会选择什么以及您将采取什么方向。我最好谈谈我和我的问题,否则的话就太含糊了;我想改进我的架构来改进,并且非常想听听你们对我即将编写的技术列表的看法。

欢迎您建议的任何和所有最佳实践和架构模式,如果您之前已经为类似类型的设置创建了解决方案,那么您可能遇到或克服的任何陷阱或警告。

这是我最新项目中采用的技术列表,是的,除了 WPF 之外几乎所有技术:)

  • 智能客户端(WinForms)
  • WCF
    • 由智能客户端使用
  • ASP.NET MVC
    • 管理工具
    • 客户端工具
  • LINQ to SQL
    • 由 WCF 使用
    • 使用 ASP.NET MVC
  • 微软 SQL Server 2008

需要考虑的实用程序和其他组件:

  • 依赖注入 - StructureMap
  • 异常管理 - 自定义
  • 单元测试-MBUnit

我目前正在 n 层拱门中运行它。采用服务为本利用请求/响应(不确定它的正式名称)和存储库模式的设计模式,我的大部分结构都是采用的罗布·康纳利的店面 http://blog.wekeroad.com/mvc-storefront/.

我想我对我的大部分级别都或多或少感到满意(实际上只是 DAL,我对此有点不安)。

在结束之前,这些是我当前架构面临的真正问题:

  • 鉴于使用 LINQ to SQL,我是否应该拥有自定义数据访问层,我有一个很大的问号。我应该直接在服务/业务层中还是在存储库方法的 DAL 中执行 LINQ to SQL?您是否应该在每个存储库方法调用(使用 using())中创建数据库上下文的新实例?或者在类构造函数中/通过 DI 之一?

  • 您相信我们在使用 LINQ to SQL 时可以真正使用 POCO(普通旧 CLR 对象)吗?当我遇到问题时,我很乐意看到一些示例,并且它对于 WCF 工作特别方便,因为我显然无法通过网络传输 L2S 对象。

  • 创建一个 ASP.NET MVC 项目本身非常清楚地显示了您应该采用的设计模式,通过在视图中保留视图逻辑、调用服务/业务方法的控制器,当然还有模型中的数据访问,但是您会放弃“模型”吗?对于大型项目,特别是共享数据访问的情况,您会采取什么方法来获取数据?

感谢您聆听我的发言,并希望看到有关架构的示例代码库及其拆分方式。正如我所说的,我已经看过 Storefront,我还没有真正浏览过 Oxite,但只是认为这对我自己和每个人都有好处。

在 DAL 要点中添加了附加问题。 / 15:42 GMT+10


回答您的问题:

  • 我应该直接在服务/业务层中还是在存储库方法的 DAL 中执行 LINQ to SQL?具体而言,仅当您的数据库与业务对象一对一映射时,LINQ to SQL 才有意义。在大多数企业情况下,情况并非如此,并且Entities http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx更合适。

    话虽如此,LINQ 通常非常适合直接在业务层中使用,因为 LINQ 提供程序(无论是 LINQ to SQL 还是其他)is你的达尔。 LINQ 的好处在于,它允许您在业务层中比DAL.GetBusinessEntityById(id),但是使 LINQ 和传统 DAL 代码都工作的近乎金属代码被封装在远离您的地方,具有相同的积极效果。

  • 您相信我们在使用 LINQ to SQL 时可以真正使用 POCO(普通旧 CLR 对象)吗?如果没有有关 LINQ to SQL 的 POCO 问题的更多具体信息,很难说。

  • 对于较大的项目,您会放弃“模型”方面吗一般来说,MVC 模式比 ASP.NET MVC 的表面观察所暗示的要广泛得多。根据定义,您选择用于连接到应用程序中的数据支持的任何内容都将成为您的模型。如果是利用 WCF 或 MQ 连接到企业数据云,那就这样吧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?) 的相关文章

随机推荐