1.     MFC是在API的基础上封装出来的一个类库,给C++程序员在Windows上快速开发用的。 .Net类库是在Windows非托管API的基础上封装出来的一个托管类库,给程序员在各种Windows平台上跨平台开发用的。

2.     只是两个不同平台的编程,一个是NET平台,一个是WIN32。

3.     .NET的基类是基于.net运行时库的,通过运行时库对操作系统和硬件进行操作,而MFC是直接对操作系统和硬件进行操作的。

.NET有个问题就是你编写的程序只能在装有.net   framework的机器才能运行的,而MFC只需设置在静态库中使用   MFC就可能   直 接到其它机器运行 。不过我认为用.NET开发比用MFC方便多了。

.NET RAMEWORK 比MFC容易多了。不过需要CLR的支持,执行效率不如MFC。NET   project使用的是托管的c++,使用.net   framework,是基于窗体开发的。

4.     MFC是微软为了简化win32窗体编程而推出的C++类库。VC.net是指在Net环境下的窗体编程。
从Vsita开始,微软就规定窗体全部是基于.Net的了。

5.     .NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。

6.     .net是一种框架,也可以说是一种平台,并不是语言。.net是一个平台,也就是说,在.net下编写程序,编译后,执行的时候是需要.NET框架的解析。即:.net下生成的.EXE .DLL 在没有.NET框架支持的情况下是无法执行的,及时执行也会出错:.net框架下可以支撑好多语言编写程序,比如 c++ vb java c#等等,可以满足不同的程序员的编程语言的偏好,可以编写web、windowsform等各种程序。这也是.NET比较实用化的一个特点。

7.     NET框架是构建并运行程序的平台,他主要包括公共语言运行库(CLR)和.NET框架类库(FCL)。   CLR抽象了操作系统服务,并用作托管应用程序的执行引擎。托管应用程序,即其每一个动作都要经过CLR批准。FCL提供了用面向对象方法写托管应用程序的API,所以,编写.NET框架应用程序,不需要考虑Windows   API、MFC、ATL、COM或其他技术,只需要使用FCL。  
     公共语言运行库位于操作系统之上,为托管应用程序提供虚拟环境。如果把.NET框架比作人,那么公共语言运行库就是心脏和灵魂。CLR将托管代码翻译为一种伪汇编语言,即通用中间语言(CIL)。  
     有了.NET框架,语言仅仅是产生CLI(通用中间语言)的工具,不管是使用VB.NET还是C#,所有的托管应用程序都使用相同的API,即.NET框架类库(FCL)。在.NET平台下,所有的高级语言编写的代码最终都被编译为CIL。

8.     MFC和.Net的根本理念很接近,似乎都是谋求多平台下统一的公共类封包,提高兼容性和开发速度。但是使用后我觉得.Net Framework的开发速度虽然高,但执行效率缺比较低,占用内存多而且发行包的体积太大。虽说号称未来会超越Windows跨越更多系统,虽说C#中的一些开发理念很吸引人,但是事实上一般的Win-App开发中,MFC看起来还是首选嘛。

9.     NET也好,C#也好,我觉得都是主要服务于网络环境开发和快速开发,当然也有所谓的跨平台移植,而MFC作为一套Framwork来说,可能相对更面向一些纯本地应用开发。所以,MFC还是很有前途的,作为MS的双股剑,MFC/ATL还将继续辉煌!

10.  .NET框架设计为一个集成环境,可以在Internet、桌面(如Windows窗体),甚至移动设备(使用精简框架Compact Framework)上无缝地开发和运行应用。其主要目标是:提供一个覆盖整个应用范围的、一致的面向对象环境;

提供一个环境,将困扰Windows(COM)程序员的版本冲突(“DLL Hell”,即DLL地狱)问题最小化,简化代码的发布/安装过程;

基于公认的标准,提供一个可以在任意操作系统上运行的可移植环境。实际上,C#和.NET运行时的一个主要部分,即通用语言基础设施(Common Language Infrastructure,CLI),已经得到了ECMA的标准化。

ECMA国际(ECMA International)全名是欧洲计算机制造协会(European Computer Manufacturers Association),简写作ECMA。

提供一个可管理的环境,在这个环境中,可以很容易地验证代码,以保证程序安全运行。

为了实现上述目标,.NET框架设计者们最后确定了以下体系结构,将框架分解为两部分:通用语言运行时CLR和框架类库FCL,CLR是Microsoft对CLI标准的具体实现,它处理代码执行及所有相关任务:编译、内存管理、安全、线程管理、强制类型安全和类型使用。在CLR中运行的代码称为托管代码(Managed Code),以区别于不在CLR中运行的非托管代码(unmanaged code),如基于COM或Windows API的组件。

