2012-01-05 102 views
11

在我曾参与过的大多数桌面Web应用程序中,都需要一个服务器端Web框架。服务器端web框架(Struts,Spring MVC等)有一些控制器用于处理请求,然后是用于生成动态内容的模板引擎(Velocity,JSP等)。用于移动web应用程序的服务器端体系结构

现在我开始研究移动Web应用程序,并且我看到的所有讨论围绕选择UI框架(jQuery Mobile,jQTouch,Sencha Touch等)展开,但是我没有看到关于发生什么的讨论服务器端实际处理HTTP请求或生成HTML,CSS和JavaScript。

这是否意味着大多数移动Web应用程序不使用服务器端的Web框架...这意味着服务器提供静态内容,多数交互行为被编码在JavaScript中,唯一的服务器端代码JavaScript客户端加载的REST服务?

如果我想使用服务器端Web框架,这是一个坏主意?我会面对什么问题?有没有人对web框架提出过建议,这将是一个高效的平台,而不会阻碍像jQuery移动那样的移动UI框架?

注:我的工作主要是开发人员来自企业级Java的背景,但是,我不会限制到仅基于Java的web framoworks。还有其他的框架可以考虑Java的根源(Grails,Lift等)。

回答

13

一个很好的问题,我会以这种方式回答。目前的趋势是在前端建立很多互动性。有几个原因。有些人这样做是因为这是新事物,其他人是因为他们试图复制桌面体验。最终,任何给定的Web项目只有一个目标,那就是创造最佳和最可持续的用户体验。

也就是说,将有服务器端技术,以避免,这将是任何生成前端为您,但不使用jQuery。今天,超过45%的网站使用jQuery,如果您选择了其他内容,您将立即与主流移动框架发生冲突。 (GWT,IceFaces,我在看你)。

可能是要走要么是使用基于Spring的实现或Prime Faces最安全和最灵活的方式。 Spring Mobile值得一看。 Prime Faces实际上实现了jQuery Mobile,并且可以使用Theme Roller进行主题化。

在一般情况下,它真的并不重要后端框架(如果有的话),你使用,只要你推好标记。浏览器不关心,用户关心的唯一事情就是一个很好的体验。所以,只要不妨碍你的开发者,只要选择任何可以让你的开发者为后端开心的东西。

至于前端框架,是的,他们的受欢迎程度正在增加,因为他们往往对一些标准化的最佳实践移动。 jQuery Mobile vs Sencha vs jQTouch有许多比较。我会留给你看哪个最适合你的项目,但肯定会使用jQuery Mobile或Sencha,因为围绕这些支持的社区非常庞大,你不太可能看起来像许多破旧的本土移动网站,当他们没有经验时,试图从头开始。这只是伤心。我个人的建议是jQuery Mobile,因为它涵盖了如此广泛的设备,并且(如果您坚持标准的逐页模式),即使是功能手机中最笨的功能也会降级,并且仍然可以正常工作,但在智能手机上看起来令人惊叹。

要你只使用JavaScript的REST风格的设计荷载一切,管理国家的问题。有很多人这样做,这当然是一个快速的体验,但你会立即限制谁可以使用它的移动浏览器支持良好的JavaScript的人。您只会看到支持iOS,Android 2.2+,BlackBerry 6+和Windows Phone 7+。所有其他人可能会很难查看您的网站。在转向类似的实现之前,请仔细考虑您的观众。如果您的网站在没有JavaScript的情况下无法正常工作,并且您的主要客户在企业界......当最新的黑帽会议暴露公司电话薄弱环节并采取保守风险缓解措施(偏执狂)时会发生什么,他们会将安全政策每个人都禁用JavaScript的手机。这种事情总是发生。所以,考虑你的观众。

0

看看ItsNat,ItsNat邀请您考虑在客户端JavaScript中,但在Java中编码,并在服务器上执行生成相同的JS代码到客户端。

与GWT不同的是,爪哇W3C DOM代码在服务器中执行和JS是自动生成的,同时GWT在客户端执行,服务器的数据必须传送到客户端。

相关问题