ニュース

改元・新元号に備えた変更が「.NET Framework」に ~一部は7月の月例更新で自動配信

“平成32年”や“昭和65年”といった表記に対応、.NET 3.5もレジストリを参照する仕様に

公式ブログ“Japan New Era Name Support Blog”

 日本マイクロソフト(株)は26日、来年に予定されている改元に備えた変更を「.NET Framework」に加えることを明らかにした。今回発表された変更を含む更新プログラムは、6月26日(米国時間)にオプションとして“Microsoft Update Catalog”でリリースされる。

 公式ブログ“Japan New Era Name Support Blog”によると、更新プログラムの変更内容は大きく2つに分けられる。

 1つ目は、“平成32年”や“昭和65年”といった各元号の最終年を超えた和暦表現への対応だ。こうした表現は法令上無効なものでないにもかかわらず、「.NET Framework」のDateTimeオブジェクトで処理すると例外(“System.FormatException”や“System.InvalidCastException”など)をスローする仕様になっていた。7月の更新プログラムではこれが改められ、正しく処理されるようになる。

 なお、例外をスローする旧仕様も互換性のために残されるとのこと。「.NET Framework 4.6」以降のアプリでは“AppContext”を設定することで、「.NET Framework 4.5.2」以前のアプリではレジストリを編集することで旧仕様が有効となる。

 もう1つの変更は、「.NET Framework 3.5」(2.0/3.0も含む)の和暦算出処理がハードコードされている問題の修正だ。「.NET Framework 4」以降ではレジストリで定義された元号情報をもとに和暦の算出を行うため、新元号への対応はレジストリの書き換えで対応できる。しかし、「.NET Framework 3.5」まではそのような仕組みになっていないため、新しい元号へ対応するにはモジュールごとアップデートする必要があった。

 今後配信される更新プログラムではこの問題が解決され、「.NET Framework 3.5」でも「.NET Framework 4」以降と同様、レジストリに登録された元号の定義を参照して和暦の算出を行うようになる。

 なお、1つ目の変更は7日10日(米国時間)に予定されている月例アップデートの一部として自動配信されるとのこと。2つ目の変更は既存の「.NET Framework 3.5」アプリへの影響が懸念されるため、7月の月例アップデートには含まれない。

お詫びと訂正:記事初出時「.NET Framework 3.5」の変更が7月の更新プログラムに含まれるかのような表現がありましたが、実際は含まれません。お詫びして訂正いたします。