Krzysztof Cwalina

Designing Reusable Frameworks

Browse by Tags

Tagged Content List
  • Blog Post: 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...
  • Blog Post: 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 handy during...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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 to...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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...
  • Blog Post: 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 well deserved vacation...
  • Blog Post: Nourishing Creativity

    For those who haven’t heard about it, TED is a multidisciplinary conference for experts from technology, entertainment, and design industries. They just updated their web site and while browsing around it I found this very interesting presentation about creativity by Ken Robinson. One of the main...
  • Blog Post: Effective Presentation Skills

    I just watched a very interesting presentation . The content of the presentation is interesting, but not very relevant to the work software engineers do. The super interesting and relevant part is that it’s one of the best presentations I have ever seen in terms of the mechanics of presenting, and I...
  • Blog Post: How to Design Exception Hierarchies

    I still get a lot of questions on how to design exception hierarchies, despite several attempts to describe it in talks, the FDG book, and in posts on this blog. Maybe the guidance gets lots in the in the complexities of the full guidance surrounding exception handling or I am a bad communicator. Let...
  • Blog Post: .NET Framework Performance Signatures

    I love Rico’s performance quizzes in general, but the last one has something especially interesting: a link to a file listing all members in the Framework and their estimated performance signatures (perf characteristic based on the number of allocations in the member). Now, I only wish I had an fxcop...
  • Blog Post: Clearing Enum Flags

    UPDATE: It looks like I am confusing a lot of people with this article. I wanted to write an article about something else than the title suggests (how flags enum are built) but I did not explain it well and what’s more important I forgot to mention the most important thing: how to simply clear a flag...
  • Blog Post: Synchronization at the Right Level

    I get a lot of questions about why the new generic collection interfaces (IList<T> for example) do not support synchronization. There are several reasons for it. One, probably the main, is that in practice synchronizing on the level of a single data structure is rarely useful. Rico explains this...
  • Blog Post: Workflow Application Model

    I just found a very interesting blog written by Dave Green (an architect of the Windows Workflow Foundation). One of the posts explains the main motivations for creating a workflow framework. In general I am a big fan of the work this team has done. I believe WWF will become the main application model...
  • Blog Post: Framework Design Guidelines book went to print

    I have just heard from the publisher that the Framework Design Guidelines book just went to print. To celebrate and to thank for the contributions, I thought I would blog the list of people who provided annotations for the book: Brad Abrams , Mark Alcazar, Chris Anderson , Christopher Brumme , Jason...
  • Blog Post: Listing of Managed Processes

    I just discovered a cool way of listing all processes that run managed code. using System.Diagnostics; using System; class Program { static void Test() { PerformanceCounterCategory clr = new PerformanceCounterCategory ( ".NET CLR Memory" ); foreach ( string process in clr.GetInstanceNames()) { if (process...
Page 1 of 1 (20 items)