Joseph Albahari
Home Contact

Welcome to

C# 12 in a Nutshell

It's time once more for a refresh! C# 12 in a Nutshell builds on the acclaimed previous editions, thoroughly updated for C# 12 and .NET.

LINQPad - more than 4 million downloads

The popular interactive .NET scratchpad keeps getting better: LINQPad now supports C# 12 and .NET 8. Put an end to those hundreds of Visual Studio Console projects cluttering your source folder, and join the revolution of LINQPad scripters and incremental developers!


See videos and abstracts of my past and upcoming conference talks.

Threading in C#

An extensive article on multithreading in C#. This tackles difficult issues such as thread safety, when to use Abort, Wait Handles vs Wait and Pulse, the implications of Apartment Threading in Windows Forms, using Thread Pooling, Synchronization Contexts, Memory Barriers and non-blocking synchronization constructs. Full Contents

Query Express (legacy)

For those not ready for LINQPad, this simple and free 100KB database query tool written in C# lets you run SQL interactively on SQL Server, Oracle or an OLE-DB compliant databases. It includes an object browser, text/grid results, saving to XML/CSV format, and support for batching via the 'GO' keyword. No installation required and full source code available. More on Query Express...

10 LINQ Myths

The ten most common misconceptions, and how they set people awry.

More Articles

Dynamically building LINQ expression predicates This describes a simple and elegant solution to the problem of dynamically composing Expression<> based predicates in LINQ.

Speeding up LINQ to SQL Three ways to squeeze the maximum performance out of this technology.

Value Types vs Reference Types A tutorial explaining how value and reference types work in C# and .NET. This covers the differences in the way objects are created and disposed, how memory allocation works, and common traps.


© 2003-2024 Joseph Albahari