Krzysztof Cwalina

Designing Reusable Frameworks
Posts
  • Krzysztof Cwalina

    Duck Notation

    • 36 Comments
    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...
  • Krzysztof Cwalina

    How to Fight Complexity in Software (part I)

    • 0 Comments
    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...
  • Krzysztof Cwalina

    FxCop Designers Honored with the Chairman's Award

    • 8 Comments
    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...
  • Krzysztof Cwalina

    Generic Methods as Casts

    • 3 Comments
    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...
  • Krzysztof Cwalina

    Framework design lecture avaliable for download

    • 5 Comments
    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...
  • Krzysztof Cwalina

    Silverlight - Program the Web the Way YOU Want It

    • 1 Comments
    I already wrote a couple of small applications using Silverlight, and I have to say that it makes web programming natural for the first time. The platform no longer forces you to program its way, while your intuition and years of programming experience tell you to code some other way. It makes me say, for the first time in my life, that I am proud to be a web developer :-) ...
  • Krzysztof Cwalina

    Nullable<bool> usage guideline

    • 6 Comments
    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...
  • Krzysztof Cwalina

    Nourishing Creativity

    • 0 Comments
    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...
  • Krzysztof Cwalina

    Online lecture on API design

    • 34 Comments
    I gave a lecture on framework design at the Redmond’s Microsoft Research Center. They recorder and posted it on the Research Channel . You can see it here . It’s more than 3 hours long, but I think you will find it worth the time. Let me know what you...
  • Krzysztof Cwalina

    Effective Presentation Skills

    • 6 Comments
    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...
  • Krzysztof Cwalina

    How to Design Exception Hierarchies

    • 14 Comments
    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...
  • Krzysztof Cwalina

    .NET Framework Performance Signatures

    • 5 Comments
    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...
  • Krzysztof Cwalina

    System.TimeZone2 Naming ... and related design guidelines

    • 30 Comments
    There is an interesting discussion on the BCL blog about a new BCL type called TimeZone2. Just take a look at the comments below the System.TimeZone2 Starter Guide post. The new type supersedes an existing type called TimeZone (which is obsolete now)...
  • Krzysztof Cwalina

    Clearing Enum Flags

    • 4 Comments
    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...
  • Krzysztof Cwalina

    Poll: Attribute Design

    • 37 Comments
    I would like to run a quick poll. Which design do you prefer for a set of related attributes and why? Option #1: Several Attribute Types: public class AaaaFooAttribute: Attribute { } public class BbbbFooAttribute: Attribute { } public class...
  • Krzysztof Cwalina

    International Phonetic Alphabet

    • 7 Comments
    I am in Chicago at the Architecture and Design World , and today I went to a session on API design. The talk was given by Elliotte Rusty Harold , who wrote more books than I would ever guess (see his home page). The talk covered the most important do...
  • Krzysztof Cwalina

    Architecture & Design World 2006

    • 0 Comments
    I will attending Architecture & Design World next week where I hope to meet and chat with some fellow API designers. Should be fun.
  • Krzysztof Cwalina

    Choosing the Right Type of Exception to Throw

    • 18 Comments
    My last post about the ApplicationException resulted in some questions along the lines of “so, if not ApplicationException, what should I throw instead?” The answer to this question is partially covered by my old post on Exception Throwing and partially...
  • Krzysztof Cwalina

    ApplicationException considered useless

    • 22 Comments
    We have a guideline that bans using the ApplicationException. Here is the related excerpt from the Framework Design Guidelines: ý Do not throw or derive from System.ApplicationException. JEFFREY RICHTER: System.ApplicationException is a class...
  • Krzysztof Cwalina

    Synchronization at the Right Level

    • 2 Comments
    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...
  • Krzysztof Cwalina

    Framewok Design Guidelines Wins Productivity Award

    • 10 Comments
    A couple of months ago, Brad blogged about the FDG book getting into the Jolt Award finals. The winners were just announced and we have won the Productivity Award! I am shocked … that Brad did not blogged this information first! :-) On that occasion...
  • Krzysztof Cwalina

    Framework Design Humor by Benji Smith

    • 8 Comments
    Benji wrote a pretty funny article exposing one of the main problems with bad APIs: trying to enable every single scenario at the wrong level of abstraction. In other words, when your APIs get too complex, think whether you are not trying to enable...
  • Krzysztof Cwalina

    Extending System.Diagnostics tracing APIs

    • 10 Comments
    The April issue of the MSDN Magazine just went on line. It contains an article I wrote that describes some advanced extensibility supported by System.Diagnostic tracing APIs. It talks about creating custom TraceListeners, Switches, and TraceSources.
  • Krzysztof Cwalina

    C5 Collections

    • 5 Comments
    Peter Sestoft and his team just released a library of collections for the CLI called C5 Collections . Unlike the Power Collections , this library introduces many new abstractions that are not present in the .NET Framework. The benefit of such approach...
  • Krzysztof Cwalina

    Code Query Language

    • 6 Comments
    Patrick Smacchia just released an alpha of an interesting application (NDepend) that can be used to analyze manage code binaries. It’s similar to FxCop . One really nice difference is that you can extend the tool using scripts written in CQL (code query...
Page 2 of 4 (100 items) 1234