网页太多了

时间:2009-03-20 12:37:17

标签: asp.net web-applications application-design

关于构建Web应用程序的页面:

最近,我发现自己创建的网页比以前更简单。之前,我会尝试将尽可能多的功能集中到一个页面中,以防止有大量页面。

我开始意识到这只会让事情变得更复杂,更复杂,更令人困惑。为什么没有更多页面?我认为我这样做的原因是因为我不希望用户必须浏览其他页面;只是为了在一个页面上拥有他们需要的所有功能。

嗯,这些良好的意图变成了一个过于混乱的用户界面和非常难以管理的源代码。我是一名新开发人员,我正在努力反思我正在做的事情,以便我能够改进。如果它有所作为,我正在开发ASP.net(尽管这些可能是任何平台的考虑因素)。

我的问题是:

  • 我是否过度思考这些事情?
  • 还有其他人发现自己这样做了吗?
  • 幸福的媒介在哪里?

8 个答案:

答案 0 :(得分:5)

没有专家可以随时为您提供适用于所有地方的规则。多年来,我在行业中一直以“简单”的界面而闻名,我们已经为它赢得了大量的业务(以及5个“同类最佳”奖项)。我在公司内部也有人,并且在外面告诉我 - 多年来 - 他们喜欢我的工作,但希望我能用更多的图形等“蹦出来”。让我感到惊讶的是两人之间的联系很少。

