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

Entity FrameworkでUPDLOCKを指定する方法

WITH (UPDLOCK)付きのViewを作成して、マッピングしたエンティティを検索すれば自動的にUpdateロックがかかります。具体的には まずはWITH (UPDLOCK)付きのViewを作る CREATE VIEW [dbo].[EmployeesWithLock] AS SELECT EmployeeID, LastName, FirstName, Ti…

いま.NETで業務アプリを作成するんだったらRIA Serviceフレームワークを利用する

今.NETで業務アプリを作成するのであればRIAService+Silverlightを使うことを勧めするだろうな。理由は高い生産性。 サーバー側の仕組みはEntity FrameworkとRIA Serviceで本当に簡単に作成できるし、クライアント側についてもRIA Serviceの呼び出しやエン…

C#のvolatileって結局なんの効果があるの?

volatile 修飾子 C#にはvolatileという修飾子がある。MSDNのC# リファレンスでは以下のように説明している。 volatile キーワードは、同時に実行中の複数のスレッドによってフィールドが変更される可能性があることを示します。 volatile と宣言されているフ…

SQL Serverに1億件のテストデータを高速に作成する

SQL Serverに1億件を超える大量のテストデータを作成する必要がありできるだけ高速な方法を調べてみた。 ストプロを試してみる まずはストプロを作成してどの程度になる確認してみる。単純にループを回してINSERTを1件づつ行う方法でまずは100万件で試してみ…

導入するアーキテクチャの均衡点を探す

優れたアーキテクチャや手法があっても開発チームが使いこなせなければ絵に描いたもちである。 目指すべきアーキテクチャ(TOBE)と開発チームが実際に回せる(ASIS)レベルとのギャップが大きいとなかなか大変だ。この均衡点(CANBE)を探すことがアーキテクチャ…

knockoutjsメモ

チュートリアルレベルをさらっと触ってみた感想 案外簡単に利用できるように感じで動的な画面が必要なケースには本当に強力な仕組み。ただ、ASP.NETとの統合利用するためには、ページのGET、POSTではなくAJAX的な実装にする必要があって、HTML中心のWebアプ…

HTML5時代のMVVM knockout

MVVMの良さは動的に変化する画面の制御をViewModelで吸収することで複雑さをコントロールできる点です。WPFやSilverlightなどリッチUIを前提にしている場合はもちろんですが、HTML5によって業務Webアプリも当たり前のようにリッチUI化することは予想できます…

WCF RIA サービス

RIA

以前から興味があったWCF RIA サービスのヘルプを読んだのでポイントを整理しました。アプリケーション基盤として、名前付き更新やコンポジット階層、プレゼンテーションモデルなど興味深い仕組みが幾つかあります。好みが分かれるのでしょうが個人的には好…

意思決定コスト

