5

Web 应用程序的 UI 与桌面应用程序的 UI 构造不同。我很想知道在以下领域中两种风格的应用程序在构建 UI 方面的主要区别是什么:

1.使用的技术

2.使用的技术

3.使用的控件

4.换屏行为

4

7 回答 7

7

在网页设计中你不能忽视的一件主要事情是后退按钮。成千上万的人试图禁用或绕过它。不要试图绕过后退按钮!而是让后退按钮成为您设计的一部分。

于 2008-12-05T14:48:55.747 回答
6

很多人忽略的一个很大的设计差异是窗户本身的结构。

  • 桌面应用程序倾向于为最小高度和宽度分辨率(通常为 800*600)而构建,并尽可能努力地将所有相关信息调整为小于该大小的大小,因为滚动条通常是非常糟糕的做法非表格/列表数据。在需要更多空间的地方,信息通常分为新窗口或子窗口窗格/选项卡。
  • 另一方面,Web 应用程序具有基本上无限的垂直高度,因为大多数人习惯于在他们的 Web 浏览器中滚动。滚动条不再是坏事;事实上,在可以使用主要滚动条的任何地方使用滚动条通常被认为是不好的形式(当然,也有一些例外)。信息通常在一个“窗口”中描绘,因为将其拆分需要单独的页面加载和重新加载相同的数据(样式、菜单等)。是的,有一个缓存,但它不如不加载单个页)。更多的负载总是更慢,并导致不连续的感觉。有时它们是不可避免的,但您几乎不应该将您的应用程序限制为仅浏览器窗口的可见大小。
  • 很多人使用网络浏览器的目的是阅读。新闻、博客、youtube 上的评论等。当你制作一个网络应用程序时,它应该反映这种习惯,因为如果他们在网页和你的应用程序之间切换,你会通过截然不同的布局来刺激人们的大脑(你知道有些会)。看起来你只是在模仿大玩家,但一致性比看起来要重要得多。
  • 文本列不应该超宽,因为行越宽,越难跳到下一行继续阅读。坚持类似于书本的东西;它们已经被提炼了几个世纪。这就是为什么很多网页都是固定宽度的,并且喜欢列而不是行的部分原因。
  • 空白很重要。它有助于分离信息,并使其更易于处理。想象一下,在没有任何空格、换行符或项目符号的情况下阅读此回复。

我最讨厌的是执行频繁操作的文本链接。除非您实际上“链接”到一个单独的页面,否则不要让它看起来像一个链接。让它成为一个控件、图像或其他东西。链接用于在网站中移动,按钮用于执行操作。大多数人在想做某事时会主动忽略带下划线的蓝色文本,因为他们习惯了“提交表单”按钮或类似的东西。链接也非常小,并且相对难以单击以进行重复操作,并且对我来说在广泛使用时会产生不完整的设计/编码。

我见过的很多网络应用程序通常都失败了,它们试图在浏览器窗口中复制一个桌面应用程序……这将一个圆钉安装到一个方孔中。可以做到,但它们不是一回事,几乎在任何情况下都不应该这样对待。
部分例外是网络应用程序复制了桌面应用程序(即 Google 文档)的功能。然后,在大多数情况下,布局仍然应该更多地反映网页而不是应用程序,但控件应该可能模仿桌面应用程序以帮助人们过渡。

大多数人使用桌面上的程序来做某事。大多数人使用浏览器来查看某些内容(阅读、观看等)。当然,有交叉,但想想大多数人的日常习惯,记住其他人会使用你设计的东西;不仅仅是你(和你的克隆人)在那里。

而且,虽然它在重复别人,但后退按钮很关键。如果你打破它,用户就会想打破你。覆盖右键单击菜单或行为通常也是一个坏主意,而且大多会惹恼用户(有些人会积极阻止 javascript 这样做,因为它让他们非常恼火(包括我自己))。

于 2008-12-05T18:37:50.247 回答
3

最大的区别是 IMO,在 Web 应用程序中,您对鼠标行为的影响非常有限,而且您所拥有的与已建立的桌面行为背道而驰。例如:

  • 在桌面应用程序中,几乎普遍地单击鼠标右键会弹出上下文菜单。在 webapp 中也是如此,但它是浏览器的上下文菜单,您不能(也不应该)更改它。
  • 在桌面应用程序中,单击选择某事,双击执行某事;在 web 应用程序中,单击已经“执行”了一个链接,并且不存在双击。
于 2008-12-05T14:53:02.273 回答
2

桌面应用程序倾向于使用“在此事件上执行此代码块”模式编写。Web应用程序更多的是块模式“服务器格式化整个页面,用户填写表单并按下按钮,服务器处理整个表单,服务器格式化另一个整个页面”模式。

AJAX 稍微搅浑了水,因为浏览器可以在后台请求一些数据,并刷新页面的某些部分。然而,基本原则仍然存在。

让桌面 GUI 更容易响应特定的鼠标移动和点击等。另一方面,对于 Web 应用程序,与服务器的唯一通信是“获取”和“发布”请求,因此用户界面更加笨拙。

基于 Web 的应用程序更便携,您在客户端上需要的唯一软件就是兼容的浏览器。这些系统管理优势是人们忍受略逊一筹的 GUI 的原因。

于 2008-12-05T15:03:35.920 回答
1

主要区别在于 Visual 在桌面上构建速度非常快,无需使用不同的浏览器进行测试。我总是发现构建桌面的魅力,因为软件的 Visual 部分只是绑定在您的控制器(包含您的模型)上,而您正在旅途中!

另一个区别是加载速度。您不必为显示传输 Javascript 或 CSS...您不必压缩或其他东西,因为它始终在桌面上的源代码中可用。

另一件事是,您可以使用计算机的 RAM 来做困难的事情,这往往会减少在服务端拥有多台计算机的需要,因为您可以使用所有这些计算机来“农场”大进程(如果需要)。

另一方面,部署更难(你有 ClickOnce 和可以帮助你的自动工具),但它从来没有像 web 那样透明。因此,您必须更有计划地进行发布,因为您无法进行“热修复”。

于 2008-12-05T15:14:20.033 回答
1
  • 在 Web 浏览器中跨帧通信很困难。例如,让一个 iframe 使用 javascript 影响另一个 iframe。主要是因为加载时间可能不同,所以帧 A 可能需要在定时器循环上等待帧 B 加载。

  • 在 Web UI 中,消息传递确实需要考虑请求/响应周期。很难做到“如果数据库中的记录发生更改,则在用户屏幕上弹出一条消息”。此外,如果按下按钮必须刷新 5 个不同的 iframe,您最终可能会收到 5 个对服务器的单独请求。在桌面 UI 中真的不需要担心这一点。

于 2008-12-05T15:18:57.090 回答
-1

我发现最不同的一件事是数据绑定。这个概念还是一样的,但是对于网络应用程序,你总是担心是否重新绑定所述控件以根据其他一些事件单击来刷新数据。桌面应用程序的好处在于,这不是一个问题,因为单击其他事件或转到其他选项卡不会使控件中的数据无效。

于 2008-12-05T15:23:27.893 回答