在过去的二十年内,C和C++已经成为广泛的应用在商用软件的开发中的开发语言。但是C和C++都提供了一些容易使开发者产生错误的特性,也可以说C和C++的灵活性是牺牲了开发效率。如果和其他的开发语言相比(比如说VB),相同功能的C/C++软件通常会需要更长的开发周期。正是由于C/C++开发的复杂性和需要较长的开发周期,所以许多C/C++开发人员都在寻找一种可以在功能和开发效率间提高更多平衡的开发语言。
目前有一些开发语言通过牺牲C/C++语言的灵活性(一些必要的灵活性)来换取开发效率。有些语言对开发人员产生了过多的限制(比如说限制使用底层控制代码)并且提供更少的通用命名能力(译者:可能是指对变量,函数的引用能力)。这些语言不能够轻易的与现存的系统相结合,并且不能够当前的WEB开发相结合。
一种合理的C/C++替代语言应该是能够提供对现存和潜在的平台上的高效开发提供有效和有力的支持。并可以使WEB开发可以非常方便的与现存的应用开发相结合。而且C/C++开发人员都倾向于在必要的时候使用底层代码。
M$所推出的C#
在这个问题上M$的解决方案是推出一种命名为C#(发音为 C Sharp)的开发语言。C#是一种先进,面向对象的语言,通过C#可以让开发人员快速的建立大范围的基于MS网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。
由于C#是一种面向对象的开发语言,所以C#可以大范围的适用于高层商业应用和底层系统的开发。即使是通过简单的C#构造也可以各种组件方便的转变为基于WEB的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。
即使抛开上面所提到的优点,C#也可以为C/C++开发人员提供快速的开发手段而不需要牺牲任何C/C++语言的特点/优点。从继承角度来看,C#在更高层次上重新实现了C/C++,熟悉C/C++开发的人员可以很快的转变为C#开发人员。
开发效率与安全性
目前的各种基于WEB应用的软件开发向传统的商业应用软件开发提出了挑战,开发者被组织起来开发具有更短开发周期的各种应用,并且需要能够提供更好的可修正性,而不是建立一个可以长久使用的软件系统。
C#的设计正是充分考虑了这些因素。C#会帮助开发者通过更少的代码完成相同的功能,并且能够更好的避免错误发生。
与WEB开发相结合
新的开发模式意味着需要更好的利用现有的各种WEB标准,例如HTML,XML,SOAP(简单对象存取协议)。现存的开发工具是在Internet出现前或是未得到充分应用前出现的,所以都不能很好的适应目前WEB技术的开发需要。
C#开发者可以方便的在M$网络平台上扩展自己的应用。C#可以将任何组件转变为WEB服务,并且可以被运行于Internet上的任何平台的任何应用调用,重要的是C#对这一特性提供了内置的支持。
更重要的一点,WEB服务框架可以让任何WEB服务都看起来类似于C#的内置对象,所以可以让开发人员在开发过程中继续使用他们已经具备的面向对象的开发方法和技巧。
此外C#还拥有许多其他特性使自己成为最出色的Internet开发工具。例如,XML目前已经成为网络中数据结构传送的标准,为了提高效率C#将允许直接将XML数据映射成为结构。这样的话可以有效的处理各种数据。
减小开发中的错误
即使是优秀的C/C++开发人员都难于避免在编码过程出现一些常见错误,比如错误的初始化一个变量,而这种错误将有可能导致各种不可以预知的错误,并且难于被发现。如果一旦错误在发现前被投入生产环境,排除这些错误将会付出昂贵的代价。而C#的先进设计思想可以消除C/C++开发中的许多常见错误,比如:
- 垃圾收集机制将减轻开发人员对内存的管理负担。
- C#中的变量将自动根据环境被初始化。
- 变量是类型安全的。
使用C#将会使开发人员更加轻易的开发和维护各种商业应用。
提供内置的版本支持来减少开发费用
更新软件系统中的组件(模块)将会是一种容易产生错误的工作,在代码修改过程中可能对现存的软件产生影响。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如:函数重载必须被显式的声明(这种情况在C++和JAVA中时常发生),这可以防止代码级错误和保留版本化的特性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便的开发和升级。
总结起来,这些特性可以帮助开发更强壮的软件后继版本和减轻开发费用。
功能强,易于表现,灵活
更好的结合商业应用中的流程与软件实现
为了更好实现公司的各种商业计划,在软件系统中必须在商业流程和软件实现间有紧密的联系。但是大多数的开发语言都不能轻易的将各种应用逻辑与代码相联系。例如,开发人员会使用各种注释来标明各种类所代表抽象商业对象。C#允许使用在任何对象上使用预定义数据或是经过扩展的元数据。在系统结构中可以使用区域属性(译者:类似NT的网络域结构),并且将这些属性添加到类,接口或者其他元素上。开发者可以独立的测试各种元素上的属性。这将会使得一些如同收集区域中对象属性,或是编写自动工具来保证的区域中的类,接口是否被正确定义的类似工作变得简单。
可扩展的协作能力
虽然管理性强,透明型好,类型安全的开发环境对大多的商业应用都适合,但现实的经验告诉我们一些应用出于执行效率或是与现存的应用接口API相结合的原因需要使用原有的开发方式来进行编码。也正是如此,许多C/C++开发人员宁愿放弃使用一些可以提高开发效率的开发工具。C#通过下面的方法来解决这些问题:
- 内置支持COM模型和Windows平台API。
- 允许有限制的使用指针。
在C#中任何对象都会自动成为COM对象,开发者不再需要显式的实现IUnknown和其他一些COM接口,同时也可以方便而自然的使用现存的COM对象,而不需要关心这些COM对象是否使用C#开发。
对于使用C#的开发人员来讲,C#允许开发人员调用OS所提供的API。在经过标记的代码区域内使用指针并手工管理内存分配。这可以让C/C++开发人员更快的熟悉和转向C#和并且不需要放弃在以前开发中所形成的开发习惯,而且以前的C/C++代码依然可以被重用。无论是对于COM的支持还是对于API调用的支持都是为了为开发人员提供足够的开发控制能力。
总结
C#是一种先进的,面向对象的开发语言,并且能够方便快捷的MS网络平台建立各种应用和建立能够在网络间相互调用的WEB服务。从开发语言的角度来讲C#可以更好帮助开发人员避免错误,提高工作效率,而且同时具有C/C++的强大功能。
本文原文见:msdn.microsoft.com
译者:C#,是不是又会掀起一场开发的革命呢,就如同VB。不过C#也许会脱离设计者的控制,而变为一个畸形。(也许从我个人来讲对于将开发语言捆绑在操作系统上这种作法并不赞同)不过C#最终还是没有跳离目前开发模式的限制,也许只能够说成是一种更适合MS平台的经过加工的C++。但C#毕竟是一种经过深层思考后所提出的开发语言,这一点上要比其他的开发语言更具优势。因为很多语言都是实验的产物。比如C和JAVA。无论结果如何C#都是值得期待的。
虽然MS现在面临重重危机,但是MS一统天下的野心一点都没有隐藏。:-D <!--article end-->
分享到:
相关推荐
C#是一种最新的、面向对象的编程语言。C#使得程序员可以在Microsoft开发的最新的 .NET平台快速地编写Windows应用程序,而且Microsoft .NET提供了一系列的工具和服务来最大程度地开发和利用计算与通讯领域
C#是一种现代化、类型安全的面向对象编程语言,由微软公司开发并应用于.NET框架。C#语言规范是指导程序员编写符合标准的C#代码的重要参考文档。这份“C#语言规范word新”文档,正如其标题所言,可能是C#语言规范的...
C#是Microsoft推出的一种面向对象的编程语言,因其强大的功能和易用性,成为开发游戏的首选工具之一。 首先,开发围棋游戏的关键在于实现游戏逻辑。这包括棋盘的初始化,棋子的放置规则,以及判断胜负的算法。在C#...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发桌面应用、Web应用以及移动应用等领域。本项目涉及的是使用C#开发针对PDA(个人数字助手)的应用程序,这通常指的是运行在Windows CE(Wince)操作系统上的设备...
C#作为一种由微软开发的面向对象的编程语言,已成为.NET平台上的主流语言。而Visual Studio是微软提供的一款功能强大的集成开发环境(IDE),它支持C#语言的开发,并提供了各种工具和组件以简化开发流程。下面将从C#和...
标题中的"PCAN的二次开发例程C#"指的是使用C#编程语言对PCAN(Peiker CAN,一种用于控制器局域网(CAN)通信的硬件)进行程序开发的示例代码。PCAN是德国Peiker Acustic GmbH公司提供的CAN接口产品,广泛应用于汽车...
C#,由微软公司开发,是一种面向对象的、类型安全的、组件化的编程语言,广泛应用于Windows平台的软件开发,尤其是.NET框架下的应用。C# 3.0版本引入了许多新的特性和改进,如匿名方法、lambda表达式、扩展方法、...
11. C#新特性:随着版本的更新,C#语言引入了许多新特性,例如C#9.0中引入的可为空引用类型。这些特性是为了提高开发效率和代码质量。 12. LINQ(语言集成查询):LINQ为C#添加了强大的数据查询能力,使得开发者...
C#是一种由微软开发的面向对象的编程语言,它在.NET框架内运行,并广泛应用于Windows桌面应用、Web应用、移动应用以及游戏开发等领域。新版教程不仅涵盖了C#的基础知识,如变量、控制流、函数、类和对象,还特别强调...
C#是一种由微软开发的面向对象的编程语言,它的设计灵感来源于C、C++和Java,旨在提供一种简洁、现代且类型安全的编程环境。C#的最新版本为5.0,其规范已经被ECMA International和ISO/IEC标准化,分别对应ECMA-334和...
C++和C#则是高级编程语言,它们提供了一种抽象的、更易于理解的方式来编写程序。C++是一种面向对象的语言,强调代码的重用性和效率,常用于系统编程、游戏开发和大型软件项目。C#则由微软开发,主要应用于.NET框架,...
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它...
C#是一种由微软公司开发的面向对象的编程语言,它被广泛应用于构建各种类型的应用程序,包括桌面应用、Web应用、移动应用以及游戏开发。在C#开发过程中,选择合适的工具至关重要,尤其对于初学者来说,一个友好且...
C#语言是一种由微软公司开发的编程语言,它最初在2001年由Anders Hejlsberg(安德斯·海尔斯伯格)——Turbo Pascal和Delphi的创始人,以及Visual J++和Windows Foundation Classes(WFC)的开发领导者设计。...
C#(读作"C sharp")是由微软公司开发的一种面向对象的编程语言,它被广泛应用于Windows桌面应用、Web应用、游戏开发,尤其是随着.NET Framework和.NET Core的发展,C#在跨平台开发中的地位愈发重要。以下是一些C#的...
在C#中,异常处理是一种重要的错误处理机制,通过try-catch-finally语句块来捕获和处理运行时可能出现的异常。此外,C#还引入了委托和事件,使得回调函数和异步编程变得更加方便。委托类似于函数指针,可以引用方法...
C# 6.0是微软公司开发的一种面向对象的编程语言,它的设计简洁直观,结合了C、C++和Java等语言的元素,易于为上述语言的程序员所接受和使用。C# 6.0沿袭了C语言系列的特点,通过ECMA国际和ISO/IEC标准化组织的标准化...
C#是一种由微软公司开发的面向对象的编程语言,它被设计用于构建各种类型的应用程序,包括Windows桌面应用、Web应用以及移动应用等。C#是.NET框架的一部分,它的语法和概念深受C++和Java的影响,同时又具有自身独特...
C#是一种基于.NET Framework的编程语言,主要用于Windows和Web应用程序开发。C#的资源主要分为官方文档、社区驱动的资源、学习资源和工具等。 官方文档 Microsoft C# Documentation:Microsoft官方文档,涵盖了...