C#のソースコードからPlantUMLのクラス図を作成するツールのバージョンアップとVS Codeの拡張を公開しました!

PlantUmlClassDiagramGenerator v1.1.0

以前に作成してGitHubに公開していた、C#ソースコードからPlantUMLのクラス図を作成するツール「PlantUmlClassDiagramGenerator」にプルリクエストが来ていたので、 久しぶりにバージョンアップしました!

「.Net Core 化したよ!」というプルリクエストをもらったのをきっかけに、.Net Core global tools として公開しています。
Windows以外のプラットフォームでも.Net Core SDKが入っていれば動きます。インストールも超簡単なので、ぜひお試しを!

www.nuget.org

アップデートの内容

オブジェクト間の関連を、プロパティ、フィールドの参照から作るようにしました。

組み込み型以外のフィールド、プロパティが以下の様に「関連」(A --> B)として作成されます。
また、フィールド、プロパティが初期化子で初期さされている場合は「集約」(A o-> B)として作成されます。

class ClassA{
    public IList<string> Strings{get;} = new List<string>();
    public Type1 Prop1{get;set;}
    public Type2 field1;
}

class Type1 {
    public int value1{get;set;}
}

class Type2{
    public string string1{get;set;}
    public ExternalType Prop2 {get;set;}
}
  • PlantUML
@startuml
class ClassA {
}
class Type1 {
    + value1 : int <<get>> <<set>>
}
class Type2 {
    + string1 : string <<get>> <<set>>
}
class "IList`1"<T> {
}
ClassA o-> "Strings<string>" "IList`1"
ClassA --> "Prop1" Type1
ClassA --> "field1" Type2
Type2 --> "Prop2" ExternalType
@enduml

f:id:pierre3:20190303222201p:plain
Association.png

この機能はコマンドライン引数に 「-createAssociation」スイッチを追加することで有効になります。表示するオブジェクト数が多い場合はごちゃごちゃしすぎるのでOFFにした方が良いかもしれません。

Visual Studio Code 拡張機能

ついでに、PlantUmlClassDiagramGeneratorを実行できるVisual Studio Code拡張機能を作りました! 単純にコマンドパレットから実行するだけなのですが、VS CodeにはPlantUMLをプレビュー表示できる拡張機能も公開されており、合わせて活用することでVS CodeによるC#の開発が捗ること間違いないしです!

marketplace.visualstudio.com