読者です 読者をやめる 読者になる 読者になる

亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

C# の素晴らしさを語る会 で喋ってきました。

F#C# の素晴らしさを語る会 で喋ってきました。 - C#の素晴らしさを語る会 - VSハッカソン倶楽部 | Doorkeeper

C#の話をしていないじゃないか、と評判でしたが。

スライド

コード

PropertyChangedの部分だけ、一応載せておきますね。

PersonViewModel.csがビルド時にPersonViewModel.Modified.csにモジュールレベルで変換される、というのがポイントですね。

いい忘れたこと

今回の勉強会、結構初心者のかたも来られていたらしく、その割にはちょいとばかりハードな内容だったかもしれません。

でも、発表の冒頭で言ったように、「なんかよくわからないけれど、こういう技術を使えばこんなことができるらしい」というイメージだけでも、できるだけ多く拾ってもらえればと思っています。

僕の尊敬するプログラマ*1のプロフィールのまんまであるのですが、「目的のためには手段を選ばないために手札を揃える」のは本当に重要だと思うのです。技術的なさわりだけでも知っておくのと知らないのとで、新たな問題にぶち当たった時に取れるアプローチに大きな変化がでてきます。

今回の発表ではFodyMono.Cecilを取り上げました。スライドにしたのは初めてですし、じつはいじり始めたのもごく最近だったりします。ですが、存在自体は結構前から押さえていました。

勉強会の話を聞いた時に、「何か他の人が話さないような、それでいて実はとても重要な概念ってないかなー?」というのでAOPを思いついて、そこからFodyなんかをリサーチしていけるな、と踏んで今に至るわけです。

新しい技術を聞いてから自分で消化して、実際の課題に活かすまでには、ある程度の時間が必要ですし、また答えられる課題の範囲と、課題に対する解答の多様性を保つためには球数が必要です。ですので、今回の勉強会の内容も、どんな話があったのか、それぞれどんな課題に対処するのか、という点で捉えてもらえればと思います。

今回のポイント

  • AOP(アスペクト指向プログラミング)
  • ILを編集するためのライブラリMono.Cecil
    • これはマニュアルがなくてかなり辛い
  • AOPを実現するツール、PostSharpとFody
    • PostSharpの方が簡単
    • Fodyの方が設定はややこしいが、その気になればできることは多くなる

*1:https://twitter.com/irof