きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

ASP.NET WebHook (Preview)を試してみた

本エントリはASP.NET Advent Calendar 2015の1日目のエントリです。 今年はなぜかASP.NET Advent Calendar 2015を立てることになったので(とはいえ言い出しっぺではありません)、とりあえず1日目を担当させていただきます。

 

ASP.NET WebHooks

少し前のことですが、ASP.NET の新しいフレームワーク?として、ASP.NET Web Hooks (Preview)というのが登場しました。 f:id:kiyokura:20151130235836p:plain

 

アナウンスのエントリはこちら:
Introducing Microsoft ASP.NET WebHooks Preview

 

Webフック(WebHooks)とは?

WebHooks(Webフック)とはWebサービス同士を連携させるパターンというか方式というか……などど僕が説明するまでもなく、githubやSlackなど、開発者が利用するサービスではをはじめ色々なwebサービスで利用されているものですね。

参考:Webhook - Wikipedia, the free encyclopedia

 

そういえば、去年のASP.NET Advent CalendarでVS Online(現Visual Studio Team Services)のService Hookを受け取るサンプルを作ったエントリ書きましたが、まさにこれですね。

ASP.NET MVC と Azure Web Sites で VS Online のカスタムService Hookを作成してサクッとリモートデバッグする - きよくらの備忘録

 

ASP.NET WebHooksとは

詳細は上記のアナウンスのエントリや、少し前にいさみさんが翻訳されたInfoQの記事などを読んでいただくのが良いと思いますが、ざっくりいえば、

  • (いろんなWebサービスの)Webフックによる通知を受信する機能をサクっと実装する
  • 自分でWebフックを発行する機能をサクっと実装する

ためのインフラを提供するライブラリというかフレームワーク…ととらえて貰えれば良いように思います。

現時点では、 ASP.NET Web API 2 と ASP.NET MVC 5、つまるところ.NET Framework 4.xがターゲットになっているようです。

 

Receiverによるサービス対応

受信側の機能はサービスごとにReceiverを作成することで、プラガブルかつ再利用可能な形でいろいろなサービスに対応できる構造になっています。 現時点でも以下のReceiverが実装・NuGet経由で提供されています。

  • for Azure WebHooks
  • for BitBucket
  • for Dropbox
  • for Github
  • for MailChimp
  • for Paypal
  • for Pusher
  • for Salesforce
  • for Slack
  • for Stripe
  • for Trello
  • for Wordpress
  • for your custom WebHooks implementation
  • for generic WebHooks with special validation logic or security requirements

Visual Studio Onlineに対応したWeb Hooksが無い当たりどうよ、とは思いますがまあ言わないでおきます*1。 もちろん上記のようなドンピシャのReceiverが存在しないサービスであっても、RESTなWeb Hooksのサービスであれば最後の二つのパッケージを利用して(一からやるよりは)楽して実装できそうですし、オリジナルのReceiverを実装することも可能です。

また、Visual Studio 2015向けのExtension、ASP.NET WebHooks Connected Serviceもリリースされています。 このExtensionを利用すると、受信したいサービスを選択するだけで必要なReceiverのパッケージを取り込むなどの下準備を整えてくれます(後ほど実際に試してみます)。

 

もちろんOSS

ASP.NET Web HooksはもちろんOSSで、github上のリポジトリはこちら。 aspnet/WebHooks

Receiverのソースも含まれているので、独自にReceiverを実装する場合も参考にすればよさそうです。

 

リソース

オフィシャルなリソースを以下に整理しておきます。チュートリアル的な記事もあるので軽く目を通して手を動かすのもよさそうです。

 

試してみる(Slack連携)

ではさっそく、少し試してみます。 公式のエントリにもありますが、まずはSlackでサクっとやってみます。

*1:言ってる

続きを読む

Visual Studio 2015ではPowerPoint用ストーリーボード・アドオンが下位エディションでも使える

便利…だけどお高かった『ストーリーボード』機能

アプリケーションの画面デザイン案なんかを簡単に作成できる、PowerPoint用のストーリーボーディングのアドオン。こんな感じで、部品をドラッグアンドドロップでペタペタ張って画面のプロタイプを作成していく…とかできるやつです。

f:id:kiyokura:20151023002332p:plain

しばらく前から存在しているのですが(2012年ころ?)、元々Visual Studioの高価な上位エディション*1に付属するアドオンで、『知ってるけどウチの環境だと使えないし…』という人も少なくなかったと思います。

 

そんなあなたに朗報です!

 

無償版のVSでも利用できるようになった!!

このストリーボード、Visual Studio 2015では、下位の Professional どころか無償の Community エディションでも利用できるようになりました。

(……というのを今日の今日まで私もすっかり忘れていたわけですが)

 

