This repo includes several documents that explain both high-level and low-level concepts about the .NET runtime. These are very useful for contributors, to get context that can be very difficult to acquire from just reading code.
.NET Core is a self-contained .NET runtime and framework that implements ECMA 335. It can be (and has been) ported to multiple architectures and platforms. It supports a variety of installation options, having no specific deployment requirements itself.
- Developer Guide
- Project priorities
- Contributing to .NET Core
- Contributing Workflow
- Performance Guidelines
- Garbage Collector Guidelines
- Adding new public APIs to mscorlib
- Project NuGet Dependencies
- CLR Coding Guide
- CLR JIT Coding Conventions
- Cross Platform Performance and Eventing Design
- Adding New Events to the VM
- Building CoreCLR on FreeBSD
- Building CoreCLR on Linux
- Building CoreCLR on OS X
- Building CoreCLR on Windows
- Debugging CoreCLR
- Testing Changes on Windows
- Testing Changes on Linux, OS X, and FreeBSD
- Testing with CoreFX
- Performance Tracing on Windows
- Performance Tracing on Linux
- Creating native images
- Book of the Runtime FAQ
- Introduction to the Common Language Runtime
- Garbage Collection Design
- Threading
- RyuJIT Overview
- Type System
- Type Loader
- Method Descriptor
- Virtual Stub Dispatch
- Stack Walking
- Mscorlib and Calling Into the Runtime
- Data Access Component (DAC) Notes
- Profiling
- Implementing Profilability
- What Every Dev needs to Know About Exceptions in the Runtime
- ReadyToRun Overview
- CLR ABI