1、引言 - 1 - 引言引言 微软公司近期推出了 C#程序设计语言,引起业界的普遍关注。为什么有了 VB,VC+,业界又公认了 Java,还要推出一个新的语言?C#能代替 VB,VC+,成为 微软统一的语言吗?我们将以多大的关注去学习 C#?这对于业界第一线软件开 发者,的确是个问题。我们已被各种描述语言(Jscript,VBScript) ,置标语 言(XML, eXML,HTML,SGML),模型语言(UML) ,体系结构描述语言(ADL)弄 得不堪重负,偏偏最直接表述软件的编程语言又出了一个 C#,殊知,编程语言是 专业程序员“找饭碗”的工具。 众所周知,经常换语言滋味是不好受。这是因为无
2、论什么语言既是表达工 具也是思维工具,习惯了某种语言的表达也就习惯了这种语言的思维范型。一 旦习惯,改起来就不舒服。几年前,从 C 到 C+,不少人编程序依然是 DFD 图, 结构图,过程模块,最后凑出对象,以 C+表示。直到相当一段时间之后,才理 解到 OO 的开发好处。一遇到问题,首先想到的是什么是对象,她和对象如何交 互,直接用 C+表达对象。 一个编程语言不断带来新的思维范形式好学的,但是学不到软件开发新技 术。正如 ALGOL,C 程序员学习 FORTRAN 和 Pascal 一样。仅仅学会了一种新的 表示法,从 C+到 C#却不是这样,C#带来新的编程范型,即从面向对象编程到 We
3、b 服务编程。这中间有这个业界巨大的转变:从分布式客户/服务器计算转向 “软件就是服务”的网络计算。后者把资源共享,软件重用又提成到一个新的 阶段,租赁,下载在 Internet 上进行。在 ASP(应用服务提供者)提供的各式 各样服务基础上,业务系统的应用开发者几乎不用编制,维护(升级,纠错) 软件就可以快速交付十分复杂的系统。而 ASP 用 C#开发的 Web 服务也使大量的 使用其它 ASP 提供的服务(当然也包括以 Java,甚至 C+提供的服务构件) 。 微软公司提供的 Microsoft.NET 就是为了完善新一代网络计算环境,而 C# 是其中的核心工具之一,简单说是表达 Web
4、服务软件最方便的工具。然而微软 在开发推行 C#时,又是非常稳健的。原因是网络计算还在纵深发展,目前成功 的应用,如电子商务,企业门户,信息检索不过是网络计算最早期的成果,C# 还在不断试探中完善。 本文用 C#实现 XML 编辑器,XML 是 1998 年 2 月在 WWW(W3C:World Wide Web 引言 - 2 - Consortium)的不懈推动之下持续向前发展。起初,许多开发者还嘲笑 XML,认为 它只不过是编写脚本的新方法而已。但那些常用数据库进行管理和开发的人员很 快就意识到 XML 的潜力之所在;XML 会成为不需要任何专门的方法,就能为团体 之间提供数据服务的一种新
5、的途径。 开发员开始把 XML 的一些片断融入到他们的桌面应用程序中,有的用来存 储配置数据, 有的作为输出文件。 随着时间的推移, 他们开始把XML放到Internet 上,使数据库之间开始通过 XML 进行通信。许多企业发现,得益于 XML,他们对 外部数据的数据操作变得更加轻松了。 不过开发人员并不是唯一发现 XML 潜力的群体:还有微软和那些让 XML 成 为.NET Framework 基础的人士。. NET 的目标是:在桌面应用程序与在线应用 程序之间建立联系;使其对象之间的通信变得更为方便。 第一章 XML 简介 - 3 - 第一章第一章 XMLXML 简介简介 第一节第一节 X
6、MLXML 产生的背景产生的背景 可扩展标记语言 Extensive Markup Language-简称 XML,它同 HTML(即超 文本标记语言-Hyper Text Markup Language)一样,都是来自 Standard Generalized Markup Language,即标准通用标记语言,简称 SGML。SGML 是一 种用标记来描述文档资料的通用语言,它包含了一系列的文档类型定义(简称 DTD) ,DTD 中定义了标记的含义,因而 SGML 的语法是可以扩展的。SGML 十分庞 大,既不容易学,用不容易使用,在计算机上实现也十分困难。鉴于这些因素, Web 的发明者-欧洲核子物理研究中心的研究人员根据当时(1989 年)计算机技 术的能力,提出了 HTML。 HTML 只使用 SGML 中很小一部分标记。为了便于在计算机上实现,HTML 规 定的标记是固定的,既 HTML 语法是不扩展的,它不需要包含 DTD。HTML 这种固 定的语法是它易学易用,在计算机上开发的浏览器也十分容易。正是由于 HTML 的简单性,使 Web 技术从计