Welcome About .NET .NET Products C# Guide Tutorials Console Application REST client Working with LINQ Microservices hosted in Docker 🔧 Tour of C# What's new in C# 6 🔧 C# Concepts 🔧 C# Type system Properties Indexers 🔧 Generics Iterators 🔧 Language Integrated Query (LINQ) Delegates & events Introduction to Delegates System.Delegate and the delegate keyword Strongly Typed Delegates Common Patterns for Delegates Introduction to Events The .NET Event Pattern The Updated .NET Event Pattern Distinguishing Delegates and Events 🔧 Parallel programming Asynchronous programming 🔧 Lambda Expressions Expression Trees Expression Trees Explained Framework Types Supporting Expression Trees Executing Expressions Interpreting Expressions Building Expressions Translating Expressions Summary 🔧 Native interoperability 🔧 Reflection & code generation 🔧 Documenting your code 🔧 Syntax Reference F# Guide F# Learning Resources F# Language Reference Visual F# Development Portal Getting started with .NET Core Asynchronous programming .NET Standard .NET Standard Library Frameworks What is "managed code"? Common Language Runtime (CLR) Framework Libraries .NET Class libraries Portability Analyzer Handling and throwing exceptions .NET Assembly File Format Garbage Collection Generic types Delegates and lambdas LINQ Common Type System & Common Language Specification Asynchronous programming Asynchronous programming in depth Native interoperability Collections and Data Structures Selecting a Collection Class Commonly Used Collection Types When to Use Generic Collections Comparisons and Sorts Within Collections Sorted Collection Types Hashtable and Dictionary Collection Types Thread-Safe Collections BlockingCollection Overview When to Use a Thread-Safe Collection How to: Add and Remove Items from a ConcurrentDictionary How to: Add and Take Items Individually from a BlockingCollection How to: Add Bounding and Blocking Functionality to a Collection How to: Use ForEach to Remove Items in a BlockingCollection How to: Use Arrays of Blocking Collections in a Pipeline How to: Create an Object Pool by Using a ConcurrentBag Numerics in .NET Core .NET Core Guide Getting started Tutorials Getting started with .NET Core on Windows Getting started with .NET Core on macOS Getting started with .NET Core on Windows/Linux/macOS using the command line Developing Libraries with Cross Platform Tools Developing ASP.NET Core applications How to Manage Package Dependency Versions for .NET Core 1.0 Using MSBuild to build .NET Core projects App Types Packages, Metapackages and Frameworks Deploying 🔧 Deploying Applications Creating a NuGet Package with Cross Platform Tools Unit Testing Unit Testing with dotnet test Releases Servicing Runtime IDentifier catalog .NET Core Tools Telemetry Extensibility Model Test communication protocol Continuous Integration dotnet dotnet-new dotnet-restore dotnet-run dotnet-build dotnet-test dotnet-pack dotnet-publish dotnet-install-script project.json global.json Porting from .NET Framework Organizing projects for .NET Core Analyzing third-party dependencies Porting libraries 🔧 NuGet packages Migrating from DNX Samples and Tutorials