2010-12-20 22 views
2

我是一名初级程序员,我没有得到MVC的概念!我的编码方法分隔条件我的应用程序设计分为3层:关于ASP.NET MVC与ASP.NET Web Froms的问题

表示层 业务层 数据访问层

我觉得很实用的一个初级开发者,或者至少给我,所以我真的不 得到了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概念?

+1

你的问题是什么? – 2010-12-20 09:25:08

+0

已添加................ – user311509 2010-12-20 09:29:14

+1

您的问题的答案 - 没有。 – RPM1984 2010-12-20 09:38:03

回答

1

我已经是一个非常晚的“转换”mvc,既是一个经典的asp和webforms开发超过10年。然而,大约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集成进行无人机 - 但这是另一天的故事:)

0

既然你提到TDD,我认为这可能是去MVC而不是web表单的最好理由。

MVC更适合于TDD,因为它允许交互使用单元测试框架进行测试。我认为this book对于使用MVC的TDD是一个很好的开始

0

根据您所谈论的情况,MVC几乎可以表示任何事情。

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

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

默认情况下,ASP.NET MVC为其视图使用了Web窗体,但这可以相对轻松地更改为其他视图引擎。

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