> From: Marc Brooks [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, October 22, 2003 8:02 PM
> > You may be thinking that assemblies are versioned so you would
> > have to recompile your client to access the updated assembly.
> > True, this is possible, but what if that was the only change
> > you made (perhaps a bug fix)? If so, then you should be able
> > to create a Publisher Policy that says the new assembly is
> > compatible with the old one.
>
> But that's obviously a lie... they are not compatible in the public
> interface contract, since the OLD version let you twiddle the
properties
> at
> will, and the new one restricts the input values. That's the sort of
> subtle
> change that leads to MFC42.DLL hell.
>
> Marc
I think that "lie" is a bit harsh.
What if the original documentation explicitly stated that the values
have to be in a certain range? That's your contract. Just because the
implementation worked differently, that was a bug and should be fixed.
If a client noticed that he can pass in "foo" instead of "baz" despite
what the documentation said, then the client has a bug, and it's not the
publisher's responsibility to perpetuate that.
Anyway, I guess this shows how important that any public interface be
thoroughly documented.
I guess the issue is:
Is the public interface contract what the documentation says or
what the implementation is?
-- Michael
===================================
This list is hosted by DevelopMentor� http://www.develop.com
NEW! ASP.NET courses you may be interested in:
2 Days of ASP.NET, 29 Sept 2003, in Redmond
http://www.develop.com/courses/2daspdotnet
Guerrilla ASP.NET, 13 Oct 2003, in Boston
http://www.develop.com/courses/gaspdotnet
View archives and manage your subscription(s) at http://discuss.develop.com