MEF on CodePlex

  We have just released an update to MEF. You can get it at http://www.codeplex.com/MEF The changes are quite significant: 1.       The preview ships with sources under a very permissive license (Ms-LPL). 2.       We now support constructor injection. Feature that the community asked for. 3.       We completely redesigned MEF’s extensibility points. The extensibility points are…

7

Framework Design Studio Released

When I was coming back from Mix 2007, I was bored on the plane and so started to write a dev tool. What a geeky thing to do on a plane. 🙂 The tool allows comparing two versions of an assembly to identify API differences: API additions and removals. Comparing versions of APIs comes very…

21

Job Openings on the .NET Framework Core Team

  We have been incubating ideas about building a simple extensibility framework for some time. Now, as plans for the next version of the .NET Framework crystallize a bit more, we decided to productize the project. As a result, we have opened a job position (and most probably will be opening more) on the .NET…

15

Video Recording of "Framework Engineering: Architecting, Designing, and Developing Reusable Libraries"

I just received a video recording of a talk I did at the last TechEd. You can find the abstract below, and the WMV file can be downloaded from here. Hope you find it useful. [UPDATE: I attched the slides in xps format. The ppt file is 10x larger] Framework Engineering: Architecting, Designing, and Developing Reusable Libraries  …

8

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

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