2009-07-04 67 views
5

我应该建立后台目的的Web应用程序和主要先决条件之一,是一个很好的UI。你会为后端Web应用程序做什么:Flex,GWT,JQuery?

在服务器端,我将使用Java很可能的Spring框架,这取决于我将使用的客户端。

我认为主要有客户端3种选择:

  • 一个 “正常” 的Web应用程序,这意味着JSP页面,使用jQuery框架。在这种情况下,我将使用完整的Spring特性,完整的MVC模式等。我已经使用了Spring和JQuery两年了,所以我非常了解这些技术。但是我也知道,实现一些效果非常复杂,涉及很多JavaScript代码,特别是在处理Ajax调用和页面结构的动态更改时。
  • Flex的加载项,如BlazeDS的使用Spring集成。我没有使用Flex的经验,我只是阅读了一些关于它的文章和教程,但我真的很想学习一些新东西:-)
  • Google Web Toolkit,可能有类似gwt-ext的东西。没有经验,但我很喜欢学习。如果我需要的话,这里有很多支持,但我认为我会努力在同一个项目中维护Spring MVC和GWT,但我认为它不是那么容易,但有一些模式需要遵循。

你有什么建议吗?

在此先感谢

回答

5

我觉得你完全可以推迟的选择,如果你的分区你的应用程序为独立的服务和视图层。获得后端的权利,您可以随意交换视图技术。

至于选择,选择一个你和你的团队最熟悉的。最重要的考虑因素是支持和维护。我相信,所有这三个人都可以用足够的努力和抛光来满足你的需求。

我个人的选择将Flex和BlazeDS的春天。这很性感。

+0

+1对分区的好建议。 – 2009-07-05 01:27:24

+0

是的,谢谢你在分区方面的好建议!我已经在考虑 – emas 2009-07-05 13:31:02

2

Flex是适合你的目的,我会说。使用MXML,创建具有动态结构更改和效果的优秀用户界面非常简单。既然你在发展的早期阶段是也,我建议你考虑使用Flex的即将推出的版本,先前名为Gumbo代码的好处。

Gumbo提供了大量的欢迎更新,特别是在设计部门。例如,使用FXG创建具有动态外观的引人注目的UI,现在更容易了,FXG是一种用于文本定义图形形状的标记。 FXG也是一项关键技术Flash Catalyst,一种用于将设计转换为实际代码的工具。尽管Catalyst目前可能无法用于生产质量代码,但在创建原型时肯定非常有用。

当然,在任何设计中,前端技术的选择都不应该与后端耦合,以便您能够交换前端层。

+0

真的很有趣,我没有找到任何关于下一个Flex版本的信息,我一定会考虑如果我去参加Flex – emas 2009-07-05 13:35:07

3

这一切都归结为三点:

  1. 你建立什么类型的应用程序?
  2. 什么是技术技能你熟悉和舒适的迁移你的技能,如果有必要吗?
  3. 您的基础设施的技术要求是什么?

如果应用程序的功能是推动这项技术,那么你必须确定一个增强的基于超文本应用程序是否适合您的需要(AJAX,XHTML),或更多富媒体技术是否更合适,这样的作为Flash Platform(Flex是其中的一部分)。

#2和#3通常是相似的,因为它们考虑到了您团队的现有技能和基础设施。如果您的应用程序要求可以使用任一种技术部署应用程序,那么您需要判断技能组和基础结构支持的具体情况:如果您已经在使用Java,并且您的团队主要在AJAX方面有经验,那么就使用它;如果你的团队在Flash/Flex和LCDS/FMS方面有更多的经验,那么就使用它。但我认为这是一个巨大的误解,认为基于Flash Platform的RIA可以像构建AJAX的RIA一样构建而只需很少的体系结构更改,或者您可以“将应用程序划分为单独的服务和视图层...”你可以随意交换视图技术。“我的朋友是灾难的秘诀。构建Flash平台/ Flex应用程序意味着后端是客户端应用程序的从属服务器,而不是其他方式,因为应用程序智能大部分驻留在客户端。如果你像一个AJAX应用程序一样构建一个Flex应用程序,那么你将得到一个完全架构的混乱,我已经看到它发生了很多次。诀窍是知道控制器/服务的哪些部分保留在客户端上,以及哪些部分保留在服务器上。

因此,在回答你的问题时,你必须问自己是哪个驱动这个应用程序的发展 - 功能集或你知道如何使用的技术?人们经常混淆这两者,造成不必要的个人偏见而赞成其中一种或另一种实施。

+0

我认为这是一个很好的方法,谢谢。从来没有任何Flex经验,我会在接下来的几天尝试构建一些原型。 – emas 2009-07-05 14:17:28

0

如果您的主要先决条件之一是一个好的用户界面,那么确保您找到某种设计者来帮助您。几乎可以用任何语言构建一个良好的用户界面,所以它不是确定这一点的框架。

我推荐GWT优于其他两个,因为没有其他原因,我觉得它是最适合我的。你的旅费可能会改变。

为了天生,春天?我不想开始一场火焰战争,但真的,为什么有人会这样做呢?将项目切换到更标准的技术,如普通的EJB3/JPA业务层,轻量级Web层和GWT客户端,您将会更加快乐。代码会少一些,维护起来会容易得多,你不必担心那些弹簧注入/拦截怪异。春天到底是什么Struts是前端,陈旧,笨重和旧;)

+0

我不认为Spring是“笨重和古老”的,当构建一个wep应用程序时它确实很有用,但是也许你将它与GWT一起使用,它会引入更多复杂度 – emas 2009-07-05 14:01:51

1

我不得不不同意Rusty的春季评估。它不断更新,它有很大的权力。

话虽如此,我是GWT的忠实粉丝。我不能说它比其他任何技术都好,但我喜欢它。

这种取决于你需要多少马力。如果你只有一百个用户,这没什么大不了的,但如果你有一个庞大的用户群,你需要考虑更大。在这些情况下,GWT可能工作得很好,但我所做的大项目是其他技术。

我目前的爱好项目是http://penwag.com。我使用GWT作为前端和后端,使用Hibernate + MySQL作为持久性。整个事情运行在tomcat下,托管在rapidvps.com服务器上,拥有(!)128M保证内存和100MHz CPU。

如果需要,可以使用GWT跟随MVC或MVP模式。但是,如果您使用GWT,那么最好还是采用MVP方法,因为它比MVC更能让您更好地分离问题。

任何猜测您的用户群有多大?

编辑:

这里有一个gallery of GWT应用BTW。

1

这可能与duffymo的答案相同,但值得重复:保持客户端与服务器的不可知性。

在我当前的项目中,我们在客户端和服务器之间有一个JSON REST接口。这允许我们拥有尽可能多的不同客户端实现。面对面,服务器可能完全从Java更改为.NET,并且只要数据API保持不变,客户端都不会在意。

这种环境也可以帮助纯数据测试。您可以通过来回馈送JSON来测试客户端和服务器(实时和独立)。

相关问题