Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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