以.NET 3.0的名义与Vista共舞——走近Vista程序开发

技术与开发

微软总是有能力在合适的时间制造出它意料之中的轰动效应,Vista一经推出便令大家趋之若鹜。一时间大家都以谈Vista为时尚,以用Vista为乐事。在这样的氛围中,程序员或者大学生从事Vista程序开发不仅是趋时之举,更是不可多得的“取财”之道。本期,我们就将向大家介绍Vista程序开发所涉及的新知识,然后为大家举一个简单的例子,希望能将大家带入Vista程序开发的殿堂。

掀起.NET Framework 3.0的盖头

跟Vista的喧嚣相比,与之相伴而来的.NET Framework 3.0显得有些低调,即使在微软Vista推广活动中,也没将它作为宣传重点。不过这并非是微软有意忽视,主要是因为对普通用户而言,隐于幕后的.NET Framework 3.0并不能引发他们对Vista的更大兴趣。反倒是程序员对.NET Framework 3.0有一种天然的亲切感,因为他们将在此架构上为Vista编写各种程序。

作为微软精心打造的新一代.NET架构,.NET Framework 3.0将在Vista时代担当最主要的应用程序接口。.NET曾寄予了微软的最大野心和一统江湖之志向,当越来越多的开发者从Win32和JAVA架构转向.NET时,微软也加紧了对.NET的研发,.NET Framework 3.0就是微软在.NET Framework 2.0后最重要的升级。可以说,只有到.NET Framework 3.0,.NET才真正成为令程序员倾心的开发环境,并在同其它架构的较量中逐渐占得上风。

Vista已集成了.NET Framework 3.0,两者可谓珠联璧合。而要开发Vista下的应用程序,虽然仍然可以选择Native方式,但基于.NET Framework 3.0架构应是最好的选择。

小知识 .NET Framework 3.0

.NET Framework 3.0原名WinFX,它建构在.NET Framework 2.0之上,同时新增了四个组件:Windows Workflow Foundation、Windows Communication Foundation(WCF)、Windows CardSpace 和Windows Presentation Foundation(WPF),而这些恰恰是NET Framework 3.0最具价值的部分。

Windows Workflow Foundation用于开发基于工作流的应用程序;Windows CardSpace提供数字标志用户控件;而Windows Communication Foundation则用于开发面向服务的应用程序,它是新一代通讯和网络开发框架,为不同类型的网络应用程序提供了一个通用的编程模型。尤其是包含其中的PeerChannel模块,以难以置信的方式消除了开发P2P应用程序的复杂性和困难度;当然,最令人瞩目还是Windows Presentation Foundation,即原来的Avalon。它是微软全新的图形界面引擎,为各种应用提供统一的界面技术。程序员在它的帮助下,开发出媲美Mac程序的酷炫界面将不再是奢望。

搭建Vista开发环境

Vista推出之初,受Vista增强性能的影响,包括Visual Studio 2005在内的主流开发工具都同Vista存在兼容性问题。不过在微软推出Visual Studio 2005 SP1和Visual Studio 2005 for Vista后,情况已大为改善。在一系列辅助软件的支持下,Visual Studio 2005已成为开发Vista应用程序的不二之选。

下面简单介绍Vista应用程序开发环境的搭建(需要下载的文件我们在文后提供下载链接)。

1.由于Vista已集成了.NET Framework 3.0,所以不必再单独安装.NET Framework 3.0。但如果在Windows XP/2003下开发  .NET Framework 3.0程序,则必须安装。

2.由于Vista比Visual Studio 2005推出晚,因此Windows SDK for Windows Vista and .NET Framework 3.0并未集于Visual Studio 2005之中,而要开发Vista应用程序,则必须有Vista SDK开发包的支持。Windows SDK for Windows Vista and .NET Framework 3.0包含了大量库文件、头文件、文档、示例和工具,容量有1GB之多,下载和安装都要有一些耐心。

3.安装Visual Studio 2005简体中文版。

