在我看来,有两种类型的网络应用程序:网站和网络应用程序(表格和表格多于文字和图像......)。
我发现通过使用组件框架(apache wicket)进行排序,搜索等创建动态表单和表格更容易。我还发现使用播放框架创建网站更容易。
考虑到我在网站和网络应用程序之间的粗略区别,我可以说游戏更适合网站(php,rails ......的意思)比商业网络应用程序(想想基于网络的会计应用程序)很多桌子,表格......)
答案 0 :(得分:5)
我认为@TJ所指出的Play组中的帖子已经回答了你的问题,但是为了完整性,一般意见,以及我的也是,Play适用于网站和网络应用程序。< / p>
尽管Play确实使用Java编写网站变得更加容易,但这确实是它构建原因的次要功能。它的构建是为了使用Java构建Web应用程序更容易,因为J2EE堆栈太过膨胀,无法满足Play开发人员的需求。
以下是我认为游戏构建并且运行良好的一些原因,作为Web应用程序平台
我看到混合了使用Play构建的WebApp和网站,我自己也构建了Web应用程序和网站。 Play现在是我大多数网络项目的第一选择,而且我没有找到Play限制我想要实现的目标的主要用例。
答案 1 :(得分:3)
播放并不完美,但在Web应用程序开发方面,它是Java世界的真正进步。我仍然想知道为什么没有人决定早点做这种事情。
2年前,我几乎决定将Java视为网络开发的遗失。我曾经尝试过PHP / Python / Grails,并认为它比任何Java EE Web框架都更适合Web开发:更高效,更易学,开发和维护,所需资源更少,在图形方面具有更好的结果。 Java EE框架是可行的,但是你需要多少开发人员,时间和工具才能做基本的事情,比如做CRUD的表单?然后我发现了Play,从那时起,我认为Java可以再次成为一个很好的网络平台。 Play对于Web层来说足够轻量级,您仍然可以使用Java世界中所有那些出色的开源生产框架。此外,您可以使用Java编写代码,而无需切换到Groovy。自然还存在网页模板引擎的问题。播放提供Groovy模板,这不是真正的satistying。还有其他引擎:日本,剑桥,前。 Scala模板真的很有前途,因为它是一个编译的模板。 Java中没有解决方案。 Java根本没有针对这个主题。
Scala tempaltes感到好奇,并感谢伟大的Play! Scala集成并且作为高级Java开发人员越来越对全球Java惯性感到失望,我开始发现Scala,它在JVM中提供了非常强大的Java替代方案。 Scala非常成熟,并提供即使在10年内也不会出现在Java中的功能。我还不确定基本的Java开发人员是否可以轻松切换到Scala,因为Scala是一种高级语言,允许以多种方式编写内容,而不是像Java那样的一两种编写方式。您可以在编写Java时编写Scala,但它功能更强大,您很快就感到遗憾,这样做很可惜。然而,正如任何高级语言一样,如果你不想结束编写难以理解的代码IMO(在C ++中它是相同的而我不谈论函数式语言),它需要在编码策略中更严格。无论如何,对于一个高级开发人员,让我告诉你,在Scala中实现一段代码比在Java中更令人满意......这是事实;)
传入Play2.0也很有前途...... 我相信Java + Web可能不仅仅是下面的“漫画”恶性循环:“编写标签,编写bean,编写JPA,在任何地方编写XML /注释,重新部署,等待,等待,测试...... 10个例外......重写标签,重写代码,启动调试器,重新部署,等待,等待,测试......调试......哦不:错误不在代码中但在标签中...卡住......“;)...在至少,在Play中,你删除“等待,等待”,“xml / annotations无处不在”,JPA不是必需的(好的,你也可以在Java EE中选择其他东西)和标签错误(好吧你可以有其他的bug)但无论如何,它给出了另一种观点,有时它很好)
答案 2 :(得分:2)
与Ruby on Rails和Django相同的游戏对我而言 更好:-)我正在开发相当复杂的应用程序与Spring和 JSF 2.0(PrimeFaces),我认为这是一个不错的选择。我试过Vaadin(上 GWT)但复杂的UI使得客户端代码如此繁重,以至于它会被杀死 某些计算机上的Firefox,在Chrome和Opera中运行速度相当慢。 这让我不相信GWT。我也不会在这里使用Play-JSF 很适合我。另一方面,我永远不会尝试写公共网站 与JSF2。这里玩的很棒!
答案 3 :(得分:1)
我已经将play用于一个只需要用户界面和数据库的小应用程序,而且开发和使用起来似乎相当快。但是,如果您有一个需要在Web / app容器和小型UI组件之外运行的大型批处理组件,我认为这不是一个好的选择。基本上play不允许你在容器外重用模型,因此在这种情况下,你需要在ui应用程序批处理中创建复制和维护问题两次编写或映射数据库。
我认为在这种情况下,使用传统的分层方法,您可以使用UI和批处理重用的服务层(例如,服务层中的DAO编写一个并重复使用)。如果你不同意,请告诉我,但有没有人有任何指导原则,应该使用游戏框架,不应该使用它,非常有兴趣听取人们的意见。