{"id":18057447,"url":"https://github.com/dotmorten/dotnetomdgenerator","last_synced_at":"2025-04-05T05:08:29.733Z","repository":{"id":46505350,"uuid":"125930317","full_name":"dotMorten/DotNetOMDGenerator","owner":"dotMorten","description":"A Roslyn-based cross-platform tool that generates an object model diagram from a set of C# source files or assemblies","archived":false,"fork":false,"pushed_at":"2022-04-05T16:34:03.000Z","size":1027,"stargazers_count":207,"open_issues_count":6,"forks_count":19,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-03-29T04:11:15.586Z","etag":null,"topics":["analyzer","cross-platform","csharp","dotnet","model-diagram","object-model","object-model-diagram","roslyn","tool"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotMorten.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-03-19T22:49:55.000Z","updated_at":"2025-02-12T07:51:08.000Z","dependencies_parsed_at":"2022-08-31T11:40:39.786Z","dependency_job_id":null,"html_url":"https://github.com/dotMorten/DotNetOMDGenerator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotMorten%2FDotNetOMDGenerator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotMorten%2FDotNetOMDGenerator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotMorten%2FDotNetOMDGenerator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotMorten%2FDotNetOMDGenerator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotMorten","download_url":"https://codeload.github.com/dotMorten/DotNetOMDGenerator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247289428,"owners_count":20914464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analyzer","cross-platform","csharp","dotnet","model-diagram","object-model","object-model-diagram","roslyn","tool"],"created_at":"2024-10-31T02:07:46.443Z","updated_at":"2025-04-05T05:08:29.704Z","avatar_url":"https://github.com/dotMorten.png","language":"C#","funding_links":["https://github.com/sponsors/dotMorten"],"categories":[],"sub_categories":[],"readme":"# .NET Object Model Diagram Generator\n\nA cross-platform Roslyn-based tool that generates an object model diagram of a set of C# source files and/or .NET assemblies\n\n## Sponsoring\n\nIf you like this library and use it a lot, consider sponsoring me. Anything helps and encourages me to keep going.\n\nSee here for details: https://github.com/sponsors/dotMorten\n\n\n### Install\n\nRun the following command from commandline (requires .NET Core 2.1 installed):\n```\ndotnet tool install --global dotMorten.OmdGenerator\n```\n\n\n### Usage:\n```\ngenerateomd /source=[source folder] /compareSource=[oldSourceFolder] /preprocessors=[defines] /format=[html|image] /showPrivate /showInternal\n\nRequired parameters:\n  source            Specifies the folder of source files to include for the object model.\n                    Separate with ; for multiple folders\nor\n  assemblies        Specifies a set of assemblies to include for the object model.\n                    Separate with ; for multiple assemblies, or use wildcards\n\t\t\t\t\nOptional parameters:\n  compareSource     Specifies a folder of old source to compare and generate a diff model\n                    This can be useful for finding API changes or compare branches\n  compareAssemblies Specifies a set of old assemblies to compare and generate a adiff model.\n                    Separate with; for multiple assemblies, or use wildcards\n  format            Format to generate: \n                       'html' a single html output (html is default)\n                       'md' for markdown you can copy-paste to for instance GitHub.\n\t\t       Specify multiple with a semicolon seperator, and use an output filename without extension\n  preprocessors     Define a set of preprocessors values. Use ; to separate multiple\n  exclude           Defines one or more strings that can't be part of the path Ie '*/Samples/*;*/UnitTests/*'\n                    (use forward slash for folder separators)\n  regexfilter       Defines a regular expression for filtering on full file names in the source\n  showPrivate       Show private members (default is false)\n  showInternal      Show internal members (default is false)\n  output            Filename to write the output to (extension is optional, but exclude the extension if you specify multiple formats)\n```\n\n\n### NuGet\nAs an alternative you can also reference a [NuGet package](https://www.nuget.org/packages/dotMorten.OmdGenerator/) to your class library, and set up a post-build script to generate an Object Model Diagram HTML file:\n\n```\nInstall-Package dotMorten.OmdGenerator \n```\n\nAdd the following to your project:\n```xml\n  \u003cTarget Name=\"GenerateObjectModel\" AfterTargets=\"Compile\"\u003e\n    \u003cExec Command=\"dotnet \u0026quot;$(DotNetOMDGeneratorToolPath)\u0026quot; /source=\u0026quot;@(Compile)\u0026quot; /preprocessors=\u0026quot;$(DefineConstants)\u0026quot; /output=\u0026quot;$(OutputPath)$(TargetName)\u0026quot;\" WorkingDirectory=\"$(ProjectDir)\" /\u003e\n  \u003c/Target\u003e\n \n```\n\n\nAn example of a generated output for all of .NET Core can be found [here](http://www.sharpgis.net/Tests/corefx.html).\n\nIt 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](http://www.sharpgis.net/Tests/corefx_new.html).\n\n[![Screenshot](Screenshot.png)](http://www.sharpgis.net/Tests/corefx.html)\n\n\n### Examples\n\nGenerate OMD for .NET Core FX source code, and ignore ref and test folders:\n```\ngenerateomd /source=c:\\github\\dotnet\\corefx\\src /exclude=\"*/ref/*;*/tests/*;*/perftests/*\"\n```\n\nCompare .NET CoreFX Master with v2.0.0 repo branches directly from their Github zipped downloads:\n\n```\ngenerateomd /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/*\"\n```\n\nWhat's new in Xamarin.Forms? Compare assemblies from the nuget cache:\n```\ngenerateomd /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\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotmorten%2Fdotnetomdgenerator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotmorten%2Fdotnetomdgenerator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotmorten%2Fdotnetomdgenerator/lists"}