Question

Background Information I have taken ownership of 3 websites that share a number of internal assemblies, they each connect to a WCF Service hosted in IIS for basic CRUD type operations.

A couple of different developers could be working on each website at any one time, making changes/additions to the code that is used in the shared assemblies.

The Issue Each developer then builds their code and ensure that their website is working correctly. However they are unaware that in changing the shared code they could have affected the functionality in the other websites.

To resolve this, I could build each shared assembly separately, copy the dll to a directory specific to each website and add a reference from there.

However this flags up a couple of issues:

  1. This means constantly building the shared assembly and manually copying the dll to the directory it is required in.

  2. When a developer gets the latest source code for the shared assembly, they get the changes any way.

I have thought about managing this using nuget packages, but this only really addresses issue #1 to make it slightly easier to manage specific versions.

I hope this makes sense...

Does anyone else have any advice/tips?

Was it helpful?

Solution

There's no real magic bullet to this one.

Either the developers have to take some responsibility for ensuring changes to shared assemblies don't impact other code that references those assemblies or you really shouldn't be sharing them across projects. If the things they're changing in these shared assemblies really happens that often, you might consider migrating those parts or the methods they're changing to each individual project. Sharing assemblies like this should really only be done for absolute core functions that should change very, very infrequently.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top