c#,自然的进步_c#教程

2008-02-23 05:46:11来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

C#,自然的进步
随着 Visual J 的隐退,Microsoft 引入 C# 来填补这一空白

Michael L. Perry
Mallard 软件设计师
2000 年 8 月

Microsoft 对因特网的新视野和当今在线内容的网络相去甚远。Microsoft 预见未来的因特网是个由不同的人用不同的语言在不同的硬件平台上研发出的互相关联的服务,能够被运行在不同的因特网操作系统之上。

该公司为大胆设想的这个新世界所提供的就是 .Net 平台。实际上,.Net 并不是传统意义上的平台;他并不是一种公共的硬件或软件系统。.Net 实际上是个协议集合,他允许因特网应用程式利用运行在不同机器上的不同服务。

Microsoft 新战略的结果就是下一代的 Microsoft Visual Studio 将有重新设计的语言,尤其是能支持 .Net 平台。Java 将不再此程式包中,Visual J 也不会再有新的版本。不要担心,Microsoft 将推出一个新的语言 C# 来填补这一空白。该公司动用了其最好的资源,包括星级语言专家 Anders Hejlsberg,来研发 C#。

非他莫属:Anders Hejlsberg,语言体系结构设计师
考虑一下 Hejlsberg 的经历,就不会奇怪 Microsoft 将此重任交给他了。毕竟,C# 将不是他对软件研发方式的首次大事改革。

作为 Borland 的首席体系结构设计师,Hejlsberg 秘密地将 Turbo Pascal 变成一种面向对象的、拥有真正可视化的环境和卓越的数据库访问特性的应用程式研发语言。曾被吹捧为“VB 杀手”的 Delphi 依然是 Borland(现在为 Inprise/Borland)的拳头产品。

Microsoft 用丰厚的薪水、股票认购权和巨额的加盟奖金雇请了 Hejlsberg 之后,Borland 曾提出通过不正当手段吸收新成员的控告。Borland 还曾声称 — 提供了很少的细节来支持指控 — Hejlsberg 正在研发“Delphi for Java”。这场诉讼最终以 Borland 的胜利而收场;但是从那时起,Microsoft 已在让 Hejlsberg 工作了。

Hejlsberg 充实了 Microsoft 的 Java 产品;其中格外引人注意的是,为了跟上其他 Visual Studio 语言的现行版本号,他人为地在一个发行版中将其版本号从 1.1 提升到 6.0。实际上,这个版本号的跳跃并未夸大 6.0 和其前一版本之间的差别。Hejlsberg 添加的功能已使该语言变成一种强大的 Windows 应用程式研发平台。添加的功能包括对 Windows API 的访问;因此,利用这些新功能的程式不再具备可移植性。

Hejlsberg 对 Microsoft 的 Java 产品的更改促使 Sun 控告 Microsoft 违反了 Java 许可协议。Sun 声称,Visual J 语言扩展没有保持 Java 的平台中立性,而是将研发人员锁定在 Microsoft 平台上。尽管 Microsoft 的 Visual J 事实上是最好的 Java 编译器,并且该公司的虚拟器(执行 Java 字节码的运行期模块)是最快的一种虚拟机,但 Sun 的诉讼已有效地阻止了 Microsoft 在 Java 舞台中的竞争。

Microsoft 的反应是完全从 Java 中退出来,并用一种新的基础因特网平台 — .Net — 和一种新的旗帜语言 — C# 来取代他。Anders Hejlsberg 是完成后一工作的自然选择。

证实一种新编程语言的合理性
最近有关 C# 争论 的一些新闻声称研发人员还不会收受另一种编程语言。虽然现在确实已有几种有用的语言可供研发人员使用,但仍有空间容纳另一种语言 — 假如他填补了仍未满足的需要。一种新的语言毕竟只是专业人员可用来创建软件解决方案的另一种工具。让我们分析一下 Microsoft 为 C# 定制的目标,连同其他语言到现在为止还没有满足这些目标的情况。

快速应用程式研发:Microsoft 为 C# 定制的最重要的目标之一就是支持 RAD。因特网应用程式必须以因特网节奏研发;一种新语言必须易于学习和调试,而且必须生成易于更新的代码。虽然 Delphi 和 VB 在这些方面很出色,但 C 却没有这么成功。语言本身复杂而难以掌控,而且很少有有用的 C 库提供简单的接口。此外,C 的手动内存管理和复杂的类型转换模型使他难以调试。
此外,正如我们将在下面看到的那样,C 本质上不防止由于版本不兼容而导致的潜在问题。尽管 Microsoft 和 Borland 对这种语言作了巨大的努力,但 C 仍然不适合快速应用程式研发。


跨平台部署:根据定义,因特网语言应该支持跨平台的部署。因为因特网是不同系统的一个网络,所以必须将服务部署到各式各样的硬件和软件上。 此外,客户端软件应该能够运行在多种类型的设备上,包括 PDA 和蜂窝式便携无线电话。 这种灵活性事实上是对除 Java 之外的任何语言的一种挑战。VB 尤其只能生成在基于 Intel 微处理器的机器上运行的 Windows 应用程式。Delphi 也受到同样的限制。Delphi for Linux 不久就会发布,但他也不支持因特网设备。VB 和 Delphi 都不符合跨平台部署的目标。


访问平台固有的资源:据 Microsoft 称,研发人员需要访问平台固有的资源。对于编写强大的目标应用程式而言,这种访问有时是必不可少的。Visual J 6.0 允许研发人员访问 Windows API,Java 通常不允许这种访问。Java 通过定义每种虚拟机实现的最小公分母标准来提供跨平台的部署。Java 研发人员依据这种削弱的标准编写代码,而不能利用只有某些平台才提供的更强大的服务。这样,Java 无法满足提供对平台固有资源的访问这一目标。


支持 COM 和 .Net 平台:Microsoft 已将支持 COM 和 .Net 平台确定为 C# 的最重要的目标。当然,现在还没有一种语言支持 .Net 平台,因为他仍在构建中。和 .Net 不同,COM 已出现相当一段时间了,但他仍然缺少强大的语言支持。大多数语言,包括 C 和 Delphi,都需要研发人员为他们所创建的每个 COM 对象创建一个额外的 IDL 声明、一个类工厂和专用的修饰。
某些语言厂商已提供了一些向导来自动完成许多常见的 COM 和 OLE 任务,但这些工具没有完全隐藏 COM 的复杂性。VB 确实成功隐藏了 COM 的复杂性,但这是以牺牲功能为代价换来的。VB 不但缺乏面向对象语言的力量;他也无法支持 COM 的低级功能 — 例如,多个接口、聚集和自定义编排。简而言之,没有一种现有的语言像 C# 那样全面支持 COM。

虽然这四个目标对于一种新语言是相当高的,但 Hejlsberg 在工作中已拿出自己最好的经验来确保 C# 实现这些目标。结果是产生了一种语言,这种语言从 Java 和 Delphi 中借鉴东西和从 C 和 C 借鉴的东西相同多(假如没有超过的话)。请注意,下面的信息基于 C# 操作规程,可能不准确代表最终的产品发行版。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: c#语言初级入门(2)_c#教程

下一篇: sunwen教程之----c#进阶(四)_c#教程