2

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

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

第二种是使用主要在客户端上运行的技术,如 Flex、Swing(web start)、JavaFX 等。

我知道这两种方法会在这里停留很长时间,而且我知道每种方法都有其优点和缺点。

我真的很想知道你喜欢什么时候使用它们?选择一个而不是另一个时我应该考虑什么?

说出您想到的关于安全性、应用程序类型、无状态/有状态、数据库调用或其他任何内容。

看看有哪些不同的方面会很有趣。

4

2 回答 2

4

基本上,区别在于“瘦”客户端和“胖”客户端之间的区别。

两者的一些优点和缺点

胖客户端

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

瘦客户端

  • 可以将 GUI 开发交给一个单独的专家团队进行编码,而业务逻辑由另一个专家团队在服务器端进行编码(当然,这在很大程度上取决于相关应用程序的类型以及逻辑所在的位置)
  • 更容易获得编码技能(对于客户端和服务器)
  • 促进跨不同 gui 类型或 API 在服务器端重用业务逻辑
  • 数据很容易暴露给网络爬虫
  • 但是 guis的交互性通常降低,但会牺牲用户体验
  • 但一般不能离线运行

不过,Chrome 等功能更强大的浏览器的出现正在模糊两者之间的界限。

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

于 2009-12-20T10:29:13.133 回答
1

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

我看待权衡的方式:

瘦客户端(常规 HTML):

  • 优点:更容易适应各种浏览器和设备
  • 优势:更适合低带宽设备
  • 缺点:UI控件不够丰富
  • 缺点:往返时间​​会扼杀“流量”。如果希望用户在您的应用程序中长时间工作,那么这种方法将无法正常工作。

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

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

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

于 2010-06-25T08:26:41.223 回答