今天,偶尔浏览Asp.net Mvc3的页面代码的时候,突然有很怪异的念头冒出来:Asp.net有存在的意义吗?Asp.net 的初衷:是创建动态网站。但付出的代价是:1、性能要差些:用户透过浏览器的每一次访问,都导致服务器生成页面的动作,用户端得到由初始页面+基于Asp.net标签而形成的html、css和js的组合。2、页面设计更复杂一些,思维要切换、需要理解动态页面创建的机制。3、要学习更多的内容:Asp.net程序员除了要掌握基础的html+css+js之外,还需要掌握更多的东西。
付出以上三项代价,得到的能力是:动态内容能够呈现和交互。
但若是html+css+js的方式,能够简单的设计并得到同样的能力,那么,Asp.net还有存在的意义吗?同样的问题,Php、Jsp当然也都存在。本质上来说,他们都是提供了自己的页面标准、同时提供了将基于这种标准的页面转换成“原生的”html+css+js的页面的能力。如果他们带来的价值是原生的页面支持的东西,那么……我们在做什么?
Html5,举例来说,要显示一个下拉框,可以从网站的某个服务中获得列表,形如“网站\Get列表”这种方式。这是动态内容呈现的能力。输入表单,提交后更改状态,是js的能力。可以将一些内容离线储存,适当的时候与服务器同步。
可以说,“动态页面”这种问题,从语言层面原本已经搞定。
而且这类原生的东西,部署非常简单,直接拷贝到Web服务器就行,大概未来也不再有要求:必须支持Asp.net、Php、Jsp之类了。相比之下,在这样一切都非常简单的状况的反面,我们长期坚持使用的Asp.net,除了复杂就是复杂。
那么,以后还需要Asp.net之类的东西吗?疑惑中…