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.
Another option is to use Mono with mkbundle. Mkbundle takes your app and all the assemblies it references and packages them into a single binary package.
Here is a link to one of the Mono pages about it.
I suggested U++ for another question:
What are some of the "best" cross-platform C++ UI toolkits today?
If you like C++, once you try out and work with U++, you'll be amazed by its beauty, elegance, lightweight, .NET-free as your requirement calls for and agressive use of C++.
You can actually make a MFC app with fairly substantial use of large libraries (eg: boost) which will compile to under 10MB statically linked, depending on how much code you include and what features you use. Even a large-ish 32bit app is unlikely to exceed 28MB without a lot of binary resources included. The benefit of that path will likely be highly dependent on your experience with C++ and MFC, but it's certainly an option (and, as a bonus, you're not dependent on a specific version of any framework being pre-installed, or forcing any system changes at all).
What about Qt? It produces small footprint apps, it's very easy to learn, it supports full integration with VS200x and (what you maybe don't need) it's platform independent - and even runs on WinCE without (big) changes.
Have you ever tried Delphi?
Delphi is very good for rapid application development (RAD). You can build forms, like dotNet, dragging and dropping components. In my opinion it is perfect for business apps.
The only problem is that you will have to learn Pascal, but it should not be a problem. Delphi is compiled and very fast (similar to c++).
Why dont you download Delphi´s trial version and try it?
One plus I can think of is that you don't need to install any additional package to run your app (not dotNet runtime or c++ redistributable).
Another good point to remember is that, it has dotNet support and there is Prism.
The Open source Free Pascal compiler with Lazarus IDE might be an option. I compile and test most of my Delphi components and libraries also with Free Pascal. For the user interface, Lazarus offers its own visual component library, FCL.