.NET SDK は、C# などの言語でアプリケーションやライブラリを開発するためのツールセットです。dotnet コマンドによりビルド・テスト・公開などの操作を行います。Visual Studio がなくてもコマンドラインを用いて開発できます。
現代の .NET (Windows 専用であった .NET Framework とは異なる統合プラットフォーム) は、クロスプラットフォームを前提として設計されています。同一のソースコードから、Linux / Windows / macOS 向けに同等の機能を持つ実行体を生成できる点が大きな特徴です。これにより、OS ごとの差異を最小限に抑えた開発・ビルド・テストが可能になります。
このリポジトリの prod/calc.net/ は C ライブラリ (libcalc) を .NET から利用するためのラッパーライブラリとサンプルアプリケーションです。CalcLib が C ライブラリへの .NET インターフェースを提供し、CalcApp がそれを利用するサンプルアプリです。ビルドは makefw/ が提供する makefile テンプレートで dotnet build コマンドとして実行され、Linux と Windows で同一機能を提供します。
Directory.Build.props (リポジトリルートに配置) により、複数の .NET プロジェクトに共通のビルド設定を適用しています。また、RelWithDebInfo (Release with Debug Information) ビルド設定を使用した最適化とデバッグ情報の共存についても理解が必要です。
なお、.NET に関する内容は、本リポジトリにおいて C と .NET の相互運用 (interop) を理解するための学習資料として位置付けています。C のみを用いた開発を対象とする場合、これらの章は参考情報として扱って問題ありません。
dotnet build・dotnet run・dotnet test などのリファレンス (日本語)プロジェクト構成:
prod/calc.net/
+-- libsrc/CalcLib/CalcLib.csproj # C ライブラリの .NET ラッパー
+-- src/CalcApp/CalcApp.csproj # サンプルアプリケーション
Directory.Build.props (ルートの共通設定):
<Project>
<PropertyGroup>
<!-- すべての .NET プロジェクトに適用される共通設定 -->
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>基本的なビルドコマンド:
dotnet build prod/calc.net/libsrc/CalcLib/CalcLib.csproj
dotnet build prod/calc.net/src/CalcApp/CalcApp.csproj
dotnet run --project prod/calc.net/src/CalcApp/CalcApp.csproj