当前位置:编程学习 > asp >>

Pro ASP.Net MVC 3 Framework学习笔记之一

 

序论:asp.net mvc出现已经有两三年的时间了(2009开始1.0版本),但是这么方面的中文学习资料仍然非常少,特别是asp.net mvc3,几乎就没有中文的学习书籍。在英文的书籍中有两本是非常经典的mvc3教程:Professional ASP.NET MVC 3和Pro ASP.Net MVC 3 Framework。我正在看的是后面这本。虽然勉强能看明白点,但为了以后查阅方便,也希望能给那些跟我一样初学MVC3又不太愿意去看英文版资料的朋友一点帮助,所以将每天学习的内容记录下来,肯定会有很多欠缺的地方,还请路过的大牛们指正!

本文:目前刚看完前三章,以下是我对前三章内容的一个归纳

第一章:介绍了web开发的经历的阶段,主要是asp.net的版本发展。asp.net的出现似乎将winform的开发方式平移到了web开发,微软为我们提供了大量的服务端控件,因为大量控件的出现,为我们屏蔽了HTTP的无状态性,甚至是HTML都自动为我们生成好了。所以asp.net学习入门非常简单,但是想深入却是很困难。传统的webforms发展到现在也暴露出了很多的缺陷,asp.net mvc的出现很好的解决了。webforms的缺点大致有以下几个方面:

1.ViewState问题,导致在浏览器和服务端反复来回传递,影响页面呈现的效率

2.页面生命周期:页面生命周期的一部分:连接客户端事件和服务端事件处理代码的机制非常复杂,只有少数的开发人员能够完全掌握并去操控。

3.不能很好的分解关注点,MVC一直贯彻的思想是:约定胜于配置,分解关注点

4.对HTML操控受限,我们知道服务端控件最终也是以HTML的形式呈现,但往往不是我们认为必要的,而且不能很好的应用CSS样式。比如ID为发生变化,当然在4.0里面有了设置ID的呈现模式。

5.Leaky abstraction:直译是抽象泄漏,我不知道怎么翻译合理,我理解的意思是抽象不完全,WebForms试图在任何可能的地方隐藏HTTP和HTML的细节。当我们实现自己的逻辑时,常常容易偏离的抽象,也因此强制我们去对回发机制进行反向工程,或者是很笨拙的去实现生成我们期望的HTML。另外,所有的这些抽象会成为令组件开发人员沮丧的包袱。

6.可测试性弱

在asp.net mvc之前有了Rails,asp.net mvc不仅继承了Rails的优点,而且进行了扩充,有了更多的方便的功能。

相对于的asp.net mvc1.0和2.0在asp.net mvc3.0里面新增了一个视图引擎Razor,代码块的标记也从<% %>变成了@,新的标记符号@使得更方便写和编译,也方便了单元测试。

第二章的内容基本都是开发前的环境配置,asp.net mvc3需要我们另外安装,VS2010自带的是MVC2。

第三章是一个简单的例子,我将操作的步骤和代码分享如下:

首先,创建一个新的MVC3项目

\

选择

\

创建完以后出现了asp.net mvc3的默认的项目结构

这个时候我们运行程序,会出现404错误,因为我们这时还没有添加任何Controller,添加第一个Controller:

在mvc的架构中,处理请求的是Controllers,在asp.net mvc中,Controllers都是简单的C#类(通常继承了System.Web.Mvc.Controller基类),在Controllers中每一个public Method称为Action Method,这意味着你可以通过URL来调用它。MVC约定:将所有的controllers放在一个名字为Controllers的文件夹下(MVC处处体现着约定胜于配置),当我创建mvc项目时,开发环境已经自动为我们生成好了。

添加Controller,如下图所示:

\

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,