C# ASP.NET开发者应该学习哪个开源Web框架?
我是一名网页开发者,主要使用C#在ASP.NET上工作(包括Webforms和MVC)。
我之前也用过PHP以及其他一些框架和语言。
现在我主要专注于两个平台的开发。
一个是专有的行业级框架(ASP.NET MVC),
另一个是开源且免费的框架(可以插入你喜欢的框架名称)。
我没有使用过Python或Ruby的经验,但我想学习其中一种,并使用Django或Rails。
虽然我知道这两者和ASP.NET差别很大,但请告诉我哪个过渡会更顺利。(或者哪个迁移的痛苦更值得!)
谢谢!
丹尼尔
5 个回答
在开源框架中,我会在RoR和Django之间选择。尽量远离任何基于PHP的东西。
首先,我建议先学习基础语言,掌握一定程度后,再选择你喜欢的语言所构建的框架。例如,我使用Django是因为我学的是Python,而不是Ruby。我曾经尝试过Ruby,因为我被雇佣去做一个Rails项目(是前端工作,不过这不重要),但我觉得Ruby对我来说有点太“轻飘飘”的感觉。
其次,文档的问题也很重要。Django的文档总是保持最新(保持更新是Django开发过程的一部分),涵盖了99%你想查找的主题,而且一旦掌握了基础,跟着文档走还是比较简单的。剩下的1%你想查找的内容通常完全没有文档,可能需要从源代码推导出来,或者根本无法找到(不过通常可以通过第三方应用找到解决方案,这些应用也很容易找到)。我对Rails的了解不多,但在我短暂的尝试中,几乎找不到有用的文档;也许我是太习惯Django的文档了。
最后是开发环境的问题——你可能会在一台机器上有多个项目,可能会有依赖冲突。使用Django/Python时,你可以使用virtualenv和pip,这些都是Python开发过程的一部分(或者说你应该使用)。这些工具非常适合为不同项目设置独立的环境。Ruby没有标准化的工具来实现这一点,但有一个叫sandbox的gem,在我使用时效果还不错;不过在我看来,它似乎需要与Ruby的自然行为“抗争”才能让这个概念工作。不幸的是,看起来它已经有几年没有活跃开发了。
其他需要考虑的因素包括框架的第三方应用数量,以及支持框架的社区的规模和态度。不过最终,我想这还是取决于你对自己所知道的语言的舒适程度和个人偏好。
我会坦诚地说,我是支持Django的。
我之前做过ASP,然后是PHP,接下来这5年一直在用ASP.NET,最近也尝试了一下Python,现在在学Ruby on Rails。别为了逃离微软的技术栈而去学一些“相似”的东西。可以看看Ruby on Rails,它的思维方式和之前的很不一样,你会学到很多新东西,这些会让你的ASP.NET代码变得更好。
对我来说,Python和Django感觉更好也更简单。虽然不那么神奇,但Ruby on Rails确实很棒,有很多优点。
我建议你去看看www.tekpub.com,那里有Rob Conrey这个微软.NET的专家做了很多教程,包括关于RoR 3的视频教程。
我最近在学习Rails,感觉非常不错。不过,有一个让人头疼的地方就是文档的问题——Rails的3.0版本刚发布,但你会发现并不是所有的文档都是最新的。不过,实际上你还是可以比较轻松地使用它。
话虽如此,我还是很喜欢它。Ruby是一种非常优雅的编程语言。你可以通过阅读这个指南来了解Rails的基本情况:http://guides.rubyonrails.org/getting_started.html