CLR概述
MFC为使用C++开发GUI应用程序提供一个抽象,VB6为更加简单的开发GUI应用程序提供一个抽象,ASP为构建动态网站提供一个抽象,ATL为开发组件提供一个抽象。然而这些都是针对一种特定类型的应用程序的一种抽象。如果开发的项目需要使用其中的两种抽象技术,比如开发一个需要使用组件的网站,那么开发人员必须学习多种抽象技术ASP和ATL,多种编程语言VB Script或Jscript 和C++,还要考虑集成问题。
.NET Framework为所有类型的应用程序提供一个更高层次的抽象,使得开发人员只需要学习一个编程模型和一套API就可以完成以上多种抽象技术的无缝集成。
.NET Framework由两个部分构成:CLR和FCL。CLR提供了所有类型的应用程序都要使用的一种编程模型。FCL提供了所有类型的应用程序都要使用的一个面向对象的API集合。.NET Framework提供如下特性:
简化编程模型:不再需要注册表、全局唯一标识符、IUnknown、AddRef、Release、Hresult。
Run once,run always:避免了DLL hell。
简化部署:安装时,只需要复制粘贴;卸载时,直接删除文件即可。
跨平台:编译时,生成CIL;运行时,生成本地CPU指令。
编程语言集成:允许不同的编程语言相互集成(COM允许不同的编程语言进行互操作)。
自动内存管理:不会造成内存泄露和访问已经释放的内存,但无法显示地释放内存。
类型安全验证:消除了缓冲区溢出
一致出错行为:通过异常报告错误。
互操作性:支持现有COM和DLL。