我应该为后台办公室构建一个Web应用程序,其中一个主要要求是一个很好的用户界面。
在服务器端,我将使用Java非常可能的Spring框架,具体取决于我将在客户端使用的内容。
我认为客户端基本上有3种选择:
你有什么建议吗?
提前致谢
答案 0 :(得分:5)
如果您将应用划分为单独的服务和视图层,我认为您可以完全推迟选择。获得正确的后端,您可以随意交换视图技术。
至于选择,请选择您和您的团队最了解的那个。最重要的考虑因素是支持和维护。我相信这三个人都可以用足够的努力和精力满足你的需求。
我个人的选择是Flex和Spring BlazeDS。它很性感。
答案 1 :(得分:3)
这一切都归结为三件事:
如果应用程序功能正在推动该技术,那么您必须确定基于增强型超文本的应用程序是否适合您的需求(AJAX,XHTML),或者更富媒体技术是否更适合,例如Flash平台(Flex是其中的一部分)。
第2号和第3号通常类似,因为它们考虑了您团队现有的技能组合和基础设施。如果您的应用程序要求可以使用任何一种技术部署应用程序,那么您需要评估技能组和基础架构支持是什么:如果您已经使用Java并且您的团队主要使用AJAX,那么请继续使用;如果您的团队在Flash / Flex和LCDS / FMS方面有更多经验,那就使用它。
但我认为,基于Flash平台的RIA可以像AJAX构建的RIA一样构建,几乎没有架构变化,或者你可以“将应用程序划分为单独的服务和视图层......”这是一个巨大的误解。你可以随意交换视图技术。“我的朋友是灾难的秘诀。构建Flash Platform / Flex应用程序意味着后端是客户端应用程序的从属,而不是相反,因为应用程序智能大部分都驻留在客户端上。如果你像AJAX应用程序一样构建一个Flex应用程序,你将会遇到一个完全过分的混乱,我已经看到它发生了很多次。诀窍是知道控制器/服务的哪些部分要保留在客户端上,以及哪些部分要保留在服务器上。
因此,在回答您的问题时,您必须问自己哪个推动了这个应用程序的开发 - 功能集,或者您知道如何使用的技术?很多时候人们会混淆两者,造成不必要的个人偏见,支持其中一种或另一种实施。
答案 2 :(得分:2)
Flex适合您的目的我会说。使用MXML,可以非常轻松地创建具有动态结构更改和效果的漂亮用户界面。由于您还处于开发的早期阶段,我建议您考虑使用即将推出的Flex版本的好处,以前的代码名为Gumbo。
Gumbo提供了许多欢迎更新,特别是在设计部门。例如,现在使用FXG创建具有动态外观的引人注目的UI更加容易,FXG是一种用于文本定义图形形状的标记。 FXG也是一项关键技术Flash Catalyst,一种用于将设计转换为实际代码的工具。虽然Catalyst在当前状态下可能无法用于生产质量代码,但在创建原型时它肯定非常有用。
当然,在任何设计中,前端技术的选择都不应与后端相结合,这样您就可以交换前端层。
答案 3 :(得分:1)
我不同意Rusty对Spring的评价。它不断更新,而且它有很强大的功能。
话虽如此,我是GWT的忠实粉丝。我不能说它必然比任何其他技术更好,但我喜欢它。
这取决于你需要多大的马力。如果你只有一百个用户,这没什么大不了的,但如果你拥有庞大的用户群,你需要更大的思考。 GWT在这些情况下可能运行良好,但我所做的大项目是使用其他技术。
我目前的爱好项目是http://penwag.com。我使用GWT作为前端和后端,使用Hibernate + MySQL作为持久性。整个事情在tomcat下运行,托管在rapidvps.com服务器上,拥有(!)128M保证RAM和100MHz CPU。
如果需要,您可以使用GWT遵循MVC或MVP模式。但是,如果您正在使用GWT,也可以采用MVP方法,因为它可以让您比MVC更好地分离关注点。
有关用户群有多大的猜测吗?
编辑:
这是一个gallery of GWT个应用程序BTW。
答案 4 :(得分:1)
这可能与duffymo的答案相同,但值得重复:让客户端与服务器无关。
在我当前的项目中,我们在客户端和服务器之间有一个JSON REST接口。这允许我们拥有尽可能多的不同客户端实现。从表面上看,服务器可以完全从Java改为.NET,只要数据API保持不变,任何客户都不会关心。
这种环境也可以帮助纯数据测试。您可以通过来回馈送JSON来测试客户端和服务器(实时和独立)。
答案 5 :(得分:0)
如果您的主要先决条件之一是良好的用户界面,那么请确保您找到某种形式的设计师来帮助您。你几乎可以用任何语言构建一个好的UI,因此不是确定它的框架。
我建议GWT超过其他两个,没有其他原因,我发现它对我来说是最好的。您的里程可能会有所不同。
为了善良,春天?我不想开始一场火焰战,但实际上,为什么有人会这样做呢?将您的项目转换为更普通的EJB3 / JPA业务层,轻量级Web层和GWT客户端等更标准的技术,您将会更加快乐。将会有更少的代码,它将更容易维护,您不必担心任何弹簧注入/拦截奇怪。 Spring是后端Struts的前端,过时,笨重和旧;)