Rails框架流行在他的设计理念

简介:
这两天看了一本书《Grails权威指南》,看了这个Java上Rails框架,其中有两条设计理念:
1、make simple thing easy and make complex possible -让简单的事情变的容易,同时让复杂的事情的实现成为可能
2、Convention Over Configuration --约定高于配置
Rails几乎成了敏捷web框架的代名词,Java社区的Grails,.NET开源项目Mono Rails和Subsonic,还有微软ASP.NET Team正在做的ASP.NET MVC框架无不体现着上述两项设计理念。
看看在.NET进行Rails式的敏捷开发工具包:
1、MVC框架: 无论是Castle MonoRail还是ASP.NET 的MVC框架清晰,简洁,你要用这两个开发web框架,就一定要按他的方式做,model文件就放在models目录里,controller,view,helper分别放在特定名称的目录里,只要你按这个规则做了,那一切很简单,如果你较真抬杠非不这么放,那么也许能达到目标,但很累。不过在他的地盘上开发,为什么要不按人家的规则做呢,况且人家的目录结构,命名规则以及URL到action的映射都很合理很清晰,Mix上会发布的asp.net mvc 在URL Routing上会有很大的增强,MonoRail项目也在加强URL Routing这块的内容,看来自己要创建一套规则也容易。只是自己创建一套规则是否会更好。
2、O/R Mapping: NHibernate,IbatisNet等ORM架构都有至少有一个记录OR映射关系的配置文件,然而Rails框架没有,它使用Scaffold生成model,默认情况下就是英文复数的表名对应单数的Model,DB字段名对应Model字段名,表中必须有叫做ID的整形字段作为key等等很直觉的约定。这样开发者就不用为了“可能”存在的灵活性而维护一个大的OR Mapping配置了。这样简单的事情容易了。 SubSonic 项目和Castle的ActiveRecord的子项目,由于.net静态语言的原因,在动态特性的实现上没有RoR中那么灵活,它基于.net中的attribute来标识字段和关系,SubSonic 不是在运行时执行基于反射的映射,而是直接生成和编译数据访问层。他们的设计模式都是ActiveRecord,ActiveRecord做CRUD很简单,每个对象可以有自己的Fetch,FetchByxxx方法,从开发者的角度看这些对象,它们知道如何加载和保存自己,对象自己来维护IsDirty之类的标识,开发者不必关心这个对象应该被insert还是update。
3、Ajax,这年头,一个web框架肯定要支持ajax,asp.net mvc框架目前对ajax的支持方面很多人用jQuery做例子的很多。MonoRail之前默认用的是prototype库,MonoRail团队正在支持其他的javascript框架,可参看 jQuery 和 MonoRail
4、Loger: 对一个web应用,log是很常用的,Castle 框架和spring.net,MS企业类库都有log,还有一个更通用的Log库,可参看 通用日志
5、Mails: 对一个web应用,log是很常用的,Castle框架里面的支持很全面,从邮件模板到Mail发送的封装等
6、作业调度:对一个Web应用,用作业调度去完成一些系统维护和生成报表功能,是不可缺少的,这也有一个通用的项目支持 开源的作业调度框架 - Quartz.NET 
7、IOC容器:微软也在搞IOC,名叫 Unity  ,园子里有兄弟介绍了,可参看 依赖注入容器Unity Application Block(1):快速入门 。只是这还是一个婴儿,还没法和 Castle 、Spring.NET等开发了好几年的框架相提并论。
4、动态语言:随着DLR的到来,动态语言也来到了.NET,DLR现在发布 Alpha 8, SliverLight 2.0的到来,DLR就将就充当一个重要角色,也就是IronPython、IronRuby这样的动态语言正式进入我们的工具箱。

这么多的工具包,就是没有一个完整包装的框架,最完整的框架算是 Castle 的MonoRail框架,借助Castle的4年来的积累,还在继续前行,微软要推出asp.net mvc而打断了MonoRail项目的开发步伐。 SubSonic  本身是一个功能非常强大的应用程序工具集;如与 ASP.NET MVC 配合使用,它将成为非常有用的应用程序框架。总之,贯穿RoR的设计理念,这点对我们用.NET开发是很好的借鉴。





本文转自 张善友 51CTO博客,原文链接:http://blog.51cto.com/shanyou/73874,如需转载请自行联系原作者
目录
相关文章
|
JSON Ubuntu 搜索推荐
【Crow】一款开源C++Web框架的安装与构建
【Crow】一款开源C++Web框架的安装与构建
1027 0
|
4月前
|
消息中间件 设计模式 监控
简洁应用框架VSEF的架构
简洁应用框架VSEF的架构
|
5月前
|
存储 前端开发 JavaScript
2023年前端流行什么技术和框架了?
2023年前端流行什么技术和框架了?
122 0
|
JavaScript 前端开发 程序员
为什么要学习前端的流行框架|学习笔记
快速学习为什么要学习前端的流行框架
69 0
|
JavaScript 前端开发 程序员
为什么要学习前端的流行框架
一、企业为了提高开发效率 二、提高开发效率的发展历程 三、个人增强自己就业时候的竞争力
|
NoSQL 中间件 Java
2022年swoole流行的框架有哪些?
如果公司愿意提供付费服务支持,建议选择Hyperf,因为该框架对付费用户提供技术支持,并提供技术培训支持。 如果您无法提供付费,同时有PHP-FPM做切面式的性能优化需求,建议选择 SW-X 该框架支持纯框架实现的RPC服务,无任何第三方依赖的服务中心管理非常方便。 同时该框架除了提供Mysql、Redis、MonggoDB、RBMQ、Crontab、校验器、中间件、限流器等常用组件外,还提供了大量丰富的免费组件库,包括:身份证解析、经纬度反查省市区镇等大数据查询组件等,非常值得企业级开发使用。
|
开发框架 JavaScript 安全
Kraken:paypal开源的Web开发框架
PayPal最近发布了一款Node.js Web开发框架——Kraken。 Kraken基于Express。Express是目前Node.js上最流行的MVC模式的Web开发框架。Express提供的一系列强大特性可以帮助开发者快速创建各种Web应用。而Kraken在Express的基础上提供了更加稳健的功能集,包括本地化、环境配置,同时更加注重应用程序安全。
333 0
|
安全 中间件 测试技术
laravel框架为什么流行?
Laravel是一个有着美好前景的年轻框架,它的社区充满着活力,相关的文档和教程完整而清晰,并为快速、安全地开发现代应用程序提供了必要的功能。在近几年对PHP 框架流行度的统计中,Laravel始终遥遥领先。
1542 0
|
Web App开发 JavaScript 前端开发
推荐16个最流行的JavaScript框架
这篇文章列举了当下最流行的16个JavaScript框架,既包含jQuery和Mootools等常规框架,也有Zepo这种支持智能手机触摸功能的移动JavaScript框架,如果你有更好的框架推荐,欢迎与我们分享。
1599 0

热门文章

最新文章