谈谈Ruby On Rails和ASP.NET
2009-07-25 18:28 xiaosonl 阅读(1661) 评论(1) 编辑 收藏 举报周未花了一天多的时间过了下<<应用rails进行敏捷web开发>>, 照着写了一半的示例程序, 对Rails简单了解一下, 趁还有印象, 来对比一下自己做了一年多的ASP.NET开发. 说的不对可以提, 杜绝骂人, 谢谢合作.
一. ORM.
ASP.NET的ORM可选有很多, 如NHibernate, 以及MS自家的Linq to Sql和ADO.NET EF. Rails的ORM是一个叫"ActiveRecord"的东西.
我以NHibernate与ActiveRecord为例做比较. 对于Mapping, 两者应该都差不是很多, Fluent NHibernate也可以实现基于约定的AutoMapping, 这个主要还是看开发者的实践而不是技术本身. 然后下来是数据操作部分, Raisl有Ruby动态语言的支持, 可以实现很灵活的查询(参考网页:http://java-007.javaeye.com/blog/333648), NHibernate有HQL, 以及貌似有提供Linq的查询方式, 感觉也是无明显差异.
二. 编程语言
我承认这是一个大坑, 静态语言 VS 动态语言. 静态语言有编译检查, 动态语言更加灵活, 比如可以在运行时改变对象的行为等. 一直用C#, 有点依赖了编译器帮我们做语法检查., RoR中就只能靠单元测试来保证了. 不过RoR中简化了大量的代码, 也是减少了出错的机会.这个坑太深, 不多说了.
三. MVC
Rails的MVC框架应该会比ASP.NET MVC好一些. Rails的优势在于MVC与ActiveReocrd的整合, 像RESTful风格的URL, 可以直接操作数据资源, 当然MS的ADO.NET Data Service也可以做到类似的效果, 但功能上不如Rails. 而且Rails的客户端校验和Ajax支持都很强大, 这两块简化了大量的繁琐操作, 用起来省事不少.
四. 其它
- IDE: 感觉开发RoR对IDE没啥要求.....经常有人就用命令行+记事本来开发. VS.NET就不用多说了.
- 数据迁移脚本: 其实C#也有数据迁移脚本, 传送门:http://www.infoq.com/cn/news/2009/01/migrations_dotnet
- 类库与组件: 这个当然没法和.NET Frmaework比了......
- 测试支持: 那一章节我跳过去了...
- 部署: Rails有点麻烦, 不过可以跨平台就是了.
- 学习成本: 两个都从头开始学, 可能RoR会更容易学一些.
五. 总结
其实.NET下的好东西了也非常多, 我就习惯为啥没人去开发一个.NET下的Rails框架呢?Rails的一大优势就是它是一站式的解决方案, 明显提升了开发效率.后来在InfoQ上看到一篇文章, 觉的有点这个的味道出来了:
<< 融合思想:深入探索S#arp架构>>
--------------------------个人签名的分割线--------------------------------------
我的个人综合博客:http://www.xiaosonl.com