要构建Web应用程序,目前存在哪种开源Web应用程序框架/技术:
更快学习.
便于使用.
有快速开发的小部件(从GUI角度来看).
数据库集成.
我希望这个Web应用程序与Java客户端进行通信.我不是在服务器端绑定Java并且可以自由地尝试任何好的快速应用程序框架.
总而言之,我没有为服务器端做太多工作,因此我不熟悉相同的工具和技术.
你会建议什么?
任何和所有的输入都会受到欢迎!...
这个问题没有单一的"正确"答案.作为一个大约10年以上的Java程序员,当被问到这个问题时,我通常的答案是...... PHP.有几个原因:
资源使用率低(Apache,nginx);
便宜的托管;
入境门槛低;
它实际上是面向Web的,而不是可用于Web的通用目的(如Java);
PHP脚本在请求之间不是持久的(如Java servlet)这一事实使得它们更加宽容,并且不太可能导致内存泄漏和其他问题;
没有部署步骤(如Python,Perl等).我想这是关于动态脚本语言的最好的事情.只需保存文件,然后单击浏览器上的重新加载;
PHP可能在语法和其他几个方面不一致,但它也很成熟并被Web上的一些非常大的网站使用(例如Facebook,Yahoo,Flickr,Wikipedia);
PHP是迄今为止最流行的Web开发语言.
小部件可以通过任何方式的Javascript框架来完成,如YUI,ExtJS,SmartClient,jQuery UI等;
PHP非常适合MySQL.
话虽这么说,其中很多也适用于其他语言(例如Python/Django).
我认为您不一定需要PHP的框架,但如果您这样做,我会看一个或多个:
Kohana:它就像是更受欢迎的CodeIgniter的更现代版本;
Zend Framework:它是模块化的,因此您可以根据需要使用尽可能多的内容;
Smarty:它是一个强大的模板系统.
Django有一些值得注意的"快速"项目,包括自动生成的管理界面,捆绑的ORM(通过不必编写SQL和其他一些代码来降低开发时间),以及一个包含多个可重用应用程序的大型社区.
Django(或Ruby on Rails或任何其他MVC框架)不会很快就是你第一次开发它们时的学习曲线.Django(和RoR)有很多分离的问题,如果你不习惯那种环境,那么学习框架需要一段时间.如果您正在使用ORM,那么也可以使用ORM,当然,对于任何框架,您都可以使用API来学习.
另一方面,PHP在您放置代码的位置以及页面组成Web应用程序方面更加直观.它基本上可以让你在任何你想要的地方拍打代码,所以一开始它可能会更快.最后它会更快但你的最终产品会更加笨拙,可能需要在以后进行重新分解.
这归结为一个问题,即框架的用途是什么.如果它是一个业余爱好网站,只需使用简单的(PHP),否则你可能想要考虑一个良好支持的MVC框架.
正如其他人所指出的那样,jquery可能是预制GUI小部件的选择.
编辑 - 显然现在Django(截至1.1)有一套非常棒的单元测试工具,它捆绑在一起.像扩展的TestCase,专门用于Django,一个测试客户端(你可以用实际的客户端或服务器做测试页面请求),一个工具,给你一个项目的测试覆盖率,以及一堆其他整洁的东西.