客户端的JavaScript框架
JavaScript framework for client
我的团队由更多的Java人员和有限的JavaScript经验组成。我知道这个问题已经被问了好几次,但为了弄清我的事实,我需要澄清几件事,因为我在客户端技术方面的经验非常有限。我们决定使用 GWT 而不是纯 JavaScript 框架来构建我们的解决方案(鉴于有更多的 Java 经验)。
这些是支持我决定的事实。
- 100%用Java编写
- 需要基本的Java技能(Java SE而不是Java EE)
- OOPHM – 进程外托管模式 – 定义您的浏览器和版本。浏览器兼容性不再是我们的问题
- 调试 – 使用 IDE 的调试器像调试任何其他 Java 应用程序一样调试 GWT 应用程序
- 优化的 JavaScript - GWT 编写比你更快、更紧凑的 JavaScript
但是我的一些应用程序函数需要使用外部 js 库。例如,假设我需要利用一些特定的js库在特定页面上绘制一些东西。(实际上是用 dojo 编写的 js 文件)。
- GWT可以满足上述要求吗?
- 您认为选择GWT的决定是明智的还是有任何其他建议?
- 我们发现 sencha gxt 拥有最好的小部件库(我知道它的商业,至少我找到了我们需要的所有小部件)。您认为在核心GWT上使用包装库是一个明智的主意吗?
提前谢谢。
GWT可以满足上述要求吗?
是的(见@Andrey卡佩尔奇克的回答)。
您认为选择GWT的决定是明智的还是有任何其他建议?
鉴于你的背景和你提到的几点,我认为这是一个非常好的决定。我已经用JavaScript,jQuery等构建了应用程序,但是对于任何超过1000行代码的应用程序,我不想再次"手动"构建JavaScript应用程序。对我来说起决定性作用的几点:
- 使用 GWT,我可以在服务器端和客户端重用部分代码。例如,我可以在客户端进行验证以提供即时反馈,然后使用相同的代码在服务器上再次验证安全性。 我
- 发现在大型GWT项目中我的方式要容易得多。虽然当然可以清晰地安排大型 JavaScript 代码,但它总是容易变得笨拙。
- 我一直在大量使用 IDE 功能(重构、查找对字段的写入访问权限......),而 IDE 对 JavaScript 的支持对我来说太有限了。
你仍然需要一点点JavaScript知识。你的团队绝对应该学习CSS,我建议你彻底学习它 - 无论你选择哪个客户端框架。
我们发现 sencha gxt 拥有最好的小部件库(我知道它的商业,至少我找到了我们需要的所有小部件)。您认为在核心GWT上使用包装库是一个明智的主意吗?
在我正在从事的一些项目中,我们使用GXT,因为这个决定是几年前做出的。我的观点是:如果你需要构建一些看起来非常像桌面应用程序的东西,GXT 可能是完美的,否则我不建议将应用程序基于 GXT。
使用纯 GWT 可以获得最佳性能,如果您了解 CSS,它就会更加灵活。GXT 有一些不错的功能,但解决其局限性、重大性能问题(有时还有错误)可能非常耗时。如果你真的需要一个特殊的GXT小部件,你仍然可以构建一个纯GWT应用程序,然后只添加一个GXT/SmartGWT小部件。
我想GWT非常适合您描述的项目的要求和目标。GWT 有 JavaScript 原生接口来使用原生 JavaScript。JSNI允许将GWT与现有的JavaScript或外部JS库集成。它通过允许您将JavaScript直接集成到应用程序的Java源代码中来解决这些问题。
我的团队在多次错误的开始之后真的在努力解决这个问题,我们确定 JavaScript 无法真正避免,并且掌握它并不像我担心的那么糟糕。增加GWT所需的时间与在客户端JS MVC框架上增加所需的时间大致相同。
我们确实考虑过GWT,但放弃了它,因为从长远来看,由于以下原因,它将更难维护。
- 如果GWT
- 的开发人员对维护它失去了兴趣怎么办,那么维护GWT之类的东西需要非常复杂的技能。
- 我们可能想要的小部件可用于其他 GWT,并且移植到 GWT 可能比我们想要做的要多。
- 现代JavaScript MVC框架已经变得非常成熟,具有许多非常酷的功能,这些功能使开发复杂的单页应用程序变得容易。 浏览器会变得更好
- ,JS框架会变得更好,更高的前端开发人员会更容易......等。
我们还评估了 dojo 并抛弃了它,因为我们认为定制它对我们的团队来说太难了。 这就是我们最终得到的。
- 用于 CSS/widget 框架的 Twitter Bootstarp
- 一堆不同的jquery插件在网上的各个地方争论不 休
- JQuery,Backbone,客户端MVC框架的Handlebars。
如果我今天再次开始这个项目,我会使用谷歌的AngularJS,这确实是构建客户端Web应用程序的惊人方法。 特别是因为在JavaScript中巧妙地使用了依赖注入以及双向竞标和一堆其他东西。我参加了JS的王座会议,谷歌AngularJS的人说他们将17,000行GWT应用程序移植到2500行angularJS应用程序。
- 在其他javascript框架模板中运行angular指令
- 使用带有jQuery或JavaScript的Play 2框架下拉列表
- 如何使用javascript、jquery或其他javascript框架过滤数据
- JavaScript:谷歌一直在使用的JS框架
- 如何将javascript框架注入ChakraBridge上下文
- 最佳javascript/UI框架EXTJS vs HTML 5 vs其他框架
- 用于绘制工作流图的JavaScript框架
- 有没有一个好的框架或方法来重构JavaScript对象
- 用于chrome-ext.开发的简单而流行的javascript框架
- 使用 Silex 框架在 Twig 模板中使用 Javascript 变量
- 带有gmap和ionic框架的Javascript代码
- reveal.js框架+javascript箭头
- 选择一个MVC框架(Javascript - 前端) - Backbone,Angular,Ember
- 在父框架(javascript)中打开iframe页面
- 播放框架JavaScript函数作为scala模板参数
- 播放框架Javascript路由器不工作的控制器在不同的目录
- 玩2.1.1模板中的框架javascript导致编译错误
- 框架javascript更快的角流星反应
- Scala + Web框架+ Javascript框架的好组合是什么?
- ASP.NET'框架javascript不允许我渲染原始HTML IFRAME