「Open棟梁 wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
部会開催メモ
詳細(2025年 †
4-6月 セルフ&オフライン部会(第42-44回) †
準備 †
Open棟梁をVS2022新環境でビルドして、移行・マイグレーションの評価を行い計画を策定
- 久々、ビルド・バッチを実行、インストールされない4.5を除き、ほぼビルドはできた。
- フォルダはrootじゃなくても良い。developブランチ → migrationブランチで作業
- 全ソリューションのビルドを確認後にポーティング作業を実施しつつ、必要に応じてOSSバージョンアップ移行を行う。
計画 †
- ターゲット・フレームワーク
.NET Fx 4.5 - 4.7系、.NET Core 2 - 6系をドロップし、.NET 8に新規対応させる。
- .NET Fx 4.5はサポート終了済み、4.6は、2027/1/12まで。4.7は作業工数的な意味で。
- .NET Core 2 - 6はサポート終了済み、.NET 8 は、2026/11/10まで。.NET 10は、2025/11頃にリリース予定。
- .NET Standard2.0は.NET Fx系を対象にするので維持する。
- .NET Standard2.1は.NET Core 3.0 以降が対象で非推奨の流れなので.NET Coreに移行。
- プリプロセッサ ディレクティブの変更("NETSTD" → "(NETSTD || NETCOREAPP)")
- .NET Core 6(LTS)は対応済み、.NET Core 7、9はSTSなので.NET Core 8(LTS) に新規対応。
- NuGet?
- 旧バージョンのドロップにより packages.config を廃止し PackageReference? に移行。
- NuGet?パッケージを新パッケージに更新、ターゲットフレームワーク毎にサポート状況が異なる。
- データプロバイダ
サポート状況がまちまちなので最新化(.NET Fx 4.8、.NET 8)せざるを得ない。
- .NET Coreは、System.Data.SqlClient? → Microsoft.Data.SqlClient?(足切り早い)
- DamManagedOdp? に完全移行(.NET Standard2.1をドロップし.NET 8へ)するので DamOraOdp? を完全削除
- Npgsqlはver9以降、.NET 6 以上のサポートに変更(Standard2.0 & 2.1での対応不可)。
- Web系対応
下記のために新規作成Webサイトのテンプレを使って再構築を予定
- .NET FxのWeb系は、PackageReference?に対応しておらず、NuGet?更新が難しい。
- 序にOSS系の更新(log4net → nlog、Bootstrap(JS)は削除するかも)
- 通信制御のHTTPサポート
WebAPI一択に(TCPサポートのWCFは残す)
- ASP.NET Webサービスのサポート
- 通信制御のWCFのHTTPバインディングのサポート
実施 †
- リマインド
- Business以下は一度Nuget解除して、リリース前に再Nuget化する。
- セッション状態サーバー起動は以前のバージョンからbatを取り出すと良い。
- Err.MSG:Add a reference to ".NETFramework,Version=v4.8" in the "TargetFrameworks?" property of your project file and then re-run NuGet? restore.
- NuGet?リストアは、ソリューションのNuGet?パッケージの復元からだが、解決しない。
- その場合は、packages / obj / binフォルダを削除する(Fx系とCore系のクロスコンパイルで発生)。
- テンプレート差し替え
.NET Fx 4.8のWebアプリケーションが、Nuget更新だけでは対応できなくなってきているのでのテンプレートを差し替え
- .NET Fx 4.8のWebアプリケーションを新規作成、WebForms?やMVCを構成する。
- 載せ替えを、デバック実行を行いながら行って全体をマイグレーションして行く。
- Nuget更新
- bootstrap:5.2.3 → 5.3.6
- DotNetCompilerPlatform?:2.0.1 → 4.1.0
- Err.MSG:'jquery' は無効なスクリプト名です。名前は '.js' で終わる必要があります。
- NuGet?で「AspNet?.ScriptManager?.jQuery」をインストールする必要がある(新規作成のテンプレートでも必要)。
- 'jquery' → 'bootstrap'、'respond'については、<asp:ScriptReference? Name="bootstrap" />、<asp:ScriptReference? Name="respond" />を削除する。
- デザインが崩れている所を発見して修正を加えていく。
- menu-contentn の classを削除
- .nav-side-menu を position: relative; にしないと、位置移動しない。
- body, html, .menu-list を height: 100%; にしないと縮んで表示される。
- Microsoft.CodeDom?.Providers.DotNetCompilerPlatform?を削除
- Nuget更新で「認識されない要素 'system.codedom' です。」が発生。
- DotNetCompilerPlatform?を削除することでエラー発生しなくなった。
- (昔の環境を取り置く場合以外、不要である場合がほとんどらしい)
- Web系(.NET Core)
こちらは、Nuget更新だけでなんとかなるハズ...
結果 †
- 大きな変更点
- .NET 8で、BinarySerialize?が完全廃止になった。
- 従って、通信制御は、.NET Fxがインプロセス、WebAPIのみ、.NET Coreがインプロセスのみ。
- 暗号化系も、なかなか厳しい状況(SYSLIB0045)。
- 細かい変更点
- サクラエディタのUTF-8グレップ:-GCODE=4を付与
- Security.Cryptography.EccKey? → Jose.keys.EccKey?
- ビルドシステム・エンハンス(nuget.exe最新化、Tempファイル削除集約)
- その他、前バージョンのビルドシステムの潜在不良の様なモノへの対応
参考 †