在实现了apache上可以运行rails以及apache可以取得windows 域认证两项功能之后,就剩下一个问题,如何在rails程序中得到登陆的用户名.其实非常简单,单因为对rails和ruby的不了解,还是花了我至少4个小时来从网上和文档中查找.甚至在javaeye论坛中发贴询问,结果导致被设为隐藏贴,禁止发贴30天!搞得我莫名其妙,难道这个问题真的简单到被禁贴的程度?
幸运的是最终我在rails的参考文档中找到了答案.
在rails app中,可以在controller中使用
request.env["REMOTE_USER"]得到登陆的用户名,如果要得到需要加上域名的用户名,则在httpd.conf的配置文件中,就需把,SSPIOmitDomain 参数设为off,或者省略.我用作测试的controller如下:
class TestController << ApplicationController
def index
render :text=> request.env["REMOTE_USER"]
end
end.
到此为止,我发现我可以用ruby on rails做这么几件事了:
1.快速开发简单的应用,可以利用rails中相当不错的特性,比如mvc,ajax,rhtml等等(我认为taglib功能又弱又繁琐,学习它和学习ruby差不多了)
2.和公司内部的认证机制联系上了,用户在使用我的应用的时候,不需要再记住一个密码.在此基础上,权限管理就可以实现了.
3.试用了几个ide环境后,发现netbeans 6.0对ruby on rails的支持最好.因此我也有了一个ide环境.
我觉得基本上,在企业内部开发一个简单的,只需要几个页面和权限管理的小web应用上面的东西已经足够了. 问题就来了,我花了两个礼拜的时间学习ruby on rails,搭建环境尝试可行性,那么这套东西,是不是真的能为企业所用?和JAVA相比毕竟ruby
太年轻了, 在企业内部充斥着java,偶尔点缀一些.net和perl的环境中,ruby能用么?
看了网上若干篇有关ruby的未来或者j2ee末日的文章,中文的,英文的.再加上我自己的感觉,想先谈谈我自己的看法.首先谈ruby的优点:
1.ruby on rails对开发者来讲,真的是方便.在J2ee中复杂的让人发狂的接口调用,类型转换,在这里都没有.我觉得应该归功于它的无类型特性吧。spring+ibatis中复杂的xml终于不见了,在一个简单的应用中增加一个表字段,spring+ibatis中要修改至少10个地方,比如pojo,xmls,form类,dao类,controller,jsp等等,而且每一处要修改的地方都很复杂,类型的匹配转换让人发疯。rails
约定>配置的结构让我也非常高兴,我们不用再花时间讨论如何建立project的文件夹,确定文件夹的名称,发布等等。还有其他很多的特性,都让开发人员很愉快(相对于java和j2ee来说)甚至他们依赖的环境也不是复杂而缓慢的weblogic,而是简单而有效的apache(指我最后确定的架构而言)。
而对开发人员的种种便利,对用户和需求方也同时是一种便利,他们可以快速的看到开发的成果,及时调整他们的需求。这对于我现在面对的应用——需求简单、多样、规模小——非常的有意义。
2。比java低的多的学习曲线。我的开发人员,包括我在内都是经验不太丰富,因为我的本职是系统管理员,面对java世界中的概念,我不止一次有过绝望的心态从J2EE,EJB,JMS,ajax到各种各样的架构(我最终选择了spring+ibatis学习和应用),什么反射、注入机制、多线程技术、ORM,太多概念要理解,尽管有eclipse这样优秀的ide可以省下一些时间,但对我们这样需要一定的开发,又不是专业程序员的人来讲,作为第二专业太过庞大了。我试过python、perl,但他们缺少框架和ide的问题使我放弃。ruby不同,语言简单、框架简单,连使用ajax也那么简单,学习曲
线大大降低。我甚至认为这是不是一套专门给业余人员发明的东西。
但和一下的问题比起来,ruby on rails
众多的优点仍然不能让我下决心正式使用它,尽管我已经花了2个礼拜的时间考察它。
最决定性的因素是就业,我需要为我的组员负责。现在java相关的职位浩如烟海,可是ruby的我现在还没看到几个。尤其是大公司的招聘中,没有几个提到ruby相关的。如果我让我的组员开始使用ruby去做应用,将java放在一边,一旦跳槽的时候他们怎么办?难道让他们一出去就当架构师和项目经理(不需要编程的那种),ruby毕竟是一门语言,我相信如果要做得好,一定也要花相当多的时间和经历。而且语言本身并不是学习的难点,相关的体系、架构、API、程序库的使用,这些才是程序员最花时间的地方。而在这些地方,ROR和java阵营除了部分理念相通,其他的能借鉴的地方实在不多。
其次,ruby毕竟太新,没有众多的厂商支持和开源资源可以用,尤其是
国内的。而java在这方面优势巨大,尽管java开源的东西大多数都是中看不中用,但毕竟比没有强。比如图表软件?ruby上除了一个可免费使用的chartdirector,谁能再找到类似javareport,jfreechart的东西?还有一个问题:ruby有未来么?除了时间,谁也无法回答。
企业内部现在都是java和。net的天下,一个新开发的程序,及时再小也难免和现有系统进行交互,比如认证系统,比如相关的信息共享,不可能都是用数据库的表操作,或者期望缥缈的SOA。而跨语言的rjs毕竟效率上和功能上都不能和已有的java应用相媲美。当然,我看到他们使用。net开发的应用和java交互时也一样是一筹莫展,但毕竟他们自成体系。而且及时我们采用了ror,我们还是有一堆的现有应用需要维护,需要更新。让我们的程序员们通晓java和ruby?不,这只能让他们什么也不精通?
所以说,不论从公司角度,还是从员工角度,使用ror的风险都太大。让我实在难以下定决心来使用它。
上面的这些,已经和install rails with apache没什么关系了。因为这两天一直在思考这个问题,所以写出一点心得,也算把思路理理清楚。
posted on 2007-03-04 22:14
Steven.L 阅读(445)
评论(0) 编辑 收藏 引用 所属分类:
ruby on rails