|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.net老师不吝赐教,为小弟这一批迷途的羊羔指一条阳光之道!您也知道:学习技术如果只有一个人摸索,那是一件多么痛苦的事情!还有,如果万辛能得名师或长者指点,那又是多么一件幸福和快乐的事情!2008年3月微软针对ASP.NET3.5公布的MVC框架(Preview2版本)是一个真正意义上的ASP.NETMVC框架。至今,短短4个月内此框架已开展到Preview4版本。很多国际外业界人士称该框架为其前基于Web表单开辟形式的汗青性“倾覆”。本文站在对ASP.NETMVC框架与传统ASP.NETWeb表单开辟形式举行简明实际对照的角度对ASP.NETMVC框架的开展远景作出开端瞻望。
1、弁言
一向以来,软件架构师们在开辟软件的办法及架构方面争辩不休。如许的一些典范的例子包含针对ORM与存储历程、REST与SOAP布局的会商,等等。比来一段工夫,在微软社区内又睁开了一场有关ASP.NETWeb表单与ASP.NETMVC框架的会商。很多人以为ASP.NETMVC框架最初将会代替Web表单机制,而也有一些人保持以为ASP.NETMVC框架将来不成能代替现在已紧紧占有.NET平台上ASP.NET开辟统治地拉的Web表单手艺。那末,事实ASP.NETMVC框架是不是会代替Webforms呢?
值得注重的是,从一入手下手,微软的浩瀚威望人士都分歧暗示:ASP.NETMVC框架仅仅将作为Web表双方案的一种大概的替换计划,而不会完全代替它,而Web表单也不成能代替ASP.NETMVC。因而,真实的开展趋向将是:ASP.NETMVC与Web表单将配合存在,ASP.NETMVC决不会成为Web表单的代替者。以是,假如你对照喜好ASP.NETMVC,你能够选择利用它;而假如你感应Web表单更容易于上手,你也能够恣意地依照你的传统体例持续利用它。也就是说,两种路子都只是针对分歧的选择、分歧的办法罢了,而供应给开辟者分歧的选择自己是一件功德,仅此罢了。固然,分歧的选择也完整能够使用于其他的平台,出格是另外一块对照火的Java开辟平台。
2、ASP.NETWeb表双方案存在的成绩
ASP.NETWeb表双方案存在哪些方面的不敷呢?Web表单的引导头脑是把Windows桌面使用中的表单模子引进到Web使用程序的开辟中。这类模子很快就吸引了多量的传统Windows桌面使用开辟程序员,出格是之前的VB6.0程序员。明天,很多VB6.0开辟者已转到了ASP.NETWeb开辟范畴,可是他们并没有基础的HTTP与Web基础常识。为了摹拟传统型Windows桌面使用程序中的表单开辟体验,Web表单引进了事务驱动的办法,并且还引进了Viewstate和Postback等相干观点。终极,Web表单手艺知完全地霸占了Web中无形态特性这个难关。随之而来的是,Viewstate和Postback带来了大批的成绩,从而进步了Web使用程序开辟的庞大性。比方,即便一些十分复杂的Web页面也有大概发生年夜于100KB尺寸的Viewstate,这固然会在某些情形下严峻影响体系的功能。别的,开辟职员还没法把持Web表单天生的HTML;并且,ASP.NET服务器控件天生的HTML既混同有内联体例也包括不切合尺度的过期的标签。Web表单所带来的另外一个成绩是,与JavaScript框架的集成对照坚苦,这次要是由于天生的HTML的定名常规所酿成的。别的,Web表单响应的页面熟命周期太庞大了,在全部ASP.NET框架中一切内容都是紧耦合型的而且仅利用一个类来卖力显现输入和处置用户输出。因此,单位测试几近是一项不成能的义务。而我们都晓得,在古代软件开辟中,出格是当我们遵守急迅软件办法论及响应常规开辟软件时,单位测试是很主要的。既然Web是无形态的,那末,Postbacks和Viewstate就不会完善的办理计划。
3、ASP.NETMVC架构所具有的特性
ASP.NETMVC架构可以简化ASP.NETWeb表双方案编程中存在的庞大部分,可是在能力与天真性方面将一点也不会减色于后者。ASP.NETMVC架构要完成的在Web使用程序开辟中引进模子-视图-把持器(即“Model-View-Controller”)UI形式,此形式将有助于开辟职员最年夜限制地以松耦合体例开辟本人的程序。MVC形式把使用程序分红三个部分—模子部分,视图部分和把持器部分。个中,视图部分卖力天生使用程序的用户接口;也就是说,它仅仅是添补有自把持器部分传送而来的使用程序数据的HTML模板。模子部分则卖力完成使用程序的数据逻辑,它所形貌的是使用程序(它利用视图部分来天生响应的用户接口部分)的营业对象。最初,把持器部分对应一组处置函数,由把持器来呼应用户的输出与交互情形。也就是说,Web哀求都将由把持器来处置,把持器会决意利用哪些模子和天生哪些视图。正如读者所料想到的,MVC模子将利用其特定的把持器举措(Action)来取代Web表单事务。因而,利用MVC模子的次要长处在于,它可以更明晰地分别存眷点,更便于举行单位测试,从而可以更好地把持URL和HTML内容。值得注重的是,MVC模子不利用Viewstate、Postback、服务器控件和基于服务器手艺的表单,因此可以使开辟职员周全地把持视图部分所天生的HTML内容。MVC模子利用了基于REST(Representationalstatetransfer)的URL来代替Web表单模子中所利用的文件名扩大办法,从而可使我们机关出更加切合seo(SEO)尺度的URL。以后,MVC仅仅撑持.Net框架3.5版本。因而,假如你想要在.Net框架2.0下利用MVC的话,我倡议你会见一下ScottHanselman的撰写的博客文章(DeployingASP.NETMVConASP.NET2.0),你会从中找到响应的谜底。
在本漫笔中,我并非展现一个详细的MVC示例使用程序(由于一个复杂的示例分析就会占往相称的篇幅)。因而,关于MVC框架的详细实例,读者能够参考微软最威望专家ScottGuthrie的博客,也能够参考我宣布在IT168中的几篇博文
(http://space.itpub.net/?uid-14466241-action-viewspace-itemid-344617)。
4、结论
选择将依据分歧的人而有所分歧。假如你想要更多把持HTML你想要举行测试驱动开辟的话,大概你更存眷Web尺度,可会见性,大概你想构建SEO友爱的URL,那末你能够选择MVC模子。假如你想要完成对体系的更好的把持和想完成面向形态的事务驱动的Web开辟的话,你能够选择Web表单模子。假如你感应利用MVC更温馨些,请选择这类模子好了;而假如你感应利用Web表单模子更温馨些,就应当坚决果断地选择利用Web表单模子。二者仅仅是选择的分歧。假如你刚入手下手利用ASP.NETWeb表单踏上你的职业生活而还没有对Web有一个周全的懂得,那末,你一下转到MVC模子方面一定存在很多的坚苦。
较之于Web表单,我更加喜好MVC模子,并且我感到微软在从此更有大概朝着MVC作了更多的勉力。这类模子所具有的手艺特性和开源天分深深地吸引了我。别的,MVC模子还同意我周全地把持HTML而且撑持测试驱动开辟(TDD)。另有,在MVC形式下,我们能够十分简单地集成进jQuery和其他JavaScript开辟框架。借助于C#3.0中新引进的扩大办法,我们本人能够机关功效壮大的丰厚的匡助类。
完全不一样的。.net其实我也说不太清,.net可以把他理解为跟J2EE相对的工具。c++主要做系统相关的开发你要学.net的话就应该学C#。(其实微软在.NET平台上也考虑了给C++留一个地位。 |
|