The Persistence Ignorant Domain Model James Kovacs

Slides:



Advertisements
Similar presentations
Introduction to NHibernate By Andrew Smith. The Basics Object Relation Mapper Maps POCOs to database tables Based on Java Hibernate. V stable Generates.
Advertisements

Programming with ADO.NET By Sam Nasr April 27, 2004 Programming with ADO.NET By Sam Nasr April 27, 2004.
Agile Development with IoC and ORM James Kovacs JamesKovacs.com |
.NET Database Technologies: Open-Source Frameworks.
Jeff Derstadt Senior Development Lead Microsoft Corporation Patterns & Architecture.
Domain-Driven Design Fundamentals Automated Testing for Fraidy Cats Like Me Getting Started with Entity Framework 5 Entity Framework in the Enterprise.
Confidential - Property of infiNET Solutions. Architecting and Designing Scalable, Multitier Systems in J2EE infiNET Solutions David R. King – Chief Technology.
MIS 451 Building Business Intelligence Systems Logical Design (3) – Design Multiple-fact Dimensional Model.
ECSE Software Engineering 1I HO 7 © HY 2012 Lecture 7 Publish/Subscribe.
Emmanuel Cecchet et al.  Performance Scalability of J2EE application servers.  Test effect of: ◦ Application Implementation Methods ◦ Container Design.
The Spring Framework: A brief introduction to Inversion of Control James Brundege
Using Third-Party Frameworks in Building Blocks™ David Ashman Principal Architect, Product Development.
Data Persistence and Object-Relational Mapping Slides by James Brucker, used with his permission 1.
UNIT-V The MVC architecture and Struts Framework.
Data Access Patterns. Motivation Most software systems require persistent data (i.e. data that persists between program executions). In general, distributing.
Neo.NET Entity Objects Design Goals Copyright © Erik Dörnenburg – Last updated: May 2004.
.NET Database Technologies: Entity Framework additional notes – part 2.
Domain-Driven Design using the ADO.NET Entity Framework Tim McCarthy Principal Engineer, InterKnowlogy
J2EE Part 2: Enterprise JavaBeans CSCI 4300 Images and code samples from jGuru EJB tutorial,
DATABASE. A database is collection of information that is organized so that it can easily be accessed, managed and updated. It is also the collection.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
NHibernate in Action Web Seminar at UMLChina By Pierre Henri Kuaté 2008/08/27
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
Persistence Store Project Proposal.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Domain Driven Design Ryan Riley Catapult Systems, Inc.
12-CRS-0106 REVISED 8 FEB 2013 CSG2H3 Object Oriented Programming.
.NET Database Technologies: Data Models and Patterns.
Behavioral Pattern: Observer C h a p t e r 5 – P a g e 186 A large monolithic design does not scale well as additional graphical and monitoring requirements.
Ewout Kramer, Furore CIM-based CRUD storage. Architectural context CDR Service v3v2 ? MEPD KN ICIP v3-R v2 AORTA v3.
Andrew S. Budarevsky Adaptive Application Data Management Overview.
Hibernate Persistence. What is Persistence Persist data to database or other storage.  In OO world, persistence means persist object to external storage.
Intoduction to NHibernate. Agenda Overview of NHibernate Models and Mappings Configuration Sessions and Transactions Queries.
Hibernate 3.0. What is Hibernate Hibernate is a free, open source Java package that makes it easy to work with relational databases. Hibernate makes it.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
Applying Domain-Driven Design Jimmy Nilsson Webcast with UML China
Refactoring for Testability (or how I learned to stop worrying and love failing tests) Presented by Aaron Evans.
Final Project By: Robert Tseng. Overview Portfolio Website Meant to share information about myself to anyone, from future employers to family. Features.
JPA / HIBERNATE CSCI 6370 Nilayan Bhattacharya Sanket Sable.
Netprog: Corba Object Services1 CORBA 2.0 Object Services Ref: The Essential Distributed Objects Survival Guide: Orfali, Harky & Edwards.
Presentation & Business Tier Design Patterns Pearce.
Intoduction to NHibernate. Agenda Overview of NHibernate Models and Mappings Configuration Sessions and Transactions Queries.
DATABASE CONNECTIVITY TO MYSQL. Introduction =>A real life application needs to manipulate data stored in a Database. =>A database is a collection of.
Issues of concern  Lack of a formalized data pipeline approach to feed computational platforms  Resulting in data sets consisting.
Wrapper-Based Evolution of Legacy Information System Philippe Thiran et al Fcculties University Notre-Dame de la Paix.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
Domain Driven Design Using.NET Dave Rael. What’s wrong with this code? Public void CallMethodThatMightThrowScaryException(int carelessInputWithoutValidation)
Domain-Driven Design for the Database-Driven Mind
EF + DDD = true? by Jimmy Nilsson. About Jimmy Nilsson Primarily a developer and architect, but also a trainer and author Blog: JimmyNilsson.com/blog/
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
Topic : Hibernate 1 Kaster Nurmukan. An ORM tool Used in data layer of applications Implements JPA.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
Simplifying the Code First Approach in the Entity Framework Dhananjay Kumar Infragistics Consultant Microsoft MVP
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Architecture Overview Server Database (can be on the server or separate ) Client1 Client2 Client3 HTTP  View ppt notes pages for discussion!
Sean Chambers.  ORM stands for Object Relational Mapper  Maps your POCO (plain old clr objects) to your relational model using XML config  Relieves.
#SPSSAN June 30, 2012 San Diego Convention Center WRITING TESTABLE CODE In SharePoint.
September 28, 2010COMS W41561 COMS W4156: Advanced Software Engineering Prof. Gail Kaiser
Unit of Work Edmonton Code Camp Oct 2007 Presenter: Neil Bourgeois.
Agenda 0 Today 0 Assignment 2 Due 0 Sequence Diagrams- View & Data Layers 0 Message syntax 0 Cohesion & Coupling 0 Next Week 0 Review and wrap-up 0 Structure.
Model In MVC Mo Rezai.
ASP.NET MVC Introduction
Entity Framework By: Casey Griffin.
Web Application Architectures
Software Design Lecture : 8
Web Application Architectures
Web Application Architectures
Extending Interface Based Design
Presentation transcript:

The Persistence Ignorant Domain Model James Kovacs

POCO – Plain Old CLR Object No persistence-related code Only business logic public class Customer { public string Name { get; } public Location Address { get; } public IList Orders { get; } public void AddOrder(Order o) {} } What is Persistence Ignorance?

Separation of concerns Single responsibility Loose coupling Testability Re-use Why is Persistence Ignorance Important?

NHibernate and PI No special persistence-related base class No marker or callback interfaces No persistence-related attributes NHibernate domain class: public class Customer { public string Name { get; } public Location Address { get; } public IList Orders { get; } public void AddOrder(Order o) {} }

NHibernate API ConfigurationClass for bootstrapping NHibernate ISessionFactoryFactory for creating sessions ISessionRoughly analogous to a database connection ITransactionAbstracts underlying transaction semantics IQueryString-based query API ICriteriaObject-based query API

Resources NHibernate ( NHibernate in Action by Pierre Henri Kuaté, et al. NHibernate Plugin ( Castle Active Record ( Active Writer ( Domain-Driven Design by Eric Evans Applying Domain-Driven Design and Patterns by Jimmy Nilsson

Questions James Kovacs