「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>リリース情報]]

*目次 [#p14e365a]
#contents

*概要 [#sa0c2baa]
-[[v01-72>リリース情報#g5e9bdde]]から、[[NuGet利用>#mda95a7a]]を開始した。これによりビルドシステムは大幅に改善した。
-[[v02-x0>リリース情報#j62bae77]]から、[[NuGet登録>#l902543f]]を行い、更なるビルドシステムの改善を図る。

*NuGet利用 [#mda95a7a]
NuGet利用を開始したことにより、ビルドシステムは大幅に改善した。

**[[v01-72>リリース情報#g5e9bdde]]から、 [#m04b1223]
-log4net や DotNetZip などのライブラリ管理を NuGet に変更。
-これにより、今まで別途ダウンロードする必要のあったDLLをNuGetから取得可能になった。

**[[v02-00>リリース情報#i11149ce]]から、 [#y5dd5d4e]
-[[ASP.NET Web Optimization>https://techinfoofmicrosofttech.osscons.jp/index.php?ASP.NET%20%E3%81%AE%20Modernization]]を行ったため、多数のコンポーネントをNuGet から追加した。

-また、[[Nuget使用時に「error MSB3086 Task could not find AL.exe」が発生>https://techinfoofmicrosofttech.osscons.jp/index.php?Nuget%E4%BD%BF%E7%94%A8%E6%99%82%E3%81%AB%E3%80%8Cerror%20MSB3086%20Task%20could%20not%20find%20AL.exe%E3%80%8D%E3%81%8C%E7%99%BA%E7%94%9F]]し、~
コレを解決するために、NuGet 2.7 以降の自動復元への移行を行った。

*NuGet登録 [#l902543f]
[[v02-x0>リリース情報#j62bae77]]から、[[NuGet登録>#l902543f]]を行い、更なるビルドシステムの改善を図る。

**対象 [#t3904a3d]
***Public名前空間 [#zff034a6]
-Public.dll
-その他、各種Dam*.dll
--NuGetにdllが''適切に''登録されているものに限る
---DamPstGrS
---DamMySQL
---DamManagedOdp

--これにより、テンプレート版も既定で以下のDBをサポートできるようになる。
---PostgreSQL
---MySQL
---Oracle

***Framework名前空間 [#v5069030]
-Framework.dll

**構成の変更 [#b311f203]
***本体(母体) [#a8abbd84]
-実装 ---> テストの容易性を維持するために本体(母体)側の基本的なビルドシステムは現行を維持する。
-しかし、NuGetパッケージに登録するためのTarget Framework毎のビルドが可能になるようにする。
--[[Target Framework>https://docs.microsoft.com/ja-jp/nuget/schema/target-frameworks#supported-frameworks]]として、以下をサポートする。
---net35
---net452
---net46
---net47

--プロジェクト・ファイル(*.csproj)をTarget Framework毎に準備する。
---プロジェクト・ファイル(*.csproj)の名称付与基準は、「*{framework name}[{version}].csproj」とする。
---プロジェクト・ファイル(*.csproj)では、以下のようなビルド出力を行う(src側のフォルダ構成を参考にする)。
 <files>
   <file src="bin\Release\net46\MyAssembly.dll" target="lib\net46" />
   <file src="bin\Release\net461\MyAssembly.dll" target="lib\net461" />    
   <file src="bin\Release\uap\MyAssembly.dll" target="lib\uap" />    
   <file src="bin\Release\netcore\MyAssembly.dll" target="lib\netcore" />
 </files>

--Target Framework毎のプロジェクト・ファイル(*.csproj)を纏めるソリューション・ファイル(*.sln)を準備する。
---ソリューション・ファイル(*.sln)の名称付与基準は、「*{framework name}[{version}].sln」とする。
--ビルドバッチ(*.bat)では全てのTarget Framework毎のソリューション・ファイル(*.sln)をビルドする。
-このため、本体(母体)側のVisual Studioのバージョンを将来的に最新化する。
-

***テンプレート [#f6b03dfc]
-最も古いVisual Studioのバージョンはこちらで保持する。

-[[対象となる、Public名前空間、Framework名前空間のライブラリ>#t3904a3d]]の参照設定をNuGetに置き換える。

-以下のカスタマイズ可能レイヤ、テンプレート部分は、~
root_VS20XXのテンプレートに重複して保持する。

--カスタマイズ可能レイヤ
---Business名前空間
---各種カスタムコントロール
---各種サービスインターフェイス
--- , etc.

--テンプレート部分
---Web系
---C/S系
---バッチ系
--- , etc.

-カスタマイズ可能レイヤ、テンプレート部分をメンテナンスする場合、
--最も古いVisual Studioのバージョンを使用したテンプレートでメンテナンスをする。
--そして、新しいVisual Studioのバージョンのテンプレート、本体(母体)にマージを行う。

*.NET Standard [#l070e9eb]
-Public名前空間から、.NET Standardに対応可能なクラスライブラリを抽出、~
Standard名前空間のStandard.dllとして、NuGetパッケージに登録する。

-このライブラリは、Linuxや、Win10 IoT Core上で動作する~
プログラム開発でユーティリティとして利用されることを想定する。

*参考 [#maff7024]
**NuGetについて [#od5f2a1e]
-NuGet - マイクロソフト系技術情報 Wiki~
https://techinfoofmicrosofttech.osscons.jp/index.php?NuGet

--NuGet を使用したパッケージ管理
--NuGetパッケージの開発と公開

**.NET Framework のバージョン [#ydd0f328]
-.NETバージョンアップ - マイクロソフト系技術情報 Wiki > .NET Framework のバージョン~
https://techinfoofmicrosofttech.osscons.jp/index.php?.NET%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%83%E3%83%97#kc9b3965

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS