Asp.net WebForm 和 Asp.net MVC 都不是好用的Web开发技术

我们如何评价微软呢? 封装大师,是最贴切的。本人不认为微软在计算机领域有任何值得称道的建树,微软和国内的那些商业性质很强的计算机类公司一样,不是一家技术主导的公司,仅仅是恰好做IT行业而已。

最近这两年,微软又搞出了一个 asp.net mvc ,又像当年 asp webform一样,引起一阵学习讨论的狂潮,但是大家想过没有,学习的成本是非常昂贵的,一家有规划和远景的公司,一个有长远眼光的开发者,应该都会严格控制学习的成本的。

既然asp.net mvc 又是一个 微软封装的产物,我们有必要投入巨大的成本来学习跟进吗?

当年微软推出 asp.net webform的时候,网上那些对微软技术之外的技术了解不多的人们,大肆吹捧webform。什么革命性的改进,统一了web和桌面程序。。。会写asp.net server control成了一个高手的代名词。

可是几年后呢,随着web 2.0大行其道,人们对页面的美观、交互有了更高的要求,这时webform就不行了,就算是使用asp.net的网站,也无一不例外的放弃了webform,viewstate, server control。。。

于是微软的asp.net团队又开始封装,搞出一个MVC。虽然各种视频、教材里都说,asp.net mvc 是 asp.net web开发的另一种选择,不是替代 webform的,但是他们的内容里又无一例外的指出了webform的种种不是,把webform批得一无是处。

好吧,微软自己闪自己嘴巴子,咱们就不笑话它了,毕竟一个学法律出身还半路退学的同学搞的计算机公司,在技术上不能期望它有多高的建树。

我们再来看看asp.net mvc,甚至其它web mvc模型,难道就没有不合适的地方吗? 我们还是用微软宣传mvc一个重要原因:回到web开发的本来面目,直接面对html和javascript/css来说吧。

当年html出现的时候,都是静态文件html, 我们在浏览器输入一个页面地址,在服务器上对应的路径下就有那个文件。但是MVC是这样吗?不是,MVC把你的请求给路由转向了,我打开一个MVC项目的源代码,实际上我一下是看不到这里面可以访问哪些页面的。这是非常不合适的,还是没有回到Web的原始状态。

这里说到URL重写,路由等词语,我认为应该是是搜索引擎适应我们的网站,而不是网站适应搜索引擎!URL重写等技术,虽然号称是SEO,但是实际上对程序的逻辑完整性是不利的。有时候一个页面出错,我为了找到是哪个页面的问题,不得不去配置文件里搜索URL对应的实际页面的地址。但是,为什么不直接使用页面的地址呢?

另外一个,MVC的模型过于复杂,Model,View,Controller三种划分,造成项目里过多的类,如果你在非常劳累的情况下加班处理这些程序,你很容易陷入混乱状态。

我们看看PHP,从Web出现早期,知道今日Web 2.0, web 3.0,一直是常青树,为什么?就是因为简单! 微软当年批判自己的asp,说代码和html混在一起,不好,于是力推webform,html代码中使用server control来分离html和代码。过了几年, webform不行了,又说要让web开发回到本来面目,于是又转回去力推mvc,又在页面中混杂html和布局代码。这都不要脸到什么地步了?  

asp.net团队说让web开发回到本来面目的说法,是正确的,但是MVC还是一个不让人满意的产品。不过asp.net团队又搞出一个web matrix和asp.net web pages,说白了,就是使用MVC中的视图层和视图模版,但是把逻辑代码也写在html页面里,这非常类似微软以前的asp,但是又不好意思重启asp,就做了一些变化。

其实微软最应该做的,既不是asp.net mvc, 也不是asp.net web pages,而是应该发布一个 asp 4.0, 把当年的asp 3.0升级一个版本,使用javascript作为asp 4.0的脚本语言,同 时引入对.net framework的支持,也就是说让服务器端的javascript支持CLR,放弃原来在asp中的vbscript和COM。

微软有了C#, J#, F#, IronPython, IronRuby .....但是微软偏偏不推出 Javascript#。

(至于服务器端的node.js,哥想说,要不是那个傻乎乎的作者非要搞极客一样的异步调用,node.js 本来可以在段时间内火起来的,可惜,人最难改变的就是思想认识。)

在服务器端和客户端都使用相同的javascript,好处是大大滴。一方面可以让开发者身兼数职,招聘的人员只需要精通javascript,这比洋洋稀松的人写得代码质量高多了。另一方面输入验证等逻辑,完全可以公用相同的代码。

在科技界,甚至其它行业,一直有一些口号在流行:活到老学到老...本人学习新技术能力强...xxx过时了,现在都yyy了...我想问这些话都是谁说的?既然那么多牛人大师,都是在多年的研究学习后,说要重返C,重返C++,重返系统编程等,怎么还有人宣传学习新技术呢?这背后的推手就是微软和一些新手。

宇宙多少亿年了,都遵循着一成不变的规律,我们人生才短短几十载,干嘛要改变?你嫌你自己活的时间太长吗? 微软是喜欢年轻人不停的学习的,不然它封装的新组件,谁用啊。

阅读更多

没有更多推荐了,返回首页