タグ

ブックマーク / blog.shibayan.jp (298)

  • ASP.NET MVC 4 の新機能、タスク対応の非同期コントローラを使う - しばやん雑記

    WebMatrix だったり MVC 4 だったりで忙しいですが、いつも通り気まぐれで紹介していきたいと思います。 さて、今回は ASP.NET MVC 2 から追加された非同期コントローラが、MVC 4 から .NET 4 で追加された Task クラスに対応したので、それを紹介したいと思います。 MVC 3 までの非同期コントローラに関しては 非同期コントローラ使ってみた - しばやん雑記 を参照してください。基的には MVC 4 でも同じ記法で非同期処理を書くことが出来ますが、メソッドを 2 つ用意する必要があるので値の引き渡しや、処理が分離してしまうので継続する処理が書きにくいという欠点がありました。 しかし、MVC 4 からは Task クラスを返すことが出来るので、そのあたりの不便さが一気に解消されています。使い方は Task を返すアクションを定義するだけです。アクションの

    ASP.NET MVC 4 の新機能、タスク対応の非同期コントローラを使う - しばやん雑記
    daruyanagi
    daruyanagi 2011/11/05
    おぉ… いい感じ
  • WCF WebSockets で実現するリアルタイム Web - しばやん雑記

    最近は Node.js と socket.io で WebSocket を使うことが多いようですね。Windows Azure でも動作する node.exe がリリースされたり、Microsoft もオープンソース寄りになってきたのかと思います。 しかし!わざわざ .NET 開発者が Node.js を使う必要があるのか?と言われると、私は必要ないと考えています。 何故なら .NET のインフラストラクチャには非同期機能はあらかじめ用意されており、WebSocket も HTML5Labs でのドラフト版という形ですが WCF WebSockets が公開されています。ちなみに WebSocket は IE10 で対応される予定ですし、既に Silverlight を使うことで IE9 などでも使えるようになっています。 http://html5labs.interoperability

    WCF WebSockets で実現するリアルタイム Web - しばやん雑記
  • WebMatrix 2 の拡張機能を作成する (3) - 通知・ダイアログ - しばやん雑記

    前回で基的な拡張機能の仕組みについては理解してもらえたと思いますので、今回からは拡張機能を使用してできることを画像とサンプルコード多めで紹介したいと思います。 まずは機能的にシンプルで利用頻度も高そうな、通知とダイアログから説明します。 通知を表示する ウェブサイトを作成した時になどに画面の下の方に出てくる黄色いバーを表示したい場合には ShowNotification メソッドを使います。通知なのでボタンを追加したりはできませんし、一定時間で非表示になります。 C# WebMatrixHost.ShowNotification("テストメッセージ"); 実行結果 引数で指定したメッセージが表示されていることが確認できます。 基的にはテキストのメッセージしか表示できませんが、オーバーロードされたメソッドを使うことで、一つだけハイパーリンクを表示することが出来ます。 C# WebMatr

  • NuGet.Server を利用してプライベートリポジトリを構築する - しばやん雑記

    こんばんは。@IT で NuGet 入門記事が全て公開されてほっとしてます、しばやんです。 今回 @IT 向けに記事を書くにあたって、私が持っている s-software.net ドメイン上に NuGet のプライベートリポジトリを構築していろいろと検証を行いました。プライベートリポジトリの構築は記事にも少しだけ書きましたが「Hosting Your Own NuGet Feeds」に作り方が全部書いています。 しかし、私が使っている ExpressWeb だとそのままでは動かなかったので、そのあたりを補足しながら、楽しい NuGet プライベートリポジトリ生活を楽しんで頂きたいと思います。それでは順番に説明していきます。 空の ASP.NET Web アプリケーションを作成 ついつい癖で ASP.NET MVC 3 向けアプリを作ってしまいかけますが、今回は普通の ASP.NET アプリ

    NuGet.Server を利用してプライベートリポジトリを構築する - しばやん雑記
    daruyanagi
    daruyanagi 2011/10/18
    これは非常に便利くさいなぁ
  • ASP.NET MVC で確認画面を実装する(完全版) - しばやん雑記

    初めに謝っておかないといけないことが。前に書いたこれ ASP.NET MVC で確認画面を表示させてみる - しばやん雑記 が全く動いてなかったんですよね(白目 なので、今回は確認画面を表示する完全版を作成したので、説明と使い方をつらつらと書いていきます。 まず、基的な方針としては前回と変わりません。属性を指定するだけで規約に従って、確認画面のビューを表示したりしてくれます。早速 Confirm 属性の完全版のコードを見てもらいましょうか。 public class ConfirmAttribute : ActionFilterAttribute { private const string SubmitButtonKey = "__SubmitButton"; private const string ConfirmButtonKey = "__ConfirmButton"; priv

    ASP.NET MVC で確認画面を実装する(完全版) - しばやん雑記
    daruyanagi
    daruyanagi 2011/10/11
    NuGet 使わせてもらおう
  • WebPages 2 で使えるカスタムバリデータを実装する - しばやん雑記

    WebMatrix 2 というか、WebPages 2 ではバリデーション周り非常に使いやすくなっていいですね。下手に Fluent Interface で定義させるよりわかりやすいと思いました。 しかし、標準で使えるバリデータは思ったより多くありません。正規表現使えるので大体のことはできますが、ちょっと複雑なことをしようとすると困りますね。なので、今回はカスタムバリデータを作ってみたいと思います。 とりあえず ASP.NET MVC 3 で独自の検証属性を作成して、クライアントサイド検証を行う - しばやん雑記 でクライアントサイド検証を実装した時のように CERO のバリデータを作ります。 バリデータは IValidator インターフェースを実装したクラスです。じゃあこれを実装すれば何でも作れる!と思ったら、ちょっとインターフェースが難しいです。 public interface I

    WebPages 2 で使えるカスタムバリデータを実装する - しばやん雑記
  • WebMatrix 2 ベータも公開されてます - しばやん雑記

    WebMatrix 2 何ですかこのテライケメンなキャッチは。 「再びウェブと恋に落ちる」*1とか実はイケメンなウェブマトリクスマンに言われたらどんな男もイチコロじゃないっすか。信頼できる筋によると、ダウンロードボタンはウェブマトリクスマンを意識して緑色になったということです。 そして新機能とかはこっちを。HTML5, CSS, jQuery, PHP, C# のインテリセンスが使えるようになったのはかなり大きいですね。 WebMatrix 2 Beta Features そして MVC 4 とも関連しますが、Web Pages (Razor) がバージョン 2 になりました。新機能はこっち。 Top Features in ASP.NET Web Pages 2 : The Official Microsoft ASP.NET Site 見たところ、Validation で jquery

    WebMatrix 2 ベータも公開されてます - しばやん雑記
    daruyanagi
    daruyanagi 2011/09/18
    「信頼できる筋によると、ダウンロードボタンはウェブマトリクスマンを意識して緑色になった」 ( ゚д゚)ハッ!
  • DisplayFor/EditorFor と DataType の不文律 - しばやん雑記

    ASP.NET MVC 3 のスキャフォールディングを使うと、DisplayFor と EditorFor を使ったビューを生成してくれますよね。 ネットの海を彷徨ってみると、DisplayTemplates と EditorTemplates というディレクトリを用意すると、自由に出力を変えることが出来るよ!と書いてることが多いですが、実はデフォルトのテンプレートが優秀だったりしますよ。 とりあえず実際に紹介しつつ見ていきましょうか。まずは表示の方から。 DisplayFor 以下の型に対してデフォルトのテンプレートを持っています。 メールアドレス 隠しフィールド (input type=hidden) HTML テキスト URL コレクション bool decimal string object string や object は特に変わり映えのない、そのまま出力するだけのテンプレート

    DisplayFor/EditorFor と DataType の不文律 - しばやん雑記
    daruyanagi
    daruyanagi 2011/09/13
    知らないことばっかりだ…
  • WebMatrix で Entity Framework 4.1 を使う - しばやん雑記

  • ASP.NET MVC 4 の機能を先取りする - しばやん雑記

    ASP.NET MVC 4 Roadmap ASP.NET MVC 4 のロードマップが公開されましたが、この中には MVC フレームワーク自体の新機能は思ったより多くない感じですね。開発環境周りの充実やパフォーマンス改善など、実際に開発・運用する上での問題点解消に取り組んでいくのかという印象です。 それほどまでに MVC 3 でフレームワークの完成度が上がったということでしょう。 まあ、それはいいとして。この中にあるモバイル周り、特に Default Template Changes New "Mobile Application" Project Template Device-Specific Views に関しては今でも少しコードを追加するだけで実現出来ます。今回、ちょっとだけ先取りしてしまいしょう。 Default Template Changes これはロードマップにあった画像

    ASP.NET MVC 4 の機能を先取りする - しばやん雑記
  • ちょっと変わった ASP.NET MVC 3 でのローカライズ方法 - しばやん雑記

    ローカライズって面倒ですよね。 ASP.NET MVC 3 の Razor でも多言語対応を試してみる - しばやん雑記 でリソースを使った Razor でのローカライズ方法を書きましたが、App_GlobalResources と App_LocalResources というディレクトリを作るのは面倒です。特に App_LocalResources をビューのディレクトリごとに作らないといけないとか苦痛です。 折角 ASP.NET MVC では CoC が使われているので、リソースも規約でいろいろ出来たらいいなと思ってたら出来ました。ディレクトリ構成は以下のような感じになってます。 みにもば用に書いていたので Minimoba/Resources/Views/Shared/_Layout.resxというパスになっています。名前空間も直接対応しているので Minimoba.Resource

    ちょっと変わった ASP.NET MVC 3 でのローカライズ方法 - しばやん雑記
  • Twitter API のように拡張子で出力フォーマットを変えてみる - しばやん雑記

    http://api.twitter.com/1/statuses/home_timeline.xmlみたいなやつです。xml を json に変えると json になります。 元々はたけはらさんの Jsonable 属性を見て思ったんですけど、ルーティングを定義して昔作った XmlResult を使ったらいい感じになりました。 とりあえずさっくりとルーティングを定義します。 routes.MapRoute( "API", "api/{action}.{format}", new { controller = "api" } ); 非常に簡単ですね。ぶっちゃけ説明要らないレベルですけど、これで /api/product.xmlというような URL にマッチするようになります。 そしてコントローラを作ります。 public class ApiController : Controller {

    Twitter API のように拡張子で出力フォーマットを変えてみる - しばやん雑記
  • HTML5 の複数ファイルアップロードを使う - しばやん雑記

    HTML5 では input でのファイルアップロードが拡張されていて、multiple 属性を付けると複数のファイルを送信できるようになっています。 残念ながら IE9 では使えないのですが、ASP.NET MVC での使い方のメモを兼ねて書いておきます。 ビュー @using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type="file" name="files" multiple="multiple" /> <input type="submit" /> } @if (ViewBag.Files != null) { foreach (var file in (HttpPostedFileBase[])ViewBag.Files) {

    HTML5 の複数ファイルアップロードを使う - しばやん雑記
    daruyanagi
    daruyanagi 2011/06/27
    あとで
  • HTML5 オフラインキャッシュを使ってみた - しばやん雑記

    とあるアプリの開発で HTML5 のオフラインキャッシュを使ってみたので、ちょっと使い方を ASP.NET 的な視点で書いておきます。 キャッシュマニフェスト オフライン用にキャッシュしたいファイルを定義するファイルで、実体は非常に簡単なテキストファイルになります。 CACHE MANIFEST #キャッシュする CACHE: # 相対パスも OK index.html images/title.jpg # 外部の URL も OK http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js #キャッシュしない NETWORK: api/scenario.jsonこいつは Content-Type を text/cache-manifest にしないとブラウザが認識してくれないのですが、IIS の場合は .htaccess で定義でき

    HTML5 オフラインキャッシュを使ってみた - しばやん雑記
    daruyanagi
    daruyanagi 2011/06/24
    ASP.NETで
  • ASP.NET MVC 3 開発入門 (23) - Web 発行のプロファイルを作成 - しばやん雑記

    ASP.NET MVC 3 開発入門 - インデックス 前回から間が空いてしまいましたが、mvcConf @:Japan の準備などでちょっと忙しかったと言い訳をさせてください。mvcConf @:Japan 自体は既に定員に達してしまったので、後日公開される予定の動画や当日 ust があるかもしれないのでそちらで我慢してください。 では、編に入りたいと思います。前回でリリース用に Web.config の設定を行いましたので、今回は Web 発行プロファイルの作成を行って実際に発行する手前まで行ってみたいと思います。 サーバ側の設定も必要になるのですが、国内で ASP.NET MVC 3 や Web 発行にしっかりと対応しているのが ExpressWeb である関係上、今回は ExpressWeb を前提で説明していきます。2 つ借りてますが非常にサービスもよく安いのでおすすめしていま

    daruyanagi
    daruyanagi 2011/05/27
    依存関係の追加は一度ハマったわ…あと、FTP使ってアップロードしてたorz
  • ASP.NET MVC の小ネタ集 - しばやん雑記

    htmlAttributes でハイフンを含む属性を指定する 例えば form タグに accept-charset 属性を追加したい時、以下のように書けば動きそうですね。 @using (Html.BeginForm(null, null, FormMethod.Post, new { accept-charset = "utf-8" })) { @Html.ValidationSummary(true) <fieldset> (省略) </fieldset> } しかしプロパティ名にハイフンを使うことが出来ないので、コンパイルエラーになってしまいます。 以下のように修正しましょう。 @using (Html.BeginForm(null, null, FormMethod.Post, new { accept_charset = "utf-8" })) { @Html.Validati

    ASP.NET MVC の小ネタ集 - しばやん雑記
  • NuGet 1.3 が公開されました - しばやん雑記

  • 新しく追加された Intranet Application を試す - しばやん雑記

    とりあえず Intranet Application を選択してプロジェクトを作りました。プロジェクトはこんな感じです。 一目でわかるのは AccountController がなくなっていることですね。Windows 認証の処理は全て ASP.NET 側に投げているようです。 そして Web.config にも 2 つほど変更点がありました。 一つは想像していた方もいると思いますが、authentication 要素が Windows 認証を使うように設定されています。そして認証されてない PC からの接続を拒否するために authorization 要素と deny 要素が追加されています。 <authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization> これだけで Window

    新しく追加された Intranet Application を試す - しばやん雑記
  • ASP.NET MVC 3 Tools Update が公開されました - しばやん雑記

  • System.Web.Helpers を活用する - しばやん雑記

    Hatena.Helper を書いている時に「JSON 扱うのめんどくさいなー、とりあえず "json" ってタイプすればインテリセンスで何か出てくるだろ。」という行動がきっかけで知ったのですが、System.Web.Helpers というお手軽クラスが入ったアセンブリがあったのですね。 このアセンブリは ASP.NET Web Pages 1.0 をインストールすると同時に入ります。つまり ASP.NET MVC 3 や WebMatrix をインストールすると同時に入るわけです。結構面白いクラスが多かったので紹介したいと思います。 AntiForgery ヘルパー CSRF 対策用のワンタイムトークンの出力と検証を行うためのヘルパーです。 GetHtml メソッドを呼ぶと input タグが生成されるので、form タグの中で呼び出します。これでトークンも一緒に POST されるように

    System.Web.Helpers を活用する - しばやん雑記
    daruyanagi
    daruyanagi 2011/04/07
    うぁ、これを知っていれば、昨日一生懸命XMLを読む処理を組まずに済んだってことか…はぅ