C ++ MFC和.NET? [英] C++ MFC vs .NET?

查看:217
本文介绍了C ++ MFC和.NET?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的同事使用Visual Studio 2002并使用C ++ MFC。我在C#开发。

My colleagues are using Visual Studio 2002 and uses the C++ MFC. I am developing in C #.

之前没有任何问题,但现在质疑我们的客户,如果我们真的应该在不同的环境中开发。我的同事认为(当然)我应该搬到C ++ MFC。我认为他们可以使用.NET而不是MFC。

It has not been any problems before, but now questioning our customers if we really should develop in different environments. My colleagues think (of course) that I should move to C++ MFC. I think that they can use .NET instead of MFC.

有什么要学习MFC吗?感觉有点过时了,还是我错了?

Is there any point to learn the MFC? It feels a bit outmoded, or am I wrong? What are the arguments against and for .NET compared with MFC?

编辑:

我们正在为核工业开发过程系统和辅助应用。主要应用程序是模拟旧计算机系统并使用C ++ / MFC的仿真器。这是非常时间关键,也许核心应该是仍然在本机C + +。但是模拟器和所有周围应用程序的GUI不是特别重要。

We are developing process systems and assistance applications for the nuclear industry. The main application is an emulator that emulates an old computer system and uses C++/MFC. It is very time critical, maybe the core should it still be in native C++. But the GUI to the emulator and all surrounding applications are not particularly critical.

有什么真正的原因,你应该替换现有的MFC应用程序?

And is there any real reason that you should replace the existing MFC application?

推荐答案

我已经使用了MFC和Windows窗体很长时间。我来自视频游戏行业,所以不得不写多年的桌面应用程序,而在.net之前,MFC是非常有用的。甚至在那之前,我在纯Win32编写工具。

I've used both MFC and Windows Forms extensively for a very long time. I'm from the video game industry, so have had to write many desktop applications over the years, and before .net, MFC was extremely useful. Even before that I was writing tools in pure Win32.

MFC肯定有它的怪癖,但总体来说,它使生活更容易。很容易将OpenGL和Direct3D集成到自定义视图中,一旦你得到了它的书写自定义控件是一块蛋糕。最重要的是,我可以只是纯C ++代码,这恰恰是我选择的语言。加上我发现MFC是非常有效率和快乐。

MFC definitely had its quirks, but overall it made life a lot easier. It was very easy to integrate OpenGL and Direct3D into custom views, and once you got the hang of it writing custom controls was a piece of cake. Best of all, I could just code in pure C++, which just happened to be my language of choice. Plus I found MFC to be very efficient and snappy.

逐渐MFC开始获得外部控制库支持,特别是对接/工具栏库,所以我的工具,如3D模型查看器和水平编辑,都看起来相当甜蜜。

Gradually MFC started to get external control library support, particularly docking/toolbar libraries, so my tools like 3D model viewers and level editors, all looked pretty sweet.

我编写的大多数应用程序都以编程方式创建了UI,因此对话框/窗口布局工具对我的需求已足够。

Most applications I wrote created the UI programmatically, so the dialog/window layout tool was more than adequate for my needs.

MFC 9也很酷,特别是对于Microsoft已经作为Feature Pack的一部分发布的Ribbon控件/ dock库。所以在老狗生活还有,肯定! :)

MFC 9 is pretty cool too, especially with the Ribbon control/docking library that Microsoft has released as part of the Feature Pack. So there is life in the old dog yet, for sure! :)

当.net 1.0出来时,我发现转换相当容易,因为它支持托管C ++。它不漂亮,但给.net框架提供了一个相对直接的入口。但是当我开始编写需要Windows窗体设计器的工具,在.net 2.0的时候,我的启动点来了。我决定重新开始学习C#,我喜欢 - 虽然我永远不会习惯有新的()没有删除();)。然后我开始写用户控件,发现整个体验非常漂亮和直接。 .NET框架是巨大的,支持得很好,一般我发现它更容易做的事情在C#/。net。此外,编译是闪电般快,在Visual Studio中重构的能力是真棒。

