用C编XML的编辑器毕业论文.doc_第1页
用C编XML的编辑器毕业论文.doc_第2页
用C编XML的编辑器毕业论文.doc_第3页
用C编XML的编辑器毕业论文.doc_第4页
用C编XML的编辑器毕业论文.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用C#编XML的编辑器用C#编XML的编辑器第一章Xml简介第一节 XML历史: 20世纪60年代,IBM创建GML(Generalized Markup Language,通用标记语言),后经演变,发展成SGML(Standard Generalized Markup Language,标准通用标记语言),成为第一个标准化的信息结构化技术,被用在IBM内部,1986年成为ISO标准。功能强大,但缺点是需要一大堆昂贵的软件来运行,所以在Internet发展的初期,不能成为表示超文本的最佳选择。于是后来HTML对SGML进行了极大的简化,从而成为现在Internet的标准。随着对网络需求进一步增大,人们开始扩充HTML的功能,慢慢发展成现在这么庞大混乱的局面。于是W3C(World Wide Web Consortium,万维网联盟)组织了一个SGML专家组,主要目标是创建一种新的标记技术,既要具备SGML的核心技术,还要具备HTML的简单性。1998年2月,W3C发布了XML 1.0规范,即可扩展的标记语言(eXtensible Markup Language)是SGML简化的子集,继承了SGML重要的三个特性:可扩展性,结构化,有效性,成为表示结构化信息的一种标准文本格式。第二节 xml语法基础: 基本构成单元叫实体(entity),包含解析的或未解析的数据.解析的数据由字符构成,可以看成是标记,由XML处理函数处理,而未解析的字符数据被当成原始文本不被处理,例如Delfan,和就是标记,而Delfan是原始文本。标记用来描述文件的存储结构(实体)和逻辑结构(元素)。XML语法实际描述了用来定义XML文件的结构和布局的构造,也包含了约束关系,而XML需要XML处理函数来处理,所以必须遵守严格的语法。一个简单的例子: Delfan 某某 ab.c 一个XML文件只能有一个根,而且,XML是基于UNCODE编码的,标记都可以是汉字.还有,IE本身就是个XML的解析器,虽然不很完善。可以将以上代码写到一个文本文件中,例如文件名为test.xml,双击,IE就可以把这个XML文档解析成一棵树并按层次显示出来:第三节 XML的术语XML文档:XML标识语言写成的XML原代码文件,实际上是ASCII的纯文本文件,可以用Notepad创建和修改。XML文档的后缀名为.XML,用IE5.0以上浏览器可以直接打开并显示成树状结构,看到的就是XML文档.一般来说,XML文档包含三个部分:1. 一个XML文档声明 : 2. 一个关于文档类型的定义 : 如不需要可以省略3. 用XML标识创建的内容. 举例: 1000 张三 200 张三 其中第一行就是一个XML文档的声明,并指出使用GB2312,以下就是内容主体部分。 : XML文档中有关的术语:1.Element(元素)元素是组成XML文档的最小单位,由标识来定义,包括其中的内容,如张三,而且要由自己创建2.Tag(标识) 标识是用来定义元素的。在XML中,标识必须成对出现,将数据包围在中间。标识的名称和元素的名称是一样的。例如:张三,其中就是标识。3.Attribute(属性)例如中规格和单位就是属性,属性是对标识进一步的描述和说明,一个标识可以有多个属性,每个属性都有它自己的名字和数值,是标识的一部分,也是自己定义的,但尽量不要用属性,而是使用子元素,例如上面元素可以改成 B5 本 200,这么做的原因是属性不易扩充。4.Declaration(声明) 所有XML文档的第一行都有一个L声明表示是一个XML文档,并指出遵循哪个版本的规范:说明是1.0版本的XML文档5.DTD(文件类型定义) DTD是用来定义XML文档中元素,属性以及元素之间关系的。通过DTD文件可以检测XML文档的结构是否正确,作用:用来规范XML文档,元素和标签使用是否正确。DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。DTD文件也是一个ASCII的文本文件,后缀名为.dtd。实际上是XML文件的抽象出来的模板。但建立XML文档并不一定需要DTD文件。6.Well-formed XML(良好格式的XML)遵守XML语法规则,并遵守XML规范的文档称之为良好格式。如果你所有的标识都严格遵守XML规范,那么你的XML文档就不一定需要DTD文件来定义它。良好格式的文档必须以一个XML声明开始,必须说明文档遵守的XML版本,目前是1.0,文档必须有一个根元素,而且只能有一个,就是紧接着声明后面建立的第一个元素,其它元素都是这个根元素的子元素.L文档的内容书写时必须遵守XML语法。第四节 本软件中的xml 本软件的目的是要做一个编辑xml文挡的编辑器。由于xml文挡是树形结构的,所以在本软件中xml文挡就用treeView控件显式显示出来,treeView也是树形结构的,但treeView控件允许有多个根节点,需要对treeView作一些限制,另外treeView控件只是将xml文档的树形结构显示出来,但xml文档中各个节点的属性值和文本值不能在treeView中显示出来,所以,要给treeView中的每个节点赋一个指针,指针所指的地址中存储着xml文档中对应节点的文本值和属性值。以上是本软件的制作思想,要实现这种做法有两个难点:1、要用treeView显示xml文档的结构,就要能读取xml文档的结构,再在treeView中显示出来。2、存储文件时,能读取treeView的结构,把它存储成xml文件。这里对本软件作了一个简要的介绍,在论文的结束部分将做进一步的介绍。第二章 Microsoft .net中的c#第一节 .Net简介 要介绍c#。就要先介绍一下C#所运行的平台.Net。.NET是什么呢?先看一下微软本身对它是如何定义的。定义 .NET 的最简单方法(Sanjay Parthasarathy,平台战略副总裁,2000年 12 月 21 日)1 分布式计算定义 .NET 最好的方式就是想一想 .NET 要做什么。Microsoft 认为向分布式计算的转变正在悄悄地进行着。在过去的几年中,人们一直在铺设宽带电缆,使带宽的限制比过去要小得多。根据摩尔定律效应,每 18 个月处理能力翻一番,价格降低一半,现在您首次可以选择进行真正的分布式计算:因为带宽已经不那么昂贵,您可以在任何最佳地点进行处理。当今已经有很多这种分布式应用程序的例子。Napster 就是一个使用胖客户端与计算机群集中的目录服务进行对话的应用程序,它把网络上的所有参与的计算机都当作服务器。另一个分布式应用程序的例子是即时消息,胖客户端与计算机群集中一个伙伴列表对话,同时还可以与网络中的其他胖客户端 - Instant Messenger 和 Windows 进行通信。因此,.NET 的目的正是要加速产生下一代分布式计算的过程。2 三个杠杆我们认为可以拉动三个杠杆,以使下一代分布式计算尽可能快地发生。Web 服务:第一个杠杆是一切都要成为 Web 服务。这适用于网络中的两种东西:软件和资源(如存储)。聚合与集成:第二个需要拉动的杠杆是,一旦您拥有了这些 Web 服务,就需要以一种非常简单和容易的方式将它们聚合与集成起来。简单而令人神往的用户体验:加速分布式计算的第三个杠杆是,需要有简单和令人神往的消费者或者最终用户体验。因此我们认为这三个杠杆是加速向分布式计算转移的必要条件: 一切都要成为 Web 服务; 聚合与集成 Web 服务的能力; 向最终用户提供简单而令人神往的体验的能力。 .NET 的目的正是致力于拉动这些杠杆,以加速向分布式计算的转移,为了正确地拉动这些杠杆,我们正在做五项工作。3 分五部分构建 .NET(1).开发工具我们做的第一项工作是:通过 .NET 框架和 Visual Studio 工具集,使编写 Web 服务尽可能简单方便。我们认为,用于编写 Web 服务最好、最方便、最快并且最节约的方法是使用 .NET 框架和 Visual Studio .NET 开发工具。(2).服务器我们做的第二项工作是:真正致力于 Web 服务聚合与集成,这恰恰是我们的 .NET 服务器家族的用武之地。我们认为,这些服务器是用于聚合与集成 Web 服务最好、最简单、最方便、最节约的方法。可以从两个方面看待这些服务器。大家熟悉和喜爱的一组服务器是 Windows 2000、SQL Server 2000、Exchange 2000,XML 管线内置于其核心。而 XML,正如您所知,可能是最简单最大众化的集成 Web 服务的方法。第二类服务器是我们构建的专门服务器,如 BizTalk Server,它们提供更高级别和更灵活的聚合与集成。以 BizTalk Server 2000 为例,它内置了一种叫作 XLANG 的语言,通过该语言您可以定义过程流、事务流和协定,也可以跨异类环境进行相当深层次的集成。这就是 .NET 的第二部分:用以加速 Web 服务聚合与集成的服务器集。(3).基础服务我们的第三项工作是:使最终消费者的体验简单而令人神往,为此我们正在构建一个 .NET 构造块服务集。几乎每个人,每当他遇到多个站点和多个应用程序时,都遇到过这样的情况:需要登录这些站点和应用程序;我们正在创建一个诸如标识、通知和系统化存储之类的小服务集,利用这些服务,消费者和用户从一个服务转向另一个服务,从一个应用程序转到另一个应用程序,甚至从一种环境转向另一个环境都将非常容易。这种简单性在分布式计算的世界里是绝对必要的。这些 .NET 构造块服务对开发人员也有巨大的益处:它们与以前的 Windows 中的内存管理器和文件系统非常相似,当人们编写应用程序时,不需要每次都把内存管理器和文件系统复制一遍。我们相信,开发人员将喜欢这些服务集成到计算机群集中,而且它们得到保证,因此他们可以将精力集中投入到可以大大增值的事情上去。.NET 构造块服务是 .NET 的第三部分。(4).设备第四部分致力于最终用户的体验,通过一套我们正在创建的客户端和设备软件,将特别带给用户令人神往的体验。首先,.NET 假设您拥有了一个设备家族,我们正是要创建许多设备软件,以使人们可以使用相互取长补短的设备家族。我们将在设备软件中做一些有趣的事情,以使您尽可能体验到令人神往的效果。一方面,您将拥有我们为游戏机创建的设备软件,另一方面,您也将拥有我们为 PC 创建的设备软件,同时我们还致力于创建用于从电话到 PDA 到其他如掌上 PC 之类的各种设备的软件。(5).用户体验在拉动简单而令人神往的用户体验这一杠杆方面,我们的最后一项工作,是正在实实在在地创建一些非常有针对性的用户体验,把 Web 服务集合到一起,并且集成很多功能,以提供非常有针对性的体验。我们正在创建 面向消费者的 MSN 面向小型企业的 bCentral 面向知识工作者的 Office 面向开发人员的 Visual Studio .NET。 3 .NET 平台总而言之,这五部分就是 .NET 的全部内容。您已经了解了 .NET 框架和 Visual Studio .NET 工具; 服务器; .NET 构造块服务; 设备软件; 有针对性的用户体验。 我把前四者组合到一起称之为 .NET 平台,而最后一个则是建在该平台之上的应用。 现在我们已经知道.NET产生的目的是什么,也知道它应该具有的功能,那么可以对.NET做如下定义:何谓.NET?它是Microsoft面向XML Web服务的平台。但准确地说,什么是XML Web服务呢? 它是未来的计算。Microsoft .NET 扩展了通过任何设备随时随地操作数据和进行通讯的能力。.NET 使用分布式计算模型并基于开放标准(如 XML)将 PC 与其他智能设备连接在一起。.NET 就是 Microsoft 的 XML Web 服务平台。不论操作系统或编程语言有何差别,XML Web 服务能使应用程序在 Internet 上传输和共享数据。第二节 什么是 XML Web 服务?前面讲道.Net是面向XML Web服务的平台,那XML Web服务又具体是什么呢?那下面将详细阐述什么是XML Web服务:要点 XML Web 服务使应用程序能够共享数据。 可以跨平台和跨操作系统,不分编程语言地对 XML Web 服务进行调用。 .NET 是 Microsoft 的针对 XML Web 服务的平台。 1 XML 革命尽管简单得令人难以置信,XML 确实正在彻底改变我们创建和使用软件的方式。 Web 彻底改变了用户与应用程序的交互方式。通过提供一种能使数据更易适配或更易转换的通用数据格式,XML 正在彻底改变应用程序间的交互方式 或者更广义地说,计算机间的交互方式。包括 SOAP 和 UDDI 在内的基于 XML 的标准,构成了应用程序间通信的开放式方法,此方法叫做 XML Web 服务。2 XML Web 服务:一种通用语言XML Web 服务使应用程序能够通过 Internet 进行通信,不管操作系统或编程语言是什么。它们可以在任何平台上实现并且可以由诸如 W3C 的公共标准组织定义。有了 XML Web 服务,应用程序不仅可以共享数据,还可以调用其他应用程序的功能,而不考虑其他应用程序是如何生成的。通过 XML 共享数据在保证应用程序相互独立的同时,还使它们能够建立松链接而形成一个合作组来完成某个特定的任务。3 Web 站点 与 XML Web 服务Web 站点致力于为用户提供信息:它们是服务器与用户交互的通信工具。另一方面,XML Web 服务为应用程序间的交互提供了一个直接的手段。本机上托管的应用程序和远程计算机上的应用程序可以使用 XML 和 SOAP 消息通过 Internet 进行通信。4 ML Web 服务如何连接应用程序 以下是一个简单实例:假如您有一个库存系统。如果您没有把它与其他任何系统连接起来,它就不会有很大价值。您可以跟踪库存,但这是一项繁重的工作,并且一个系统可以单独完成的工作是有限的。您所出售的每件商品的记录不仅要输入库存系统,还要分别输入计帐系统和客户帐户记录。然后您必须记得下次订货的时候从您的供应商那里预订更多的此类商品。因为从系统中获得的赢利接近系统的管理成本,所以成本/收益比率就很没有吸引力了。但是,如果您通过 XML 把您的库存系统和您的计帐系统连接起来,就会变得更有趣。现在,无论何时您购买或出售了什么,对您的库存和资金周转的影响会在一个步骤中跟踪。如果更进一步,把您的仓库管理系统、客户订货系统、供应商订货系统和您的发货公司也用 XML 连接起来,突然间您的库存管理系统就变得价值不匪:您可以端到端地管理您的业务,对每个交易只做一次操作,而不是对交易涉及的每个系统都做一次操作。工作量大大减少,出错机会也会大大减少。XML Web 服务使这些连接变得简单易行。XML Web 可使应用程序通过 Internet 共享信息,而不必考虑操作系统或应用程序使用的后端软件。(图2.2.1观察此图,可知用户之间、服务器之间以及用户与服务器之间是如何交互的)第三节 .NET 框架概述以上是Microsoft对.Net在宏观方面的解释,下面就说一说.Net在微观方面既具体在计算机上是如何实现的,这一部分也就是Microsoft构建的面向开发人员的 Visual Studio .NET。Visual Studio .NET 提升了下列高产的编程语言:Microsoft Visual Basic,它包含了新的面向对象的编程功能;Microsoft Visual C+,它提升了 Windows 开发并可用于创建 .NET 应用程序;以及 C#,它给 C 和 C+ 开发人员带来了 RAD。现将.Net框架简述如下: .NET 框架是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。.NET 框架旨在实现下列目标: 提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。 提供一个将软件部署和版本控制冲突最小化的代码执行环境。 提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。 提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。 使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。 按照工业标准生成所有通讯,以确保基于 .NET 框架的代码可与任何其他代码集成。 .NET 框架具有两个主要组件:公共语言运行库和 .NET 框架类库。公共语言运行库是 .NET 框架的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET 框架的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发包含从传统的命令行或图形用户界面 (GUI) 应用程序到基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)在内的应用程序。.NET 框架可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET 框架不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例。使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件。以这种方式承载运行库使得托管移动代码(类似于 Microsoft ActiveX 控件)成为可能,但是它具有只有托管代码才能提供的重大改进(如不完全受信任的执行和安全的独立文件存储)。下面的插图(图2.3.1)显示公共语言运行库和类库与应用程序之间以及与整个系统之间的关系。该插图还显示托管代码如何在更大的结构内运行。(图2.3.1 .NET 框架环境)下面的章节将更加详细地描述 .NET 框架的主要组件和功能。1 公共语言运行库的功能公共语言运行库管理内存、线程执行、代码执行、代码安全验证、编译以及其他系统服务。这些功能是在公共语言运行库上运行的托管代码所固有的。至于安全性,取决于包括托管组件的来源(如 Internet、企业网络或本地计算机)在内的一些因素,托管组件被赋予不同程度的信任。这意味着即使用在同一活动应用程序中,托管组件既可能能够执行文件访问操作、注册表访问操作或其他须小心使用的功能,也可能不能够执行这些功能。运行库强制实施代码访问安全。例如,用户可以相信嵌入在 Web 页中的可执行文件能够在屏幕上播放动画或唱歌,但不能访问他们的个人数据、文件系统或网络。这样,运行库的安全性功能就使通过 Internet 部署的合法软件能够具有特别丰富的功能。运行库还通过实现称为通用类型系统 (CTS) 的严格的类型验证和代码验证基础结构来加强代码可靠性。CTS 确保所有托管代码都是可以自我描述的。各种 Microsoft 和第三方语言编译器生成符合 CTS 的托管代码。这意味着托管代码可在严格实施类型保真和类型安全的同时使用其他托管类型和实例。此外,运行库的托管环境还消除了许多常见的软件问题。例如,运行库自动处理对象布局并管理对对象的引用,在不再使用它们时将它们释放。这种自动内存管理解决了两个最常见的应用程序错误:内存泄漏和无效内存引用。运行库还提高了开发人员的工作效率。例如,程序员可以用他们选择的开发语言编写应用程序,却仍能充分利用其他开发人员用其他语言编写的运行库、类库和组件。任何选择以运行库为目标的编译器供应商都可以这样做。以 .NET 框架为目标的语言编译器使得用该语言编写的现有代码可以使用 .NET 框架的功能,这大大减轻了现有应用程序的迁移过程的工作负担。尽管运行库是为未来的软件设计的,但是它也支持现在和以前的软件。托管和非托管代码之间的互操作性使开发人员能够继续使用所需的 COM 组件和 DLL。运行库旨在增强性能。尽管公共语言运行库提供许多标准运行库服务,但是它从不解释托管代码。一种称为实时 (JIT) 编译的功能使所有托管代码能够以它在其上执行的系统的本机语言运行。同时,内存管理器排除了出现零碎内存的可能性,并增大了内存引用区域以进一步提高性能。最后,运行库可由高性能的服务器端应用程序(如 Microsoft SQL Server 和 Internet 信息服务 (IIS))承载。此基础结构使您在享受支持运行库宿主的行业最佳企业服务器的优越性能的同时,能够使用托管代码编写业务逻辑。2 .NET 框架类库.NET 框架类库是一个与公共语言运行库紧密集成的可重用的类型集合。该类库是面向对象的,并提供您自己的托管代码可从中导出功能的类型。这不但使 .NET 框架类型易于使用,而且还减少了学习 .NET 框架的新功能所需要的时间。此外,第三方组件可与 .NET 框架中的类无缝集成。例如,.NET 框架集合类实现一组可用于开发您自己的集合类的接口。您的集合类将与 .NET 框架中的类无缝地混合。正如您对面向对象的类库所希望的那样,.NET 框架类型使您能够完成一系列常见编程任务(包括诸如字符串管理、数据收集、数据库连接以及文件访问等任务)。除这些常见任务之外,类库还包括支持多种专用开发方案的类型。例如,可使用 .NET 框架开发下列类型的应用程序和服务: 控制台应用程序。 脚本应用程序或寄宿的应用程序。 Windows GUI 应用程序(Windows 窗体)。 ASP.NET 应用程序。 XML Web services。 Windows 服务。 例如,Windows 窗体类是一组综合性的可重用的类型,它们大大简化了 Windows GUI 的开发。如果要编写 ASP.NET Web 窗体应用程序,可使用 Web 窗体类。3 客户端应用程序开发客户端应用程序在基于 Windows 的编程中最接近于传统风格的应用程序。这些是在桌面上显示窗口或窗体从而使用户能够执行任务的应用程序类型。客户端应用程序包括诸如字处理器和电子表格等应用程序以及自定义的业务应用程序(如数据输入工具、报告工具等等)。客户端应用程序通常使用窗口、菜单、按钮和其他 GUI 元素,并且它们可能访问本地资源(如文件系统)和外围设备(如打印机)。另一种客户端应用程序是作为 Web 页通过 Internet 部署的传统 ActiveX 控件(现在被托管 Windows 窗体控件所替代)。此应用程序非常类似于其他客户端应用程序:它在本机执行,可以访问本地资源,并包含图形元素。过去,开发人员将 C/C+ 与 Microsoft 基础类 (MFC) 或应用程序快速开发 (RAD) 环境(如 Microsoft Visual Basic)一起使用来创建这样的应用程序。.NET 框架将这些现有产品的特点合并到了单个且一致的开发环境中,该环境大大简化了客户端应用程序的开发。包含在 .NET 框架中的Windows 窗体类旨在用于 GUI 开发。您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。例如,.NET 框架提供简单的属性以调整与窗体相关联的可视属性。某些情况下,基础操作系统不支持直接更改这些属性,而在这些情况下,.NET 框架将自动重新创建窗体。这是 .NET 框架集成开发人员接口从而使编码更简单更一致的许多方法之一。和 ActiveX 控件不同,Windows 窗体控件具有对用户计算机的不完全受信任的访问权限。这意味着二进制代码或在本机执行的代码可访问用户系统上的某些资源(如 GUI 元素和受限制的文件访问)而不能访问或危害其他资源。由于具有代码访问安全性,许多曾经需要安装在用户系统上的应用程序现在可以通过 Web 安全地部署。您的应用程序可以在像 Web 页那样部署时实现本地应用程序的功能。4 服务器应用程序开发在托管领域中,服务器端应用程序是通过运行库宿主实现的。非托管应用程序承载公共语言运行库,后者使您的自定义托管代码可以控制服务器的行为。此模型在获得主服务器的性能和可伸缩性的同时提供给您公共语言运行库和类库的所有功能。下面的插图(图2.3.2)显示在不同服务器环境中运行托管代码的基本网络架构。在应用程序逻辑通过托管代码执行时,服务器(如 IIS 和 SQL Server)可执行标准操作。 (图 2.3.2 服务器端托管代码)ASP.NET 是使开发人员能够使用 .NET 框架开发基于 Web 的应用程序的宿主环境。但是,ASP.NET 不止是一个运行库宿主;它是使用托管代码开发 Web 站点和通过 Internet 分布的对象的完整结构。Web 窗体和 XML Web services 都将 IIS 和 ASP.NET 用作应用程序的发布机制,并且两者在 .NET 框架中都具有支持类集合。XML Web services 作为基于 Web 的技术的重要发展,是类似于常见 Web 站点的分布式服务器端应用程序组件。但是,与基于 Web 的应用程序不同,XML Web services 组件不具有 UI 并且不以浏览器(如 Internet Explorer 和 Netscape Navigator)为目标。相反,XML Web services 包含旨在供其他应用程序(如传统的客户端应用程序、基于 Web 的应用程序或者甚至是其他 XML Web services)使用的可重用的软件组件。因此,XML Web services 技术正迅速地将应用程序开发和部署推向高度分布式 Internet 环境。如果您使用过 ASP 技术的早期版本,您马上就会注意到 ASP.NET 和 Web 窗体提供的改进。例如,您可以用支持 .NET 框架的任何语言开发 Web 窗体页。此外,您的代码不再需要与 HTTP 文本共享同一个文件(尽管如果您愿意,代码还可以继续这样做)。Web 窗体页用本机语言执行,这是因为与所有其他托管应用程序一样,它们充分利用运行库。与此相对照,非托管 ASP 页始终被写成脚本并解释。ASP.NET 页比非托管 ASP 页更快、更实用并且更易于开发,这是因为它们像所有托管应用程序一样与运行库进行交互。.NET 框架还提供类和工具的集合来帮助开发和使用 XML Web services 应用程序。XML Web services 是基于 SOAP(一种远程过程调用协议)、XML(一种可扩展的数据格式)和 WSDL(Web 服务描述语言)这些标准生成的。基于这些标准生成 .NET 框架的目的是为了提高与非 Microsoft 解决方案的互操作性。例如,.NET 框架 SDK 所包含的Web 服务描述语言工具可以查询在 Web 上发布的 XML Web services,分析它的 WSDL 描述,并产生 C# 或 Visual Basic 源代码,您的应用程序可以使用这些代码而成为 XML Web services 的客户端。这些源代码可以创建从类库中的类派生的类,这些类使用 SOAP 和 XML 分析处理所有基础通讯。虽然您可以使用类库来直接使用 XML Web services,Web 服务描述语言工具和包含在 SDK 中的其他工具可以使您更加方便地用 .NET 框架进行开发。如果您开发和发布自己的 XML Web services,.NET 框架为您提供了一组符合所有基础通讯标准(如 SOAP、WSDL 和 XML)的类。使用这些类使您能够将注意力集中在服务的逻辑上,而无需关注分布式软件开发所需要的通讯基础结构。最后,与托管环境中的 Web 窗体页相似,您的 XML Web services 将使用 IIS 的可伸缩通讯以本机语言的速度运行。第四节 为什么会出现c#(c sharp)为什么会出现c#(c sharp)?在过去的二十年里,C和C+已经成为在商业软件的开发领域中使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过同时也牺牲了一定的效率。与诸如Microsoft Visual Basic等语言相比,同等级别的C/C+应用程序往往需要更长时间来开发。由于C/C+语言的复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的权衡点。目前有些语言,以牺牲灵活性的代价来提高效率。可是这些灵活性正是C/C+程序员所需要的。这些解决方案对编程人员的限制过多(如屏蔽一些底层代码控制的机制),其所提供的功能难以令人满意。这些语言无法方便地同早先的系统交互,也无法很好地和当前的网络编程相结合。对于C/C+用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。另外,一些C/C+开发人员还需要在必要的时候进行一些底层的编程。微软推出C#,C# (C sharp)是微软对这一问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。第五节 C#的特点 -2000年6月,Microsoft公司向外界宣布了C#语言,它是专门设计用于为Microsoft的.Net应用开发体系结构服务的。从以往的开发经验中可以知道,如果要开发一门新的计算机语言,就要解决那些用C或C+语言开发时常遇到的传统问题,如内存泄漏、多线程应用程序写入困难、静态链接、非法指针调用、复杂的多重继承规则等等。为了减少语言学习过程中的弯路,还应使设计出的语言看起来与C和C+尽量相似。6年前,Sun公司开发了与平台无关的Java语言,它增加了垃圾回收,集成了线程间的互锁、动态链接等概念,同时抛开了指针概念,只允许单继承,并且还引入了接口的概念。 那么c#对此类问题是如何解决的呢?又或者说c#有什么特点呢?c#的特点- C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。1 效率与安全性 新兴的网络经济迫使商务企业必须更加迅速的应对竞争的威胁。开发者必须不断缩短开发周期,不断推出应用程序的新版本,而不仅仅是开发一个“标志性”的版本。C#在设计时就考虑了这些问题。它使开发者用更少的代码做更多的事,同时也不易出错。2 支持现有的网络编程新标准 新的应用程序开发模型意味着越来越多地解决方案依赖于新出现的网络标准,例如HTML,XML,SOAP等。现存的开发工具往往都是早于Internet出现的,或者是在我们所熟知的网络还处于孕育期时出现的。所以,它们一般无法很好地支持最新的网络技术。C#程序员可以在Microsoft .NET平台上事半功倍的构建应用程序的扩展框架。C#包含了内置的特性,使任何组件可以轻松转化为XML网络服务,通过Internet被任何操作系统上运行的任何程序调用。更突出的是,XML网络服务框架可以使现有的XML网络服务对程序员来说就和C#对象一样。这样,程序员就可以方便地使用他们已有的面向对象的编程技巧来开发利用现有的XML网络服务。还有一些精细的特性,使得C#成为一流的网络编程工具。例如,XML正逐渐成为在网络上传输结构化数据的标准。这种数据集合往往非常小。为提高性能,C#允许把XML数据直接映射到struct数据类型,而不是class。这样对处理少量的数据非常有效。3 消除大量程序错误 即使是专家级的C+程序员也常会犯一些最简单的小错误比如忘了初始化变量,但往往就是这些小错误带来了难以预料的问题,有些甚至需要很长时间来寻找和解决。一旦一个程序作为产品来使用,就算最简单的错误纠正起来也可能要付出极其昂贵的代价。 C#的现代化设计能够消除很多常见的C+编程错误。例如: 1,资源回收减轻了程序员内存管理的负担。 2,C#中变量由环境自动初始化。 3,变量是类型安全的。 这样,程序员编写与维护那些解决复杂商业问题的程序就更方便了。 4 对版本的更新提供内在的支持降低了开发成本 更新软件组件是一项很容易出错的工作,因为代码的修改可能无意间改变原有程序的语义。为协助开发者进行这项工作,C#为版本的更新提供内在的支持。例如,方法重载必须显式声明。这样可以防止编码错误,保证版本更新的灵活性。还有一个相关的特性就是对接口和接口继承的内在支持。这些特性使得C#可以开发复杂的框架并且随着时间不断发展更新它。 总体来说,这些特性使得开发程序项目的后续版本的过程更加健壮,从而减少后续版本的开发成本。5 商业过程和软件实现的更好对应 企业的商业计划要付诸现实,必须在抽象的商业过程和实际的软件实现之间建立紧密地对应。不过大多数语言都很难做到这点。例如,如今的程序员们一般使用代码注释来注明哪个类对应于某个抽象的商业对象。 C#语言允许类型定义的,扩展的元数据。这些元数据可以应用于任何对象。项目构建者可以定义领域特有的属性并把他们应用于任何语言元素-类,接口等等。然后,开发人员可以编程检查每个元素的属性。这样,很多工作都变得方便多了,比如编写一个小工具来自动检查每个类或接口是否被正确定义为某个抽象商业对象的一部分,或者只是创建一份基于对象的领域特有属性的报表。定制的元数据和程序代码之间的紧密对应有助于加强程序的预期行为和实际实现的之间的对应关系。6 扩展交互性 作为一种自动管理的,类型安全的环境,C#适合于大多数企业应用程序。但实际的经验表明有些应用程序仍然需要一些底层的代码,要么是因为基于性能的考虑,要么是因为要与现有的应用程序接口兼容。这些情况可能会迫使开发者使用C+,即使他们本身宁愿使用更高效的开发环境。C#采用以下对策来解决这一问题:l 内置对组建对象模型(COM)和基于Windows?的API的支持;l 允许有限制地使用纯指针(Native Pointer)。在C#中,每个对象都自动生成为一个COM对象。开发者不再需要显式的实现IUnknown和其他COM接口.这些功能都是内置的.类似的,C#可以调用现有的COM对象,无论它是由什么语言编写的.C#包含了一个特殊的功能,使程序可以调用任何纯API。在一段特别标记的代码中,开发者可以使用指针和传统C/C+特性,如手工的内存管理和指针运算。这是其相对于其它环境的极大优势。这意味着C#程序员可以在原有的C/C+代码的基础上编写程序,而不是彻底放弃那些代码。无论是支持COM还是纯API的调用,都是为了使开发者在C#环境中直接拥有必要的强大功能。结论C#是一种现代的面向对象语言。它使程序员快速便捷地创建基于Microsoft .NET平台的解决方案。这种框架使C#组件可以方便地转化为XML网络服务,从而使任何平台的应用程序都可以通过Internet调用它。C#增强了开发者的效率,同时也致力于消除编程中可能导致严重结果的错误。C#使C/C+程序员可以快速进行网络开发,同时也保持了开发者所需要的强大性和灵活性。第六节 C sharp的一些绝技C#是由C和C+派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,C#意在综合Visual Basic的高效率和C+的强大功能。那c#是如何综合Visual Basic和C+的呢?而且除了Visual Basic和C+的特点,C#是否还有别的特点呢?答案是肯定的:1 快速应用开发(RAD)功能 支持快速开发(Rapid application development)可以说是目前开发语言最为重要的一大功能,也正是C/C+的致命伤。网络时代应用系统的开发必须按照网络时代的速度来进行,支持快速开发可以使得开发人员的开发效率倍增,从而使得他们可以从繁重的重复性劳动中解放出来。 C#的RAD功能主要表现在例如垃圾收集、指代等众多特性上。垃圾收集机制将减轻开发人员对内存的管理负担,而指代功能更是可以让开发者不经过内部类就调用函数。利用C#的这些功能,可以使开发者通过较少的代码来实现更强大的应用程序,并且能够更好地避免错误发生,从而缩短了应用系统的开发周期。 2 语言的自由性 用C#编写的程序能最大程度地和任何支持.NET的语言互相交换信息。能够继承和使用任何语言所编写的程序可以称得上是知识的继承,这样做的好处是节省了大量的工作,你不必把COBOL等语言强行改成另一种语言,.NET让各种语言真正地互相交流了。 C#和其他.NET语言有着最好的协作,这点对开发人员非常重要。全球从事编写软件的人当中,大约有50%以Visual Basic作为基本的编程工具,在跨入.NET编程时代的时候,这些人轻松地使用了.NET的VB开发Web上的应用程序,想想以后你可以和你的那些只懂VB的同事真正在一起共同开发.NET的应用程序时,还有比这更让人轻松和高兴的事情吗? 3 强大的Web服务端组件 在C#的Web编程中,最让人兴奋的是Web服务端的组件,它们不仅包括传统组件,还包括那些能够自动连接五花八门服务的可编程组件,你可以用C#编写自己的服务器端组件,服务器端组件和标准的HTML提供的服务自然是不一样的,使用它们可以更自由、更容易地进行数据绑定。不久,那些视频服务器组件也很快会出现,有了这些强大的组件,我们可以设计出功能更加强劲的企业级分布式应用系统。 4 支持跨平台 随着互联网应用程序的应用越来越广,人们逐渐意识到由于网络系统错综复杂,使用的硬件设备和软件系统各不相同,开发人员所设计的应用程序必须具有强大的跨平台性。C#编写的应用程序就具有强大的跨平台性,这种跨平台性也包括了C#程序的客户端可以运行在不同类型的客户端上,比如PDA、手机等非PC装置。 5 与XML的融合 由于XML技术真正融入到了.NET和C#之中,C#的编程变成了真正意义的网络编程,甚至可以说.NET和C#是专为XML而设计,使用C#的程序员可以轻松用C#内含的类来使用XML技术。就这方面而言,目前C#提供给了程序员更多的自由和更好的性能来使用XML。 6 对C+的继承 C#继承并保留了C+强大的功能,例如, C#保留了类型安全的检测和重载功能,C#还提供了一些新功能取代了一些原来的ANSI C预处理程序的功能,提高了语言的类型安全等安全性。 了解了C#如此众多的特性,你是不是也感觉心动呢!身怀绝技的C#将在未来正式步入征程,与我们的程序开发人员携手共进! 没有最好只有更好 C#将真正成为新世纪的新语言。有人现在就在讨论C#和Java的性能优劣,其实这并没有什么实际意义,因为C#和Java 都将随着时代的发展而继续发展,并不断加以改进以适

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论