I intend to write a small application to scratch a personal itch and probably make the life of some colleagues easier. Here is what I have:
- 10+ years of experience in C
- Plenty of experience in programming against the Win16/32 API in C from the Win3.1 to 2000 days.
- C library written by myself already doing about 75% of what the application shall do.
What the application shall do:
- open a binary, feed it into the mentioned library.
- take the resulting text output and feed it into a new Excel Workbook.
- apply some formating.
- integrate nicely with the Windows environment (availability in "Open With...", remember some stuff using the registry etc.)
- (maybe later) before giving the CSV data to Excel, parse it by looking up the meaning of some values in an XML file.
Except for the XML parsing part I have done all of that stuff before including COM / Office Automation in C/Win32. There is a lot of boilerplate code involved, but it is doable and the result will be a pretty small application without the need for an installer.
So why even think about C# / .Net?
- no experience with parsing XML
- the promise of less boilerplate code for the Windows and Excel stuff (yes, I have done C++ with OWL, MFC, ATL etc. but I am not going there anymore - not for free/fun)
- Since I have also experience with C++, VB(not .Net) and a little Java / Objective-C I suppose learning C# will all be about the .Net libraries and not actually about the language.
My considerations so far:
- Learning .NET might be fun and might result in less code / first steps in a more modern environment.
- Sticking with what I know will lead to a predictable outcome in terms of effort and function (except for the optional XML stuff)
- VB looked great at the beginning until the projects where about 80% done, then the pain started and the DLL coding in C. I am concerned history could repeat itself if I choose .Net.
My primary objective is the functionality. Effort is a concern. The XML parsing is optional.
Please advice.
Update: one thing I forgot to mention explicitly is that I am also worried about easy deployment of the tool to my co-workers. With Win32 I am pretty sure I can come up with an EXE file < 1Mb that can be easily emailed and does not require installation. With .Net not so much. Can I create the necessary MSI or whatever in Visual Studio Express (free) or do I need 3rd party tools?