对Windows Vista中新一代标记语言XAML的研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xiaoxiaochengcfq
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍了在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格式阅读原文。
其他文献
摘要:基于量子物理原理的量子密码术已被证明是保密通信中密钥安全分配的有效手段。本文介绍了量子密码的基本原理,介绍了实现量子加密的几种方案,并主要研究了基于EPR纠缠对的密钥分配机制,还讨论了量子密码通信的历史发展和指出现存在的问题以及未来的发展前景。  关键词:量子密码;量子加密;测不准原理;EPR关联;量子纠缠  中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)03
期刊
摘要:实时性是嵌入式应用中一个重要的指标,而优先级翻转是影响系统实时性的一个重要因素。可剥夺型内核中,任务以独占方式使用共享资源时,将出现低优先级任务先于高优先级任务运行的现象,即优先级翻转。本文以实时操作系统uC/OS-II为例,分析了产生优先级翻转的原因,阐述了利用互斥信号量解决该问题的原理并通过具体的应用程序对这一方法的可行性进行了验证。  关键词:uC/OS-II;优先级翻转;mutex
期刊
摘要:在微软某些产品成为事实标准的时代,对这些产品发起挑战是一件困难的事情,但并非是不可能的事情,依靠着技术创新,永中集成Office和桌面Linux作出了典范,并且正朝着正确的方向前进,只要二者能够尊重用户使用习惯、提高兼容性和增强扩展性,打破微软垄断将不再是问题。  关键词:技术创新;平台移转  中图分类号:TP316 文献标识码:A文章编号:1009-3044(2007)03-10791-0
期刊
摘要:动态电路的一个特征是当电路的结构或元件的参数发生变化时,可能使电路改变原来的工作状态,转变到另一个工作状态,这种转变往往需要一个过程,在工程上称为过渡过程。本文以动态电路理论中一阶动态电路用三要素的方法分析计算、二阶以及二阶以上的动态电路用拉普拉斯变换分析求解为例,详述了如何分别运用MATLAB语言编程和应用Simulink模块的方法来对电路进行仿真分析和计算。结论表明,应用MATLAB可以
期刊
摘要:简要回顾了常见的办公OA系统结构和开发技术,分析了B/S结构下OA开发的系统架构、办公应用需求以及开发中存在的问题,设计了一种集成办公软件RedOffice的OA系统。实践证明,该系统可以满足办公需求。  关键词:B/S结构;OA系统;办公应用需求;RedOffice  中图分类号:TP317 文献标识码:A 文章编号:1009-3044(2007)03-10744-02    1 引言  
期刊
摘要:本文介绍了VRML与JAVA、JAVASCRIPT通讯的原理、实现方法以及各自的性能特点,重点研究了JAVA、JAVASCRIPT和VRML在三维建模方面的结合应用技术,并给出了实例。  关键词:虚拟现实建模语言;交互;EAI;API  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)03-10764-01    1 引言    近年来,随着网络技术和WWW的发展
期刊
摘要:硬盘并没像PC的“摩尔定律”一样发展,硬盘成高性能PC发展的绊脚石。新兴的SSD技术日益成熟,这种新技术将改进PC系统结构。本文介绍最新SSD技术的进展,并利用SSD技术对传统的PC存储系统结构进行改进的几种方案及优劣比较。  关键词:SSD;存储系统结构;硬盘;Nand Flash  中图分类号:TP334文献标识码:A文章编号:1009-3044(2007)03-10762-02    
期刊
摘要:针对现有车载MP3播放器的不足,设计了一个基于S3C2410芯片的μClinux环境下的车载MP3播放系统。详细介绍了嵌入式μClinux操作系统和由ARM9芯片S3C2410构建的MP3播放器的硬件结构和软件系统。  关键词:车载MP3; μClinux;S3C2410  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)03-10756-02    1 引言 
期刊
摘要:提出了以Visual C++为开发工具,基于OpenGL技术,开发军用物资装载仿真系统的具体方案。采用数值仿真与可视化技术相结合的方法,建立了军用物资装载模型,对物资装载量与装载方式进行仿真,并得出直观的计算结果,为实际货运装载提供理论依据。  关键词:OpenGL;三维模型;虚拟装载  中图分类号:TP391 文献标识码:A文章编号:1009-3044(2007)03-10802-02  
期刊
摘要:随着计算机技术飞速发展,传统的纸质地图在表现形式及信息查詢方面已越来越难以满足人们对地图的使用需求,如何将互联网用于地图信息管理已成为当前研究的重点。本课题主要研究内容是利用Ajax框架开发“web电子地图系统”,满足用户对地图搜索、定位等功能模块在性能方面上的要求。  关键词:Ajax; web电子地图; Hibernate; LRU  中图分类号:TP399 文献标识码:A文章编号:10
期刊