Orchard CMS: dove cresce ASP.NET MVC - Seconda parte

di , in ASP.NET,

  • 0
  • 0
  • 0
  • 9,34 KB

Nella prima parte dell'articolo abbiamo visto a grandi linee quali sono i concetti chiave legati a Orchard e abbiamo avuto modo di apprezzare l'alta flessibilità che lo distingue, nonché la facilità di utilizzo di cui può beneficiare l'utente finale. Analogamente, lo sviluppatore può contare su un framework stabile, moderno e potente, personalizzabile in ogni suo aspetto.

In questa seconda parte entreremo maggiormente nel dettaglio e, attraverso una serie di esempi utili allo scopo, cercheremo di comprendere in che modo Orchard funziona e quali sono le possibilità che è in grado di offrire.

Architettura di Orchard

La base portante di Orchard è ASP.NET MVC 3, ma, a completamento dell'intera architettura, vi sono altri framework, di cui gli sviluppatori più smaliziati avranno già sentito parlare:

  • NHibernate: è un O/RM (Object/Relational Mapper) che si occupa di gestire completamente la persistenza dei dati, effettuando il mapping tra gli oggetti definiti all'interno dell'applicazione e la loro rappresentazione nella base dati e rendendo questo aspetto completamente trasparente allo sviluppatore;
  • Autofac: è un IoC Container (IoC sta per Inversion of Control). Orchard fa un uso massiccio di dependency injection per soddisfare la propria natura altamente flessibile;
  • Castle Dynamic Proxy: si tratta di un framework utilizzato per la generazione dinamica di proxy.

Figura 13

E' importante sottolineare che l'applicazione ed il framework sono implementati sulla base dei framework citati e mostrati in figura come ulteriori livelli di astrazione. Pertanto non sussiste alcuna necessità di avere competenze tecniche di NHibernate, Castle o Autofac per procedere nell'utilizzo di Orchard.

Piuttosto vi sono altri concetti legati ad Orchard, di cui l'immagine successiva offre una panoramica esaustiva, con cui prendere familiarità.

Figura 14

Per meglio comprendere le componenti in gioco, possiamo avvalerci di un semplice esempio.

Un modulo di esempio

Ipotizziamo di voler implementare un nuovo modulo comprendente una nuova Content Part che rappresenti le coordinate geografiche, che utilizzeremo per corredare le nostre pagine di mappe interattive. Trattandosi di una Content Part, è immediato pensare a come questa potrà essere riutilizzata anche in altri contesti, agganciandola ad altri Content Type, con un fortissimo riutilizzo del codice.

Sebbene sia possibile procedere nello sviluppo di nuove componenti per Orchard utilizzando strumenti come WebMatrix o addirittura il solo Blocco Note di Windows, nel prosieguo faremo riferimento e utilizzeremo Visual Studio, strumento in ogni caso vivamente consigliato se si intende implementare un proprio modulo. Tra l'altro, esiste un template di progetto per Visual Studio specifico per i moduli di Orchard, scaricabile direttamente dal sito di CodePlex.

Prima ancora di lanciarci nell'implementazione vera e propria, osserviamo che Orchard dispone di un comodo tool a riga di comando che ci consente di effettuare le operazione più comuni, come, appunto, la creazione di un nuovo modulo. L'eseguibile Orchard.exe è situato nella directory bin della nostra applicazione ed è sufficiente lanciarlo, previa installazione ed attivazione della feature "Code generation".

Figura 15

Lanciato il tool, diamo il comando "codegen module" (vedi figura di seguito), che provvede a creare la struttura primordiale per il nostro modulo all'interno del progetto.

Figura 16

L'aggiunta del parametro "/IncludeInSolution:true" è tipica dello sviluppo con il pacchetto "codice sorgente". Questo infatti include l'intera solution Visual Studio e, utilizzando questo parametro, possiamo aggiungere il progetto del nostro modulo alla soluzione di Orchard.

6 pagine in totale: 1 2 3 4 5 6

Attenzione: Questo articolo contiene un allegato.

Contenuti dell'articolo

Commenti

Visualizza/aggiungi commenti

Orchard CMS: dove cresce ASP.NET MVC - Seconda parte 1010 7
| Condividi su: Twitter, Facebook, LinkedIn, Google+

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti