しばやん雑記

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

ASP.NET

ASP.NET MVC 5.1 や Web API 2.1 のリリース候補版が公開されました

今朝、ASP.NET チームのお偉いさんである Scott Hunter が ASP.NET MVC 5.1 / Web API 2.1 / Web Pages 3.1 のリリース候補版を公開したとツイートしていたので、ちょっと内容を書いてみようと思います。公式のブログでもしっかりと新機能の説明がされている…

ASP.NET でタブレット以外を判別する方法と Display Mode への応用

もう Facebook では 1 年の振り返りが始まっている今日この頃、いかがお過ごしでしょうか。世間では Advent Calendar のタスキ繋ぎが全力で行われていますが、初日でその役目を終えた私はのんびりと過ごしています。とか、書くと本気で本気で刺されそうなの…

OWIN を加速させる IIS と Helios の関係

突如として公開された Helios という謎のライブラリを知っている人はどのくらいいますか?Twitter ではこちらのブログ記事が割とシェアされていたりするんですが、冒頭に書いてある通り MVP Global Summit のセッションで発表されたライブラリです。*1Checki…

ASP.NET MVC に投げた 2 つ目の Pull Request がマージされました

ASP.NET MVC の最近のバージョンには OutputCache と子アクションを組み合わせた時に、OutputCacheLocation の値を適切に見てくれないバグがありました。例えば、グローバルフィルタで OutputCache を以下のように設定します。 // 出力キャッシュを無効化し…

ASP.NET MVC 5.1 の新機能を Nightly Build で試してみた

少し前に Visual Studio 2013 と同時に ASP.NET MVC 5 がリリースされましたが、既に開発チームは ASP.NET MVC 5.1 の開発を進めています。そして aspnetwebstack は MyGet で署名済みの Nightly Build を公開してくれているので、誰でも簡単に試せるように…

ASP.NET 4.5 からルーティングで生成される URL を小文字に出来るというお話

ASP.NET MVC でデフォルトのテンプレートと同じように作ると、その URL は以下のように大文字が含まれるものが生成されてしまいますよね。しかし、SEO 的には URL は小文字で統一して欲しいです。今までは Url.Action や Html.ActionLink などで小文字を指定…

ASP.NET SignalR 2.0 が公開されました

Windows 8.1 や Visual Studio 2013 のリリースと同時に ASP.NET 周りも大幅にアップデートされたのですが、SignalR 2.0 で追加された機能が実に便利そうだったので紹介したくなりました。とりあえず、まずはリリースノートを確認しておきましょう。Release …

ASP.NET MVC に投げた Pull Request がマージされました

DropDownListFor と ViewBag を組み合わせた時の問題 - しばやん雑記ASP.NET MVC / Web API / Web Pages - Source Code

ASP.NET MVC 5 では X-Frame-Options が自動で出力される時がある

タイトルの通り、ASP.NET MVC 5 では X-Frame-Options: SAMEORIGIN が自動で出力される時があります。出力される条件ですが、Html.AntiForgeryToken を使った時になります。AntiForgeryToken は Web Pages の CSRF 対策クラスを使っているので、Web Pages で…

ASP.NET で自動的に発行されるクッキーの名前を変更する方法

今日はちょっとした ASP.NET のクッキーに関する小ネタです。ASP.NET は特別な設定などをしなくても自動的にクッキーを発行して、認証状態やセッション、そして CSRF 対策を行ってくれます。これは非常に便利なんですが、その時に発行されるクッキーの名前が…

Visual Studio で発行時に Razor のプリコンパイルを行う方法

Web サイトとかにデプロイを行う時に利用する Web 発行には、ビューのプリコンパイルを実行する機能があるのですが、これを使えば ASP.NET MVC の Razor ビューもプリコンパイル出来ます。プリコンパイルすると何が嬉しいかという話ですが、初回アクセス時に…

JAZUG 3 周年の LT 大会向けのアプリを作って発表してきた

お前、JAZUG に参加してないだろと言われそうですが、LT 大会でトップバッターかつ、投票用のアプリを作って発表してきました。スライドはこんな感じ。 JAZUG LT アプリを作った話 from Tatsuro Shibamura スロットリングが発生するとか、バグがあって失敗す…

絶対に失敗しない Windows Azure Web サイトマニュアル

タイトルはホッテントリメーカーで作りました。特に意味はありません、多分。ここ数ヶ月は Windows Azure Web サイトを使って開発していたので、その時に気が付いた点・ハマった点をまとめておきます。それ以外にも Web サイトに関係することを総まとめな記…

ASP.NET SignalR 2.0 リリース候補版が公開されました

SignalR 2.0 rc1 release notes https://t.co/Alz4Z6huTP— David Fowler (@davidfowl) August 24, 2013最近は SignalR を全然弄っていなかったですが、ちょっと前に 2.0 RC 1 が NuGet で公開されたようです。NuGet Gallery | Microsoft ASP.NET SignalR 2.0…

ASP.NET MVC の Facebook テンプレートを使って Graph API を便利に使う

ASP.NET MVC の Facebook テンプレートは Facebook SDK for .NET をベースに、色々とアプリを作る上で便利そうな機能*1が実装されています。signed_request のデコードや認証周りを自動でやってくれるんですが、FacebookClient クラスに対する拡張メソッドや…

