GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の最新情報をお届けします。製品のTIPSや発売情報、イベントのお知らせなどをいち早く発信中です。

.NET Core対応に向け開発進行中!ActiveReportsの構成要素をおさらいする

先日以下の記事で、.NET Coreに対応していないActiveReportsの帳票をHTML5ビューワを使用してASP .NET Core Webアプリケーションで表示させる方法を解説しました。

この記事にも書きましたが、.NET Coreへの対応についてはお客様からもよく問い合わせがあり、非常に注目されている技術の1つと言えます。

そこで今回は、 ActiveReportsを構成するコンポーネントを改めておさらいし、それらの.NET Core対応可否について、少し掘り下げてみたいと思います。

ActiveReportsを構成するコンポーネント

ActiveReportsは、「帳票レイアウトのデザイン」、「帳票の作成」、「プレビュー」、「印刷」、「各種形式への保存」といった、帳票のライフサイクルのすべての工程をカバーする製品です。

f:id:GrapeCity_dev:20180807175404p:plain

これらの各工程と、ActiveReportsの各機能(コンポーネント)の関係は以下のようになります。

f:id:GrapeCity_dev:20180809150534p:plain

さらにこれらの機能とそのアプリモデル、ベースとなるテクノロジーを表にしてみると以下のようになります。なお、印刷機能は帳票ビューワのコンポーネントの一部として提供しており、かつ最終的には.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.grapecity.co.jp/entry/2018/07/19/forest-of-tools-dotnet