技术开发 频道

如何让WPF与你的架构相适合?(1)


【IT168 技术文档】WPF是一个新的客户端用户界面技术,是.NET 3.0 框架的一部分。软件设计者一直面临着为他们的应用程序选择一个正确的表示层技术。如果你一直在开发Windows平台下的应用程序,它的范围是狭窄的。要么你可以创建一个网络应用程序,一个智能的客户机程序,一个移动设备,或者是一些取决于目标对象的结合程序。你所选择的分别在.NET space - ASP.NET, Windows Forms和 Compact 框架里给你提供一个相当短的实用选项表。
   现在一种新的选择即将来临,你也要考虑这种新选择。WPF主要适合智能客户空间,但是网络空间里也有覆迭区。目前WPF没有应用于移动设备里,但是WPF Everywhere(即将面世的派生技术)在不久的将来会给设备带来某些新的性能。本文简单地讨论了WPF的关键概念。告诉你它是怎样适合你的表示层框架,以及怎样改变现在你开发客户应用程序的方式。本文也讨论了WPF与Windows Forms的互操作性,还将展现给大家一个例子:使用互操作性来逐步转移到WPF,而不必大规模的改动。

WPF概述


    当你接触WPF时,你第一个可能想到的问题就是我们为什么需要一个新的表示技术。我们给智能客户端提供了Windows Forms,为网络提供了ASP.NET。为什么不提高这些技术来增加新的性能呢?使用现有的技术来建立新功能的问题就在于经常把某些东西提高到一个新的水平,而你需要一个全新的基础来建立这些性能。你不能在只为两层楼而设计的板子上盖一座摩天大楼。你必须将它拆除,重新再建。当谈到设计表面层的解决办法时,网络在某些方面是很擅长,Windows Forms在其他方面很强。但是作为设计师和开发者,我们希望得到两者的优点。这就是WPF提供给我们的。
    WPF通过引进表示层技术打破了传统的Windows桌面应用程序,表示层技术主要集中在非常好的化客户的感官体验,主要是视觉体验。网络已经进步相当大,使用图像、格式、文本,甚至音频及视频的结合体,在浏览器中比在Windows应用程序中更容易显示丰富的,视觉上更引人注目的内容。但是,由于网络分离的请求-应答模式,在网络上提供丰富的交互式体验比在Windows应用程序上更难。随着AJAX技术的引进,情况将会转好。但是,事实是如果你想非常好的化用户的交互式体验,你需要一个可以利用桌面操作系统全部性能的应用程序。通过平衡客户机器性能,WPF在Windows应用程序里及通过网络更容易表现丰富的交互式图形。图1表示了由InterKnowlogy 开发的示例程序,此应用程序允许三维模式的交互式操作(选择与旋转)。
 
   

    图1 :InterKnowlogy 三维合作

   构建WPF应用程序其中一个核心概念就是用来构建应用程序的一切事物都只是一个元素。控件,形状,3维模式,图像,声音,视频,格式都只是元素。WPF可以让你很容易展现的元素包括:
• 贯穿应用程序元素的均一地使用的格式化内容(颜色,字体,图像,形状)
• 2维和3维形状,图像及模式
• 传统用户界面控件
• 任何元素的动画
   
    WPF的另一个关键特点就是:在开发windows应用程序时,增加了抽象性水平。首先在应用程序的用户界面控件、图形对象、格式及其他对象中有线模糊,所以能当做元素处理。你可以从单个元素或元素集中定义资源,通过应用程序使用这些元素。你可以对经过应用程序却没有在绑定控件间直接耦合的数据源或者是正在运行的数据进行定义。你甚至可以定义控件模板,从控件模板最初是怎样设计来渲染它本身出发,代替一个控件的表达渲染。
    WPF 也允许你使用新的XAML来用标记定义应用程序的静态结构。这个方法与ASP.NET使用标记从应用程序的动态行为中分离布局的方法相似。使用WPF,你可以表达XAML里所有的,部分的或者非XAML的逻辑。就像ASP.NET,XAML允许你在标记文件里包含脚本模块化一样,此标记文件中包括C#或者 VB代码,因此你能在XAML文件里编写整个应用程序。然而,在Visual Studio中使用XAML的默认方式就是使用XAML定义你的用户界面元素的结构,然后在单个C# 或者 Visual Basic代码后置的档案中使用程序设计代码来连接动态部分。然而,你可以不那样做,你可以用纯代码或纯XAML来编写整个应用程序,这在于此应用程序是用来干什么的,以及你想怎样管理这些代码。
0
相关文章