User interface 来自web开发,我如何处理桌面应用程序的可用性/设计?

User interface 来自web开发,我如何处理桌面应用程序的可用性/设计?,user-interface,usability,desktop-application,hci,User Interface,Usability,Desktop Application,Hci,在开发具有多组同等重要数据和操作的桌面应用程序时,如何处理用户界面设计 我开发的大多数基于网络的应用程序都有一个简单的主页,上面有指向应用程序提供的每项服务的链接。大多数页面都包含数据库中的项目列表,您可以通过“编辑”、“更新”或“删除”类型的链接对这些项目进行深入查看或执行操作。想象一下vBulletin用户控制面板。菜单位于左侧,数据组和操作位于右侧 我现在正在研究桌面应用程序开发,并对最常见的设计习惯感到好奇。对于上面的示例,我设想了某种选项卡式界面(比如带有Java透视图的Eclipse

在开发具有多组同等重要数据和操作的桌面应用程序时,如何处理用户界面设计

我开发的大多数基于网络的应用程序都有一个简单的主页,上面有指向应用程序提供的每项服务的链接。大多数页面都包含数据库中的项目列表,您可以通过“编辑”、“更新”或“删除”类型的链接对这些项目进行深入查看或执行操作。想象一下vBulletin用户控制面板。菜单位于左侧,数据组和操作位于右侧

我现在正在研究桌面应用程序开发,并对最常见的设计习惯感到好奇。对于上面的示例,我设想了某种选项卡式界面(比如带有Java透视图的Eclipse、Subversion透视图等等),但是如果功能组的使用频率大致相同,那么用户将经常在选项卡之间单击。我还想知道是让用户启动n个相同类型的选项卡,还是为每个功能组预加载每个选项卡,只允许用户在它们之间切换

我想它也可以为每一组功能使用单独的窗口来实现。这就留下了一个不合适的“主窗口”的问题,它只是一组按钮,用来关闭那些窗口

在做了这么多年的桌面应用程序用户之后,当我真正构建一个有意义且并不突出的界面时,我感到很困惑。我看了一下微软的office,但大多数应用程序处理的是一段数据(例如word文档),包含许多操作,而不是许多同样重要的数据段,每个数据段都具有独特的功能


在这种情况下,桌面应用程序开发遵循哪些设计原则/习惯用法?

每个数据组有三个单独的窗口,允许用户并排查看多个数据组(假设他们的监视器足够大),这是选项卡无法提供的灵活性。单独的窗口还允许您为每个数据组使用不同的菜单栏和工具栏,从而消除了用户在处理任何一个数据组时大量禁用操作的混乱

除非您的“主页”窗口更像一个仪表板,用于汇总和监控其他三个窗口中的内容,否则除了三个窗口之外,您没有一个窗口用于实际数据是正确的。相反,允许用户通过三个窗口中任何一个的下拉菜单打开任何窗口。取代大多数桌面应用程序文件菜单中无处不在的打开菜单项,有三个打开菜单项,每个数据组一个(例如,打开的客户、打开的库存、打开的订单,或者可能只是将其标记为客户、库存、订单)。不要使用级联菜单,除非添加一堆打开的X使您的文件菜单非常长;可接受15-20个菜单项。用于打开每个窗口的冗余工具栏按钮也可能是一个好主意

如果用户在给定的会话中确实平等地使用了这三个窗口,那么在用户执行程序时,没有理由在默认情况下不能打开这三个窗口。如果他们倾向于在每个会话中使用一个窗口,您可以在启动时提供一个对话框(可能与启动窗口集成),其中包含用于选择启动窗口的命令按钮;或者,您可以在安装时在“开始”菜单中添加三个快捷键,每个窗口一个快捷键,从而消除对话框的额外步骤。如果在使用什么窗口时存在非随机变化,您也可以自动打开在上一个会话的最后五秒钟内打开的任何窗口。如果窗口使用存在个体差异,并且您可以通过某种方式了解特定用户倾向于使用最多的窗口(例如,从他们的工作描述),则在安装时设置默认窗口。如果所有其他操作都失败,请向用户提供选项/首选项,以选择启动时要打开的窗口

还有一件事:作为桌面应用程序,使用“原地编辑”。不要让用户点击“编辑”链接或按钮来更改数据库记录,就像许多web应用程序那样。让用户在显示数据的表中对记录进行更改。这使得交互更简单、更快,并减少了应用程序的复杂性(窗口数量)。


事实证明,我想要的是一个“MDI”(多文档接口),即使文档不一定是同一类型的。这篇文章介绍了一些常见的MDI样式,最后给出了一个很好的建议。

但是,正如文章所指出的,MDI已经被放进了可用性垃圾箱。它支持Outlook类型的UI,但在顶层,它实际上是一个TDI的变体,它不允许用户同时看到两个窗口(例如,电子邮件列表和日历)。