NTD*_*DLS 26 lifecycle mfc frameworks visual-c++
我从未成为MFC的忠实粉丝,但这不是重点.我读到微软将于2010年发布一个新版本的MFC,这真让我感到奇怪 - 我认为MFC已经死了(没有恶意,我真的这么做了).
MFC用于新开发吗?如果是这样,那么好处是什么?我无法想象它对诸如C#之类的东西有任何好处(或者甚至只是使用Win32 API的c ++).
rer*_*run 24
使用MFC有很多代码.我一直看到这些问题仍然使用的是仍然使用的答案是肯定的.我在一个非常庞大的组织工作,仍然雇佣了数百名用cobol写作的人.如果曾经在企业中使用它,它将继续被使用,直到没有更多硬件来支持它,然后一些公司将付钱给某人编写模拟器,以便旧代码仍然有效.
海军仍然使用带有磁芯计算机的船只进行记忆,我相信他们有人可以使用它们.创建的技术永远不会得到支持.它是Deus ex machina的一个案例,大型组织并不完全确定他们的系统是做什么的,并且拥有如此强烈的恐惧感,让企业陷入困境,他们不想尝试新的技术(BTW)我们向IBM支付OS2上的尽力支持.
mfc也是一个完全可以接受的Windows开发解决方案,因为它是一个包装System API的对象模型,这几乎是大多数人从.net中获得的.
作为一个附录,由于这个问题可以获得赏金,这是MS关于VS 11中mfc的引用
在每个版本中,我们都需要平衡我们在产品各个领域的投资.但是,我们仍然认为MFC是用于构建本机桌面应用程序的功能最全面的库.我们完全致力于以高质量支持和维护MFC.以下是我们在MFC for Visual Studio 11中修复的一些问题的简短列表:
如果您想阅读完整的帖子,可以使用以下链接
Ha1*_*wed 18
Coolness并不考虑为新系统选择技术.是的,如果您是学生或想要在您身边玩耍,请选择您想要的任何内容.
但在现实世界中,每种技术都有优点和缺点.一年前,其中一个团队开始了一个新项目,决定它将在MFC中完成.原因很简单:他们必须使用windows api进行低级操作,打印机,Internet Explorer和上帝知道还有什么.
C#甚至没有在游戏中,MFC和QT之间做出了决定,两者都有所需的功能,两者都可以轻松集成低级功能,唯一的区别是一些团队成员已经拥有MFC经验,所以他们没有必须通过培训浪费时间和金钱.
让我们假设他们选择C#和WPF:
-1你必须将所有本机C++和ASM代码包装在DLL中(哎哟这可能很痛苦,而不是编写你写包装器的代码).
-1你现在可能需要两支球队,一支是ui支持winapi的球队.你不太可能发现很多人都能写出C#和winapi的东西.同意无论哪种方式你需要有人使界面漂亮(程序员通常很尴尬,他们花费更多)但至少只使用C++代码,两个团队之间没有更多的等待时间,需要ui修改,没问题我不要不得不等待ui设计师,他会很晚才这样做.
+1您可以在C#和WPF中编写UI代码,假设UI开发速度更快,但UI只是项目的1/4,因此总增益可能非常小.
-1性能下降:对于您在C#中无法执行的每个小操作,您调用外部DLL(这是一个小问题,因为程序在8GB RAM四核上运行).
总而言之:MFC仍然用于新开发,因为需求和成本决定了项目的技术,而MFC在某些情况下是最好的.
Jer*_*fin 14
MFC仍然用于一些新的开发,以及大量的维护开发(包括微软内部).
虽然它可以是每分钟比直接使用Win32 API的速度较慢,性能损失确实是很小的-很少不亚于整个个百分点.使用.NET,性能的损失是相当大的情况下(在我的测试,很少低于10%,其中20-30%是典型的,和较高的仍然是繁重的计算,只需例如,我有一个程序,它的特征向量/特征值计算在相当大的阵列.我使用C++和MFC运行在一个测试用例原始版本只是根据我们的标准测试机器上一分钟.我的一些同事决定这将是很酷的C#重新实现它.他们的版本需要近3分钟在同一台机器上(四核,16 GB的RAM,所以没有,不是"传统"硬件).我承认我没有仔细查看他们的代码,所以也许它可以改进,但它们是体面的编码员所以3:1的改进让我觉得不太可能.
使用MFC,如果您愿意,也可以轻松绕过框架并直接使用Win32 API.使用.NET,您可以使用P/Invoke,但相比之下它非常痛苦.
每个版本的Visual Studio都更新了MFC.它不是标题功能项目.
至于新的发展,是的.它仍在使用,并将继续如此(即使我,像你一样,不愿意).许多组织在几年前做出了技术决策,没有理由改变.
我确实认为你们正在谈论成熟的商店,人们更有兴趣保持/提高已经写好的东西而不是保持领先地位.
| 归档时间: |
|
| 查看次数: |
14417 次 |
| 最近记录: |