MVC与WebForm的简单的比较
2013-12-05 21:27
183 查看
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架构在进行开发。
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架构在进行开发。
相关文章推荐
- 数据要求说明书
- 子窗体上巧用单例模式
- 【Leetcode】Merge k Sorted Lists
- 使用form里面的button跳转到其他页面
- [转载] Windows平台下配置Mysql
- Linux 下的 UltraEdit 安装及破解去掉30天限制[网摘]
- 移动开发者的自学宝典:十大在线编程学习网站
- java 调用 Oracle 存储过程
- [转载] Windows平台下安装MySQL
- 修改adb forward命令,绑定localhost,用本机ipv4地址
- STL中list学习
- IOS视图切换实现简单动画
- 字符串的完美度算法
- 堆排序之二
- Oracle view 小结片段
- 使用hibernate出现node to traverse cannot be null错误
- Android版本百度地图开发(一)——创建应用
- varchar和Nvarchar区别
- android安全开发者必看文章
- Apidemo学习 PurgeableBitmap