しばやん雑記

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

ASP.NET

ASP.NET MVC 4 で変わった点

やっと Windows 8 Pro + Visual Studio 2012 Ultimate + Office 2013 Preview の環境を作りました。というわけで MVC 4 の変更点をいろいろと見てみました。 ・Per controller configuration ・Per route message handlers ・Progress notifications ・Push …

SignalR と ASP.NET MVC の類似点、そして Project Silk

いまいち良いタイトルが浮かびませんでした。しかし、SignalR と ASP.NET MVC は考え方的に非常に近いと思ってます。例えば SignalR では Hub クラスを継承して新しいハブを作成することになっています。これはコントローラクラスに相当する部分になります。…

SignalR のモデルバインディング

SignalR は ASP.NET MVC や Web API のようにアクションの引数は自動的にバインドしてくれます。 public class SampleHub : Hub { public void Sample(int id, string text) { // id と text には値が入った状態 } } ちなみに int や string といったプリミ…

SignalR でユーザー認証を行うときの注意点

SignalR は ASP.NET 上に乗っかってるので、以下のコードのように特に意識せずに FormsAuthentication など使ってフォーム認証の実装は出来ます。 public class AuthHub : Hub { public void Login(string username) { // とりあえずユーザー名で認証クッキ…

SignalR の IDisconnect には注意

こんばんは。相変わらず仕事で SignalR を弄りまくって、iPhone アプリから SignalR の API 叩いたりして遊んでます。SignalR はクライアントの接続毎に GUID 形式で ID が振られるようになっているんですが、この ID は何処かに保存しておかないと困るケー…

ASP.NET MVC と SignalR を組み合わせて使う

最近は Web API よりも SignalR で API を用意したほうが使い勝手がいいと思っているんですが、やはり SignalR だけでは完結できないことのが多いです。なので、今回は ASP.NET MVC と SignalR を組み合わせて使う方法について書いていきます。まず大前提と…

SignalR で Unity を使ってみた

Twitter や Facebook で ASP.NET には Dependency Resolver が多すぎる、統一してくれ!!と叫んでるんですが、今日は SignalR の Dependency Resolver と戯れてました。SignalR はデフォルトで Dependency Resolver を持っているし、使っているんですが、コ…

ASP.NET のセキュリティ対策について考える

XSS や CSRF の話題は相変わらず結構多いですね。例えば、はまちや2さんのブログに最近書かれたエントリとか。CSRFで強制ログインさせるというアイデア - ぼくはまちちゃん!(Hatena)曰く、Hatena や Facebook など多くのサービスがログイン画面では CSRF 対…

ASP.NET Web API に関する適当で無責任なメモ

これは完全にメモ書きです。しかも Web API というより System.Net.Http 名前空間に含まれている面白そうなクラスです。 概要 System.Net.Http 名前空間 ()RFC 2616 で定義されている〜という言葉が多い。つまり HTTP/1.1 のこと。http://www.ietf.org/rfc/r…

DataType 属性でお手軽 HTML5 Input Types 対応

DisplayFor/EditorFor と DataType の不文律 - しばやん雑記 で DisplayFor/EditorFor を使うときには DataType 属性を付けるのは常識(キリッ と書きました。しかし、DataType 属性でメタデータを付けてあげても、対応した HTML5 input types が出力されず、か…

ASP.NET Web API の Nightly 版を試してみた

Visual Studio 11 Beta と .NET Framework 4.5 Beta を完全に削除して、動かなくなった Visual Studio 2010 を修復したりして何とか Nightly 版が動作する環境を作りました。Henrik 氏のブログを参照しながら GAC の更新を行うわけですが、MyGet で公開され…

ASP.NET MVC / Web API / Web Pages の Nightly 版を使ってみる

泣いてても仕方ないので、実際に使ってみます。MyGet で提供されてますが、これは個人用 NuGet と言うべきもので、NuGet と同じようにパッケージソースとして使えます。つまり、以下のように設定しろってことです。これで MVC 4 プロジェクトを作って NuGet …

ASP.NET MVC, Web API, Web Pages (Razor) がオープンソースに

ASP.NET MVC, Web API, Razor and Open Source - ScottGu's Blog今朝はこの話題で盛り上がりまくってました。ちなみにライセンスは Apache 2.0 です。ASP.NET MVC / Web API / Web Pages - Homeソースコードは git で管理されているので、fork して pull req…

SignalR で非同期な処理を実行する

ASP.NET MVC の場合は非同期コントローラを使っていましたが、SignalR では特に何もせずにメソッドを非同期で実行できるようになっています。仕組みは簡単、Task/Task をメソッドの結果として返してあげるだけです。 public Task<IEnumerable<string>> GetValues() { return Task</ienumerable<string>…

SignalR を簡単に使ってみた

こんばんわ、久しぶりに真面目に技術ネタでブログを書いてみます。SignalR という非同期でリアルタイムな双方向通信を実現するライブラリが面白そうなので試してみました。作者は ASP.NET チームの Damian Edwards 氏と David Fowler 氏です。ソースコードは…

書評「プログラミング ASP.NET 4」

2 月の CLR/H でレビューすることを条件に頂いた「プログラミング ASP.NET 4」ですが、会社に「どどーん!」と置いて休み時間などで読んでいました。プログラミング MICROSOFT ASP.NET4 (Microsoft Press)作者: ディノエスポシト,クイープ出版社/メーカー: …

ASP.NET MVC 4 Beta で追加された Single Page Application を試す

ASP.NET MVC 4 Beta で追加された Web API プロジェクトを試す - しばやん雑記 では Web API プロジェクトを試しましたが、今回はもう一つ追加された Single Page Application を試してみようと思います。プロジェクトの作成は今までと同じで、テンプレート…

ASP.NET MVC 4 Beta で追加された Web API プロジェクトを試す

ASP.NET MVC 4 は本当にランタイムの更新が皆無ですね。恐らく Web Pages 2 のが更新多いと思います。まあ、それはそれとしてベータで追加された ASP.NET Web API を使うプロジェクトを試してみたいと思います。WCF Web API では NuGet からインストールする…

ASP.NET MVC 4 Beta が公開されました

Download ASP.NET MVC 4 Beta from Official Microsoft Download CenterDeveloper Preview が BUILD で公開されてから結構時間がかかりましたが、ようやくベータが公開されましたね。どうやら Visual Studio 2010 SP1 専用のようで、.NET 4.5 DP がインスト…

ASP.NET MVC で Watermark を属性を使って実装してみた

実は ModelMetadata には Watermark プロパティが用意されていて、Display 属性の Prompt プロパティの値が自動的にセットされるようになっています。つまり、この値を使ってあげれば属性ベースで Watermark を実装できそうです。というわけで、jQuery Water…

ASP.NET MVC の ModelMetadata は奥が深い

ASP.NET MVC ではモデルクラスに設定されたデータアノテーション属性は、使用時に ModelMetadata へキャッシュされる形になってます。ModelMetadata クラス (System.Web.Mvc)データアノテーションを読み込んでいるのは DataAnnotationsModelMetadataProvider…

ASP.NET MVC で Twitter Bootstrap を使ってみた (4)

前回は IsValid という拡張メソッドを用意して対応しましたが、今回は BeginForm のように IDisposable と using を使って書き換えてみます。今回は拡張メソッドと IDisposable を実装したクラスを用意しました。実装は BeginForm と MvcForm クラスを参考に…

ASP.NET MVC で Twitter Bootstrap を使ってみた (3)

前回ではフォームのスタイルとスキャフォールディングを弄って、デフォルト時の見た目は非常にかっこよくなりました。しかし、実際に submit してみるとエラー表示が結構残念な感じです。当然ながら Bootstrap のクラスを使っていないからですね。ちなみに M…

ASP.NET MVC で Twitter Bootstrap を使ってみた (2)

昨日は Bootstrap を使う準備で眠たくなったので、今日はフォームを中心に弄ってみましたよっと。とりあえず適当にモデルクラスを作って、コントローラとビューをスキャフォールディングで自動生成して実行してみました。残念な結果になりました。しかし、ス…

ASP.NET MVC で Twitter Bootstrap を使ってみた (1)

こんばんわ、デザインが全くできない男。しばやんです。そんな私でも Twitter Bootstrap を使えばあっという間に最近っぽいイケてる Web サイトが簡単に作れちゃうんですよ。Page not found · GitHub Pagesパッと見は導入めんどくさそうだと思いますよね?自…

年末だからこそ ASP.NET MVC のモデルの作り方について考えてみる

Project Silk とか EFMVC とか Maintainable MVC Series を読んでると、どれもモデルが非常に厚いんですよね。 よくサンプルコードであるような EF の DB Model を直接 View に流し込むような作り方は使われていないわけですよ。そして、今朝 MVVM Framework…

ASP.NET MVC 3 と MEF 2 を組み合わせる

ASP.NET MVCの依存性注入とMEF 2Project Silk では Unity を使ってましたが、MEF 2 からは MVC 3 向けに IDependencyResolver の実装が入るみたいですね。さらにカタログを作らなくても規約ベースで上手いことインジェクションしてくれるみたいです。Managed…

ASP.NET MVC 4 で knockout.js を活用する

これは C# Advent Calendar 2011 用の記事です。 皆さんこんばんは、もうちょっとで今年一年終わりですね。まあ、そんなことはどうでもいいとして Ever17 の箱版プレイしましょうね。さて、今回は C# Advent Calendar と言いながら JavaScript かよ!という…

ASP.NET MVC 3 で UnityServiceLocator を使ってみる

前回はコントローラのコンストラクタでリポジトリのインスタンスを受け取るようにしてましたが、今回は IServiceLocator を経由してリポジトリのインスタンスを取得するようにしてみます。ServiceLocator を使うと UnityContainer で登録したクラスのインス…

ASP.NET MVC 3 と LifetimeManager の関係

Unity を使うと事前に登録しておいたクラスは自動的にインジェクションが行われて非常に嬉しいのですが、Entity Framework で使う DbContext は複数インスタンスが作られると、変更追跡やトランザクション的な意味でよろしくないですよね。そこで Unity には…