4.下载并安装Visual Studio 2005 SP1和Visual Studio 2005 for Vista补丁包。Visual Studio 2005 SP1修补了Visual Studio 2005许多漏洞,并增强了一些性能,由于该补丁包要对Visual Studio 2005和Vista进行详细检测,安装比较耗时。而专为Vista推出的Visual Studio 2005 for Vista解决了受 Vista增强功能影响的25个问题,从而使Visual Studio 2005最终成为开发Vista应用程序的利器。

5.为了方便程序员开发.NET Framework 3.0下的新型应用,微软还推出了Visual Studio 2005 Extensions for .NET Framework 3.0(Workflow)和Visual Studio 2005 Extensions for .NET Framework 3.0(WCF&WPF)扩展组件,为Visual Studio 2005提供开发Windows Workflow Foundation、Windows Communication Foundation和Windows Presentation Foundation类型应用程序的模板。其中,Visual Studio 2005 Extensions for .NET Framework 3.0(Workflow)是正式版本,而Visual Studio 2005 Extensions for .NET Framework 3.0(WCF&WPF)还是社区预览版,许多功能有待完善。

至此,就可以在用Visual Studio 2005开发Vista下的各类应用程序了。需要说明的是,上述软件除Visual Studio 2005外,均可在微软网站免费下载。

用XAML描绘绚丽界面

Windows Presentation Foundation(WPF)是新一代图形系统,它在.NET Framework 3.0架构下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。微软还提供了专门的界面开发语言XAML(eXtensible Application Markup Language,可扩展应用程序标记语言),使得界面描述代码和程序代码得以分开,从而提高了开发效率并有利于团队开发。

XAML是微软为构建应用程序界面而创建的一种新的描述性语言。它基于XML,可对WPF程序的所有界面元素进行定制,从而构成具有WPF风格的界面,并最终形成一个组织良好的XML文档。它能够同后台进行逻辑处理的.NET语言如C#、J#、C++、VB等协同工作,其工作性质类似于ASP.NET中的HTML。同HTML一样,XAML既可以直接编码,也可以由专门的工具生成。目前比较好的XAML编辑器是包含在Windows SDK for Windows Vista中的XAMLPad,但功能略显简单。

从这里可以看出,大多数WPF程序将同时包含XAML代码和程序代码。程序员首先使用XAML定义程序界面,然后再用.NET语言编写相应的逻辑代码。跟ASP.NET类似,逻辑代码既可以直接嵌入XAML文件中,也可以将它保存为独立的代码文件。尽管XAML并非设计WPF程序所必需,按照传统方式使用程序代码来实现界面依然有效,但是如果使用XAML,界面设计和逻辑设计可以完全分离,不但使程序的开发和维护更加方便,而且在团队开发中,可以使程序员专注于业务逻辑的实现,而将界面设计交由专业人员来完成,从而使各类人员在项目中各尽其能各展其长,开发出功能强大、界面一流的WPF程序。

在VS 2005中设计Vista程序

为了加深大家对Vista程序开发的认识,下面我们举一个简单的例子,在Visual Studio 2005中使用Visual Studio 2005 Extensions for .NET Framework 3.0(WCF&WPF)模板开发一个简单的WPF程序。

启动Visual Studio 2005,新建Windows Application(WPF)程序项目,如图1所示。WPF模板自动生成程序架构,它主要由多个XAML和对应的cs文件构成。XAML代码显示在下面的XAML窗口中,可以直接编辑。当然,也可以从工具箱中拖动控件并编辑其属性来进行界面设计,所有界面元素的变化都将即时地反映到XAML代码上。由于WPF程序模板尚不完善,往往需要综合使用两种XAML代码编辑方式才能完成界面设计任务,例如控件的事件,目前还只能采用手工方式在XAML代码中添加。

25-f14-1.jpg
图1

本示例界面如图2所示,其XAML代码为:

25-f14-2.jpg
图2

<Window x:Class=“MyWPF.Window1”

xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation”

xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml”

Title=“MyWPF” Height=“324” Width=“447”

<Grid>

