All Projects → dotMorten → Dotnetomdgenerator

dotMorten / Dotnetomdgenerator

Licence: apache-2.0
A Roslyn-based cross-platform tool that generates an object model diagram from a set of C# source files or assemblies

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Dotnetomdgenerator

Proji
A powerful cross-platform CLI project templating tool.
Stars: ✭ 156 (-2.5%)
Mutual labels:  cross-platform, tool
Cometary
Roslyn extensions, with a touch of meta-programming.
Stars: ✭ 31 (-80.62%)
Mutual labels:  roslyn, analyzer
Meziantou.analyzer
A Roslyn analyzer to enforce some good practices in C#.
Stars: ✭ 189 (+18.13%)
Mutual labels:  roslyn, analyzer
Seriloganalyzer
Roslyn-based analysis for code using the Serilog logging library. Checks for common mistakes and usage problems.
Stars: ✭ 214 (+33.75%)
Mutual labels:  roslyn, analyzer
Seqkit
A cross-platform and ultrafast toolkit for FASTA/Q file manipulation in Golang
Stars: ✭ 607 (+279.38%)
Mutual labels:  cross-platform, tool
Uno
Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
Stars: ✭ 6,029 (+3668.13%)
Mutual labels:  roslyn, cross-platform
Analyzers
C# code analyzers
Stars: ✭ 18 (-88.75%)
Mutual labels:  roslyn, analyzer
Dart Code Metrics
Software analytics tool that helps developers analyse and improve software quality.
Stars: ✭ 96 (-40%)
Mutual labels:  tool, analyzer
Csvtk
A cross-platform, efficient and practical CSV/TSV toolkit in Golang
Stars: ✭ 566 (+253.75%)
Mutual labels:  cross-platform, tool
Security Code Scan
Vulnerability Patterns Detector for C# and VB.NET
Stars: ✭ 550 (+243.75%)
Mutual labels:  roslyn, analyzer
Roslynpad
A cross-platform C# editor based on Roslyn and AvalonEdit
Stars: ✭ 1,310 (+718.75%)
Mutual labels:  roslyn, cross-platform
Imguifontstudio
Font Helper Gui Tool for programming
Stars: ✭ 149 (-6.87%)
Mutual labels:  cross-platform, tool
Abot
Cross Platform C# web crawler framework built for speed and flexibility. Please star this project! +1.
Stars: ✭ 1,961 (+1125.63%)
Mutual labels:  cross-platform
Bindertool
Dark Souls II / Dark Souls III / Bloodborne bdt, bhd, bnd, dcx, tpf, fmg and param unpacking tool
Stars: ✭ 157 (-1.87%)
Mutual labels:  tool
Crosswindow
💻📱 A cross platform system abstraction library written in C++ for managing windows and performing OS tasks.
Stars: ✭ 155 (-3.12%)
Mutual labels:  cross-platform
Fselect
Find files with SQL-like queries
Stars: ✭ 3,103 (+1839.38%)
Mutual labels:  tool
Elasticsearch Analysis Ik
The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized dictionary.
Stars: ✭ 13,078 (+8073.75%)
Mutual labels:  analyzer
Abandon
😌 Simple and Robust Accounting
Stars: ✭ 155 (-3.12%)
Mutual labels:  cross-platform
Cs2cpp
C# to C++ transpiler (Cs2Cpp) (Powered by Roslyn)
Stars: ✭ 155 (-3.12%)
Mutual labels:  roslyn
Godot Texture Painter
A GPU-accelerated texture painter written in Godot 3.0
Stars: ✭ 155 (-3.12%)
Mutual labels:  tool

.NET Object Model Diagram Generator

A cross-platform Roslyn-based tool that generates an object model diagram of a set of C# source files and/or .NET assemblies

Sponsoring

If you like this library and use it a lot, consider sponsoring me. Anything helps and encourages me to keep going.

See here for details: https://github.com/sponsors/dotMorten

Install

Run the following command from commandline (requires .NET Core 2.1 installed):

dotnet tool install --global dotMorten.OmdGenerator

Usage:

generateomd /source=[source folder] /compareSource=[oldSourceFolder] /preprocessors=[defines] /format=[html|image] /showPrivate /showInternal

Required parameters:
  source            Specifies the folder of source files to include for the object model.
                    Separate with ; for multiple folders
or
  assemblies        Specifies a set of assemblies to include for the object model.
                    Separate with ; for multiple assemblies, or use wildcards
				
Optional parameters:
  compareSource     Specifies a folder of old source to compare and generate a diff model
                    This can be useful for finding API changes or compare branches
  compareAssemblies Specifies a set of old assemblies to compare and generate a adiff model.
                    Separate with; for multiple assemblies, or use wildcards
  format            Format to generate: 
                       'html' a single html output (html is default)
                       'md' for markdown you can copy-paste to for instance GitHub.
		       Specify multiple with a semicolon seperator, and use an output filename without extension
  preprocessors     Define a set of preprocessors values. Use ; to separate multiple
  exclude           Defines one or more strings that can't be part of the path Ie '*/Samples/*;*/UnitTests/*'
                    (use forward slash for folder separators)
  regexfilter       Defines a regular expression for filtering on full file names in the source
  showPrivate       Show private members (default is false)
  showInternal      Show internal members (default is false)
  output            Filename to write the output to (extension is optional, but exclude the extension if you specify multiple formats)

NuGet

As an alternative you can also reference a NuGet package to your class library, and set up a post-build script to generate an Object Model Diagram HTML file:

Install-Package dotMorten.OmdGenerator 

Add the following to your project:

  <Target Name="GenerateObjectModel" AfterTargets="Compile">
    <Exec Command="dotnet &quot;$(DotNetOMDGeneratorToolPath)&quot; /source=&quot;@(Compile)&quot; /preprocessors=&quot;$(DefineConstants)&quot; /output=&quot;$(OutputPath)$(TargetName)&quot;" WorkingDirectory="$(ProjectDir)" />
  </Target>
 

An example of a generated output for all of .NET Core can be found here.

It can also be used to compare two folders (for instance two separate branches) and only show changes to the API. Here's an example of .NET CoreFX v2.0 vs Master.

Screenshot

Examples

Generate OMD for .NET Core FX source code, and ignore ref and test folders:

generateomd /source=c:\github\dotnet\corefx\src /exclude="*/ref/*;*/tests/*;*/perftests/*"

Compare .NET CoreFX Master with v2.0.0 repo branches directly from their Github zipped downloads:

generateomd /source=https://github.com/dotnet/corefx/archive/master.zip /compareSource=https://github.com/dotnet/corefx/archive/release/2.0.0.zip /exclude="*/ref/*;*/tests/*;*/perftests/*"

What's new in Xamarin.Forms? Compare assemblies from the nuget cache:

generateomd /assemblies=%USERPROFILE%\.nuget\packages\xamarin.forms\3.3.0.912540\lib\netstandard2.0\*.dll /compareAsssemblies=%USERPROFILE%\.nuget\packages\xamarin.forms\3.2.0.871581\lib\netstandard2.0\*.dll
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].