Welcome

首页 / 软件开发 / C# / .NET与C#

.NET与C#2007-09-09 本站 一、支持多种编程语言的.NEt结构框架

让我们翻开教科书,回顾一下近十年来软件开发的历史。

多年以前,当微软的组件对象模型(Component Object Model,COM)尚未推出时,软件的复用性对于开发人员仅仅是一种美好的憧憬。成千上万的程序员为了处理通信、接口和不同语言之间的冲突而通宵达旦地艰辛劳动,但却收效甚微。COM的出现改变了这一切。通过将组件变为通用、集成型的构件,开发人员正逐渐地从过去的繁复编程事务中解脱出来,可以选择自己最得心应手的编程语言进行编程。然而,软件组件与应用程序之间的联合仍然是松散的,不同的编程语言与开发平台限制了部件间的互用性,其结果是产生了日益庞大的应用程序与不断升级的软硬件系统。举个很简单的例子,只用五行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框架创造了一个完全可操纵的、安全的和特性丰富的应用执行环境。这不但使得应用程序的开发与发布更加简单,并且成就了众多种类语言间的无缝集成。

二、面向.NET的开发工具--C#

在最近一段时间里,C和C++一直是最有生命力的程序设计语言。这两种语言为程序员提供了丰富的功能,高度的灵活性和强大的底层控制能力。而这一切都不得不在效率上作出不同程序的牺牲。如果你使用过包括C和C++在内的多种程序设计语言,相信你会体会到它们之间的区别。比如与Visual Basic相比,Visual C++程序员为实现同样的功能就要花费更长的开发周期。由于C和C++既为我们带来了高度的灵活性,又使我们必须要忍受学习的艰苦和开发的长期性,许多C和C++程序员一直在寻求一种新的语言,以图在开发能力和效率之间取得更好的平衡。

今天,人们改进、开发出了许多语言以提高软件生产率,但这些或多或少都以牺牲C和C++所需的灵活性为代价。这样的解决方案在程序员身上套了太多的枷锁,限制了他们能力的发挥。它们不能很好地与原有的系统兼容,更为令人头痛的是,它们并不总是与当前的应用结合得很好。

理想的解决方案,是将快速的应用开发与对底层平台所有功能的访问紧密结合在一起。程序员们需要一种环境:它与标准完全同步,并且具备与现存应用间方便地进行集成的能力。除此之外,程序员们喜欢它允许自己在需要时使用底层代码。

针对此问题,微软的解决方案是一种称之为C#的语言。C#是一种现代的面向对象的程序开发语言,它使得程序员能够在新的微软.NET平台上快速开发种类丰富的应用程序。.NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算机通信能力。

由于其一流的面向对象的设计,从构建组件形式的高层商业对象到构造系统级应用程序,你都会发现,C#将是最合适的选择。使用C#语言设计的组件能够用于服务,这样通过Internet,可以被运行于任何操作系统上任何编程语言所调用。

不但如此,C#还能为C++程序员提供快捷的开发方式,又没有丢掉C和C++的基本特性--强大的控制能力。C#与C和C++有着很大程序上的相似性,熟悉C和C++和开发人员很快就能精通C#。