关于ASP.NET MVC与ASP.NET Web Froms的问题

时间:2010-12-20 09:24:04

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

我是初级程序员,我没有得到MVC的概念!我的编码方法是将我的应用程序设计分为3层:

表示层 业务层 数据访问层

我发现对初级开发人员或至少对我来说非常实用,所以我不是真的 得到MVC的观点,因为我相信MVC只是试图将逻辑与UI分开。正确?

我很困惑你可以提出任何建议!

任何帮助都会表示赞赏......

我决定让这本书帮助我更好地了解代码设计:

http://www.amazon.com/Professional-ASP-NET-Design-Patterns-Millett/dp/0470292784/ref=sr_1_1?ie=UTF8&qid=1292836936&sr=8-1

注意:我还决定开始学习TDD。

问题: 将我的代码设计分为3层(演示文稿,dal和商业)是否符合MVC概念?

4 个答案:

答案 0 :(得分:1)

在成为经典的asp和webforms开发者超过10年之后,我对mvc来说是一个很晚的'转换'。然而,大约18个月前,我们的管理团队决定一个项目是一个很好的自包含项目来试用mvc。我的任务是管理项目。我承认我非常怀疑,因为我们有一个为webforms构建的大型组件,以及我们为webforms项目提供的“迷你框架”。

当我慢慢发现用mvc范例更接近金属时,我想到了我的惊喜,这实际上是一个更有成效的过程。很快,我甚至开始质疑是否要在其他正在启动的新项目中使用webforms或mvc。美丽的是我们的webforms项目使用了你提到的3层方法,对我们来说,很容易切换出webforms部分并将我们的BLL / DAL插入到位并在mvc项目中使用。

它的长期和短期是需要时间来加快mvc的概念,但幸运的是,那里有很多很棒的书籍和教程:

http://nerddinner.codeplex.com/

http://blog.stevensanderson.com/

http://www.amazon.com/ASP-NET-Framework-Second-Experts-Voice/dp/1430228865/ref=pd_sim_b_2

如果它是你唯一看过的那本书,我会推荐史蒂文桑德森的书。它结合了许多核心概念的非常全面的步骤,导致在作品结束时非常详细地理解“它是如何工作的”。

简而言之,没有,使用3层进行设计并非= mvc 。但是,如果您担心失去在3层方法中构建的知识和核心功能,那么您无需担心。 mvc和BLL / DAL可以很好地协同工作。从webforms转移到你失去所有以前的dpmain逻辑时会有一种恐惧 - 简而言之,他们很乐意合并/共存,并且完全有可能让团队的一部分工作在业务逻辑上,而另一部分则专门处理mvc的实现。

关于优秀的jquery集成,我将无人驾驶 - 但这是另一天的故事:)

答案 1 :(得分:0)

我建议您先观看此视频:MVC or Webforms - Choosing the Right Programming Model

如果你决定参加MVC,那么只需看看这里的所有教程:http://www.asp.net/mvc

答案 2 :(得分:0)

既然你提到了TDD,我认为这可能是获得MVC而不是Web表单的最佳理由。

MVC更适合TDD,因为它允许使用单元测试框架测试交互。我认为this book是使用MVC的TDD的良好开端

答案 3 :(得分:0)

根据您所谈论的场景,MVC几乎可以指任何事情。

在ASP.NET(而不是MVC)中,您创建的页面基本上包含逻辑和视图。当加载aspx页面时,执行“代码隐藏”(逻辑)并将数据绑定到视图以显示它。这一直在重复。

在ASP.NET MVC中,您定义控制器,而控制器又包含通常构建称为视图模型的对象的“操作”(方法)。视图模型包含视图将用于显示的数据。这在某种程度上等同于ASP.NET中的数据绑定。

ASP.NET MVC默认使用Web表单作为其视图,但这可以相对容易地更改为另一个视图引擎。

因此,要回答最后一个问题,如果要将应用程序拆分为“层”,ASP.NET MVC是一个合理的选择。如果您想要良好的可测试性,ASP.NET MVC也是一个不错的选择,因为这是旧ASP.NET的主要问题之一。