Awesome Lists

awesome-roslyn

by ironcev

awesome listpushed over 2 years ago

Curated list of awesome Roslyn books, tutorials, open-source projects, analyzers, code fixes, refactorings, and source generators

AI summary

Compiler platform guide

A curated collection of resources and tutorials for building and using the Roslyn compiler platform for C# and VB.NET languages.

stars
673
forks
59
watching
42
awesome lists
5
entries
56
View on GitHub

Embed the badge

Show how many awesome lists link to your project. The count updates automatically.

Awesome Lists badge
Markdown
[![Awesome Lists Badge](https://awesome.facts.dev/shield/ironcev/awesome-roslyn/links.svg)](https://awesome.facts.dev/awesome/ironcev/awesome-roslyn)
HTML
<a href="https://awesome.facts.dev/awesome/ironcev/awesome-roslyn"><img src="https://awesome.facts.dev/shield/ironcev/awesome-roslyn/links.svg" alt="Awesome Lists Badge" /></a>
Image URL
https://awesome.facts.dev/shield/ironcev/awesome-roslyn/links.svg

What's in the list

56 links in 8 sections, with live GitHub stats.activeno commit in 2y

Books

  • Roslyn Succinctly

    by Alessandro Del Sole and the perfect book to start with. Explains Roslyn APIs and afterward focuses on writing analyzers and refactorings

  • .NET Development Using the Compiler API

    Book by Jason Bock. Besides analyzers and refactorings, it also explains the scripting API and provides an interesting reflection on the future of the Compiler API

  • Roslyn Cookbook

    Book by Manish Vasani, a member of the Roslyn analyzers team. After covering analyzers, refactorings, and scripting in detail, the book goes in-depth explaining how to develop new C# language features and contribute to the Roslyn source code

Tutorials

  • Bridge

    C# to JavaScript transpiler. Write modern mobile and web apps in C# and run them anywhere in JavaScript

  • Code Converter

    C# to VB.NET and VB.NET to C# transpiler

  • CodeAnalysis.CSharp.PatternMatching

    Intuitive pattern matching for Roslyn syntax trees. Simplifies C# syntax and semantic analysis

  • CodeGeneration.Roslyn

    Roslyn-based Code Generation during a build with design-time support

  • dotnet-script

    Runs C# scripts from the .NET CLI, defines NuGet packages inline and edit/debugs them in VS Code

  • FlubuCore

    Cross platform build automation tool for building projects and executing deployment scripts using C# code

  • MirrorSharp

    Online C#, VB.NET, and F# code editor. Features code completion, method signature help, quick fixes, and diagnostics

  • OmniSharp

    Enables a cross platform .NET development in the editor of your choice. A family of open source projects, each with one goal: To enable a great .NET experience in your editor of choice

  • roslyn-linq-rewrite

    Compiles C# code by first rewriting the syntax trees of LINQ expressions using plain procedural code. This increases performance by minimizes heap allocations and dynamic dispatch

  • RoslynPad

    Cross-platform C# editor. Features code completion, method signature help, quick fixes, and diagnostics

  • RoslynQuoter

    Online tool that for a given C# program generates syntax tree API calls that construct syntax tree of that program

  • scriptcs

    Turns C# into a powerful scripting tool. Features C# REPL, installation of NuGet packages, and execution of scripts with a single line of code

  • Scripty

    Tool to use Roslyn-powered C# scripts for code generation. You can think of it as a scripted alternative to T4 templates

  • Sharpen

    Visual Studio extension that intelligently introduces new C# language features into your existing code base

  • SharpLab

    .NET code playground. Displays intermediate steps and results of code compilation. Shows the code as compiler sees it. Allows selecting different branches and versions of Roslyn. Runs C#, VB.NET, and F# code in the browser

  • Testura.Code

    Wrapper around the Roslyn API used for generation, saving, and compiling C# code. Provides methods and helpers to generate classes, methods, statements, and expressions

  • Uno SourceGenerator

    C# source code generator based on a project being built, using all of its syntactic and semantic model information

Open Source Analyzers, Code Fixes, and Refactorings

  • .NET Analyzers

    GitHub organization for the development of Roslyn analyzers. Various repositories within the organization cover analyzers for ASP.NET Core, WPF, IDisposable, usages of System.Reflection, etc

  • .NET Compiler Platform ("Roslyn") Analyzers

    Diagnostic analyzers developed by the Roslyn team. Initially developed to help flesh out the design and implementation of the static analysis APIs. The analyzers cover code quality, .NET Core, desktop .NET Framework, comments in code, and more

  • Code Cracker

    Analyzer library for C# and VB.NET. Offers diagnostics in many categories like performance, coding styles, as well as some basic refactorings

  • CSharpGuidelinesAnalyzer

    Reports diagnostics for C# coding guidelines ( )

  • ErrorProne.NET

    Set of analyzers and code fixes focusing on the correctness and performance of C# programs. Inspired with Google's

  • Mapping Generator

    Code fix that generates arbitrary complex object-object mappings. It recognizes out of the box a large number of scenarios where mappings are used. A design-time alternative to

  • Nullable.Extended

    Roslyn tools and analyzers to improve the experience when coding with nullable reference types

  • Refactoring Essentials for Visual Studio

    Refactorings, analyzers and code fixes for C# and VB.NET

  • Roslyn Clr Heap Allocation Analyzer

    C# heap allocation analyzer that can detect explicit and many implicit allocations like boxing, closures, implicit delegate creations, etc

  • Roslynator

    Collection of 190+ analyzers and 190+ refactorings for C#. Covers coding style, code readability and simplification, removing redundancies, fixing compiler errors, and many more

  • SonarC#

    Static code analyzer for C# language used as an extension for the SonarQube platform

  • VSDiagnostics

    Collection of code-quality analyzers. Covers usages of async methods, flags enums, best practices in exception handling as well as many other code-quality checks

Libraries and Frameworks for Testing Analyzers, Code Fixes, and Refactorings

  • Microsoft.CodeAnalysis.Testing

    Library for testing analyzers and code fixes with NUnit, xUnit and MSTest frameworks. A part of

  • RoslynTestKit

    Lightweight framework for writing unit tests for analyzers, code fixes, refactorings, and completion providers. It's unit testing framework agnostic

Source Generators

  • DpDtInject

    Proof-of-concept of a dependency injection container that transfers huge piece of resolving logic to the compilation stage. Offers additional compile-time safety and fast runtime resolution

  • Generator.Equals

    Automatically implements equality and hashing for classes and records. Supports different comparison strategies. Offers similar functionality like IL weaving-based

  • JsonSrcGen

    Reflection-free JSON serializer. Allows extremely fast JSON processing by generating reflection-free serializers at the compile time

  • Source Generator Playground

    Online application that lets you experiment with source generators. Perfect for learning and testing your ideas. Write your own source generator or learn from built-in examples and see the generated output

  • StrongInject

    Compile-time dependency injection container. Compile-time checked, reflection-free and runtime code generation free, thus fast and -friendly

  • StructPacker

    Low-level, lightweight and performance-focused serializer for C# struct types. Auto-generates C# serialization code to achieve peak runtime performance and efficiency

  • Svg to C# Source Generators

    SVG to C# compiler. Compiles SVG drawing markup to C# using as rendering engine

  • WrapperValueObject

    Creates boilerplate free wrappers around types. Especially useful for creating

Blog Posts and Articles

Talks

  • The Power of Roslyn

    Great talk by Kasey Uhlenhuth at NDC Oslo 2018 covering Roslyn essentials and APIs and tools for building code analyzers and fixes

More related projects

Add a GitHub project

Missing a project or an awesome list? Paste its GitHub URL and we fetch it right away.