しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Microsoft.SourceBrowser を Azure Web Apps で簡単に使えるように Site Extension にしてみた

何でも知ってそうな C# でぐぐれの人に .NET Framework の http://referencesource.microsoft.com や Roslyn の http://source.roslyn.io で使われている Browser Engine が公開されてないか聞いたら、実際にそのコードを書いた人からリプライを貰いました。

これだから Twitter は面白いですね。まさか本人から来るとは思わなかったし、とっくに OSS になっていたのに全然知らなかったということに絶望しつつも、これは Site Extension として公開すれば面白いと思ったので、パッケージングしてみました。

f:id:shiba-yan:20160825001148p:plain

使い方は説明するまでもないですが、Azure Portal や Kudu から SourceBrowser Site Extension をインストールしておきます。この後のリポジトリを連携する前に行っておく必要があります。

f:id:shiba-yan:20160825001347p:plain

Site Extension のインストールが終われば、NuGet から Microsoft.SourceBrowser のインストールと、カスタムデプロイスクリプトの設定が完了しているので、あとはこれまで通り GitHub などのソース管理からリポジトリを追加するだけです。

f:id:shiba-yan:20160824235203p:plain

今回は Web アプリケーションでも何でもない WinQuickLook のリポジトリを選んで、Web Apps と連携してみました。普通に考えたら失敗しますが、Site Extension の力でビルドできるようになってます。

ログを表示しても、ちゃんと成功していることが分かりますね。

f:id:shiba-yan:20160824235705p:plain

Windows アプリケーションを Web App にデプロイとか、それだけ聞くとかなり頭悪い感じしますが、デプロイ完了後に Web App を開くと Source Browser が立ち上がります。

f:id:shiba-yan:20160824235917p:plain

ちゃんと検索やコードビューからのシンボルの参照などの機能が動作しています。

このようにシンボルの参照を表示する機能は最高に便利だと思うので、SourceBrowser の便利さを一休の社内でも全力でアピールしていきたいです。

f:id:shiba-yan:20160825000027p:plain

Web Apps を作って、Site Extension をインストールして、GitHub などからリポジトリの連携を行えば、あとは勝手に HTML の生成などを行ってくれるので、かなりお手軽になったと思います。

作成した Site Extension のコードは GitHub にすでに公開してあります。

コード量が多くなった時などはどうなるか確認してないので、何かあれば Issue なり PR をお願いします。