代码之家  ›  专栏  ›  技术社区  ›  Nikola Stjelja

Web和桌面应用程序在构建UI方面的差异[已关闭]

  •  5
  • Nikola Stjelja  · 技术社区  · 17 年前

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

    1.使用的技术

    2.使用的技术

    3.使用的控件

    4.屏幕切换行为

    7 回复  |  直到 13 年前
        1
  •  7
  •   epochwolf    17 年前

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

        2
  •  6
  •   Groxx    17 年前

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

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

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

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

    大多数人使用桌面上的程序 什么东西。大多数人使用浏览器 看见 某物(阅读、观看等)。当然,有交叉,但想想大多数人的日常习惯,记住这一点 别的 人们会使用你设计的东西;不仅仅是你(和你的克隆人)。

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

        3
  •  3
  •   Michael Borgwardt    17 年前

    最大的区别是,在网络应用程序中,你对鼠标行为的影响非常有限,你所拥有的与既定的桌面行为背道而驰。例如:

    • 在桌面应用程序中,几乎所有情况下,单击鼠标右键都会弹出上下文菜单。在Web应用程序中也是如此,但这是浏览器的上下文菜单,您不能(也不应该)更改。
    • 在桌面应用程序中,单击可选择某些内容,双击可执行某些内容;在webapp中,单击一次就已经“执行”了一个链接,双击则不存在。
        4
  •  2
  •   James Anderson    17 年前

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

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

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

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

        5
  •  1
  •   Patrick Desjardins    17 年前

    主要区别在于Visual在桌面上的构建速度非常快 无需使用不同的浏览器进行测试 。我总是发现构建桌面很有魅力,因为软件的可视化部分只需绑定到你的控制器(包含你的模型)上,你就可以开始了!

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

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

    另一方面,部署更难(好吧,你有ClickOnce和自动工具可以帮助你),但它永远不会像网络那样透明。所以,你必须更有计划地发布,因为你不能做“热修复”。

        6
  •  1
  •   CodingWithSpike    17 年前
    • 跨帧通信在web浏览器中很困难。例如,使用javascript让一个iframe影响另一个iframe。主要是因为加载时间可能不同,所以帧A可能需要在定时器循环中等待帧B加载。

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

        7
  •  -1
  •   Dillie-O    17 年前

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