業務システムを構築する際に多くの意思決定を行う。業務仕様、利用技術、アーキテクチャパターン、本当に沢山の意思決定を行う。この意思決定を迅速にできないと作業が待ちになりムダが発生してしまう。 この意思決定のコストは、プロジェクト組織のサイズ(…

DB設計にアグリゲートの考えを導入する

RDBMSはテーブルがフラットに配置されています。テーブル間にリレーションを設定できますが、親子のような関係を定義することはできません。アグリゲートは、複数のオブジェクトを集約して意味的に1つの概念として扱うことで、複雑さを低減するテクニックで…

タイプセーフなDB開発

HibernateやEntityFrameworkなどのORMライブラリはどの程度使われているのであろうか?EntityFrameworkなどいくつかのライブラリはDBからクラスを生成できる仕組みがあるので、この仕組みを使うとプログラムからDBアクセスをタイプセーフなコードで記述でき…

LightSwitchでのIME制御

現バージョンのLightSwitchではTextBoxに対してIMEの設定を行うことができません。しかし日本ではIME制御したいケースは普通に考えられます。Silverlight自体はIME制御できるのでヘルパーを作成してカスタムコードで対処することを考えました。 public stati…

アジャイル開発の価値をマネージメントに訴求する

マネージメントは開発コストが大きな関心事である。 開発コストは単純化すると以下のような式になる。 開発コスト=開発規模/生産性*単価 そうすると、開発規模を小さくするか、生産性を上げるか、単価を下げるしかない。開発規模はパッケージの導入、単価…

アジャイルサムライ

アジャイルサムライ−達人開発者への道−作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未出版社/メーカー: オーム社発売日: 2011/07/16メディア: 単行本(ソフトカバー)購入: 42人 クリック: 1,991回この商品を含むブログ (257件) を見る実…

MVVMでModelをリッチにしていくとViewModelの処理が小さくなる?

ViewMakerのサンプルBurgerShopはMVVM+ドメインモデルで作成しています。このサンプルを作成している時に感じたのは、ViewModelのロジックをビジネスロジックとして捉えるとどんどんModel側のコードに吸収されていきます。例えば、オーダーを登録するために…

動的に画面上のコントロールを表示制御する

LightSwitchファーストタッチ3(コントロール制御)ではコントロールの表示制御をコードから行う方法を紹介しました。しかしこの方法ではデータの動的な変化に合わせて制御することは簡単ではありません。 ここではデータバインドを利用して簡単に動的に画…

LightSwitchファーストタッチ3(コントロール制御)

Lightswitchを少し触ったので気づいた点をメモ。 コントロールの表示制御やフォーカス制御はコードを記述するとできる。 コントロールの取得 FindControlするとLightSwicthでのコントロール概念にあたるIContentItemProxy型のオブジェクトが取得できる。ただ…

WeakEventパターンを考える

WPFにWeakEventパターンというものがあります。これについてすこし考えてみたいと思います。まずはMSDNからの抜粋でどのようなものか見てみましょう。 一般的なアプリケーションでは、イベント ソースにアタッチされているハンドラが、このハンドラをソース…

LightSwitchファーストタッチ2(トランザクション)

Lightswitchを少し触ったので気づいた点をメモ。 Submitでの更新はトランザクションとして処理される。検索の分離レベルはReadCommitted、サブミット(更新)はRepeatableReadで、既定ではDTCは利用されない。DTCを利用したい場合や明示的なトランザクション…

LightSwitchファーストタッチ1(画面関連)

Lightswitchを少し触ったので気づいた点をメモ。 まずは、画面関連、操作感については、Lightswitch特有な操作性があること、部分的にSilverlightの画面を含めるのは簡単*1という印象 型変換できない値の入力 数値項目にアルファベットを入力すると入力エラ…

サービスごとのDTOの利用

僕はどちらかといえば積極的にDTOを使いません。特にサービスごとにDTOを作るようなことは避けます。しかしこのようなDTOを利用するケースはそれなりにあってメリットをいろいろ考えました。結論としては 『DTOを使う最も大きな理由は画面とビジネスロジック…

MVVMアプリケーションにおけるメモリリーク対策

フレームワークレベルでは丁寧なメモリリーク対策が必要と思いますが、アプリケーションレベルではメモリリークに対して神経質なコードを書かなくても良いと思っています。 ライフサイクルの長いオブジェクトを識別し管理する メモリリークの定義もいろいろ…

Microsoft Spain - Domain Oriented N-Layered .NET 4.0 Sample App

DDD

.NETのDDDのサンプルで、Code-FirstとMVVMで作っているようです。ざっと見た感じですが、素晴らしい!! 内容を見てみると、DDDのEntityやValueObject、(Domain)Service、その他Specificationなど多くのパターンについて実装と解説がついています。ドキュ…

LightSwitchはWeb版Accessなの?

Is Visual Studio LightSwitch the New Access?みたいな記事があったりします。LightSiwtchをAccessと同じようなEUD的な*1RADツールの位置づけとみる方は多いのでしょうね。もちろん、これは間違いではないですが、少し違った見方をもできるかなと思っていま…

LightSwitchはMVVMでした

最近 LightSwitchをチェックしているのですが、MVVMの思想が入っているかなと思って検索してみたら、やはり同じように感じる人がいるようです。 This Is How LightSwitch Does MVVM This article, covers some of the problems in implementing MVVM, mostly…

Code First+RIA Service+ViewMakerサンプル改訂

ViewMakerで作成したサンプルですが、実際に動かしてみるといくつか問題があって改訂しました。 再度ViewMakerダウンロードに配置しました。Azureも更新しました。一番大きな問題は注文したデータがDBに登録されていないというもので、ViewMakerの機能には関…

AzureでViewMakerのサンプルを公開

ViewMakerで作成したSilverlightのサンプルをAzureで公開します。 公開は終了しました。無料パスを利用しているので期間限定の公開になります。 編集してもローカルにしか影響しませんので、適当に画面レイアウトを編集して遊んでください。

ViewModelとView(XAML)、どっちが大変?

MVVM界隈ではViewModelを作成するのが大変という理由でViewModelを自動生成をするツールをよく見るけど、ViewModelよりもViewすなわちXAMLを作る方が大変じゃない? C#書ける技術者とXAMLを書ける技術者の数の違いもあるし、リファクタリングなどのツールの…

クイックマニュアルを公開します

ViewMakerダウンロードの「Quick Manual(日本語) 」をダウンロードしてください。ViewMakerの基本的な使い方はわかると思います。

RIA Serviceのファーストインプレッション

RIA

一言でいうとフレームワークというよりはLOBアプリケーションプラットホーム。 実務的なところは好感がもてるが、ただ少しごちゃごちゃしている感じがしている。RoRなどと同じにおいがする。 「"Good enough" is good enough.」という感じです。 サービス(…