2007年12月11日

下一代.Net

作者 非鱼

现在.Net framework 3.0正式版已经发布了,Windows Server 2008的正式版也快了,而且2008里面的IIS默认就搭配了IIS7和.net 3.0,看来,在不久的将来,程序员们就会尽快的切换到新平台上去了。

新的平台里面有意思的东西不少,最吸引开发人员的,恐怕非Linq莫属了。用面向对象的方式解决数据库映射省却写SQL的麻烦,又用SQL的方式处理.Net的基本数据类型,得到简洁和优雅的数据筛选方式。但是,根据准官方的数据,Linq会带来10%左右的性能损失。在.Net本来性能就不咋地的情况下,再失去10%,对于大型网站,恐怕还是比较难接受的。对于ORM这种处理方式,除非微软有更好的驱动和处理方式直接从SQL Server中存取对象,否则按照现在这种方式不停的做数据类型转换,即浪费时间也浪费空间,可能的好处就是带来小型项目开发的便利性。

对于WCF从来没用过,看的也很少,目前我能够想像的好处就是,WCF层作为真正的逻辑层,取代原来aspx.cs文件所在的位置,成为真正跨平台的解决方案(不是指操作系统平台,而是客户端平台),无论前台使用aspx还是winform,都只要拖一个DataGrid上去就可以了,后台的接口是完全一致的。

最近又看到了一个非常爽的东西,就是微软MVC框架,虽然原来已经有了castle项目实现了ORM到ASPX的完整步骤,并且基本实现了Ruby on rails的架构,但是现在MVC框架作为微软官方的解决方案(据称到.Net 3.5的时候正式成为.net framework的一部分,就像以前的.net ajax),提供了更加直观优雅的解决方式。Linq/ORM/MVC,这一套工具使得开发ASPX变得跟ROR完全一致起来,甚至连页面里面显示DataGrid都不再使用DataGrid控件了(都知道这东西性能不怎么样),改用<%foreach Customer c in Customers%><%=c.Name%>这样的方式,除了语法标记跟ROR不一样,整个添加模块,添加Controller,添加模板的方式,包括目录结构,都完全一致起来。想想就觉得爽,但是,恐怕还是那句话,适合小型项目。但是话又说回来,小型项目很大的可能是运行在租用空间上的,而微软的MVC框架必须要修改IIS的设置才能使用/Customer/1/这种目录结构,而租用的空间,没有任何可能更改这个设置。所以,天生就有问题,除非让IIS7自己拥有这种路径映射的功能,(并且要有比Apache的.htaccess文件更安全的解决方案),否则,这个框架的实用性不高。(但是看看示例代码和开发方式,真的好爽。结合了Visual studio强大的功能,和ROR的开发方式,实在是一件功德圆满的事)。

.Net在Windows上的发展恐怕已经到了一个瓶颈期,下一步,还是好好琢磨琢磨在Linux上的发展,毕竟,Visual Studio Express是免费的,.Net framework也是免费的,SQL Server Express也是免费的,但是Windows Server却没有免费版,而且,贵的离谱。因此,如果能够再给出一个免费的操作系统平台,那真是……