仓酷云

标题: ASP.NET网页编程之微软ASP.NET手艺“乱谈”仓酷云 [打印本页]

作者: 第二个灵魂    时间: 2015-1-18 11:14
标题: ASP.NET网页编程之微软ASP.NET手艺“乱谈”仓酷云
也许C#刚上市的时候有些抄袭net网页编程吧,但自从C#2.0上市之后,整个局面就扭转乾坤了,不但net网页编程在模仿C#,而且他从来都没能跟得上C#的脚步。2014新年了,随手写的一点笔墨,次要谈谈我对以后微软ASP.NET手艺的意见,对照随便,年夜伙儿任意看看吧。
1以后微软Web平台手艺全貌

从2002年公布.NET1.0和VisualStudio.NET,到2013年.NET4.5.1和VisualStudio2013公布时,微软.NET平台己有11年的汗青,其Web手艺几经变迁,以后演变为以下的次要手艺子范畴:
ASP.NET网页编程之微软ASP.NET手艺“乱谈”仓酷云
登录/注册后可看大图

一张图懂得微软Web平台手艺全貌
时至昔日,ASP.NET底层的基本架构基础没太年夜变更,诸如利用HTTP处置管线处置HTTP哀求,利用HTTPModule对原始HTTP哀求举行“加工“,利用HTTPHandler天生发给扫瞄器的HTML代码等中心运作机理也没有变更,一切变更的都是下层手艺。
上面就扼要地聊聊以后ASP.NET手艺家属的各项成员:





这里谈到PHP,说些题外话:诸如PHP、JSP之类微软以外的其他Web开辟手艺,与ASP.NET实在有诸多重合的地方,每种编程手艺都有多种框架可选。你能够先学PHP/JSP,再学ASP.NET,大概反之。不外我团体感到,假如先学ASP.NET再学其他手艺,入手下手会略感不适,由于本来良多你己经习气的“主动化”的工具,在很多其他手艺中必需由程序员手动完成,是谓“由奢进简难”。但究竟都是Web使用,仍是有良多都是一样或相似的工具,转型其实不坚苦。

在现有的ASP.NET手艺家属成员中,WebForms是“元老”,MVC是“新贵”,二者都是微软Web手艺中最有目共睹的核心,上面就专门地聊聊它们。
2MVCvsWebForms

WebForms是故乡伙了,在MVC呈现之前,它是微软Web手艺范畴内当之无愧的“一把手”(实际上是由于没得选,它是独一候选人),有大批的Web项目利用它开辟,个中很多项目一向跑到明天,并且看起来还会持续跑下往,究竟要跑多久,谁也不晓得。由于在理论中,人人都成心偶然地遵守如许一个准绳:
Ifit’snotbroken,don’tfixit.
这就是说,关于老的利用WebForms开辟的项目,假如它还运转一般,就不要往动它。可是,假如要开辟新项目,就必要细心思索是不是仍旧接纳这类具有十多年汗青的“老”手艺了。
JohnCiliberti在其《ASP.NETMVC4Recipes》一书中对WebForms的优弱点作了对照周全的总结,原文内容很多,我大略地转述以下(同时加上了一些团体概念):


1、勾引程序员写出“把一切工具混同在一同”的Web使用
WebForm接纳Code-behind体例,固然分别了页面模板代码和背景的C#代码,但实践上有良多程序员在背景C#代码中誊写大批的营业逻辑代码,而且把这些代码与页面上的控件间接绑定(由于在高度智能化的VisualStudio中,这么干太简单了),这会给网站的临时保护带来贫苦。别的,假如不是在一入手下手就在架构上有所思索,几近没有举措对一个WebForms项目举行单位测试。
2、成也控件,败也控件。
WebForms开辟中,控件是页面开辟的中心。WebForms服务端控件是分量级的控件,它具有本人的一套运作机理,好比控件有本人的保存周期,在分歧的周期触发分歧的事务;WebForms供应了很多数据考证控件,固然能完成年夜多半罕见的数据考证义务,但其可扩大性和功能比不上如今利用的诸多JavaScript库(好比jQueryValiation,不依附于服务端天生的ViewState,运转速率更快,利用便利天真)。
之类的“奇妙代码”,并且只需你往页面上加了一个控件,它们就会不速之客。关于这些代码,你只能祷告它事情一般,一旦出了成绩,跟踪相称坚苦。
总而言之,WebForms控件高度封装的特征利用开辟者调剂它所天生代码的手腕很少很无限,这限定了开辟者的自在和发扬余地,也给页面优化带来坚苦。
3、上面重点说说WebForm的另外一个成绩——过分封装
最后WebForm的计划头脑是仿照VB的开辟体例,用拖放控件的体例计划Web页面。但Web使用与桌面使用究竟有严重差别,强求一致,一定必要对Web使用的底层机理举行深度地封装,刚刚大概制造出与桌面使用开辟分歧的开辟体验。WebForms的封装乃至到了这类水平:你不必要懂得HTTP协定,也能经由过程拖拖拽拽的体例构建Web使用
如许一来,基于WebForms开辟复杂是复杂了,但阔别了Web使用的实质,WebForms框架完成了太多的事,你必需照着它划定的套路来,留给你自在发扬的余地未几了。同时,因为WebForms把HTTP协定给包得几近”看不到了”,打造了一个“Web网站开辟其实不庞大,就是如许“的第一印象,这实际上是一个”假像“,假如不克不及意想到它点,仅会用WebForms的Web开辟者,分开了VisaulStudio,几近没法在其他Web范畴找到事情,由于你己“认假成真”被“洗脑“,必需”清空内存“,从头进修与懂得Web使用的”真像“。
比拟WebForms,ASP.NETMVC要好很多了,它并未向利用者埋没Web使用的实质,固然进修曲线对照陡,触及到手艺和Web开辟相干背景常识对照多,但能玩转它的人,其进修才能战争均开辟程度常常都还不错。
3微软手艺影响下的程序员

