My very first real developer job asked me to use C++ and MFC, with Visual C++ 4.0; in time, I’ve grew fond of the MFC ways. As technology changed, I had to learn Windows Forms, WPF, HTML, Javascript and so on. Now, after so many years of working with so many technologies, I still have a raising heart when I have to implement an UI using Windows Forms or WPF. It’s an annoying feeling, to say the least.
Well, here comes an opportunity to fight.
I have an application developed in Access/VBA. The application greatly solves the customer need, which is to control a special kind of printer, but it raises some support and deployment issues, mainly because Access tries so hard to help the user that always loses the reports configuration when the .accdb file is deployed on a different system. The deployment team is actually the salesforce team and it currently consists of only one person; she is a smart lady, but she doesn’t have the needed skills and she also doesn’t have the needed mind set. Even with written instructions, it’s very likely she will miss some configuration steps and then she will call me on my mobile asking for support.
So I’ve started (on my own time) a .NET application that will do everything the Access application does and it will also improve the deployment and support process. And I’ll implement the UI with WPF.
Now, that’s an adventure. I’ve resisted the urge to do everything by the book and, instead, I’ve implemented the first version in a ‘less smarter’ way. More precisely, I’ve specifically avoided defining styles and binding to data and I’ve directly used the German language (the application is for the Swiss market).
What I’ll do: I’ll make the application run and then I’ll improve the codebase step by step: I’ll centralize the styles, I’ll define user controls, I’ll properly define data sources and I’ll see what can be done to localize the application without satellite assemblies (I want to deliver a single .EXE file, without setup, and I expect I’ll get support calls again if somebody out there has to ensure a .dll exist in a subfolder).