partial とデザイナによる自動生成

C#での、DataSet群(DataTable, DataRowなど)は、型安全を捨ててるけど、現実的に効果のある解だと思います。しかし、VisualStudioのデザインツールから自動生成するようなクラスDataAdapterとか型付きDataSetは、結構ツラい。

意図と反する自動生成が行なわれた場合(例えば、DataAdapterのFillメソッドの引数を入力したSQLから、パラメータを自動生成したりするんですが、勝手に間違ったC#の型にマッピングして型安全なコードを吐く)には、自動生成されたコードを修正しなければならなくなる。結局微妙な抽象化がされたクラスのコードを沢山見なきゃならないなら、最初から、SqlCommandで、普通にSql発行した方が早いくらいかもしれない。OOPマンセーな人は、この辺の解析作業自体が好きかもしれない。


苦労して自動生成されたクラスをカスタマイズした後に、デザインツールを開いて、編集したつもりじゃないのに更新されてて保存しちゃった場合、さっきの努力は、消されます。(svnから持ってくればいいんですが。)その危険を回避するために、VS2005(.net2.0)から partial が使えるようになるという拡張がされました。

http://msdn2.microsoft.com/ja-jp/library/wbx7zzdd(VS.80).aspx

OOP的には禁じ手みたいな機能だと思います。でも、たかがデキの悪いIDEのために、言語仕様まで変えちゃう(しかも改悪とも取れるような拡張)のはどうなんだろう。

自分のソースをpartialを使って上書きされないように実装しても、なんとなくスッキリしないです。


C#を正しく使って効率を上げるのは(自分には)非常に難しいと思った。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください