Posts

Showing posts with the label DESIGN

On Documentation for (and by) Developers

Image
The government's view of the economy could be summed up in a few short phrases: If it moves, tax it. If it keeps moving, regulate it. And if it stops moving, subsidize it.  - Ronald Reagan This has become a personal pet - peeve of mine, having been in various developer groups using the .NET platform since 2001 (ancient history, to be sure -- at least by Internet standards). When I write a class library, if there is even the HINT that it may be used by other developers (or  -- even by me myself at some later date) I've learned to produce decent documentation in the standard XML comment format that has been available in .NET since the very first BETA 1.0 was distributed at the Orlando PDC (Professional Developers Conference) in 2000.  Here's the "thing": as you progress in your career as a professional .NET developer, you'll learn to produce libraries and classes of useful code that you'll use again and again. The idea is that as you gain more and more...

Silverlight 2.0 Goodness - and IE 8.0 too!

Image
May the Flying Spaghetti Monster touch you with his noodly appendage! -- Pastafarian saying ** Silverlight 2.0 Beta 1 Plug in Runtime ** Silverlight 2.0 Beta 1 Tools for Visual Studio 2008 (Includes SDK - installs everything except Blend) ** Expression Blend 2.5 March Preview (handles Silverlight 2.0 projects) ** Expression Studio 2.0 Beta (includes Expression Web, Expression Blend, Expression Design, Expression Media and Expression Encoder.)  This release continues to enable building rich client applications with WPF and also helps designers target Silverlight 2.0 for delivering stunning web applications. ** Silverlight 2.0 documentation and links to Quickstarts, etc. All this stuff was just put out from MIX. Have fun! With version 2.0, now that I can use real .NET libraries in the browser, this is where I start getting seriously interested in Sillverlight . Once you get the bits installed, there is a very nice series of Hands On Lab s that you can download for the f...

Interfaces, Abstract Classes, and Inversion of Dependency

In Framework Design Guidelines (Cwalina and Abrams, Addison-Wesley), the authors have a section in Chapter Four entitled "Choosing Between Class and Interface" that is very revealing about the "behind the scenes" goings on during the development of the .NET Framework. They say that in general, classes are the preferred construct for exposing abstractions, the logical basis of this being that once you ship an interface, the set of members is baked forever - any additions would break existing types that implement the interface. Classes are much more flexible - you can add members to classes that have already shipped, and as long as the method has a default implementation, existing derived classes continue to function undisturbed. They provide an example (although not a very good one) of how difficult it would be to add timeout support for streams. All of the options have substantial development cost and usability issues. It seems that one of the primary arguments for...