I write books that help developers learn their tools thoroughly. I strongly believe that deep knowledge of the tools you use to create software will help you create better software.
I wrote Effective C#, now in its third edition. Click to see discussions,
and see the errata list. If you do find any new errata, please reach out through my Contact page.
I also wrote More Effective C#. Click to see discussions,
and see the errata. If you do find any new errata, please reach out through my Contact page.
I often write for different online properties. Here are links to my most recent publications:
I've also produced videos that help developers learn important topics in C# development. As with books, this is an important way to learn more about the tools you use to build software.
Join MVP and best-selling author Bill Wagner and Microsoft Principal Developer Evangelist Jennifer Marsman (named the "Techie whose innovation will have the biggest impact") for a demo-filled exploration of analyzers and code fixes. Examine nodes for poor practices, register fixes to correct mistakes, and learn to report errors and warnings with different levels of severity. Look at ways to express your designs in C#, and explore unit testing. Finally, hear about the different approaches to releasing your analyzer, including adding it to open source libraries.
I sat down with Seth Juarez to go over the new and exciting features in C# 6. We had a great discussion while at ThatConference about the features you can use now.
This video discusses many of the tools and processes that can help young companies develop professional quality software, with the necessary process, but avoiding too much extra ceremony that isn't yet necessary for a young company.
March 5th, Live Event. Microsoft Virtual Academy I'll be discussing new features in C# 6, along with Anthony Green. We'll go over what's new, and how using these features will help you become a more produtive developer. This event is live, but was recorded for later viewing.
The Async Fundamentals video highlights common misconceptions on async programming in C#. More importantly, it explains what you should do instead.
The C# Puzzlers video discusses many common misconceptions of how the language works. Try this 19 different puzzles and test your knowledge of C#. You will learn more about how your favorite language works by examining these different features.
You can download the examples from this video here.
Over the past few years, some of my conference talks have been recoreded and are available online:
Here are links to my upcoming talks, and recent talks that I've given:
What were they thinking?
Language design choices that seem wrong, until they don't
Let's spend an hour exploring some of the most controversial
language design choices in the C# language.
We're going to explain why each of these decisions were made.
We'll have some fun looking at where developers have concerns.
We'll explain why the language teams made the decisions they made. You can attend and spend the rest of the time explaining why they were still wrong.
Exploring Pattern Matching in C#
Pattern Matching is one of the new features coming in C# 7.
The ability to manage control flow using any property of an
object will change how you write code.
The new syntax enables new paradigms. In this session,
we'll spend an hour looking at the syntax enabled by pattern
matching. We'll start with the basics of the new syntax, and
then dive deep into how it can be used and mis-used. When we've
finished, you'll have great power at your fingertips. More importantly,
you'll know how to use it responsibly.
NET All the things!
I presented on cross-platform
.NET development using the tools and
libraries available in .NET Core. You
saw how to build applications using
C# and .NET using MacOS or Linux
distributions.
An introduction to C# 7
I provided an introduction to the
new features coming in the next release
of C# 7. Demos included Pattern Matching,
Tuples, Local Functions, ref returns and more.
Something C# 7 this way comes....
In Mechelen, I talked about the proposed
features in the next release of C#. These include
Improved Data Programming, Async Streams, Reliability,
and MetaProgramming. It's based on early research,
and it's a fun way to look at where the language
will be going.
Into the Matrix: Using the Roslyn APIs to analyze
and fix code... By writing more code.
I spoke on the topic of using the
Roslyn APIs to analyze and fix common code
practices.
Something C# 7 this way comes....
In London, I talked about the proposed
features in the next release of C#. These include
Improved Data Programming, Async Stream, Reliability,
and MetaProgramming. It's based on early research,
and it's a fun way to look at where the language
will be going.
Into the Matrix: Using the Roslyn APIs to analyze
and fix code... By writing more code.
I also spoke on the topic of using the
Roslyn APIs to analyze and fix common code
practices.