Threading in C#: In-Depth Article
Extensive article on threading in C#. Covers such topics as Thread Pooling, safe use of Abort, when and how to use Synchronization Contexts, Wait Handles vs Wait and Pulse, Threading vs System Timers, implications of Memory Barriers and volatility, uses for Local Storage, subclassing BackgroundWorker. Free.
LINQ Into Microsoft's New Query Capabilities
Query features have long been a cornerstone of database applications, but with LINQ, Microsoft introduces query language features right inside of C# and VB.NET.
Generic Singleton Pattern using Reflection in C#
Use one generic class to create all your Singletons.
.NET Matters: ThreadStart, and More
This month Stephen Toub answers readers questions that include: How do I pass data to a new thread? Why can't I convert from "ref string" to "ref object"? And what's the difference between EventWaitHandle, AutoResetEvent and ManualResetEvent?
Valil.Chess
A chess game written using Visual C# 2005 Express Edition.
ActionList for .NET 2.0
An implementation of Borland's ActionList
free C# Tutorial Starter Kit
The DevelopMentor C# Tutorial Starter Kit delivers a comprehensive tour of the C# language using a sequence of modules, each containing a topic, exercises, and a quiz, with both the "before" and "after" versions of each exercise which allow you to compare your coding solution to the provided solution. It uses a sophisticated, multi-project "starter kit" which includes code samples that compile, documentation, and other helpful resources that help you to work through the C# tutorial, either online or off-line, at your own pace using Visual Studio 2005.
Implementing Patterns with Generics
It's been a few months since Visual Studio 2005 was released. In that time you've probably seen and read quite a bit about generics. Unfortunately all those articles and presentations can leave you with the impression that generics are useful only in the context of collections (List, Dictionary<k,v>, Queue, and so on).
It's true that many of the most common uses of generics involve collections. But limiting your use to collections will cause you to miss many of the opportunities for creating components that you can reuse in even more ways. In fact, many idioms where developers commonly copy, paste, and modify source code can be solved with generics. You should look for these opportunities, because you'll have more functionality in a smaller code base.
Filtering properties in a PropertyGrid
This articles describes some easy ways to filter the properties displayed in a Microsoft PropertyGrid.
math / function / boolean /string expression evaluator
C# .NET assembly that executes numeric, date, string, boolean, comparison, etc. expressions.