【转】MFC与.NET的区别

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语言编写程序,这些知识都可以用上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 数据分析三剑客之 Matplotlib(五):散点图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

hadoop集群-格式化namenode节点后,从节点的datanode不能启动,或者是datanode启动到主节点上。

进行二次namenode格式化前,请注意: hadoop namenode -format进行着一步前,要把以前格式化的内容删掉,如果,你的路径是在hadoop文件夹内,那么直接格式化即可,如果是在外部创建的文件夹&#xff…

Magento 2开发教程 - 创建新模块

视频在youtube网站国内访问不了,可以使用翻墙软件查看。 视频地址:www.youtube.com/embed/682p52tFcmYautoplay1 下面是视频文字介绍: Magento 2系统整体结构是建立在模块的基础上。通常,创建定制的第一步是构建模块。 要创建模…

Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hive环境搭建(完整版)-配置

Hive部署: 前提: 在安装Hive之前,要求先预装: - 安装JDK 8 - 安装Hadoop-2.7.7 - 安装MySQL 5.6.x!!!我这里主节点叫chun1,根据自己的进行修改 一、安装 1. 下载hive&#xff0c…

Magento微信支付接口开发小记

姗姗来迟的Magento微信支付接口插件 半年之前,有朋友网站需要接入微信支付,是Magento站,于是花费了近二周时间,研究微信开发文档、示例代码,并初步制作了个支付模块,不巧的是,朋友的微信支付接…

猿浪

本文作者:datamonday 原文链接:https://blog.csdn.net/weixin_39653948/article/details/105981392 转载此文已经过作者本人同意! 《猿浪》那些口口声声,一代不如一代的人,应该看着你们;像我一样&#xff…

【转】你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问

电脑出现“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问。”的原因是系统错误导致的,具体解决两个方案 一、修改Lanman WorkStation 1、首先打开计算机,再计算机内敲击windowR组合键打开运行界面。 2、然后在界…

VMware安装出错-无法安装服务“VMware Authorization Service”,请确保您有足够的权限安装系统服务;centos7网络服务不可用,主ip地址:网络信息不可用

今天遇到一个bug,VMware突然网络服务不可用了,虚拟机里右上角有网络但是点开不显示网络的连接信息。也不能上网,不能ping通外网(百度) VMware下显示 主ip地址:网络信息不可用 尝试了重启网络,重…

Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

访问网络共享时出现“拒绝访问”

今天公司副总说要我连接一下前面的打印机,二话不说,屁颠屁颠的就到现场了。虽然是简单的活,但也得去不是。 到老总计算机上 开始--运行 \\192.168.0.45 (装有打印的计算机,OS是XP系统!) 结果出…

zookeeper集群自动启动-关闭-查询的shell脚本

由于zookeeper启动需要在每台虚拟机都进行zkServer.sh start,很不方便,由此写个shell脚本来进行一个命令全部启动。 前提:配置好ssh免密登录,并且每台虚拟机都可以互通,没配置好的可以看下我的hadoop集群搭建里有免密…

Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Office365完整离线安装包下载及自定义安装教程

Office365部署方法 概要提示: 全文内容归结起来其实也就2条命令 下载:D:\365\setup.exe /download D:\365\Configuration.xml(此命令为1条,不可以拆分为2行输入) 安装:D:\365\setup.exe /configure D:\3…

Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hive启动报错org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeE...

Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/root/ee19ad01-2190-4759-9a94-6cc09771ecf7. Name node is in safe mode. 因为没有关闭安全模式,把安全模式关…

【转】中国式管理最有趣的地方,可能就在这些关键词之中

曾仕强老先生的中国式管理,就像中医中药,你说他对吗?根本不符合现代的科学逻辑,有些甚至荒诞。然而,即便这样,依然能西医所不能,这就是他的魅力。让我们一探究竟,对也好,…

Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hbase学习-一步一步慢慢来

HBASE是一个分布式系统 其中有一个管理角色: HMaster(一般2台,一台active,一台backup)(我用的五台) 其他的数据节点角色: HRegionServer(很多台,看数据容量) 1.安装可以参考我的Hbase安装&…

Python 数据分析三剑客之 Matplotlib(十一):最常用最有价值的 50 个图表

CSDN 课程推荐:《Python 数据分析与挖掘》,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…