architetttura della soluzione

11
Luca Milan http://fewbit.com [email protected]

Upload: luca-milan

Post on 20-Jun-2015

870 views

Category:

Technology


2 download

TRANSCRIPT

Page 2: Architetttura Della Soluzione

Un’applicativo web basato su un “Domain Model” la cui persistenza viene gestita da una “Unit of Work” che utilizza il pattern “Data Mapper” per la propria attività.

Il presentation layer poggia sul framework ASP.NET MVC.

Page 3: Architetttura Della Soluzione

Le classi che potete vedere qui sopra rappresentano il nostro object model. Possiamo facilmente distinguere entities e value objects,.

Ecco la nostra Specialità

Page 4: Architetttura Della Soluzione

Programmare è anche un esercizio creativo.

Esistono però obiettivi: stabilità, estensibilità, mantenibilità e scalabilità che il programmatore deve perseguire per scrivere codice di qualità.

Page 5: Architetttura Della Soluzione

SRP: Single Responsibility Principle

OCP: Open Closed Principle

LSP: Liskov Substitution Principle

ISP: Interface Segregation Principle

DIP: Dependency Inversion Principle

Page 6: Architetttura Della Soluzione

DOMAIN OBJECTS

CUORE DELL’APPLICAZIONE

Application Services

Unit Tests

Domain Services

ISpecialtyRepository

SpecialtyRepository

SpecialtyController

ReservationService

NotificationService

Page 7: Architetttura Della Soluzione

UI / Application Services

DOMAIN MODEL(Core & Services)

Infrastructure(Nhibernate,Logging,Validation)

DB

DependencyResolver

(Unit/SM)(ioc container)

Page 8: Architetttura Della Soluzione

• Presentation / UIE’ responsabile della presentazione delle informazioni all’utente. Deve interpretare i comandi inviati dall'utente all’interfaccia. Non contiene logiche di business fatta eccezione per i meccanismi di navigazione (menù,screens).

• ApplicationCoordina l'attività dell’applicazione. Non contiene alcuna logica di business e in possesso dello stato degli oggetti del dominio, ma può memorizzare lo stato di avanzamento di tasks specifici (transazioni,sessione utente).

• DomainContiene il modello ad oggetti che rappresenta il dominio applicativo (stato e comportamento dei business objects). E’ autonomo e indipendente e non conosce i meccanismi di persistenza.

• InfrastructureTrasversale a tutti i livelli precedenti. Implementa concretamente la persistenza del dominio, e i cross-cutting concerns.

Page 9: Architetttura Della Soluzione

Cuore della soluzione

Implementazione concreta della persistenza (via NH) e

della IoC (via SM e Unit)

Interfaccia Utente (MVC)

Page 10: Architetttura Della Soluzione

• Domain Model (cuore dell’applicazione)• Repository• Query Objects• Unit Of Work (NHibernate)• Service Locator / Dependency Resolver•Inversion Of Control

Page 11: Architetttura Della Soluzione

1) MARTIN FOWLER: Patterns of Enterprise Application Architecture (libro)

2) Jeffrey Palermo: http://jeffreypalermo.com/ (blog)

3) Domain Driven Design:http://domaindrivendesign.org/ (sito)

4) Robert Martin http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod (articolo)