Fiona

Fiona

  • NA
  • 2
  • 0

Version control of DLLs?

Apr 29 2009 7:50 AM

 Hi. I don't know if this is a straightforward or complicated question, so please bear with me!

I have a .NET web application which displays data exported from a client's backoffice system using a separate Windows Forms app.

 So, my Windows Forms app uses the BO software's API to gather the data, and then maps it, using a class library I've built called common.dll, which is referenced (copy local=true) using VS2008.

 It looks like this:

Data comes in from the BO software API and gets translated to my class mappings (from common.dll):

CommonClient commClient = new CommonClient();
commClient.name = apiClient.firstName + " " + apiClient.lastName;
commClient.dob = apiClient.dobl
commClient.address = apiClient.addr1 + "," + apiClient.addr2;

  This is then serialised into XML using the following:

ObjectXMLSerializer<CommonClient>.Save(commClient);

  and then saved to a remote database via a web service.

 

Then I have my web app, which needs to display the data. This reads the XML from the database and then deserialises it against the common.dll classes (again, the web app has a copy local reference to common.dll in VS2008):

CommonClient myClient = ObjectXMLSerializer<CommonClient>.Load(xmlFromDB, true);

  

Now, this works fine (is it best practice? I don't know!), but I have a potential problem. What happens if I need to make changes to common.dll (as you may appreciate, it is a lot more complicated than the examples I have given!).

I need some sort of version control for my common.dll. I need to be able to say "this row in the database has been serialised using an earlier version of the common.dll to the current one, so needs to be deserialised using the old one, too", but I'm not sure how I would go about this.

I can't be the first to have an issue like this, so could someone give me some guidance on how to proceed?

I hope I have made myself clear enough!

Thanks!