Dr. GUI.NET #0
.NET 简介、Hello World 和 .NET Runtime 一瞥
什么是 .NET
Dr. GUI 对 .NET 框架的回顾
全新的开始而不用从头再来:.NET Runtime
现在学习 .NET 的原因
运行 Beta 1 所需的条件
编写 .NET 程序
Hello World.NET
实践与探讨
Dr. GUI 回来写教程了!
如果您是 Dr. GUI 的 COM 和 ALT 系列栏目的忠实读者,那么在过去的几个月中或许会想念博士的联机专栏文章。(对了,COM 和 ALT 系列的提前结束要归咎于 Dr. GUI 的经理给博士安排了一项关于电子商务的工作。)
但是至少 Dr. GUI 还继续在 MSDN 新闻(英文)中主持“Ask Dr. GUI”栏目。现在,Dr. GUI 又有了新任务:帮助大家学习 .NET 框架。
那为什么是 Dr. GUI.NET 呢?
“Ask Dr. GUI”的热心读者都知道 Dr. GUI 特别热衷于 Microsoft .NET。现在我们的博士也搞不清楚 .NET 到底包含什么不包含什么。(如果您想弄清楚这一点,请浏览 .NET Web 的正式站点 http://www.microsoft.com/net/。)这种命名的混乱让人回想起 ActiveX® 时代。只要有促销活动,就会有命名的混乱。Dr. GUI 赞成“ActiveX”中的“X”不发声的主张,只可惜这主张已是昨日黄花。
不管我们的博士是否清楚什么属于 .NET 而什么不属于,以及在未来几年中它还会发生多大的变化,他确实理解对于开发人员至关重要的关键部分:.NET 框架。倒不仅仅是因为他“获取”了这个部分,而是他为之兴奋不已:它将使开发工作更有趣味也更有成效。而且,.NET 框架在未来的几年中将不断获得改进,它不会消亡的。
.NET 框架的不幸之处就是迄今为止它尚未上市。现在仅仅能够得到技术和 Visual Studio.NET 的第一个 Beta 版,您可以在 .NET 的大本营:MSDN 的 .NET 开发人员中心的网站 http://msdn.microsoft.com/net/ 上获得它。您可以只要 .NET 框架SDK 或者连同整个 Visual Studio.NET。Visual Studio.NET 包括了 .NET 框架SDK。这一点我们以后再聊。
它是真的吗?
您或许会想起 Dr. GUI 有一个原则,就是不为那些不真实的东西写文章。他很少冒险违反这个原则。(我们的博士曾经为 SQL Server™ 2000 和 Windows® 2000 而恼火,他不得不在它们上市之前就写了大量文章。事实证明博士基本上是正确的,大多人只有到能看到实际的产品时才能理解产品。直到现在,他还在为被称为“Dr. Hormel”而伤心。)
那为什么 Dr. GUI 现在就要为 .NET 写文章呢?
原因非常简单:.NET 还未上市,不过它很是真实。您可以成为圈子里第一个下载 .NET 框架(或得到 CD)的人,然后自己先试用一下。您不必把博士的话当真。如果您不是要编写明天就得交付的 .NET 应用程序,也不太介意风险的话,您可以从现在着手,开始用它来进行 2001 年晚些时候才需交付的新项目。这样,您就可以先利用预发布版开始学习 .NET,在它上市之前就做好准备,领先您的同行一大步。
什么是 .NET?
现在要指出什么是 .NET 而什么不是还很困难。但是,如果您理解是哪些关键因素推动着 .NET,您也就更容易了解 .NET。
世界的变化
想想我们这个行业里出现的一些趋势。很多人正在抛弃没有联网的单台 PC 机,开始使用通过 Internet 同时连接到多个应用程序的 PC 机以及各种名目繁多的设备。连接到 Internet 的方式多种多样,有线的、无线的,基带的、宽带的。他们开始期望无论身处何地,无论使用何种设备,都能够以适当的形式获得他们的重要信息。并且,既然能够通过 Internet 获得信息,他们就希望能把从多个来源获得的数据合成为有意义的信息。最后,他们期望能够从容地使用软件而不必忙于安装和升级,他们还期望这一切远远比过去的 PC 机可靠。
那还只是在客户端机器上发生的变化。Internet 已经使基于服务器的应用程序得到空前广泛的应用。但是服务器之间的通讯,尤其是在不同平台上运行的服务器之间的通讯特别困难。例如,处理不同的浏览器和浏览器的不同版本时是多么麻烦,更甭提各种不同的无线设备。并且因为大多数真实的 Internet 应用程序都是以数据库为中心的,方便地访问多种的数据源的能力比以往任何时候都更加重要。
.NET 如何帮助您适应变化
.NET 框架可以使您更轻松地实现这类功能。它包括用于设备的 .NET Compact Framework,这使得在各种设备上而不仅仅是在 PC 上利用 .NET Runtime 成为可能。从最底层开始,.NET 的设计就是以适应 Internet 的需要为目标,融合了各种 Internet 标准,包括对 Web 服务的支持,使程序可以方便地从多个站点上获取数据;广泛运用 XML 语言,使得不同计算机系统之间的数据互换变得简单易行。.NET 还使您能够更容易地访问数据,更容易地编写出能在众多不同浏览器和设备上良好运行的 Web 应用程序,而不用再为每种设备或浏览器分别编写程序。最后,.NET Runtime 支持简化和可靠的安装和升级,使用更简便,可靠性更好。它和 .NET Runtime 的安全性及版本管理功能相结合,也提高了可靠性,并使软件可以作为一种服务而不是产品来出售。
使用 Web 服务将数据从多个数据源集成为可以使用的信息
另一个重要的趋势是应用程序为达到某种目的而从多个数据源集成信息。典型的示例就是计划一个商务旅行:您需要机票、租用汽车和酒店。您想去商店购物,并希望所需的每一种商品的价格都符合您的标准,所以需要从三组不同公司中获得数据;您的旅行还需要调整,以便按时到达,且到达时有汽车、有酒店房间(当然要有以太网),并且能及时回家。Web 服务使用 SOAP 和标准的 XML 架构帮助应用程序以业界标准的方式在 Internet 上通讯,所以应用程序可以使用并共享另一台计算机上的信息,而不管另一台计算机所使用的平台。.NET 框架使编写和使用 Web 服务成为一件非常简单的事情。但是,如果您想要看用 .NET 实现复杂的真实 Web 服务示例,请打开网站 http://terraserver.microsoft.net/,上面展示了世界各地的地图和航拍照片信息(Microsoft 的 TerraService 工程提供)以及其他信息,如美国人口普查数据。
.NET 还包括 .NET Enterprise Servers 服务器软件,它集成了 .NET 的功能并使它更易于使用。您可以在网站 http://www.microsoft.com/servers/net/ 上学习更多有关 .NET Enterprise Servers 的知识。
最后还要说明重要的一点,Microsoft 要提供诸如身份验证和日历服务等功能作为 Web 服务,您可以像使用本地对象一样方便地使用它。如果能够以可负担的价格购买所需的功能模块,使用 OPWS(其他人员的 Web 服务,SEC [其他人的代码] 的变种)通常是件好事。您也许有兴趣了解第一个 Microsoft Web 服务,即 Passport 身份验证服务 (http://www.passport.com/Consumer/default.asp?PPlcid=1033),根据点击次数计算,即使是今天,该网站仍是十大 Web 站点之一。但是点击次数是由使用 Passport 来验证用户身份的 Web 站点(例如 Hotmail)在幕后生成的。
所以,.NET 框架使编写新型的应用程序变得更简单,这类应用程序容易安装,并比以前的应用程序更可靠。因为这些程序利用了 Microsoft 和其他公司/人(也许就是您)提供的 Web Services,因此非常强大。
Dr. GUI 对 .NET 框架的回顾
Microsoft 操作系统 API 集的简要历史
使用 .NET 框架编程不同于使用 Win32® API 编程,正如 Windows 编程与 DOS 编程大相径庭。每一个 API 都是某一个时代的产品:DOS API 是八十年代早期的产品;Windows API 是八十年代中期的产品;而 .NET API 是九十年代后期的产品。
DOS
回溯 DOS API 的设计目的,是用于小型计算机系统上众多单一任务操作系统。尽管在微机问世的时代很流行使用 UNIX 和 VMS 操作系统,但微机没有足够的内存或速度来运行这些相对来说较复杂的操作系统。由于内存和速度的限制,诸如 DOS 之类的操作系统主要用汇编语