Time ago I worked in an application with Silverlight, I Try to create a design where the “core” would be maintainable and re-usable for a long time (of course inside of Microsoft C# technology)
After six year I open again the Solution for this project in Visual Studio 2013 with Windows 10 64 bit (it was created in Windows 7 32bits and VS2010) and I got a list of errors
The type or namespace name ‘MatchTimeoutInMilliseconds’ could not be found
Generated code for Silverlight references MatchTimeoutInMilliseconds, which does not exist
I look for the problem (no resolve yet) but I found that the problem is in the UI layer, because this use Silverlight and now this is deprecated. Fortunately the business logic is Ok
So here some lections to learn.
Don’t be a “fan-boy” with trending technology
Silverlight was good and time ago there was much support, but now is deprecated by Microsoft, at the same time in 2010 HTML5 staring to grown, so is important employ Standard Techniques. Despite Microsoft still supporting Silverlight, but if the application was written in a language more “Standard” like HTML5, maybe now not have problems with UI
Decouple the domain is SO IMPORTANT
I’m not an expert in Architecture and design but fortunately I try to follow the guidelines of DDD to decouple business logic (Domain Drive Design) here some examples how it was applied:
This is the main concept take for the book“Domain-Driven Design: Tackling Complexity in the Heart of Software” by Eric Evans