<Button Margin=“164,0,163,66” Name=“button1” Click=“ChangeSize” Height=“23” VerticalAlignment=“Bottom”>字体大小</Button>

<Label Margin=“100,100,17,110” Name=“label1” FontSize=“12”>欢迎进入Windows Presentation Foundation世界

</Grid>

</Window>

其中大部分由Visual Studio 2005自动生成,只有Button控件的Click=“ChangeSize”为手工添加。

打开对应的cs文件,在Window1类中添加ChangeSize函数,其功能为设置Label控件字体的大小。它将被Button控件的Click事件调用。代码如下:

using System;

using System.Collections.Generic;

using System.Text;

using System.Windows;

using System.Windows.Controls;

using System.Windows.Data;

using System.Windows.Documents;

using System.Windows.Input;

using System.Windows.Media;

using System.Windows.Media.Imaging;

using System.Windows.Shapes;

namespace MyWPF

{ /// <summary>

/// Interaction logic for Window1.xaml

/// </summary>

public partial class Window1 : System.Windows.Window

{ int fontsize = 12;

public Window1()

{ InitializeComponent(); }

void ChangeSize(object sender, Routed EventArgs e)

{ fontsize++;

label1.FontSize = fontsize; }

}}

点击“启动调试”按钮,对程序进行编译。程序运行效果如图3所示,这就是一个Vista风格的窗口。

25-f14-3.jpg
图3

可以看出,WPF程序在设计上几乎同ASP.NET程序如出一辙,尽管它们有实质性的不同,但形式上却已相差无几,这使.NET程序员能够快速适应WPF程序的开发,从而迈入精彩的.NET Framework 3.0世界,叩开Vista程序开发之门。

风景这边独好

毫无疑问,.NET Framework 3.0已深深烙上Vista印迹,而它也以强大的功能担当起Vista主要开发环境的重任。而几乎将最新网络技术、界面技术、工作流技术和安全技术一网打尽的.NET Framework 3.0,不仅极大地推进了.NET的发展,丰富了.NET的内涵,而且有可能成为.NET在同其它架构竞争中决定胜负的一枚棋子,它在.NET发展中所扮演的角色,可谓呼之欲出。

与Vista相伴而来的.NET Framework 3.0将给Vista软件开发带来全新的气象是不言而喻的。如何充分挖掘.NET Framework 3.0蕴含的巨大能量,以使Vista软件世界更加丰富多彩,将是程序员面临的任务。让我们怀着对.NET Framework 3.0的欣赏之情开始Vista程序开发之旅吧,那里的风景一定会让所有程序员流连忘返。

附:相关软件下载地址

.NET Framework 3.0:

http://download.microsoft.com/download/3/F/0/3F0A922C-F239-4B9B-9CB0-DF53621C57D9/dotnetfx3.exe

Windows SDK for Windows Vista and .NET Frame work 3.0:

http://download.microsoft.com/download/4/2/6/42684501-9ec5-43dd-9dfe-c8c9dfa6a66f/6.1.6000.16384.10.Windows SDK_Vista_Feb2007Update_rtm.DVD.Rel.iso

Visual Studio 2005 SP1简体中文版:

http://download.microsoft.com/download/8/0/7/8071514d-9370-45c3-8af1-4ff09a70e59d/VS80sp1-KB926604-X86-CHS.exe

Visual Studio 2005 for Vista简体中文版:

http://download.microsoft.com/download/7/7/a/77abff64-14 4b-4fa5-bc49-88b1cd574b4f/VS80sp1-KB932230-X86-CHS.exe

Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation)简体中文版:

http://download.microsoft.com/download/7/e/4/7e466ca4-9 e63-4224-8c0f-15cab044f769/Visual Studio 2005 Exten sions for Windows Workflow Foundation (CHS).exe

Visual Studio 2005 extensions for .NET Framework 3.0 (WCF & WPF):

http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=F54F55 37-CC86-4BF5-AE44-F5A1E805680D&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2ff%2ff%2f0%2fff0433fe-733c-4ff4-89aa-c77ff587f388%2fvsextwfx.msi