Applying Domain-Driven Design Jimmy Nilsson www.jnsk.se/weblog/ Webcast with UML China 2006-08-30.

Slides:



Advertisements
Similar presentations
“Creating e-Freight solutions for efficient and sustainable multimodal transport” Takis Katsoulakos INLECOM eFreight12 Delft -19th April 2012.
Advertisements

NHibernate Object/Relational Persistence for.NET.

.NET Database Technologies: Open-Source Frameworks.
Domain-Driven Design Fundamentals Automated Testing for Fraidy Cats Like Me Getting Started with Entity Framework 5 Entity Framework in the Enterprise.
Craig Berntson
Domain Modelling Paul Stovell. Architecture: Implicit or Explicit? Architecture exists implicitly But if you don’t define it, it probably sucks.
Ganesh Subramanian 22/12/2010
Semantic Rich Internet Application (RIA) Modeling, Deployment and Integration Zoran Balkić, Marina Pešut, Franjo Jović Faculty of Electrical Engineering,
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Course Instructor: Aisha Azeem
? Data-Driven apps and LightSwitch TechEd sessions Domain-Driven Design,.NET and Loosely-coupled approaches TechEd sessions Windows Apps Modernization.
Data Persistence and Object-Relational Mapping Slides by James Brucker, used with his permission 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Managing Data Interoperability with FME Tony Kent Applications Engineer IMGS.
Architecture of Enterprise Systems: Domain Model and Database layer
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Department of Computer Science and Software Engineering Concordia University E NTERPRISE A PPLICATION D ESIGN P ATTERNS : I MPROVED AND A PPLIED Stuart.
10 Ways to Get Your Project Started Right Benjamin Day.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Introduction to “Oslo” Jeremy Boyd Director – Mindscape MSDN Regional Director

Experiences from years of agile coaching by Jimmy Nilsson.
Domain-Driven Design using the ADO.NET Entity Framework Tim McCarthy Principal Engineer, InterKnowlogy
The Persistence Ignorant Domain Model James Kovacs
Domain Driven Design. Set of blog posts spanning 10 months – building an app Fefactored along the way code to Patterns eg repository.
Chris Hance. Why “Re-”evolving?  NIH Epidemic  My name is Chris, and I’m a… VB6 Coder  YAGNI.
Eric Westfall – Indiana University Jeremy Hanson – Iowa State University Building Applications with the KNS.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
NHibernate in Action Web Seminar at UMLChina By Pierre Henri Kuaté 2008/08/27
Domain-Driven Design Tim McCarthy Principal Engineer, InterKnowlogy
Building an Offline Smart Client using Domain-Driven Design Principles Tim McCarthy.
Domain Driven Design Ryan Riley Catapult Systems, Inc.
CS 493 Project Definition The project assignment is a simplified version of the Integrating Healthcare Enterprise (IHE) Cross-Enterprise Document Sharing.
Entity Framework Overview. Entity Framework A set of technologies in ADO.NET that support the development of data-oriented software applications A component.
.NET Database Technologies: Data Models and Patterns.
Example of OOR Architecture Open Ontology Repository Architecture – Some Considerations March, 2008 Dr. Ravi Sharma Senior Enterprise Architect Technology.
Deep Dive into the ADO.NET Entity Framework. Agenda Entity Data Model Advanced Mapping Advanced querying Entity SQL Object Services ADO.NET Metadata.
Hibernate Persistence. What is Persistence Persist data to database or other storage.  In OO world, persistence means persist object to external storage.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Domain and Persistence Patterns. Fundamental Pattern Types Design Patterns Business Logic Patterns.
1 © 1999 Microsoft Corp.. Microsoft Repository Phil Bernstein Microsoft Corp.
Oct * Brad Tutterow. VS 2008.NET 3.5LINQ Entity Framework  The ADO.NET Entity Framework is part of Microsoft’s next generation of.NET technologies.
Fall CIS 764 Database Systems Engineering L18.2 : Object Relational Mapping … ….Object persistence.
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/
Sean Chambers.  ORM stands for Object Relational Mapper  Maps your POCO (plain old clr objects) to your relational model using XML config  Relieves.
Aggregate In DDD. What makes an ENTITY AGGREGATE root Has global identity. Expected to be directly accessed in typical business scenarios. If it has other.
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.
Introduction to ORM Hibernate Hibernate vs JDBC. May 12, 2011 INTRODUCTION TO ORM ORM is a programming technique for converting data between relational.
 Who I am  What is NHibernate? ◦ Object Relational Mapper ◦ A framework for building advanced frameworks ◦ Ported from Java ◦ A wide NHibernate ecosystem.
