Krzysztof Cwalina

Designing Reusable Frameworks

Disposable Collection

Somebody asked me today, if we have a collection that is disposable and calls dispose on all its...

Author: Krzysztof Cwalina Date: 02/10/2006

Krzysztof’s Laws of API Design

I always thought about writing down the laws of APIs design. By "laws", I mean principles that don’t...

Author: Krzysztof Cwalina Date: 12/20/2005

I don’t like the “Base” suffix

Today, I was reviewing a set of recommendation for naming types intended to be inherited from. The...

Author: Krzysztof Cwalina Date: 12/16/2005

Channel 9 video showing a real usability study

Channel 9 just posted a video in which our API usability engineers talk about one of the studies...

Author: Krzysztof Cwalina Date: 12/02/2005

Immutable Collections

I just saw an interesting post that talks about a general pattern of immutable reference types. Good...

Author: Krzysztof Cwalina Date: 11/22/2005

Why Do We Have EventArgs Class?

There is an interesting thread on MSDN newsgroups (see "event arguments" thread) about the design of...

Author: Krzysztof Cwalina Date: 11/18/2005

Activator.CreateInstance - System.Type vs. Generic Method

Daniel Moth asked, in his post, how to choose between a generic type parameter vs. a formal...

Author: Krzysztof Cwalina Date: 11/17/2005

Fix to TxRef

The Framework Design Guidelines book comes with a tool called TxRef. The tool was built with Beta 2...

Author: Krzysztof Cwalina Date: 11/17/2005

FDG book readership beyond our wildest dreams

The Framework Design Guidelines book is being read by readers we never thought would be interested...

Author: Krzysztof Cwalina Date: 11/08/2005

SYS-CON TV Interview

I did an interview for SYS-CON TV. I talked about the Framework Design Guidelines book and other API...

Author: Krzysztof Cwalina Date: 10/13/2005

Ship Party!

Online publishers have started shipping the Framework Design Guidelines book. Before, it was...

Author: Krzysztof Cwalina Date: 09/30/2005

Free Chapter from the Framework Design Guidelines Book

Addison Wesley, the publisher of the Framework Design Guidelines book has posted a freely...

Author: Krzysztof Cwalina Date: 09/30/2005

Why we don’t recommend using List in public APIs

We don’t recommend using List<T> in public APIs for two reasons. List<T> is not designed...

Author: Krzysztof Cwalina Date: 09/26/2005

System.Collections vs. System.Collection.Generic and System.Collections.ObjectModel

Many people ask how the new.NET Framework 2.0 generic collections relate to the non-generic...

Author: Krzysztof Cwalina Date: 09/23/2005

Workflow Application Model

