先别这么乐观,也许只是没有进行深层次地应用所表现出来的假像而已.
其实跟着asp.net的入门书一步一步地学习也可以觉得asp.net很简单的,不是吗?
一个框架,如果让做一些事情方便,那肯定会让做另一些事麻烦的.
@deerchao
我用了3年ASP,然后又弄了1年ASP.NET,我都还是写文章说“我不懂ASP.NET”,然后一直研究,才有那么一些“深入理解”系列的文章。我一开始就不觉得ASP.NET是简单的,就算以3年ASP经验去看,每一个ASP.NET所谓的feature都是表面简单实际上难用的。
然后我现在以这么几年的Web开发经验去看RoR,就真的觉得在大多数场合它都能提供便利,所以我才赞这种技术的。
我也是从asp走过来的,不可否认的是Web Forms确实让一些事情变得容易了许多,比如封装好的控件用起来很方便,比如集成的MemberShip Provider使跨应用的用户身份集成更容易实现,比如能比较方便地引入Ajax,等等.
当然,当你深入应用这些特性时会发现不少的问题:例如页面的生命周期与ViewState的一致性问题.但是,这是为了获得"控件封装Html"效果的必然支出,是无可避免的.Java世界里不是也出了个JSF嘛,据我所知,也是跟Web Forms很类似的一个东西,有其优点,就有其缺点.
Ruby On Rails我没有使用过, 只是从一些资料上知道了它的一些概念, 现在我也在学习.net版的ROR: Castle MonoRail. 说实在的,我觉得如果每个项目里你都得用HTML/Css/Javascript写一遍树控件的表现代码,写一遍菜单的表现代码,写一遍Tabs的表现代码;写一遍用户管理的代码(而且我们的代码未必有Asp.net集成的代码那么高的安全性/性能);我觉得这其实也是一个很麻烦的事情,对不对?
ROR给我的感觉就是代码生成器很厉害,至于其宣称的MVC模式,我觉得其实在Asp, Asp.net里都可以做到,只是Asp/Asp.net不强制你使用这样的模式而已.
@deerchao
Web Form确实为了表面的易用性而引入了内在的复杂性。例如Init和PreRender不能改动ViewState,这就增加了耦合度,让使用者的ViewState的读写和页面生命周期耦合起来。
RoR让我觉得好的地方就是它类似ASP那样保持着低耦合,即使完全不是MVC,好像ASP那样将代码全写到View里面也没问题,不过这个耦合是使用者自己加进去的,而不是框架自带的。然后如果采用MVC分离,那么框架耦合程度基本上没增加,而使用者自己的代码的耦合程度则能够大幅度下降。
@JesseZhao
ASP其实挺好用的,如果抛开性能和ADO、XML调用的不再进步的话。
我自己有一套ASP的小框架,以规范自己的ASP代码在何处干何事,这样可以适当降低代码的耦合度。做一些小应用时,用ASP来RAD一下其实真的很快。
ROR 的 框架学起来是真的好爽,RUBY这个语言也真是好..
不过..如果写真实的应用程序时.. 缺少INTELLISENSE,很简单的东西
却不知道 怎么做(应为书上没讲)..那时真是让人发疯...
Agile Web Development with Rails里面已经讲了很多常用的东西,不知道该用什么的时候就可以查。如果是书里面没有说的,就查官方文档,这和查MSDN的道理一致。
没深入研究过RoR,本不应该瞎说,但其实感觉为php、asp这些写一套代码生成器,搞一套约定,一点不会比RoR差。感觉Ruby绝对是垃圾语言,从本质上把人们带回了QBasic甚至是过去小孩子玩儿的那个什么小海龟Logo的时代,然后给点适用于Web构建的甜头。说白了就是现在各种框架,包括ASP.NET和Java那边比较经典的,都有点过渡设计,而大多数人开发的无论怎么吹,不过是些小应用,所以一看见返璞归真的东西,反而有种松口气的感觉罢了。这里有个深层次的问题,即Web开发根本没什么技术含量可言,本来就是小孩子就能玩得转的。这样ASP.NET这些东西,出发点本身就是错误的,自然造成很多让人不爽的结果。我觉得越是这样的东西出现(个人认为将来还会有更简约、更方便的形式),越得警示自己,是不是真的有价值,所谓的Web开发程序员/架构师的身份,还能持续几天?
@怪怪
我认同一个好的框架和代码规范能在其他语言平台上实现RoR的效果,不过既然Rails选择了基于Ruby,而没有选择给予其他语言平台,那么肯定有它的原因。这有可能是因为Ruby的一些语言特性,也可能是因为Ruby优秀的跨平台设计。
反正谁弄,怎么弄,也不会选择微软的平台,大公司支持的Java也得放到后面..,动态、静态语言的区别和其它语言特性上的考虑,我想倒反而是其次的。然后再剩下的几种语言中挑选...。
不过你说的对,必然是有几个真正像样理由才导致Ruby或胜,应该保持一个开放的心态去看待新事物...
@怪怪
假如这事情由我来做,我就会选择JavaScript了,同样是动态语言,而双端都用JavaScript就会让人很容易学习,JSON传递的解释也容易多了。
不过要做一个基于JavaScript的Web服务器应该比Ruby要难得多,首先JavaScript就不能像Ruby那样直接命令行执行脚本文件,也缺少IO相关的指令。
hehe,这个所见略同,我也觉得JavaScript最合适。其实JavaScript缺少的部分,基于其它几种语言所相关的平台实现也不会太费事,个人觉得还是随机性的因素,比如作者的个性... -_-
@Cat Chen
让javascript 直接命令行执行脚本文件,和IO指令有很简单的办法实现滴。
这本书真的非常爽,写的也很棒,也很诙谐。而且给你strp by step的感觉。
但是,但是看完后就没有机会发挥了,自己做了点小东西试试手,想找一个真正的项目实践一下都没机会,现在也不看了,忘得也差不多了。
哎~~~~ 还是环境不行呀。
@欣欣
Google一下就知道MySql的官方网站了吧。
很多时候会觉得没有控件,怀念 asp.net
就像我现在用 django,上次为了一个 calendar 而发疯。最终还是自己些了一套,可也没法很好的重用。
@木野狐
没有控件也可以自己写组件吧,用ASP的时候我也是自己写一个函数专门用来生成calendar的。
@mad
这本书的已经有中文版,不过是由第一版翻译而来的,不是第二版。