Opened: Goal to learn about EF, Jose Basilio (convener)
Q: What technologies are being used?
A: NHibernate
Terry Tsay: Stored procedures supported, but EF is not easily applied to run basic statements (select from). Jeremy Hardin: EF will allow tie in of actual objects, then object can be reviewed, etc. Use EF SQL syntax to do same thing. Learning of new ‘language’ required (like this) to use EF. Gave overview of Linq-to-SQL. Chad Meyers: Not an ORM, but a powerful code gen tool. Can build an ORM on top of it.
Q: What are the pains associated with using EF?
A: (Ben S) If select on single person with manager property (example), EF does not provide transparent lazy loading like NHibernate.
(Chad) No persistence ignorance in EF like in a ‘real’ ORM. No real POCO support, only iPoco interface that does not really facilitate POCO interaction.
EF was written to protect the database, not really encourage development against a DB. (Chad) It is very painful to use for devs, but looks to encourage DB tyranny by DBAs.
EF Vote of No Confidence Overview of issues and creation ofgroup. Developers did not take into account of how to incorporate true ORM features cited above.
NHibernate does reflection of object state, EF does not (iNotify).
Entity Data Model (EDM) given overview.
Reporting really should be structured separately and differ from that of a transactional log. Consumption is really different.
Model Driven Architecture vs. Domain Driven Design (MDA/DDD): MDA has been the Holy Grail and has been chased to be the overarching model to rule everything. (Not realistic, does not reflect business models being served by MDA). DDD: optimization of each distinct function/section and use service based methodology to link them. (i.e Reporting needs/concerns = a domain)
Within context of EF, it appears that MDA is the basis for model, and model is normally the actual schema within the DB for the EF/MDA.
Development approach: the way an object is created and used in code is not necessarily the same model used within the context of a database. Database –driven design is not really sufficient to solve how developers should use and make changes to actual database items (i.e records, etc)
See this picture. Now look at this one. These were diagrams drawn during the discussion.
DBAs should not have absolute control of the overall object model. (Amen.)
While NHibernate is fully ORM and a better overall solution to encompassing database entity manipulation, there is a larger learning curve/adoption capability by a group.
NHibernate covered in LGPL: The LGPL open source license allows the use of Hibernate and NHibernate in open source and commercial projects.
Ibatis is a good alternative to Linq to SQL (although a comparison warranted) to do sql object mapping. Ibatis is covered under the apache.org license.
(Jeffrey Palermo) EF does not truly support a decoupled framework (see diagram picture). Cannot really be fully abstracted because EF does enforce absolute pinning to DB design.
Cost of Ownership worth investigation. EF does appear to increase COO, not decrease when projects scale.
Comments (0)
You don't have permission to comment on this page.