托管C++,它是在C++基础上建立的,但又和C++有着本质的区别
作者:ADDING 来源:天极网 2007年11月16日
关键字:
2、为什么使用托管C++
前面已经提到,托管C++是在C++基础上建立的,用来开发.NET 框架应用程序。那么.NET 框架究竟有哪些新的特性呢?
Microsoft .NET框架的目的是使用户更容易建立网络应用程序和网络服务。建立在Common Language Runtime的代码可以用目前任何编程语言进行编写。Runtime提供了许多服务功能,例如:
服务框架
框架包括一套开发人员希望在标准语言库中存在的基类库,例如:集合、输入/输出、字符串及数据类。另外,基类库提供访问操作系统服务如图画、网络、线程、全球化和加密的类。服务框架也包括数据访问类库及开发工具,如调试和剖析服务等。
数据访问服务
为了提供对数据的访问,服务框架包括ActiveX Data Objects+ (ADO.NET)类库。如同名子所暗示地那样,ADO.NET由ADO发展而来。ADO+被设计为基于网络的可扩展的应用程序和服务提供数据访问服务。ADO.NET为连接的指针风格的数据访问,同时也为更适合于把数据返回到客户端应用程序的无连接的数据模板提供高性能的APIs流。
Win表单
编写Windows客户应用程序的开发人员可使用Win表单应用程序模板以利用Windows丰富的用户接口特点,包括现在的ActiveX控件和Windows 2000的新特点,如透明的、分层的、浮动窗口,当然也可以选择传统的Windows或网络外观。由于Win表单和现在的基于Windows表单是极为相似的,因而开发人员不久还会发现Win表单可编程模板和对设计阶段的支持是非常直观的。
Win表单利用了Microsft .NET框架 Runtime以减少基于Windows的客户应用程序开发的开销。只要应用程序和组件是用Win编写或被Win表单应用程序所使用,那么它们就能被框架安全模板在客户机上安全地执行。
除了上述服务和功能外,Microsoft .NET框架还提供基于ASP.NET的网络服务。这些服务有助于开发代码的简化以及提高应用程序的可靠性。.NET 框架包括一套可被开发者用于任何编程语言的类库,而在此之上的是许多应用程序模板,这些模板专门为开发网络站点和网络提供高级组件和服务。
除“托管”外,Microsoft .NET框架还引入了“组合体(Assembly)”的概念。一个组合体是一组资源和类型,并包括有关这些资源和类型的元数据,也就是一个单元(Module)。元数据包含像类型和资源表之类的信息,这些信息能在组合体外部所调用。元数据还包括有关从属关系之类的信息,例如组合体建立时的版本号。开发人员可以指定版本策略,以指示运行语言是否装入系统上已安装的依赖于组合体的最新版本。
组合体既可以被一个应用程序所私有,也可被多个应用程序共享。一个组合体的多个版本可以同时配制在同一台机器上。应用程序配制信息定义了组合体查找的方法,这样Runtime就能为同时运行的两个不同的应用程序装入同一组合体的不同版本,从而消除了由组件版本的不兼容引起的问题,提高了系统整体的稳定性。
Microsoft .NET框架不仅规定代码访问安全,还规定基于角色的安全策略。通过代码访问安全机制,开发人员能为应用程序指定完成工作所必需的权限。
除了可以充分发挥.NET框架新特性外,使用托管C++还有下列好处:
(1) 由于在同一个应用程序中,甚至是同一个文件中,我们可以同时使用托管C++和传统的非托管C++来编写,因而我们可以充分利用两种C++所带来的好处,并且可将代码和组件快速移植到.NET框架中。
(2) 使用托管可以从任何一个.NET框架兼容语言中调用一个C++组件,也可调用非托管DLL、其它库以及类等。
(3) 可以直接从非托管代码中访问.NET框架。
总而言之,使用托管C++是C++程序员编写.NET框架应用程序最好的一种选择,在充分理解.NET框架基础上,避免了使用其他语言如C#、VB.NET所带来的额外开销。