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

问题描述 投票:0回答:2

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

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

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

我知道这两种方法将长期存在,并且我知道每种方法都有其优点和缺点。

我真的很想知道你什么时候更喜欢使用它们? 选择其中之一时我应该考虑什么?

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

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

web-applications
2个回答
4
投票

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

两者的一些优点和缺点

胖客户端

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

瘦客户端

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

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

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


1
投票

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

我看待权衡的方式:

瘦客户端(常规 HTML):

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.