冷月葬花魂 发表于 2015-1-18 11:27:49

ASP.NET网页设计Web开辟形式的倾覆者:ASP.NET MVC仓酷云

兄弟们,想来你们都看过了昨天的比赛了。我现在的痛苦状跟当时应该差不多。希望本版.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++留一个地位。

变相怪杰 发表于 2015-1-21 07:14:11

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。

海妖 发表于 2015-1-26 22:54:22

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

乐观 发表于 2015-1-28 15:53:57

PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。

爱飞 发表于 2015-1-30 10:47:16

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

小魔女 发表于 2015-2-6 10:07:05

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。

灵魂腐蚀 发表于 2015-2-7 01:45:02

ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。

不帅 发表于 2015-2-9 23:44:43

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

仓酷云 发表于 2015-2-23 18:51:20

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

再现理想 发表于 2015-3-6 13:14:21

ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。

山那边是海 发表于 2015-3-8 11:33:56

对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。

深爱那片海 发表于 2015-3-9 00:13:24

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

精灵巫婆 发表于 2015-3-16 18:20:54

asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源

小女巫 发表于 2015-3-22 23:29:35

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
页: [1]
查看完整版本: ASP.NET网页设计Web开辟形式的倾覆者:ASP.NET MVC仓酷云