.NET Compiler Platform SDK

コンパイラでは、コードの構文とセマンティクスを検証するように、アプリケーション コードの詳細なモデルをビルドします。 このモデルを使用して、ソース コードから実行可能な出力をビルドします。 .NET Compiler Platform SDK では、このモデルへのアクセスが提供されます。 Microsoft では、生産性を向上させるために、IntelliSense、リファクタリング、インテリジェントな名前の変更、"すべての参照の検索"、"定義へ移動" などの統合開発環境 (IDE) 機能をますます使用するようになっています。 コードの品質を向上させるためにコード分析ツールを使用し、アプリケーションの構築に役立てるためにコード ジェネレーターを使用します。 これらのツールがスマートになったので、アプリケーション コードを処理するときに、コンパイラのみが作成するモデルにますますツールがアクセスする必要が生じます。 これが Roslyn API の主要な目的です。不透明なボックスを開いて、ツールとエンド ユーザーが豊富な情報コンパイラを共有することを許可するためにこのコードがあります。 コンパイラは Roslyn の使用により、ソース コード イン、オブジェクト コード アウトの曖昧なトランスレーターではなく、次のようなプラットフォームになります。ツールとアプリケーションのコード関連のタスクで使用できる API。

.NET Compiler Platform SDK の概念

.NET Compiler Platform SDK は、コードにフォーカスされたツールとアプリケーションの作成における参入障壁を劇的に低くします。 これにより、メタプログラミング、コードの生成と変換、C# と Visual Basic 言語の対話型の使用、ドメイン固有の言語での C# と Visual Basic の埋め込みなどの領域で、多くのイノベーションの機会が生み出されます。

.NET Compiler Platform SDK を使用すると、コードの誤りを見つけて修正する "アナライザー" と "コード修正機能" を構築できます。 "アナライザー" によって構文 (コードの構造) とセマンティクスが把握され、修正する必要がある使用方法が検出されます。 "コード修正機能" では、アナライザーまたはコンパイラ診断によって検出されたコードの誤りに対処するための 1 つまたは複数の修正方法が提案されます。 通常、アナライザーと関連付けられているコード修正は、1 つのプロジェクトにまとめてパッケージ化されます。

アナライザーとコード修正機能では、スタティック分析を使用してコードを理解します。 コードを実行したり、その他のテストのメリットを提供したりすることはありません。 ただし、バグ、保守性の低いコード、または標準ガイドライン違反につながることが多い使用方法を指摘することができます。

アナライザーとコード修正機能に加えて、.NET Compiler Platform SDK では "コード リファクタリング" を構築することもできます。 また、C# または Visual Basic のコードベースの調査と理解を可能にする API のセットも 1 つ用意されています。 この単一のコードベースを使用できるため、.NET Compiler Platform SDK によって提供される構文と意味の分析 API を利用して、簡単にアナライザーとコード修正機能を記述できます。 コンパイラによって行う分析を何度も繰り返している大規模なタスクから解放されると、プロジェクトやライブラリの一般的なコーディング エラーの検出と修正という、より集中したタスクに専念することができます。

小さな利点として、独自のプロジェクトでコード解析機能を記述するよりも、Visual Studio で読み込んだほうがアナライザーとコード修正機能が小さくなり、使用するメモリがはるかに少なくなります。 コンパイラと Visual Studio とで使用される同じクラスを利用して、独自の静的分析ツールを作成できます。 つまり、チームは IDE のパフォーマンスに顕著な影響をあたえることなく、アナライザーとコード修正機能を使用できるということです。

アナライザーとコード修正機能の記述には、3 つの主なシナリオがあります。

  1. チームのコーディング標準を適用する
  2. ライブラリ パッケージと共にガイダンスを提供する
  3. 一般的なガイダンスを提供する

チームのコーディング標準を適用する

多くのチームには、他のチーム メンバーとのコード レビューを介して適用されたコーディング標準があります。 アナライザーとコード修正を使用すると、このプロセスの効率をさらに高めることができます。 開発者がチームの他のユーザーと作業を共有するときに、コード レビューが行われます。 開発者はコメントを受け取る前に、新機能を完成させるために必要な投資を常に行うことになります。 チームの慣行に合わない習慣を徹底するには、数週間かかる場合があります。

