小春网

 找回密码
 注册账号
查看: 1048|回复: 2
收起左侧

[IT 交流] 永别了。。。 MFC

[复制链接]
发表于 2017-10-15 11:15:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

x
网上看到帖子 《缅怀MFC》,  不由得感慨万千。

是啊, 时代发展了, 编程语言也是需要更新换代的  
何况MFC从来也不是完全好评的  
微软公司为了让开发者们更方便的用win32 api来开发产品,下了不少的功夫,不过由于c++语言的一些限制(? 也许这也是它的特点),
MFC封装的也不是尽如人意(虽然吐槽的人挺多 但是估计也是没办法的)

虽然有人质疑  不过不可否认 MFC是当年的效率的霸主, 为什么呢?  
因为CPU频率低啊 所以要用多线程技术啊  内存容量小啊  所以要谨慎的申请内存啊  硬盘容量也不大啊  所以程序要短小精悍啊。。。
所以,那样的电脑里运行的程序  当然要用MFC来写了(当然,也可以不用MFC框架, 直接win32 编程)

当时以为 编程永远就这样了。。。
想要内存 当然得跟windows申请啊   想用多少就申请多少  用完了当然要记得送回去啊  这不是天经地义么

什么? 内存自动回收机制?
你怎么知道我什么时候不用了? 你怎么管理我程序里的成千上万个实例?
本来我告诉你不要了,你就收回去就完了, 现在你要在后台不断地查询我的内存使用情况?然后判断哪些要回收, 哪些先标记下来, 哪些先把它转到别的内存领域。。。
岂不是又要拖慢我程序的运行效率?

尽管有诸多不爽, 内存自动回收机制 还是来了。
先是JAVA, 后来是C#。

如今我的理解是  计算机硬件已经飞跃发展了 CPU频率也提高了几个数量级了  内存也大地都没有概念了 硬盘也是  
所以程序的运行效率问题不是那么大问题了  内存的使用也不用那么小心翼翼了
内存自动回收机制是比native影响了你的运行速度, 但是随着电脑不断地发展, 估计以后更是不值得一提了。
因为即使是拖慢了程序的运行速度, 也比曾经的MFC运行的快得多得多了。。。

现在,游戏领域里还是要求运行的速度, 但是再发展几年, 估计C#开发的游戏也是非常高效率的了,而且还不用担心内存泄漏等情况,开发就更加容易了。。。
也许吧
反正微软现在在大力地推广C#, 有点C#是微软主要的编程语言的意思了。 估计微软也是痛恨自己没有早点想到这点, 被JAVA把web领域给占据了吧
于是,它就开始处心积虑,
先是开发C#在编程语言层面上对抗JAVA,
然后就是ASP.net抢点web领域,
然后就是WPF继续主占windows领域,
然后就开发power shell在shell领域里再跟linux等竞争一下,
然后就是牛那啥的一瞥: xamarin来开发iOS/android移动应用程序。
以后还会有更多吧。。。 我不涉及嵌入式领域所以不太了解, 估计嵌入式领域里微软也有一席之地了

以上的所有的所有, asp.net后台是C#, WPF后台是C#,power shell内部调用的就是.net framework(也跟C#有关),xamarin使用的编程语言也是C#!!!
现在牛X到 ios,android移动程序都可以用C#来开发了。。。牛掰牛掰

好吧 看到这些, 我也得认准C#了

以前一直有疑问 C#是什么编程语言? 到底它的本质是什么呢? 网上也没有这方面的帖子。

(一下是鄙人个人瞎猜的观点,进攻参考)

C# 就是原来的C++改良了一下, 当然借鉴了像java等其他的比较叫好的语言的优点, 然后自己再发挥一下, 总之C++的升级版 -》  C#。
这样就好理解了   
  原来C++需要自己申请,返还内存,  这个学习了JAVA的内存自动回收机制, 于是C#就不需要担心内存的申请,返还,也就不用担心内存泄露问题了(实际上还是要考虑内存泄露的 不过比C++时代是方便了很多)
  原来C++可以使用指针操作  这个也是难  就把指针屏蔽掉了   这样  C#其实跟JAVA真的差不多了  它们把指针屏蔽掉了,不过在他们自己内部,其实还是用指针的,只是开发者不用理解指针罢了。  

微软不服JAVA啊   于是在C++基础上开发了C#, 可以抗衡java的所有语言特性, 然后它比java还多一个, 你使用C#的时候,如果是在是需要C++编程, 那么就在C#里混合编程吧,
即C#里的unmanaged代码(默认是不开启的, 需要在工程里设置一下)

C#加入了现在编程语言需要有的所有特性, 而且还可以继续使用C++。
而且微软主推C#了。
那么,在这样的时代潮流里, 也要跟着时代的洪流漂流了,不能再死抓着旧技术不放手了。

如果C++即MFC的话(当然 这不是恰当的比喻),  那么就当是MFC版本升级了, 变成了C#。 MFC的编程框架不再需要了, 用.net里的winform类型就行了。
不过, 其实MFC的编程框架的思想是很不错的, 即使用了.net winform类型, 我其实也是喜欢定义Document类, View类的,就连Document类的变量我都喜欢定义成 pDoc。

写得乱七八糟的。

缅怀MFC的同时, 找到了一个新的寄托----C#。

挺好的  微软公司也没让开发者们失望。

希望对xmarin也加大一下支持力度,成为主流的移动应用开发方式就好了。(若干年后再回头看一下现在的想法是太天真还是对的吧)

最后, 贴上亲切的MFC类结构图,当是美好的回忆吧。
MFC1of3.png

MFC2of3.png

MFC3of3.png

最后 发一张以前用MFC做过的项目的UI图来结束本次帖子。
(界面的却是难看)

Untitled-1.png

发表于 2017-10-21 20:53:59 | 显示全部楼层
赞呐。可怜我还在MFC里
回复

使用道具 举报

发表于 2017-11-14 22:50:51 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小春网
常务客服微信
微信订阅号
手机客户端
扫一扫,查看更方便! 快速回复 返回顶部 返回列表