I just found a very interesting blog written by Dave Green (an architect of the Windows Workflow...

Author: Krzysztof Cwalina Date: 09/22/2005

Value Type EventArgs

I just wanted to blog about some interesting API design discussion we had recently. We discussed...

Author: Krzysztof Cwalina Date: 09/21/2005

Tracing APIs in .NET Framework 2.0

I found a very encouraging post about the new tracing APIs that we added to .NET Framework 2.0....

Author: Krzysztof Cwalina Date: 09/20/2005

The Role of the API designer: Design what the user needs

Since I have been preparing for the PDC and finishing the book, I neglected blogging. All ideas for...

Author: Krzysztof Cwalina Date: 09/20/2005

Framework Design Guidelines book went to print

I have just heard from the publisher that the Framework Design Guidelines book just went to print....

Author: Krzysztof Cwalina Date: 08/30/2005

List vs. ArrayList Performance

Rico just posted a new performance quiz where he compares performance of List<T> and ArrayList...

Author: Krzysztof Cwalina Date: 08/25/2005

Factories in APIs

Steven Clarke has an excellent post about using factories in APIs. The post explains why some...

Author: Krzysztof Cwalina Date: 06/28/2005

Book Progress and Progrssive APIs

After posting about the Scenario Driven Design and the Design Guidelines book we are working on, I...

Author: Krzysztof Cwalina Date: 06/10/2005

PowerCollections Beta Avaliable

The beta release of the PowerCollections library has been posted today. See...

Author: Krzysztof Cwalina Date: 06/03/2005

Should Exceptions Carry Error Code Information

Recently somebody asked me to clarify one of the exception guidelines. They were asking whether it's...

Author: Krzysztof Cwalina Date: 05/27/2005

Generic interfaces, IsReadOnly, IsFixedSize, and array

Peter Golde recently posted about the IsReadOnly and IsFixedSize change we made to the generic...

Author: Krzysztof Cwalina Date: 05/18/2005

API Usability Studies

I have received several comments asking what usability studies are and how to conduct them. Steven’s...

Author: Krzysztof Cwalina Date: 05/13/2005

Design Guidelines Book (The Principle of Scenario-Driven Design)

The Design Guidelines have been published on MSDN and as a part of the CLI ECMA specification...

Author: Krzysztof Cwalina Date: 05/05/2005

Design Guidelines Update: Dispose Pattern

Joe, just posted an update to the Design Guidelines describing issues relared to IDisposable,...

Author: Krzysztof Cwalina Date: 04/11/2005

Design Guidelines Update: Exception Throwing

Exception Throwing Exception throwing guidelines described in this section require a good definition...

Author: Krzysztof Cwalina Date: 03/16/2005

The reason why Collection, ReadOnlyCollection, and KeyedCollection<TKey,TValue> were moved to System.Collections.ObjectModel namespace

Several people asked me why Collection<T>, ReadOnlyCollection<T>, and...

Author: Krzysztof Cwalina Date: 03/15/2005

The reason why IEnumerator extens IDisposable

Lot’s of people asked me why IEnumerator<T> extends IDisposable. We did this to support some...

Author: Krzysztof Cwalina Date: 01/07/2005

Listing of Managed Processes

I just discovered a cool way of listing all processes that run managed code. using...

Author: Krzysztof Cwalina Date: 11/18/2004

Rationale for Generic Type Parameter Naming Guidelines

The recent type parameter naming guidelines update resulted in a very lively discussion. I thought I...

Author: Krzysztof Cwalina Date: 11/04/2004

I just noticed that the Power Collections project made it to the “Featured Sites” on GotDotNet. See...

Author: Krzysztof Cwalina Date: 11/03/2004

Design Guidelines Update: Names of Generic Type Parameters

After receiving lots of feedback from internal and external community (see here for example), we...

Author: Krzysztof Cwalina Date: 11/03/2004

IComaprer & IComparable Refactoring Proposal

We are exploring the possiblility of changing the design of IComparer<T> and...

Author: Krzysztof Cwalina Date: 10/27/2004

API Design Myth: Interface as Contract

I often hear people saying that interfaces specify contracts. I believe this is a dangerous myth....

Author: Krzysztof Cwalina Date: 10/24/2004

Design Guidelines Update: Factories vs. Constructors

Joe has recently spent some time beefing up the Factory vs. Constructor guidelines. This subject has...

Author: Krzysztof Cwalina Date: 10/11/2004

Design Guidelines Digest

Lots of people have asked me to create a short version of the Design Guidelines. Here it is. You can...

Author: Krzysztof Cwalina Date: 09/28/2004

Design Guidelines Update: Evolving Managed APIs

Kit George (member of the BCL team) blogged an update that we just did to our Design Guidelines. The...

Author: Krzysztof Cwalina Date: 09/07/2004

System.Collections.Generic Dictionary<K,V> Capacity, Hashing, and Collisions.

Somebody asked me a question how to set the initial capacity of...

Author: Krzysztof Cwalina Date: 08/06/2004

Delegate-Based APIs

Generics and Anonymous Methods/Delegates make up a powerful pair that can be used to create elegant...

Author: Krzysztof Cwalina Date: 06/22/2004

Design Guidelines Update: Optional Features Pattern

This is a relatively major update to the Design Guidelines. It describes and formalizes a very...

Author: Krzysztof Cwalina Date: 06/17/2004

Design Guidelines Update: Enum Design

This is a recent update to the Design Guidelines. One of the most interesting additions is the...

Author: Krzysztof Cwalina Date: 05/18/2004

Design Guidelines Update: Exposing XML Data

Small update to the Design Guidelines courtesy of the XML team. System.Xml Usage Exposing XML Data...

Author: Krzysztof Cwalina Date: 05/04/2004

Design Guidelines Update: Resources

We just added some new design guidelines related to naming and usage of resources. Enjoy. Resources...

Author: Krzysztof Cwalina Date: 04/28/2004

Why Design Guidelines?

Many assume that the Design Guidelines document is intended to be a repository of the best solutions...

Author: Krzysztof Cwalina Date: 03/31/2004

Design Guidelines Category

The .NET Framework documentation on MSDN has a section describing the design guidelines for managed...

Author: Krzysztof Cwalina Date: 03/15/2004

<Previous Next>