Web 应用程序的 UI 与桌面应用程序的 UI 构造不同。我很想知道在以下领域中两种风格的应用程序在构建 UI 方面的主要区别是什么:
1.使用的技术
2.使用的技术
3.使用的控件
4.换屏行为
Web 应用程序的 UI 与桌面应用程序的 UI 构造不同。我很想知道在以下领域中两种风格的应用程序在构建 UI 方面的主要区别是什么:
1.使用的技术
2.使用的技术
3.使用的控件
4.换屏行为
在网页设计中你不能忽视的一件主要事情是后退按钮。成千上万的人试图禁用或绕过它。不要试图绕过后退按钮!而是让后退按钮成为您设计的一部分。
很多人忽略的一个很大的设计差异是窗户本身的结构。
我最讨厌的是执行频繁操作的文本链接。除非您实际上“链接”到一个单独的页面,否则不要让它看起来像一个链接。让它成为一个控件、图像或其他东西。链接用于在网站中移动,按钮用于执行操作。大多数人在想做某事时会主动忽略带下划线的蓝色文本,因为他们习惯了“提交表单”按钮或类似的东西。链接也非常小,并且相对难以单击以进行重复操作,并且对我来说,在广泛使用时会产生不完整的设计/编码。
我见过的很多网络应用程序通常都失败了,它们试图在浏览器窗口中复制一个桌面应用程序……这将一个圆钉安装到一个方孔中。可以做到,但它们不是一回事,几乎在任何情况下都不应该这样对待。
部分例外是网络应用程序复制了桌面应用程序(即 Google 文档)的功能。然后,在大多数情况下,布局仍然应该更多地反映网页而不是应用程序,但控件应该可能模仿桌面应用程序以帮助人们过渡。
大多数人使用桌面上的程序来做某事。大多数人使用浏览器来查看某些内容(阅读、观看等)。当然,有交叉,但想想大多数人的日常习惯,记住其他人会使用你设计的东西;不仅仅是你(和你的克隆人)在那里。
而且,虽然它在重复别人,但后退按钮很关键。如果你打破它,用户就会想打破你。覆盖右键单击菜单或行为通常也是一个坏主意,而且大多会惹恼用户(有些人会积极阻止 javascript 这样做,因为它让他们非常恼火(包括我自己))。
最大的区别是 IMO,在 Web 应用程序中,您对鼠标行为的影响非常有限,而且您所拥有的与已建立的桌面行为背道而驰。例如:
桌面应用程序倾向于使用“在此事件上执行此代码块”模式编写。Web应用程序更多的是块模式“服务器格式化整个页面,用户填写表单并按下按钮,服务器处理整个表单,服务器格式化另一个整个页面”模式。
AJAX 稍微搅浑了水,因为浏览器可以在后台请求一些数据,并刷新页面的某些部分。然而,基本原则仍然存在。
让桌面 GUI 更容易响应特定的鼠标移动和点击等。另一方面,对于 Web 应用程序,与服务器的唯一通信是“获取”和“发布”请求,因此用户界面更加笨拙。
基于 Web 的应用程序更便携,您在客户端上需要的唯一软件就是兼容的浏览器。这些系统管理优势是人们忍受略逊一筹的 GUI 的原因。
主要区别在于 Visual 在桌面上构建速度非常快,无需使用不同的浏览器进行测试。我总是发现构建桌面的魅力,因为软件的 Visual 部分只是绑定在您的控制器(包含您的模型)上,而您正在旅途中!
另一个区别是加载速度。您不必为显示传输 Javascript 或 CSS...您不必压缩或其他东西,因为它始终在桌面上的源代码中可用。
另一件事是,您可以使用计算机的 RAM 来做困难的事情,这往往会减少在服务端拥有多台计算机的需要,因为您可以使用所有这些计算机来“农场”大进程(如果需要)。
另一方面,部署更难(你有 ClickOnce 和可以帮助你的自动工具),但它从来没有像 web 那样透明。因此,您必须更有计划地进行发布,因为您无法进行“热修复”。
在 Web 浏览器中跨帧通信很困难。例如,让一个 iframe 使用 javascript 影响另一个 iframe。主要是因为加载时间可能不同,所以帧 A 可能需要在定时器循环上等待帧 B 加载。
在 Web UI 中,消息传递确实需要考虑请求/响应周期。很难做到“如果数据库中的记录发生更改,则在用户屏幕上弹出一条消息”。此外,如果按下按钮必须刷新 5 个不同的 iframe,您最终可能会收到 5 个对服务器的单独请求。在桌面 UI 中真的不需要担心这一点。
我发现最不同的一件事是数据绑定。这个概念还是一样的,但是对于网络应用程序,你总是担心是否重新绑定所述控件以根据其他一些事件单击来刷新数据。桌面应用程序的好处在于,这不是一个问题,因为单击其他事件或转到其他选项卡不会使控件中的数据无效。