所以...一些经验法则:

  1. 页面应该执行一个事情。
  2. 页面可能有多个与主要内容相关的链接
  3. 菜单和链接布局应在各页之间保持一致
  4. 简单比复杂更好
  5. 页面应该具有视觉吸引力和吸引力
  6. 规则4比规则5更重要。
  7. 例如,我的产品提供了一个界面,让人们可以定义要在日历中显示的类和事件。我可以有一个页面,可让您查看,添加,更新,删除和编辑类。实际上,在一些较简单的领域,我使用gridview让人们管理网格中的所有内容。但是,类有太多信息要做到这一点,仍然遵循上面的规则。

    所以,

    1. 主要想法是:“这是此地点的课程列表”
    2. 链接是上面和网格右侧显示的“添加新内容”,“更改”和“删除”是每行中的链接。这在整个应用程序中都是一致的。
    3. 整个系统的菜单总是在右侧/顶部。除了所有页面共有的标准元素(徽标,页眉,页脚)外,类/活动页面上不会出现任何其他内容。
    4. 网格设计很好,但没有假图形(4,5,6)

    5. 关于UI和图形设计的一些最后的事情。

      首先,开发自己的愿景并在页面和应用程序之间保持一致。

      其次,不要害怕simplicity

      接下来,当征求他人的建议时请记住,您不想要他们的建议 - 您需要他们的印象:您希望了解他们感知界面的方式。建议有时是好的,但往往是有害的。根据我的经验,每个人都认为他们是UI专家。

      当你进行走廊(或正式)可用性测试时,你应该对几乎所有的建议进行折扣,即“你应该 更突出”。正如您将看到的,它将迅速变为“ ”,“ ”,“另一个。”如果你遵循这个建议,由于布里廷汉姆的第一个设计规则,你最终会陷入混乱:如果一切都重要而不是什么。(你去:解释为什么你不能做有人脱颖而出,只要告诉他们“这违反了布里奇汉姆的第一个设计规则!”。

      希望这有帮助!

答案 1 :(得分:3)

你击中了头部的钉子。使用KISS原则。 (保持简单愚蠢) 我过去也做过这个,不仅仅是为了制作一个可怕的用户界面,而且由于功能太多而导致你在页面上可以做什么操作让人感到困惑。我经常在测试中发现我没有足够的检查来查看用户是否可以根据数据状态执行某项操作。

在ASP.Net中很容易编写几个执行简单任务的页面,然后将它们与Response.Redirect或Server.Transfer链接在一起。现在我尝试在任何给定页面上实现的是设计规范所说的。因此,如果我的页面只是一个搜索页面,那就是我给的全部内容。如果用户想要查看搜索中返回的项目的详细信息,那么我将它们发送到itemDetails.aspx页面。

答案 2 :(得分:1)

你已经打破了大多数软件开发人员所拥有的障碍,这个障碍阻碍了你对可用性的看法。许多开发人员并没有真正考虑它,并试图通过在一个窗口,网页或其他任何东西中填充功能来使它们更容易。

事情是,一旦你从用户的角度开始设计软件,即让它变得更容易,一些事情开始变得清晰。一个是代码维护的问题,如果你不把所有内容都放在一个巨大的类或者你一直在做的任何讽刺中,代码很容易被处理。另一个是可用性本身,您开始考虑用户如何通过图形界面实际使用您的应用程序。第三是在您停止开发用户不需要的功能时避免要求或范围蔓延。

我们用户之所以想要简单,部分是因为我们不希望花费大部分时间在糟糕的用户界中混淆,因为我们可以通过简单易用的UI更快地完成工作。这使我们的软件开发人员能够做正确的事情,在各个层面上思考你的设计......而且规范总是存在

答案 3 :(得分:1)

绝对同意:大多数尝试编写过多的页面/表单都会导致

  • 错误和重写。保持所有部件有效/同步会出现问题,
  • 过度管理用户的期望(“我在这里输入了账单号码并点击了”找人“,但是它给出了一条错误信息。为什么?”)当两者在逻辑上分开时。如果只有有效选项可见,则不会出现这些问题,
  • 格式化/布局问题:在ASP.NET页面中,尝试布局独立的用户控件实际上是一场噩梦(“但我们真的希望所有按钮垂直对齐!”在单独的用户控件中祝你好运。)

只有当目标受众由域专家组成时,我才会考虑具有多种功能的网页,即在一个页面上需要大量功能以提高工作效率的人(想想数据输入或包含大量变量的财务软件)。

即便如此,大多数情况下,单独的页面可能会分成单个单元。

答案 4 :(得分:0)

  1. 没有
  2. 是的 - 我
  3. 我发现快乐的媒介是使用Masterpages,并以IFrames熟悉的方式使用它。我可以将很多功能组合在一起。使用名为Prism
  4. 的WPF / Silverlight有一种更有趣的方法

答案 5 :(得分:0)

页面上的功能通常不是由您决定,而是由您的客户决定。如果客户要求单个页面更新某些VeryComplexObject,您可能最终会得到一个具有大量行的aspx页面。主要原因是您只需要为页面上的所有操作提供大量事件处理程序。

该页面是否复杂完全取决于您。您应该始终尝试使代码隐藏文件尽可能简单和干净。这个方向的一些建议:

  • 将所有业务代码移至另一个应用层。
  • 使用ObjectDataSource向数据绑定控件提供数据,例如ListViewGridViewRepeater,...将数据加载到专用对象会阻止你的aspx.cs文件中有很多开销。

另一个建议是使用用户控件来实现页面的某些部分。通常只有在可以重用用户控件时才能执行此操作,但它也可以帮助降低页面复杂性(代码隐藏文件和aspx)。

答案 6 :(得分:0)

有时候我觉得我们都忘了忘记我们开发应用程序的人是谁。作为开发人员,能够退后一步并查看应用程序并不总是很容易,因为用户可能会这样做。这就是为什么大公司雇佣了数百人为他们做这件事的原因,他们并不总能做到这一点。

可用性是一个巨大的主题,但它是所有开发人员需要牢记的东西。我花了很长时间才学到这一点,但在处理任何开发任务时,我总是试着想一想我的用户将如何与我正在编写的内容进行交互。这将对您开发的所有级别产生影响。

我建议阅读Don't Make Me Think by Steve Krug。本书不会让你读到一个时代,它会提供一些很棒的想法,可以帮助你开发更容易使用和理解的应用程序。

我总是发现,一旦我考虑过用户体验,关于我的网页将会做什么以及他们将如何进行互动的决定就更容易实现。

答案 7 :(得分:0)

也许您应该询问使用您网站的用户。或者更好的是,只看人们使用您的网站。我认为这会告诉您网站设计是否合理,或者您是否需要更改网站。