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
Power Collections on GotDotNet Featured Sites
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