しばやん雑記

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

MVC

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 には…

ASP.NET MVC 3 と Unity の組み合わせを試し中

ASP.NET MVC 3 から DI のサポートが追加されたんですが、どうも DI って好きになれなかったので放置してました。 しかし、Project Silk のソースコードを読んだのがきっかけになり、今更 DI について調べています。とりあえず ASP.NET MVC 3 プロジェクトを…

OutputCache のキャッシュを削除する

データベースに更新があった場合には、やっぱりキャッシュを削除して即時反映できるようにしたいですよね。普通なら SqlDependency を設定してあげればいいんでしょうけど、SQL Server の変更通知って正直設定よくわかってないですし、レンタルサーバで使え…

ASP.NET MVC で Server-Sent Events を試す

最近、サーバサイドでの対応が必要な HTML5 関連技術について調べていました。しばやんです。WebSocket は WCF WebSockets 使ったら楽勝!でしたが、HTML5 には Server-Sent Events という Comet を簡単に使えるようにした機能が用意されています。これは HT…

ASP.NET MVC 4 の新機能、タスク対応の非同期コントローラを使う

WebMatrix だったり MVC 4 だったりで忙しいですが、いつも通り気まぐれで紹介していきたいと思います。さて、今回は ASP.NET MVC 2 から追加された非同期コントローラが、MVC 4 から .NET 4 で追加された Task クラスに対応したので、それを紹介したいと思…

ASP.NET MVC で確認画面を実装する(完全版)

初めに謝っておかないといけないことが。前に書いたこれ ASP.NET MVC で確認画面を表示させてみる - しばやん雑記 が全く動いてなかったんですよね(白目なので、今回は確認画面を表示する完全版を作成したので、説明と使い方をつらつらと書いていきます。ま…

ASP.NET MVC 4 の新機能、レシピについて

Writing a Recipe for ASP.NET MVC 4 Developer Preview安心の信頼の Phil さん。原稿が終わったらいろいろと検証してみますが、とりあえず Recipe SDK を入れたら nuspec やらアセンブリ参照やら自動で行われて、テンプレートも作成されるみたいですな。 In…

ASP.NET MVC 4 の新機能、Display Modes を使う

ロードマップにあったビューにサフィックスを付けるあれです。機能自体は非常にシンプルで DisplayModes クラスを使うだけですが、名前空間が System.Web.WebPages となっているので注意してください。WebPages にあるということは WebMatrix でも使えるのか…

リリースノートに書いていない ASP.NET MVC 4 の新機能

毎回新しいアセンブリが出るたびにインテリセンスなどで変更点が無いか調べてます。リリースノートに書いてない変更はやっぱりありますよね。 新しいスキャフォールディングテンプレート 今まではスキャフォールディングのテンプレートとして 空のコントロー…

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

BUILD で赤シャツの人が MVC 4 弄ってると思ったら、Developer Preview が公開されました。Categories - You've Been Haackedダウンロードはこっちから。まず、Web PI 4.0 がインストールされ、その後に MVC 4 DP がインストールされます。http://www.asp.ne…

DisplayFor/EditorFor と DataType の不文律

ASP.NET MVC 3 のスキャフォールディングを使うと、DisplayFor と EditorFor を使ったビューを生成してくれますよね。ネットの海を彷徨ってみると、DisplayTemplates と EditorTemplates というディレクトリを用意すると、自由に出力を変えることが出来るよ…

Azure と MVC でドメインベースのルーティングを行ってみた

こんばんは。メイドさんを雇いたい男、しばやんです。とある Web サービスを作るために、ドメインを取得してサブドメイン毎に機能を割り当てたいなー。と思ったので、ASP.NET MVC 2 で追加されたエリアを使って実現してみました。まずはドメイン周りの設定を…

ビュー固有の CSS と JavaScript を追加する

こういった誰でも考えるであろう内容は、タイトルに悩みますな…。とりあえず、外部スクリプト参照以外にスタイルの定義や DOM 構築時などにビュー固有の処理を行いたい場合には head タグ内に <style type="text/css"> body { ... } </style> <script type="text/javascript"> $(function() { // ここで DOM に触る }); </script> と…

ASP.NET MVC 4 の機能を先取りする

ASP.NET MVC 4 RoadmapASP.NET MVC 4 のロードマップが公開されましたが、この中には MVC フレームワーク自体の新機能は思ったより多くない感じですね。開発環境周りの充実やパフォーマンス改善など、実際に開発・運用する上での問題点解消に取り組んでいく…

セクションと子アクションを使って高度なレイアウトを実現する

あまり使ってる人を見ない Razor の新機能であるセクションなんですが、最近の Web サービスのようにサイドバーに情報を表示したりする場合に非常に有用です。今回はこのブログのサイドバーのようなデザインを ASP.NET MVC 3 で作ってみたいと思います。とり…

data URL スキームを作成するヘルパー

HTML5 と data URL scheme - しばやん雑記 で書いた data URL を ASP.NET MVC で使いやすくするためのヘルパーを作りました。使い方はシンプルで Url.ToDataUrl メソッドを呼び出すだけです。 @* ファイルから data URL を作成する *@ <img src="@Url.ToDataUrl("~/Content/temp.png", "image/png")" /> そして ToDataUrl の…

ちょっと変わった ASP.NET MVC 3 でのローカライズ方法

ローカライズって面倒ですよね。ASP.NET MVC 3 の Razor でも多言語対応を試してみる - しばやん雑記 でリソースを使った Razor でのローカライズ方法を書きましたが、App_GlobalResources と App_LocalResources というディレクトリを作るのは面倒です。特…

よく使われる入力検証をまとめてみる

ASP.NET MVC で利用できる入力検証は思ったより多くありません。正規表現で指定できる検証属性が用意されていますが、よく使われるであろうメールアドレスなどの検証を行うためには、自分で正規表現を書くなどして指定する必要があります。私は普段 PHP で業…

クロスドメイン通信に必要なヘッダを出力する属性

XMLHttpRequest Level 2 と XDomainRequest でクロスドメイン通信を行うためには Access-Control-Allow-Origin などのヘッダを返す必要があります。こういうのはアクションフィルタで実装するに限りますね。というわけで AccessControl というそれっぽいよう…

Twitter API のように拡張子で出力フォーマットを変えてみる

http://api.twitter.com/1/statuses/home_timeline.xmlみたいなやつです。xml を json に変えると json になります。元々はたけはらさんの Jsonable 属性を見て思ったんですけど、ルーティングを定義して昔作った XmlResult を使ったらいい感じになりました…