470 likes | 580 Views
WebMatrix + Orchard First Impact…. Ing . Giorgetti Alessandro Software Artisan SID s.r.l. About me…. Giorgetti Alessandro. Laurato in Ingegneria Elettronica Cofondatore di SID s.r.l. Blog: http://www.primordialcode.com Email: alessandro.giorgetti@live.com , guardian@nablasoft.com
E N D
WebMatrix + OrchardFirst Impact… Ing. Giorgetti Alessandro Software Artisan SID s.r.l.
About me… Giorgetti Alessandro Laurato in Ingegneria Elettronica Cofondatore di SID s.r.l. Blog: http://www.primordialcode.com Email: alessandro.giorgetti@live.com, guardian@nablasoft.com Twitter: @A_Giorgetti
WebMatrix • WebMatrix: tool gratuito per lo sviluppodiapplicazioni web, include tuttoquellodi cui si ha bisogno per iniziare a svilupparteiltuosito web. • Non è un ostitutodi Visual Studio. • Gestiscediversi tipi di web applications e web application frameworks (like WrodPress, Umbraco, Orchard…). • Si integra con IISExpress per semplicarel’hostingdisitidurante lo sviluppo.
WebMatrix • Creare un sito web: si possono creare siti completamente vuoti od utilizzare i template o le web application gestite da WebMatrix come punto di partenza. • I siti web sono ‘hostati’ appoggiandosi su IIS o IISExpress: ambiente ideale per lo sviluppo. • Personalizzazione: WebMatrix supporta differenti tipi di editor per gestire diversi aspetti del sito web (pagine, css, etc…) • Pubblicazione: utilizzando un wizard integrato è possibile pubblicare automaticamente il proprio sito web verso il provider di destinazione.
WebMatrix - setup Il modo più semplice per istallare WebMatrix: • Download ed Istallazione: Microsoft Web Platform Installer • Cerca Microsoft WebMatrix tra i prodotti disponibili ed aggiungilo alla lista di istallazione • Tutte le dipendenze saranno automaticamente scaricate ed istallate se necessario.
WebMatrix - site view • Consente di configurare con semplicità diversi parameteri del sito relativi all’hosting su IIS o IISExpress (in alternativa si possono gestire ‘a mano’ i file di configurazione).
WebMatrix - file view • Consente di creare ed editare file relativi al sito web: dal codice agli stili CSS.
WebMatrix - database view • Consente la connessione e la gestione di diversi tipi di datasource: è possibile editare tabelle e gestire i dati in esse contenuti. • Non è un sostituto per Sql Management Studio, Toad ed analoghi.
WebMatrix - report view • Consente di analizzare il sito web e scovare potenziali problemi.
WebMatrix - demo WebMatrix in action How it works…
Orchard • Orchard è un CMS web based: essenzialmentemira ad aiutare la ‘costruzione’ di un sito web partendodaelementigiàesistenti. • Segue un approccioestremamentemodulare e flessibile. • Costruitosu ASP.NET MVC 3. • Layer diperistenzabasatosuNhibernate + Fluent Mappings. • Puo’ utilizzarediversi tipi di database (non sonoSqlServer).
Orchard - setup Diverse opzioni di installazione e configurazione: dal download e compilazione del source code all’uso di pacchetti di istallazione precompilato o del Windows Platform Installer (my favourite). In ogni caso, abbiamo iniziato con WebMatrix procediamo sullo stesso percorso: • Aprire la dashboard di WebMatrix. • Selezionare ‘Sito da raccolta web’. • Scegliere Orchard dalla lista che viene presentata.
Orchard - demo Setup Setup Orchard con WebMatrix
Orchard - first run Una volta istallato, alla prima esecuzione ci verranno richieste alcune informazioni per configurare il sito: • Nome del sito. • Account di amministrazione. • Tipo di storage. • Template da cui costruire il sito.
Orchard - first run Ecco cosa si ottiene quando la procedura di setup iniziale è completa:
Orchard - first run Questo è uno screenshot della dashboard:
Orchard - demo Up and Running in 5 minutes First Run Demo Istallazione e configurazione del sito
Orchard – concetti di base Orchard è una soluzione estremamente modulare. Ogni modulo/package può essere suddiviso in differenti parti che offrono diverse funzionalità; queste ultime possono poi essere combinate per ottenere operazioni anche complesse. Per capire ‘come funziona’ dobbiamo familiarizzare con alcuni termini e definizioni utilizzate dal team di sviluppo:
Orchard – concetti di base Content Tutto ruota attorno ai contenuti; un ‘contenuto’ è qualcosa che ha delle informazioni associate (una pagina, un post del blog, un commento…abbiamo diversi tipi di contenuti). Un contenuto non è di per sé una entità atomica; può essere composto da diversi tipi di informazioni (parti). Una singola ‘content part’ viene utilizzata per fornire un comportamento coerente che può essere riutilizzato in diversi contesti.
Orchard - content parts • Admin Menu – consente agli elementi di apparire nei menu di amministrazione (dashboard). • Body – fornsce il contenuto, l’informazione. • Comments – supporto per la gestione dei commenti • Common – fornisce attributi e supporto a funzioni di base (come indicare un proprietario e/o vari timestamp). • Containable – consente all’oggetto di essere contenuto in una lista. • Container – fornisce supporto per contenere oggetti di diversa tipologia. • Custom properties – aggiunge tre campi stringa custom agli oggetti.
Orchard - content parts • Identity • Menu – consento al contenuto di apparire nei menu • Publish Later – fornisce supporto alla gestione della pubblicazione differita nel tempo • Route Part – supporto per consentire l’accesso alla risorsa • Tags Part – associa dei tag al contenuto (consente una sorta di categorizzazione dei contenuti, i contenuti ‘taggati’ sono accessibili come risorse: ~/tags/tag-name) • More parts can be added…
Orchard - content fields I ‘Content fields’ sonopezzidiinformazionechepossonoessereaggiuntiai ‘Content Item’. Hanno un nomeed un tipoedunavoltaassociatidivengonospecifici per un dato content type. È possibileassociarediversi content field ad unostessotipodicontenuto. Ad esempio un contenutoditipo ‘Evento’ puo’ avereassociato un body (informazionechedescrivel’evento), un field ‘Locazione’ (testo,map) ed un field ‘Data’ (datetime). È possibiledefiniredei field custom per rappresentare I propri tipi diinformazioni.
Orchard - demo Content Types Creare diversi tipi di contenuti…
Orchard - modules and features • Tutte le funzionalitàesposteda Orchard sonoimplementate come moduli. • Un modulo è un set diestensionichesonoraggruppatefisicamente in unacartella del sito web (all’internodellacartella ‘Modules’). • Un modulo puòcontenereuna o piùfunzionalità, un modulo è quindi un raggruppamentologicodifunzionalitàchepossonoessreabilitate o disabilitateindividualmente • Per accedereallagestionedeimoduli: Dashboard Modules (qui è possibileinstallare, abilitare, disabilitare, configuraremoduli e funzionalità).
Orchard - demo Mdls & Ftrs How it works…
Orchard – themes & composition • Orchard prediligeunachiaraseparazionetra la gestione del contenuto (informazione) e la visualizzazione del contenutostesso. • Ognifunzionalità, parte o contenutohanno la propriarappresentazionegrafica. • Orchard è caratterizzato dall’avere un motore di composizione che è in grado di accorpare le singole entità eterogenee in una unica organizzazione coerente. • Il meccanismo di composizione di Orchard è abbastanza complesso da padroneggiare, questo è dovuto essenzialmente all’elevato livello di flessibilità e customizzazione che deve garantire.
Orchard - theme • Un Tema è un package chedefinisceil ‘look & feel’ per un sito web. • Consiste in unacombinazionedi style sheets, immagini, file di layout, templates per controlli e, neitemipiùavanzati, custom code. • È possibilecrearetemicheereditinodaaltritemipredefiniti (in questomodo è possibileeffettuarepiccolemodifiche ad un tema base senzaalterarne le funzionalità).
Orchard - layout • Un ‘Layout’ in unatema è un particolare file chedefiniscel’organizzazionedellapagina web el sito. • Un Layout definisce un set di zone in cui posizionarecontenuti e widgets. • Al momento è possibileavere un solo Layout di base per ilsito.ù • È possibilecustomizzare come le diverse paginedi diverse sezionivengonorenderizzateusandocombinazionididiversi layers (maggioriinformazionitrabreve).
Orchard - zones & widgets • Le ‘Zone’ sonospecifichesezioni del layout chepossonoesserecustomizzateinserendoelementi e widgets. • Le zone privedielementi o contenuto non vengonorenderizzate. • Un ‘Widget’ è un frammentodi UI chepuo’ essereaggiuntoallapagina del sito. • Esempidi widgets: tag cloud, mappe, archivi, listedi post, etc… possonoessereimplementati come funzionalitàespostedaimoduli.
Orchar - layer • Un ‘Layer’ è un gruppodi widget (con la lorospecificaconfigurazione) che è attivatodaunabendefinitaregoladivisualizzazione. • È possibiledefinirediversi tipi diregoledivisualizzazione. • Quandopiùdi un layer è attivocontemporaneamentesullastessapagina, tuttigli widget diquei layer sonovisualizzaticontemporaneamente. • Per customizzare e/o definire layers:Dashboard Widgets.
Orchard - layer Unaregoladi layer è unaespressionechepuo’ esserevera o falsa. Rules syntax: You can build complex expressions: (not authenticated and url("~/about")) or authenticated
Orchard - template • Ogni contenuto deve essere rappresentato graficamente all’utente. • Occorre un metodo per convertire i dati e le informazioni che descrivono il contenuto in elementi HTML che possono essere renderizzati dal browser. • Un template è un file HTML con dei placeholders e dei markers per indicare la posizione dei dati all’interno del frammento:(<h2>@Model.Title</h2>).
Orchard - shape • Prima divenire renderizzato attraverso un template ogni oggetto viene convertito in una ‘Shape’. • Una ‘shape’ è un oggetto che contiene tutte le informazioni necessarie alla sua visualizzazione. • A livello logico una pagina non è altro che un albero di queste strutture che fornisce una rappresentazione astratta della pagina stessa (come avviene in WPF/Silverlight con i visual ed i logical tree di una form xaml). • Questo approccio consente la trasformazione di ogni oggetto prima della effettiva visualizzazione.
Orchard - placement Durante il rendering diunapagina Orchard deveottenereinformazioni circa ilposizionamentodiognioggetto. Due meccanismifondamentali: • Questeinformazioniderivanodai template • File Placement.info – file XML chedescrivono, mediante un set diregole, come combinare le shapes, in cheordineed in quali zone inserirle.
Orchard - demo Layers & Widget
Orchard - security • Supporto per gestione Utenti e Ruoli • Set predefinito di Ruoli a cui è possibile assegnare gli utenti. • È possibile creare nuovi ruoli. • Ogni ruolo ha il proprio set di permessi assegnato. • I permessi sono garantiti ai ruoli, ma non esplicitamente negati: se un utente appartiene ad un gruppo che garantisce un determinato permesso allora l’utente ha quel permesso. • Alcunipermessisono ‘garantitieffettivamente’ (sonoimplicatidaaltripemessi, es: site owner garantisceimplicitamentetuttoilresto). • Ogni feature puòesporreilproprio set dipermessi. • GestioneUtenti e Ruoli: Dashboard Users.
Orchard - searching & indexing • Funzionalità fornita attraverso un set di moduli:Indexing – fornisce servizi di indicizzazione.Lucene – implementazione specifica servizio idx.Search – fornisce la possibilità di eseguire query. • Nuove opzioni vengono aggiunte alla sezione di configurazione della Dashboard (per selezionare quali tipi di contenuti indicizzare e come schedulare le operazioni di indicizzazione). • Viene fornito un nuovo widget (SearchForm) per offrire agli utilizzatori del sito una interfaccia mediante la quale eseguire ricerche.
Orchard – custom content types • È possibile creare tipi di contenuto custom per rappresentare specifici scenari (come ad esempio un ‘Evento’ o uno ‘Sponsor’). • I tipi custom possono essere costituiti da:Parts – blocchi predefiniti di proprietà che definisco comportamenti ben precisi ed uniformi. • Fields – singole porzioni di informazioni che definiscono dati specifici al tipo che stiamo costruendo (supporto per differenti tipi di campo, altri ne possono essere creati emdiante moduli e features). • I tipi custom possono avere diversi comportamenti in relazione alle differenti Parts che vengono usati per comporli.
Orchard – content lists È possibile organizzare i contenuti in liste: • Editare un tipo esistente o crearne uno custom aggiungendo le seguenti Parts:Common – fornisce supporto per un set base di proprietà (proprietario, date di creazione e modifica, ecc…)Containable – indica che questo tipo può essere associato ad una lista ed abilita la dashboard alla gestione della relazione tra contenuti e liste. • Di seguito si deve creare una List (lista) che conterrà oggetti del tipo appena definito:Dashboard New List.
Orchard – content lists Per visualizzare una lista: • Collegare il contenuto di tipo ‘List’ ad una voce di menu e visualizzarlo come pagina intera. • Usare un “Container Widget” per inserire il contenuto all’interno di una zona del layout.
Orchard - demo Custom types