ASP.NET MVC / ASP.NET WebForm数据访问应用程序 - 什么是最好的架构?

时间:2009-02-02 00:27:25

标签: asp.net asp.net-mvc architecture

在回复Marc Gravell发布的answer及其通过电子邮件提出的建议时,我想知道:

人们在决定新项目的架构时会做出哪些选择?


这个问题可以作为链接/想法/建议/架构决策的一个不错的参考点,在决定采用新解决方案的最佳方式时,真正感兴趣的是什么。

我目前正在开发一个ASP.NET MVC应用程序 - 主要是为了增加我对新框架的体验 - 可以使用ExtJs前端在层之间传递Json对象。

可测试性非常重要,因此我的.NET层使用接口来定义合同,并由一个服务层组成,该服务层处理数据验证和应用程序逻辑,而后者又与仅处理数据持久性和检索的存储库层交互。所有这些都让我彻底地进行了测试。

我有一个基于数据库的自定义模型层次结构,但它与任何ORM(我目前使用的是LinqToSql)工具无关,它将工具绑定到特定平台。我的存储库返回我的自定义模型而不是它们自己的数据库结构,这有望在将来允许我开发不同的存储库实现而不会出现太多问题。

这种方法的另一个原因是我正在使用遗留数据库,该数据库有一些有趣的设计选择,目前无法对结构进行太多改动,因此我希望对结果模型进行更多控制。


所有这些对你们中的某些人来说似乎完全错了,所以告诉我你的想法;)

2 个答案:

答案 0 :(得分:2)

听起来你走在正确的轨道上。就个人而言,在目前的版本中,我总是选择MVC而不是网络表格。 Web表单从底层模型中抽象得太多,我发现它通常比它的价值更麻烦。只有当您可以安全地预测您可以紧紧抓住模型时,Web表单才能处理,在开箱即用的模式下工作,并且不关心可测试性,我是否会推荐Web表单。

Web表单可能有意义的唯一其他方案是,如果您拥有一个非常根深蒂固的技术团队,并希望与现有的应用程序堆栈保持一致。即便如此,对于开发人员的成长和长期产品维护(转换后),如果你可以摆动它,我仍然会推荐MVC。

也就是说,微软可能会继续支持网络表单模型一段时间,最终这两个模型可能会变得更容易,更容易插拔或互相交换(基于我与几个人的对话) ASP.NET团队的项目经理。)

答案 1 :(得分:0)

一开始很诱人,对我来说,随着应用程序的增长,webforms变得难以管理。与mvc,关系更自然,与理想一致。