きたるMicrosoftのADO.NET Entity Framework(リンク)のリリースを前に、コミュニティから同プロダクトに対する懸念を表明する申し立てがあった。この文書のタイトルは「ADO.NET Entity Frameworkの不信任投票」というもので、業界のエキスパートによって予測された設計と実装についての問題に対して、注意を集めることを目的としている。
不信任
この文書の目的は明確である。
この文書の署名者は、ADO.NET Entity Frameworkを利用するMicrosoftのコミュニティにおいて、ソフトウェアプロジェクトがよりよくなるために懸念を表明する、という一致した意見を持っています。
ここ数年、MicrosoftとEntity Frameworkチームは、.NETプラットフォームにおけるエンティティベースのアプリケーションやソフトウェアアーキテクチャのエキスパートから多大なフィードバックを受けてきました。Microsoftがエンティティアーキテクチャに対するフレームワークのサポートを提供するという声明を出して以来、Entity Frameworkは一貫して注目を浴びてきました。
この文書はよく練られているように見える。ただこれは開発者にADO.NET Entity Frameworkの利用を思いとどまらせるのが目的ではなく、現在の実装から外れる見込みの機能を意識させるためのものである。
私たちはEntity Frameworkが高い品質を持った第一級の製品になることを望んでいるし、巨大かつ複雑で納期の短いソフトウェアの開発プロジェクトのあらゆる問題に耐え、維持できるソフトウェアを開発する力を顧客や開発者に与え、期待以上の力を発揮するツールとなってほしいと思っています。
グループの感触では、Microsoftはフレームワークの開発の段階でフィードバックを受けていたが、それがバージョン1.0に十分に取り入れられていない。今回のゴールは、Microsoftへのコミュニティの関心を高め、開発を進めるための協力をすることである。
私たちは、エキスパートグループがあげた懸念事項について、Microsoftの顧客に真剣に考えるよう勧めています。このグループは、 Microsoftが「技術的なコミュニティの精鋭」と呼んでいる、コミュニティに意欲的に参加し、積極的に他者を援助しているエキスパートの集団です。私たちは、.NETの初期のリリースからMicrosoftのツール、またはその他のツールを使ってエンティティベースのアプリケーションを作ってきました。その途方もない量の経験を積み重ねた結果、一般のエンティティベースのアプリケーションはもとより、.NETでのエンティティベースのアプリケーションについてもベストプラクティスを蓄積してきました。
Entity Frameworkの現在の設計と実装における技術的な懸念のため、そしてMicrosoftの顧客のプロジェクトにもたらされる将来の潜在的なリスクのため、私たちはADO.NET Entity Frameworkの現在の状態に対して謹んで不信任の票を投じます。そして、エキスパートコミュニティによるフィードバックプロセスを継続します。
文書ではその懸念事項の詳細について、次のように説明している。
- エンティティに対してデータの側面を意識しすぎている点が、エンティティアーキテクチャのデグレードにつながる。
- レイジーロードがないために余分なコードが必要になる。
- 共有された、標準的なモデルがソフトウェアのベストプラクティスに反する。
- Persistence Ignorance(エンティティが永続化インフラに依存しないこと)の欠如が、ビジネスロジックを読みづらく、書きづらく、そして変更しづらくする。そのことが開発や保守のコストを大きくする。
- チーム開発でソース管理をする際に、マージの衝突が頻繁に起こる。
これらのより詳細な情報は「ADO.NET Entity Framework Vote of No Confidence」(リンク)を訪れよう。ここでは文書への署名をすることができる。また、本記事を執筆した時点で270を越す超す署名の一覧(リスト)を閲覧することができる。
業界の反応
このような意見の立場では、反論や反響は当然出てくる。この文書を適当な検索エンジンで検索してみると、結果はMicrosoftを支持するものも、反対するものも見つかり、結果はさまざまである。
ADO.NET Entity Frameworkチームはこの文書に迅速に返答している。Tim Mallalieu氏(リンク)はEntity FrameworkのV1.0のゴールと未来について、その主張と概要を説明している。
そられは私たちが十分に考慮したシナリオでしたが、残念なことにV1.0では完全にサポートされません。それについて、ここで詳しく説明します。重要な点は、これらの機能の選択は十分に考えられていることです。しかし、私たちは新しい機能を追加するか、コアの機能を提供するという最初のゴールを忠実に守り、より広い範囲のデータプラットフォームの提供にはマルチリリースの戦略をとるか、という2つの選択を天秤にかける必要がありました。今日、時を同じくして、この製品の次のバージョンに取り組み始めました。そして、この開発者のコミュニティに熱心に対応すること、データプラットフォーム全体へさらなる投資をすることが決定しました。
どの製品においてもバージョン1.0は、チームが実装を望んでいたすべての機能が含まれることはなく、それらは今後のリリースまで持ち越されることになる。それらの機能とフィードバックの結果により、バージョン2.0が作られる。
ADO.NETチームは将来の設計プロセスとゴールについて可能な限り透明で、開放的なアプローチをとっている。
私たちは、この9ヶ月にわたるAstoriaチームBlog(ADO.NETデータサービス)で見られるようなプロセスを実施するつもりです。定期的に New Entity Framework Design blog(リンク)に設計について投稿し、活発な議論を促します。そして、みなさんからのフィードバックを受ける機会をつくり、最終的な決定をする前にそれらを受けるようにします。このプロセスがどのように機能するかは、私たちの最初の投稿(リンク)をチェックしてください。また、次の投稿をお待ちください!
まとめ
この文書を書いたグループの立場は明白である。しかし、誰が正しいかはまだ結論が出ていない。フレームワークの開発においてMicrosoftは、非常に注意深く、十分な時間を設計の決定に費やしている。その中には議論を呼ぶような内容が少なからず存在する。この文書は、Microsoftの製品のバージョン1.0に対する熱心な意見、懸念をはっきりと説明している。
どんな製品を採用するにも、開発者は適合するかどうかリスクを負わなければいけません。今回は、製品を使う前に業界のエキスパートグループが潜在的な問題の警告をあげているということが非常にまれなケースである。すべての製品が今回のような注意事項を添付していればよいのに、と思う。
今回あげられた懸念事項のいくつか、またはすべては、ADO.NET Entity Frameworkの将来のリリースで取り込まれることだろう。Microsoftは歴史的に見ても、バージョン1.0の製品は利用者のニーズを満たさないものの、幾万ものフィードバックを取り込み、バージョン2.0、3.0ではすばらしい製品をリリースしてきた。今回もその歴史を辿ることだろう。この文書は、フィードバックとしてはその先陣をきったことになる。
この文書の全体は「ADO.NET Entity Framework Vote of No Confidence」(リンク)で読むことができる。そして、この文書のそれぞれの懸念事項への詳細な回答は、Tim Mallaieu's blog(リンク)で読むことができる。
原文はこちらです:http://www.infoq.com/news/2008/06/entity-framework-heat