Language,XML)的完全支持,使应用程序的开发变得更容易、更简单。 Microsoft net 计划还将实现人机交互方面的革命,微软将在其软件中添加手写和语音识别的功能 让人们能够与计算机进行更好的交流,并在此基础上继续扩展功能,增加对各种用户 终端的支持能力。最为重要的,NET将改变因特网的行为方式:软件将变成为服务。 与 Microsoft的其它产品一样,NET与 Windows平台紧密集成,并且与其它微软产品 相比它更进一步:由于其运行库已经与操作系统融合在了一起,从广义上把它称为 个运行库也不为过 简而言之,NET是一种面向网络、支持各种用户终端的开发平台环境。微软的宏 伟目标是让 Microsoft net彻底改变软件的开发方式、发行方式、使用方式等等,并且 不止是针对微软一家,而是面向所有开发商与运营商!NET的核心内容之一就是要搭 建第三代因特网平台,这个网络平台将解决网站之间的协同合作问题,从而最大限度 地获取信息。在NET平台上,不同网站之间通过相关的协定联系在一起,网站之间 形成自动交流,协同工作,提供最全面的服务。 1.12我们为什么需要NET 某一天,你出差到外地,在机场租借手机电话。在向该终端插入自己的IC卡后, 自己的地址簿和计划簿被自动下载,随即它就变成了你个人专用的PDA。这不是梦境! 这是NET为我们描绘的一个未来生活的场景。 人们的需要总是无法满足,我们不断地问自己:“我们还应该有些什么?”需求推 动着技术的进步。在二十一世纪, Internet将成为商业活动的主要场所,B2B、B2C等 电子商务的运作方式,一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度。微软公司在此时提出NET有其深远的战略考虑 改革商务模型。微软公司感觉到只靠销售软件包的商务模型没有什么前途,该公 司打算今后将中心转移到可以在网络上使用“服务”型商务。这样,首要的问题就是解 决网络上用来开发并执行“服务”的平台,这就是 Microsoft net。 提高软件开发生产效率,并且试图使应用软件的发布更为容易(再也不想因为DLL 版本不同而烦恼,希望不用重新启动电脑就能够安装应用软件)。 改进用户界面,并能支持多种用户终端。用户界面演进的结果包括两方面的内容 是完成传统的PC界面与基于XML的浏览器界面间的过渡,二是对自然语言和语音 识别的支持,从而使用户与各种终端之间的沟通更加透明,真正达到网络互连的“3A Anywhere、 Anytime、 Any device 今天,许多的人时常问:“除了上网看新闻,我们究竟还能干什么?”这是因为今 天的互联网与旧式的大型计算机的工作模式还有许多相似之处,信息被储存在中央服 务器内,而用户的所有操作都要依靠它们。让不同的网址之间相互传递有意义的信息, 或者合作提供更广泛和更深层次的服务,还是一件十分困难的事。 现代人时常有一种困惑,感觉到如今生活在技术与机器架构的丛林中,我们在努 力地去适应机器,适应技术,而不是机器和技术适应人类。科技以人为本还只是一个 美好的愿望。这是因为我们还不能将控制信息的权利交给那些需要信息的人们。NET
Language XML 的完全支持 使应用程序的开发变得更容易 更简单 Microsoft.NET 计划还将实现人机交互方面的革命 微软将在其软件中添加手写和语音识别的功能 让人们能够与计算机进行更好的交流 并在此基础上继续扩展功能 增加对各种用户 终端的支持能力 最为重要的 .NET 将改变因特网的行为方式 软件将变成为服务 与 Microsoft 的其它产品一样 .NET 与 Windows 平台紧密集成 并且与其它微软产品 相比它更进一步 由于其运行库已经与操作系统融合在了一起 从广义上把它称为一 个运行库也不为过 简而言之 .NET 是一种面向网络 支持各种用户终端的开发平台环境 微软的宏 伟目标是让 Microsoft.NET 彻底改变软件的开发方式 发行方式 使用方式等等 并且 不止是针对微软一家 而是面向所有开发商与运营商 .NET 的核心内容之一就是要搭 建第三代因特网平台 这个网络平台将解决网站之间的协同合作问题 从而最大限度 地获取信息 在 .NET 平台上 不同网站之间通过相关的协定联系在一起 网站之间 形成自动交流 协同工作 提供最全面的服务 1.1.2 我们为什么需要.NET 某一天 你出差到外地 在机场租借手机电话 在向该终端插入自己的 IC 卡后 自己的地址簿和计划簿被自动下载 随即它就变成了你个人专用的 PDA 这不是梦境 这是.NET 为我们描绘的一个未来生活的场景 人们的需要总是无法满足 我们不断地问自己 我们还应该有些什么 需求推 动着技术的进步 在二十一世纪 Internet 将成为商业活动的主要场所 B2B B2C 等 电子商务的运作方式 一对一营销的经营概念将网络的服务功能提高到了前所未有的 程度 微软公司在此时提出.NET 有其深远的战略考虑 改革商务模型 微软公司感觉到只靠销售软件包的商务模型没有什么前途 该公 司打算今后将中心转移到可以在网络上使用“服务”型商务 这样 首要的问题就是解 决网络上用来开发并执行“服务”的平台 这就是 Microsoft.NET 提高软件开发生产效率 并且试图使应用软件的发布更为容易 再也不想因为 DLL 版本不同而烦恼 希望不用重新启动电脑就能够安装应用软件 改进用户界面 并能支持多种用户终端 用户界面演进的结果包括两方面的内容 一是完成传统的 PC 界面与基于 XML 的浏览器界面间的过渡 二是对自然语言和语音 识别的支持 从而使用户与各种终端之间的沟通更加透明 真正达到网络互连的 3A Anywhere Anytime Any device 今天 许多的人时常问 除了上网看新闻 我们究竟还能干什么 这是因为今 天的互联网与旧式的大型计算机的工作模式还有许多相似之处 信息被储存在中央服 务器内 而用户的所有操作都要依靠它们 让不同的网址之间相互传递有意义的信息 或者合作提供更广泛和更深层次的服务 还是一件十分困难的事 现代人时常有一种困惑 感觉到如今生活在技术与机器架构的丛林中 我们在努 力地去适应机器 适应技术 而不是机器和技术适应人类 科技以人为本还只是一个 美好的愿望 这是因为我们还不能将控制信息的权利交给那些需要信息的人们 .NET
的出现,意味着人们可以只用一种简单的界面就可以编写、浏览、编辑和分享信息 而且还可以得到功能强大的信息管理工具。由于使用的所有的文件都以符合网络协议 的格式存在,所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商、商业伙伴和客户高效地沟通 和分享信息,这样就创造出一种全新的协同工作模式 总之,NET战略是一场软件革命: ●NEI对最终用户来说非常重要,因为计算机的功能将会得到大幅度提升,同 时计算机操作也会变得非常简单。特别地,用户将完全摆脱人为的硬件束缚:用户可 以自由冲浪于因特网的多维时空,自由访问、自由查看、自由使用自己的数据,而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统、任何便携式电脑、任何移 动电话或PDA进行访问,并可对其进行跨应用程序的集成 ·NET对开发人员来说也十分重要,因为它不但会改变开发人员开发应用程序 的方式,而且使得开发人员能创建出全新的各种应用程序,大幅提高软件生产率。NET 将保证完全消除当今计算技术中的所有缺陷。NET定能实现确保用户从任何地点、任 何设备都可访问其个人数据和应用程序的宏伟蓝图。 ●NET把雇员、客户和商务应用程序整和成一个协调的、能进行智能交互的整 体,而各公司无疑将是这场效率和生产力革命的最大受益者。NET承诺为人类创造 个消除任何鸿沟的商务世界。 113NET的核心组件 NET的核心组件包括 一组用于创建互联网操作系统的构建块,其中包括 Passport. NET(用于用户认 证)以及用于文件存储的服务、用户首选项管理、日历管理以及众多的其它任务 构建和管理新一代服务的基本结构和工具,包括 Visual studio net、NET企 业服务器、 Net framework和 Windows Net。 能够启用新型智能互联网设备的NET设备软件 NET用户体验。 12NET与C# 1.2.1支持多种编程语言的NET结构框架 让我们翻开教科书,回顾一下近十年来软件开发的历史 多年以前,当微软的组件对象模型( Component Object Model,COM)尚未推出时, 软件的复用性对于开发人员仅仅是一种美好的憧憬。成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动,但却收效甚微。COM的出现改变了
的出现 意味着人们可以只用一种简单的界面就可以编写 浏览 编辑和分享信息 而且还可以得到功能强大的信息管理工具 由于使用的所有的文件都以符合网络协议 的格式存在 所以所有的商业用户和个人用户都可以方便地查找和使用其中的信息 任何规模的公司都可以使用相同的工具与他们的供应商 商业伙伴和客户高效地沟通 和分享信息 这样就创造出一种全新的协同工作模式 总之 .NET 战略是一场软件革命 z .NET 对最终用户来说非常重要 因为计算机的功能将会得到大幅度提升 同 时计算机操作也会变得非常简单 特别地 用户将完全摆脱人为的硬件束缚 用户可 以自由冲浪于因特网的多维时空 自由访问 自由查看 自由使用自己的数据 而不 是束缚在便携式电脑的方寸空间——可通过任何桌面系统 任何便携式电脑 任何移 动电话或 PDA 进行访问 并可对其进行跨应用程序的集成 z .NET 对开发人员来说也十分重要 因为它不但会改变开发人员开发应用程序 的方式 而且使得开发人员能创建出全新的各种应用程序 大幅提高软件生产率 .NET 将保证完全消除当今计算技术中的所有缺陷 .NET 定能实现确保用户从任何地点 任 何设备都可访问其个人数据和应用程序的宏伟蓝图 z .NET 把雇员 客户和商务应用程序整和成一个协调的 能进行智能交互的整 体 而各公司无疑将是这场效率和生产力革命的最大受益者 .NET 承诺为人类创造一 个消除任何鸿沟的商务世界 1.1.3 .NET 的核心组件 .NET 的核心组件包括 z 一组用于创建互联网操作系统的构建块 其中包括 Passport.NET 用于用户认 证 以及用于文件存储的服务 用户首选项管理 日历管理以及众多的其它任务 z 构建和管理新一代服务的基本结构和工具 包括 Visual Studio.NET .NET 企 业服务器 .Net Framework 和 Windows.NET z 能够启用新型智能互联网设备的.NET 设备软件 z .NET 用户体验 1.2 .NET 与 C# 1.2.1 支持多种编程语言的.NET 结构框架 让我们翻开教科书 回顾一下近十年来软件开发的历史 多年以前 当微软的组件对象模型 Component Object Model, COM 尚未推出时 软件的复用性对于开发人员仅仅是一种美好的憧憬 成千上万的程序员为了处理通信 接口和不同语言间的冲突而通宵达旦地艰辛劳动 但却收效甚微 COM 的出现改变了
这一切。通过将组件改变为通用、集成型的构件,开发人员正逐渐地从过去的繁复编 程事务中解脱出来,可以选择自己最得心应手的编程语言进行编程。然而,软件组件 与应用程序之间的联合仍然是松散的,不同的编程语言与开发平台限制了部件间的互 用性,其结果是产生了日益庞大的应用程序与不断升级的软硬件系统。举个很简单的 例子,只用五行C语言代码就能编写出的一个简单程序,若使用COM来编写,结果 会是令人吃惊的:我们需要几百行代码。COM在带来巨大价值的同时,也大大增加了 开发开销。而 NeT Framework的出现使得一切问题都迎刃而解。实际上,在NET Framework中,所有的编程语言,从相对简单的 JScript到复杂的C艹语言,一律是等 Framework—一框架,是开发人员对编程语言命令集的称呼。Net框架的意义就在 于只用统一的命令集支持任何的编程语言。正如微软web服务中心的成组产品经理John Montgomery所说:“只需简单地一用,NET框架便可消除各种异类框架之间的差异, 将它们合并为一个整体。NET的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来,通过创建跨编程语言的公共API集,NET框架可提供强大的跨语言继承 性、错误处理和调试功能。现在,开发人员可以自由地选择他们喜欢的编程语言。NEI 平台欢迎所有人的垂顾。”NET将使编程人员梦想的语言互用性变成为近在眼前的现 实。想想看,一个在Ⅴ isual basic(VB)中定义的类能够在另一种与它完全不同的语言 环境中使用、调试,甚至继承,这是多么令人兴奋的事情! NET框架是NET平台的基础架构。其强大功能来自于公共语言运行时( Common Language runtime,CLR将在第二章中进行详细的解释)环境和类库。CLR和类库(包 括: Windows Forms, ADONET和 ASPNET)紧密结合在一起,提供了不同系统之间 交叉与综合的解决方案和服务。NET框架创造了一个完全可操控的、安全的和特性丰 富的应用执行环境。这不但使得应用程序的开发与发布更加简单,并且成就了众多种 类语言间的无缝集成。 122面向Net的全新开发工具—C# 在最近的一段时间里,C和C++一直是最有生命力的程序设计语言。这两种语言 为程序员提供了丰富的功能,高度的灵活性和强大的底层控制能力。而这一切都不得 不在效率上作出不同程度的牺牲。如果你使用过包括C和C++在内的多种程序设计语 言,相信你会深刻体会到它们之间的区别。比如与 Visual basic相比, Visual C++程序 员为实现同样的功能就要花费更长的开发周期。由于C和C++即为我们带来了高度的 灵活性,又使我们必须要忍受学习的艰苦和开发的长期性,许多C和C++程序员一直 在寻求一种新的语言,以图在开发能力和效率之间取得更好的平衡。 今天,人们改进、开发出了许多语言以提高软件生产率,但这些或多或少都以牺 牲C和C++程序员所需要的灵活性为代价。这样的解决方案在程序员身上套上了太多 的枷锁,限制了他们能力的发挥。它们不能很好地与原有的系统兼容,更为令人头痛 的是,它们并不总是与当前的Web应用结合得很好 理想的解决方案,是将快速的应用开发与对底层平台所有功能的访问紧密结合在
这一切 通过将组件改变为通用 集成型的构件 开发人员正逐渐地从过去的繁复编 程事务中解脱出来 可以选择自己最得心应手的编程语言进行编程 然而 软件组件 与应用程序之间的联合仍然是松散的 不同的编程语言与开发平台限制了部件间的互 用性 其结果是产生了日益庞大的应用程序与不断升级的软硬件系统 举个很简单的 例子 只用五行 C 语言代码就能编写出的一个简单程序 若使用 COM 来编写 结果 会是令人吃惊的 我们需要几百行代码 COM 在带来巨大价值的同时 也大大增加了 开发开销 而.NET Framework 的出现使得一切问题都迎刃而解 实际上 在.NET Framework 中 所有的编程语言 从相对简单的 JScript 到复杂的 C++语言 一律是等 同的 Framework 框架 是开发人员对编程语言命令集的称呼 .Net 框架的意义就在 于只用统一的命令集支持任何的编程语言 正如微软 Web 服务中心的成组产品经理 John Montgomery 所说 只需简单地一用 .NET 框架便可消除各种异类框架之间的差异 将它们合并为一个整体 .NET 的作用不仅仅是将开发人员从必须掌握多种框架的束缚 中解脱出来 通过创建跨编程语言的公共 API 集 .NET 框架可提供强大的跨语言继承 性 错误处理和调试功能 现在 开发人员可以自由地选择他们喜欢的编程语言 .NET 平台欢迎所有人的垂顾 ”.NET 将使编程人员梦想的语言互用性变成为近在眼前的现 实 想想看 一个在 Visual Basic VB 中定义的类能够在另一种与它完全不同的语言 环境中使用 调试 甚至继承 这是多么令人兴奋的事情 .NET 框架是.NET 平台的基础架构 其强大功能来自于公共语言运行时 Common Language Runtime,CLR 将在第二章中进行详细的解释 环境和类库 CLR 和类库 包 括 Windows Forms ADO.NET 和 ASP.NET 紧密结合在一起 提供了不同系统之间 交叉与综合的解决方案和服务 .NET 框架创造了一个完全可操控的 安全的和特性丰 富的应用执行环境 这不但使得应用程序的开发与发布更加简单 并且成就了众多种 类语言间的无缝集成 1.2.2 面向.Net 的全新开发工具 C# 在最近的一段时间里 C 和 C++一直是最有生命力的程序设计语言 这两种语言 为程序员提供了丰富的功能 高度的灵活性和强大的底层控制能力 而这一切都不得 不在效率上作出不同程度的牺牲 如果你使用过包括 C 和 C++在内的多种程序设计语 言 相信你会深刻体会到它们之间的区别 比如与 Visual Basic 相比 Visual C++程序 员为实现同样的功能就要花费更长的开发周期 由于 C 和 C++即为我们带来了高度的 灵活性 又使我们必须要忍受学习的艰苦和开发的长期性 许多 C 和 C++程序员一直 在寻求一种新的语言 以图在开发能力和效率之间取得更好的平衡 今天 人们改进 开发出了许多语言以提高软件生产率 但这些或多或少都以牺 牲 C 和 C++程序员所需要的灵活性为代价 这样的解决方案在程序员身上套上了太多 的枷锁 限制了他们能力的发挥 它们不能很好地与原有的系统兼容 更为令人头痛 的是 它们并不总是与当前的 Web 应用结合得很好 理想的解决方案 是将快速的应用开发与对底层平台所有功能的访问紧密结合在
起。程序员们需要一种环境:它与Web标准完全同步,并且具备与现存应用间方便 地进行集成的能力。除此之外,程序员们喜欢它允许自己在需要时使用底层代码。 针对该问题,微软的解决方案是一种称之为C#的程序语言。C#是一种现代的面向 对象的程序开发语言,它使得程序员能够在新的微软NET平台上快速开发种类丰富的 应用程序。NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计,从构建组件形式的高层商业对象到构造系统级应 用程序,你都会发现,C#将是最合适的选择。使用C#语言设计的组件能够用于Web 服务,这样通过 Internet,可以被运行于任何操作系统上任何编程语言所调用。 不但如此,C#还能为C++程序员提供快捷的开发方式,又没有丢掉C和C++的基 本特征—强大的控制能力。C#与C和C++有着很大程度上的相似性,熟悉C和C++ 的开发人员很快就能精通C#。 1.3C#语言的特点 C#在带来对应用程序的快速开发能力的同时,并没有牺牲C与C++程序员所关心 的各种特性。它忠实地继承了C和C++的优点。如果你对C或C++有所了解,你会发 现它是那样的熟悉。即使你是一位新手,C#也不会给你带来任何其它的麻烦,快速应 用程序开发( Rapid Application Development,RAD)的思想与简洁的语法将会使你迅 速成为一名熟练的开发人员 正如前文所述,C#是专门为NET应用而开发出的语言。这从根本上保证了C# 与NET框架的完美结合。在NET运行库的支持下,NET框架的各种优点在C#中表现 得淋漓尽致。让我们先来看看C#的一些突出的特点,相信在以后的学习过程中,你将 会深深体会到“ “ SHARP”的真正含义。 简洁的语法 精心地面向对象设计 与Web的紧密结合 完整的安全性与错误处理 版本处理技术 灵活性与兼容性 1.31简洁的语法 请原谅,虽然我们一再强调学习本书不需要任何的编程基础,但在这里还不得不 提到C++。 在缺省的情况下,C#的代码在NET框架提供的“可操控”环境下运行,不允许直 接地内存操作。它所带来的最大特色是没有了指针。与此相关的,那些在C++中被疯 狂使用的操作符(例如:“::”“-”和“,”)已经不再出现。C#只支持一个“.”,对
一起 程序员们需要一种环境 它与 Web 标准完全同步 并且具备与现存应用间方便 地进行集成的能力 除此之外 程序员们喜欢它允许自己在需要时使用底层代码 针对该问题 微软的解决方案是一种称之为 C#的程序语言 C#是一种现代的面向 对象的程序开发语言 它使得程序员能够在新的微软.NET 平台上快速开发种类丰富的 应用程序 .NET 平台提供了大量的工具和服务 能够最大限度地发掘和使用计算及通 信能力 由于其一流的面向对象的设计 从构建组件形式的高层商业对象到构造系统级应 用程序 你都会发现 C#将是最合适的选择 使用 C#语言设计的组件能够用于 Web 服务 这样通过 Internet 可以被运行于任何操作系统上任何编程语言所调用 不但如此 C#还能为 C++程序员提供快捷的开发方式 又没有丢掉 C 和 C++的基 本特征 强大的控制能力 C#与 C 和 C++有着很大程度上的相似性 熟悉 C 和 C++ 的开发人员很快就能精通 C# 1.3 C#语言的特点 C#在带来对应用程序的快速开发能力的同时 并没有牺牲 C 与 C++程序员所关心 的各种特性 它忠实地继承了 C 和 C++的优点 如果你对 C 或 C++有所了解 你会发 现它是那样的熟悉 即使你是一位新手 C#也不会给你带来任何其它的麻烦 快速应 用程序开发 Rapid Application Development RAD 的思想与简洁的语法将会使你迅 速成为一名熟练的开发人员 正如前文所述 C#是专门为.NET 应用而开发出的语言 这从根本上保证了 C# 与.NET 框架的完美结合 在.NET 运行库的支持下 .NET 框架的各种优点在 C#中表现 得淋漓尽致 让我们先来看看 C#的一些突出的特点 相信在以后的学习过程中 你将 会深深体会到 # SHARP 的真正含义 z 简洁的语法 z 精心地面向对象设计 z 与 Web 的紧密结合 z 完整的安全性与错误处理 z 版本处理技术 z 灵活性与兼容性 1.3.1 简洁的语法 请原谅 虽然我们一再强调学习本书不需要任何的编程基础 但在这里还不得不 提到 C++ 在缺省的情况下 C#的代码在.NET 框架提供的 可操控 环境下运行 不允许直 接地内存操作 它所带来的最大特色是没有了指针 与此相关的 那些在 C++中被疯 狂使用的操作符 例如 -> 和 ., 已经不再出现 C#只支持一个 . 对
于我们来说,现在需要理解的一切仅仅是名字嵌套而已。 C#用真正的关键字换掉了那些把活动模板库( Active Template Library,ALT)和 COM搞得乱糟糟的伪关键字,如 OLE COLOR、BOOL、 VARIANT BOOL、 DISPID XXXXX等等。每种C#类型在NET类库中都有了新名字 语法中的冗余是C++中的常见的问题,比如“ const”和“# define”各种各样的字 符类型等等。C#对此进行了简化,只保留了常见的形式,而别的冗余形式从它的语法 结构中被清除了出去。 1.32精心地面向对象设计 也许你会说,从 Smalltalk开始,面向对象的话题就始终缠绕着任何一种现代程序 设计语言。的确,C#具有面向对象的语言所应有的一切特性:封装、继承与多态,这 并不出奇。然而,通过精心地面向对象设计,从高级商业对象到系统级应用,C#是建 造广泛组件的绝对选择。 在C#的类型系统中,每种类型都可以看作一个对象。C#提供了一个叫做装箱 ( boxing)与拆箱( unboxing)的机制来完成这种操作,而不给使用者带来麻烦,这在 以后的章节中将进行更为详细的介绍 C#只允许单继承,即一个类不会有多个基类,从而避免了类型定义的混乱。在后 面的学习中你很快会发现,C#中没有了全局函数,没有了全局变量,也没有了全局常 数。一切的一切,都必须封装在一个类之中。你的代码将具有更好的可读性,并且减 少了发生命名冲突的可能 整个C#的类模型是建立在NET虚拟对象系统(Ⅴ isual Object System,ⅤOS)的基 础之上,其对象模型是NET基础架构的一部分,而不再是其本身的组成成分。在下面 将会谈到,这样做的另一个好处是兼容性 借助于从ⅤB中得来的丰富的RAD经验,C#具备了良好的开发环境。结合自身强 大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软 件开发周期的缩短将能使它们更好地应付网络经济的竞争。在功能与效率的杠杆上人 们终于找到了支点 133与Web的紧密结合 NET中新的应用程序开发模型意味着越来越多的解决方案需要与Web标准相统 例如超文本标记语言( Hypertext Markup Language,HIML)和XML。由于历史 的原因,现存的一些开发工具不能与Web紧密地结合。SOAP的使用使得C#克服了这 缺陷,大规模深层次的分布式开发从此成为可能。 由于有了web服务框架的帮助,对程序员来说,网络服务看起来就像是C的本地 对象。程序员们能够利用他们已有的面向对象的知识与技巧开发Web服务。仅需要使 用简单的C#语言结构,C#组件将能够方便地为Web服务,并允许它们通过 Internet被 运行在任何操作系统上的任何语言所调用。举个例子,XML已经成为网络中数据结构 传送的标准,为了提高效率,C#允许直接将XML数据映射成为结构。这样就可以有
于我们来说 现在需要理解的一切仅仅是名字嵌套而已 C#用真正的关键字换掉了那些把活动模板库 Active Template Library ALT 和 COM 搞得乱糟糟的伪关键字 , 如 OLE_COLOR BOOL VARIANT_BOOL DISPID_XXXXX 等等 每种 C#类型在.NET 类库中都有了新名字 语法中的冗余是 C++中的常见的问题 比如 const”和 #define 各种各样的字 符类型等等 C#对此进行了简化 只保留了常见的形式 而别的冗余形式从它的语法 结构中被清除了出去 1.3.2 精心地面向对象设计 也许你会说 从 Smalltalk 开始 面向对象的话题就始终缠绕着任何一种现代程序 设计语言 的确 C#具有面向对象的语言所应有的一切特性 封装 继承与多态 这 并不出奇 然而 通过精心地面向对象设计 从高级商业对象到系统级应用 C#是建 造广泛组件的绝对选择 在 C#的类型系统中 每种类型都可以看作一个对象 C#提供了一个叫做装箱 boxing 与拆箱 unboxing 的机制来完成这种操作 而不给使用者带来麻烦 这在 以后的章节中将进行更为详细的介绍 C#只允许单继承 即一个类不会有多个基类 从而避免了类型定义的混乱 在后 面的学习中你很快会发现 C#中没有了全局函数 没有了全局变量 也没有了全局常 数 一切的一切 都必须封装在一个类之中 你的代码将具有更好的可读性 并且减 少了发生命名冲突的可能 整个 C#的类模型是建立在.NET 虚拟对象系统 Visual Object System VOS 的基 础之上 其对象模型是.NET 基础架构的一部分 而不再是其本身的组成成分 在下面 将会谈到 这样做的另一个好处是兼容性 借助于从 VB 中得来的丰富的 RAD 经验 C#具备了良好的开发环境 结合自身强 大的面向对象功能 C#使得开发人员的生产效率得到极大的提高 对于公司而言 软 件开发周期的缩短将能使它们更好地应付网络经济的竞争 在功能与效率的杠杆上人 们终于找到了支点 1.3.3 与 Web 的紧密结合 .NET 中新的应用程序开发模型意味着越来越多的解决方案需要与 Web 标准相统 一 例如超文本标记语言 Hypertext Markup Language HTML 和 XML 由于历史 的原因 现存的一些开发工具不能与 Web 紧密地结合 SOAP 的使用使得 C#克服了这 一缺陷 大规模深层次的分布式开发从此成为可能 由于有了 Web 服务框架的帮助 对程序员来说 网络服务看起来就像是 C#的本地 对象 程序员们能够利用他们已有的面向对象的知识与技巧开发 Web 服务 仅需要使 用简单的 C#语言结构 C#组件将能够方便地为 Web 服务 并允许它们通过 Internet 被 运行在任何操作系统上的任何语言所调用 举个例子 XML 已经成为网络中数据结构 传送的标准 为了提高效率 C#允许直接将 XML 数据映射成为结构 这样就可以有