Best Practice Question -- Common Functionallity

Nate Bross

Contributor
Joined
Apr 6, 2005
Messages
601
Location
Chicago, IL
I'm wondering the best practice for sharing common functionallity between applications, such as sending emails, logging errors, etc.

I've got a few applications that will need to share common functionallity. I would like to use a class library to house this code; but I'm wondering how I could issue updates [bug fixes, etc] without having to recompile and update all dependant applications?

I will not be changing method signitures, or anything like that -- only how the internal functions work.

Pie in the sky, would allow me to add additional methods for new dependant applications without breaking existing dependant applications.

Thoughts? Ideas? Should I abbandon this hope, and follow a different path?

TIA
 
If you do not change the method signatures then there would be no need to recompile applications that use the shared library - you would just copy a new version over the old version and things would be fine.

However if you want to do things properly you should be providing each released version with a different version number and also make sure each released version has a strong name. This however will prevent you simply replacing an old version with a new version...

One benefit is that a new version can be installed along side an old version, that means you do not need to be as rigorous when checking backwards compatibility...
If you want an existing application (or all applications) to use the new version you can create a binding redirect - this will allow an old client to use a new version of the library without a recompile.

For critical updates you can also provide a publisher policy which forces existing applications to use the new version unless they opt out.
 
If you want an existing application (or all applications) to use the new version you can create a binding redirect - this will allow an old client to use a new version of the library without a recompile.

Is exactly what I was looking for; can you provide some links or insight into implimenting this?
 
If you have some information, or trust-worthy links on strongnames, I'd really appreciate that too; since it looks like that is the recommended path to take.
 
Back
Top