Dev Blog: Under the Hood

At the moment I am working on the substructure of EPD. Nothing to show off in a big way. When I started to code EPD, I was just beginning to learn WPF (Windows Presentation Foundation). Over the years I’ve gotten to know new development patterns and have partly implemented them already.

The major part of EPD, however, still doesn’t use modern design patterns yet. If you have something to do with C# (or .NET in general), you will surely have heard about MVVM. EPD already uses this pattern in its core – The PropertyParser – already. Although not in a puristic implementation, as I use a lot of reflection that saves me 1000s of lines of code because of all the properties a yaml file has.

This part is staying the way it is, with some changes I already implemented due to the new combined editors. I always was afraid that these changes might break EPD in a way that I could not fix anymore. So I always was very hesitant to try it. But as it turned out, it wasn’t as complicated as I thought it was. Fortunately it worked out, otherwise the combination of Editors would not have been possible at all.

MVVM stands for Model-View-Viewmodel and is a design pattern, where the underlying code (mechanics, data and functionality) gets completey decoupled from the UI. That makes changing and Unit Testing a lot easier and efficient.

So at the moment I’m transferring all the code, that currently is part of the UI class into its separate ViewModel and then link all the data and commands back to the UI via MVVM. That’s an ongoing process, as EPD already grew into a really big project, but I have to start somewhere, and the main UI and its Editors are a good starting point.

This will take a few days, I guess and then I’m back into the more interesting feature development business. 🙂

Here’s some info about MVVM, for those who care. I’m guessing not too many. 😀

MVVM (Wikipedia)
MVVM (Microsoft Blog)


Leave a Reply