ROR集成了诸多"先进"的理念,比如mvc,模板替换,orm,实体验证,ajax,数据库迁移,session的多种保存机制...等等,也许在今天看来,这些东西都是司空见惯的,但要知道ror框架是在几年前就发布的,所以ROR一出来就一路走红,甚至一度号称"web中小型开发效率天下无敌",也不是浪得虚名的。
但是随着Asp.Net的不断进步,ROR中的这些特性也慢慢都被MS吸收进来了,比如:
1.MVC
asp.net mvc已经发展到2.0了,如果ror开发者转换到asp.net mvc模式,也一定很容易上手
2.scaffold
网上曾经一度盛传的所谓"10分钟开发一个博客"的视频,很大程度上就是借助了这个玩意儿自动生成数据的基本CRUD操作,其实asp.net中的gridview也有类似的“开发”效率,只要设置datasource,一样不写一行代码,就可完成数据库的增删改,而且http://msdn.microsoft.com/en-us/ff183106(zh-cn).aspx 上也明确表示,asp.net mvc2.0中也将加入Auto-Scaffold UI Helpers
3.orm
asp.net中的orm太多了,抛开第三方的不谈,linq to xxx系列就已经很好用了
4.实体验证
MS开源企业库(Enlib)中的实体验证就不错
5.数据库迁移(rake)
这个虽然asp.net开发环境还没有,但是vs.net集成的数据库IDE环境用起来也是很顺手的,用熟悉了(比如把各个版本的sql语句合理组织好)速度上也不比rake慢多少
6.session的多种保存机制
从asp.net2.0开始,session就允许保存在数据库,或单独的session服务器上,这一点与ror也差不多了
7.集成ajax框架
ror默认集成的是prototype,但在各大ajax框架不断成熟的今天,这已经不是什么问题了,何况jquery也已经集成在asp.net mvc中了
8.单元测试
貌似asp.net webform/mvc一直就有,只是很多人不怎么用
Agile Web Development with Rails只看了一半,暂时就这么几点肤浅的体会 :)
后记:越来越发现很多技术上是相通的!学习了ruby后,发现对于javascript的理解也更容易了;学习了ror后,再看asp.net mvc也更有感觉了;学习了flex后,对于silverlight好象看着也更顺眼了...
个人建议:因为技术的发展总是有先有后,先出来的东西相对更成熟,学习资源更丰富(但同时也意味着更加不能适应未来的新需要),如果我们在学习微软的某项新技术感到困难时,不防看下其它阵营中有没有类似的成熟技术,透过它们其实更容易看到微软的进步。