论文部分内容阅读
摘要:本文介绍了在Windows的新版本“Windows Vista”中将要使用的新一代标记语言XAML,给出了它的定义、规则。对新一代编程语言的发展方向作了一定的探讨。
关键词:XAML;Windows Vista;标记语言
中图分类号:TP312文献标识码:A 文章编号:1009-3044(2007)03-10774-02
1 引言
下一个版本的Microsoft Windows操作系统(代号为“Windows Vista”)不但标志着操作系统工作方式的改变,而且标志着应用程序构建方式的重大变革。从许多方面来看,代号为“Windows Vista”的下一版MicrosoftWindows操作系统都是一个重要的里程碑。“Windows Vista”是第一个用托管代码构建的操作系统,而且首次采用了新的存储子系统(代号为“WinFS”),这种存储系统是文件系统概念的一次革命。它还是第一个支持自然搜索技术(Natural UI)的操作系统,这种技术自动解决了查询文本固有的大量多义性问题。此外,Windows Vista是第一个以安全机制和可信计算为核心从头设计的操作系统。
2 新一代Windows程序的编程方式
Windows Vista中最为重要的一个改变是,改变了传统应用程序构建的方式,这种操作系统使应用程序可以一次编码,在多个部署方案中使用。为了实现这个伟大的目标,Windows Vista中使用了一种新的声明标记语言来编写,这种语言的代号是 "XAML"(可扩展应用程序标记语言)。利用 XAML 元素,可以控制每个页的布局,包括文本和图像的显示、插入按钮、文本框等交互式组件。在Windows Vista中,使用了Application对象作为应用程序模型的核心。这个对象通过对属性、方法和事件进行集合,使得我们可以把XAML的页面和经典的Windows程序结合起来。在Windows Vista中,Application对象处于根对象的地位,提供基本的应用程序的支持。Application对象是Windows Vista应用模型的核心,通过该对象的一整套属性、方法和事件,我们可以使用XAML语言来编写一致而典型的Windows应用程序。Application对象是Windows Vista提供的顶级应用程序对象,它提供了基本的应用程序支持,一般来说,WindowsVista中的程序结构如图1所示。
一个典型的Windows Vista程序,可以看作是一些页面的集合,其中包含了一些脚本和程序代码,其中的页面使用新的标记语言XAML。使用XAML的元素,你可以控制每个页面的外观,甚至可以用XAML语言来独立的完成程序。
3 XAML的定义
XAML 的全称是Extensible Application Markup Language (可扩展应用程序标记语言)。简单的说,XAML是一种基于XML的UI描述语言,被定制设计来描述应用程序的用户接口。XAML标记和Windows的控件很相似,但更加抽象,用途也更广泛。每个XAML标记对应一个.NET的Framework的类,并包含其中的方法,属性和事件。在XAML脚本中可以设置属性和注册事件。每个tag对应的控件,在运行时被实例化。XAML的所有元素使用一个内在的类,但有很多类并没有对应的XAML元素,这些往往是抽象类,大多是用来继承的。XAML可以用来定义应用程序初始的可视界面,并编写用于实现其他功能的代码。
XAML也可以用来定义文本、图像和控件的布局,这与HTML非常的相似,大多数的程序代码将同时包含程序代码和XAML,使用XAML可以定义应用程序初始的可视界面,并编写用于实现其他功能的代码。可以将程序代码直接嵌入到XAML中,也可以将它保留在一个单独的文件内。总之,XAML是用于以声明方式呈现构成应用程序用户界面的语言。由于XAML是基于XML的界面资源标记语言,所以允许用户使用XML技术,将界面元素(例如对话框,菜单,工具条等等)以及相关信息写入XML资源文件中,在程序运行時,动态载入。从而赋予了应用程序更为强大的界面处理能力。
4 XAML的优势
当资源改变的时候,无需重新编译和链接应用程序;将资源和代码分开的策略,使程序的设计和开发更具灵活性;在运行时,可以动态地改变资源文件,从而改变应用程序的风格和外观;使得用户界面程序可以跨平台运行;实现外观,数据,以及程序逻辑的层次性划分。
由上可知,基于XAML的用户界面标记语言,能够为用户应用程序的开发模式带来近乎革命性的变革。
5 XAML面向对象的特性
5.1 用XAML表示对象
XAML文件中的每个元素都会导致在运行时创建一个对应的对象。下面是一个简单的用户界面的例子:
在这个例子中,程序中有三个对象,分别是FlowPanel、Text和Button类型。由于命名空间的存在,XAML编译器知道要使用哪些类库。XAML文件通常是编译过的,而不是在运行时分析,在构建基于XAML的项目时,XAML编译器将分别为每个XAML文件生成一个类,这些类包含用于创建XAML中制定对象的编码。
5.2 设置复杂属性
并非所有属性都可以表示为字符串,有些属性具有一个包含许多嵌套对象的内部结构。XAML支持一种特殊的语法,用于设置这些所谓的复杂属性。与使用特性来设置属性相反,这些特性可以使用子元素来设置。为了表明一个XAML元素表示一个复杂属性而不是表示通常的子对象,元素名称必须包含父元素的名称,后面跟着一个点,然后再跟着属性名称,如下面例子所示:
这个例子并不是想一般的类型转换机制那样把字符串转换成一个“brush”,而实际上我们通过标记创建了一个“复杂的brush”——LinearGradientBrush ,同时,还创建了很多的填充区(fill stages)。这个例子创建了两个复杂属性,他们一个嵌套着一个。元素设置了Button的背景属性,在它的内部,元素设置了“linear gradient brush”的GradientStops 属性。复杂属性的语法工作方式与其他的XAML元素一样——它也允许构建对象树,唯一不同的是,他们将会被指定为元素的属性而不是子元素。
5.3 处理事件
向XAML页面添加代码的主要原因是为了处理事件。向XAML文件中加入的代码应该在某些事件发生时调用。在XAML 中处理事件只需向希望其处理事件的元素添加一个特性,该特性的名称应该是事件的名称,其值应该是code-behind文件中的处理程序方法的名称。例如可像下例般处理事件: 。这样将导致XAML编译器生成相应代码,把OnClick函数作为事件处理程序。它使用标准的.NET事件处理机制来完成这个工作。
6 结束语
XAML是一种简单但很强大的构建.Net对象树的方法。因为XAML基于XML,所以我们可以直接基于XAML来创建程序。这不仅仅使手工创建UI很容易,而且也将会使通过XSLT把XML数据转换到XAML中变得容易。XAML使用户界面设计清晰的从代码中分离出来,而且,XAML被集成到WinFX中,这使得使用代码操作那些定义在文件中的元素很容易。XAML 象征着过去基于 Windows 的应用程序编程时代的结束。由于有了用于 UI 定义的轻量 XAML 标记,基于 Windows Vista 的应用程序会成为集中 Web 和桌面编程模型的下一步发展方向,这将是编程语言的巨大进步,必将对现有的编程模式产生巨大的里程碑式的变革。
参考文献:
[1]www.msdn.com.
[2]Nigel McFarlane. A Standards-based Look at XAML's Features[J],http://www.devx.com, 2005.
[3]Andrei Arion , et al. Efficient Query Evaluation over Compressed XML Data. In : 9th Int ’l Conf on ExtendingDatabase Technology ( EDBT 2004) , Heidelberg : Springer2Verlag [J], 2004. 2002218.
[4]Mahesh Chand, XAML - Putting XML to Work [J] http://www.c-sharpcorner.com/Longhorn/XAML/PuttingXMLtoWork.asp 2006.3.
[5]oasis Microsoft Extensible Application Markup Language (XAML) [J] http://xml.coverpages.org , 2005.10.
[6]Nigel McFarlane A Standards-based Look at XAML's Fea
本文中所涉及到的圖表、注解、公式等内容请以PDF格式阅读原文。
关键词:XAML;Windows Vista;标记语言
中图分类号:TP312文献标识码:A 文章编号:1009-3044(2007)03-10774-02
1 引言
下一个版本的Microsoft Windows操作系统(代号为“Windows Vista”)不但标志着操作系统工作方式的改变,而且标志着应用程序构建方式的重大变革。从许多方面来看,代号为“Windows Vista”的下一版MicrosoftWindows操作系统都是一个重要的里程碑。“Windows Vista”是第一个用托管代码构建的操作系统,而且首次采用了新的存储子系统(代号为“WinFS”),这种存储系统是文件系统概念的一次革命。它还是第一个支持自然搜索技术(Natural UI)的操作系统,这种技术自动解决了查询文本固有的大量多义性问题。此外,Windows Vista是第一个以安全机制和可信计算为核心从头设计的操作系统。
2 新一代Windows程序的编程方式
Windows Vista中最为重要的一个改变是,改变了传统应用程序构建的方式,这种操作系统使应用程序可以一次编码,在多个部署方案中使用。为了实现这个伟大的目标,Windows Vista中使用了一种新的声明标记语言来编写,这种语言的代号是 "XAML"(可扩展应用程序标记语言)。利用 XAML 元素,可以控制每个页的布局,包括文本和图像的显示、插入按钮、文本框等交互式组件。在Windows Vista中,使用了Application对象作为应用程序模型的核心。这个对象通过对属性、方法和事件进行集合,使得我们可以把XAML的页面和经典的Windows程序结合起来。在Windows Vista中,Application对象处于根对象的地位,提供基本的应用程序的支持。Application对象是Windows Vista应用模型的核心,通过该对象的一整套属性、方法和事件,我们可以使用XAML语言来编写一致而典型的Windows应用程序。Application对象是Windows Vista提供的顶级应用程序对象,它提供了基本的应用程序支持,一般来说,WindowsVista中的程序结构如图1所示。
一个典型的Windows Vista程序,可以看作是一些页面的集合,其中包含了一些脚本和程序代码,其中的页面使用新的标记语言XAML。使用XAML的元素,你可以控制每个页面的外观,甚至可以用XAML语言来独立的完成程序。
3 XAML的定义
XAML 的全称是Extensible Application Markup Language (可扩展应用程序标记语言)。简单的说,XAML是一种基于XML的UI描述语言,被定制设计来描述应用程序的用户接口。XAML标记和Windows的控件很相似,但更加抽象,用途也更广泛。每个XAML标记对应一个.NET的Framework的类,并包含其中的方法,属性和事件。在XAML脚本中可以设置属性和注册事件。每个tag对应的控件,在运行时被实例化。XAML的所有元素使用一个内在的类,但有很多类并没有对应的XAML元素,这些往往是抽象类,大多是用来继承的。XAML可以用来定义应用程序初始的可视界面,并编写用于实现其他功能的代码。
XAML也可以用来定义文本、图像和控件的布局,这与HTML非常的相似,大多数的程序代码将同时包含程序代码和XAML,使用XAML可以定义应用程序初始的可视界面,并编写用于实现其他功能的代码。可以将程序代码直接嵌入到XAML中,也可以将它保留在一个单独的文件内。总之,XAML是用于以声明方式呈现构成应用程序用户界面的语言。由于XAML是基于XML的界面资源标记语言,所以允许用户使用XML技术,将界面元素(例如对话框,菜单,工具条等等)以及相关信息写入XML资源文件中,在程序运行時,动态载入。从而赋予了应用程序更为强大的界面处理能力。
4 XAML的优势
当资源改变的时候,无需重新编译和链接应用程序;将资源和代码分开的策略,使程序的设计和开发更具灵活性;在运行时,可以动态地改变资源文件,从而改变应用程序的风格和外观;使得用户界面程序可以跨平台运行;实现外观,数据,以及程序逻辑的层次性划分。
由上可知,基于XAML的用户界面标记语言,能够为用户应用程序的开发模式带来近乎革命性的变革。
5 XAML面向对象的特性
5.1 用XAML表示对象
XAML文件中的每个元素都会导致在运行时创建一个对应的对象。下面是一个简单的用户界面的例子:
在这个例子中,程序中有三个对象,分别是FlowPanel、Text和Button类型。由于命名空间的存在,XAML编译器知道要使用哪些类库。XAML文件通常是编译过的,而不是在运行时分析,在构建基于XAML的项目时,XAML编译器将分别为每个XAML文件生成一个类,这些类包含用于创建XAML中制定对象的编码。
5.2 设置复杂属性
并非所有属性都可以表示为字符串,有些属性具有一个包含许多嵌套对象的内部结构。XAML支持一种特殊的语法,用于设置这些所谓的复杂属性。与使用特性来设置属性相反,这些特性可以使用子元素来设置。为了表明一个XAML元素表示一个复杂属性而不是表示通常的子对象,元素名称必须包含父元素的名称,后面跟着一个点,然后再跟着属性名称,如下面例子所示:
这个例子并不是想一般的类型转换机制那样把字符串转换成一个“brush”,而实际上我们通过标记创建了一个“复杂的brush”——LinearGradientBrush ,同时,还创建了很多的填充区(fill stages)。这个例子创建了两个复杂属性,他们一个嵌套着一个。
5.3 处理事件
向XAML页面添加代码的主要原因是为了处理事件。向XAML文件中加入的代码应该在某些事件发生时调用。在XAML 中处理事件只需向希望其处理事件的元素添加一个特性,该特性的名称应该是事件的名称,其值应该是code-behind文件中的处理程序方法的名称。例如可像下例般处理事件: 。这样将导致XAML编译器生成相应代码,把OnClick函数作为事件处理程序。它使用标准的.NET事件处理机制来完成这个工作。
6 结束语
XAML是一种简单但很强大的构建.Net对象树的方法。因为XAML基于XML,所以我们可以直接基于XAML来创建程序。这不仅仅使手工创建UI很容易,而且也将会使通过XSLT把XML数据转换到XAML中变得容易。XAML使用户界面设计清晰的从代码中分离出来,而且,XAML被集成到WinFX中,这使得使用代码操作那些定义在文件中的元素很容易。XAML 象征着过去基于 Windows 的应用程序编程时代的结束。由于有了用于 UI 定义的轻量 XAML 标记,基于 Windows Vista 的应用程序会成为集中 Web 和桌面编程模型的下一步发展方向,这将是编程语言的巨大进步,必将对现有的编程模式产生巨大的里程碑式的变革。
参考文献:
[1]www.msdn.com.
[2]Nigel McFarlane. A Standards-based Look at XAML's Features[J],http://www.devx.com, 2005.
[3]Andrei Arion , et al. Efficient Query Evaluation over Compressed XML Data. In : 9th Int ’l Conf on ExtendingDatabase Technology ( EDBT 2004) , Heidelberg : Springer2Verlag [J], 2004. 2002218.
[4]Mahesh Chand, XAML - Putting XML to Work [J] http://www.c-sharpcorner.com/Longhorn/XAML/PuttingXMLtoWork.asp 2006.3.
[5]oasis Microsoft Extensible Application Markup Language (XAML) [J] http://xml.coverpages.org , 2005.10.
[6]Nigel McFarlane A Standards-based Look at XAML's Fea
本文中所涉及到的圖表、注解、公式等内容请以PDF格式阅读原文。