ということで。 MSDNなどでVS2015のライセンスを持っているようでしたら、『まだ開発環境はVS2013から上げれないのよ……』というような方でもとりあえずVS2015をインストールだけしてストーリーボードだけ使うのもアリなじゃないかと思います。

Visual Studio Community 2015 でも利用出来る…のですが、使用許諾条件が私には良くわからない(VSに付属するものなのでVSの利用条件が適用されてもおかしくない気がする/VS Community 2015 の企業利用には条件がいろいろある)ので、企業で利用する場合はこのあたり気を付けたほうがよさそうです。(※企業内でも普通に使えそうな雰囲気です。末尾に追記しました。)

もちろん個人ユーザで委託業務とかで使わない分には何も気にすることは無いと思いますので、そういった方はぜひCommunityで。

 

何にせよExcelのオートシェイプやフォーム部品(!)*2を組み合わせて資料をでっちあげたりしてる方は、これを使えるとずいぶん捗るのではないでしょうか!

参考情報: PowerPoint を使用したアイデアのストーリーボード

 

追記

@kkamegawaさんに教えていただいたのですが、VS Commuity 2015でいれた場合でも、ストーリーボードアドオンの使用許諾はVS側とは異なるようです*3

Licensing and packaging changes for TFS 2015 - Brian Harry's blog - Site Home - MSDN Blogs

関連するところを抜粋してみます。

Storyboarding

With the 2015 release, we have decided to make our Power Point based storyboarding tool available for free (it was previously only available in Test Professional with MSDN, VS Premium with MSDN and VS Ultimate with MSDN). 
For now, we have included it in VS 2015 Community. 
When the new “Office integration” installer ships in the TFS 2015 Update 1 timeframe, we will include the storyboarding tool there as well to make it even easier to access.

ざっくりかいつまむと、

  • パワポのストーリーボード機能をフリーにするよ!
  • 当初は(無償版は)VS 2015 Communityに同梱するよ!
  • TFS 2015 Update 1リリースのタイミングで新しいOffice統合installer(?)を出すよ!

ということで、なので、VS Cimmunityでインストールされた場合でも、特に気にすることなく使えそうな風に読めます。

またTFS 2015 Update 1はちょっと前にRC1がリリースされました。ですので、もう少したらVisual Studio同梱ではない、単体のインストールパッケージがリリースされるっぽいです。

*1:と特定のTFSのエディション

*2:画面設計書.xlsにフォーム部品をならべて作っておいて「印刷時にずれるんだけど」と憤ってた人を見たことあります

*3:ただし、具体的に使用許諾がどんなものかは見つけれていません

10月のWindows UpdateでOneDrive for Businessで同期エラーが出ることがあるので注意(修正パッチあり)

本日…というか先週末あたりから微妙にOneDrive for Businessの調子が悪く、ファイルによってはさっぱり同期できない状況が続いていました*1

[同期の問題の表示]を表示するとこんな感じで、「資格情報が必要です」「資格情報を入力してください」と出ます。

f:id:kiyokura:20151023000743p:plain

環境は Windows 8.1 + OneDrive for Business 2013, OneDrive for Business はOffice 2013 Pro Plusのもの(俗にいうMSIインストーラー版)です。

 

ちなみに上記ダイアログをクリックしても資格情報入力ダイアログは表示されませんし、そもそもフォルダの同期はできているので本当に資格情報がないのか怪しいところです。

 

試行錯誤編

とりあえず[修復]を実行したのですが、結果から言うとNG。しかも、今まで同期できていたファイル類もこの過程で一度同期を解除してローカルから削除されたため、その後一切取得できなくなってしまいました(フォルダのみ作成され、ファイルは全て同期失敗して空、という状態)。

 

フォーラムやサポート情報などを検索しながら色々やってみたのですが、さっぱり解決しませんでした。ログアウトしてブラウザのキャッシュも消して資格情報も削除してOneDrive for Businessのキャッシュをして、挙句にはOneDrive for Business自体も再インストールして……。

 

それでもさっぱり直らず、途方に暮れていたところ……。

 

解決編

そんな折、O365側の管理コンソールをチェックしてくれていた id:sadynitro が該当しそうなKBを見つけてくれました。

October 21, 2015, update for Office 2013 (KB2986219) *2

……これやがな。というか10月21日って、現地時間的に出来立てほやほややないか……。

ということで、上記KBのリンクにあるパッチを適用すると解決しました!

 

まとめ

