C++ – What’s the best way to write a Windows client app other than .NET?


I'm trying to evaluate whether I should make the .NET Framework a requirement for my new Windows app. I believe .NET is the best and most efficient way to write Windows client apps, so it comes down to how painful the next best alternative is. Specifically, I'm trying to avoid the installation of the .NET Client Profile, which downloads 28MB and if it's like the regular .NET Framework installer, takes forever.

I've used wxWidgets and WTL before and think both are good options. Statically linked wxWidgets executables are 30MB, but it will be packaged. WTL has a small footprint but is created with ugly code. I've used a few MSI creators but it not WiX or NSIS, which seem to be best free options.

I'm looking for any recommendations, experiences with the Client Profile installer, experiences with small, custom business apps, or any relevant advice.

Edit: I'm only making a few thousand bucks here, so I'm looking for something free or cheap (after Visual Studio, which I already own). I don't mind learning in a new language, but I'd prefer one that's growing in use.

Best Solution

It depends on how you're distributing the app. If you have an option for cd or other physical media you can distribute the runtime via that media and 28Mb is nothing.

Otherwise you do have that 28Mb download to deal with. Your other option is to give up on .Net and choose another toolkit. The C++ Builder/Delphi option used to be pretty attractive, but I don't know what their platform looks like these days.

I've heard rumblings recently that mono is getting good enough you can use it to compile and statically link a .Net app as a native *.exe file. We'll have to see if this turns out to be a good option.