コンパイラは、そのコードの構文とセマンティクスを検証するアプリケーション コードの詳細なモデルを構築します。 このモデルを使用して、ソース コードから実行可能な出力をビルドします。 .NET コンパイラ プラットフォーム SDK は、このモデルへのアクセスを提供します。 ますます、IntelliSense、リファクタリング、インテリジェントな名前変更、"すべての参照の検索"、"定義に移動" などの統合開発環境 (IDE) 機能に依存して生産性を向上させます。 コードの品質を向上させるためにコード分析ツールと、アプリケーションの構築に役立つコード ジェネレーターに依存しています。 これらのツールがスマートになるにつれて、アプリケーション コードの処理時にコンパイラのみが作成するモデルの多くへのアクセスが必要になります。 これは Roslyn API の中心的な使命です。不透明なボックスを開き、ツールとエンド ユーザーが、コンパイラがコードに関する豊富な情報を共有できるようにします。 Roslyn を通じて、不透明なソース コードインおよびオブジェクト コードアウトトランスレーターになる代わりに、コンパイラはプラットフォームになります。ツールやアプリケーションのコード関連のタスクに使用できる API です。
.NET コンパイラ プラットフォーム 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 とセマンティック分析 API を利用することで、アナライザーとコード修正をより簡単に記述できます。 コンパイラによって実行される分析をレプリケートする大規模なタスクから解放され、プロジェクトまたはライブラリの一般的なコーディング エラーを見つけて修正する、より重点的なタスクに集中できます。
小さい利点は、プロジェクト内のコードを理解するために独自のコードベースを記述した場合よりも、Visual Studio に読み込まれるときにアナライザーとコード修正が小さくなり、メモリの使用量がはるかに少なくなるということです。 コンパイラと Visual Studio で使用されるのと同じクラスを利用することで、独自の静的分析ツールを作成できます。 つまり、チームは IDE のパフォーマンスに大きな影響を与えることなく、アナライザーとコード修正を使用できます。
アナライザーとコード修正を記述するための主なシナリオは 3 つあります。
チームのコーディング標準を適用する
多くのチームには、他のチーム メンバーとのコード レビューによって適用されるコーディング標準があります。 アナライザーとコード修正により、このプロセスの効率が大幅に向上します。 コード レビューは、開発者がチームの他のユーザーと作業を共有するときに発生します。 開発者は、コメントを受け取る前に新機能を完了するために必要なすべての時間を投資します。 開発者がチームのプラクティスと一致しない習慣を強化している間、数週間が経過する可能性があります。
アナライザーは、開発者がコードを記述する場合に実行されます。 開発者は、すぐにガイダンスに従うよう促すフィードバックをすぐに受け取ります。 開発者は、プロトタイプの作成を開始するとすぐに、準拠コードを記述する習慣を構築します。 この機能を人間が確認する準備ができたら、すべての標準ガイダンスが適用されています。
Teams は、チームのコーディングプラクティスに違反する最も一般的なプラクティスを探すアナライザーとコード修正を構築できます。 これらは、各開発者のコンピューターにインストールして、標準を適用できます。
ヒント
独自のアナライザーをビルドする前に、組み込みのアナライザーを確認してください。 詳細については、「 コード スタイルの規則」を参照してください。
ライブラリ パッケージにガイダンスを提供する
NuGet の .NET 開発者は、豊富なライブラリを使用できます。 これらの一部は Microsoft から、一部はサード パーティ企業から、その他はコミュニティ メンバーやボランティアから提供されています。 これらのライブラリは、開発者がこれらのライブラリで成功できる場合により多くの導入と高いレビューを受けます。
ドキュメントを提供するだけでなく、ライブラリの一般的な誤った使用を見つけて修正するアナライザーとコード修正プログラムを提供できます。 これらの即時修正は、開発者がより迅速に成功するのに役立ちます。
NuGet 上のライブラリを使用して、アナライザーとコード修正プログラムをパッケージ化できます。 そのシナリオでは、NuGet パッケージをインストールするすべての開発者もアナライザー パッケージをインストールします。 ライブラリを使用しているすべての開発者は、間違いや修正候補に関する即時のフィードバックの形で、チームからすぐにガイダンスを受け取ります。
一般的なガイダンスを提供する
.NET 開発者コミュニティは、経験を通じて、適切に動作するパターンと、最も避けるパターンを発見しました。 いくつかのコミュニティ メンバーが、推奨されるパターンを適用するアナライザーを作成しました。 さらに学習すると、常に新しいアイデアを得る余地があります。
これらのアナライザーは、 Visual Studio Marketplace にアップロードし、Visual Studio を使用して開発者がダウンロードできます。 言語とプラットフォームの初心者は、受け入れられたプラクティスをすばやく学習し、.NET 体験の早い段階で生産性を高めます。 これらがより広く使用されるにつれて、コミュニティはこれらのプラクティスを採用します。
ソース ジェネレーター
ソース ジェネレーターは、 コンパイル時のメタプログラミング、つまりコンパイル時に作成してコンパイルに追加できるコードを有効にすることを目的とします。 ソース ジェネレーターは、実行前にコンパイルの内容を読み取り、 追加のファイルにアクセスできます。 この機能により、ユーザーの C# コードとジェネレーター固有のファイルの両方をイントロスペクトできます。 ソース ジェネレータークックブックを使用して増分ソース ジェネレーターを構築する方法について説明します。
次のステップ
.NET Compiler Platform SDK には、コードの生成、分析、リファクタリングのための最新の言語オブジェクト モデルが含まれています。 このセクションでは、.NET Compiler Platform SDK の概念の概要について説明します。 詳細については、クイック スタート、サンプル、チュートリアルのセクションを参照してください。
.NET Compiler Platform SDK の概念の詳細については、次の 5 つのトピックを参照してください。
開始するには、 .NET Compiler Platform SDK をインストールする必要があります。
インストール手順 - Visual Studio インストーラー
Visual Studio インストーラーで .NET コンパイラ プラットフォーム SDK を見つけるには、次の 2 つの方法があります。
Visual Studio インストーラー - ワークロード ビューを使用してインストールする
.NET Compiler Platform SDK は、Visual Studio 拡張機能開発ワークロードの一部として自動的に選択されません。 オプションコンポーネントとして選択する必要があります。
- Visual Studio インストーラーを実行する
- [変更] を選択します
- Visual Studio 拡張機能の開発ワークロードを確認します。
- 概要ツリーで Visual Studio 拡張機能開発 ノードを開きます。
- .NET コンパイラ プラットフォーム SDK のチェック ボックスをオンにします。 これは、オプションのコンポーネントの下に最後に表示されます。
必要に応じて、 DGML エディター でビジュアライザーにグラフを表示することもできます。
- 概要ツリーで [ 個々のコンポーネント ] ノードを開きます。
- DGML エディターのチェック ボックスをオンにします
Visual Studio インストーラーを使用したインストール - [個々のコンポーネント] タブ
- Visual Studio インストーラーを実行する
- [変更] を選択します
- [ 個々のコンポーネント ] タブを選択する
- .NET コンパイラ プラットフォーム SDK のチェック ボックスをオンにします。 上部の [ コンパイラ、ビルド ツール、およびランタイム ] セクションにあります。
必要に応じて、 DGML エディター でビジュアライザーにグラフを表示することもできます。
- DGML エディターのチェック ボックスをオンにします。 [ コード ツール ] セクションに表示されます。
.NET