Orchard CMS: architettura

1,717 views

Published on

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.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,717
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
43
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Orchard CMS: architettura

  1. 1. Architettura di Orcharduno sguardo dietro le quinte…<br />Associazione Culturale DotNetCampania<br />Michele Aponte<br />Microsoft MVP ASP.NET / IIS<br />MCT – MCP – MCTS – MCPD<br />apomic80@hotmail.com<br />http://dotnetcampania.org/blogs/michele<br />michele.aponte@dotnetcampania.org<br />
  2. 2. Architettura<br />
  3. 3. Architettura<br />
  4. 4. Architettura<br />
  5. 5. Architettura<br />Controller<br />View<br />Model<br />
  6. 6. Architettura<br />Request<br />Action<br />Action Result<br />Url<br />Routing<br />Controller<br />View<br />Result<br />http://www.miaapplicazione.it/{controller}/{action}/{param}<br />
  7. 7. Architettura<br />www.miaapplicazione.it/News/Show/10<br />Show(10)<br />Action Result<br />Url<br />Routing<br />NewsController<br />Show<br />Result<br />http://www.miaapplicazione.it/News/Show/10<br />
  8. 8. Architettura<br />
  9. 9. Architettura<br />NHibernate<br />
  10. 10. Architettura<br />Oggetti<br />Relazionale<br />DB<br />Class<br />Class<br />ORM<br />Class<br />Class<br />NHibernate<br />
  11. 11. Architettura<br />Oggetti<br />Relazionale<br />DB<br />Class<br />Class<br />ORM<br />Class<br />Class<br />NHibernate<br />
  12. 12. Architettura<br />NHibernate<br />
  13. 13. Architettura<br />IoC Container<br />Class1<br />Class 2<br />Autofac<br />NHibernate<br />
  14. 14. Architettura<br />Autofac<br />NHibernate<br />
  15. 15. Architettura<br />Dynamic Proxy Generator<br />Class1<br />Class 2<br />Autofac<br />Castle<br />NHibernate<br />
  16. 16. Architettura<br />Dynamic Proxy Generator<br />Class1<br />Class 2<br />Proxy<br />Class 2<br />Autofac<br />Castle<br />NHibernate<br />
  17. 17. Architettura<br />Autofac<br />Castle<br />NHibernate<br />
  18. 18. Architettura<br />Orchard Framework<br />Autofac<br />Castle<br />NHibernate<br />
  19. 19. Architettura<br />Core<br />Orchard Framework<br />Autofac<br />Castle<br />NHibernate<br />
  20. 20. Architettura<br />Moduli<br />Core<br />Orchard Framework<br />Autofac<br />Castle<br />NHibernate<br />
  21. 21. Architettura<br />Moduli<br />Core<br />Orchard Framework<br />Autofac<br />Castle<br />NHibernate<br />
  22. 22. Funzionamento di un modulo<br />Request<br />Response<br />Moduli<br />View<br />Model<br />Controller<br />Relational<br />Domain<br />Definitions:<br />Types, Parts, & Fields<br />DB<br />View<br />Drivers<br />Shapes<br />Controller<br />ORM<br />Data:<br />ContentItems<br />Records<br />Placement<br />Handlers<br />Migrations<br />Events<br />OrchardFramework<br />Services<br />Tasks<br />Events<br />Localization<br />ContentManager<br />Settings<br />Commands<br />Indexing<br />Messaging<br />Security<br />Caching<br />Reports<br />Logging<br /><ul><li>Query
  23. 23. CRUD
  24. 24. BuildDisplay</li></li></ul><li>Data Composition<br />ContentHandler 1<br />ContentManager<br />(CRUD)<br />ContentHandler 2<br />ContentItem<br />(…)<br />ContentPart 1<br />ContentPart2<br />(…)<br />ContentHandler N<br />ContentPartN<br />
  25. 25. Funzionamento di un modulo<br />ContentDriver<br />Part 1<br />Controller<br />ContentDriver<br />Part 2<br />ContentManager<br />(BuildXxxModel)<br />ContentItem<br />ViewModel<br />(…)<br />View<br />ContentDriver<br />Part n<br />
  26. 26. DemoAnalisi del codice sorgente di Orchard<br />
  27. 27. © 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.<br />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.<br />

×