Castle and .Net 3.5 SP 1

September 24th, 2008

Here are a few things I should clarify publicly regarding Castle and .Net 3.5 SP 1. First, the facts:

- The SP broke DynamicProxy 2 when creating a proxy for generic interfaces/methods (as Fabian described)
- The code that started to throw an exception is there to deal with a very edge case
- Breaking DynamicProxy breaks everyone that uses it (Rhino Mocks, Castle Windsor, NHibernate and Moq – those are the main ones I can think of now)
- I recently confirmed the problem and changed DynamicProxy code to not use those methods “r5323: Disabled the GetOptional/RequiredCustomModifiers calls so all tests (but one) pass”

So now everyone can continue to use DynamicProxy 2 and live happily. MS is going to make a fix available soon, according to scottha, so that we can re-enable that piece of code.

I don’t know, demographically speaking, the number of people affected by this. I do know and understand that publishing a SP that breaks something that was working make us look bad. That being said, I wish people could spend a day close to CLR team and be a fly on the wall on meetings and hallways discussions. Quality is serious business here.

Nothing is perfect, though, and some things slipped. At some point in time there wasn’t a test case for reflection emit that invoked GetOptional/RequiredCustomModifiers for generic interface/methods. Is that the end of the world? I don’t think so. And I’m sure they have one now.

Now, how could this be prevented? I have a dream.. If some team on CLR decided to run Castle tests cases with SP1, they would have detected that. Mono does aggregate external tests cases repositories to test their platform implementation. MS could do the same for a handful of OSS projects, where license is not a problem. If that’s not possible due to legal issues, the CLR team can streamline the communication with OSS teams and get early feedback. I have a dream… :-)

Categories: Castle, MS | Top Of Page | 7 Comments » |

7 Responses to “Castle and .Net 3.5 SP 1”

J Healy Says:

Thanks for keep us up to date on the issue…

(Oh, and the link above for Scott needs a bit of repair)

hammett Says:

yup, fixed.

Johnny Hall Says:

Hi. I’m not sure the best place to ask this (I looked on the forum but I wasn’t sure where to post) but…

I can’t checkout from the svn repo. It gives me a 503 Service Unavailable error.

http://svn.castleproject.org:8080/castle/trunk

Sean Feldman Says:

Any dream eventually evolute into reality… it’s just a matter of timing. ;)

hammett Says:
Jan Limpens Says:

Its funny, when you say ‘us’ as in ‘making us look bad’ I wasn’t immediately aware that you were referring to MS. I hope you are still in the ‘us’ of castle ;)

Johnny Hall Says:

Ha! That’ll be why then! I’m sure I used ctrl-c, ctrl-v.

Thanks.

Leave a Reply