かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

Livet 用の Visual Studio 2017 拡張機能を公開しました(テンプレートやスニペット入り)

意外と作るのが簡単だったので作ってみて公開しました。 marketplace.visualstudio.com なんか文字化けしてますが、後でなおそう…。とりあえず体調悪くて仕事休んだけどパソコンの前に座ってるくらいは平気なのでリリースしました。C# のみです。 VB は構文…

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

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

Livet のメンテナーになりました

WPF

まだ権限追加してもらっただけで何もしてないですが尾上さん作の WPF で MVVM で開発するときに国内でよく使われてる Livet のリポジトリに push する権限と nuget にパッケージをアップロードする権限を付けてもらいました。 以下のようなポリシーでやって…

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…

LINE Clova のスキルを開発するときに便利なもの

LINE Clova のスキル開発するときって不便じゃないですか? 公式のサイトのシミュレーターというか対話モデルをテストするところで文字打って確認できるけど、実際の会話の流れとか(SessionAttributes の値とか…)も一緒に送ったり LaunchRequest とかはそ…

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

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

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

C#

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

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

やってみた。実用に耐えうるかはわからないけどメモ。 環境構築 node.js 8.11.x(LTS) Azure Function Core Tools v2(preview) VSCode Azure 拡張機能 Azure Functions 拡張機能 TypeScript 3.0 npm install -g typescript やってみよう Visual Studio Code …

Azure Functions で clova-cek-sdk-nodejs を使ってみよう

前試したときはダメだったのですが azure-function-express というモジュールが先日 v2.0.0 にアップデートしてたので試してみました。環境は以下のような感じです。 Azure Functions Core Tools 2.0.1-beta.38 node.js v8.11.4 ただ、前と同じでノーレスポ…

Clova Extensions Kit のチュートリアルを Azure で動かす手順

Clova Extensions Kit のチュートリアルにサイコロをふってもらうやつがあります。 これを動かしてみましょう。 まず、ドキュメントにある通り clone してきて npm install までやります。 git clone https://github.com/line/clova-extension-sample-dice.g…

Google Assistant アプリの開発のバックエンドに Azure Functions を使おう

ということでいってみようと思います。 Dialogflow で作業 これは特に Azure に依存した話しではないので置いておいて適当にインテントとか作ります。 Azure Functions で作業 ポータルでぽちぽちやってもブラウザ上でコーディングできるのですが、今現在で…

UWPで子 Window をサブディスプレイ(プロジェクターなど)に表示する方法(ただしフルスクリーンでな!)

UWP

UWP で子ウィンドウ作れるんですが、場所の制御方法がイマイチ自由度が無いですね…。 変な位置に隠れてウィンドウ出して、こそこそ動き回るタイプのアプリを作らせないためでしょうか? 今回は、メインのウィンドウから子ウィンドウを出して、そいつをサブデ…

Maven + Spring Boot で最終成果物の jar のファイル名を変更する

デフォルトだとファイル名にバージョン番号とか入っちゃいますよね。 それを辞めたいときは pom.xml の build タグの下に finalName タグで指定できます。こんな感じで。 <project ...> <build> <finalName>app</finalName> ... </build> ... </project> ... これで成果物は `app.jar` になります。

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

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

Azure Functions で LINE Clova の簡単な Extension を作成するを C# でやってみた

LINE Clova の スキルが開発できるようになりましたね!ということでドキュメントを見ると node.js でやってみようぜ!ってノリで紹介されてます。 clova-developers.line.me 今回は、ここの node.js で作ってるサーバーサイドを Azure Functions + C# の組…

他の人のアカウントに提出する用に UWP アプリをビルドする方法

UWP

一番簡単なのは、ストアのダッシュボードから Azure AD を紐づけて、そこに開発者ロールで追加してもらえば、普通に Visual Studio からストア向けパッケージ作れるんですが、それが出来ないケースでの方法です。 アカウント ユーザーの管理 - UWP app devel…

Prism.Forms 7.1 の新しい XAML でのナビゲーション定義

Xamarin.Forms 向けの Prism の 7.1 (2018/07/17 時点で preview)で便利な機能が追加されてたので紹介します。 ドキュメントページはこちら。 Xaml Navigation | Prism これが無い時はどうしてた? 画面遷移するだけの DelegateCommand 型のプロパティを定…

Azure Functions v2 で MSDeploy 時にファイルがロックされてるエラーが出る

ぼちぼち Azure Functions v2 を使い始めてみよう(まだ preview だけど)と思ったら Visual Studio からの再デプロイに失敗しちゃう…。 DLL がロックされてるらしくて Function App を停止してもダメでした。回避方法はアプリケーション設定に以下の値を追…

Azure Functions の Durable Functions を使って恋人を作ろう

Firebase って使うと色々な効能があるというのを見かけたんです。 Firebaseすごすぎるプレゼン聞いてる pic.twitter.com/tkXHFBRhSY— Tecco@新宿の暇人 Go (@tecco_master) July 5, 2018 じゃぁ Azure Functions を使ってこれらのメリットのどれか実現できな…

Reactive Extensions とか知らない人向けの ReactiveProperty のはじめかた その 2

blog.okazuki.jp はじめに 最初の記事を受けて使い始めてきた人向けのちょっと Rx っぽい使い方を紹介します。 ReactiveProperty 値を加工して代入しているケース ReactiveProperty に値を代入するケースがあると思います。例えば以下のような感じですね。 p…

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

C#

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

Google アシスタントアプリを開発する時に Fulfillment の先を C# で開発する方法(スマートスピーカーを遊びたおす会での LT 内容)

別に C# じゃなくても開発できるんですが個人的に一番好きな言語なので。 Fulfillment は決まった形の JSON でやり取りするだけの、ただの webhook なので POST を受け取る webhook が使えれば何でもいいです。 Azure のアカウントを作る とりあえずそこそこ…

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

C#

入れないのがいいんですけどね。ローカルで実行するときに、開発用のキー情報を入れることもあるでしょう。 でもリポジトリには入れたくないという感じ。 App.config を分割する App.config を作って、こっちには当たり障りない情報を書きます。そして、appS…

ReactiveProperty v5.1.1 をリリースしました

v5.1.0 は nuspec の定義間違えたので取り下げました。 機能としては、初期状態でバリデーションロジックが必ず実行されて INotifyDataErrorInfo インターフェースに対応している人たちから見るとエラーがある!っていう状態になっていたので、最初はバリデ…

Windows 8.1 アプリから UWP へのアップグレード時の ApplicationData.Current.LocalFolder の中身

UWP

前準備 アプリ名を予約しておきます。 同じアプリに紐づけた Windows 8.1 アプリと UWP アプリを準備します。 試したこと ローカルデータの保存場所 UWP やストアアプリでローカルデータを保存しておくための ApplicationData.Current.LocalFolder のパスが…

nuget から依存関係を含めたライブラリを取ってくる方法

こういうのがあるらしい。 github.com あとで試そう。

Power Point で書式のコピペをしたい

Power Point で資料を作っていて「あそこと同じ書式に変更したい!!」と思うことってありますよね? テキストの書式しかり、図形の書式しかり。 そんなときは書式のコピー元で Ctrl + Shift + C で書式をコピーできます。 そして書式のコピー先で Ctrl + Sh…

ReactiveProperty v5.0.0 をリリースしました

一週間くらい前に公開された System.Reactive 4.0.0 に対応しました。 System.Reactive 4.0.0 が .NET Standard 2.0 になったので、それに合わせて ReactveProperty も .NET Standard 1.3 から 2.0 になりました。なので、.NET Framework だと 4.6.1 以降、U…