その1 System.Collections.ICollectionインターフェイスにキャストすることで、SyncRootにアクセス可能。これでlockを行うことができる。 //こんな感じ var list = new List<String>(); lock (((System.Collections.ICollection)list).SyncRoot) { list.Add("アイテ</string>…
WindowsFormアプリでデフォルトでできていた、ブレークポイントで張る→止まる→ソースコード書き換え がASP.NETアプリではソースコード書き換えができない。次の設定を行うことで可能になる。
クエリのエクスポート この機能で、テーブル定義とレコード設定のクエリを生成することができる。 そのクエリをホスティング先のSQLServerで流す。 web.config設定について ビルド別に使用DBを分けたい場合(例えば、デバッグ時はローカルの*.MDFを使用。本番…
VisualStudio2010 Pro SP1 ASP.NET MVC 3 Webアプリケーション ターゲットフレームワークは.NET4 ADO.NET Entity Data Model で確認 はじめに SQLServerは3つまでしかDBを作成することができない。これは嬉しくないのでSQLServerCompact4を使うことにした。 …
マウント時に行う処理を指定するといったことが、TrueCryptではできなさそうなので、 バッチファイルを作成し、それを実行させることで対応した。 マウント&共有フォルダ作成 <...>は各自環境に置換してください。 cd <ボリュームファイルのフォルダ> "…
このメソッドをテストハーネスで動かすことができません 隠れたメソッド privateなメソッドをテストしたい場合の対処方法。 ・publicなメソッドにしてしまう。*1 ・そのメソッドの責務を別クラスに分離する。 ・テストクラスからそのメソッドを呼び出せるよ…
このクラスをテストハーネスに入れることができません いらただしいパラメータ 本番コードでは、それ以外に手段がない場合を除き、パラメーターにnullを渡すのはやめる。 nullを渡せるような実装だと、処理の至る所でパラメーターチェック処理が行われている…
いつまで経っても変更作業が終わりません 遅延時間 外部ライブラリなどの依存性がひどいシステムのコードは、ビルドする度に未変更箇所すべてもビルドしなおす必要がある。 その間ぼーっと待つことになる。(遅延時間) 改善済コードだとビルド~テスト実行の…
レガシーコードを改善する前に 遠回りな対応方法としてレビュー時に文句を言われると思う。 そこだけ変えても、そこ以外の糞コードはそのままだぞ。意味ないのでは? 動くようになっている箇所の構成を帰るのはいかがなものか? しかし、「これを続けていけ…
レガシーコードの定義 "テストの無いコード"すべてをレガシーコードと呼ぶ。 フィードバックを得ながらの作業 システム変更の方法は大きく二種類に分けることができる。 1,編集して祈る → レガシーコード 2,保護して編集する → テストで保護されたコード 単…
DBアプリケーションのパフォーマンス・チューニング − @ITの内容メモ クエリのデータ転送量を減らす 不要な項目をSELECT区に含めない。安易に*を使用しない。 SQLServerからの転送量がかなり節約できる。 クエリの内容をデバッグ出力 Entity Frameworkでは…
テレビで見て感心したので頭に残っていることを書き出しておく。 種類別に片付け 場所ごとに片付けするのではなく、種類ごと(服,本,書類,,,)に片付ける。 整理対象種類のものを一箇所にまとめて片付けする。こうすることでものの量が把握できる。(その多さに…
読書は自身への投資となる。 本で得た知識を仕事や生活で活かすことで大きなリターンを得ることができる。 "読書"ではなく、自分を運用するための投資作業という意味合い(-> レバレッジ・リーディング)。 多読を行い、より重要な知識を仕入れる。 同じジャン…
IObservable(T) インターフェイス (System) IObserver(T) インターフェイス (System) .NET Framework 4から追加されたこれらのインターフェイスを使ったサンプルを作成していました。 オブザーバーパターンは一方通行の通知を行うパターンだというのに、チャ…
基本的な大事なことです。 Javascriptのクロージャと同じ考え方です。。。 ど忘れしてましたので再確認を兼ねて書き置きします。 //非同期でFriendGridにイメージを追加していく (ダメバージョン) Task.Factory.StartNew(() => { foreach (var friend in Vie…
開発系エンジニアのスキルロードマップ Part 2 - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs テスターって単体や結合テストする人たちのことでしょ?別に分ける必要ないのでは?と思っていましたが、 「デベロッパーとテスターの違い」を読ん…
直交表はテストの専門家ががんばって勉強することでやっと使いこなすことが可能になるイメージ。 デシジョンテーブルは、専門家でなくても、テストケースを比較的容易に作成できる。 メソッドに対するテストでの使用を想定しているが、機能に対する単体テス…
水準数が少ない場合 2水準系直交表の因子より少ない水準の因子を割りつける場合、 割り付け可能な最小サイズの因子へ割りつける。余った水準値はダミー扱いにして、使用しない・重要パターン用に使用する。 水準数が多い場合 2水準系直交表の因子より多い水…
実際に作ってみた 対象とするのは下画面イメージなアプリケーション 社員情報は社員マスターから取得。全て平社員に属する。 社員を選択しない場合、全社員が対象になる。 有効データは2011/01/20〜2011/06/20に存在する。 実行を行うと処理結果がデータベー…
使用する直交表の決定方法 決定する方法が幾つかある。 最大水準因子の組み合わせから求める 「最大種類の水準を持つ因子と、その次に多い水準をもつ因子の組み合わせパターン数」を持つ直交表を使用する。 自由度からの見積もり(同じような水準数ばかりの場…
すべての組み合わせテスト行うのは時間的に無理 例えば57個の組み合わせテストをすべてやろうとしたら46億パターンが以上必要!! ほとんどの不具合は、2機能間の組み合わせで発見されている。 多人数で作成されているソフトウェアは3,4機能の組み合わせでも…
チュートリアル: ASP.NET MVC での TDD の使用 上記リンク先からダウンロードできるサンプルソースはMVC2のときのものですが、十分参考になります。 コントローラークラスに対するテストを勘違いしていたところがあったので、自コメント付けてソースを丸々貼…
※8/25 OpenId用語訂正(RP⇒OP) asp.net mvcアプリで、DotNetOpenAuthを使用したOpenId認証を行う際、 DotNetOpenAuthのサンプルコードのようにControllerで認証関係処理をゴリ書きするのが嫌だったので、その辺の処理をクラスに分離してみました。 Factoryク…
今までアプリケーションのデータソースとして何気なく使っていて、デバッグ時は問題ないが、 本番環境への配置やリモートからの接続が発生した途端にエラーが発生し困ったことが多々ある。 とりあえず動くようにという感じで場当たり的な対応で乗り切ってい…
※jQuery Mobile 1.0a4.1 でのはなし。 静的なページが必ず1つ必要っぽい。(ひとつも無いとエラーが発生する) そのため、ダミーページを作成して対応。 <div data-role="page" id="dummypage"></div> <div id="templ-page"> <div data-role="header"><h3>ヘッダー</h3></div> </div>
ページ単位 チュートリアル : ASP.NET トレースと System.Diagnostics トレースの統合 WindowsFormアプリケーションの場合はConsole.Writeline()でデバッグメッセージをコンソール出力していたが、ASP.NETで同じことはできない。 System.Diagnostics.Traceク…
メンバシップフレームワーク メンバシップ プロバイダの実装 サンプル メンバシップ プロバイダの実装 方法 : サンプル メンバシップ プロバイダを実装する 方法 : カスタム メンバシップ ユーザーを実装する DataSourceごとにプロバイダクラスを生成する必…
ASP.NETのルーティング機能。ASP.NET MVCのそれがASP.NETへ統合されたらしい。 ルーティングの有効化 IIS7.0以前のバージョンで使用する場合、modulesノードへUrlRoutingModuleを追加する必要がある。 以降の場合はmodulesノードのrunAllManagedModulesForAl…
.section-detail{ margin : 10px; margin-bottom : 30px; font-size : small;} .ref-info{ display : block; font-style : italic; margin : 5px; margin-left : 0px;} ASP.NET MVC のソースコードを読むにあたっての事前調査メモ。 ISAPI(Internaet ServerA…
jQuery1.6の新機能を試してみました。こんな感じで変更を感知できます。 参照元:jQuery1.6の更新内容をまとめたよ。 | Ginpen.com <html lang="ja"> <head> <meta charset="UTF-8" /> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("a").hover( f…</meta></head></html>