【发布时间】:2011-01-03 06:20:05
【问题描述】:
我仍在尝试为复杂的 ASP.NET MVC Web 应用程序找出正确的架构。
我查看了很多示例代码,但到处都有不同的做法。
非常感谢您对此的看法。
另一个问题:你会使用 Linq to SQL 还是实体框架?
谢谢,
-本
【问题讨论】:
标签: .net asp.net asp.net-mvc linq-to-sql architecture
我仍在尝试为复杂的 ASP.NET MVC Web 应用程序找出正确的架构。
我查看了很多示例代码,但到处都有不同的做法。
非常感谢您对此的看法。
另一个问题:你会使用 Linq to SQL 还是实体框架?
谢谢,
-本
【问题讨论】:
标签: .net asp.net asp.net-mvc linq-to-sql architecture
查看Architecture Guide: ASP.NET MVC + N-tier + Entity Framework and Many More
如果您想使用 ASP.NET MVC,但正在努力安排事情以自信地用于您的下一个业务项目。这篇文章只适合你。本文将指导您使用 ASP.NET MVC 来构建一个小型文档管理系统。
【讨论】:
一些个人想法和经验:
- 使用 nhibernate 作为 orm,或等待 EF v4。 Tekpub.com 有很好的关于使用 NH 的教程。 L2S 和 EF 有点像黑盒子:他们做了很多事情,他们有很好的文档,但他们没有可扩展性点。如果你想插入一些新功能或改变行为,你只能用 NH 来做。 v4 中的 EF 将处于 NH 2 或 3 年前的状态。
- 浏览尽可能多的 MVC 应用程序示例。其中很多你可以在 codeplex 上找到。例如:CodeCampServer、WhoCanHelpMe、Storeddd
- 如果您正在考虑构建框架(或助手)来解决一些基础设施问题,请先用谷歌搜索;很有可能其他人比你更聪明(好吧,在我的情况下比我更聪明)已经有同样的问题,并且以框架(对象映射器,验证,消息传递......)的形式编写了一段很好的代码,或者只是写了一篇关于它的博客。
- 使用清晰的架构或 fubuMvc 可以解决大部分基础架构工作,但应用程序的其余部分取决于您的业务模型。
- TDD 将迫使您编写良好且可维护的代码。尽可能多地尝试使用 Gang of Four 设计模式和 SOLID 原则。
【讨论】:
你会使用 Linq to SQL 还是实体框架?
如果您想访问直接映射到数据库的对象模型,Linq2SQL 非常棒。例如,如果您有一个“订单”表,Linq2SQL 将创建一个“订单”对象,您可以使用它来访问数据。这通常是完全足够的。
当您想要创建可能不直接映射到数据库的对象模型时,实体框架非常有用。
【讨论】:
由于您要使用 MVC 应用程序,您可以轻松地在 Controller 层下方编写 DataAccess 层。这将使它成为一个分层应用程序。因此,这可能是您的架构需求的正确选择。
对于 LinQ-SQL 或实体框架问题,我只使用了实体框架。所以不确定 Linq to Sql 选项。但是当模式改变时,Entity Framework 会出现一些问题。当列被重命名等时,生成的 edmx 的更新不会正确发生。所以我所做的是在每次架构更改后删除并创建 edmx,您必须在那里手动更新更改。
【讨论】:
每个地方都是不同的,这就是为什么。这个问题没有万能的答案。看看其他方法,并从中获取任何你认为对你的情况有用的东西。
【讨论】: