3

My current .NET project looks like below:

Solution (.sln)
--BusinessProject A (.proj)
--BusinessProject B (.proj)
--DataLayer (.proj)
  --A separate project calling ExternalService 1  (folder)
  --A separate project calling ExternalService 2  (folder)
  --A separate project calling ExternalService 3  (folder)
  --A separate project calling ExternalService 4  (folder)

Both of the Business Projects use one or more services in DataLayer.

The disadvantage of this design is:

  1. Even if one change occurs in ExternalService 1, we will need to build, deploy, run regression and go through entire product development-deployment cycle.
  2. DataLayer communicates to multiple externalServices (all defined in a single project). This makes DataLayer very heavy & it ends up doing multiple things.

So my two cents on this is to

  1. separate DataLayer as a separate solution, deploy it somewhere in the same ecosystem and communicate with it via a protocol (say REST)

What are other alternatives and approaches to the above solution ? Are there any known .NET related design patterns for the same ?

0 Answers0