views:

887

answers:

2

I have been working on an WTL UI app lately and tearing my hair out with how absolutely archaic everything is. I went with ATL because I needed to be able to offer the application to users who don't have or don't want to be bothered with the .NET Framework installation. I wanted to be able to distribute it without anyone having to do anything but run the .EXE.

I decided that it's getting to not be worth the trouble and am wondering if there is any reason, not withstanding the increased binary size, that I shouldn't just build it in .NET, much faster to code, and then convert it to native .EXE using Xenocode's PostBuild

As far as I can tell I would save myself a ton of headaches, get nearly the same performance for what I'm doing, and actually get this project finished sometime this year.

I don't mean this as a total offense on WTL, I know if I had more time to learn it I would, but I just don't, but also need the benefits that WTL provides.

Thoughts?

+4  A: 

I would say go .NET all the way. It's very hard to write UIs using anything else, one you've started with .NET.

That said - is it really that big of a deal to require the .NET Framework to be installed? Vista ships with .NET 3.0, and Windows 7 will ship with .NET 3.5SP1. In addition, Microsoft has been pushing .NET 3.5SP1 out on Windows update to all Windows users, meaning those who update should have in installed already (not to mention that they might already have it due to another application requiring it).

While Xenocode's app probably works, you lose out on some of the advantages of using the .NET Framework traditionally - namely, you won't be able to use any updates that may come (whether they be security or otherwise).

Andy
I simply can't do it if it requires the framework to be installed, it's out of my hands. The app has to be native, it's not worth getting into, because ideally i agree it would be better to use the framework. Question is how well does Xenocode work? Is it as easy as they claim it to be?
ApplePieIsGood
+1  A: 

You don't want to distribute single-file EXE applications to end-users anyway. They expect an installer, and certainly an uninstaller. Manually managing the shortcuts start menu, or starting an EXE by double-clicking it, or running it from a command line: non-developers simply don't do that.

That said, .NET is indeed a tad heavy. You could also have used a widget library, e.g. Qt. That could be linked statically, if you still want to ship a single executable.

MSalters
I don't mind an installer that installs a single exe. I definitely want a single exe though, I don't care about how big it will get.
ApplePieIsGood
wxWidgets will add about 5MB when statically linked to your executable. Exact figure off course depends on how much of it you need. Sorry, no recent numbers for Qt.
MSalters