Azure FunctionsでDioDocsを使う

本記事では、de:code 2019のEXPOオープンシアター会場で実施させていただいたセッション「Excel・PDFを生成・更新するライブラリ『DioDocs(ディオドック)』を利用してクラウドネイティブな業務アプリケーションを構築する」でお見せしたデモについて、フォローアップします。

スライドはこちらから参照いただけます。

セッションで使用したデモは以下です。

Demo1:DioDocsを利用したクロスプラットフォーム開発

ひとつ目は「クロスプラットフォーム開発でDioDocsを使用するケース」を想定して、 .NET StandardクラスライブラリにDioDocsを組み込んで、このクラスライブラリをWindows Forms、WPF、Xamarin.Forms、ASP.NET Coreなどの .NETアプリ(.NET Framework、.NET Core、Xamarin)から使用するデモ(DioDocsSamples)を紹介しました。

WPF (.NET Core)

このデモの各 .NETアプリで生成するExcelとPDFの保存先を共通化するために、Azure Storage Emulatorを使用しています。設定する接続文字列を切り替えればAzure Storageと使い分けることができます。

Azure Storage Emulator

Azure Storage Emulatorに保存したExcelとPDFはAzure Storage Explorerで参照できます。

Azure Storage Explorer

Demo2:DioDocs + Azure Functions + Azure Storage

ふたつ目は「クラウドネイティブなアプリ開発でDioDocsを使用するケース」を想定して、Azure FunctionsでDioDocsを使用するデモ(DioDocsAzFunctions)を紹介しました。

Azure Functions

このデモでは、HTTPをトリガーにして、BLOB入力バインディングBLOB出力バインディングを使用しています。

以下のように、Azure Functionsで受け取ったJSONデータをAzure Storageに配置しておいたテンプレートのExcelに追加してExcelとPDFで出力しています。

  1. HTTPトリガーでJSONデータを受け取る
  2. BLOB入力バインディングでAzure StorageからテンプレートExcelを読み込む
  3. BLOB出力バインディングでデータを追加したExcelとPDFをAzure Storageへ保存する

セッションでは回線の影響かデモが終わらず、Azure Storageへ保存した結果を表示させるところまでお見せすることができませんでした…。Demo1と同じくAzure Storage Emulatorを使用するように設定しておけば良かったと反省しています。

Azure Storage Emulatorを使用するには、local.settings.jsonをプロジェクトに追加して以下の設定を記載します。

{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"DdExcelLicenseString": "トライアル用ライセンスキー",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
}
}

あとはデバッグ実行してPostmanでJSONデータをデモのURLhttp://localhost:7071/api/Function1へ渡します。

Azure Functions

こちらもDemo1と同じように、結果はAzure Storage Explorerで確認できます。

Azure Storage Explorer

左がテンプレートのExcel、右がDioDocsでデータが追加されたExcelです。

実行結果

まとめ

DioDocsは従来のアプリケーション開発だけでなく、クロスプラットフォーム開発やクラウドネイティブ開発といった今後のアプリケーション開発にもお使いいただけるプロダクトです、というデモを交えた紹介でした。セッションには非常に多くの方にご参加いただきありがとうございました!


弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /