Last year, I wrote about a small photo EXIF data viewer I’d built. Unfortunately, I hadn’t really given the project much thought since then, especially since it was written to run on Windows and late last year, I switched back to MacOS.
Recently, however, i’ve been toying with idea of porting it to MacOS, especially since Microsoft’s Xamarin lets you write .NET code and compile it with MacOS as the target OS. However, to do so, I needed to rewrite for the Windows platform.
The first problem is that the original was written in Visual Basic.NET, which is great for rapidly-building applications, but is not a modern language and is on its way to being deprecated by Microsoft.
The second problem, and this is somewhat-embarassing considering that I’m a software development manager and solutions architect at my day job, but the application was poorly-built (I threw it together in a couple of hours). No modularity. No proper design patterns. Logic intermingled with UI. Lots of global variables.
So, to port to MacOS via Xamarin, I’d need to rewrite the code in C# (since VB.NET isn’t supported) and I’d need to make it more modular, so that the processing/backend was abstracted away from the user interface. This way, I could use the codebase that extracts the EXIF data in my Mac version without modification and will only need to build the UI elements for MacOS.
I welcome feedback, contributions and pull requests!