GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の、製品のTIPSや発売などに関する最新情報をお届けします。

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

  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉ではエンジニア経験者を幅広く募集しています。
  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の製品のデモアプリケーションをお試しください。