具有最佳实践的示例 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】:

最佳实践总是主观的。您的应用程序可能需要DIInterceptors,但示例应用程序相对较小,将任何内容放入其中很可笑。不过,我还是建议你去 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 最佳实践

一个现代的 n 层 asp.net Web 应用程序示例?

使用 MEF 构建具有 n 层松散耦合的 MVC ASP.NET 应用程序

在 asp.net mvc 中返回错误的最佳实践是啥

具有服务层和存储库层的 ASP.NET MVC,应该在哪里定义接口?

asp.net mvc 站点的安全最佳实践?