What Do Swimmers Have to Say About Framework Design?

I am starting to feel pressure to finish up slides for my presentation at the upcoming TechEd in Barcelona. I will be talking about framework architecture and design. Here is the abstract I took from the conference’s site: WIN304 Framework Engineering: Architecting, Designing, and Developing Reusable Libraries   This session covers the main aspects of reusable…

7

FxCop Rule for Multi-Targeting

Two months ago, Scott blogged about the multi-targeting support in Visual Studio 2008. I worked on this feature in the planning phase (read “long time ago”), and so I am quite thrilled to see it finally in the hands of developers. Especially, that several years ago I remember our small working group sitting in a…

22

China Trip

Sorry for not blogging for such a long time. First I was on a combined business/vacations trip to China and when I came back, I got involved in some intensive planning for the future releases of the platform. I will try to post something about software in the next couple of days. The trip to…

2

Duck Notation

I have been working with the C# and VB teams on design guidelines for LINQ. We started to talk about the so called Query Pattern, which describes what you need to do if you want a custom type to support the new query operators (select, where, group by, etc.). The query operators use duck typing…

36

How to Fight Complexity in Software (part I)

A couple of weeks ago, Grady Booch gave a lecture at Microsoft. It was a pleasure to hear of my software engineering heroes in person.  Grady talked about “the promise, the limits, and the beauty of software.”   The main thing that captured my interest during the lecture was a discussion about the cost of…

0

FxCop Designers Honored with the Chairman’s Award

Last week, during the annual Engineering Excellence week, several Microsoft engineers and managers involved in development of engineering tools and practices were presented with Engineering Excellence Awards. In addition, the principal designers of three static analysis tools were honored with so called “Engineering Excellence Chairman’s Award,” which is given for contributions that our chairman (Bill)…

8

Generic Methods as Casts

Somebody just asked me which of the following API design alternatives is better. They both do what we could call “casting.”   // Generic Method “Cast” var foo = someInstance.SomeMethod<IFoo>();   // Simple Cast var foo = (IFoo)someInstance.SomeMethod(); The Generic method approach can potentially have two benefits. A constraint can tell users what the subset…

3

Framework design lecture avaliable for download

I have good news for all who asked about an off line version of the API design lecture I blogged about a few weeks ago. After literally a hundred emails and comments on the blog (thanks for pushing me to get this done), weeks of trying to get this setup, including the difficulty of finding…

5

Silverlight – Program the Web the Way YOU Want It

I just came back from Mix where we announced details of Silverlight’s programming model. This is pretty much what I have been working on for the last year and a half. It feels great to finally be able to talk about it. I will blog more about the details after I am back from my…

1

Nullable<bool> usage guideline

I am starting to work on some updates to the framework design guidelines related to new framework and language features added in .NET 2.0, 3.0, and 3.5. One of such additions are the nullable types (Nullable<T>). Coincidentally, somebody asked me today whether they should use Nullable<bool>. Here is the question: Q: Do the guidelines have…

6