ASP.NET MVC2(Visual Studio.NET 2010)学习之路(一)

在Web开发中,MVC模式已经不再陌生了。可能,有些初学者对MVC模式还不是很清楚,我就先简单说一下,说的不准确的,还请大家指出来01

所谓MVC,就是指 模型(Model)、视图(View)、控制器(Controller) 这3层。通过这种模式,使页面的显示和数据相互隔离开来,且开发更灵活。在以前的ASP.NET 开发过程中,都是一个页面 XXX.aspx对应一个XXX.aspx.cs的类文件。假设使用了一张表Table1,而且这个网站中有N多个页面涉及到显示这张表中的数据。一旦有一天,增加了一个字段,或者要求还要关联另一张表Table2,那么你该怎么做?你就要为每个页面显示,都要一个个改过去,工作量暂且不说,漏改一个也是个问题。MVC模式,就能很好的解决这个问题。如果是Model改变,那么只要改这个Model;如果改变了数据存取方式,那么只改变Controller,因为这2层的类,相对View来说要少很多。当然,如果页面本身很简单,项目不是很大的话,采用这种模式的一个弊端,就是要为每个业务对象,创建Model层和Controller,可能会增加工作量。不过对于集成很好的开发环境而言,已经不算什么问题了。14

ASP.NET MVC的第一版我没用过(28),不过通过网查询大概了解了点。原来的版本中,对于这3层,都必须实现预定义的类:View、Model、Controller。对于视图和控制器而言,无法自定义基类,倒也无所谓,因为这2层,没有必要使用继承,因为他们的职责,主要还是类的使用者。View使用Controller提供的数据;Controller读取View中数据提交给Model处理,或从Model中获取数据,返回给View。但Model层就不一样了。

在解释之前,先提提Model,怕有人误解。在现在的可知范围内,Model其实有2个概念:1、用于对象关系模型映射的(O/R模型);2、代表一个业务对象。在MVC模型中,Model就是指一个业务对象。当然,你非要用一个表示O/R模型的Model也不是不可以,只要使用的视图不复杂。譬如,使用LINQ To SQL的映射类,直接作为View使用的Model,后边我会提到。

把话题重新转移过来,其实前边也已经带过来了,因为业务的复杂性,可能要求Model需要自定义继承,而在C#语言中是不支持多继承,所以,在MVC2中解决了这个问题。当然,在MVC2中加了一些新功能,主要是为了解决MVC第一版中的不足。在第二版中还引入了 区域(Area) 的概念,主要是解决了大型项目中,对目录结构很讲究的情况。譬如,可以将系统的某个模块作为Area单独出来,这样,在日后维护中,我只要看这个Area就可以了(里面有单独的MVC3层)。

在下一篇中,我会用代码来演示一下增、删、改、查的页面开发。(自己刚刚写了一个演示的项目)

原文地址:https://www.cnblogs.com/Berkaroad/p/1761885.html