When .net 1.0 came out I found the transition fairly easy, because it supported managed C++. It wasn't pretty, but gave a relatively straightforward on-ramp to the .net framework. But the tipping point for me came when I started to write tools that needed the Windows Forms Designer more, around the time of .net 2.0. I decided to start again and learn C#, which I loved - although I'll never get used to having new() without delete() ;). I then started writing user controls, finding the whole experience very nice and straightforward. The .net framework was huge, well supported, and generally I found it easier to do just about everything in C#/.net. Plus, compilation was lightning fast, and the ability to refactor in Visual Studio was awesome.

c#/。net的优点是它不限于只写在托管代码。您仍然可以使用非托管代码,如果性能是一个问题,例如,或者如果您需要在平台之间共享代码。例如,我的数学库是用C / C ++编写的,我把它放在一个库中,使C#能够包装/使用相同的代码,虽然这只是暂时的。我将把这些库迁移到C#,所以一切都是纯的.net。

The beauty of c#/.net is it doesn't limit you to just writing in managed code. You can still use unmanaged code, if performance is an issue for instance, or if you need to share code between platforms. For instance, my math libraries are written in C/C++, which I put into a libraries enabling C# to wrap/use the same code, although that's only temporary. I'm going to port those libraries to C# in time too so everything is pure .net.

最后一次我想提到的经验是,几个月远离控制台游戏编程,花费时间编程InterWeb。我一直在使用Microsoft堆栈,编程在ASP.net/C#,我不得不说,它是非常好的,所有的知识,C#直接适用。唯一的学习曲线是ASP.net,而不是语言和支持库。随着.net 3.5的到来(LINQ是甜的)生活在.NET框架中与C#是可爱的。

The last experience I want to mention is that I have been spending the last few months away from console game programming, and spending time programming the InterWeb. I've been using the Microsoft stack, programming in ASP.net/C#, and I have to say it's very nice, with all of the knowledge of C# directly applicable. The only learning curve was ASP.net, not the language and support libraries. With the arrival of .net 3.5 (LINQ is sweet) life in the .net framework with C# is lovely.

无论如何,我不想把它变成我的生活的故事,但我只是想提供一个人谁已经通过你所问的所有技术的一个简短的经验。我还想提一下,你可以尝试不同的语言/框架。我已经为iPhone编码了一年,并且已经变得真的喜欢Objective-C。这是所有的编程,这一切都很好。

Anyway, I don't want to turn this into my life's story, but I just wanted to give a brief experience of someone who has moved through all of the technology you've asked about. I'd also like to mention that it's good for you to try different languages/frameworks. I've been coding for the iPhone for a year now, and have grown to really like Objective-C. It's all programming, and it's all good.

对于MFC / .net,都有他们的优点和缺点,我真的不介意MFC,但在前进方面,我可能坚持C#/。net,但请,请,了解它是如何工作的。我会说的唯一的preachy事情是了解.net中的记忆是如何工作的,即使它全部照顾你;)

With respect to MFC/.net, both have their pluses and minuses, and I really don't mind MFC at all, but in terms of moving forward, I'd probably stick to C#/.net, but please, please, please understand how it works. The only preachy thing I'll say is to understand how memory in .net works, even though 'it's all taken care of for you' ;)

你对C的知识/ C ++应该完全独立于你是否使用MFC,它仍然是一个关键语言(特别是在基于控制台的视频游戏编程),但对于Windows上的桌面应用程序编程,它越来越难以争辩。它是快速,容易,有伟大的工具支持,优秀的第三方库,一个巨大的成长社区,现在是跨平台(单声道),并将使您能够移动之间所有当前/新兴的Microsoft技术(ASP.net,WPF,Silverlight,WCF等等)。

Your knowledge of C/C++ should be completely independent of whether you use MFC or not, it's still a critical language (particularly in console-based video game programming), but for desktop application programming on Windows, it's getting harder and harder to argue against .net. It's fast, easy, has great tool support, excellent 3rd party libraries, a huge growing community, is now cross platform (Mono) and will enable you to move between all current/emerging Microsoft technologies (ASP.net, WPF, Silverlight, WCF etc).

对于所有这些,虽然,我仍然将Visual Studio设置为C ++环境。一些习惯从来不死);

For all of this, though, I still set up Visual Studio as a C++ environment. Some habits never die ;)

这篇关于C ++ MFC和.NET?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