Re: Forcing an application to load assemblies from a specific path
Greg Young <[email protected]> Tue, 26 May 2009 15:59:40 -0400
| Newsgroups | gmane.comp.windows.devel.dotnet.advanced |
|---|---|
| Message-ID | <[email protected]> |
By your logic no bug could ever be fixed in a version and all releases would have to be side by side. I would have to run with the exact version I compiled against ... Sounds familiar. On Tue, May 26, 2009 at 3:49 PM, Fernando Tubio <[email protected]> wrote: > Finally! You seem to agree with me > > ... "There's really nothing anyone can do to avoid breaking an application > that is making incorrect assumptions while reflecting code."... > > So it is a breaking change, sorry, a "disruptive alteration". > > I insist that you are trying to push me into an API discussion when I > believe this is a deployment issue, and a very difficult one. I think they > can fix all the APIs that they want, and I'm glad that this happens. I'm > not > convinced that claiming that this is still .NET 3.5 SP1 is the way to go. > And if Windows 7 introduces changes that can potentially disrupt > applications, then you should still be able to deploy the original > framework bits side by side and get on with your life. But I'm sure that > there are a lot more issues to consider other than maintaining > compatibility > with a badly written application. Perhaps this is the reason why I'm > reluctant to "pick a side". That, and the fact that if you look at the > subject line, you will recall what my primary concern was. Certainly not > argueing for the inmutability of the framework APIs or the bad use of > reflection. > > - Fernando > > ----- Original Message ----- From: "Peter Ritchie" < > [email protected]> > To: <[email protected]> > Sent: Tuesday, May 26, 2009 2:24 PM > Subject: Re: [ADVANCED-DOTNET] Forcing an application to load assemblies > from a specific path > > > The problem is you haven't picked a side. You've said you think the > framework shouldn't break any software that runs on the previous version as > well as saying their API is not wrong. > > Do you see the contradiction in this? If the API isn't wrong and doesn't > need changing, how do they "fix" the framework so it doesn't break this > poorly coded application in the RTM version? > > The interface contracts and the semantics of the framework are what the > .NET > framework is supposed to address with regard to "DLL hell". Even then, > it's > only as good at this as the designer of the framework. If the designer > removes methods, properties or even classes; you're right back to DLL hell. > > There's really nothing anyone can do to avoid breaking an application that > is making incorrect assumptions while reflecting code. > GetMethod("MethodName", BindingFlags.Instance | BindingFlags.Public) is one > example--avoiding breaking this means never adding overloads to the > framework. Another example is typeof(String).GetField("m_arrayLength", > BindingFlags.NonPublic | BindingFlags.Instance)--avoiding breaking this > means never changing or removing private fields. There's endless examples > like this that eventually lead you to the only solution to making sure > existing applications don't break with a new version of the framework is to > never change the framework. > > -- Peter > > On Tue, 26 May 2009 13:54:30 -0300, Fernando Tubio <[email protected]> > wrote: > > No, I'm leaving all the suggestions to you. I'm simply replying to your >> objections to my use of the term "breaking change". If Windows 7 ships >> with >> the framework and they call this .NET 3.5 SP1, and the application breaks, >> then it is a breaking change. >> >> Look, you are trying to push me into a side of the argument where I do not >> wish to be. Whether MS is justified in introducing this change at the risk >> of breaking some applications, I don't know. As I said previously, this is >> really no different from DLL hell and I'm a little bit disappointed that >> this is not handled better. After all, this is one of the issues that .NET >> was supposed to address. >> >> > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > > =================================== > View archives and manage your subscription(s) at > http://peach.ease.lsoft.com/archives > -- It is the mark of an educated mind to be able to entertain a thought without accepting it. =================================== View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives