Monday, November 15, 2010

Entity frame work vs. Enterprise Library

 

                           In .NET Framework 4.0 having huge improvements in entity-framework. I have specified some of them  below .

Sl.No

Entity Framework 4.0

Enterprise Library 5.0

1.

compiled cached queries :It is simply a query for which you tell the framework to keep the parsed tree in memory so it doesn't need to be regenerated the next time you run it. So the next run, you will save the time it takes to parse the tree.

Explanation :The first time you run this query, the framework will generate the expression tree and keep it in memory. So the next time it gets executed, you will save on that costly step.

NO Support .Use Store Producers instead of hoc queries to improve the performance .

2.

Model-First: Create your Entity Data Model and from that model generate DDL to create the database.

Model –Last :Create your database first and Implement your Entities .

3.

Developing vise verse possible (Entity to Tables ) and (Tables to Entity)

No Support

4.

MVC with the Entity Data Source Control and the Entity Framework to quickly create data driven web.

Need to implement Business Entities manually (takes more time ).

5.

LINQ Support

LINQ Support

6.

Multiple related tables to a single entity and reduce code complexity.

No Support

7.

Simplify Application Maintenance:By using entities in place of traditional data access code, changes to the underlying database schema do not always require changes to the application code.

Extend your applications to use more powerful editions of SQL Server or replace the database that

 
8.

Automatically creates Complex types -Functions where as Enterprise library we have to create custom type

Need to implement manually

9.

No need to write any code for Business entities

DAL framework, its very hard to come back and change later,no matter your architecture, because you'll have to redo a lot of code, be it well isolated or not

10.

Returns Strong types

Returns Dataset/Data table which make heavy (needs to covert to strong types )

11.

Re commanded development strategy Either simply need to be put away in a dedicated layer so that swapping them out and replacing them becomes way easier and makes your application more maintainable. This is simply applying good architectural designs.

 
12.

Little bit slower when compare to Enterprise Library (store procedure mapping by default hock queries )(we can tune to improve the performance [Support only 4.0)

 
13.

Custom Code-Gen Leverage T4, Text Template Transformation Toolkit, an easy, flexible and powerful Code Generation tool that is fully integrated into the Visual Studio experience to customize the generation of POCO or Entity Classes.

Required Third party tools to generate business entities

14.

Easily maintainable and changeable

Takes more time for changes

15.

Model Driven Development Separate the logical storage model of data from the way you model data within the application. The Entity Framework provides a mapping between the application data model and the relational database model .

No support for MDD

16.

Advantages:Support POCO templates (plain old CLR objects)

 

you can get more information on Entity Frame work  in following links  :

http://msdn.microsoft.com/en-us/magazine/cc188702.aspx

http://msdn.microsoft.com/te-in/magazine/cc163766%28en-us%29.aspx

http://channel9.msdn.com/Blogs/wriju/Using-Stored-Procedure-in-ADONET-Entity-Framework-40

http://msdn.microsoft.com/en-us/data/ff191186.aspx

http://msdn.microsoft.com/en-us/data/ef.aspx

http://channel9.msdn.com/Blogs/matthijs/C-40-and-beyond-by-Anders-Hejlsberg

http://msdn.microsoft.com/en-us/library/bb896279.aspx

http://jalpesh.blogspot.com/2010/08/entity-framework-40-bind-stored.html

Recommenced Entity frame work Books:

1.Entity Framework 4.0 Recipes: A Problem-Solution Approach- By Larry Tenny, Zeeshan Hirani

2.Pro Entity Framework 4.0- By Jim Wightman, Scott Klein

5 comments:

Unknown said...

According to this table it seems like at the moment Microsoft Enterprise Library Data App Block shouldn't be used at all. Are there still any advantages of using it?

Srinivas said...

Really you can create performance applications with both but you can also screw up royally with both. Measuring your results is the only way to know for sure in your situation.
Based on your requirement,Dead lines,Maintenance.Choose appropriate technology.Let me know if you need more clarification on it .

Anand said...

hi, as of now i am using plain ado.net
now would like to upgrade , what is your suggestion, EF or Ent.Lib any pointers

Anonymous said...

Странное сравнение двух совершенно разных идеалогий. Аналогично сравнивать автобус с грузовиком.

Anonymous said...

A lot of the negatives for Enterprise Library seem to be very opinionated. Ex1: "#9 DAL framework, its very hard to come back and change later,no matter your architecture, because you'll have to redo a lot of code, be it well isolated or not". In out DAL we can do this in one line of code. Ex2: "#13 Required Third party tools to generate business entities" you can implement this the same way Entity Framework does it using T4 text Templates. Ex3: "#14 Takes more time for changes" just a plain old opinion.