概述
asp.net mvc 学习中,第一个要理解的是 Controller 与View之间的关系。与普通的asp.net 工程不一样,浏览器中的Url访问的不再是一个个实际存在的页面,而是Controller中的一个个Action。Controller获得Http请求之后,进行处理,完毕之后将数据交换给视图来显示。
因此在IIS6与IIS5中进行部署的时候,必须要添加一个通配符的HttpHandler,否则IIS无法处理MVC的Web请求;
MVC最开始版本的视图引擎依然支持CodeBehind,居然还能放Server Control到页面中,其实这已经违背了MVC的设计初衷,所以在asp.net mvc2中将这个干掉了。
这样的设计有利有弊,好处就是输出的HTML代码更干净,摆脱了一大顿asp.net输出的额外代码,例如ViewState,很长的Control ID之类。使得输出的HTML代码Size会大大减少,使得页面在传输与显示时更为高效。当然这也是MVC模式必须做到的,Model-Controller-View分离的原则。
缺点就是没有了那些一拖一拉就能完成的服务器端控件,也没了可视化的WebForm设计器,需要完全手工的输入代码来完成视图的设计,还要自行设计数据交换及其处理细节。尤其是之前只有Aspx这一个视图引擎时,编写视图时一个很累的工作,Razor的引入,使得视图的设计轻松愉快了很多。作为一个从CGI开始学习动态Web编程的人来说,纯手工的HTML代码输出倒难不倒我,反而是我最期望得到的。
在MVC中如何设计整个系统,例如说数据访问、业务逻辑之类。在Asp.net官方网站上给出过几个例子。
第一个版本的例子,采用的Linq To SQL作为Entity类,用于访问数据库,在此之上使用Repository模式进行封装,Repository之上定义了一个Service服务层用于处理业务逻辑。但是这个设计中,没有很好的给出Model该如何设计。
直到asp.net mvc3,我觉得才给出了一个比较好的设计,数据访问采用Entity Framework,Entity直接作为Repository,在此之上定义Service层来包含业务逻辑,视图Model作为Controller与View之间的数据传输格式。在定义Model的时候,使用Data Annotation来定义其中的属性,然后就可以很方便的使用HtmlHelper来生成表单,并且进行数据合法性验证。
最后
以上就是暴躁篮球为你收集整理的Asp.net MVC 学习心得的全部内容,希望文章能够帮你解决Asp.net MVC 学习心得所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复