views:

61

answers:

1

Hi, I'm writing a app which integrates with windows shell and adds an additional context menu. And am considering a couple of languages to write it in:

  1. MS .NET - I'd rather not use managed code for this type of app
  2. win32asm - This is my first choice
  3. VC++/C++ - Not sure

So basically its a toss up between assembly and C++ anyone have any thoughts or considerations that might make my choice easier?

+1  A: 

You want shell context applications to have small footprints. This rules out managed code at least for now. This may speak somewhat in favour of win32asm, although the C++ libraries aren't really all that large compared to the .NET runtime (less than a MB, all told, isn't that big these days)!

You want shell context applications to be stable, since otherwise people will kick them out to save their explorer.exe processes. This speaks heavily against win32asm. If you know only you will ever maintain the app, and you have great assembler skills, win32asm may work, though I myself wouldn't go that way. You still have to implement COM interfaces, which is a big enough headache without adding the complexities of assembly coding.

I'd go for VC++ with ATL support, without further thought, but with serious unit testing and safeguards against resource leakage. But if you aren't comfortable with C++ and templates, this may present a rocky road for you. On the plus side, you'll have a much smaller set of source code to maintain, and have a much easier time finding others to help or take over. You may also have improved a still relevant valuable skill set.

Pontus Gagge