.net web开发有WEBFORM、MVC、EF等来开发,它们各有啥优点和缺点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net web开发有WEBFORM、MVC、EF等来开发,它们各有啥优点和缺点?相关的知识,希望对你有一定的参考价值。

参考技术A

asp.net Web Forms 

优点:最重要的一点解决方案多,经验丰富,什么需求基本都能找到解决方法。没有什么比服务器端控件再好用的东西了。数据绑定控件(gridview,formview),数据原(objectdatasource,sqldatasource,linqdatasouce),有了这些控件开发业务系统觉得没有比用web forms更好,更快的技术了 提供的服务多,到asp.net2.0 .net framework就提供很多非常好的服务,profile,membership,cache,Microsoft patterns & practices(企业库)UI控件,AJAX,第三支持的比较多有着很多成熟的开发模型比如微软推出petshopN层架构 。

缺点:因为使用了功能强大的服务器控件导致页面比较大,每次post,response的数据相对ajax,silverlight肯定是大的,会影响性能。

Silverlight

优点:开发富互联网应用(RIA)绝对是最合适的技术,,新版Silverlight集成GPU加速,开发3D,多媒体绝对是利器。
对于一些业务系统,做得好的,真的好看,而且好用,用户体验也很好网上可以找不少Demo
新的Silverlight开发模式MVVM虽然比较新但真的很好用,如果要做业务系统那么一定要用MVVM这个设计模式太能体现更多Silverlight开发优势(databinding 功能强大) 

缺点:掌握UI设计工具的人太少,所以做不出很酷,很炫的页面效果。
与后台交互不方便,所有交互只能是web service(WCF),虽然RIA1.0也很方便,但都是异步操作,总没有web form那么直接了当。回调来对调去的还有4.0提供了很强大的匿名方法还有Action<>这些类库。

最后我只能说要想做得好真不容易。

ASP.NET MVC 

我还没有用mvc 2,3做过项目只是最近做一些tutorial,给我的影响就是返朴归真,与后台交互回到了最原始Post,Response,类似回到ASP时代。

优点:层次清晰,Model,Controller,View ,Action,都有向导产生,非常规范,感觉就是很专业,像是搞大项目架构,不想web form那么随意。

页面展现和后台完全分开,去掉了服务器端控件,与后台交互使用JSON数据对象,所以性能上一定优于web form 还有同样强大的Route URL功能,搜索引擎优化SEO。

成熟的MVC设计模式。 

缺点:取消了服务器端控件,使得一些业务系统的输入变得更为单调,在一些也用户的互操作上大打折扣。

与后台交互虽然比Silverlight要好点,不用异步方法,但只能post,submit还是没有web form的事件机制好用。

一定要精通javascript,Jquery,Json不然UI这关真不好过。

最后对于开发业务系统最主要还是提供用户很方便输入数据,快速响应操作,对于开发人员就能很方便保存和更新数据,能很方便调用的需要数数据,调用特定的方法,并返回需要结果。能很方便的调试代码。

虽然silverlight,asp.net mvc都是在asp.net webform后出来的技术,但也没有必要就认为Silverlight,MVC就一定比传统的asp.net webform就好。其实不关什么技术都是为了解决不同的问题而产生,每项技术都有他存在的价值。

可惜很多开发人员对web form的了解还停留在asp.net 1.0的时代,很多asp.net的新特性都没有用到,还有就是拿asp.net的开发模式去开发silverlight应用。

平台演变

1.以web2.0为基础,基于互联网的B/S架构的软件。它本身也是一个软件,只不过不是最终的软件产品,而是用于二次开发的软件。

2.用于实现各类业务系统,如CRM、MIS、ERP、HIS、OA等等的开发。web开发平台本身就是一个二次开发平台,他不同于诸如eclipse等这样的开发工具,需要写大量的代码来完成各个业务模块,二次开发平台只需要设计好自己的数据结构,进行一些简单的配置、拖拉等操作就可以完成业务系统的开发。

3.能够快速的实现各种报表包括复杂的图表报表的设计制作,传统的编码式开发需要自己去编写想要的各种报表,而运用开发平台就简单多了,可以很轻松的配置出各种报表。

使用web开发平台的目的是为了实现资源共享、节约开发成本、提高开发效率、缩短开发周期。而如今的开发平台大都采用非编码的方式或者是极少编码的方式,这样正好达到了目的。有的甚至可以减少80%的代码量,可见效率会提高多少。

早期开发平台

在IE出现之前,很多人就对如何实现快速开发做了大量的研究。诸如用友、金蝶等都有自己的开发构件库,还有SAP的ABAP开发平台等等。但是ABAP开发平台太复杂,一般的程序员一下子很难用起来;而用友金蝶的开发构件库又只能自己用,无法开放出来,所以难于通用。所以说早起的开发平台的基本状况是:要么功能强大,使用复杂;要么难于通用。

随着IE的出现,这种类型的开发平台也就被迫要转向web开发平台了。但是对于以上这些开发平台的问题的研究,可以积累web开发平台的经验,避免走更多的弯路。利用web的便利性,也能独辟蹊径,一举使得web开发平台实用起来。

编码思考

当我们一次次地重复编写类似的代码时,一次次地CTRL+C、CTRL+V的时候,我们都会想,下次把它做成一个通用的公共类,省得每次都改这么多地方,或者说等有时间了做一个业务工具,直接用工具配置一下就可以,不用写代码了。久而久之,开发平台就形成了。

以上是关于.net web开发有WEBFORM、MVC、EF等来开发,它们各有啥优点和缺点?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC简单编程篇

求asp.net webform 工作的流程

Asp.net: WebForm基础上构建Mvc的方法

EF到底是什么?

Web Forms vs Web MVC

asp.net mvc+ef框架下的多条件查询