開発者がコードを記述すると同時にアナライザーは実行されます。 開発者は、すぐにガイダンスに従うように促す即時フィードバックを受け取ります。 開発者はプロトタイプの作成を始めるとすぐに、準拠したコードを記述する習慣を身に付けます。 そのコードが人間によるコードレビューできるようになるときには、すべての標準的なガイダンスが適用されています。

チームは、チームのコーディング規約に違反している一般的な規約を探すアナライザーとコード修正機能をビルドできます。 これらは標準を適用するために、各開発者のマシンにインストールできます。

ヒント

独自のアナライザーを構築する前に、組み込みのものを確認してください。 詳細については、コード スタイル規則に関する記事を参照してください。

ライブラリ パッケージと共にガイダンスを提供する

NuGet には .NET 開発者が使用できる豊富なライブラリがあります。 それらは Microsoft から提供されたり、サード パーティの会社から提供されたり、コミュニティ メンバーやボランティアから提供されたものです。 開発者がこれらのライブラリを活用すると、ライブラリはより多く導入され、さらによいレビューを得ることができます。

ドキュメントの提供のほか、ライブラリの一般的な誤用を見つけて修正するアナライザーとコード修正を提供できます。 これらの迅速な修正は、開発者が早く成功するために役立ちます。

NuGet 上の自分のライブラリを使用して、アナライザーとコード修正をパッケージ化することができます。 このシナリオでは、お客様の NuGet パッケージをインストールする開発者もすべて、このアナライザー パッケージをインストールします。 お客様のライブラリを使用しているすべての開発者が、誤りや修正案への即時フィードバックの形式で、お客様のチームからガイダンスをすぐに受け取ります。

一般的なガイダンスを提供する

.NET 開発者コミュニティによって、うまく機能するパターンと避けた方がよいパターンが経験を通じて発見されています。 数人のコミュニティ メンバーが、推奨されるパターンを適用するアナライザーを作成しています。 理解を深めると、常に新しいアイデアの余地が生まれます。

これらのアナライザーは、Visual Studio Marketplace にアップロードしたり、Visual Studio を使用して開発者がダウンロードしたりすることができます。 言語とプラットフォームの初心者の方は承認済みのプラクティスをすばやく学習し、.NET 体験で生産性を早く向上させることができます。 これらが広く使われるようになると、コミュニティがこれらのプラクティスを導入します。

次の手順

.NET Compiler Platform SDK には、コードの生成、分析、リファクタリングを行うために、最新の言語オブジェクト モデルが含まれています。 このセクションでは、.NET Compiler Platform SDK の概念的な概要を示します。 詳細については、クイックスタート、サンプル、チュートリアルのセクションで確認できます。

.NET Compiler Platform SDK の概念の詳細については、次の 5 つのトピックを参照してください。

まず .NET Compiler Platform SDK をインストールする必要があります。

インストール手順 - Visual Studio インストーラー

Visual Studio インストーラー.NET Compiler Platform SDK を見つけるには、以下の 2 つの異なる方法があります。

Visual Studio インストーラーを使用したインストール - ワークロード ビュー

.NET Compiler Platform SDK は、Visual Studio 拡張機能の開発ワークロードの一部として自動的に選択されません。 省略可能なコンポーネントとして選択する必要があります。

  1. Visual Studio インストーラーを実行します。
  2. [変更] を選択します
  3. Visual Studio 拡張機能の開発ワークロードを確認します。
  4. 概要ツリーの [Visual Studio 拡張機能の開発] ノードを開きます。
  5. [.NET Compiler Platform SDK] のチェック ボックスをオンにします。 省略可能なコンポーネントの最後に表示されます。

また、必要に応じて、DGML エディターのビジュアライザーでグラフを表示します。

  1. 概要ツリーの [個別のコンポーネント] ノードを開きます。
  2. [DGML エディター] のチェック ボックスをオンにします。

Visual Studio インストーラーを使用したインストール - [個別のコンポーネント] タブ

  1. Visual Studio インストーラーを実行します。
  2. [変更] を選択します
  3. [個別のコンポーネント] タブを選択します。
  4. [.NET Compiler Platform SDK] のチェック ボックスをオンにします。 [コンパイラ、ビルド ツール、およびランタイム] セクションの上部に表示されます。

また、必要に応じて、DGML エディターのビジュアライザーでグラフを表示します。

  1. [DGML エディター] チェック ボックスをオンにします。 [コード ツール] セクションに表示されます。