MVC与WebForm的简单的比较
ASP 强制程序员将业务逻辑和展示页放到一个文件中
WebForm 允许程序员将业务逻辑与页面展示分开到不同的文件中,并且提供强大的开发平台来写 业务逻辑代码
MVC将业务逻辑/试图/领域模型 完全分离
url和路由的差别:
WebForm中一个URL就是一个路径,对用一个具体的页面
MVC中,一个URL并不是一个路径,但是我们可以解析这个url,返回对应的view,同时我们可以控制路由的方式,以此来达到动态解析URL的目的
状态保持的区别:
WebForm用的是ViewSate,原理是将实体序列化传到前台,第二次请求的时候将其再次传回后台
MVC的实现方式是:第一次请求的时候从数据库中读取实体,将实体还有Id一起传到前台,第二次请求的时候,将Id传到后台,后台通过Id获取实体,再次传到前台
HTML的渲染的差别: 服务器端控件 和 HTMLHelper
WebForm的实现:是通过服务器端控件来生成HTML(HTML不是程序员自己写出来的)
MVC的实现:MVC希望程序员自己写出HTML,但同时也提供了Rasor/HTMLHelper来帮助程序员更方便的写出HTML
服务器端控件都是基于代码的用来生成HTML的组件,服务器端控件就是继承自特定类的一个子类,
HTMLHelper是公布出的一些扩展方法,你也可以将一些常用的标签自定义到HTMLHelper中
Partial views 代替user controls
Partial views 就像用户控件一样允许我们将View的一部分封装,在不同的中进行重用
Layouts 替代 master pages
我们可以在一个view中声明多个Layout,layout和master page 的主要区别在于layout只是对mvc管道的一个建议,我们可以在任何地方改变layout的赋值,甚至将其删除
写View的语法有多种
Razor并不是唯一的写MVC Views的方式,如果WebForm开发者还不能完全离开WebFrom的开发方式,我们可以用WebForm的语法来写Views,但是你用的只是WebForm的语法,并不是说你在用WebForm框架在做开发,我们还是用的MVC架构在进行开发。