作为.NET 阵营的网页开发人员几乎都是从 Web Forms开始接触网页开发技术的,所在在这里主要介绍一下Web Forms与MVC的差异。
一、开发概念的转变
MVC既不是程序设计语言也不是框架,而是一种设计模式。MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。
Web Forms 是最古老的 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。
二、数据源的改变
(1)先习惯使用强类型
在 MVC.中对于数据的操作已经从、SQLDataSource转换为LINQ、OPM。以往对于数据的传递都直接使用一个容器(DataTable、DataSet),并使用弱类型的方式来传递,MVC建议使用强类型。弱类型虽然很方便但也缺乏约束,在开发过程中若发生常见的名称输入错误也不会有任何提示,在运行的时候才看到错误。
(2)统一数据库操作语法
LINQ(Language Integrated Query)统一查询语法,它可以统一各种主流数据库的操作语法。
SQL语法如下:
select * from Student where Name = ' demo '
LINQ 语法如下:
form d in Student where d.Name == ' demo ' select d
(3)模型绑定的变化
Web Forms中后段程序必须明确指定数据绑定(BinDing)至前端的空间,页面与程序是绑定在一起的,而MVC的模型绑定整体灵活许多。这里稍微介绍一下MVC和Web Forms的对比:
Web Froms MVC
前端 <asp:TextBox ID="tx" runat="server"/> @Html.TextBox("tx")
后台 this.Text = "Web form"; ViewBag.tx = "MVC"; //ViewData["tx"]="MVC";
(4)程序流程控制的改变
Web Forms 开发人员一开始转到MVC框架,最不习惯的就是程序流程控制这部分,以往Web Forms属于事件驱动,每一个前端操作实践都有一个后端执行事件,而MVC选择回归网页无状态的方式,在无状态的环境下取代事件的一个又一个动作(Action),经由这些Action开发人员依然可以响应用户的需求,而且变得强量化。Web Forms利用ViewState技术让网页模拟出事件,每次用户的动作都需要执行完整个的页面生命周期事件,并且用ViewState记录起来。
(5)界面生成的改变
Razor语法的引入
(6)并行开发变得可行
Web Forms因为页面和程序的相关性较高,并且会使用到视觉设计人员看不懂的控件来呈现HTML,所以程序员开发一个页面需要独立完成套版、前端程序、后端程序等工作。但在MVC中,因为页面与程序的相关性非常低,而且使用的是视觉人员也看得懂的HTML标签,所以当视觉设计人员将HTML版面做好之后开发人员不需要再将一个个的HTML标签转换为控件,不仅大幅度减少了套版的时间,而且后端程序和前端HTML可以同时进行。
如果觉得《ASP.NET Web Forms 转换至MVC开发》对你有帮助,请点赞、收藏,并留下你的观点哦!