仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1348|回复: 13
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之Why .NET Sucks? 为何.NET真渣滓?仓酷云

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:27:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
也许唯一可以让世人留恋net网页编程的理由就剩下它的王牌——跨平台。写此文地道为了复兴《.NET不逝世,为何企业雇用都要java?》一文。从01年以来,.NET从最后的2000beta2一起凯歌大进到了2008,Framework从1.0一会儿跃进到了3.5,从3.5以来wpf,wcf,wwf,Linq,ASP.NETMVC,我们的感到是.NET很好很壮大,甚么都有。可是.NET的程序员怎样就愈来愈不值钱了呢?很复杂的对照,在我本来地点的一个公司里,有java的项目也有.NET的项目,做Java的程序员报酬广泛比做.NET的凌驾一年夜截。就程序员实质来讲实在并没有多年夜的区分,那末成绩就只能在.NET自己上头来找,以是就有了本文:Why.NETSucks?
第一,一种手艺是不是值钱,起首取决与市场代价,固然关于C#大概Java这类使用范畴十分分歧的商用言语来讲,实在越难学的也就是人为越高的。越难学的人为越高这句话相对是话糙理不糙。难学申明了人力本钱中的培训本钱会对照高,以是这类手艺职员的人为的确就要高一些。那末.NET的超等工具,让我们开辟起来超等便利的超等工具:VS.NET实在就是制约我们人为提拔的最年夜停滞,老板会义正词严的告知你,会用VS.NET拖拖沓拉就可以开辟的程序员量产起来快得很,就这点人为你不厚道干就开失落你换一个,你背面另有好几个找不到事情的.NET程序员供我选呢。
其二,.NET供应给我们的开展空间太局促了(也许是我目光太局促),排列一下之前我提到过的:wpf,wcf,wwf,Linq,ASP.NETMVC,微软把甚么都做了,留给我们的除傻乎乎的拿起linq,wcf,wwf往吭叱吭叱的码格子堆代码,还剩下些甚么呢?架构计划?那是多数人的事变究竟也轮不到程序员。做营业剖析?那也是多数派呈报。不成能一个项目重新入手下手全体手写代码吧?如许是否是活归去了?java程序员从Struts到Spring到Hibernate可谓武装到了牙齿。整套上去还不要钱,以为Hibernate分歧适还能够换ibatis,apache下头一年夜队候补的美人,可谓是后宫美人3千,试问.NET又可以靠甚么让六宫粉黛无色彩呢?前有JAVA的切断,背面另有ROR,Python,PHP,一年夜群追兵,从标榜本人开辟起来不是一样平常得快的ROR(不晓得沉得是不是也快),到标榜本人跑起来缓慢的Python(豆瓣的神话作育了Python的缓慢传说),另有标榜本人光膀子不怕穿鞋,完整收费的PHP。再换句话说,我们就坚持不懈的随着微软走吧,那末除拿着VS.NET做网站,我们还剩下了些甚么事变做呢,那就怪不得人家招JAVA的人多了,用JAVA唱工作流两头件的能够卖钱,你用.NET尝尝,人家间接跟你说我们用WWF了,还用费钱用你的?做个ORM,MVC框架能卖钱?各处都是收费的,微软自带的,相对没有任何一个开辟企业会为了ORM仍是MVC甚么的花一分钱,要用都用开源的,所谓微软这类年夜包年夜揽的举动极年夜的冲击了开源团队的主动性,MonoRails还没说要收钱呢,微软就忙不及的弄了个本人的MVC框架出来。看着Java下第三方厂商的两头件如火如荼的时分,还真不晓得我们应当在.NET下做点甚么能卖钱的。
其三是我团体多年来在利用.NET的时分的积怨,实在我到如今为止都挺讨厌微软给.NET计划的API,太恶心,特别是Drawing下边的哪些API吐露出浓厚的MFC的滋味。并且非常处置的机制也非常的凌乱,既然有了非常处置的机制就用非常来办理成绩嘛,了局有的经由过程前往bool来提醒毛病,有的经由过程毛病标示的参数来前往毛病,非常也没有声明的机制,了局良多时分在利用一些类的时分基本不晓得有哪些非常必要处置,良多老手就很笼统的给个Exception了事,那末这个非常处置的机制另有甚么用呢?习气了JAVA的声明式非常以后会很利诱于这类含混的体例。
另有一个很弄笑的中央就是非常的抛出:throwex,throw,thrownewXXException("error",ex);一个会中止非常的仓库,一个不会另外一个也不会,这不是画蛇添足么,几乎就是茴喷鼻豆的回有四种写法。间接让throwex不会中止非常仓库就好了何须还要画蛇添足呢?

