> 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

Reply via email to