我们的团队是web应用程序开发的新手。我们一直在使用Java开发基于windows/Linux的应用程序。该团队还拥有丰富的Perl经验。
新的任务是开发一个内部私有云web应用程序。看看所有的web应用程序开发框架: Ruby on Rail,Drupals,Zend Framework等等,这是相当令人困惑的,它们都是开源框架,都声称是最适合快速web应用程序开发的框架。这些框架的优点和缺点是什么?
对于实时团队协作内容管理web应用程序,哪个框架是最好的?
由于该团队具有广泛的OO应用程序开发经验,因此需要一个具有强大web小部件支持的OO框架。有什么建议吗?
发布于 2010-01-14 15:50:42
归根结底,没有人能真正告诉你一个框架比另一个框架更好,但我给你的建议是熟悉基础知识,然后再看看你已经经历过的评论。
Drupal (以及Joomla和Wordpress)都是基于PHP的内容管理应用程序。这些是完整的解决方案设置,而不是框架。你可能会发现它们中的一个已经适合你的需求,并且通过很少的编程,它可能就是你需要的。例如,这个应用程序厨房site就是使用WordPress构建的,这意味着只需调整代码就可以完成什么。
尽管如此,很可能你必须从头开始构建你的应用程序。我相信,对于您来说,理解基本web开发概念的最好方法是,从一个简单的基于Servlet/JSP的应用程序开始。您将必须学习如何使用Tomcat或Jetty等servlets容器,并且您将面对相对容易的学习曲线。跳过你可能会在旧教程中遇到的所有旧JDBC/SQL技术,简单地尝试理解MVC (模型-视图-控制)的概念在构建UI时,你可能会遇到术语JSF,我建议也跳过它。目前的常见做法是使用纯HTML/AJAX/javascript构建UI。
说到javascript,JQuery是各种框架中最受欢迎的,但你可以考虑Prototype,因为它与Ruby on Rails和CakePHP (稍后会介绍它们)很好地集成在一起。对于你的第一个应用,试着构建一个简单的请求-响应web应用(同样,在这个阶段避免使用数据库),同时使用一些AJAX。
一旦你完成了(2-3天),你将准备好更好地决定什么框架最适合你的需求。从这个意义上说,Spring框架过于臃肿和陈旧,但如果你有不同的想法,那么Java框架在这一领域是事实上的。除非您打算构建大型遗留企业应用程序,否则请完全避免J2EE/EE5,因为它们被认为是过时的,至少在我的环境中是这样。即使它不是可接受的解决方案,一个非常好的想法是花一天时间学习Google AppEngine for Java,它基于一个Eclipse插件和基于Jetty,在那个层次上,学习它应该是毫不费力的。它是一个具有一定附加值的servlet conatiner。您将了解ORM概念(这实际上是您在任何其他现代web框架上使用数据库的方式)。作为额外的奖励,您还可以加入云计算的潮流。
从现在开始,选择你的终极框架将变得更加容易。在这一点上,您可能更喜欢进一步了解Java,或者挂接到另一个成熟的web堆栈中。如果你仍然坚持使用Java语言,可以看看GWT (Google Web Kit是用来构建Google Wave的)。因为它会让你回想起熟悉的Swing组件和布局的美好时光。作为一个性价比高的解决方案,我认为这是您的实时团队协作内容管理web应用程序的更好选择。
然而,如果告别熟悉的Java世界是你想要的,有些人会坚持认为你应该决定直接跳到PHP或Python框架,Facebook,WordPress (PHP),Google和FriendFeed (Python)是其中的一部分。Ruby on Rails也可以是一个选择(Twitter),但它的光辉时代现在已经结束,因为许多框架很快就采用了它的核心概念和想法。对于PHP,我推荐CakePHP (Mozilla Add-ons the ),这将是一个从Java堆栈过渡过来的简单方法。Zend是笨重的家伙,不是你的解决方案,如果你时间不够,codeigniter/symphony可能对你的需求来说太轻了,但值得回顾一下。
对于Python,可以考虑来自Facebook的新的顶级框架(由FriendFeed开发),这是一个自主开发的易于学习的优秀框架,名为Tornado。它回答了一些其他框架无法解决的问题,这可能正是您所需要的。你可以在5分钟内在他们的homepage上得到它。Turbo-Gear和web.py也是成熟的设置。
希望我能帮上忙,祝你好运。
发布于 2012-12-21 01:54:25
这是一个相当古老的问题,但我想我应该分享我的想法,因为这个问题仍然是相关的,应该更多地讨论。
如今,当环境发生变化,云已经成为运行web应用程序的标准环境时,这就影响了如何使用框架。您列出的这些产品都不适合“按原样”上云,因为它们的根源在于单服务器时代。
无论框架是什么,最重要的是如何设计web应用程序。例如,您可能不希望在应用程序中运行任何Quartz/Cron任务,因为当您向上扩展时,所有这些任务也会成倍增加。这会导致多次执行相同的工作,而实际上应该只执行一次。
在为云设计web应用程序时,云环境必须被视为分布式系统,这意味着只有自治子系统才能真正响应需求。可伸缩性是你为什么应该在云中的最重要的事情。如果你不需要它,那就不要付钱。
所以要回答你关于哪个框架的问题,我要说的是,首先你必须知道你想要实现什么。如果您有将您推向云的需求,那么您需要专注于设计,然后选择适合该设计的框架。如果看起来你不需要那么重的东西,那么所有的框架都可以完成这项工作。
发布于 2009-10-31 18:36:10
作为Python的粉丝,我必须推荐一个Python web框架:web2py。它易于使用,可以与许多数据库一起使用,并且可以在GAE上使用。在他们的网站上看幻灯片。
https://stackoverflow.com/questions/1653663
复制相似问题