-------------------------------------------------------原文------------------------------------------------------------------------------------

另有一个很弄笑的中央是,你在捕捉到一个非常的时分还不克不及间接把它抛进来,还要new一个非常,把捕捉到的非常作为InnerException包裹一次后才干抛进来,否则在调试的时分就跟踪不到真正呈现毛病的中央而是在间接抛出的谁人中央中止了。

-----------------------------------------------------------------------------------------------------------------------------------------------

都到了3.5了都还没有供应对DynamicProxy的撑持,了局如今.NET下的AOP看起来都仍是那末奇异,完成起来也贫苦。

实在发了良多怨言,说.NETSucks也不外是气话,我们没法否定.NET是一个巨大的开辟平台,没法否定微软是一个巨大的公司,不外.NEt再巨大,失掉好处的一直是微软而不是宽大的开辟职员罢了。
批评也出色:
#1楼2008-09-0823:38CatChen先回一句──你对.NET了解十分无限,利用毛病的概念不敷以支持你的论点。

#2楼2008-09-0823:405207有事理,微软的。NET的确是个高临盆力的工具,可是恰是临盆工具先辈了,人的感化就复杂了,如今50%的程序员是和工场里的普工一样,并且如今软件公司对手艺部门划的很复杂就是临盆,营业都是从市场部门大概征询部门过去,研发部门没有营业深度的职员,也就难有营业精度的工具出来。

比拟手艺,实在任何一个软件产物其营业是才是魂灵,营业是手艺不成能替换的。就好像C这个言语,岂非几十年前的工具现在无性命力?C#都四个+了,呵呵,仍是不及C言语,关头仍是怎样用好吧,究竟实质没有变更!

#3楼2008-09-0823:41CatChen你捕获了Exception以后,不克不及间接throw进来,是由于你不晓得几种throw写法的不同。你晓得throwex;和throw;的区分吗?throwex;就是你所说的情形,把捕获到的ex从头抛出,会损坏失落ex挪用仓库。可是throw;不会,这类写法让ex在坚持挪用仓库的情形下持续冒泡。

是你不懂,而非.NET不可。是你能不克不及拿高薪,而非.NET能不克不及让你拿高薪。

#4楼2008-09-0823:43CatChen别的,从你措辞的立场看来,仿佛你以为ASP.NETMVC是个免费的框架,既然有收费的就不会有人选择免费的。你连它是收费的都不晓得,就不要往在理打击它了。

#5楼2008-09-0823:45Kai.Ma对照批准CatChen的概念。

#6楼[楼主]2008-09-0823:47亚历山年夜同道@CatChen
没说过ASP.NETMVC是免费的。
throw这个例子的确思索欠周,可是缺少对非常的声明和.NETapi中对非常处置的凌乱来讲是的确存在的成绩

#7楼2008-09-0823:55Clingingboy只怪.net阵营还不敷壮大,学.net和学java的路分歧,不能不供认java的程序员广泛比.net的本质高些一层,这是微软推行的计谋所决意的,会商这个成绩的应当都不是初学者.我们仍是从本身找成绩吧.进步本人才是邪道.

#8楼2008-09-0823:57Clingingboy实在java开源给你太多的选择偶然候反而欠好

