部会メモ(2025年)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>部会メモ]]
--[[部会メモ(2020年)>部会メモ#qba10194]]
--[[部会メモ(2021年)]]
--[[部会メモ(2022年)]]
--[[部会メモ(2023年)]]
--%%部会メモ(2024年)%%
--部会メモ(2025年)
--[[部会メモ(2026年)]]
*目次 [#x5557abd]
#contents
*概要 [#o4bb864a]
部会開催メモ
*詳細(2025年 [#i68b7d81]
**4-6月 セルフ&オフライン部会(第42-44回) [#e314d3d1]
***準備 [#s8852472]
Open棟梁をVS2022新環境でビルドして、移行・マイグレーショ...
-久々、ビルド・バッチを実行、インストールされない4.5を除...
-フォルダはrootじゃなくても良い。developブランチ → migrat...
-全ソリューションのビルドを確認後にポーティング作業を実施...
***計画 [#da07c38d]
-ターゲット・フレームワーク~
.NET Fx 4.5 - 4.7系、.NET Core 2 - 6系をドロップし、.NET ...
--.NET Fx 4.5はサポート終了済み、4.6は、2027/1/12まで。4....
--.NET Core 2 - 6は、サポート終了済み、.NET 8 は、2026/11...
--.NET Standard2.1は、.NET Core 3.0 以降が対象で非推奨の...
--.NET Standard2.0は、残しておく意味が希薄になったのでド...
--プリプロセッサ ディレクティブの変更("NETSTD" → "(NETST...
--.NET 6(LTS)は対応済み、.NET 7、9はSTSなので.NET 8(LT...
-OSSバージョンアップ
--NuGet
---旧devenvのドロップにより packages.config を廃止し Pack...
---NuGetパッケージを新パッケージに更新、ターゲットフレー...
--データプロバイダ~
サポート状況がまちまちなので最新化(.NET Fx 4.8、.NET 8)...
---SqlClientは、System.Data.SqlClient → Microsoft.Data.Sq...
---DamManagedOdp に完全移行(.NET Standardをドロップし.NE...
---Npgsqlはver9以降、.NET 6 以上のサポートに変更(Standar...
--その他
---Sharpromptが.NET Fxのサポート終了、Simple_CLIをドロップ
---序にOSS系の更新(jQuery、Bootstrap、log4net → [[NLog>...
-Web系対応~
下記のために新規作成Webサイトのテンプレを使って再構築を予定
--.NET Fxの系は、PackageReferenceに対応しておらず、NuGet...
--.NET Core系は、Gruntなどのタスクランナーが下火になって...
--jQuery、Bootstrapのベターユースがよく解らないのでテンプ...
-Core系のBinarySerializeの完全廃止対応
--Core系の通信制御機能の全ドロップ(インプロセス呼び出し...
--DeployZipPackWithHTTPCore(設定のセーブ/ロードのみだが...
-工数マターでのドロップ
--NuGet、テンプレート・リポジトリ~
.NET、VSバージョン数が減り、NuGetのデメリット顕在化で必要...
--通信制御のHTTPサポート~
WebAPI一択に(TCPサポートのWCFは残す)
---ASP.NET Webサービスのサポート
---通信制御のWCFのHTTPバインディングのサポート
--利用頻度の低いツール
---DistributeFile_Tool
***実施 [#vb3e0bef]
-作業中の色々メモ
--リマインド
---Business以下は一度NuGet解除して、リリース前に再NuGet化...
---セッション状態サーバー起動は以前のバージョンからbatを...
--Core系RichClientのTarget:netx.x-windowsx.x(8.0, 7.0)
---TargetFramework
---Project出力(HintPath, DocumentationFile)
--Err.MSG:Add a reference to ".NETFramework,Version=v4.8...
---メッセージ準拠のNuGetリストアでは、ソリューションのNuG...
---その場合は、packages / obj / binフォルダを削除する(Fx...
-非Web系
--.NET Fx
---(アレば)NuGet更新
---競合発生時はAssemblyBindingRedirectを設定
--.NET Core
---TargetFramework変更、参照設定の変更、NuGet更新
---競合発生時はAssemblyBindingRedirectではなくNuGetで上書き
---WindowsBase競合は、UseWindowsForms、UseWPFの両方をチェ...
(ライブラリが両方参照しているので、片方だけだと警告が出...
-Web系(.NET Fx)~
非Web系(.NET Fx)と重複した分を除く
--テンプレート差し替え~
.NET Fx 4.8のWebアプリケーションが、NuGet更新だけでは対応...
---.NET Fx 4.8のWebアプリケーションを新規作成、WebFormsや...
---載せ替えを、デバック実行を行いながら行って全体をマイグ...
---Global.asax、BundleConfig.csに変更点が(相対的に)多い...
---最後に足りない参照設定(DLL、NuGet)を足していく。
--NuGet更新
---bootstrap:5.2.3 → 5.3.6
---DotNetCompilerPlatform:2.0.1 → 4.1.0
--Microsoft.CodeDom.Providers.DotNetCompilerPlatformを削除
---NuGet更新前に「bin\roslyn\csc.exe が見つかりませんでし...
---NuGet更新後に「認識されない要素 'system.codedom' です...
---DotNetCompilerPlatformを削除することでエラー発生しなく...
---(昔の環境を取り置く場合以外、不要である場合がほとんど...
--Err.MSG:'jquery' は無効なスクリプト名です。名前は '.js...
---NuGetで「AspNet.ScriptManager.jQuery」をインストールす...
---'jquery' → 'bootstrap'、'respond'については、<asp:Scri...
--デザインが崩れている所を発見して修正を加えていく。
---menu-contentn の classを削除
---.nav-side-menu を position: relative; にしないと、位置...
---body, html, .menu-list を height: 100%; にしないと縮ん...
--MVCのAjax.BeginFormが適切に動作しない件
---Microsoft.jQuery.Unobtrusive.Ajaxのインストールが必要。
---MVCのBundleConfig.csで、jquery.unobtrusive-ajaxを追加...
--ログ(ポイント抜粋)
---WebForms_Sample~
C#版:https://github.com/OpenTouryoProject/OpenTouryo/com...
VB版:https://github.com/OpenTouryoProject/OpenTouryo/com...
---MVC_Sample~
C#版:https://github.com/OpenTouryoProject/OpenTouryo/com...
VB版:https://github.com/OpenTouryoProject/OpenTouryo/com...
-Web系(.NET Core)~
非Web系(.NET Core)と重複した分を除く
--テンプレート差し替え~
Gruntは引き続き利用可能そうだが、TaskRunnerExplorerがdisc...
最新動向を取り込む意味でも新規作成したテンプレートに載せ...
---Program.Main スタイル プログラムに変換
---AddNewtonsoftJsonをひとまずコメントアウト。
---null 許容注釈コンテキスト(Nullable)を無効(disable)...
---本丸は、_Layout.cshtml(gruntfile.jsのbundle、uglifyの...
---<environment include/exclude="Development">を削除(標...
--NuGet追加(初期状態ではなにも追加されていないので適宜、...
--デザインが崩れている所を発見して修正を加えていく。
--ログ(ポイント抜粋)~
https://github.com/OpenTouryoProject/OpenTouryo/commit/2a...
-その他
--Public名前空間:暗号化系も、なかなか厳しい状況(SYSLIB00...
--全プロジェクト:System.Data.SqlClient → Microsoft.Data....
***結果 [#h93626fa]
-大きな変更点
--.NET 8で、BinarySerializeが完全廃止になった。
---従って、.NET Coreの通信制御はインプロセスのみ。
---関連して、幾つかのプロジェクトのドロップを行った。
--いくらか、.NET Fx側のサポート終了OSSが観測された。
---Npgsql
---Sharprompt
-細かい変更点
--サクラエディタのUTF-8グレップ:-GCODE=4を付与
--Security.Cryptography.EccKey → Jose.keys.EccKey(名前空...
--ビルドシステム・エンハンス(nuget.exe最新化、Tempファイ...
--その他、前バージョンのビルドシステムの潜在不良の様なモ...
**7-9月 セルフ&オフライン部会(第45-47回) [#sadb62cc]
***.NET10マイグレ [#b7cbce86]
-SYSLIB 系の警告~
.NET 6 以降で発生。
--SYSLIB0021: 'XXXCryptoServiceProvider' や XXXManaged` ...
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---.Create() ファクトリメソッドを使って対称・非対称アルゴ...
// 非推奨・旧形式
var aes = new AesManaged();
var rsa = new RSACryptoServiceProvider();
// 修正方法
var aes = Aes.Create();
var rsa = RSA.Create();
--SYSLIB0022: 'RijndaelManaged' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---Rijndael は AES の元となるアルゴリズムですが、現在は A...
// 非推奨・旧形式
var rijndael = new RijndaelManaged();
// 修正方法
var aes = Aes.Create(); // Rijndael の代替
--SYSLIB0023: 'RNGCryptoServiceProvider' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---RNGCryptoServiceProvider の代わりに RandomNumberGenera...
// 非推奨・旧形式
var rng = new RNGCryptoServiceProvider();
rng.GetBytes(data);
// 修正方法
RandomNumberGenerator.Fill(data); // static method
--SYSLIB0027: 'PublicKey.Key' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---PublicKey.Key の代わりに、GetRSAPublicKey() や GetECDs...
// 非推奨・旧形式
var key = certificate.PublicKey.Key;
// 修正方法
var rsaPublicKey = certificate.GetRSAPublicKey(); // RSA...
var ecdsaPublicKey = certificate.GetECDsaPublicKey(); //...
--SYSLIB0028: 'X509Certificate2.PrivateKey' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---PrivateKeyの代わりに、適切な GetRSAPrivateKey() や Get...
// 非推奨・旧形式
var privateKey = certificate.PrivateKey;
// 修正方法
var rsaPrivateKey = certificate.GetRSAPrivateKey(); // R...
var ecdsaPrivateKey = certificate.GetECDsaPrivateKey(); ...
--SYSLIB0041: 'Rfc2898DeriveBytes(...)' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---ハッシュ アルゴリズム名 (既定値は HashAlgorithmName.SH...
// 非推奨・旧形式
var pdb = new Rfc2898DeriveBytes("password", salt);
// 修正方法
var pdb = new Rfc2898DeriveBytes(
System.Text.Encoding.UTF8.GetBytes("password"),
salt,
10000,
HashAlgorithmName.SHA256);
--ログ:https://github.com/OpenTouryoProject/OpenTouryo/c...
-WFOのエラー~
.NET9以降の破壊的変更らしい。
--WFO1000: プロパティ "property" は、プロパティ コンテン...
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms...
---プロパティがバイナリ シリアル化される設計のセキュリテ...
---プロパティがデザイナーによってシリアル化される場合は、...
・プロパティに DefaultValueAttribute を追加し、既定値を指...
・プロパティに DesignerSerializationVisibilityAttribute ...
---プロパティがデザイナーによってシリアル化される場合は、~
・プロパティに DesignerSerializationVisibilityAttribute ...
***NuGet最新化 [#u982818c]
-変更点:
--サポートされる *.pdb のフォーマットはportableに限定され...
--nuspecファイルは1つだけ作成すれな良くなった(*.nupkgフ...
--NuGetサーバーでのサポートがなくなり、ソース・リンク(詳...
--ちなみに、nuget packでのソース同梱もできなくなっている...
--シンボルサーバー含めた動作
---.NET Coreはローカル・ソース・ファイルを使用してステッ...
---.NET Frameworkは正しく *.pdb が取れているがステップ・...
-参考:[[NuGet導入、NuGet登録]]
--[[NuGetパッケージの作成手順]]
--[[NuGet導入後のデバッグ方法]]
***VS2026 Insider [#a73ece13]
-.NET10
--ビルドができることを確認
--WFO1000のコード修正の実施(Visible明示)
--新規のワーニング確認(ライブラリ側):
---warning MSB3277: "Microsoft.Extensions.DependencyInjec...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0060: 'Rfc2898DeriveBytes.Rfc2898DeriveB...
---warning NU1510: PackageReference System.Net.Http は排...
---warning NU1510: PackageReference System.Reflection.Emi...
---warning NU1510: PackageReference System.Reflection.Emi...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1904: パッケージ 'System.Drawing.Common' 4.7...
--新規のワーニング確認(UIサブシステム側):
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference System.Formats.Asn1 ...
---warning ASPDEPR008: 'IWebHost' は旧形式です ('IWebHost...
---warning ASPDEPR008: 'WebHost' は旧形式です ('WebHost i...
---warning ASPDEPR008: 'IWebHostBuilder.Build()' は旧形式...
-既存ビルドの確認
--MSBuildで問題発生 → パス変更
--新規のワーニング確認:既存は無し
***実施結果 [#j9074396]
3Qには.NET01が正式リリースされる予定なのでUIサブシステム...
-確認済みのワーニング落とし
-UIサブシステム側のビルド実行
-新規のビルドエラー、ワーニング落とし
**10-12月 セルフ&オフライン部会(第48-50回) [#j0ba9046]
***.NET10マイグレ [#n2656a9a]
9月にはリリース候補版(RC)が公開、11月11日に正式リリース予定
-SYSLIB 系の警告~
.NET 10 以降で発生。
--SYSLIB0057: 'X509Certificate2.X509Certificate2(XXXX)' ...
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---今までは秘密鍵も公開鍵も同一APIだったが、以降はパスワ...
---(byte[])
// 非推奨・旧形式
return new X509Certificate2(
PrivacyEnhancedMail.GetBytesFromPemString(
pemString, PrivacyEnhancedMail.EnumToString(label...
// 修正方法
return X509CertificateLoader.LoadCertificate(
PrivacyEnhancedMail.GetBytesFromPemString(
pemString, PrivacyEnhancedMail.EnumToString(label...
---(string)
// 非推奨・旧形式
X509Certificate2 x509Key = new X509Certificate2(certific...
// 修正方法
X509Certificate2 x509Key = X509CertificateLoader.LoadCer...
---(string, string?)
// 非推奨・旧形式
X509Certificate2 x509Key = new X509Certificate2(certific...
// 修正方法
X509Certificate2 x509Key = X509CertificateLoader.LoadPkc...
---(string, string?, X509KeyStorageFlags)
// 非推奨・旧形式
X509Certificate2 x509Key = new X509Certificate2(certific...
// 修正方法
X509Certificate2 x509Key = X509CertificateLoader.LoadPkc...
--SYSLIB0060: 'Rfc2898DeriveBytes.Rfc2898DeriveBytes(stri...
---https://learn.microsoft.com/en-us/dotnet/fundamentals/...
---new Rfc2898DeriveBytes.GetBytes(x) → Rfc2898DeriveByte...
// 非推奨・旧形式
Rfc2898DeriveBytes kdf = new Rfc2898DeriveBytes(password...
byte[] derivedKey = kdf.GetBytes(64);
// 修正方法
byte[] derivedKey = Rfc2898DeriveBytes.Pbkdf2(password, ...
-NUの警告
--NU1904:脆弱なパッケージ、disconの「DotNetZip」と、その...
--NU1510:不要なパッケージ、単純にNuGet参照を削除(そもそ...
---Microsoft.Extensions.Configuration系は、Web系と指摘は...
---System.Formats.Asn1は、コレまで消すと動かなくなってい...
---System.Security.Cryptography系は、引き続き、使用してい...
---System.Reflection.Emit系も、引き続き、使用しているが、...
---System.Net.Http は通信制御をドロップしたためと思われる。
-その他
--CA1416:必要に応じてプラットフォーム対応を実装
---以下の対応が可能だが、クロスコンパイルを考慮すると、い...
---関数なら、[SupportedOSPlatform("windows")]、[Supported...
---コードブロックの場合、~
・if (os.Platform == PlatformID.Win32NT)、PlatformID.Unix...
・if (OperatingSystem.IsWindows())などが使えるが、elseにN...
・その他、何らかの条件分岐が、ある程度サポートPFを暗示し...
参考:https://github.com/OpenTouryoProject/OpenTouryo/pul...
***実施結果 [#s2339d94]
リリースが出来るか確認
-リリース前の確認
--ライブラリがバグ無く動くかをCIによって確認
--ユーザーインターフェイスがバグ無く動くかをCIによって確認
---Web、C/SでのCRUD実施
---カスタム・コントロール系
--VB版の動作確認や追いつき修正の実施
-[[リリース・エンジニアリング]]
***今後の予定 [#df047c6c]
OAuth2 / OIDCアーキテクチャ対応版:再起予定
-[[LocalServicesOnDocker>https://github.com/NetDevInfraWG...
-汎用認証サイト、フロントエンド、リソースサーバの移行&動...
--汎用認証サイト
---ビルドシステム・エンハンス
---ドロップ~
・非対応データプロバイダ~
・FIDO2を一時的に
---アップデート対応~
・NuGetパッケージのアップデート対応
・棟梁ベース・ライブラリのアップデート対応~
---「app.config、appsettings.json」対応~
・発掘(OneDriveから)~
・.gitignoreへの登録~
・Tortoiseのignore-on-commitでは恒久的にならない。~
・ファイルのヘッダに「_」を付与しリネーム。~
・実値を入れたファイルは「_」を削除する。
---リソース・ファイルの配置
C:\...\root\files\resource\MultiPurposeAuthSite
--汎用認証サイト(.NET Framework版)
---アップデート対応~
NuGetの*.ja(日本語)パッケージの削除(バージョンアップ阻...
--汎用認証サイト(.NET Core版)
---ビルドシステム・エンハンス~
Grunt廃止、_Layout.cshtml(gruntfile.jsのbundle、uglifyの...
--リソースサーバ
--フロントエンド
*参考 [#ybd24dca]
**[[部会メモ(開発基盤部会)>https://dotnetdevelopmentinf...
終了行:
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「...
-[[戻る>部会メモ]]
--[[部会メモ(2020年)>部会メモ#qba10194]]
--[[部会メモ(2021年)]]
--[[部会メモ(2022年)]]
--[[部会メモ(2023年)]]
--%%部会メモ(2024年)%%
--部会メモ(2025年)
--[[部会メモ(2026年)]]
*目次 [#x5557abd]
#contents
*概要 [#o4bb864a]
部会開催メモ
*詳細(2025年 [#i68b7d81]
**4-6月 セルフ&オフライン部会(第42-44回) [#e314d3d1]
***準備 [#s8852472]
Open棟梁をVS2022新環境でビルドして、移行・マイグレーショ...
-久々、ビルド・バッチを実行、インストールされない4.5を除...
-フォルダはrootじゃなくても良い。developブランチ → migrat...
-全ソリューションのビルドを確認後にポーティング作業を実施...
***計画 [#da07c38d]
-ターゲット・フレームワーク~
.NET Fx 4.5 - 4.7系、.NET Core 2 - 6系をドロップし、.NET ...
--.NET Fx 4.5はサポート終了済み、4.6は、2027/1/12まで。4....
--.NET Core 2 - 6は、サポート終了済み、.NET 8 は、2026/11...
--.NET Standard2.1は、.NET Core 3.0 以降が対象で非推奨の...
--.NET Standard2.0は、残しておく意味が希薄になったのでド...
--プリプロセッサ ディレクティブの変更("NETSTD" → "(NETST...
--.NET 6(LTS)は対応済み、.NET 7、9はSTSなので.NET 8(LT...
-OSSバージョンアップ
--NuGet
---旧devenvのドロップにより packages.config を廃止し Pack...
---NuGetパッケージを新パッケージに更新、ターゲットフレー...
--データプロバイダ~
サポート状況がまちまちなので最新化(.NET Fx 4.8、.NET 8)...
---SqlClientは、System.Data.SqlClient → Microsoft.Data.Sq...
---DamManagedOdp に完全移行(.NET Standardをドロップし.NE...
---Npgsqlはver9以降、.NET 6 以上のサポートに変更(Standar...
--その他
---Sharpromptが.NET Fxのサポート終了、Simple_CLIをドロップ
---序にOSS系の更新(jQuery、Bootstrap、log4net → [[NLog>...
-Web系対応~
下記のために新規作成Webサイトのテンプレを使って再構築を予定
--.NET Fxの系は、PackageReferenceに対応しておらず、NuGet...
--.NET Core系は、Gruntなどのタスクランナーが下火になって...
--jQuery、Bootstrapのベターユースがよく解らないのでテンプ...
-Core系のBinarySerializeの完全廃止対応
--Core系の通信制御機能の全ドロップ(インプロセス呼び出し...
--DeployZipPackWithHTTPCore(設定のセーブ/ロードのみだが...
-工数マターでのドロップ
--NuGet、テンプレート・リポジトリ~
.NET、VSバージョン数が減り、NuGetのデメリット顕在化で必要...
--通信制御のHTTPサポート~
WebAPI一択に(TCPサポートのWCFは残す)
---ASP.NET Webサービスのサポート
---通信制御のWCFのHTTPバインディングのサポート
--利用頻度の低いツール
---DistributeFile_Tool
***実施 [#vb3e0bef]
-作業中の色々メモ
--リマインド
---Business以下は一度NuGet解除して、リリース前に再NuGet化...
---セッション状態サーバー起動は以前のバージョンからbatを...
--Core系RichClientのTarget:netx.x-windowsx.x(8.0, 7.0)
---TargetFramework
---Project出力(HintPath, DocumentationFile)
--Err.MSG:Add a reference to ".NETFramework,Version=v4.8...
---メッセージ準拠のNuGetリストアでは、ソリューションのNuG...
---その場合は、packages / obj / binフォルダを削除する(Fx...
-非Web系
--.NET Fx
---(アレば)NuGet更新
---競合発生時はAssemblyBindingRedirectを設定
--.NET Core
---TargetFramework変更、参照設定の変更、NuGet更新
---競合発生時はAssemblyBindingRedirectではなくNuGetで上書き
---WindowsBase競合は、UseWindowsForms、UseWPFの両方をチェ...
(ライブラリが両方参照しているので、片方だけだと警告が出...
-Web系(.NET Fx)~
非Web系(.NET Fx)と重複した分を除く
--テンプレート差し替え~
.NET Fx 4.8のWebアプリケーションが、NuGet更新だけでは対応...
---.NET Fx 4.8のWebアプリケーションを新規作成、WebFormsや...
---載せ替えを、デバック実行を行いながら行って全体をマイグ...
---Global.asax、BundleConfig.csに変更点が(相対的に)多い...
---最後に足りない参照設定(DLL、NuGet)を足していく。
--NuGet更新
---bootstrap:5.2.3 → 5.3.6
---DotNetCompilerPlatform:2.0.1 → 4.1.0
--Microsoft.CodeDom.Providers.DotNetCompilerPlatformを削除
---NuGet更新前に「bin\roslyn\csc.exe が見つかりませんでし...
---NuGet更新後に「認識されない要素 'system.codedom' です...
---DotNetCompilerPlatformを削除することでエラー発生しなく...
---(昔の環境を取り置く場合以外、不要である場合がほとんど...
--Err.MSG:'jquery' は無効なスクリプト名です。名前は '.js...
---NuGetで「AspNet.ScriptManager.jQuery」をインストールす...
---'jquery' → 'bootstrap'、'respond'については、<asp:Scri...
--デザインが崩れている所を発見して修正を加えていく。
---menu-contentn の classを削除
---.nav-side-menu を position: relative; にしないと、位置...
---body, html, .menu-list を height: 100%; にしないと縮ん...
--MVCのAjax.BeginFormが適切に動作しない件
---Microsoft.jQuery.Unobtrusive.Ajaxのインストールが必要。
---MVCのBundleConfig.csで、jquery.unobtrusive-ajaxを追加...
--ログ(ポイント抜粋)
---WebForms_Sample~
C#版:https://github.com/OpenTouryoProject/OpenTouryo/com...
VB版:https://github.com/OpenTouryoProject/OpenTouryo/com...
---MVC_Sample~
C#版:https://github.com/OpenTouryoProject/OpenTouryo/com...
VB版:https://github.com/OpenTouryoProject/OpenTouryo/com...
-Web系(.NET Core)~
非Web系(.NET Core)と重複した分を除く
--テンプレート差し替え~
Gruntは引き続き利用可能そうだが、TaskRunnerExplorerがdisc...
最新動向を取り込む意味でも新規作成したテンプレートに載せ...
---Program.Main スタイル プログラムに変換
---AddNewtonsoftJsonをひとまずコメントアウト。
---null 許容注釈コンテキスト(Nullable)を無効(disable)...
---本丸は、_Layout.cshtml(gruntfile.jsのbundle、uglifyの...
---<environment include/exclude="Development">を削除(標...
--NuGet追加(初期状態ではなにも追加されていないので適宜、...
--デザインが崩れている所を発見して修正を加えていく。
--ログ(ポイント抜粋)~
https://github.com/OpenTouryoProject/OpenTouryo/commit/2a...
-その他
--Public名前空間:暗号化系も、なかなか厳しい状況(SYSLIB00...
--全プロジェクト:System.Data.SqlClient → Microsoft.Data....
***結果 [#h93626fa]
-大きな変更点
--.NET 8で、BinarySerializeが完全廃止になった。
---従って、.NET Coreの通信制御はインプロセスのみ。
---関連して、幾つかのプロジェクトのドロップを行った。
--いくらか、.NET Fx側のサポート終了OSSが観測された。
---Npgsql
---Sharprompt
-細かい変更点
--サクラエディタのUTF-8グレップ:-GCODE=4を付与
--Security.Cryptography.EccKey → Jose.keys.EccKey(名前空...
--ビルドシステム・エンハンス(nuget.exe最新化、Tempファイ...
--その他、前バージョンのビルドシステムの潜在不良の様なモ...
**7-9月 セルフ&オフライン部会(第45-47回) [#sadb62cc]
***.NET10マイグレ [#b7cbce86]
-SYSLIB 系の警告~
.NET 6 以降で発生。
--SYSLIB0021: 'XXXCryptoServiceProvider' や XXXManaged` ...
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---.Create() ファクトリメソッドを使って対称・非対称アルゴ...
// 非推奨・旧形式
var aes = new AesManaged();
var rsa = new RSACryptoServiceProvider();
// 修正方法
var aes = Aes.Create();
var rsa = RSA.Create();
--SYSLIB0022: 'RijndaelManaged' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---Rijndael は AES の元となるアルゴリズムですが、現在は A...
// 非推奨・旧形式
var rijndael = new RijndaelManaged();
// 修正方法
var aes = Aes.Create(); // Rijndael の代替
--SYSLIB0023: 'RNGCryptoServiceProvider' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---RNGCryptoServiceProvider の代わりに RandomNumberGenera...
// 非推奨・旧形式
var rng = new RNGCryptoServiceProvider();
rng.GetBytes(data);
// 修正方法
RandomNumberGenerator.Fill(data); // static method
--SYSLIB0027: 'PublicKey.Key' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---PublicKey.Key の代わりに、GetRSAPublicKey() や GetECDs...
// 非推奨・旧形式
var key = certificate.PublicKey.Key;
// 修正方法
var rsaPublicKey = certificate.GetRSAPublicKey(); // RSA...
var ecdsaPublicKey = certificate.GetECDsaPublicKey(); //...
--SYSLIB0028: 'X509Certificate2.PrivateKey' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---PrivateKeyの代わりに、適切な GetRSAPrivateKey() や Get...
// 非推奨・旧形式
var privateKey = certificate.PrivateKey;
// 修正方法
var rsaPrivateKey = certificate.GetRSAPrivateKey(); // R...
var ecdsaPrivateKey = certificate.GetECDsaPrivateKey(); ...
--SYSLIB0041: 'Rfc2898DeriveBytes(...)' は旧形式です
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---ハッシュ アルゴリズム名 (既定値は HashAlgorithmName.SH...
// 非推奨・旧形式
var pdb = new Rfc2898DeriveBytes("password", salt);
// 修正方法
var pdb = new Rfc2898DeriveBytes(
System.Text.Encoding.UTF8.GetBytes("password"),
salt,
10000,
HashAlgorithmName.SHA256);
--ログ:https://github.com/OpenTouryoProject/OpenTouryo/c...
-WFOのエラー~
.NET9以降の破壊的変更らしい。
--WFO1000: プロパティ "property" は、プロパティ コンテン...
https://learn.microsoft.com/ja-jp/dotnet/desktop/winforms...
---プロパティがバイナリ シリアル化される設計のセキュリテ...
---プロパティがデザイナーによってシリアル化される場合は、...
・プロパティに DefaultValueAttribute を追加し、既定値を指...
・プロパティに DesignerSerializationVisibilityAttribute ...
---プロパティがデザイナーによってシリアル化される場合は、~
・プロパティに DesignerSerializationVisibilityAttribute ...
***NuGet最新化 [#u982818c]
-変更点:
--サポートされる *.pdb のフォーマットはportableに限定され...
--nuspecファイルは1つだけ作成すれな良くなった(*.nupkgフ...
--NuGetサーバーでのサポートがなくなり、ソース・リンク(詳...
--ちなみに、nuget packでのソース同梱もできなくなっている...
--シンボルサーバー含めた動作
---.NET Coreはローカル・ソース・ファイルを使用してステッ...
---.NET Frameworkは正しく *.pdb が取れているがステップ・...
-参考:[[NuGet導入、NuGet登録]]
--[[NuGetパッケージの作成手順]]
--[[NuGet導入後のデバッグ方法]]
***VS2026 Insider [#a73ece13]
-.NET10
--ビルドができることを確認
--WFO1000のコード修正の実施(Visible明示)
--新規のワーニング確認(ライブラリ側):
---warning MSB3277: "Microsoft.Extensions.DependencyInjec...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0057: 'X509Certificate2.X509Certificate2...
---warning SYSLIB0060: 'Rfc2898DeriveBytes.Rfc2898DeriveB...
---warning NU1510: PackageReference System.Net.Http は排...
---warning NU1510: PackageReference System.Reflection.Emi...
---warning NU1510: PackageReference System.Reflection.Emi...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1904: パッケージ 'System.Drawing.Common' 4.7...
--新規のワーニング確認(UIサブシステム側):
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference System.Security.Crypt...
---warning NU1510: PackageReference Microsoft.Extensions....
---warning NU1510: PackageReference System.Formats.Asn1 ...
---warning ASPDEPR008: 'IWebHost' は旧形式です ('IWebHost...
---warning ASPDEPR008: 'WebHost' は旧形式です ('WebHost i...
---warning ASPDEPR008: 'IWebHostBuilder.Build()' は旧形式...
-既存ビルドの確認
--MSBuildで問題発生 → パス変更
--新規のワーニング確認:既存は無し
***実施結果 [#j9074396]
3Qには.NET01が正式リリースされる予定なのでUIサブシステム...
-確認済みのワーニング落とし
-UIサブシステム側のビルド実行
-新規のビルドエラー、ワーニング落とし
**10-12月 セルフ&オフライン部会(第48-50回) [#j0ba9046]
***.NET10マイグレ [#n2656a9a]
9月にはリリース候補版(RC)が公開、11月11日に正式リリース予定
-SYSLIB 系の警告~
.NET 10 以降で発生。
--SYSLIB0057: 'X509Certificate2.X509Certificate2(XXXX)' ...
---https://learn.microsoft.com/ja-jp/dotnet/fundamentals/...
---今までは秘密鍵も公開鍵も同一APIだったが、以降はパスワ...
---(byte[])
// 非推奨・旧形式
return new X509Certificate2(
PrivacyEnhancedMail.GetBytesFromPemString(
pemString, PrivacyEnhancedMail.EnumToString(label...
// 修正方法
return X509CertificateLoader.LoadCertificate(
PrivacyEnhancedMail.GetBytesFromPemString(
pemString, PrivacyEnhancedMail.EnumToString(label...
---(string)
// 非推奨・旧形式
X509Certificate2 x509Key = new X509Certificate2(certific...
// 修正方法
X509Certificate2 x509Key = X509CertificateLoader.LoadCer...
---(string, string?)
// 非推奨・旧形式
X509Certificate2 x509Key = new X509Certificate2(certific...
// 修正方法
X509Certificate2 x509Key = X509CertificateLoader.LoadPkc...
---(string, string?, X509KeyStorageFlags)
// 非推奨・旧形式
X509Certificate2 x509Key = new X509Certificate2(certific...
// 修正方法
X509Certificate2 x509Key = X509CertificateLoader.LoadPkc...
--SYSLIB0060: 'Rfc2898DeriveBytes.Rfc2898DeriveBytes(stri...
---https://learn.microsoft.com/en-us/dotnet/fundamentals/...
---new Rfc2898DeriveBytes.GetBytes(x) → Rfc2898DeriveByte...
// 非推奨・旧形式
Rfc2898DeriveBytes kdf = new Rfc2898DeriveBytes(password...
byte[] derivedKey = kdf.GetBytes(64);
// 修正方法
byte[] derivedKey = Rfc2898DeriveBytes.Pbkdf2(password, ...
-NUの警告
--NU1904:脆弱なパッケージ、disconの「DotNetZip」と、その...
--NU1510:不要なパッケージ、単純にNuGet参照を削除(そもそ...
---Microsoft.Extensions.Configuration系は、Web系と指摘は...
---System.Formats.Asn1は、コレまで消すと動かなくなってい...
---System.Security.Cryptography系は、引き続き、使用してい...
---System.Reflection.Emit系も、引き続き、使用しているが、...
---System.Net.Http は通信制御をドロップしたためと思われる。
-その他
--CA1416:必要に応じてプラットフォーム対応を実装
---以下の対応が可能だが、クロスコンパイルを考慮すると、い...
---関数なら、[SupportedOSPlatform("windows")]、[Supported...
---コードブロックの場合、~
・if (os.Platform == PlatformID.Win32NT)、PlatformID.Unix...
・if (OperatingSystem.IsWindows())などが使えるが、elseにN...
・その他、何らかの条件分岐が、ある程度サポートPFを暗示し...
参考:https://github.com/OpenTouryoProject/OpenTouryo/pul...
***実施結果 [#s2339d94]
リリースが出来るか確認
-リリース前の確認
--ライブラリがバグ無く動くかをCIによって確認
--ユーザーインターフェイスがバグ無く動くかをCIによって確認
---Web、C/SでのCRUD実施
---カスタム・コントロール系
--VB版の動作確認や追いつき修正の実施
-[[リリース・エンジニアリング]]
***今後の予定 [#df047c6c]
OAuth2 / OIDCアーキテクチャ対応版:再起予定
-[[LocalServicesOnDocker>https://github.com/NetDevInfraWG...
-汎用認証サイト、フロントエンド、リソースサーバの移行&動...
--汎用認証サイト
---ビルドシステム・エンハンス
---ドロップ~
・非対応データプロバイダ~
・FIDO2を一時的に
---アップデート対応~
・NuGetパッケージのアップデート対応
・棟梁ベース・ライブラリのアップデート対応~
---「app.config、appsettings.json」対応~
・発掘(OneDriveから)~
・.gitignoreへの登録~
・Tortoiseのignore-on-commitでは恒久的にならない。~
・ファイルのヘッダに「_」を付与しリネーム。~
・実値を入れたファイルは「_」を削除する。
---リソース・ファイルの配置
C:\...\root\files\resource\MultiPurposeAuthSite
--汎用認証サイト(.NET Framework版)
---アップデート対応~
NuGetの*.ja(日本語)パッケージの削除(バージョンアップ阻...
--汎用認証サイト(.NET Core版)
---ビルドシステム・エンハンス~
Grunt廃止、_Layout.cshtml(gruntfile.jsのbundle、uglifyの...
--リソースサーバ
--フロントエンド
*参考 [#ybd24dca]
**[[部会メモ(開発基盤部会)>https://dotnetdevelopmentinf...
ページ名: