ものがたり(旧)

atsushieno.hatenablog.com に続く

WCF:クラスの大まかなカテゴリ分け(とそのメリット)

ある程度恣意的なメモではあるのだけど、WCFのクラスライブラリをごくごく大まかにカテゴリ分けしてみた。
http://gist.github.com/476649

よく「WCFはABCがキモだ」とか言うけど、見ての通りAなんて何もないわけで、「WCFボンクラ」を卒業したかったら、ABC、ABCって言うのはきっとやめたほうがいいと思う。何も言っていないのと同じだもの。

こういう区分けがなんの役に立つかというと、例えばクラス間の依存関係を整理して、不必要な依存を作り出さないようにする時に便利。理解していると、↓みたいなバグフィックスが出来るようになる。これは、ServiceHostを使わないコードを書いて、初めて発見できた問題だ。
http://lists.ximian.com/pipermail/mono-patches/2010-July/175137.html

恣意的だし網羅的でもないので、あくまで「ある程度の」参考になればと思う。というか上記の例はIEndpointBehaviorの実装であるWebHttpBehaviorが内部的に生成するIDispatchMessageFormatterだということが分かっていないと、問題が頭だけでは理解出来ないし、そもそもIEndpointDispatcherってhostingを前提にしているものだからなー。まあ多分セキュリティレイヤーを自前で実装するときは、把握しているとそれなりに問題を回避できると思うのだ。