Cube シリーズの .NET Framework に関する対応方針

CubePDFCubePDF UtilityCubeICE を始め、弊社が Cube シリーズとして公開している Windows ソフトウェアは .NET Framework と呼ばれる技術を利用しています。

.NET Framework には複数のバージョンが存在しており、Cube シリーズでは現在 3.5 または 4.5 以降(CubePDF Utility のみ 4.5.2 以降)がインストールされていれば利用可能ですが、下記の理由により、近々この動作環境を .NET Framework 3.5 または 4.7 以降 に変更する予定です。

  • .NET Framework 4.5.2、4.6、および 4.6.1 のサポートが、2022 年 4 月 26 日に終了する(参考:ライフサイクルに関する FAQ - .NET Framework)。
  • 最新の開発環境である Visual Studio 2022 において、.NET Framework 4.0~4.5.2 をターゲットにしてビルドする事が不可能である(参考:.NET Framework のバージョンおよび依存関係)。
  • CubePDF シリーズの主要依存ライブラリの一つである itext7 の最新バージョンを利用するためには .NET Framework 4.6.1 以降をターゲットとする必要がある。
  • .NET Framework 4.7 において、Windows Forms アプリケーション向けに高 DPI および動的 DPI に対応するための機能が追加されている(参考:.NET Framework の新機能)。

この変更に関しては、弊社の各種ライブラリのバージョンが 7.0.0 になったタイミングで適用されます(現在は、CubePDF SDK は 6.0.2、それ以外の共有ライブラリは 6.0.0)。最終的なアプリケーション部分への適用については、該当の変更が適用された最初の更新時に改めて告知します。

アプリケーション利用者への注意点

Cube シリーズのアプリケーションの利用者については、まずは .NET Framework 4.7 以降に更新する事をご検討下さい。尚、多くの Windows 環境においては、Windows Update を通じて自動的にアップデート済みと予想されますので、その場合には特に問題になる事はありません。

何らかの理由で .NET Framework 4.7 以降に更新できない環境については、.NET Framework 3.5 をターゲットにしてビルドしたものが(.NET Framework 4.0 以降の)互換モードで動作する事となります。この場合、細かな部分で .NET Framework 4.7 以降のものと挙動が異なる可能性があります。例えば、itext7 は .NET Framework 3.5 では利用できないため、CubePDF シリーズの .NET Framework 3.5 向けアプリケーションでは旧バージョンである iTextSharp (itext5) を利用して同等の機能を実現しています。このような事情もあり、弊社としては、可能な限り .NET Framework 4.7 以降がインストールされた環境で利用する事を強く推奨しています。

尚、Cube シリーズでは、インストール時に PC にインストールされている .NET Framework のバージョンを判別して、コピーするファイルを切り替えています。そのため、お手数ですが .NET Framework を更新した場合には Cube シリーズの上書きインストールを再度実行して下さい。

ライブラリ利用者への注意点

次に、主に CubePDF SDK を利用しているユーザーに向けた注意点を記載します。前述した通り、ライブラリに関しても今後数ヶ月以内に .NET Framework 4.7 以降となる予定です。この変更に際して、ライブラリ利用者の対応方法を推奨順に記載します。

  1. TargetFramework を 4.7 (net47) 以降に変更する。
  2. TargetFramework を 4.6.1 (net461) 以降に変更した上で、.NET Standard 2.0 (netstandard2.0) をターゲットにしてビルドしたライブラリを利用する。
  3. 6.0.0 (CubePDF SDK は 6.0.2 まで)を利用する。
  4. TargetFramework を 3.5 (net35) に変更する(あまり推奨しない)。

Cube シリーズのライブラリに関しては、.NET Framework 向けの他に .NET Standard 2.0 をターゲットにしてビルドしたものも公開しています。.NET Standard 2.0 に関しては、.NET Framework 4.6.1 以降で対応との事なので、これらのものを利用する事により net461, net462 を TargetFramework に指定してもビルド可能と予想されます。今後、開発環境においてもビルドのテストを実施し、何か問題等が発覚したら告知する予定としています。

6.0.0 の利用を続けると言う選択肢に関しては、しばらくは問題ないかと思いますが、何らかの脆弱性が発覚した場合には非推奨となります。基本的には、過去のバージョンに対して最新バージョンとは別に更新する事はありませんので、あくまでも移行期間と位置付けて頂きますようお願いします。もし脆弱性等が発覚した際には、その際に改めて告知する予定としています。

.NET (旧 .NET Core)への対応について

最後に、今回の変更と直接関係する訳ではありませんが、.NET に関する対応方針も併せて記載します。.NET に関しては、これまで主流であった .NET Framework とは別に .NET Core と呼ばれるフレームワークが存在します。この .NET Core が、2020 年にリリースされた .NET 5 より .NET と呼称変更され、今後の主流になる事が発表されました。

Cube シリーズにおいても時期を見ながら .NET 版も公開する予定ですが、この際には 動作環境を .NET 6 以降 とする予定です(.NET 版を公開した後も、当面 .NET Framework 版は並行して更新する予定)。これは、将来的な後方互換性に関するリスクをできるだけ低減させる目的としていますので、ご理解頂けると幸いです。

尚、ライブラリに関しては、Windows Forms および WPF が絡まない部分は当面 .NET Standard 2.0 を TargetFramework とする予定ですので、ライブラリの利用プロジェクト側では .NET Core 3.1 等をターゲットにする事も可能です。