最初说说微软手艺特性对程序员生活和手艺开展所带来的一些影响:
微软手艺的最年夜特性之一就是”易用“和”开辟高效“,这是长处,但关于程序员而言,假如对此没有明晰的熟悉,则会遭到倒霉的影响。
微软手艺为了易用,包了良多层,而且很多其实不开源。当你实验往探究其底层手艺完成时,会坚苦重重。
另外一方面,因为程序员本身开辟履历与才能的限定,过分的封装也制止了程序员对深度探究手艺内情的热忱。
与Windows比拟,Linux不容易用;与C#比拟,Java不容易用,C++特别不容易用;与WebForms比拟,JSP和PHP都不容易用,……,但这些不容易用,却迫使程序员往进修良多工具,变更了其主动性,程序员们劳绩到了本身才能与本质的进步。
人的天分是懒的,易用、开辟高效且高度封装的很多微软手艺,严峻减弱了良多程序员的手艺探究愿望。以是我看到,在微软手艺范畴,只要那些意志刚强而且对手艺自己有着浓郁乐趣的人,才干保持这条深切探究手艺之路,并在这一手艺探究过程当中收益很多。而如许的人,在微软范畴以外,也会是一把妙手。
固然,针对微软手艺“催生懒汉“这类征象,板子不克不及打在微软手艺身上,而应当打在人身上,这是人自己的成绩,手艺自己是中性的,是“无辜”的。
必要指出的是,微软手艺走向开放的趋向日趋分明,以后分量级的一些手艺,好比ASP.NETMVC、EntityFramework等,都是开放源代码的,偶然间读读这些项目标源码,定有所得。
最初谈一点,因为进修把握某个手艺会泯灭程序员大批的工夫、精神乃至款项,没有人但愿本人下年夜工夫把握的手艺没有效武之地,因而,流派之见相称凸起。常常会看到很多程序员会为各类手艺的所谓“好坏”争得面红耳赤,大发雷霆者乃至入手下手对对方举行人身打击,在网上,“黑“微软手艺者特别罕见。
实在,应当“把手艺当做工具,但不要成为宗教信奉”。
我赞成“有用主义”准绳,别华侈工夫往争辩哪一个手艺好、哪一个手艺坏,而应当存眷的是哪一个手艺最合适于办理哪类成绩。在分歧的场景选择符合的手艺,别试图用一种手艺往包打世界,“多学几手,脚踏两只船”。
语言是不是不是最重要的?
作者: 再见西城    时间: 2015-1-20 18:22
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
作者: 若天明    时间: 2015-1-26 16:06
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
作者: admin    时间: 2015-1-26 16:43
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
作者: 精灵巫婆    时间: 2015-1-31 05:19
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者: 深爱那片海    时间: 2015-2-1 23:49
Asp.net脚本的出现,为ASP空间带来了更高的稳定性,同时也为程序员建站提供更高环境!
作者: 仓酷云    时间: 2015-2-2 21:55
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
作者: 分手快乐    时间: 2015-2-24 01:12
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
作者: 透明    时间: 2015-3-4 02:56
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者: 小女巫    时间: 2015-3-5 03:35
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
作者: 灵魂腐蚀    时间: 2015-3-6 07:55
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
作者: 金色的骷髅    时间: 2015-3-12 22:23
当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。
作者: 愤怒的大鸟    时间: 2015-3-20 04:06
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2