はじめに 前回は、ASP.NET MVCアプリケーションによる実用的なアプリケーションの便利な機能を紹介しました。今回はメジャーな開発パターンであるリポジトリパターンについて概要とメリットを紹介し、実際にリポジトリパターンを利用したサンプルアプリケーションの開発を行います。現在Web上で公開されているASP.NET MVCのサンプルアプリケーションのほとんどはリポジトリパターンを利用して作られているので、本稿を読んでリポジトリパターンをマスターしてください。 必要な環境 次の環境が必要です。 Visual Studio 2008 Visual Studio 2008 SP1 ASP.NET MVC RTW版 Visual Studio 2008(以下、VS2008)のインストールは、『Visual Studio 2008入門 第1回』を参考に行ってください。 VS2008 SP1のインスト
メディア 連載一覧 連載まとめ読み@IT eBook 記事ランキング @IT Special セミナー ホワイトペーパー クラウド AI IoT アジャイル/DevOps セキュリティ キャリア&スキル Windows 初・中級者向けAI その他 Server & Storage HTML5 + UX Smart & Social Coding Edge Java Agile Database Expert Linux & OSS Master of IP Network Security & Trust Test & Tools Insider.NET ブログ New! AIを作り動かし守り生かす ローコード/ノーコード クラウドネイティブ Microsoft&Windows その他の特集 @IT アジャイル/DevOps Insider.NET ASP.NET MVC入門 連載:ASP
ASP.NET MVCでFilterを使えること自体は皆さん御存知だと思いますし、Usa*Usaさんあたりを見てもらえればよいと思います。が、Exception自体については余り語られていません。Exception系の処理がどう走っているかを軽くまとめて見ます。 まずはまとめから 必要な物として Controller に [HandleError]属性を追加 → 無い場合は、Exceptionの発生でアプリケーションが終了する。 web.config に を追記 → 無い場合は、そもそもOnExceptionメソッドが動かない 実行順番 コントローラ内部のアクションを実行 コントローラクラスのOnException()を実行 フィルターのOnException()を実行 下準備 web.config の設定 そもそもの所、web.configで設定してあげないとエラーハンドリングも何もあっ
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using MvcAppCs.Models; namespace MvcAppCs.Filters { public class ErrorLogAttribute : FilterAttribute, IExceptionFilter { // アクション・メソッドで例外が発生した場合に実行 public void OnException(ExceptionContext filterContext) { // ExceptionContextオブジェクトが空の場合はエラー if (filterContext == null) { throw new ArgumentNull
ここではセキュリティ対策のひとつとして、クロスサイトリクエストフォージェリ (Cross-site Request Forgery, CSRF または XSRF) 対策について説明します。 CSRF がどのようなものであるか、ということについては、説明が長くなるのでここでは説明を割愛します。 しかしながら、CSRF 対策として「そのセッションだけに有効なトークンをフォームに埋め込むことが有効である」ことだけは、頭に入れて置いてください。 それを前提として、ASP.NET の MVC (Razor ビュー) でアンチ・クロスサイトリクエストフォージェリ・トークンをどのように埋め込むのか、そして、それをどのように使うのか説明します。 CSRF 対策を施していない場合の動作確認 まずはじめに、何も CSRF 対策を実施していない場合の挙動を確認しましょう。 ASP.NET の MVC Web ア
プロジェクト固有のテンプレートを作成するには、オリジナルの T4 スキャフォールディング フォルダーから、CodeTemplates (この名前のとおりです) という ASP.NET MVC Web プロジェクト内のフォルダーに上書きするファイルをコピーします。原則として、スキャフォールディング サブシステムは、まず MVC プロジェクトの CodeTemplates フォルダーから一致するテンプレートを探します。 これが適切に機能するように、オリジナルのテンプレート フォルダーにある固有のサブフォルダー名とファイル名を、明示的に複製する必要があります。今回は、Entity Framework CRUD スキャフォールディング サブシステムから、上書きする T4 ファイルをコピーしました。今回の Web プロジェクトの CodeTemplates を図 5 に示します。 図 5 Web プ
July 2009 Volume 24 Number 07 Testable MVC - Building Testable ASP.NET MVC Applications By Justin Etheredge | July 2009 .SidebarContainerA { width: 400px; height: 180px; float: right; border: 2px solid #008080; padding: 10px 20px 0px 20px; background-color: #e1e8f5; margin: 20px 0px 20px 10px; font-family: Verdana, Arial; font-size: 12px; padding-bottom: 7px; line-height: 16px; color: #333333; } .
今日も Knockout.js を使って ASP.NET MVC に POST するようなコードを書いていたのですが、モデルバインダが意図したとおりに値をバインドしてくれない時がありました。 まずは ASP.NET MVC 側のコードを見ていきましょう。難しいことはしてません。 public class ChildFormModel { public string Name { get; set; } } public class FormModel { public string Name { get; set; } public List<ChildFormModel> Items { get; set; } } [HttpPost] public ActionResult Post(FormModel model) { return Json(true); } 簡単にコードを紹介する
めっちゃ久しぶりに Knockout.js の話です。最近、仕事で再び使い始めたので Tips 的なものが貯まってきたら、こうやってちょいちょい書いていきます。 Knockout : Home ASP.NET MVC 側で持っているモデルをそのまま JSON にして Knockout.js に流し込みたかったのですが、いちいち JavaScript 側でも同じ構造を持ったモデルを作るのは非常に面倒なので、今回は Knockout.js に用意されている Mapping プラグインを使ってみました。 Mapping プラグインのドキュメントは公式サイトで提供されています。 Knockout : Mapping プラグイン本体は GitHub からダウンロードできます。Knockout.js の最新バージョンは 3.1.0 なので互換性を心配しましたが、今のところは特に問題なく使えています。
注意 このページにアクセスするには、承認が必要です。 サインインまたはディレクトリの変更を試すことができます。 このページにアクセスするには、承認が必要です。 ディレクトリの変更を試すことができます。 ASP.NET Web フォームから ASP.NET Web API を使った MVC パターンへの移行 Peter Vogel 最近 ASP.NET MVC に大きな注目が集まりがちですが、ASP.NET Web フォームとその関連コントロールを使用すれば、開発者は優れた対話型のユーザー インターフェイスを短時間で生成できるため、多くの ASP.NET Web フォーム アプリケーションが利用されています。ただし、ASP.NET Web フォームでは、テスト駆動開発 (TDD) を可能にする、モデル - ビュー - コントローラー (MVC: Model-View-Controller)
Twitter で酢酸先生が ASP.NET MVC でのビューの使い回しについて悩んでいたので、久しぶりに ASP.NET についてブログを書きます。 しばやんサイトに無限クロールして地獄を味合わせるか…。あ、asp,net mvcで複数のページの任意の場所にカスタムコントロールっていうかdivの塊(ページャーとかパンくずとか)を差し込みたいんだけど、複数のcshtmlにコピペしてるとメンテ不能になりそうなので良い方法ない?— さくさん (@ch3cooh) 2014年5月1日 こういったケースの場合、ASP.NET MVC では部分ビューや子アクション、そして Razor のセクションを使うと便利に書けます。それぞれ微妙に機能が異なるので分けて説明します。 Partial / RenderPartial 別ファイルとして用意されたビューを指定された位置にレンダリングします。MvcHtm
昔から ASP.NET MVC の検証を条件付きで実行したいと思っていた人生でした。 言葉で説明すると分かりにくいので、ヨドバシのオンラインショップのフォームがサンプルとして都合良かったので拾ってきました。 このフォームの場合、チェックの有無で検証の有無も切り替わるようになっています。これを ASP.NET MVC で実現する場合、殆どの場合は IValidatableObject を実装して、独自の検証を行うコードを書くのではないかと思います。面倒ですね。 地味にこのようなフォームが必要になるケースって多いと思います。仕事で割と出会っているので、今回は気合い入れて条件付きの検証を行う属性とモデルバインダを実装しました。 成果物は SwissKnife.Mvc に突っ込んであるので GitHub にはソースコードが、NuGet にはバイナリを置いてあります。 NuGet Gallery |
URLルーティングの設定を変更しながら、ASP.NET MVCアプリのテストを追加していく方法について説明。また、MvcContribのテスト支援機能以外の機能についても簡単に紹介する。 ← 前回 連載 INDEX MVC Contribは、ASP.NET MVCを便利に使うためのオープンソース・ライブラリだ。前編では、MVC Contribを活用してテストを簡単に行う方法について紹介した。後編となる本稿では、URLルーティングの設定を変更しながら、テストを追加していく方法について解説する。コードはC#で記述する。 新しいURLルーティングとテストを追加 それでは、新しいURLパターンを追加していこう。ここでは、前編で紹介した「/article/100/page/2(100個目の記事の2ページ目)」というURLをテストするとしよう。このURLであれば、ArticleControllerのI
ASP.NET WebフォームからASP.NET MVCへの移行/共存:特集:“Webフォーム+ASP.NET MVC”共存アプリ(1/4 ページ) 連載目次 背景 ASP.NET環境での開発スタイルを大きく変化させた「ASP.NET MVC」(以降、MVC)がリリースされ、すでに4年以上が経過した。日頃からASP.NET技術に関心を寄せる開発者であれば、もはやMVCでしかWebアプリケーションは書きたくない、という人もいるかもしれない。詳細については別途解説記事*1を参照してほしいが、MVCを利用することで ユニット・テストがより容易に書けるようになった*2 Web開発において一般的なMVCモデルに則った設計になっているため、ASP.NETに習熟していないWeb開発者でも今までの経験を生かしつつ開発することが可能になった Webフォーム(Web Forms)と比較して素直なHTMLコード
ちょっと前にこんな記事が Twitter や Facebook で話題になっていました。PC とスマホ両対応しているサービスは要注意かもしれません。 グーグル、スマホ対応が不適切なサイトの検索順位を引き下げへ - CNET Japan Twitter や Facebook でシェアされた URL を踏むと、強制的にスマートフォン向けのトップに飛ばされるサイトってありますよね。どうやら、そういうページは Google では検索順位が下げられるようです。 ソーシャル対応を考えると、PC 向けとスマホ向けを同一の URL で運用したいものです。ちなみにはてなブログはちょっと前に同じ URL で表示されるようになりました。 これまでは、はてなブログをスマートフォンで閲覧すると、次の表のように「/touch」を含むURLで表示されていました。このため、ソーシャルメディア等にシェアする際に複数のURL
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く