ASP.NET 5 (CTP5) のプロジェクトを Azure Websites で動かす

タイトルの通り。前回せっかくDocker on Ubuntu用に作ったのでそのままWebsitesで動かしたいと思います。

やり方は2通り。

  • Visual Studio 2015 (CTP5)から直接発行する
  • ASP.NET5 (CTP5)なソースがあるGit(GitHub)からソース連携して発行する

※Docker on Ubuntu用のproject.jsonなどは前回のPost参照で

結論から言うとVSからの直接発行は何の問題もなし。すんなり動作します。

でGit連携のほうはちょっとだけコツが必要。

How to

Websitesの構成でアプリケーション設定にSCM_KRE_VERSIONを追加し、CTP5用のバージョン(1.0.0-beta2)を指定します。

image

これだけ。

x64にしたりランタイム全部持ってくる場合とか用(?)にSCM_KRE_ARCHやSCM_KRE_CLRとかの引数もあります。VS2015でプロジェクトのプロパティみたときのTarget KRE Versionで指定するあれを分解した感じですね。

※SCM_KRE_VERSIONを指定しないとbeta1が使われてCTP5だと500エラーになります。

※デプロイは一応成功する

まぁそんなわけで、設定してあげてあとはGit連携すればちゃんと動作するようになります。

一応これでASP.NET5 CTP5をWindowsでもLinuxでもAzure Websitesでも動作させられるようになりましたね。理屈的にはMac OS上でも動作すると思いますが環境ないのでわかりません。

細かい話はきっとしばやん先生が解決してくれると思います。あとこちら参照。

ASP.NETとTypeScript

なんとなくJavaScriptもちゃんと触りたいと思ってTypeScript本読んだりしてました。

ほんとはUI周りでFlagrateを使いたいからという理由で、じゃぁどうせJavaScriptするならTypeScriptかなーと。でも鯖側はまだ慣れてるC#で書きたいし…ということでASP.NETなプロジェクトとどう共存しようというのを見てみました。たぶん何そんなの基本だろ的な感じだと思われますが。

続きを読む

ASP.NETでCacheSeviceのOutputCache有効にすると超遅くなる現象

ASP.NET MVC4でAzure CacheServiceを使ったOutputCacheを有効にすると超遅くなる、という現象があって困ったのでメモ。

  1. 普通にASP.NET MVC4なアプリを作ります
  2. Install-Package Microsoft.WindowsAzure.Caching します
  3. Web.configを編集してOutputCacheプロバイダを設定します。
  4. 実行してみます

わかりやすいようにMiniprofilerも入れてみました。

image

ファッ!?

ローカルでこの遅さ。パーシャルViewとか使うともりもり+100msとかかかります。ありえない。

結論から言うとテンプレートに含まれる既定のMicrosoft.AspNet.Web.OptimizationがASP.NET既定のOutputCacheProvider以外はサポートしてないから処理に時間がかかる、ということでした。

NuGetでMicrosoft.AspNet.Web.Optimizationを1.1.0に更新すれば解決。

image

 

image

まともになりました。ふぅ。

教訓: 更新忘れずに。

Windows Azure AppFabric ACS でカスタムのサインイン画面を作る

Windows Azure AppFabric ACS使ってフェデレーション認証するのはいいけど、味気ないサインイン画面で辟易してる方も多いんじゃないでしょうか。

↓味気ないサインイン画面

というわけで今日はこいつのカスタマイズをしたいと思います。

ゴールとして今回はASP.NET MVC3のログイン画面内で上記のサインイン画面(というかセレクタ画面)を埋め込んでアプリケーションでちゃんと(?)制御できるようにしたいと思います。

続きを読む