ADO.NET Entity Framework を評価する
システム開発では、プロセス中心、データ中心、オブジェクト指向といった開発アプローチが知られています。オブジェクト指向は人間の認識方法に近く、理解しやすいため汎用的に使える印象がありますが、特定の問題分野ではプロセス中心やデータ中心が有効な場合も多いです。例えば、業務アプリケーションはデータベースを使用することが多く、データ中心アプローチが有効です。一方、シミュレーションやロールプレイングゲーム(RPG)等は、オブジェクト指向アプローチが有効だと思います。
さて、Visual Studio 2010 には、ADO.NET Entity Framework (以下、EF)というORマッパーが提供されています。EF自体は前バージョンのVS2008 から提供されていましたが、VS2010 でより洗練され、いよいよ実戦投入できそうな感じです。
.NET と言えば、従来からDataSet を使ったDAO型のデータアクセス方式が有名です。DataSet 方式は、業務アプリケーションを開発する場合、現在でも極めて有効な方式だと思います。しかし、この方式は『データベースありきの開発になってしまう』、『データとコードが別の場所に分離してしまう』等、いくつかの問題点が指摘されています。ORマッパーはこうした問題点を解決する方式として知られており、EFが提供されたことで、.NET 開発はこれから様変わりしていくことと思われます。
個人的には、EFだけで様々なシステム開発をカバーできるのが理想だと思っています。
- DataSet方式を捨てても問題なくデータベースを使用した業務アプリケーション開発ができるか?
- オブジェクト指向アプローチの良さを存分に活かせるシステム開発ができるか?
上記のような視点でEFの可能性を追求すべく、このところ、いろいろ弄ってたりします。