dotnet
This repo is the official home of .NET on GitHub. It's a great starting point to find many .NET OSS projects from Microsoft and the community, including many that are part of the .NET Foundation.
Top Related Projects
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
Mono open source ECMA CLI, C# and .NET implementation.
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
.NET news, announcements, release notes, and more!
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Quick Overview
The microsoft/dotnet repository on GitHub is the official home for .NET on GitHub. It serves as a central hub for .NET-related projects, documentation, and community engagement. This repository provides information about .NET, its roadmap, and links to various .NET-related repositories and resources.
Pros
- Centralized location for .NET-related information and resources
- Regularly updated with the latest .NET news and developments
- Provides easy access to official .NET documentation and community guidelines
- Offers a clear overview of the .NET ecosystem and its components
Cons
- Not a code repository itself, which may confuse some users expecting to find source code
- Can be overwhelming for newcomers due to the vast amount of information and links
- May require frequent visits to stay up-to-date with the rapidly evolving .NET ecosystem
- Some linked repositories or projects may be in different stages of development or maintenance
Getting Started
To get started with .NET using the information from this repository:
- Visit the microsoft/dotnet repository on GitHub.
- Read the README.md file for an overview of .NET and available resources.
- Explore the "Getting Started" section in the README for links to installation guides and tutorials.
- Check out the "Projects" section to find specific .NET-related repositories that interest you.
- Join the .NET community by following the guidelines in the "Community" section.
Note: This repository does not contain code directly, but rather serves as a gateway to various .NET-related projects and resources.
Competitor Comparisons
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
Pros of runtime
- More focused and specific to the .NET runtime implementation
- Generally more active development and frequent updates
- Deeper level of technical discussions and contributions
Cons of runtime
- Steeper learning curve for newcomers to .NET development
- Less comprehensive documentation for general .NET usage
- Narrower scope, focusing primarily on runtime components
Code Comparison
runtime:
public static int Main(string[] args)
{
Console.WriteLine("Hello World!");
return 0;
}
dotnet:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
The runtime example shows a more low-level implementation, while the dotnet example demonstrates a higher-level, more user-friendly approach typical for general .NET development.
Summary
runtime is ideal for developers working on the core .NET implementation, offering in-depth access to runtime components. dotnet, on the other hand, provides a broader overview of .NET development, making it more suitable for general-purpose .NET programming and learning. Choose runtime for deep runtime work, and dotnet for general .NET development and resources.
Mono open source ECMA CLI, C# and .NET implementation.
Pros of mono
- Longer history and more established codebase
- Broader platform support, including older systems
- More flexible licensing (MIT License)
Cons of mono
- Generally slower performance compared to .NET
- Less frequent updates and smaller development community
- Limited support for newer .NET features
Code Comparison
mono:
public class Example
{
public static void Main()
{
Console.WriteLine("Hello from Mono!");
}
}
dotnet:
using System;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello from .NET!");
}
}
The code examples are very similar, reflecting the shared C# language. However, dotnet typically uses more modern conventions and may offer additional features or optimizations not available in mono.
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Pros of aspnetcore
- More focused on web development, providing specialized tools and frameworks
- Faster release cycle for new features and improvements
- Deeper integration with modern web technologies and patterns
Cons of aspnetcore
- Narrower scope, less suitable for general-purpose .NET development
- Potentially steeper learning curve for developers new to ASP.NET
- May require additional dependencies for non-web-related tasks
Code Comparison
aspnetcore:
app.MapGet("/", () => "Hello World!");
app.MapPost("/api/data", (MyData data) => ProcessData(data));
app.Run();
dotnet:
Console.WriteLine("Hello World!");
var data = JsonSerializer.Deserialize<MyData>(jsonString);
ProcessData(data);
The aspnetcore example shows a typical web API setup, while the dotnet example demonstrates general-purpose .NET code. aspnetcore is more concise for web-specific tasks, but dotnet offers broader flexibility for various application types.
.NET news, announcements, release notes, and more!
Pros of core
- More focused on the .NET Core runtime and framework
- Generally more up-to-date with the latest .NET Core developments
- Cleaner repository structure, making it easier to navigate and contribute
Cons of core
- Less comprehensive documentation compared to dotnet
- Fewer resources for beginners and those transitioning from .NET Framework
- More specialized, potentially less suitable for general .NET development
Code Comparison
core:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, .NET Core!");
}
}
dotnet:
using System;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, .NET!");
}
}
}
The code examples are similar, with core using a more concise structure typical of .NET Core applications, while dotnet follows a more traditional .NET Framework approach with explicit namespace declaration.
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
Pros of Roslyn
- Focused specifically on the .NET compiler platform, providing deeper insights into language services
- More granular control over code analysis and compilation processes
- Extensive API for developing custom code analysis tools and language extensions
Cons of Roslyn
- Steeper learning curve due to its specialized nature
- Narrower scope compared to the broader .NET ecosystem coverage of dotnet
- May require more frequent updates to keep pace with language feature changes
Code Comparison
Roslyn (C# compiler API usage):
var tree = CSharpSyntaxTree.ParseText("class Program { static void Main() { } }");
var root = tree.GetRoot();
var classDeclaration = root.DescendantNodes().OfType<ClassDeclarationSyntax>().First();
Console.WriteLine(classDeclaration.Identifier.Text);
dotnet (general .NET usage):
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}
The Roslyn example demonstrates working with the compiler API to analyze code structure, while the dotnet example shows a typical .NET application entry point.
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Pros of MAUI
- Focused on cross-platform UI development for mobile and desktop
- Provides a unified framework for building native UIs across multiple platforms
- Offers a rich set of pre-built UI controls and layouts
Cons of MAUI
- More specialized and narrower in scope compared to the broader .NET ecosystem
- May have a steeper learning curve for developers new to cross-platform development
- Limited to UI-centric applications, not suitable for all types of .NET projects
Code Comparison
MAUI (UI-focused):
public class MainPage : ContentPage
{
public MainPage()
{
Content = new StackLayout
{
Children = { new Label { Text = "Hello, MAUI!" } }
};
}
}
.NET (General-purpose):
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, .NET!");
}
}
The MAUI example demonstrates UI creation, while the .NET example shows a basic console application, highlighting the different focus areas of each repository.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
.NET Home
This repository is a starting point to learn about and engage in .NET and .NET open source projects.
This repository is not an official .NET or .NET Framework support location, however, we will respond to issues filed here as best we can. Please file .NET product issues at main project repos below.
In this repository
- .NET Framework Release Notes
- .NET Framework Documentation
- .NET Open Source Developer Projects
- .NET Open Source Consumer Projects
- Free Services & Tools for Open Source .NET Projects
Please contribute to this repository via pull requests
Finding .NET Open Source Projects
Here are some excellent community-maintained lists of projects & libraries:
There are many projects that you can use and contribute to, some of which are listed below. Please do contribute to these projects!
.NET
- .NET (dotnet/core)
- .NET Aspire (dotnet/aspire)
- .NET MAUI (dotnet/maui)
- ASP.NET Core (dotnet/aspnetcore)
- C# (dotnet/csharplang)
- Entity Framework Core (dotnet/efcore)
- F# (dotnet/fsharp)
- ML.NET (dotnet/machinelearning)
- Roslyn Compiler Platform (dotnet/roslyn)
- Windows Forms (dotnet/winforms)
- WPF (dotnet/wpf)
.NET Docs
- .NET docs (dotnet/docs)
- .NET Aspire docs (dotnet/docs-aspire)
- .NET MAUI docs (dotnet/docs-maui)
- ASP.NET Core docs (dotnet/AspNetCore.Docs)
- Entity Framework docs (dotnet/EntityFramework.Docs)
.NET Framework
- .NET Framework docs (dotnet/docs)
- .NET Framework source code - read-only subset (microsoft/referencesource)
Xamarin
- Xamarin iOS + macOS (xamarin/xamarin-macios)
- Xamarin Android (xamarin/xamarin-android)
- Xamarin.Forms (xamarin/Xamarin.Forms)
- Mono Project
Community
Here is a short list of projects to check out:
There are additional templates available for dotnet new
. For more information, see Available templates for dotnet new
.NET Foundation
Many .NET open source projects are part of the .NET Foundation. Microsoft has contributed many projects, including ASP.NET Core and .NET Core. You may want to consider joining the .NET Foundation.
Check out the .NET Foundation Forums to see what others are talking about, or start a new discussion to ask a question or make a point.
License
This repository is licensed with the MIT license.
Top Related Projects
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
Mono open source ECMA CLI, C# and .NET implementation.
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
.NET news, announcements, release notes, and more!
The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
.NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot