为好的UI选择合适的工具
为好的UI选择合适的工具
好的UI是应用程序成功的重要因素。选择一个能为用户提供高效应用程序的框架。
by Robert
Ericsson
适用环境 .NET Framework
转载自发赛特技术网
UI是一个应用程序很重要的一面——它直接影响程序的使用价值。对于大多数用户来说,UI就是他们对一个产品的全部的了解。所以对他们来说,一个内部设计良好但UI不好的应用程序就是一个不好的程序。一个.NET应用程序的UI框架是决定它的商业价值的重要因素。Windows Forms所适用的场合为,用户要求定制或者有一些特别的需求并在一定的范围内使用;ASP.NET应用程序更适合操作简单明了,使用范围广的应用程序。使用Windows Forms和ASP.NET的原因并不是互斥的,你所要关心的是哪一个UI框架能更加高效地解决你的问题。
因为UI是最终产品成败的一个很重要的原因之一,也是软件框架中的一个重要的元素。根据一个通常的定义,软件框架是一些重要决策的集合,这些决策包括组织、结构和UI。因为UI是如此的重要,所有它有资格成为框架组成的一部分。
定义一个使用各种框架决策的架构是很困难的,所以本文将把重点放在软件框架的一小部分:从技术角度来选择.NET企业应用程序的UI。生成好的UI的重要因素之一是选择合适的技术。对于大多数.NET开发者来说是Windows Forms和ASP.NET 之间的选择,但这并不是说你要选择其中之一,如果可能,你应在特定的情况下尽量使用两种技术。
在讲述如何在两者之间做出选择以及何时使用两者之前,我先大致讲一下.NET中的基本的UI技术。然后我会描绘出一个架构,你可通过它并根据你的应用程序的需求来在Windows Forms和ASP.NET之间作出选择。我假设你的应用程序是基于.NET的,所以我将不会讲到Microsoft以前的UI技术, 如Visual Basic 6.0 或Microsoft Foundation Classes(MFC)。
考虑使用Windows
Forms
因为人们现在常强调创建Web应用程序,这会使我们产生一种Windows应用程序将会被淘汰的错觉,然而对于许多.NET应用程序,Windows界面也许更适合,而且他们更容易被用户接受,开发量也比Web界面少。Microsoft已经认识到了这一点,.NET框架中专门有一个类库是为开发Windows
UI设计的,它就是Windows Forms。
Windows Forms 一是个基于封装了底层Windows API的.NET对象编程模型,像别的核心类一样,Windows Forms类也包括在System名字空间中。你可以用任何支持.NET平台的语言来开发Windows Forms应用程序。这样可以保护你的开发人员在现有语言上的投入,使那些在使用VB或MFC上有经验的人很快地转入.NET的开发。
开发Windows Forms应用程序同开发基于Form的VB程序很类似,Windows Form应用程序可以充分利用管制执行环境带来的好处,集成的安全,简单的访问数据方法(包括XML Web service和ADO.NET)。这些元素在典型的企业应用程序中会起到很重要的作用。现在就为Windows Form的高效性下结论不免有些为时过早,不过通过它类似VB,可以看出它高效的一面。
我相信从一个Form到另一个Form的这种可视化继承是一种很有用的创新,它提高了开发效率以及Windows Form程序的可用性。在大多数情况下,Form都直接从System.Winforms.Form类中派生出来,但也可从用户自己设计的Form中派生出来。通过继承一个用户定义Form,子Form不光可以继承父Form的样子也可继承它的代码和逻辑。这样可以保证Form的一致性。如果你的公司有界面设计的标准,并且创建了一个Form来封装了这些标准,那么所有的Form都从它派生将是一件容易的事。
相对于剪贴,继承使得维护使用标准更加简单高效,它使你创建内部和外部都一致的企业应用程序。尽管Ralph Waldo Emerson的“愚蠢的一致性是 头脑简单的怪物”这种说法是对的,但这句话并不适用这种情况。应用程序的一致性会使用户把注意力放在业务上,而不会因为程序的不一致性使用户限于困境。
除了Windows Form给应用程序带来的好处外,Microsoft已经考虑到了一个Windows应用程序在企业级环境中的一个很大的缺点——整体拥有成本(TCO)。在不久以前,实施和维护基于COM的Windows应用程序意味着要同“DLL Hell”做斗争。.NET消除了分别安装和配置的麻烦。实际上,Microsoft的目标是为.NET程序提供XCOPY式的安装。这样的话,在安装程序时,开发人员只需把程序拷贝到用户的机器。他们可以在Web server上生成一个开发包,并在客户端通过URL来访问这个包。当然,Windows Form并不是唯一的方法——你也可以考虑新版本的 Active Server Pages (ASP)。
评估你的ASP.NET选项
ASP.NET是开发动态、高效Web应用程序的下一代技术,ASP是Microsoft为提供Web应用程序开发技术的第一次尝试。因为ASP比它以前的技术简单得多,所以很快成为一种受欢迎的Web应用程序开发方式。不过这种简单性是有代价的,ASP也有很多不足。首先把UI和应用程序逻辑混在一起的方式使得程序没有框架性,且难于维护。其次,因为ASP应用程序由脚本语言写成,所以执行速度慢。最后,开发ASP的工具没有像Visual
Basic那样高效。Microsoft想通过Visual InterDev提供一种可视化的开发环境,但是它的功能有限。尤其是它生成的网页缺少所见即所得的功能,许多开发者选择文本编辑器来开发ASP应用程序。
不过Microsoft通过ASP和.NET Framework的集成消除了这些限制。首先,在Framework 中,Web Form被分成代码模块和一个ASPX布局文件。代码模块包括managed common language runtime (CLR)类,ASPX页面看起来类似ASP页面。模块被ASP.NET runtime 执行并且作为包含在代码模块中的逻辑结果的模板 。相对于以前的ASP,现在的这种把布局同逻辑分开的方法可使我们很容易地把精力集中到逻辑上。像别的CLR应用程序一样,ASP.NET应用程序是编译的,并不依赖于解释脚本。编译的结果将会在性能上大大优于ASP。
最使人感到意外的是,Visual Studio .NET(VS.NET)使得开发Web Form应用程序就像开发Visual Basic程序一样简单。同Windows Form的情形一样,你可用任何.NET支持的语言写ASP.NET应用程序,这些语言包括VB.NET、C#和JScript.NET。尽管你也可以用文本编辑器来写ASP.NET程序,但是VS.NET提供了一个类似Visual Basic的IDE开发环境,对于VB开发者来讲很容易上手,提高开发效率。
XML Web service是ASP.NET中最引人注意的特性。Web service可使应用程序以“软件就是服务”的方式在网上发布。开发者可在服务器端生成业务逻辑,并用ASP.NET创建Web service。这些XML Web service可以被任何Simple Object Access Protocol (SOAP)客户端调用,它们包括Windows Forms应用程序和Web Form应用程序,调用过程也很简单。Microsoft也考虑到了ASP.NET Web 应用程序的TCO问题。“no-touch”的安装方式使你在安装时只需简单地把新的应用程序拷到服务器上即可。管制代码会自动用新版本的代码。
在两者之间作出选择
现在你知道了哪些东西可选,该是为你的.NET企业应用程序的UI选择最佳框架的时候了。首先你必须考虑是否每一个选择都可以满足你的程序需求。如果一个技术不能满足程序功能和非功能方面需求,那么选择哪一个就很清楚了。然而实际中的应用程序并不是那么的简单。
举例来说,一个房地产应用程序需要为手机、PDA和别的非Windows无线访问协议(WAP)的设备提供列表信息。你不能用Windows Form 作为唯一的UI框架,因为它不能满足所有应用程序的需求。一些WAP设备不支持Windows Form,如手机,应为它的屏幕太小,硬件处理能力太弱。这并不意味着你在框架中完全不使用Windows Form。如果数据录入部分没有WAP这方面的需求,你应考虑在框架中使用Windows Form来提供比ASP.NET好的录入方法。Windows Form提供的灵活界面可使输入更为高效。在这种情况下,你同时得到了两者的优点——ASP.NET为外面的用户提供界面,Windows Form为内部的使用提供界面。
然后,你应该做一个花销/收益分析,看哪一个技术提供高效的解决方案。你需要估计增长的花销和每种.NET核心UI技术带来的好处。最简单的分析花销/受益的技术就是分别把所有的花销和收益加起来,然后直接比较。不过你最好从负责项目各个部分的管理人员那里获得准确的收益。很多公司有一些估计和计算所需的花销的软件。简单直接的花销/收益分析方法在大多数情况下是可行的。在一个简单的.NET企业应用程序花销/收益分析中,花销可被分成两部分:开发方面和操作方面。
估计花销
开发方面的花销可出现在开发的每一个环节,他们包括规范、分析、设计、编码和测试。在这个花销/收益的方法中,花销应在在软件完全开始之前算出。因为.NET还很新,我们不能以以前的经验来估计。.NET这场游戏的名字就是程序员高产出。尽管Microsoft研究并指出高产出是一定的,但是现在就说Windows
Form 或 ASP.NET 会带来巨大的UI开发效率还为时过早。
操作花销包括开发费用、维护费用以及最重要的用户服务所带来的花销。程序只开发一次,但是每天都被使用。对于开发者来说,用户花一分钟的时间来弄清他们设计的不是很好的界面不是一件大不了的事,但是在一年中,1000个人每天都浪费那一分钟,那么你浪费了两个人年的时间。所以影响以后花销的一个重要因素是你的程序的可用性。
程序的可用性可以从两个方面来衡量。第一个方面是对于一般的用户你的UI的易学性如何。这个方面对于有大量的用户但使用不是很频繁的情况很重要。第二个方面是你的程序对于高级用户的可用性。高级用户会花一些时间来学习操作如何使用界面以期望以高效灵活的方式完成他们的工作。这一方面对于经常使用程序的群体(多或少)很重要。
Windows Form可提供更高层次的可用性,因为它允许开发者制定高客户化的UI,并且比Web 应用程序提供的标准界面更加高效和灵活。Web 应用程序用到了它不适合用到的场合,那么它的可用性将大打折扣。Web browser的导航特性(如Back 和Forward)可用于不同的页面之间的转换,这个特性很容易学习,但是对于别的应用程序来讲它就不是那么好了。
基于Web的邮件应用程序是一个典型的例子,它把最好的频繁使用的应用程序变成了客户端可执行的东西。尽管因为简单、易用而受到欢迎,但是它的可用性并比不上最好的客户端应用程序。举个例子,大多数的客户端邮件应用程序(如Outlook)允许从邮件列表中选择他们并预览。这样通过邮件的前几行,用户就可以作出是否马上阅读、以后阅读或者删除的决定。相比之下,基于Web的邮件应用程序只能使用户一次打开一个邮件,这增加了额外的一步。对于一般的用户这没有什么,但是对于高级用户,他们每天要收几百封的邮件,这额外的一步对他们来说是一个沉重的负担。因为邮件程序是许多人要经常使用的,所以易用性比易学性更重要。
当然,你可以使用任何技术来生成一个不好的UI;即使你用再合适的框架也不能保障好的可用性。你需要根据用户所要完成的任务来设计你的UI。在设计的某些阶段让用户参与进来以保证你所设计的UI更适合他们的习惯。总的来说,在一个企业中许多人都要做的事情(如通过一个人力资源应用程序来查自己还有多少假可休)可以增强他们对Web应用程序的认识,并且了解如何用Web应用程序来完称简单的任务。高级用户更愿意花时间学习用Windoes Form实现功能强大的界面以使他们的工作更简单。
对于用户,UI就是程序。开发一个可用性很高的程序的第一步是选择正确的技术。你也需要了解用户需要什么,并且想出满足他们需求的最好的方法——适当的技术只是实现应用程序的一种方法。
关于作者:
Robert Ericsson是一个有经验的软件开发者和项目经理,他主要使用Microsoft的技术。他的e-mail地址是
dotnet@l10systems.com
。
- · ERwin\ERX 3.0数据库设计工…
- · 数据库的跨平台设计
- · 浅谈oracle数据库的建模与设…
- · 数据库设计中的敏捷方法
- · 数据库设计构想
- · MISRA 2004规则
- · 质量管理新七种工具
- · 软件质量保证的成功之路
- · 信息系统工程监理特点
- · ClearCase与Office的集成
- · 基于复用的软件开发过程中的配置管理
- · 没有使用版本控制的黑暗时代——版本控制心得
- · 软件工程与能力成熟度模型C…
- · 版本管理器Visual SourceSa…
- · Visual SourceSafe组织软件…
- · 配置管理系统中的概念
- · 软件配置管理与ClearCase
- · Visual SourceSafe中文讲义…
- · 软件配置管理技术及应用
- · 产品开发过程数据安全管理策…
- · ClearCase四大功能详述
- · Rational SODA 介绍
- · 软件工程与能力成熟度模型C…
- · 信息化建设的项目管理计划、实施和控制兵法
- · 制药企业ERP误区剖析
- · 我国企业实施ERP的必要性研究
- · 管理信息系统基础
- · 77种网络经济创新模式
- · 中国钢铁(台湾)电子商务应用
- · CRM中的决策支持系统与商业智能
- · ASP - ERP资料集锦
- · 设备维护管理系统
- · 上海金丰易居客户关系管理案…
- · 供应链管理解决方案
- · 计算机辅助会计教学系统的设…
- · 烟草企业ERP的特点分析及实…
- · CRM产品系统分析
- · CRM软件系统的结构功能分析
