ASP.NET Web Forms 转换至MVC开发

       作为.NET 阵营的网页开发人员几乎都是从ASP.NET Web Forms开始接触网页开发技术的,所在在这里主要介绍一下Web Forms与MVC的差异。

一、开发概念的转变

       MVC既不是程序设计语言也不是框架,而是一种设计模式。MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。

      Web Forms 是最古老的 ASP.NET 编程模式,是整合了 HTML、服务器控件和服务器代码的事件驱动网页。

二、数据源的改变

      (1)先习惯使用强类型

             在ASP.NET MVC.中对于数据的操作已经从ADO.NET、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

             前端                                                 @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,MVC)