具有最佳实践的示例 N 层 ASP.NET MVC3 应用程序(使用 EF 4.1)
Posted
技术标签:
【中文标题】具有最佳实践的示例 N 层 ASP.NET MVC3 应用程序(使用 EF 4.1)【英文标题】:Sample N-tier ASP.NET MVC3 application with best practices (using EF 4.1) 【发布时间】:2011-12-17 03:54:16 【问题描述】:我正在寻找一个演示最佳实践的示例 ASP.NET MVC3 N 层应用程序(首先使用领域驱动设计和实体框架 4.1 代码)。我发现了以下内容。您推荐其中哪一个(或任何其他不在此列表中的)?
http://efmvc.codeplex.com/
http://prodinner.codeplex.com/
http://www.dofactory.com/Framework/Framework.aspx(不是免费的)
【问题讨论】:
“最佳实践”在这里可能是主观的 “最佳实践”是指使用应用程序架构和设计模式、DDD、接口、依赖注入、EF 的工作单元和存储库模式以及一般的面向对象设计原则。简而言之,足以在企业应用程序中使用这些想法。 【参考方案1】:不久前我也处于同样的位置。
您链接的东西还可以,但单独使用肯定不够。
我发现这个主题缺乏免费资源,因为它相当大,需要良好的组织和广度。另一方面,只要你愿意付出一点,就有很好的资源。
这些是我使用的资源:
PluralSight - 培训视频。 (每月 30 美元,非常值得,不是附属的,而是订阅者)
以下是该主题的精彩课程:
Principles of Object Oriented Design - Steve Smith,他是一位伟大的讲师。
Design Patterns Library - 超过 10 小时的设计模式视频。无法将它们与 DotFactory 进行比较,但它们做得非常好。
Inversion of Control - 顾名思义,深入的重要话题。
还有很多关于 TDD、MVC、EF 等的东西。所有有价值的话题。
Kindle 上的书籍(我没有读过很多书,但 Kindle 确实重燃了我对书面知识的热情)
Professional Enterprise .NET
Microsoft® .NET: Architecting Applications for the Enterprise
Applying Domain-Driven Design and Patterns: With Examples in C# and .NET
【讨论】:
感谢有用的链接。虽然这本书没有直接回答我的问题(示例应用程序),但这些书对我来说应该非常有用。我以前听说过 PluralSight,但不确定培训是否值得。我现在就试一试。 看看他们的免费 MVC3 课程,它是微软官方 ASP.net MVC 网站的一部分。asp.net/mvc/pluralsight 我投资了复数视力.. 邪恶的地方【参考方案2】:您看过以下项目吗?他们还拥有可以拥有完整文档的源代码。
http://microsoftnlayerapp.codeplex.com/
http://www.nopcommerce.com
【讨论】:
MicrosoftNLayerApp 的 UI 是 Silverlight,但 commerce 是 mvc。【参考方案3】:最佳实践总是主观的。您的应用程序可能需要DI
和Interceptors
,但示例应用程序相对较小,将任何内容放入其中很可笑。不过,我还是建议你去 MVC 音乐商店。它有很好的实现和很好的示例。
http://mvcmusicstore.codeplex.com/
【讨论】:
我确实看过这个,它没有使用 DI,也没有控制器和数据库之间的抽象层等。 是的,我同意 - 它更专注于 ASP.NET MVC。我已经开始研究类似的应用程序,但它仍处于设计阶段。主要思想是实现一个简单的应用程序,如何开发企业应用程序。请注意,没有实现 UI,也没有实现任何业务逻辑。试图让架构准备好。你可以看一下代码:fame.codeplex.com.【参考方案4】:虽然这篇文章很旧,但我遇到了同样的问题,为一个好的 ntier 应用程序找到一个好的和现代的模式。在我凝视了一个小时后,我发现了 Jeffrey Palermo 的 Onion Architecture。这是一篇必读的文章。这里:jeffreypalermo.com/blog/the-onion-architecture-part-1/
通过使用本文和其他一些研究,我制作了一个使用 Entity Framework 6.0 和 Ninject Dependency Injection 3.2.0 的架构的模板(示例)
NTierCSharpExample
我这个模板:中心层是域层。然后是服务层,它是表示层和数据层之间的桥梁。 为简单起见,我使用控制台应用程序进行演示,但您可以简单地将其删除并插入新的 asp.net mvc 5 应用程序或您想要的任何其他演示应用程序。
【讨论】:
该示例可以使用更多代码,但总体而言,这是我希望在示例中看到的。【参考方案5】:这种问题很有趣,至少最近每周会出现几次。
我只能说不同项目的分层,根据我的经验和我得到的反馈,在这里检查问题和我的答案:
MVC3 and Entity Framework
RKP 这并没有完全回答您的问题,只是关于分层架构和一些关于为什么的想法(请参阅我的回答下的 cmets)。
【讨论】:
感谢您的回答,我的问题不仅仅是解决方案结构。请看我上面的评论。【参考方案6】:我基于 EF 4.1 和 MVC3 做了一个很好的模式:
MVC3 and EF architecture
祝你好运
【讨论】:
以上是关于具有最佳实践的示例 N 层 ASP.NET MVC3 应用程序(使用 EF 4.1)的主要内容,如果未能解决你的问题,请参考以下文章
asp.net mvc 开发人员的 javascript 最佳实践
使用 MEF 构建具有 n 层松散耦合的 MVC ASP.NET 应用程序