Microsoft Bot Framework v4 完全制覇 : 目次

とうとう Microsoft Bot Framework v4 が正式リリースとなりました。そこで「Microsoft Bot Framework v4 完全制覇」と題して情報を発信していきます。

記事の数が多くなりそうなので、とりあえず目次記事を仮置きして、新しい記事出たらここにリンクしていきます。また記事で取り扱うサンプルのボットは初めから順番に読んでいくことを前提としています。

# 前提

このシリーズでは、オープンソースとして公開されている Bot Builder のレポジトリの情報も紹介するため、C# がある程度読める前提としています。C# 初心者の方には少しハードルが高いかもしれませんが、事前にご了承ください。

尚、サンプルコードは dotnet core ベースでの開発を前提としています。

# Bot Builder v4 でボット開発

このシリーズでは、BotBuilder v4 を使ったボット開発の機能を見ていきます。また BotBuilder v4.3 以降では ApiController を使った方法が使えるようになりましたが、以下の記事では ASP.NET Core ミドルウェアのみを利用した方法を使っています。

[最小限構成でまずはオウム返しボットを作る](https://qiita.com/kenakamu/items/ccc8559cd9b8c1b20f7a)
[ボットが起動する仕組みを理解する](https://qiita.com/kenakamu/items/25667b7359bc1f38cf15)
[アダプター、TurnContext、Activity](https://qiita.com/kenakamu/items/55c93c044a9ee99bbe22)
[単純なダイアログとステート管理](https://qiita.com/kenakamu/items/d6e2e185aed491f83288)
[より高度なダイアログ](https://qiita.com/kenakamu/items/4833b290bb9e03bd281c)
[複数ダイアログの管理](https://qiita.com/kenakamu/items/3fbfac20a1954164e8fd)
[中断処理とグローバルコマンドのハンドリング](https://qiita.com/kenakamu/items/7e0dd307f7f4d0a6cb6f)
[LUIS を使った自然言語処理](https://qiita.com/kenakamu/items/f580ab6a8a0f10e94edb)
[他サービスに対する認証](https://qiita.com/kenakamu/items/2c33a3c17103e8939360)
[Microsoft Graph 連携](https://qiita.com/kenakamu/items/d6e05454d04d63904305)
[ダイアログにおけるリトライの処理と値の検証](https://qiita.com/kenakamu/items/01ab7f0332eb8138d5f7)
[ダイアログから送れるメッセージの種類](https://qiita.com/kenakamu/items/eb3e7db2141525bd95ef)
[ダイアログから基本的なアダプティブカードを送る]
(https://qiita.com/kenakamu/items/2725651445e55ec4545c)
[ダイアログから高度なアダプティブカードを送る](https://qiita.com/kenakamu/items/db725ae83e1a187271a6)
[多言語対応を行う - リソースファイルの利用](https://qiita.com/kenakamu/items/c824a29646db58f9f55b)
[多言語対応を行う - アダプティブカードの多言語化](https://qiita.com/kenakamu/items/b6eeb61560d4bd9a047a)
[多言語対応を行う - 翻訳サービスの利用](https://qiita.com/kenakamu/items/4ff347f708c5ca9cbec0)
[QnA Maker で簡単に QA ボットを作る](https://qiita.com/kenakamu/items/8e0195b671d629c479c2)
[プロアクティブメッセージを送信する](https://qiita.com/kenakamu/items/988c64788a9682104314)

### SDK 4.3 以降の変更
[ボットが起動する仕組みを理解する - v4.3 で追加された方法編](https://qiita.com/kenakamu/items/ea4f1a6ab6e8421b99c9)

# Bot Builder v4 でのユニットテスト

このシリーズでは、BotBuilder v4 を使ったボットのユニットテスト方法を見ていきます。
※テスト駆動開発ではなく、上記で既に作ったボットに対するテストを後から追加しています。

[ユニットテストの概要と準備](https://qiita.com/kenakamu/items/2a567e31e5d2960dda70)
[ミドルウェアのテスト](https://qiita.com/kenakamu/items/5462e4dc08518f1d6c14)
[単純なダイアログとステート管理のテスト](https://qiita.com/kenakamu/items/543752e4398d09895e0e)
[より高度なダイアログのテスト](https://qiita.com/kenakamu/items/e75ed08d89e94813190b)
[複数ダイアログのテスト、ステート管理のモック化](https://qiita.com/kenakamu/items/836de5570ece6bfaabab)
[Bot Builder v4 でのテスト : 中断処理とグローバルコマンドのテスト](https://qiita.com/kenakamu/items/8775a6ca7ae16a0c3594)
[LUIS を使った自然言語処理のテスト](https://qiita.com/kenakamu/items/7cfb49548620800757f9)
[他サービスに対する認証のテスト](https://qiita.com/kenakamu/items/668010fe13dab5e2bead)
[Microsoft Graph 連携のテスト](https://qiita.com/kenakamu/items/f1e3185648367eae75ce)
[ダイアログにおけるリトライの処理と検証のテスト](https://qiita.com/kenakamu/items/ffc12d358d994e794b51)
[ダイアログから送れる各種メッセージに対応したテスト](https://qiita.com/kenakamu/items/a8eadae13a087162776a)
[アダプティブカードのユニットテスト](https://qiita.com/kenakamu/items/52abd85f85798359716c)
[リソースファイルを使って多言語対応したボットのユニットテスト](https://qiita.com/kenakamu/items/bb0fa40d5b77e295fb3c)
[多言語対応したアダプティブカードのユニットテスト](https://qiita.com/kenakamu/items/6304e19266ba9b037157)
[翻訳サービスで多言語化したボットのユニットテスト](https://qiita.com/kenakamu/items/ed743544a00c6ed4dc98)
[QnA Maker ボットのユニットテスト](https://qiita.com/kenakamu/items/6c82e7bb5df16fda91d9)
[プロアクティブメッセージのユニットテスト](https://qiita.com/kenakamu/items/3b61a016d681de215145)

# Bot Builder v4.8 スキルを開発する
このシリーズでは v4.6 からプレビューで公開されたスキルについて、SDK 4.8 時点の情報を提供します。

[概要とソリューションの作成](https://qiita.com/kenakamu/items/02781c3fca2962cab473)
[ソリューションのスクリプト詳細](https://qiita.com/kenakamu/items/cc2b97e9a7b07d73cb6c)
[ソリューションのコード詳細](https://qiita.com/kenakamu/items/0d6a85da25390a425054)
[メッセージタイプのアクション追加](https://qiita.com/kenakamu/items/f78e0e1579ae9c6b1606)
[イベントタイプのアクション追加](https://qiita.com/kenakamu/items/b0493a618ddfcbcf0571)
[ユニットテスト](https://qiita.com/kenakamu/items/b5f48b09e6c1e20f0dae)
[スキルのデバッグ](https://qiita.com/kenakamu/items/cfb641cf391c9a72c5f6)

# Bot Builder v4.5 でのユニットテスト

SDK 4.5 より Microsoft.Bot.Builder.Testing が追加され、SDK 標準機能としてユニットテストがサポートされました。
このシリーズでは新しく追加されたユニットテストフレームワークについてみていきます。

[概要とプロジェクトの作成](https://qiita.com/kenakamu/items/3b0399a6911f377f00a9)
[IBot を継承するクラスのテスト](https://qiita.com/kenakamu/items/61a331ad5a87cf57c35a)
[ダイアログクラスのテスト - MainDialog](https://qiita.com/kenakamu/items/475e1d347d8317d815d1)
[ダイアログクラスのテスト - BookingDialog](https://qiita.com/kenakamu/items/147919f508a489e6630e)
[ダイアログクラスのテスト - CancelAndHelpDialog](https://qiita.com/kenakamu/items/471a0479d75c57914fb8)
[ダイアログクラスのテスト - DateResolverDialog](https://qiita.com/kenakamu/items/82b3f26e10457481016b)
[コントローラーのテスト](https://qiita.com/kenakamu/items/b9e531778ad9cd4d6dc7)

# SDK 4.3 の変更
[SDK 4.3 での OAuthPrompt ユニットテスト](https://qiita.com/kenakamu/items/4cef83f133513c3a54fa)

# Bot Framework Composer
このシリーズでは Composer の使い方を見ていきます。
※ 2020/5 の Build で GA したため、画面が少し変わりました。適宜読み替えてください。

[概要とインストール](https://qiita.com/kenakamu/items/caad3629629513646c9b)
[ダイアログとトリガー](https://qiita.com/kenakamu/items/2cbdc046efa663b49968)
[ユーザー入力の理解](https://qiita.com/kenakamu/items/11bae087ca93f5a6d997)
[応答の作成](https://qiita.com/kenakamu/items/365eca63f5a2951b4fc0)
[割り込みの対応](https://qiita.com/kenakamu/items/26570ca0866923a184c0)
[メモリオブジェクト](https://qiita.com/kenakamu/items/87cf57267be213653129)
[エンティティの取得](https://qiita.com/kenakamu/items/ba22b09ad587fa259e0a)
[HTTP リクエストの利用](https://qiita.com/kenakamu/items/750d6a0de2da05e8851d)
[ボットの公開](https://qiita.com/kenakamu/items/c0bce7ff54711ff53cbe)
[OAuth カードとアクセストークン](https://qiita.com/kenakamu/items/51cac6c6eb08ba492c91)
[QnA Maker 統合](https://qiita.com/kenakamu/items/a9bb3530c76ce3daaa0e)
[チャネル固有の機能の実装](https://qiita.com/kenakamu/items/562eccb756d18d24252c)
[開発時のデータベース利用](https://qiita.com/kenakamu/items/4862e2f8606d4fc3b8a0)

# DevOps

このシリーズでは、開発したボットの DevOps 化について見ていきます。

[DevOps ビルドパイプラインの作成](https://qiita.com/kenakamu/items/9ed57ca60239dc09b106)
[DevOps リリースパイプライン作成 - Azure リソースの構成](https://qiita.com/kenakamu/items/e9517f182c0283bd8343)
[DevOps リリースパイプライン作成](https://qiita.com/kenakamu/items/36b136ced489fcc2941b)

# Azure Bot Services 

[サービスの概要と初めての Web App Bot 作成](https://qiita.com/kenakamu/items/13478609120a39b7f952)
[Web App Bot の詳細を確認](https://qiita.com/kenakamu/items/817e2e98d9b20e44fa91)

つづく

# Bot Connector、ツール、実験的機能やサンプル

このシリーズでは、Bot Connector 機能や、便利なツール、および標準の枠を超える、高度な機能の紹介をしていきます。

**Bot Connector 関連**
[Bot Connector のボット利用状況分析](https://qiita.com/kenakamu/items/55dd8a2b8ea0bf80a841)
[Microsoft Team に接続する](https://qiita.com/kenakamu/items/0000dbea292f5c1be1f8)
[LINE に接続する](https://qiita.com/kenakamu/items/28b641d1476b9e0a8969)

**ボットの解析**
[Application Insights を駆使した利用状況分析](https://qiita.com/kenakamu/items/66a34ceb52244ebe7356)
[Application Insights で収集したボット利用状況を Power BI で解析する](https://qiita.com/kenakamu/items/a03f50529c1b5ef18803)

**高度な機能**
[会話のハンドオフシナリオとサンプルの紹介](https://qiita.com/kenakamu/items/09d76c7f8b8b09732cc3)

つづく

## サンプルコード

各記事に対応したサンプルコードは以下の GitHub にあります。

[GitHub: BotBuilder V4 Complete Guide](https://github.com/kenakamu/botbuilderv4completeguide)