Orchard CMS: architettura

Post on 06-Feb-2015

1.412 views 0 download

description

Dopo una panoramica sul funzionamento di base di Orchard diamo uno sguardo al suo codice, scoprendo dietro le quinte un motore basato su tecnologie allo stato dell’arte, rinunciando in qualche caso anche alla produzione propria come per la persistenza dei dati in cui NHibernate è stato preferito a Entity Framework. Daremo insieme uno sguardo al codice sorgente disponibile liberamente su Codeplex gettando le basi necessarie a capire come sviluppare un modulo aggiuntivo per questo ottimo CMS.

Transcript of Orchard CMS: architettura

Architettura di Orcharduno sguardo dietro le quinte…

Michele AponteMicrosoft MVP ASP.NET / IISMCT – MCP – MCTS – MCPDapomic80@hotmail.com

http://dotnetcampania.org/blogs/michelemichele.aponte@dotnetcampania.org

Associazione Culturale DotNetCampania

Architettura

Architettura

Architettura

Architettura

View

Controller

Model

Architettura

Request

UrlRouting

Controller

Action Action Result

View Result

http://www.miaapplicazione.it/{controller}/{action}/{param}

Architettura

www.miaapplicazione.it/

News/Show/10

UrlRouting

NewsController

Show(10)Action Result

Show Result

http://www.miaapplicazione.it/News/Show/10

Architettura

Architettura NHibernate

Architettura NHibernate

DB

Class

ORM

Relazionale

Oggetti

Class

Class Class

Architettura NHibernate

DB

Class

ORM

Relazionale

Oggetti

Class

Class Class

Architettura

NHibernate

Architettura Autofac

NHibernate

IoC Container

Class1 Class 2

Architettura

Autofac NHibernate

Architettura

Autofac

Castle

NHibernate

Class1 Class 2

Dynamic Proxy Generator

Architettura

Autofac

Castle

NHibernate

Class1 Class 2ProxyClass 2

Dynamic Proxy Generator

Architettura

Autofac Castle NHibernate

Orchard Framework

Architettura

Autofac Castle NHibernate

Orchard Framework

Core

Architettura

Autofac Castle NHibernate

Orchard Framework

Core

Moduli

Architettura

Autofac Castle NHibernate

Orchard Framework

Core

Moduli

Funzionamento di un modulo

Orchard Framework

ContentManager• Query• CRUD• BuildDisplay

Localization

Events

Messaging

Indexing

Logging Reports

Services Tasks

SettingsCommand

s

Security Caching

Moduli

Model Controller View

ViewDriver

s

Handlers

Controller

Placement

DB

Records

Migrations

Definitions:

Types, Parts, & Fields

Data:Content Items

ORM

Relational Domain

Shapes

Events

Request Response

Data Composition

ContentManager(CRUD)

ContentItem

ContentHandler 1

ContentHandler 2

ContentHandler N

(…)ContentPart 1

ContentPart 2

(…)

ContentPart N

Funzionamento di un modulo

ContentManager(BuildXxxModel)

ContentItemViewModel

ContentDriverPart 1

ContentDriverPart 2

ContentDriverPart n

(…)

View

Controller

DemoAnalisi del codice sorgente di Orchard

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.