「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
改善点 †
参考 †
NuGet?利用 †
NuGet?利用を開始したことにより、ビルド・システムは大幅に改善した。
バージョン †
- log4net や DotNetZip? などのライブラリ管理を NuGet? に変更。
- これにより、今まで別途ダウンロードする必要のあったDLLをNuGet?から取得可能になった。
カスタマイズ可能レイヤ以外のライブラリをNuGet登録を行い、
- 更なるビルド・システムの改善と、
- リポジトリ内のソース・ファイルの重複の軽減を図る。
※ TFMは、net46、net47
以下の対応が行われた。
※ TFMに、net452を追加。
NuGet?パッケージのバージョンとDLLファイルのバージョンを一致させた。
nuspecファイルにdependency -> groupsタグを導入
※ TFMに、netstandard2.0を追加。
特になし。
※ TFMに、net48、netstandard2.1(≒ netcoreapp3.0)を追加。
特になし。
バージョンアップ †
GUI操作 †
Visual StudioのGUIから操作。
CUI操作 †
Update-PackageなどのCUIで操作。
(PowerShell?だが、Visual Studioパッケージ マネージャー コンソールから操作。)
参考 †
NuGet?登録 †
対象 †
Public名前空間 †
- OpenTouryo?.Public.dll
- OpenTouryo?.Public.Security.dll
- その他、各種Dam*.dll
- NuGet?にdllが適切に登録されているものに限る
- OpenTouryo?.DamManagedOdp?
- OpenTouryo?.DamMySQL
- OpenTouryo?.DamPstGrS
- これにより、テンプレート版も既定で以下のDBをサポートできるようになる。
- SQL Server
- ODBC, OLEDB
- Oracle
- MySQL
- PostgreSQL
Framework名前空間 †
- OpenTouryo?.Framework.dll
- OpenTouryo?.Framework.RichClient?.dll
構成の変更 †
本体(母体) †
Public名前空間、Framework名前空間にのみ適用される。
- 実装 ---> テストの容易性を維持するために本体(母体)側の基本的なビルド・システムは現行を維持する。
- しかし、NuGet?パッケージに登録するためのTarget Framework毎のビルドが可能になるようにする。
- Target Frameworkとして、以下をサポートする。
net35
.NET Standard がサポートしている .NET Framework は 4.5 以上
- net452
targetFrameworkをバージョン・ダウンして、利用可能。
- net46
VS2015テンプレートが既定で使用する。
- net47
VS2017テンプレートが既定で使用する。
- netstandard2.0
VS2017テンプレートのnetcoreappが既定で使用する。
- net48
VS2019テンプレートが既定で使用する。
- netstandard2.1
VS2019テンプレートのnetcoreappが既定で使用する。
- プロジェクト・ファイル(*.csproj)をTarget Framework毎に準備する。
- Target Framework毎のプロジェクト・ファイル(*.csproj)を纏めるソリューション・ファイル(*.sln)を準備する。
- ソリューション・ファイル(*.sln)の名称付与基準は、「*{framework name}[{version}].sln」とする。
- ビルドバッチ(*.bat)では全てのTarget Framework毎のソリューション・ファイル(*.sln)をビルドする。
- 本体(母体)側のVisual Studioのバージョン
- 本体(母体)側は、最古のバージョンに固定するが、
- Public名前空間、Framework名前空間については、
- ソリューション・ファイル(*.sln)
- プロジェクト・ファイル(*.csproj)
を複数用意してmulti-version化する。
テンプレート †
Public名前空間、Framework名前空間が、Nuget化される。
- 以下のカスタマイズ可能レイヤ、テンプレート部分は、
root_VS20XXのテンプレートに重複して保持する。
- カスタマイズ可能レイヤ
- Business名前空間
- 各種カスタムコントロール
- 各種サービスインターフェイス
- , etc.
.NET Standard対応 †
- Public名前空間から、.NET Standardに対応可能なクラスライブラリを抽出、
Standard名前空間のStandard.dllとして、NuGet?パッケージに登録する。
- このライブラリは、Linuxや、Win10 IoT Core上で動作する
プログラム開発でユーティリティとして利用されることを想定する。
参考 †
nuspecファイル †
テンプレート †
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/NuGet/template.nuspec
★ は必須入力
共通部品とフレームワーク †