かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

C#

Azure Bot Services の SDK が v4.3.x にアップデートして色々変わってる件について

噂には聞いてたんですが、ダウンロードしてびっくりしました。 気づいた点をさくっと書いておこうと思います。 因みにリリースノートはこちら。 github.com Controller クラス復活 今まで api/messages エンドポイントを定義するのは Azure Bot Services の …

Visual Studio でコードを .editorconfig に従って一括フォーマット

Visual Studio 2019 のリリースノートにしれっと入ってる dotnet-format コマンド。 github.com このコマンド一発でインストールできるのが素敵です。 dotnet tool install -g dotnet-format パッケージマネージャーコンソールか立ち上げて dotnet-format っ…

Azure Bot Service で Microsoft Teams のボットにボタンで選択肢を出したい

これでハマったのでメモ。 もし、もっと楽な方法があったら教えてください。 やりたかったこと 以下のようなメッセージを生成したかった。 xxxxですか? [ はい ] [ いいえ ] 質問に対して「はい」か「いいえ」をボタンで出したかった。 最初にやったこと Co…

Azure Bot Service の LINE Connector でスタンプみたいな LINE 固有機能を使おう

先日書いた Azure Bot Service の LINE 対応ですが、スタンプみたいな LINE 固有機能使いたいんだけどどうするの?という疑問がわいてくるような気がします。 こういう複数のプラットフォームに対応するときは、機能が最大公約数になってしまうのですが、ち…

Azure Bot Services でボットを公開するための最小のコードと手順

Azure Bot Services にボットを公開する最小のコードと手順をやってみようと思います。 というのも、必要最低限を把握してないとその他の応用の部分がどのコードなのかっていうのが把握しにくいと思うので自分は最低限のコードを組むのは一回流行ってる気が…

Azure Bot Services の LINE のチャンネルを試してみた

