miso_soup3 Blog

主に ASP.NET 関連について書いています。

2012-01-01から1年間の記事一覧

Htmlヘルパーをどんどん利用する

この間、納期間近で切羽詰まっていた時でも、 Htmlヘルパーとその単体テストをCleanに記述できました。それは、こちらの記事Unit Testing Html Helpers in ASP.NET MVC3–The Cleaner Way があったからできたものでした。 時間がなくてもHtmlヘルパーとテスト…

ValueProviderを扱うときに気をつけること

MVCでは、いろんなHTTPリクエストの内容を取得することができます。(MVCに限らずですが) クエリ文字列、フォーム送信データ、Cookie、ヘッダー情報、など…。 これらの値は、モデルバインド時にも使用されます。リクエストの値を扱う時に、知っておきたいこと…

Project SilkにならってUnityを使ってみる

はじめに MVCのサンプルプロジェクトであるProject Silkでは、 UnityというIoCフレームワークを利用して関心の分離を行っています。 今回は、Silkのソースを参考にしながら、Unityの利用方法を記載したいと思います。 1.Unityとは 2.Unityの利用方法 3.WebCo…

カスタムセレクターの 作成 と テスト

カスタムセレクターの作り方 例えば あるキーのパラメータが存在する場合のみ、 アクションメソッドの選択を有効とする、独自のセレクターを作るとします。 RequiredParameterです。 属性クラスを作成する アクションメソッドの選択を制御する場合は、 Syste…

パターン、原則などのメモ

SOA さーびす指向アーキテクチャ 大規模なシステムを「サービス」の集まりとして構築する設計手法。 iPODO - Idiomatic Presentation 慣用的なプレゼンテーション - Orchestration オーケストレーション - Domain ドメイン - Data データ チャッティーとチャ…

最新のNUnitを知ることを軽んじていたので反省した

最近のラノベは、題名だけで分かるような長ーいタイトルになっているらしいですね WEBサービスも同じようにしたら、流行るかな… 本題です 最新バージョンのNUnit.Framework.dllといっても、 たくさんのバージョンアップを経ているので、新しいものから古いも…

デザイナツール SQL Server Data Tools を利用してみました。

SQL Server 2012 より提供 データベースプロジェクトを、デザイナを利用して変更できるツールがある 、と教えて頂いたので利用してみました。デザイナツールの他にも、何点か新しく追加されたそうです。 その中の「SQL Server データベース プロジェクト」と…

データベースプロジェクトにて、非スキーマスクリプトを管理する方法

問題 チーム内でのデータベース管理に、データベースプロジェクトを利用しています。ですが、よくあるマスタデータの挿入については、手作業で管理をしていました。 Insert文を書いたクエリファイルを、共有フォルダに置くなり、メールに添付するなりして、 …

帳票出力 In MVC 書き方

MVCにて、ビューにわたすものを、ModelではなくViewModelにする、という書き方がありますが、 帳票出力の場合も、同じように考えると、綺麗に書けました。エクセル出力を例にして、その方法を記載します。 全体像 http://aspnetdesignpatterns.codeplex.com/…

1アサート 1失敗

TDD

単体テストのコードを書く上で、重要だと思うことのうち1つを書きます。 それは、TDDの手順の1つでもある、”失敗するテストを書く” です。TDDまではいかなくてもいいから、とにかく単体テストコードを書きたい、 と思っている方や、TDDに慣れすぎて、我流…

AutoMapper + ViewModel In MVC その2

MVCで書くときのポイント その1.適切なViewModelを作る その2.AutoMapperのテスト、確認 その2です。 マッピングをテストする Mapper.AssertConfigurationIsValid(); AutoMapperを利用する時は、必ずこれを書くべきだと思います。 マッピングされないプ…

AutoMapper + ViewModel In MVC その1

MVCで書くときのポイント、 その1.適切なViewModelを作る その2.AutoMapperのテスト、確認 この2点のうち、その1を書きたいと思います。 その1.適切なViewModelを作る MVCでゴリゴリ書いていると、適切なViewModelを作ることが 大事だなと感じます。…

MvcScaffolding で MVCのControllerテストを効率よく

MvcScaffolding を使えば、 アクションメソッドとそのテスト、他いろいろなものを自動生成してくれます。使ってみた感想と、カスタマイズ方法の一部を記載します。 感想 すごい!らくちん! コードの変更は、t4をいじるだけなので簡単。 ファイルが生成され…

何をテストしたいのか? をハッキリする

TDD

問題 同じ内容のテストを2度以上書いてしまった時、以下の問題が発生している可能性があります。 - 何をテストしたいのかハッキリしていない。 - 技術的負債を抱えたコードを書いている。 例 ユーザーが、オレンジを食べるメソッドを作ります。 これをTDDで…

ある期間を、月ごとに区切る

JavaScriptで、ある期間を、月ごとに期間で区切ってくれるものを作りました。 テストコード (QUnit) test("月ごとの期間配列作成テスト。 2012/02/15 〜 2012/04/16 の場合", function () { expect(10); var startDate = new Date(2012, 2 - 1, 15); var end…

Code Contracts throw 例外

前回の記事CodeContractsを触ってみたで、 Contract.Requires(x != null); と書いても例外が発生しない、と書きましたが、ウソでした。証拠画像例外を発生させる方法は以下の通りです。■プロパティの Runtime Checking にチェックをいれ、 Perform Runtime C…

field.camelcase-underscore でエラー

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 を触ってみた

Code Contracts を少しだけ触ってみました。 一見、すぐ使うべきだ!と思いましたが、ちょっとひっかかることがありました。** 例外が発生しない if (s == null) throw new ArgumentNullException(); と Contract.Requires(s != null); が全く一緒というわけ…