当前位置:  开发笔记 > 编程语言 > 正文

Play Framework 1.0和2.0之间的主要区别是什么?

如何解决《PlayFramework1.0和2.0之间的主要区别是什么?》经验,为你挑选了5个好方法。

随着最近发布的Play Framework 2.0,我想知道是否有人可以从高层次的角度总结Play Framework 1和2之间的主要区别.

我已经编译了一些(播放1.0 - >播放2.0):

模板引擎:Groovy Pages - > Scala模板

持久性:休眠 - > Ebean

语言支持:Java - > Scala,Java

动态编译:字节码注入 - >通过SBT进行动态编译

构建系统:不适用 - > SBT

可扩展性:模块,插件 - >子项目,插件,SBT插件

还有什么 ?阿卡?



1> opensas..:

这是我的清单,当然,有一些重复

打破向后兼容性(从头开始重写)

scala与java编程的核心(学习scala协作)

模板的scala(但是作为模块在groovy模板上完成工作,以便于迁移),因此您必须指定每个参数的类型

sbt控制台而不是python脚本

sbt用于解决依赖关系而不是内置解决方案(播放依赖关系命令)

模块可用性,显然需要一些时间来迁移它们...

对于java,它有利于ebean代替hibernate(但你可以使用hibernate)

对于scala,附带anorm(但你可以使用其他库)

更模块化,更容易挑选其他组件

更多类型安全 - 在编译时检查视图甚至路由

更好的性能

类型安全支持,它是类型安全堆栈的一部分

不那么神奇,没有那么多的字节码生成和类似的东西

更标准,(游戏项目只是标准的sbt项目)

不同的控制器API(更详细,恕我直言)你可以比较一个简单的播放1.x crud控制器与类似的播放2.0一个

scala是一等公民,但同样支持java(每个都有本机API)

热重编译速度较慢(它还处于测试阶段,让我们希望他们解决它)

scala IDE支持不像java那样成熟(但它的发展很好)

异步支持委托给akka

更好地为不同类型的数据源做好准备,比如nosql dbs

有关更多信息,请查看播放2.0页面(此处提供西班牙语翻译)和RC1文档

无论如何,我认为主要区别在于1.x尝试构建自己的堆栈,同时逃离j2ee,现在它们是基于scala,akka,sbt和公司支持的新的替代堆栈的一部分像类型安全...



2> niels..:

我发现以下几点很重要.有些是专业人士,有些是反对派.你必须自己看看你喜欢什么版本.

核心是用Scala编写的,所以如果你不是Scala开发人员,你就无法自己修复bug.这是1.2的优势.此外,如果文档不是很好,你就会丢失.在游戏1.2中,您可以简单地查看代码.使用eclipse,您可以使用IDE轻松搜索参考.我不确定它是否存在类似Scala的IDE.我听说eclipse和intellij一起工作很好,但没有经验.

组件在2.0中更松散地耦合.在Play 2.0中,您可以轻松选择首选的模板引擎或持久层.在1.2中,选择除JPA之外的东西更难以持久.

Scala现在是一等公民,所以如果你想用Scala或Java编写你的应用程序,你可以自由选择.

对其他框架的依赖性更高.例如,他们现在需要Scala和Akka.两者都很好,但很复杂.因此,如果其中一个框架出现错误,您可能会遇到大麻烦.在游戏1.2中,我只看到了Hibernate的风险.

"Everything"现在是类型安全的,可以由编译器检查.

将Python更改为SBT意味着您需要在开发计算机上拥有更多内存.我的意思是Scala编译器至少需要512 MB RAM.这可能是连续构建服务器上的问题.

当然,Codemwnci提到了许多小细节.


在Scala上,IntelliJ和Eclipse可以正常工作.

3> Codemwnci..:

你的清单是一个非常好的开始.我的列表看起来类似于一些额外的东西.

模板已从Groovy转移到Scala.

Scala成为一等公民,而不是可选插件

更加注重类型安全,特别是在模板中

Python到SBT

Hibernate到Ebean

Akka补充Play 1.x中的异步功能,而不是Akka作为模块

核心中的Anorm(而不是scala插件)

由于动态元素较少且编译较多,因此生产性能得到改善

集成到TypeSafe堆栈中

正如您所料,我们的列表之间存在重复.同时也提醒说这个名单截止到2011年11月,而第2场比赛仍处于测试阶段.


是的,我只知道因为我必须从当地的常春藤仓库中删除一些JAR才能使SBT工作;)
python to sbt,好抓.是不是基于常春藤?

4> Shrulik..:

这里有一些非常好的答案,我只想添加一些小点,并提供随着时间变得更清晰的细节.

浏览器内报告:在浏览器中播放2报告Javascript(使用谷歌的闭包编译器)和CSS文件中的错误,而不仅仅是Java/Scala文件.这真的很酷.

部署为WAR: Play 2 仍未正式支持部署或导出为WAR.存在一个应该提供此类支持的插件,但是在测试版中存在一些已知问题.如果没有Servlets 3.1容器,所有Play 2功能的完全支持是不可能的,这将至少需要半年,可能更多.

插件:目前,还有更多的游戏1,如果你依赖一些插件,请确保它也适用于游戏2.

IDE支持: IntelliJ 12应该内置支持播放2.你已经可以获得EAP(我用完了允许的超链接,所以你必须谷歌).

主观意见:我觉得Play 2似乎牺牲了一些简单性来支持更高级的功能和更完整的类型安全性.我不是说Play 2很难或不直观,只比Play 1少.

Play 1是Web开发人员为Web开发人员提供的Web框架.Play 2是Web开发人员面向Web开发人员的前瞻性Web框架.

可以这么说,焦点略有转变,易用性不再是主要目标,而是两个主要目标之一.这当然只是我的意见,我知之甚少.



5> HelpMeStackO..:

您可以在以下博客文章中找到关于该主题的另一个观点:http://blog.awfbeat.com/post/22314115684/impressions-of-play-framework-1-2-4-vs-2-0

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有