InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Is ADO.NET Entity Framework Enterprise Ready?

Posted by Jonathan Allen on May 22, 2008

Sections
Development
Topics
.NET ,
Artifacts & Tools
Tags
Domain Driven Design

The ADO.NET Entity Framework relies heavily on visual modeling tools. But are these tools really appropriate for large scale development?

In a piece titled Visual Designers Don’t Scale, Scott Allen talks about the problems of Visual Scalability. Essentially this problem comes down to the sheer size of the diagrams. When you have to deal with hundreds or thousands of tables,

They are difficult to navigate, and impossible to search. The layout algorithms don't function well on these large datasets, and number of mouse clicks required to make simple changes is astronomical. The best you can do is jump into the gnarly XML that hides behind the visual representation.

He goes on to predict a change back to textual representations of data models.

Ayende Rahien also sees problems with source control. In reviewing the source control support for the visual designer he discovered that even minor changes in the position of a single screen element could cause merge conflicts. Now imagine the mess if someone were to mistakenly hit the auto-layout button and all the table/entities were moved.

Depends... by Francois Ward Posted
Ruurd Boeke provides support for Plain Old C# Objects by Gael Fraiteur Posted
  1. Back to top

    Depends...

    by Francois Ward

    Visual representatons of data models work fine when either:



    A) they can be split in many sub representations:

    or

    B) they're disposed in a treeview type fashion.





    A is like Sql Server database diagrams, B is like LLBLGEN Pro or the CTP of the XSD designer of VS2008.



    It works fine, it just has to be engineered properly. That said, while most enterprise apps you hear about have thousand of tables, bazillion lines of code, etc (I've worked on many), most enterprise apps are much, MUCH smaller, including advanced ERP systems used by Fortune 20 companies. For that, EF would work just fine.



    Besides, I don't see why people see the Ado.net EF as different from everything else built in the .NET Framework. Its all entry level stuff that fits most requirements, but not the top ones.




    Need caching? ASP.NET's caching is there. Need extreme caching? Get NCache.



    Need to make an ASP.NET app? Use the boxed controls. Need something with fancy features? Infragistic, Telerik, ComponentArt, whatever...



    Need an ORM, use Linq to SQL. Need more? Entity Framework. Need a specialized solution that will scale like nuts, use LLBLGEN Pro, some other tool, CodeSmith, build your own, whatever.



    The thing is, different "enterprise apps" will be ok with different parts of the entry level framework, so just choose and pick. For here, the EF will do just fine. Last job I had? No way! Amusingly enough, my current company is the larger one...

  2. Back to top

    Ruurd Boeke provides support for Plain Old C# Objects

    by Gael Fraiteur

    It's worth noting that Ruurd Boeke contributed a solution that turns Plain Old C# Objects (POCO) into EF-aware objects.
    The project is called PostSharp4EF and is free and open source. It relies on PostSharp for post-compilation assembly transformation (the way many other ORM do).

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.