The monolithic architecture

The monolithic architecture has been around for quite some time and it results in self-contained software with a single .NET assembly. It consists of the following components:

The cost paid for being self-contained was that all the components were interconnected and interdependent. A minor change in any module had the capability to impact the entire piece of software. With all the components so tightly coupled in this manner, it made testing the entire application necessary. Also, another repercussion of being so tightly coupled was that the entire application had to be deployed once again. Let's sum up all the challenges we faced as a result of adopting this style of architecture: