正确认识WebForm与Asp.NET MVC
1.传统WebForm开发中存在的一些问题
传统的ASP.NET开发中,微软的开发团队为开发者设计了一个在可视化设计器中拖放控件,编写代码响应事件的快速开发环境。然而,它所带来的负面效应是:
由于控件封装了很多东西,开发者很难了解这背后的HTML是如何运作的
容易得到一个包含大量ViewState的页面,使得页面尺寸远远超过所需的内容,使得页面的打开速度较慢
不容易被测试
2.什么是MVC?
MVC(Model-View-Controller,模型-视图-控制器模式)是软件工程中的一种软件架构模式。它把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
3.什么是ASP.NET MVC?
ASP.NET MVC是微软的开发团队基于MVC开发的一个易于被测试的框架。它具有以下特性:
没有数据回传
没有在页面中保存视图状态
开发者可以完全掌控页面的呈现过程
易于单元测试
易于测试驱动开发
可扩展、可替换
支持WebForm中的有关特性,如:用户控件、母版页、数据绑定、本地化等
不在基于文件目录结构,而是将URL映射到控制器中
4. 为什么使用ASP.NET MVC?
易于进行单元测试
易于进行测试驱动开发
避免了WebForm中大量的ViewState导致页面文件变得臃肿
5. MVC与三层架构?
MVC是一种模式
ASP.NET MVC是一个基于MVC模式的开发框架
三层架构是一种架构
至于区别,可以严格的从概念上区分开来。
下图是MVC与三层架构的对应关系
6. MVC与Webform如何抉择?
7. 两种技术并存
ASP.NET MVC框架只是给开发者提供欧了开发web应用程序的一种选择,并不是要取代Webform
这两种技术各有优缺点,开发者需要根据实际情况,选择对应的技术
有时候,可以在同一个项目中混合使用这两种技术
8.ASP.NET MVC与Webform技术的架构图
总结:
看完本文,相信ASP.NET WebForm与ASP.NET MVC的选择相信大家应该可以做到心中有数了,我始终觉得,很多时候并不是什么技术好不好的问题,而是适合不适合不适合的问题或者能否把它用好的问题。
打个比方:如果让千里马犁地,恐怕未必能达到理想的效果,最终可能还会抱怨,什么破马,一点劲都没有。
相关文档:
通过在页上包含 LoginView 控件可以向匿名用户和登录(经过身份验证的)用户显示不同的信息。LoginView 控件包含两个模板:一个用于向匿名用户显示信息,另一个用于向登录用户显示信息。(还可以使用 RoleGroups 属性包含基于角色名称的模板。)该控件自动确定用户是否经过身份验证并呈现 ......
ScriptManager 控件管理支持 AJAX 的 ASP.NET 网页的客户端脚本。默认情况下,ScriptManager 控件会向页面注册 Microsoft AJAX Library 的脚本。这将使客户端脚本能够使用类型系统扩展并支持部分页呈现和 Web 服务调用这样的功能。
必须在页上使用 ScriptManager 控件,以启用下 ......
本教程创建使用 ASP.NET 的 AJAX 功能的基本示例应用程序。您可以了解到有关 ASP.NET 的 AJAX 功能的更多信息,将知道这些功能旨在解决哪些技术问题,以及以下介绍性文档将涉及哪些重要的 AJAX 组件:
·ASP.NET AJAX Overview
·添加 AJAX 和客户端功能
在本教程中,您将 ......
由于用的是VPS主机,不知道啥原因SESSION总是丢失,无奈换Cookies。
查一下MSDN,在ASP.NET有两个COOKIES,Response.Cookies和Request.Cookies,无论用哪个都不行,添加进去后就读取不到
后来发现通过Response.Cookies添加、Request.Cookies读取才行。下面是添加、读取、删除的代码:
//添加
HttpCookie c = ne ......
200X年12月23日的一次面试经历(共六轮),至此9-X周年之际,和各位朋友分享,希望对各位朋友有用,有些自己的答案贴出来也仅仅是抛砖引玉,希望各位朋友不吝赐教,说句老实话,面试的时候时间很紧,很难考虑最优算法。
起因是朋友推荐我去W公司应聘Senior SDE这个职位,应该算是内部推荐了,下面是招聘要求
Title: Senio ......