Microsoft选择这条道路的原因非常明显:它关注向后的兼容性。在过去的这些年中,第三方厂商编写了相当多的windows软件,如果Microsoft每次都引入一项不遵循现有代码基础的新技术,windows就不会获得今天的成功。
向后兼容性是windows技术的极其重要的特性,也是windows平台的一个长处,但它有一个很大的缺点。每次某项技术进行演化,增加了新功能后,都会比它以前更复杂。很明显,对此必须进行改进。Microsoft不可能一直扩展这些开发工具和语言,使它们越来越复杂,既要保证能跟上最新硬件的发展步伐,又要与20世纪90年代初开始流行的windows产品向后兼容。如果要得到一种简单而专业化的语言、环境和开发工具,让开发人员轻松地编写优秀的软件,就需要一种新的开端。
这就是C#和.NET的作用。粗略地说,.NET是一种在windows上编程的新架构—种新api。C#是一种新语言,它可以利用.NET framework及其开发环境中的所有新特性,以及在最近20年来出现的面向对象的编程方法。
向后兼容性并没有在这个演化进程中失去。现有的程序仍可以使用,.NET也兼容现有的软件。软件组件在windows上的通信,现在几乎都是使用com实现的。因此,.NET能够提供现有com组件的包装器(wrapper),以便.NET组件与之通信。