先日以下の記事で、.NET Coreに対応していないActiveReportsの帳票をHTML5ビューワを使用してASP .NET Core Webアプリケーションで表示させる方法を解説しました。
この記事にも書きましたが、.NET Coreへの対応についてはお客様からもよく問い合わせがあり、非常に注目されている技術の1つと言えます。
そこで今回は、
ActiveReportsを構成するコンポーネントを改めておさらいし、それらの.NET Core対応可否について、少し掘り下げてみたいと思います。
ActiveReportsを構成するコンポーネント
ActiveReportsは、「帳票レイアウトのデザイン」、「帳票の作成」、「プレビュー」、「印刷」、「各種形式への保存」といった、帳票のライフサイクルのすべての工程をカバーする製品です。
これらの各工程と、ActiveReportsの各機能(コンポーネント)の関係は以下のようになります。
さらにこれらの機能とそのアプリモデル、ベースとなるテクノロジーを表にしてみると以下のようになります。なお、印刷機能は帳票ビューワのコンポーネントの一部として提供しており、かつ最終的には.NET Frameworkの印刷APIを呼び出すような形式のものなので割愛します。また、帳票ビューワはWindowsフォーム、WPF、ASP.NET Webフォーム、HTML5/JavaScriptと、アプリケーションの形態にあわせて4種類提供しています。
機能名 | アプリモデル | ベーステクノロジー |
---|---|---|
帳票デザイナ | Windowsフォーム用 コンポーネント |
.NET Framework |
帳票エンジン | クラスライブラリ | |
エクスポート機能 | クラスライブラリ | |
ビューワ (Windowsフォーム用) |
Windowsフォーム用 コンポーネント |
|
ビューワ (WPF用) |
WPF用 コンポーネント |
|
ビューワ (ASP.NET Webフォーム用) |
ASP.NET Webフォーム用 コンポーネント |
|
ビューワ (HTML5用) |
JavaScriptライブラリ | JavaScript |
.NET Coreへの対応について考える
これらActiveReportsを構成するコンポーネントの.NET Coreへの対応について考えてみます。
まずHTML5用ビューワはクライアントサイドで動くJavaScriptのライブラリなので、.NET Coreへの対応を考える必要はありません。すでにWebアプリとしてクロスプラットフォームで使えます。
それ以外のコンポーネントのベーステクノロジーは.NET Frameworkです。.NET Frameworkでしか使えないAPIやWindowsのAPIも内部で使用しているので、クロスプラットフォームな.NET Coreでは当然動きません。.NET StandardのAPIを使用して作り替えていく必要があります。
またアプリのモデルも重要です。現在最新の.NET Core 2.1はWindowsフォームやWPF、ASP.NET Webフォームをサポートしないため、.NET Coreに対応することができません。
将来的には.NET Core 3.0でデスクトップアプリも.NET Coreに対応される予定があります。Windows環境オンリーのサポートになりますが、パフォーマンス面などで恩恵を受けることができます。
一方、ASP.NET Webフォームは公式のドキュメントでも.NET Coreへの対応予定がないとされています。
そのため、現状.NET Core対応を進められるコンポーネントはクラスライブラリの形態である、帳票エンジンとエクスポート機能に絞られます。ランタイムのみのサポートで良いと考えればこれだけでも十分でしょう。もちろん帳票の表示部分にはHTML5用ビューワも使えます。
.NET Core対応版の提供時期は?
帳票エンジンとエクスポート機能の.NET Core対応版(.NET Standard対応版)は現在も開発が進められていますが、提供時期に関してはお伝えできる情報はございません。完成までもう少し時間がかかります。
ActiveReportsの.NET Core対応の開発状況については、2018年7月10日に開催した「Toolsの杜(ツールノモリ)」のセッションで、ちょっとだけ触れました。公開しているセッション資料の40ページ以降に.NET Core対応に関する情報がありますのでご覧ください。
https://devlog.mescius.jp/entry/2018/07/19/forest-of-tools-dotnet