Unit of Work Edmonton Code Camp Oct 2007 Presenter: Neil Bourgeois.

Slides:



Advertisements
Similar presentations
Supporting Persistent Objects In Python Jeremy Hylton
Advertisements

NHibernate Object/Relational Persistence for.NET.
.NET Database Technologies: Open-Source Frameworks.
DEVELOPING APPLICATIONS WITH LINQ 2 SQL Sidar Ok
Ross Beehler Lead Software Developer Press Ganey Associates, Inc.
©1998, 1999, 2000 Rational Software - All rights reserved Session VM08 Structuring Your Rational Rose Model Robert Bretall Rational Software.
Lecture 23: Software Architectures
Architecture External Web Services Supported Services Repository LMS Services Domain Model Process Container Process Instance Course Sequencing Presentation.
DATABASES AND TRANSACTION PROCESSING: An Application-Oriented Approach Lewis Bernstein Kifer © 2002 Addison Wesley.
P247. Figure 9-1 p248 Figure 9-2 p251 p251 Figure 9-3 p253.
The course builder architecture & project planning presented by: Bahareh Agha Jafari.
JDBC Session 5 Tonight: Data Access Patterns 1.J2EE Architecture & Design Patterns 2.The Data Access Tier 3.Data Access Patterns –DataAccessObject (DAO)
Entity Framework Code First End to End
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
Requirement Analysis Functional & Non-Functional Requirements Scenarios Use cases: – View Fixtures – Manage Tournament – Register Team – Report Discrepancy.
Domain-Driven Design using the ADO.NET Entity Framework Tim McCarthy Principal Engineer, InterKnowlogy
1 J2EE Components. 2 Application Servers relieve the programming burden for business distributed components. They provide support for system level services.
What is Architecture  Architecture is a subjective thing, a shared understanding of a system’s design by the expert developers on a project  In the.
Data Warehousing Seminar Chapter 5. Data Warehouse Design Methodology Data Warehousing Lab. HyeYoung Cho.
Domain Driven Design. Set of blog posts spanning 10 months – building an app Fefactored along the way code to Patterns eg repository.
Design Patterns Phil Smith 28 th November Design Patterns There are many ways to produce content via Servlets and JSPs Understanding the good, the.
CHAPTER 14 USING RELATIONAL DATABASES TO PROVIDE OBJECT PERSISTENCE (ONLINE) © 2013 Pearson Education, Inc. Publishing as Prentice Hall 1 Modern Database.
What You Need before You Deploy Master Data Management Presented by Malcolm Chisholm Ph.D. Telephone – Fax
Ashwin Sarin Program Manager Microsoft Corporation SESSION CODE: COS204.
Architecture styles Pipes and filters Object-oriented design Implicit invocation Layering Repositories.
Design Patterns Part two. Structural Patterns Concerned with how classes and objects are composed to form larger structures Concerned with how classes.
.NET Database Technologies: Data Models and Patterns.
KRAD Data Layer A Data Access and Persistence Architecture for KRAD Eric Westfall February 2013.
ETLity Speed up your ETL development! → faster time to market → guaranteed quality → fix price development.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
Chapter 13 Logical Architecture and UML Package Diagrams 1CS6359 Fall 2012 John Cole.
Object-to-Relational Mapping: The Crossing Chasms Pattern and Implementation Considerations Use of Meta Data in the Java Persistence Layer Presented by.
Hibernate Persistence. What is Persistence Persist data to database or other storage.  In OO world, persistence means persist object to external storage.
T Sponsors Johan Hedberg Integration MVP 10x latency improvement – how to squeeze performance out of your BizTalk solution BizTalk Summit 2015 – London.
1 Mapping to Relational Databases Presented by Ramona Su.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
Applying Domain-Driven Design Jimmy Nilsson Webcast with UML China
Database Web.xml load: spring applicationContext and frontcontroller – servlet mappings: *.jsp -> dispatchServlet ApplicationController formController.
Chandrika Shankarnarayan Senior Program Manager Microsoft Corporation SESSION CODE: ASI301.
Paul Litwin Programmer Manager Fred Hutchinson Cancer Research Center SESSION CODE: WEB206.
JPA / HIBERNATE CSCI 6370 Nilayan Bhattacharya Sanket Sable.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
Examples of Software Architecture. 2 CASE Toolset Architecture.
Data Source Patterns.  Table Data Gateway  Row Data Gateway  Active Record  Data Mapper  Unit of Work  Identity Map.
Java EE Patterns Dan Bugariu.  What is Java EE ?  What is a Pattern ?
March R McFadyen1 Object Relational Mapping example TopLink Part of Oracle environment Provides an Object/Relational Mapping Layer References:
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Data Access with Spring.
The Business of IT ® Austin Code Camp ‘08 Prescriptive Data Access Development in.NET 3.5 Austin, TX May 17, 2008 Brian Orrell.
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.
DOMAIN DRIVEN DESIGN Dave 12 May WHAT IS DDD? Set of principles to aid in building complex systems Enables us to focus on core problem domain NOT.
Aspect, Rich and Anemic Domain models in Enterprise Information Systems Karel Cemus 1, Tomas Cerny 1, Lubos Matl 1, Michael J. Donahoo 2 1 Czech Technical.
Beyond Basic Unit Testing: Mocks, Stubs, User Interfaces, and Refactoring for Testability Benjamin Day
Object Relational Mapping example
Architecture Patterns and Refactoring
Java Servlets By: Tejashri Udavant..
Sarang Nazari California State University, Los Angeles
Entity Framework By: Casey Griffin.
Hire Toyota Innova in Delhi for Outstation Tour
Accessing Data in a .NET Web Application
Enterprise Architecture Patterns
פחת ורווח הון סוגיות מיוחדות תהילה ששון עו"ד (רו"ח) ספטמבר 2015
Chapter 5 Architectural Design.
Agenda – week 6 6:00 – 6:10 Questions, announcements, intro
We provide an affordable option that is both safe and clean:
Theorems about LINEAR MAPPINGS.
Workshop on Connecting Concepts Across the Curriculum
Developing PiMS 1.0 Bill Lin.
Developing and testing enterprise Java applications
Unity, Coherence, and Completeness
Presentation transcript:

Unit of Work Edmonton Code Camp Oct 2007 Presenter: Neil Bourgeois

Layered Architecture Presentation Domain Data Access Service

Transaction Script Anemic Domain Service Layer gets cluttered with business logic and Data Access Layer CRUD Difficult to keep Domain persistence ignorant Difficult to make transactional

Unit of Work Tracks everything done during a business transaction Figures out which CRUD actions need to be applied to persist changes Completes changes in a database transaction

Implications New objects need to be registered with UoW Objects loaded from database need to be registered with UoW Need to know when objects change Service Layer never calls Data Access layer directly

Repositories Abstraction of the database New and Existing objects are created through a repository Repository registers New and Existing objects with UoW Domain objects can use repositories to find other domain objects

Object State Per object change observer Possible States: New Clean Dirty Remove Persisting

Identity Map Keeps track of domain objects loaded through repositories Keeps track of object state

Workspace Transaction Per Session (HttpRequest) Thread Safe Contains Identity Map Manages persistence

Lets Code!