ASP.NET MVC で Facebook アプリを作る時には気をつけろ

最近は ASP.NET MVC 向けの Facebook アプリケーションテンプレートを使って、Facebook アプリの開発をしていたりするんですが、この Microsoft.AspNet.Mvc.Facebook というライブラリが非常に使い勝手が悪く、特定のアプリしか想定していない作りになってい…

OWIN を使って Windows Azure の Worker Role で HTTP サービスを公開する

特に理由は無いですが、OWIN と Windows Azure の Worker Role を使って遊んでみたかったので、実際に試してみました。OWIN はかなり力が入れられているみたいなので、早めにいろいろ試しておいた方が良いと思いました。 下準備 まずは Windows Azure の Wor…

ASP.NET MVC 5 で追加された IAuthenticationFilter と Authorize 属性の関係

ASP.NET MVC 4 までは IAuthorizationFilter インターフェースだけが用意されていましたが、MVC 5 からは IAuthenticationFilter インターフェースが追加されました。名前が似ている二つのインターフェースですが、機能としては明確に異なっているので ASP.N…

Build でリリースされた ASP.NET のアップデート

Build 2013 のキーノートでは Windows 8.1 と Visual Studio 2013 の話題が中心でしたが、今回は Visual Studio 2013 で追加された ASP.NET のアップデートに関してまとめておきます。既に ASP.NET の公式サイトでは記事が公開されています。ASP.NET vNext |…

ASP.NET MVC 4 で理想的なスマートフォン対応サイトを作成する方法

ちょっと前にこんな記事が Twitter や Facebook で話題になっていました。PC とスマホ両対応しているサービスは要注意かもしれません。グーグル、スマホ対応が不適切なサイトの検索順位を引き下げへ - CNET JapanTwitter や Facebook でシェアされた URL を…

.NET Framework の正規表現とメールアドレス検証に悩まされた件

今週は .NET Framework の正規表現とメールアドレス検証に目いっぱい悩まされました。事の顛末を説明すると以下のような感じ。 正規表現 Regex クラスはデフォルトでは文字クラスの扱いなどが、ECMAScript の挙動とは異なるので悩みました。もしかして:.NET…

非同期に対応した Nancy のベータ版を使ってみた

既に ASP.NET MVC / Web API / SignalR では一般的となったタスクベースの非同期処理ですが、Nancy も MyGet で公開されているベータ版では対応しているようだったので試してみました。詳しい使い方は GitHub の Wiki に書いてあります。Async Beta · NancyF…

Nancy を使って JSON API を実装するメリット

Nancy ではてなブログ用の人気エントリー API を作ってみた - しばやん雑記 で Nancy を使って JSON(P) API を実装してみたので、今回は Nancy を使って開発するメリットを少しまとめておきます。 パフォーマンス 結論から先に書いておくと、Nancy と ASP.NE…

Visual Studio 2013 と One ASP.NET の話

TechEd North America 2013 が始まりましたが、早速 Windows Azure 周りでの更新を 抱かれたい男 No1 がブログでまとめてくれていたりします。流石、安心と信頼の 抱かれたい男 No.1 ですね。そして今朝 Twitter を見ていたら、以下の Damian Edwards 氏のツ…

ASP.NET Web Stack が一斉に更新されています

何気なく NuGet で Update-Package を実行したら大量にパッケージが更新されたので、よく見てみると ASP.NET Web Stack というか、OSS 部分が全てアップデートされていました。以下のパッケージが 4.0.20710.0 -> 4.0.30506.0 といった感じにビルドナンバー…

ASP.NET MVC 4 で複数の Display Mode を組み合わせて使ってみる

この方法の欠点としては別の Display Mode との共存が出来ないことです。なのでスマートフォンへの対応が必要ない、完全に PC 向けのページなら対応可能かと思います。 ASP.NET MVC 4 の Display Mode を使って多言語対応を試してみた - しばやん雑記 と書い…

ASP.NET MVC 4 の Display Mode を使って多言語対応を試してみた

ASP.NET MVC 4 というか Web Pages 2 で追加された Display Mode ですが、一般的にはスマートフォンやその他デバイス向けにビューを切り替えるために使われることが多いと思います。しかし、今回はデバイスの種類ではなく、ブラウザの言語設定にしたがってビ…

ASP.NET MVC で指定した値が入力されているか検証する属性を作ってみた

よく会員登録などのフォームにある、会員規約に同意しますというチェックボックスってありますよね。ASP.NET MVC でチェックされていない時にエラーを表示する場合、Required 属性を使えば対応出来そうだと考える人は多いと思います。 public class FormMode…

ASP.NET SignalR で頻繁に通信が行われるアプリを効率よく実装する方法

ASP.NET SignalR のデモでよく見るような、ドラッグドロップでオブジェクトを動かして、それを全クライアントに配信するようなアプリケーションだと、そのまま実装するとサーバとクライアント間で数 ms 間隔で通信が行われてしまいます。それは非常に効率が…

ASP.NET プロジェクトで構成マネージャと Web.config 変換を活用する

実際に ASP.NET でアプリケーションを開発していて、それを公開環境へデプロイする時には Web.config に書かれている接続文字列や設定などを、開発環境のものから変更する必要が出てくると思います。最近の Visual Studio では Web.config の内容を XSLT で…