はじめに とりあえず LINE に繋ぐ手順を試してみました。 本文 昨日みつけた LINE のチャンネルを試してみました。ドキュメントもあるのでそっち見てもOK docs.microsoft.com LINE の Developers Console で適当にプロバイダーを作ります(すでにあるならそ…

Bot Framework のサンプルの QnA Maker の Active Learning をデプロイする方法

最近追加された Active Learning ですが簡単に言うと利用状況を見て、この QA にはこんな質問追加したらいいんじゃないの?っていうのをポータルに出してくれるみたいですね。 docs.microsoft.com 暗黙的フィードバックと明示的フィードバックがあるみたいで…

Visual Studio で名前変更のリファクタリングの一番簡単な方法

C#

個人的な主観が入った小ネタです。 Visual Studio には様々なリファクタリングのための機能がついています。 個人的に、その中で一番お世話になってるのが名前変更です。例えば… あっ、クラス名イケてない… このプロパティ名ちょっと失敗したな この変数名ち…

C# の複数ファイルの一括フォーマットツール

C#

今日、Visual Studio 2019 Preview 3 のリリースノートを読んでたら dotnet-format ツールが紛れてました。 github.com 一括で .editorconfig の適用してくれるとか。ありがたい。 試してみよう ということでインストールしてみます。.NET Core の最新版が入…

Bot Framework SDK v4 を使うときの 2019/02/12 時点で最適だと思う ConfigureServices メソッドの書き方

なんというか Bot Framework SDK v4 は v3 と違って細かくカスタマイズ可能な部品が提供されてて、それを組み合わせて使うという感じになってるので、より挙動のカスタマイズがしやすくなっていたりします。 例えば LUIS や QnA Maker との連携機能の提供の…

Livet 2.2.0 をリリースしました

しました。 www.nuget.org LivetExtensions も更新しました。 www.nuget.org プロジェクトテンプレートも最新版を初期状態で参照しているように Visual Studio の拡張機能も更新しています。 marketplace.visualstudio.com 変更内容 GitHub のリリースページ…

Azure App Service で Azure Key Vault がめちゃ簡単に使えるようになりました(プレビュー)

プレビュー機能ですが、Azure Functions とかで Key Vault が凄く簡単に使えるようになってます。 今までは、少しだけとはいえプログラムに手を入れないといけなかった部分を Azure ポータルのアプリケーション設定に指定するだけでよしなにしてくれるように…

何処でも動くサーバーレスプラットフォーム Azure Functions

この記事は Serverless2 Advent Calendar 2018 の 2 日目の記事です。 qiita.com 本文 最近 Docker でパッケージングしたらどこでも動くが実現してるようなものなので、実質 Docker でパッケージング出来たら run anywhere な感じということです! そして、A…

Azure Functions + Application Insights で POST されたデータのログを残す(C# & JavaScript)

liginc.co.jp なんとなく見かけたので Azure でもやってみましょう。 Azure なら一番簡単に REST API 作るんだったら Azure Functions かなぁ。ログは Application Insights かなぁ。 Azure Functions のドキュメント - チュートリアル | Microsoft Docs Azu…

Microsoft Tech Summit 2018 で Windows 10 対応のデスクトップアプリを作る技術 というタイトルで発表してきました

2018/11/05 - 2018/11/07 で開催された Microsoft Tech Summit 2018 で登壇してきました。 その時のセッション用に準備したコードを以下のリポジトリに公開しました。 github.com 伝えたかったこと AI とか無関係じゃないし、新機能とかもあるし、デスクトッ…

Azure Functions で Alexa, Google Home, LINE Clova 対応のスキル(アプリ?アシスタント?)を作る方法

スマートスピーカーのスキルは、基本的にスマートスピーカーが受け取った音声をテキスト化する部分、テキストから意図(インテント)とキーワード(スロットとかエンテティとかって言われる)を抜き出すところまで、各スマートスピーカーを提供してくれてい…

Prism の v7.1 がリリースされてました

Prism v7.1 が2週間ちょっと前にリリースされてました。 github.com かなり大きな更新に見えます。 個人的にインパクトが大きそうだと思ったのが Autofac と MEF が Prism の将来のサポート対象から外れてしまうことでしょうか。 Autofac はイミュータブルに…

Bot Builder SDK v4 を使って QA ボットを作ってみよう

とりあえず、スタート地点は Bot Builder SDK v4 のテンプレートの中の Echo ボットを使います。 テンプレートを Visual Studio に追加するにはこの拡張機能を入れます。 marketplace.visualstudio.com Echo のテンプレートを使って作成したら、とりあえず E…

REST API から Windows アプリの操作

Project Roma というのが発表されてもうかなりの時間がたちますが、UWP 同士では GA してて Android/iOS/Microsoft Graph API は Preview な感じです。Microsoft Graph API のカテゴリを見ると Cross-device experience という名前になってますね。 早く GA …

Livet v2.0.0 をリリースしました

先日リポジトリを触る権利と nuget のパッケージの更新の権利もらったので pre バージョンを公開してたのですが新たな issue も上がってこないので一旦正式版として公開しました。 marketplace.visualstudio.com プロジェクトテンプレートもありますし。 ア…

Bot Builder SDK v4 で認証をつけてみよう

単純なものなら動くようになってきたので、個人的に興味のあった認証部分をやってみようと思う。 前回はこちら。 blog.okazuki.jp ドキュメントはこちら。 docs.microsoft.com Azure AD にアプリを追加 v1 と v2 があるけど v2 の機能が必要ない限りは v1 で…

Bot Builder SDK v4 勉強ログ

ドキュメント読みながらのメモ Bot Builder SDK v4 の処理の流れ こんな理解 ユーザーからのメッセージ from 各種クライアント(slack, teams, etc...) -> Bot Connector サービス -> Bot Builder SDK v4 製のアプリ Bot Builder SDK v4 製のアプリがメッセー…

LivetCask v2.0.0-pre1とLivetExtensions v2.0.0-pre1 を公開しました

とりあえずプロジェクトの構造を自分好みにしたのとターゲットフレームワークを現在サポートされている最低バージョンの .NET Framework の 4.5.2 まで上げました。 NuGet 以外は今のところメンテナンスするつもりはありませんが、気が向いたら vsix 作って…

LINE Clova のスキルと Windows 10 の連携

LINE Clova にアカウントリンキングの機能があるので、割と簡単に特定サービスと連携したスキルが作れます。 今回は、これを利用して Microsoft Graph API にある Project Rome を叩いて Windows 10 のアプリを起動してみました。 動作してる様子はこちら。 …

スマートスピーカーで時間のかかる処理を呼び出す方法と実装方法

スマートスピーカーって何処のやつも大体数秒でレスポンス返さないとタイムアウトになってしまいます。 なので、ちょっと時間のかかる外部 API を呼び出したらタイムアウトしてしまいスマートスピーカーがスキルを起動できないなどの定型文を話して終了して…

Azure Functions v2 で設定情報を使う方法

local.settings.json やアプリケーション設定に設定された情報を Azure Functions v2 で使う方法をメモしておきます。 Microsoft.Extensions.Configuration を使います。 ASP.NET Core ではおなじみのやつですね。local.settings.json を使うために Executio…

タイプセーフな Clova Extension の開発環境を求めて on Azure Functions その2

1 つ前の記事ではタイプセーフにしたいと思って頑張った結果 TypeScript にトライしてみました。 blog.okazuki.jp 今回は C# でいってみようと思います。 開発環境 とりあえず Windows, macOS, Linux あたりで行けるはずですが私の環境は以下のような感じで…

System.dll という名前のファイルを Visual Studio のプロジェクトに含めると System の参照が自動で置き換わる?

C#

知らなかったんですが、プロジェクトの中に System.dll というファイルがあるとプロジェクトの参照のところの System が置き換わるんですね…。 ふーむ。 追記 プロジェクトのルートフォルダーに置いたら検索の優先順位的に仕方ないかなと思うのですがルート…

LINE Clova Extension を作るときの JSON をシリアライズとデシリアライズするクラスの入れ物をライブラリにしました

1 つ前の記事で作った JSON のシリアライズとデシリアライズ用のクラスを毎回作るのがだるいので NuGet に放流しました。 .NET Standard のクラスライブラリで作ると Visual Studio から nupkg (NuGet にアップロードする形式) にしてくれるので楽ちん。 htt…

App.config / Web.config に秘密の情報を入れたいときはどうする? その 2

C#

blog.okazuki.jp さて、時代はクラウドですね。 ということでクラウド使う場合はどうなの?っていうケースです。 ASP.NET MVC では Web.config に設定を書きます。 開発中はローカルにあるエミュレーターとかを使うという感じにしておけば Web.config にはと…