.NET的另一个主要部分是框架类库FCL,对于在.NET中运行的应用来说,它是一个可重用的类型(类、结构等)代码库。正如图中所示,它包含了涉及数据库访问、图形、与非托管代码互操作、安全、Web和Windows窗体等类。只要是遵循.NET框架的语言,都会使用这个公共类库。因此,只要知道了如何使用这些类型,不论你选择用哪一种.NET语言编写程序,这些知识都可以用上

【转】MFC与.NET的区别相关推荐

  1. MFC和GTK的区别

    关键技术 http://blog.csdn.net/master_max/article/details/1540204 MFC和GTK的区别?? 1. 两者都是基于面向对象设计的.尽管MFC是用C+ ...

  2. Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系

    Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系 Win32控制台程序 初始化代码模板以Main为程序入口,默认情况下,只链接C++运行时库和一些核心的Win32库,链接器subs ...

  3. [COM/ATL]组件、对象、MFC、ATL的区别

    组件(Component)和对象(Object)之间的区别 先明确组件(Component)和对象(Object)之间的区别.组件是一个可重用的模块,它是由一 组处理过程.数据封装和用户接口组成的业务 ...

  4. ATL CLR MFC Win32 常规 的区别

    ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序. MFC.ATL和CLR是V ...

  5. VC++中操作XML(MFC、SDK)

    VC++中操作XML(MFC.SDK) XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini.VC++里操作 ...

  6. 《MFC编程》:MFC程序的分类

    <MFC编程>:MFC程序的分类 <MFC编程>:MFC程序的分类 MFC的控制台程序 MFC的库程序 使用MFC库制作自己的静态库程序 使用MFC库制作自己的动态库程序 使用 ...

  7. wxWidgets与其他工具库的比较(下)

    GTK+ ● GTK+的网站:www.gtk.org: ● GTK+原本是Gimp的一个工具库,是在LGPL协议下发布的Unix系统GUI库: ● GTK+已经被移植到Windows,VMS以及其他的 ...

  8. Thrustmaster Hotas Warthog/猪杆/疣猪飞行操作杆开发

    (第一次写博客,还望大家批评指正!!!) 法拓士/Thrustmaster Hotas Warthog 猪肝/猪杆/A10C/疣猪飞行操作杆(最顶尖的飞行摇杆) 猪杆是美国空军授权按照美国A10C攻击 ...

  9. 从零开始在windows下使用QT根据点绘制图像

    从零开始在windows下使用QT根据点绘制图像(QPainter or halcon) 前言 QT+msvc+SDK+halcon环境搭建 1 添加 .lib库文件路径 2 添加 .h 头文件 3 ...

最新文章

  1. 二十一世纪贫穷人的2008条语录
  2. PXE BOOT DIY自己的网络启动工具集合
  3. 麦芒8能安装鸿蒙系统吗,首颗5G基带芯片麦芒8发布鸿蒙最新进展
  4. Java 泛型总结(三):通配符的使用
  5. 【网络协议】专题总结以及网络协议高频面试题汇总(8篇)
  6. 8个秘诀成就顶级增长黑客
  7. (转)js实现继承的5种方式
  8. 使用await和async关键字开发nodejs应用批量取出简书网站的文章标题和超链接
  9. java 枚举学习--从小程序中学习
  10. python 反射机制
  11. 【Angular专题】——(2)【译】Angular中的ForwardRef
  12. Unable to establish a connection to Redis Cluster at [RedisURI
  13. Linux_JDK安装
  14. telnet服务器怎么配置文件,配置telnet服务器
  15. C语言 n的作业,C语言作业练习
  16. BZOJ2658 ZJOI2012 小蓝的好友(treap)
  17. git还原所有更改,拉取远程分支到本地
  18. 爬虫——xpath爬取图片
  19. 两年嵌入式软件开发的工作感想
  20. linux openwrt 域名,linux dnspod客户端(适用于openwrt,ddwrt, centos, ubuntu等)

热门文章

  1. scrapy爬虫系列之五--CrawlSpider的使用
  2. Swagger Learing - Spring Boot 整合swagger
  3. kafka 集群的部署安装
  4. 读取txt文件赋值到DataGridView中
  5. 用带参数的方法给空数组放元素,寻找数组里面的值是否存在。
  6. windows下hadoop的单机伪分布式部署(3)
  7. oracle中如何创建dblink
  8. SQL语言的事务机制_转摘
  9. 847. Shortest Path Visiting All Nodes(二)
  10. [Leetcode][第841题][JAVA][钥匙和房间][DFS][BFS]