#9楼[楼主]2008-09-0900:01亚历山年夜同道@CatChen
对待成绩的角度纷歧样也没有需要起争吵,我的主题是.NET为何让程序员愈来愈不值钱。我存眷的是程序员团体代价的表现而不是一个手艺是不是优异,没有充实的来由以为java就比.NET优异几,可是java这个各处是后妈的娃儿的确让程序员失掉了比.NET这个有个强势的妈咪的娃儿,这已充实证实了我的概念。某些手艺细节的成绩其实不影响我的概念。同时感激你帮我指出本文一个手艺细节上的不当的地方。

#10楼2008-09-0900:25Kevin-moon高薪取决与你的才能,而不是一门言语,
MS把编程酿成复杂,我以为很好,如许进步开辟速率.可是假如你只停止在使用上的话,大概最初就只剩下埋怨MS了.关于工具,先使用然后懂得,最初把握其头脑.
关于低级的NET程序员来讲,切实其实存在楼主说的成绩,但也就只限定在这个级别上罢了

#11楼2008-09-0900:30CatChen@亚历山年夜同道
.NET不是让程序员不值钱,是让食品链底层的程序员不值钱,可是任那边于食品链底层的生物都不值钱!

Microsoft为何赢利?它不必.NET?为何它用.NET写的VS2008可以卖那末贵?为何它的VS2008团队可以领那样的人为,而一样平常的vendor不可?由于它处于食品链的顶端,这才是成绩的实质。

所谓的食品链,就是谁必要花本人的钱来利用他人的事情功效。做.NET控件、组件、平台的公司,固然给Microsoft吃,但同时也吃更小的vendor,以是一样赚很多的钱,这个你写文章时就没思索出来吧?你思索的就是消耗他人做好的控件的那种底层生物,这有甚么好说的,没举措顺着食品链往上爬,就一定被他人吃,这跟言语和框架没有干系。

Java只是躲避了食品链这么底层的一个分支,不估量这么小的vendor,但愿vendor都是有必定体积的,这些vendor不是面向团体终端做批发产物的,而是面向企业的,要吃也要吃别的的企业,固然不克不及间接对照。

#12楼2008-09-0900:48AndersCui固然.NET不是薪酬低的间接缘故原由
却不克不及躲避均匀人为比Java低的现实
本文来自:http://www.ckuyun.com/Alexander-Lee/archive/2008/09/08/1287168.html
什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的)
飘灵儿 该用户已被删除
沙发
发表于 2015-1-21 07:12:36 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。
变相怪杰 该用户已被删除
板凳
发表于 2015-1-24 11:32:45 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-1 09:41:33 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
柔情似水 该用户已被删除
5#
发表于 2015-2-2 11:42:54 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
小妖女 该用户已被删除
6#
发表于 2015-2-6 19:13:14 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
7#
发表于 2015-2-8 08:29:35 | 只看该作者
能产生和执行动态、交互式、高效率的站占服务器的应用程序。运用ASP可将VBscript、javascript等脚本语言嵌入到HTML中,便可快速完成网站的应用程序,无需编译,可在服务器端直接执行。容易编写。
莫相离 该用户已被删除
8#
发表于 2015-2-8 23:59:55 | 只看该作者
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
精灵巫婆 该用户已被删除
9#
发表于 2015-2-22 22:13:21 | 只看该作者
ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
简单生活 该用户已被删除
10#
发表于 2015-3-2 12:37:03 | 只看该作者
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
老尸 该用户已被删除
11#
发表于 2015-3-7 01:37:15 | 只看该作者
我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。
山那边是海 该用户已被删除
12#
发表于 2015-3-9 12:47:28 | 只看该作者
逐步缩小出错代码段的范围,最终确定错误代码的位置。
冷月葬花魂 该用户已被删除
13#
发表于 2015-3-16 21:57:59 | 只看该作者
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
若相依 该用户已被删除
14#
发表于 2015-3-23 04:04:10 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 00:46

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表