问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-21 06:56

我来回答

1个回答

热心网友 时间:2023-11-06 22:42

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的时候,我们都会想,下次把它做成一个通用的公共类,省得每次都改这么多地方,或者说等有时间了做一个业务工具,直接用工具配置一下就可以,不用写代码了。久而久之,开发平台就形成了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
螳螂捕蝉、螳螂捕蝉什么意思? 为什么电视机的声音这么小? 电视音量调到最大,为什么还是声音很小? 为什么我的电视声音很小呢? 浏览器怎么设置自动保存密码 一句话形容滕王阁序作者的感情基调、语言要有文采 滕王阁序经典名言警句,《滕王阁序》7句名言 滕王阁最经典的诗句【好句摘抄89句】 滕王阁序选一句话翻译写作文 滕王阁序中挑选一句话并附上100字左右介绍'求原创? php 怎样实现同时上传多张图片 $(&#39;xx&#39;)[0].files[0]是什么意思 jQuery的zoom插件如何设置 jQuery如何实现点击页面获得当前点击元素的id或其他信息 请问大家谁用过魅力4c丰胸啊,说一下效果怎么样啊 jquery 多图片预览 js/jquery上传图片的问题 梅艳芳是因为什么原因去世的? 用jquery怎么加载多张图片? jquery多图片上传(form表单序列化提交)为啥后台只获取一个图片文件 stabilitrak怎么消除? 凯迪拉克义表显示维修stabilitrak是什么问题? 别克昂科威仪表盘出现维修stabilitrak是什么原因? 有了解白茶的吗 福鼎白茶品种有哪几类? 福鼎白茶怎么分档次? 如何区分白茶种类? 白茶几个等级 白茶的分类及代表 安吉白茶有几个品种,它们有什么特色。 jQuery怎么使用for循环,向多个元素中添加不同的图片 php ckfinder一次上传多张图片地址 yii2高级框架怎么使用jquery file upload上传插件 求JS或jquery的上传图片带预览的代码 jquery 图片弹出层多图切换需要一个页面多张图但是一张图里面有独自的图片组。 404 Not Found 我 爸爸今年46岁得了冠心病请问这病严重吗?可以治疗吗??谢谢 神经性皮炎初期症状及治疗办法有什么? 神经性皮炎的症状有哪些?如何治疗 神经性皮炎 有何病症?怎么治疗?什么方法疗效快? 神经性皮炎应该怎样治疗和调养? 泛发性皮炎?!`` 请问神精性皮炎有无好的治疗方法? 引发皮炎的原因主要有哪些 一旦碰上令人的抓狂的神经性皮炎怎么办? 泛发性湿疹快折磨死我了!需要住院治疗么? 泛发性皮藓能当兵吗 神经性皮炎泛发型怎么治疗 乳房 神经性皮炎