VC++.NET——新世纪的新构想

VC++.NET——新世纪的新构想
<---->
  2001年随着微软公司推出它的重要战略.NET计划后,为了适应.NET平台,微软同时推出了一整套Visual Studio.NET开发平台,这其中就包括Visual C++.NET (以下简称VC++.NET)。微软的.NET本质是全面支持各种面向网络体系结构的应用,其中最主要的是Web服务、Web应用和多层分布式计算等。VC++.NET是Visual C++ 6.0的后续版本,也称为Visual C++ 7.0。VC++.NET一个重要的目标就是着重全面支持.NET平台中,尤其是网络应用系统的高效率开发。


  C#的推出

  微软为了推行.NET战略,特别为.NET平台设计了一种语言——C#。微软称C#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,其综合了Visual Basic的高效率和C++的强大功能,然而更多的人感觉C#更类似Java。事实上C#融合了大量的Java思想,C#是.NET的关键性语言,它是整个.NET平台的基础,与C#相比,.NET所支持的其他语言显然是配角身份,包括VC++.NET在内。但是微软并没有打算放弃VC++.NET,相反微软对VC++.NET有着另一番独特的打算,VC++.NET的定位与C#不完全重合,VC++.NET应用范围仍强于C#,这一点无论对微软公司还是软件业应用现状都非常重要。

  VC++.NET的另一个重要使命是在尽可能支持.NET计划的同时还要继续强化功能保证传统Win32下应用系统开发的绝对权威。这也就能让人理解为什么VC++.NET被微软设计成惟一的一个能够产生优化MSIL指令的语言,也是惟一的一个可以在同一个映像中包含受控和不受控代码的语言。VC++.NET的现在和未来都将在微软的战略中扮演最重要的角色,VC++.NET才是.NET的系统语言。为了适应这些新的要求,VC++.NET较VC6有着许多重要的改变与增强。

  集成开发环境

  集成开发环境(IDE)整合了基于服务端开发模式和大大改进的C++编译器,同时MFC和ATL也都做了重要的改进,许多公用的类被二者共享,VC++.NET需要一个新的MFC支持库MFC70.DLL,这个支持库不再与MFC42.DLL兼容,但是源程序依然可以让VC++.NET和VC6兼容。在VC++.NET中,消息映射机制变得更加安全,但也要对某些代码稍作修改。在Visual Studio.NET一整套开发平台中,VC++.NET惟一需要有额外支持库的语言,即需要MFC支持库MFC70.DLL,这样VC++.NET既可以开发出面向.NET的应用系统也可以开发传统的基于Win32和MFC的应用系统。

  添加新类

  VC++.NET中,系统的头文件(.h)都根据最新的SDK平台做了相应的修改,增加了支持Windows 2000和Windows XP中的相关特性。MFC和ATL中在许多领域也增加了一些实用的类,例如在安全方面(Cdacl、Csacl、Csid、CaccessToken、CtokenGroups、CtokenPrivileges、CSecurityDesc、CsecurityAttributes等)、Web服务方面、数据库访问方面等,尤其是通过采用新的OLE DB类和属性访问数据库速度和性能大大提高。ATL7.0中增加了5中类模板:CatlArray、CatlList、CatlMap、CRBMap、CRBMultiMap。为了避免2000年缺陷这样的类似错误发生,VC++.NET对时间和日期采用了64位记法,在类CTime和CtimeSpan中也增加了支持64位记法的方法,例如CTimeSpan::GetDays64、CTime::GetTime64。另外,VC++.NET也支持线程池(Thread Pools)机制,通过线程池来提高应用服务器的响应能力,为此VC++.NET在MFC7.0中提供CthreadPool类。

  GDI+及相关API

  GDI+及其相关API提供了大量新的图形技术支持,不过这套API函数仅支持.NET平台下的应用。为了使用GDI+,需引用头文件gdiplus.h和链接库gdiplus.lib。GDI+与传统的GDI编程模型不大相同,代替选择刷子和笔到某个设备环境DC(Device context),在GDI+中可以将特定笔和刷子传递给任何一个画图命令,而且笔和刷子也不再像以前那样总是绑定在一起,现在可以通过不同函数分开使用它们。令人值得关注的是在GDI+中,VC++.NET提供了一组支持DHTML编辑的类以及DHTML对话窗体类(CDHtmlDialog、CMultiPageDHtmlDialog),这些丰富的控件和函数使得高效开发Web应用成为可能。

  Web服务及应用

  在Web服务、Web应用和多层应用方面,VC++.NET也在MFC7.0中提供了一系列的类来建立Web服务、高效率生成HTML代码、支持轻量级的HTTP客户端、支持SMTP和MIME编码的消息、支持发送接收电子邮件等等。微软的.NET平台主要是针对网络,.NET的精髓就在于通过基于XML的SOAP远程过程调用并通过UDDI/WDSL自动发现网络服务器,来实现整个分布式网络应用系统。而VC++.NET在这一点上与其他.NET开发工具毫不逊色,相反可以利用的手段更多。

  因此,VC++.NET虽然在微软的.NET计划中并不是最大力宣传的部分,但它的地位仍然不能被撼动。微软更希望向一般开发者和最终用户兜售它的.NET与C#,微软希望大多数视窗应用软件的开发转向CLR和.NET平台,而C#似乎成为这个.NET平台中无所不能的面向对象的网络语言,但事实上VC++.NET仍然是Windows系统中最锐利的武器,利用VC++.NET我们或许还能够透过已经被微软高度操作封闭的CRL窥见Windows的一些本来面目,而惟有这样才能更有利于我们深入了解及把握操作系统的现在与未来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值