Tuesday, October 14, 2008

.NET Rocks #380 Franz Bouma on ORM!

Frans Bouma started programming in 1986 on a Toshiba MSX-1, at the age of 16. After graduating with a bachelor degree in Computer Science from the 'Hogeschool Enschede' in the Netherlands in 1994, he started working with 4GL systems and post-relational databases, like uniVerse. In 1996 he founded Solutions Design, a company for database driven web-application development. As the lead developer, he developed medium to large enterprise web applications using SqlServer, AS400, COM+, VC++, Visual Basic and Asp. In 2001 Solution Design produced a content management system completely based on Microsoft technologies like SqlServer 2000, COM+, VC++, VB6 and asp. In 2002 Frans developed in C# his first .NET application, the open source LLBLGen code generator for SqlServer stored procedures and .NET classes. Due to the worldwide success of LLBLGen, Frans designed and developed in 2003 for Solutions Design the O/R mapper and code generator LLBLGen Pro, which is currently one of the market-leading data-access solutions for .NET, C# and VB.NET. Frans received for his community efforts the MVP reward for C# in 2004, 2005, 2006 and 2007 and works full time on LLBLGen Pro enhancements. In 2006, HnD, a full featured support system/forum system for ASP.NET 2.0 was released as open source (GPL), written and designed by Frans Bouma.

LLBLGen Pro

  • Kathleen Dollard is a fan
  • Long time on the market
  • Customers with Databases with over 2000 tables

Linq2SQL

  • Started well
  • In the back seat now
  • Enabled a lot of interest in ORM and Data Access in general
  • People like it for:
    • Working with objects
    • Using a system to persist data to the database
  • A lot of people start with it, but ultimately don’t like it because it’s a great start but after a while you see the limitations:
    • Their editor, their designer cannot do model refreshment: this is very important when the DB schema has changed.
    • Only for SQL Server
    • In the runtime framework, it doesn’t have a real good “eager loading,” is inefficient in returning data in 1 to many to many relationships
    • Only okay for small applications
    • It is a stepping stone.  To what?  Link2Entities? 

Linq2Entities = Entity Framework?

  • You cannot define everything you can do in the XML from within the designer
    • E.g. multiple mappings for an entity
    • People using the designer only will not be aware they can do this
    • You have to work visually, so you cannot type textually the entity you want to define; it’s really fragmented and cumbersome to use.
  • Not a challenge to LLBLGen Pro
  • Data Access Solutions – the landscape has changed a lot; but possibly not enough to make Microsoft a significant force in the ORM world.
  • Trying to read a database with 1000 tables took over 12 hours to perform!
  • Designer isn’t up to par
  • Trying to be one fit for all
  • Released too soon
  • Will version 2 resolve these problems?  And will this break backwards compatibility with version 1?
    • Microsoft usually are good at not breaking backwards compatibility
    • I don’t foresee version 2 being a problem
  • It missed the Visual Studio 2008 cut-off.  Therefore, is it doomed?
  • MS has to hope that people will install Service Pack 2.

Linq2XML

  • much better than XQUERY & XML Path
  • XML literals in VB is fantastic

Most programmers are already using ADO.NET and have to think hard, why do I need/want to change?

  • The change is bigger to go to an ORM than to upgrade from VS2005 to VS2008
  • ADO.NET data services

ORM is bigger than one product; it’s the next big productivity tool.

  • Nhibernate
  • LLBLGEN
  • Entity Framework 

Microsoft (Danny Simmons) said “Entity Framework is not an ORM”.  The Entity-Data Model is the product; you can add ORMS on top of this.

  • But this doesn’t make sense because EDM is just meta-data.  Every ORM has meta-data.
  • Thinks Steve Forte meant Microsoft needed some kind of a common model (schema) across multiple products.

There’s a part to play by the SQL Server team

  • There are problems in entities that SQL Server has too, like replication
  • What is an entity?
  • You have to have the same definition at both ends (designer and runtime)
  • The data model = the meta data format
  • The entity model = a layer above and abstraction level 

What does Franz want to see?

  • He sees their runtime frameworks directly compete
  • He doesn’t see their designers competing, because his will work on other frameworks 

The Alt.Net vote of “no confidence” against the Entity Framework

  • a petition
  • most of them are consultants
  • when they are forced to work with the Entity Framework, they are forced with limitations
  • they want the Entity Framework to work the way they do
    • lazy loading
    • true poke
  • strong language didn’t get many signatures
  • there are project leaders who want to use Entity Framework for whatever reason 

Large consultancy firms are in trouble because they want to standardise, but the Microsoft Entity Framework limitations won’t allow them to.

  • the framework won’t do everything you might want to do
  • therefore don’t use it

Are they far apart?

  • a data access layer
  • a runtime

The latest version of LLBLGEN Pro

  • Version 2.6
  • LINQ provider = 8 months work
  • Couple of maintenance fixes and updates
  • It mainly brings flexibility;
    • Native API was optimized for compiling, but resulted in convoluted code
    • More extensibility points 

No comments:

Post a Comment