> For the complete documentation index, see [llms.txt](https://dailyjournal.gitbook.io/notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dailyjournal.gitbook.io/notes/multi-platform-frameworks/.net/.net-framework.md).

# .NET Framework

**.NET Framework** is a software development framework and is the original implementation of .NET. It supports building and running websites, services, desktop apps, and more on Windows.

{% embed url="<https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet-framework>" %}

{% embed url="<https://learn.microsoft.com/en-us/dotnet/framework/>" %}

## Code contracts <a href="#code-contracts-net-framework" id="code-contracts-net-framework"></a>

Code contracts provide a way to specify preconditions, postconditions, and object invariants in .NET Framework code.&#x20;

* Preconditions are requirements that must be met when entering a method or property.&#x20;
* Postconditions describe expectations at the time the method or property code exits.&#x20;
* Object invariants describe the expected state for a class that is in a good state.

{% hint style="info" %}
Code contracts aren't supported in .NET 5+ (including .NET Core versions). Consider using **Nullable reference types** instead.
{% endhint %}
