- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
我正处于 Web 应用程序的规划阶段,我正在尝试在 GWT 和 Cappuccino 之间进行选择。我有一个我认为哪个更好的想法,但我的合作伙伴被卖掉了另一个选择。我希望从使用过一种或另一种或两者的人那里得到一些关于每种利弊的反馈。提前感谢您提供的任何见解。
最佳答案
工具包v/s 框架
GWT 是 toolkit .它的优势在于它提供的用于创建应用程序的工具。但它不提供框架。开发人员通常会在 GWT 上构建一个小型框架来满足他们的需求。构建应用程序的 MVP 模式受到了很多重视,但这并不是使用 GWT 的唯一方法。
Cappuccino 是 Framework .它具有构建应用程序的规定方式。此外,它还提供库来执行高级任务,如动画、拖放撤消/重做等。GWT 不为此类任务提供任何库,但第三方库可用。
这意味着 Cappuccino 应用程序往往比相应的 GWT 应用程序更丰富。
离线编译与运行时翻译
GWT 相信在编译时做出决定。浏览器检测、I18N、图像内联、 Sprite 生成、uibinder 模板评估都在编译时执行。 Deferred Binding允许开发人员在他们自己的应用程序中利用这个概念。
编辑
默认情况下, Cappuccino 不需要编译。浏览器下载objective-j 文件,然后框架在运行时直接翻译/解释它们。但是,可以 compile using jake .您可以从多个压缩器/压缩器中进行选择,包括 google's closure compiler .
由于这一架构决策,GWT 应用程序在运行时往往比等效的 Cappuccino 应用程序更快。但是,由于编译时间成本,开发速度往往比 Cappuccino 慢。 GWT 开发插件在某种程度上减轻了这种痛苦,但成本并没有完全消失。
由于 GWT 是 closed-world
编译器,它可以删除未使用的代码、内联方法调用、实习字符串并以 Cappuccino 无法实现的方式优化代码。如果 Cappuccino 引入编译步骤,它可以执行相同的优化;但据我所知,在编译时无法进行翻译。
通过可选的编译步骤,这一点变得毫无意义。但是,与 GWT 应用程序相比,不执行此类编译的 Cappuccino 应用程序将具有较差的性能。
类型安全
GWT 是 java - 因此是 type safe . Objective J 是 javascript,因此是动态类型的。这个有自己的advantages and disadvantages ,既然是宗教讨论,我就不做判断了。
调试
GWT 提供了一个浏览器插件,可以帮助开发人员直接调试 Java 代码。在开发模式下,开发人员可以看到 Java 堆栈跟踪。然而,在运行时,生成的 JS 代码会被混淆,并且很难调试(尽管有一种方法可以告诉 GWT“不要混淆我的代码”)。
使用 super-dev-mode现在可以直接从 Web 浏览器调试 Java 代码。
Cappuccino 没有开发模式,这意味着您必须使用现有工具(例如 firebug)进行调试。错误由浏览器报告,要调试代码,您必须使用 JS 调试器。
单元测试
使用 GWT,您可以编写不需要浏览器运行的纯 Java 单元测试用例。这具有明显的优势——速度和重用现有基础设施的能力就是其中的一部分。当您确实需要浏览器进行测试时,您可以选择 GWTTestCase 或 HTMLUnit。也可以使用 Selenium 进行测试。
可以使用 OJTest 测试 Cappuccino 应用程序.不幸的是,我找不到有关该主题的太多文档,因此无法发表太多评论。当然,您始终可以使用 Selenium 来测试您的 web 应用程序。
与 Javascript 的互操作性
GWT 提供了一种与现有 JS 库对话的方法——它被称为 Javascript Native Interface .它已经成熟并且运行良好,但不是很直观。 Objective J 是 javascript,因此您无需执行任何特殊操作即可与 Javascript 进行互操作。
愿景
我无法支持这个论点,但 GWT 倾向于专注于创建高性能 Web 应用程序,而不太关心外观。他们从不妥协于性能。另一方面, Cappuccino 倾向于专注于更高级别的功能和框架,并在运行时性能上妥协。
因此,Cappuccino 应用程序看起来更丰富,但加载需要一段时间。 GWT 应用程序加载和响应速度更快,但看起来很无聊。你可以解决这两个问题,我敢肯定 - 但这是开箱即用的方式。
社区支持与支持
GWT 由 Google 提供支持。他们对 GWT 的 promise 非常坚定。来自 Google 的较新应用程序(Wave、Adwords、Orkut)基于 GWT 构建。 Google IO 已经就 GWT 举行了几次 session 。 user forum非常活跃且响应迅速,工具包本身由 Google 和开源社区积极开发和维护。 Cappuccino user group不那么活跃,成员也少得多。
关于GWT 与 Cappuccino ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933266/
我想知道 GWT、GWT-RPC、EXT-GWT 和 Smart GWT 之间的区别。目前,我设法借了有关 GWT 的书籍,据我所知,它只是一个旨在促进快速高效的 Ajax(异步 JavaScript
不,这不是问如何让 Guava 在 GWT 中工作,因为我已经让它工作了。 我的问题是,当我执行继承时 我希望在命名空间 com.google.common.collect 中找到一个文件 Coll
Ext GWT 和 GWT-Ext 之间有区别吗?因为我在浏览 Ext GWT 时看到了这个页面 http://gwt-ext.com/demo/ .有什么帮助吗? 最佳答案 ExtGWT 由开发 E
调查gwt-dispatch之后和 Google Wave I/O presentation (Best practices) ( video here ),我想知道为什么官方 GWT 版本 (2.0
我在我的应用程序中使用带有 ext 的 GWT 2.0.3。该项目不再处于积极开发状态并且已被 Smart GWT 取代。我正在为此应用程序使用 HMVC 模式。现在使用现有的 GWT 2.0.3 和
当我尝试在 Windows Vista 上为 ie 8 使用 GWT 开发模式插件时,我不断看到安装插件的提示。 运行插件后我仍然总是看到这个页面。有谁知道如何解决这样的问题? 最佳答案 看这个:Ca
我正在尝试对 GWT RPC 序列化策略进行一些背景阅读,发现 GWT 在编译后将 *.gwt.rpc 文件中的可序列化类型列入白名单。 以下是我的应用程序中生成的一个此类 .gwt.rpc 文件的摘
如果 Enum 实现了 java.io.Serializable,我无法将它序列化为 GWT。它会成功编译 GWT,但在运行时,我会感到害怕: Type 'com....security..Admin
是否有可以与 GWT 一起使用的进度条小部件,还是必须自己制作?我尝试在 google-web-toolkit-incubator、gwtupload 和 upload4gwt 中使用进度条,但没有任
由于 Javadoc 没有说明使用 com.google.gwt.core.shared.GWT 的原因,它似乎包含 com.google.gwt.core.client.GWT 的功能子集,前者存在
我必须在 gwt 中创建一个图像按钮,它使用三个图像(左侧图像、中心拉伸(stretch)图像和右侧图像)。左侧图像和右侧图像具有圆角。中心图像想要拉伸(stretch)取决于按钮标题大小.创建的 I
我正在尝试在 GWT 的垂直面板中设置 align 属性,如下所示: vpanel = new VerticalPanel(); vPanel.setHorizontalAlignment(HasHo
我想在 GWT 中添加可编辑的组合框,请告诉我解决方案? 最佳答案 试试 Advanced GWT Components , 具体来说 org.gwt.advanced.client.ui.widge
我在使用 GWT Designer 配置 GXT 时遇到问题。我拥有 Eclipse、GWT 插件和 GXT 的所有新版本,但无法将 GXT 配置为与 GWT Designer 一起使用。我设置了我的
我们有一个当前使用 Capistrano 部署的应用程序。该应用程序使用 php 作为后端,使用 GWT 作为前端。 我已经设法通过 Ant 文件编译 GWT,但想用自定义 Capistrano 任务
这应该很简单,但不知何故我找不到在 GWT 中创建简单超链接的方法。基本上,我想在用户点击某些东西时加载另一个页面。 Hyperlink似乎仅指向内部 GWT 应用程序状态。我想我可以把链接放在 HT
在 GWT 界面中哪个更好,使用带有 javacode 的普通 MVP,还是 UiBinder?从性能、编辑、简单性方面。 最佳答案 这就是Google says : Besides being a
GWT 2.5.0 开发模式 我在下面对文件上传做了一个简单的测试, startupUrl: http://127.0.0.1:8888/UploadTest.html?gwt.codesvr=127
我需要创建一个SuggestBox,在按下时将显示所有选项 Enter键。 我已经写了以下实现,看来是 工作正常。 我希望有人审查我的实现情况,并让我知道 在任何特定情况下都会引起问题。 另外,要传递
在哪里可以找到有关 GWT 和 GWT-Ext 延迟加载的更多信息? 最佳答案 快速谷歌搜索显示 nice blog entry由 GWT 团队提供。 关于 GWT-Ext,我无话可说,但无论采用何种
我是一名优秀的程序员,十分优秀!