惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
B
Blog
WordPress大学
WordPress大学
Project Zero
Project Zero
P
Palo Alto Networks Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
T
Tailwind CSS Blog
Forbes - Security
Forbes - Security
F
Full Disclosure
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hacker News: Ask HN
Hacker News: Ask HN
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
F
Fortinet All Blogs
Cisco Talos Blog
Cisco Talos Blog
G
Google Developers Blog
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recorded Future
Recorded Future
O
OpenAI News
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
C
Cybersecurity and Infrastructure Security Agency CISA
S
Securelist
V
Vulnerabilities – Threatpost
Y
Y Combinator Blog
IT之家
IT之家
U
Unit 42
腾讯CDC
S
Security Affairs
C
Cisco Blogs
Schneier on Security
Schneier on Security
The Last Watchdog
The Last Watchdog
B
Blog RSS Feed
宝玉的分享
宝玉的分享
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Blog of Author Tim Ferriss

博客园 - xiaosonl

学习手札#3 NHibernate缓存 产品的简单性 关于过度设计的思考(上) 让ASP.NET MVC的Controller输出不同类型数据 学习手札#2 故事点和小时数的思考 学习笔记#1 键值对数据库 SQLite数据迁移 探讨一种在Silverlight不普及情况下的部署策略 有用的文档 Silverlight产品布署策略 探讨一种Silverlight的异步编程模式 代码的注释 下半年要看完消化的技术类书籍 中小型企业的人员流失 工作中的系统学习 Uml中的关联与依赖关系 TDD与重构设计 C#中使用位运算来实现权限管理 Silverlight中JavaSciprt无法访问托管类抽象成员的解决方法
谈谈Ruby On Rails和ASP.NET
xiaosonl · 2009-07-25 · via 博客园 - xiaosonl

2009-07-25 18:28  xiaosonl  阅读(1677)  评论()    收藏  举报

周未花了一天多的时间过了下<<应用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支持都很强大, 这两块简化了大量的繁琐操作,  用起来省事不少.

四. 其它

  1.   IDE: 感觉开发RoR对IDE没啥要求.....经常有人就用命令行+记事本来开发. VS.NET就不用多说了.
  2. 数据迁移脚本: 其实C#也有数据迁移脚本, 传送门:http://www.infoq.com/cn/news/2009/01/migrations_dotnet
  3. 类库与组件: 这个当然没法和.NET Frmaework比了......
  4. 测试支持: 那一章节我跳过去了...
  5. 部署: Rails有点麻烦, 不过可以跨平台就是了.
  6. 学习成本: 两个都从头开始学, 可能RoR会更容易学一些.

五. 总结

其实.NET下的好东西了也非常多, 我就习惯为啥没人去开发一个.NET下的Rails框架呢?Rails的一大优势就是它是一站式的解决方案, 明显提升了开发效率.后来在InfoQ上看到一篇文章, 觉的有点这个的味道出来了:

<< 融合思想:深入探索S#arp架构>>