选择Web应用程序方法的注意事项?

时间:2009-12-20 10:07:33

标签: web-applications web-technologies

我是Java Web应用程序开发人员, 根据我的经验,有两种主要的方法来构建Web应用程序。

第一种方法是使用从客户端到服务器来回的技术,如Struts,SpringMVC,JSF等。

第二种是使用主要在客户端运行的技术,如Flex,Swing(Web启动),JavaFX等。

我知道这两种方法将在这里停留很长时间,我知道每种方法都有它的优点和缺点。

我真的很想知道您何时更愿意使用它们? 选择其中一个时应该考虑什么?

在安全性,应用程序类型,无状态/状态查询,数据库调用或其他任何内容方面说出您的想法。

看看有什么不同的方面会很有趣。

2 个答案:

答案 0 :(得分:4)

基本上区别在于'瘦'和'胖'客户。

两者的优点和缺点

胖客户

  • 有机会将更多处理逻辑推送到客户端,减轻服务器资源。这也可以带来更好的用户体验,因为GUI可以同时执行更新任务。
  • 客户端更容易离线运行
  • 可以更轻松地实现更丰富,更复杂的GUI功能
  • 但是在不同的客户端类型(例如桌面和移动设备)上重用逻辑会更加困难
  • 但可能更难编码,需要比通用客户端/服务器Web开发更多的专业技能,有时意味着更多的应用程序逻辑被编码到客户端,从而减少了关注点的分离。
  • 但通常是专有的(例如flex)
  • 但可能更难将数据公开给网络抓取工具

瘦客户端

  • 可以将GUI开发交给一个单独的专家团队进行编码,而业务逻辑则由另一个专家团队在服务器端编码(当然,这在很大程度上取决于所讨论的应用程序的类型,以及逻辑的位置坐在)
  • 更容易获得编码技能(适用于客户端和服务器)
  • 促进在不同gui类型或API的服务器端重用业务逻辑
  • 可以轻松地将数据公开给网络抓取工具
  • 但是guis 可以通常以牺牲用户体验为代价来减少交互
  • 但一般不能离线

像Chrome这样更强大的浏览器的出现虽然模糊了两者之间的界限。

一般来说,我会假设默认情况下总是基于瘦客户端的瘦客户端解决方案,服务器上有业务逻辑,除非另有要求(例如高级多媒体或处理需求或特定的UI外观设计选择,如动画)

答案 1 :(得分:1)

我的建议是在所有情况下避免使用插件。不要将java,flash或silverlight插件用于Web应用程序。你正在为一个受伤的世界做好准备。如果要构建富客户端,请使用生成javascript的内容。如果您喜欢Java,请使用GWT。如果Java不是你的茶,请查看javascript工具包,如ExtJS,Dojo,Sproutcore。

我看待权衡的方式:

瘦客户端(常规HTML):

  • 上行:更容易适应各种浏览器和设备
  • 上行:适用于低带宽设备
  • 缺点:UI控件的丰富程度较低
  • 下行:往返时间​​会杀死“流量”。如果用户需要在您的应用中长时间工作,这种方法效果不佳。

富客户端(GWT或JS工具包):

  • 上行:服务器端可以实现一个干净的API
  • 上行:UI设计更容易实现,更丰富
  • 上行:您可以围绕缓慢的往返时间计划您的设计(“离线”是一个极慢的往返时间的极端情况)
  • 下行:移动设备和低功耗浏览器需要单独的前端
  • 下行:低带宽将导致加载速度慢,用户只需走开

对于我的应用程序,我完全陷入了富客户端阵营。但后来我没有为“公共”互联网制作应用程序。