Repository navigation
OTR_VersionUpgrade
nishi_74322014 edited this page Oct 28, 2026
·
2 revisions
フレームワークは、アプリケーションのライフサイクルの間、継続的にバージョンアップさせていく必要がある。
本ページは、Open 棟梁を使ったアプリケーションで、次の 2 つを行う方法を整理する。
- Open 棟梁のバージョンアップ:新しいリリースのライブラリ・テンプレートを取り込む。
- targetFramework のバージョンアップ:アプリケーションの .NET のバージョンを上げる(net48 → net10.0 を含む)。
Open 棟梁は、基本的に後方互換性を維持しているので、アプリケーションへの影響は小さい。
- バージョンアップの影響は、テンプレート(サンプル)のタグ間の差分を取れば、ある程度は分かる。
- Web Forms や Windows Forms で開発した .NET Framework 版の B 層・D 層は、.NET(Core)版にほぼそのまま載せられた。
| 時期 | 方法 |
|---|---|
| 02-00 以前 |
root\programs\C#\Frameworks 以下のライブラリを、最新のものに差し替える |
| 02-10 〜 03-00 | NuGet パッケージを更新する(テンプレートは NuGet 参照) |
| 03-10 以降 | テンプレート(OpenTouryoTemplates)が終了したため、本体リポジトリのサンプルを基に取り込む。ライブラリは NuGet パッケージ(net48 / net10.0)でも、ソースからのビルドでもよい |
- 必要に応じて、テンプレート(サンプル)側の修正を取り込む。
- 取り込みが難しい場合は、最新のテンプレートに、既存の P / B / D 層のロジックを載せ替える方が楽なことがある。
- 新しい Visual Studio でソリューション・ファイル(
*.sln)を開く(アップグレード・ウィザードが起動することがある)。 - プロジェクトのプロパティで、targetFramework を新しいバージョンに変える。
app.config・web.config・packages.configにも変更が入るので、*.csprojの直接の書き換えより、プロパティ画面を使う方が安全である。
変更漏れは、targetFrameworkを Grep して確かめる。 -
web.configのcompilationとhttpRuntimeのtargetFrameworkを変える。 - 全てのソリューションをビルドし、ワーニング(後方互換の打ち切りの予告)とエラー(API の削除)に対応する。
- ASP.NET では、配置先のアプリケーション・プールの .NET のバージョンが変わることがある。
プロジェクト・ファイル(SDK 形式)・パッケージ管理・ビルド・システムが整理され、.NET Framework 版より大分簡単になった。
-
*.csprojのTargetFrameworkを変え、NuGet の参照を新しいランタイムに合わせて上げる。 - Open 棟梁自身は、net8.0 → net10.0 の移行を 03-20 で行った(.NET 10 のワーニングとエラーへの対応のみ)。
- B 層・D 層は、ほぼそのまま載る。P 層は載せ替えになる(Web Forms は .NET にない。MVC は ASP.NET Core MVC へ)。
-
BinaryFormatter(BinarySerialize)は .NET 9 で削除されたため、net10.0 側では使えない(03-10・03-20 で関連機能を整理した)。 - 設定は
app.config/web.configからappsettings.jsonへ移る(外部パラメタ(構成)、.NET版の初期化処理)。
- サードパーティ製品の後継の有無と、インターフェイスの変更が、工数の増加に繋がることがある。
- Open 棟梁のバージョンアップをしない場合は、単純に新しい機能が使えないだけである。
バージョンアップは、エージェントに向いた作業である(差分の調査と機械的な置き換えが多い)。
- 先に、タグ間の差分から影響を洗い出させる。 詳細なリリース情報の「後方互換性に影響する変更」を入力にする。
- 置き換えは、シグネチャの変更・名前空間の変更・既定値の変更の 3 種に分けて行わせる。
既定値の変更(例:SAML2 の署名の既定 SHA1 → SHA256)は、コンパイルが通っても振る舞いが変わる。 - 検証は、リポジトリの
1_BuildAll.ps1→2_RunAllTests.ps1→3_SmokeTest.ps1と同じ型を、アプリケーション側にも用意しておくとよい。 - 移行のプロンプトは、OpenTouryoCodingAgentAssets の
src/docs/promptを参照。
Tags: 再構築
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。