エンジニア界隈に長く居ると、最新技術が出て来る度に、「
XXXは死んだ。」・「
コレからはYYYだ。」的に言われたり、書かれたりすることを、既に何回も目にしてきた諸兄も多いかと思いますが、
前回、言及した「
STP(セグメント/ターゲット/ポジション)」を考えると、このような技術ブログはミスリードが多い。ということを、薄々勘付いてはいましたが、本件で確信した次第です。
本件で、具体的に何をしたか?という話ですが、Open棟梁の動的パラメタライズド・クエリのインターフェイスが System.Data ベースだったので、 ASP.NET MVC の POCO ベースのスタイルにフィッティングさせるために、(AutoMapper があまり使えなかったということもあり、)下記のissueで、System.Data ⇔ POCO の Mapper を自作し、 ASP.NET MVC と WebAPI のサンプルを POCO ベースのスタイルに変更してみました。
一時期、「
System.Data 死亡 → Entity Framework or Dapper への移行」説が流れ、動的SQL や DataTable & RowState を使用したいエンタープライズ・アプリケーションのアーキテクト的には「?」だったんですが、 System.Data から POCO にフィッティングさせて STP 次第でコンパチ出来る所まで手元に手繰り寄せたら、
「Java / Ruby の POCO 文化を取り込んだ ASP.NET MVC を使用する場合、 Model Binding で POCOベースのスタイルであったほうが効率は良いが、 ORM 自体は必須の要件ではない。」
と、やっぱり、この手の情報はミスリードである。と解ります。
因みに、System.Data の DataTable も .NET Core 2.0 でサポートされましたし、 Windows Forms も .NET Core 3.0 に取り込まれる予定で、Windows Forms + DataGridView + DataTable + RowState による一覧更新処理実装は、RAD (Rapid Application Development) の「
極地」として今後も利用可能になるだろうと思われます。
<参考>
以下の情報は、今回の逆のパターンで、POCO文化をDataTable文化にハメようと言うケースで、これも、これで示唆的です。基本的に適合するものを使用すれば良いのですが、異文化のプロダクト同士のフィッティングをする際は、親和性も考慮する必要がありそうです。