Thursday, September 15, 2005

Day -1: The Art of Building a Reusable Class Library

Te first precon session at Day -2 (2 days before the PDC actually started) ".NET Framework 2.0 - The Smart Client Perspective" with Rockford Lhotka and Billy Hollis was not quite my session. I am not too deep into this smart client development and also I still suffered from that jetlag a little bit. But still they covered ClickOnce in great detail. I have always wanted to have a look at it and also I was able to ask the question I have always wanted to ask: Why does Visual Studio's new class designer not support UML. The answer I got from Mr. Lhotka was something like that not all features of the designer have their representation in the UML standard, so not all that can be done in the class designer can be expressed via UML. Hence it would not make sense to support UML.
So that session hat its moments ...

The precon session of the next day was much more of my taste. It was "The Art of Building a Reusable Class Library". The famous Brad Abrams and Krzysztof Cwalina (I bet he is from Poland originally) did a very interesting (and entertaining) session on how to develop class libraries "correctly".

In the past Microsoft has spent some effort to provide us with design guidlines to develop good reusable classes libraries. I try to stick to them as much as I can and as it makes sense and fxcop has become a good friend of mine.
Brad and Krzysztof mainly took us on a long ride through those guidelines (I counted 93 slides). At the beginning every attendee was handed out a free copy out their new book "Framework Design Guidelines" and it looks like they covered pretty much everything in their session that is in that book. Of course I did not forget to have my book signed by the two authors.

They kicked of the session by mentioning four "Keys of Framework Design:

  • The Power od Sameness
  • Framework Design Matters
  • Tools for Communication
  • The Pit of Sucess"

My Favorite ones were the first and the last one. "The power of sameness" means that you should provide the users of you classes with patterns, typenames, idioms etc. that they are used to. They should be able to use your classes almost intuitively without having to read the docs first. Brad did a very entertaining comparision to driving a car. Due to the power of sameness one does not need to read the manual to drive a car, even if it is a type of car that he has never driven before. This is a main reason why design guidelines are good. If all the different class libraries follow the same guidlines the developer will be able to take them for a ride without having to learn too much about them first.

"The pit of sucess" my secound favorite key is directly reltated to that. Your Framework should be designed in way that using it is like falling into a pit (rather than climbing a mountain). You should "make the simple things simple and the hard things possible" so your users "fall into sucess" automatically.

Allthough I came to L.A. for the WPF story, I must say that this session was one of my favorites, also because we had the whole day to get into to topic real deep and talk about it in great detail and because Brad and Krzysztof (I thank good for copy&paste !) really managed to get the topic across in a very fun and entertaining way. Only one session was more entertaining (but less informative ! ): " PRS334 Windows Presentation Foundation ("Avalon") + Windows Communications Foundation ("Indigo") = Magic " by Chris Sells and Doug Purdy. They really did hellofa comedyshow there.

Tags: PDC05


Anonymous doorman said...

"falling into success" is a brilliant phrase!

4:01 PM  

Post a Comment

<< Home