Hibernate Online Training. Introduction to Hibernate Hibernate is a high-performance Object-Relational persistence and query service which takes care.
Unit of Work Edmonton Code Camp Oct 2007 Presenter: Neil Bourgeois.
Fall CIS 764 Database Systems Engineering L11: Object Relational Mapping … (a) ORM, Object persistence (b) Pets sequence.
Independent Guidance for SOAINT Services Architecture Series: Business Service Architecture Module 3: Identifying Core Business.
Domain Driven Design basic concepts and best practises
Datamining : Refers to extracting or mining knowledge from large amounts of data Applications : Market Analysis Fraud Detection Customer Retention Production.
ADO.NET Entity Framework
SOEN 343 Software Design Computer Science and Software Engineering Department Concordia University Fall 2005 Instructor: Patrice Chalin.
Accessing Data in a .NET Web Application
Enterprise Architecture Patterns
Constructing MDA-based Application Using Rational XDE for .NET
TechEd /17/2019 6:32 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Developing and testing enterprise Java applications
Data Access in Your Code Thinking Outside the Framework
Software Design Lecture 5.
Entity Framework & LINQ (Language Integrated Query)
Presentation transcript:

Applying Domain-Driven Design Jimmy Nilsson Webcast with UML China

About Jimmy Nilsson Primarily a developer, but also a trainer and author Blogs at Author of Applying Domain-Driven Design and Patterns and.NET Enterprise Design

Main Focus of DDD? The core is the main focus! Forget distractions!

?

Why DDD? Knowledge- rich design Mapping to domain Reduced complexity TestabilityMaintainability Etc, etc...

Problem Description A complex, large scale and long lived order application will be built Some very simple examples of requirements: Order has a customer, customer has orders Order has one or more lines Order has a value Customer has address...

Transaction Script [PoEAA]

Table Module [PoEAA]

Domain Model [PoEAA]

Because of the problem description, we choose Domain Model Now we need a Domain Model style...

Entities [DDD]

Value Objects [DDD]

Aggregates [DDD]

Repositories [DDD]

Factories [DDD]

What problems remain? Infrastructure... Assumption 1: Relational database How? Assumption 2: O/R Mapping Which? Assumption 3: For eg NHibernate

NHibernate Domain Model style: POCO / Persistent Ignorant (PI) Mapper style: Framework Start with: Domain Model, Tables, Metadata API-Focus: Domain Model Query language: String-based, Query Object-based Open source, production version Many databases are supported Port of Hibernate Focus: ”Only” O/R Mapping

Data Mapper [PoEAA] For example Customer.hbm.xml

CRUD – C _session.Reconnect(); try { _session.SaveOrUpdate(customer); _session.Flush(); } finally { _session.Disconnect(); }

CRUD – R (Customer)_session.Load(typeof(Customer), id);

Summary... ?

Any Questions? ? Thanks for listening!

References [DDD] Eric Evans; Domain-Driven Design [PoEAA] Martin Fowler; Patterns of Enterprise Application Architecture [NHibernate] nhibernate.sourceforge.net [ADDDP] Jimmy Nilsson; Applying Domain- Driven Design and Patterns