2012-01-01から1年間の記事一覧
この間、納期間近で切羽詰まっていた時でも、 Htmlヘルパーとその単体テストをCleanに記述できました。それは、こちらの記事Unit Testing Html Helpers in ASP.NET MVC3–The Cleaner Way があったからできたものでした。 時間がなくてもHtmlヘルパーとテスト…
MVCでは、いろんなHTTPリクエストの内容を取得することができます。(MVCに限らずですが) クエリ文字列、フォーム送信データ、Cookie、ヘッダー情報、など…。 これらの値は、モデルバインド時にも使用されます。リクエストの値を扱う時に、知っておきたいこと…
はじめに MVCのサンプルプロジェクトであるProject Silkでは、 UnityというIoCフレームワークを利用して関心の分離を行っています。 今回は、Silkのソースを参考にしながら、Unityの利用方法を記載したいと思います。 1.Unityとは 2.Unityの利用方法 3.WebCo…
カスタムセレクターの作り方 例えば あるキーのパラメータが存在する場合のみ、 アクションメソッドの選択を有効とする、独自のセレクターを作るとします。 RequiredParameterです。 属性クラスを作成する アクションメソッドの選択を制御する場合は、 Syste…
SOA さーびす指向アーキテクチャ 大規模なシステムを「サービス」の集まりとして構築する設計手法。 iPODO - Idiomatic Presentation 慣用的なプレゼンテーション - Orchestration オーケストレーション - Domain ドメイン - Data データ チャッティーとチャ…
最近のラノベは、題名だけで分かるような長ーいタイトルになっているらしいですね WEBサービスも同じようにしたら、流行るかな… 本題です 最新バージョンのNUnit.Framework.dllといっても、 たくさんのバージョンアップを経ているので、新しいものから古いも…
SQL Server 2012 より提供 データベースプロジェクトを、デザイナを利用して変更できるツールがある 、と教えて頂いたので利用してみました。デザイナツールの他にも、何点か新しく追加されたそうです。 その中の「SQL Server データベース プロジェクト」と…
問題 チーム内でのデータベース管理に、データベースプロジェクトを利用しています。ですが、よくあるマスタデータの挿入については、手作業で管理をしていました。 Insert文を書いたクエリファイルを、共有フォルダに置くなり、メールに添付するなりして、 …
MVCにて、ビューにわたすものを、ModelではなくViewModelにする、という書き方がありますが、 帳票出力の場合も、同じように考えると、綺麗に書けました。エクセル出力を例にして、その方法を記載します。 全体像 http://aspnetdesignpatterns.codeplex.com/…
単体テストのコードを書く上で、重要だと思うことのうち1つを書きます。 それは、TDDの手順の1つでもある、”失敗するテストを書く” です。TDDまではいかなくてもいいから、とにかく単体テストコードを書きたい、 と思っている方や、TDDに慣れすぎて、我流…
MVCで書くときのポイント その1.適切なViewModelを作る その2.AutoMapperのテスト、確認 その2です。 マッピングをテストする Mapper.AssertConfigurationIsValid(); AutoMapperを利用する時は、必ずこれを書くべきだと思います。 マッピングされないプ…
MVCで書くときのポイント、 その1.適切なViewModelを作る その2.AutoMapperのテスト、確認 この2点のうち、その1を書きたいと思います。 その1.適切なViewModelを作る MVCでゴリゴリ書いていると、適切なViewModelを作ることが 大事だなと感じます。…
MvcScaffolding を使えば、 アクションメソッドとそのテスト、他いろいろなものを自動生成してくれます。使ってみた感想と、カスタマイズ方法の一部を記載します。 感想 すごい!らくちん! コードの変更は、t4をいじるだけなので簡単。 ファイルが生成され…
問題 同じ内容のテストを2度以上書いてしまった時、以下の問題が発生している可能性があります。 - 何をテストしたいのかハッキリしていない。 - 技術的負債を抱えたコードを書いている。 例 ユーザーが、オレンジを食べるメソッドを作ります。 これをTDDで…
JavaScriptで、ある期間を、月ごとに期間で区切ってくれるものを作りました。 テストコード (QUnit) test("月ごとの期間配列作成テスト。 2012/02/15 〜 2012/04/16 の場合", function () { expect(10); var startDate = new Date(2012, 2 - 1, 15); var end…
前回の記事CodeContractsを触ってみたで、 Contract.Requires(x != null); と書いても例外が発生しない、と書きましたが、ウソでした。証拠画像例外を発生させる方法は以下の通りです。■プロパティの Runtime Checking にチェックをいれ、 Perform Runtime C…
field.camelcase-underscore を使ってマッピングしている時に、 エラーが出ました。 クラス private Iesi.Collections.Generic.ISet<Student> _studentItems = new HashedSet<Student>(); public IEnumerable<Student> Students { get { return _studentItems; } } マッピング <set name="StudentItems" access="field.camelcase-underscore"> ... </set> こ</student></student></student>…
Code Contracts を少しだけ触ってみました。 一見、すぐ使うべきだ!と思いましたが、ちょっとひっかかることがありました。** 例外が発生しない if (s == null) throw new ArgumentNullException(); と Contract.Requires(s != null); が全く一緒というわけ…