NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

de:code 「進化は止まらない! ADO.NET Entity Framework の今」に参加しました。

実はこのセッション、当初期待していたものとは違う内容でした。タイトルを見た時、勝手に次期バージョンである Entity Framework (以降EF) 7 について話してくれるものだと信じていました。実際には、タイトルにあるとおり「今」なので、EF6 に関するものでした。が、現状をきちんと理解するという意味でもすごくよいセッションでした。セッションを担当されていた井上 大輔氏は、今は懐かしい最後の Tech・Ed Yokohama の最後のセッションが、EF だったそうです。その時から成長した EF をきちんと説明する場がなかったため、振り返りから入りました。
Entity Framework とは
Entity Framework とは、プログラムとデータベースとの間のインピーダンス ミスマッチを解消するために作られたライブラリです。当初は、データベースへのアクセスを容易にするための O/R マッパーとして開発されました。その後、Model Frist、Code First の概念が導入され、モデルやコードからデータベースに反映することが可能になりました。また、Convention over Configuration (CoC: 規約は設定に勝る) の考え方も導入され、バージョンが上がるごとに処理が高速化されました。EF4 から EF5 では、LINQ to Entities が 600% も高速化したそうです。

Entity Framework の進化
EF は、バージョンが上がるごとに軽量化、高速化が進められてきました。上では、600% の高速化を説明しましたが、EF6 では、型付きデータセットよりも高速になっており、また非同期実行のサポートにより、連続して処理を実行することができるようになり、設計にもよりますが、さらなる高速化が見込めるようになっています。また、セッションの中で印象的だったのがマルチ DB のサポートでした。もともと SQL Server 向けに作っていたアプリをたった 3 ステップで(実際には 4 ステップでしたが)、MySQL に切り替えるデモをしていました。3(4)ステップは以下の通り。

  1. nuget から MySQL ライブラリをダウンロード(Oracle社が提供)
  2. 接続文字列を MySQL のものに変更
  3. DataContext の [DbConfigurationType] 属性で、MySQL を設定
  4. コード中の接続文字列を変更


まとめ
当初の期待とは違っていましたが、EF の歴史、現状を知るのによい機会でした。初期のバージョンで使ってみて、重くて使いたくないと思っていたのですが、いつの間にか軽量化されているのにも関わらず、高速化されていて、もう一度使ってみてもいいかなと思いました。
Entity Framework の最新情報は、http://www.entityframeworktutorial.net/ をご参照ください。