C#
今までのソフトウェア開発の経験の中でカスタマイズ要素や機器制御における機器構成のバリエーションあるいは開発で使用する各種シミュレータやデバッグツールなどで、振る舞いを変更できるように設定ファイルや変な外部DSLの様なものを作ったりして対応して…
Googleグループのobject-compositionグループではDCIアーキテクチャに関する議論がなされている様です。 その中でC#によるDCIアーキテクチャの実装についてはやはり「拡張メソッドを使ったtraitあるいはミックスイン(mixin)的なもの(その3) - Jamzzの日…
ユニットテストなどではテスト対象外の振る舞いをテスト目的に合わせるためにモックやスタブ等を作成することがあります。 .NET開発でこの様なモックやスタブを簡単に作成するフレームワークにMicrosoft ResearchのMolesがあります。 このMolesは以前に紹介…
自分の理解を確認するために拡張メソッドの活用について整理したいと思います。 拡張メソッドの活用例として特定のクラスを通じて取得するSingletonというものを考えてみました。 通常Singletonは利用する側が任意の個所で取得するようになっていると思いま…
昨日「拡張メソッドを使ったtraitあるいはミックスイン(mixin)的なもの(その2) - Jamzzの日々」の最初の投稿した後にお風呂に入ってあれこれ考えていたらメモリリークに気がついて、ひょっとして参考にする人がいるかもしれないと思って取り急ぎソース…
ここのところtraitに惑わされてだいぶ寄り道して凝った内容を書いてしまったのですが、個人的にはミックスイン(mixin)的に型階層に関係なくスコープを限定して後付けで機能を追加できればそれで充分に嬉しいと思っています。 C#の拡張メソッドはまさにその…
「拡張メソッドを使ったtraitあるいはミックスイン(mixin)的なもの(その1) - Jamzzの日々」に引き続いて、「第4回 Scala言語を探検する(2)(2ページ目) | 日経 xTECH(クロステック)」にある「Traitでアスペクト指向を簡易に実現」の例をC#で実現し…
「C#クックブック 第3版」をパラパラと見ていて拡張メソッドというものがあることを知りました。 これは使えそうだと思っていたところにScalaにはTraitsというものがあってこれが多重継承あるいはミックスイン(mixin)と同様に活用できるということで注目を…
私がC#を初めて使うことになった以前の案件では.NET Framework 2.0を使っていました。 その時からC#をかなり気に入っていたのですが最近またC#を使う機会を得て最新の.NET Frameworkに触れるようになってますます気に入りました。 特にラムダ式がクロージャ…