ということで、2015/10 月の月例のWindows Update 適用以降で OneDrive for Business の同期で問題が出るようになった場合は、上記KBの事象に該当している可能性があります。 (問題を引き起こしたKBは https://support.microsoft.com/en-us/kb/3085566 です)

そのうち問題解消のパッチもWindows Update から入手できるようになるかもしれませんが、現状はまだのようですので、該当する方は確認してみて下さい。

*1:ファイルによっては同期できていた…のですが、今から思うと OneDrive for Business じゃなくて、 WordやExcelファイルのアプリで直接開いて編集・同期してた分がうまくいっていた、という気がする

*2:日本語の機械翻訳がめちゃくちゃなので英語のリンクを張っています。en-usをja-jpに変えれば日本語になります

Visual Studio 2013を起動したらアドオンが読み込めない系のエラーが出た話

Visual Studio 2013 を起動したら『'TestWindowPackage' パッケージは正しく読み込まれませんでした』 みたいなダイアログが表示されました。

 

再起動後、テストエクスプローラー とチームエクスプローラーが死亡

例の『詳細は ActivityLog.xml 見てね』的な、…稀によく見るやつです:p

f:id:kiyokura:20151014220512p:plain

ダイアログで通知された通り、テストエクスプローラーが読み込まれていません。 f:id:kiyokura:20151014220541p:plain

さらによくよく見ると、チームエクスプローラーもお亡くなりに……。 f:id:kiyokura:20151014220616p:plain

この際どうでもいいですが、チームエクスプローラーのコンポーネントのGUIDは 312e8a59-2712-48a1-863e-0ef4e67961fc みたいですね*1

 

原因

正直、よくわかりません。10/14のWindows Updateを当てた後の再起動ではあったのですが、Visual Studioを手動で終了させていたにも関わらず、再起動時に「devenvを強制終了しました」的な文字が表示されていました。ので、Windows Updateは関係ない可能性があります*2

 

devenv /setup で修復できた

パッケージ関係でこういったエラーが出た時にはdevenv/setupスイッチを付けて実行するのが定石な気がします*3。 ということで、 - Visual Studioを終了させる - 管理者モードでcmdなりPowerShellなりを起動 - VS2013のdevenv(既定だとC:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE)に移動 - devenv.exe /setupを実行

環境によりますが割と時間がかかることがあるので、しばらく待ちます。

f:id:kiyokura:20151014220700p:plain

実行が終わったあとにVS2013を起動したら……エラーも出ず起動。テストエクスプローラーもチームエクスプローラも無事利用可能な状態になっていました。

#割と焦ったのは内緒

*1:ホントにどうでもいい

*2:隣の席の同僚はWU後も問題なかったし、少なくとも直接の原因ではないと思います

*3:多分

TypeScriptの1.6.2が入ってるはずなのにtsc --versionが1.0.3.0を返したら

WindowsVisual Studio と node.js の両方の環境でTypeScriptを使おうとすると遭遇するかもしれない話です。

1.6.2 入ってるのはずなのに 1.0.3.0?

普段TypeScriptの開発をVisual Studioで行っています。が、ちょっとした理由でnode.jsのtscコンパイルをしたいことが発生しました。 さっそくnpmでTypeScriptの1.6.2をインストールし、コマンドラインからtsc hoge.tsみたいな感じでコンパイルを実行……したら、エラーとか出て文句言われました。

??

…気を取り直してtsc --versionでバージョン確認したら……なんと「1.0.3.0 」というバージョンが返ってきました。 『んなアホな』と思いnpm ls -g typescriptで確認すると、やはりnpmではちゃんと1.6.2が入っている模様。

f:id:kiyokura:20151013221731p:plain

 

環境変数のpathから削除する

原因はVSのアドオンとして入ってるTypeScriptコンパイラのパスが環境変数で設定されているから……でした。 システム環境変数のpathからC:\Program Files (x86)\Microsoft SDKs\TypeScript\のエントリを削除すればOK。私の環境では1.0と1.4のパスが存在していました。

 

削除後、再度tscのバージョンを確認すると、ちゃんと1.6.2が返ってきました。

f:id:kiyokura:20151013221759p:plain

なおこの環境変数を削除しても、Visual Studioからのコンパイルは特に問題ないと思います*1*2

 

まとめ?

なお、いくつか手元の環境を確認した限りこれは1.4までで、1.5以降はVSのTypeScriptアドオンをインストールしても環境変数に追加しないようです*3。ので、最近入れた人は問題ないかもしれません。

*1:MSBuild…というかcsprojのTypeScriptバージョンで指定したバージョンでSDKs以下のコンパイラを直接見るので

*2:もちろん、pathにC:\Program Files (x86)\Microsoft SDKs\TypeScript\のtscが指定されていることを期待して書いてるなにかがあればそれは微妙なことになるでしょうから注意

*3:私の環境を見る限りという話なので、ひょっとしたら正しくはないかもしれません