SharePoint Hosted App Model #1

Fra i nuovi modelli con cui creare App per SharePoint, il modello SharePoint Hosted è il mio preferito.Questo modello prevede che l'applicazione venga sviluppata completamente in JavaScript (oppure TypeScript :)) e quindi l'esecuzione avvenga completamente nel browser dell'utente e l'iterazione con SharePoint avviene tramite il client object model oppure tramite le nuove api Rest. Perchè mi piace tanto questo modello?Semplicemente perchè nella maggior parte dei casi si riesce ad architetturare meglio l'applicazione, evitando di fare postback per esempio ogni volta che bisogna aggiornare un campo, ecc. In questo caso quindi, SharePoint oltre a fornire le api per accedere alle funzionalità che offre, diventa anche il sistema di hosting della nostra app, andando a  contenere in un appostito spweb, chiamato app web, creato all'installazione dell'app, tutti i file html, css, javascript ed eventualmente liste, library e altri artifacts di SharePoint che servono all'app stessa. Per isolare completamente ogni istanza di app (ogni installazione di app in questo caso) SharePoint va a creare appunto un spweb per ogni istanza, andando a definire un url univoco. Come è strutturato l'url di un spweb per app?Vediamo un esempio: Ipotiziamo che l'url del nostro sito SharePoint sia http://intranet.contoso.com e che vogliamo installare un'app che si chiami "Rubrica Telefonica" e dove l'url dell'app web sarà il seguente: http://app-ac453c3675cb0c.apps.contoso.com/RubricaTelefonica Questo vuol dire quindi che ogni app avrà un url univoco a livello di dominio, cosa che permette un isolamento anche dal punto di vista delle chiamate cross domain.SharePoint utilizza un pattern per creare questo url, la cui struttura è questa: http://tenant-APPUID.domain.com/APPNAME dove ogni parte dell'url corrisponde a: tenant: configurazione che viene settata a livello di Central Administration, di solito viene usato il valore app APPUID: valore che SharePoint autogenera per ogni istanza di app, rendendo il nome di dominio unico domain.com: nome del domino a cui è raggiungibile il sito di SharePoint APPNAME: nome dell'app installata.

Welcome to PuzzleJs

I am proud to announce the very first version of PuzzleJs.What is PuzzleJs? It 'a little framework created to allow the modularization of applications made ​​in javascript without having the complexity of the framework as DurandalJs or AngularJs.It 's based on KnockoutJs, RequireJs and knockout-amd-helpers. In the next few posts we will see the working mechanism!Stay tuned!

Introduzione alle SharePoint e Office Apps

Sia SharePoint 2013 che Office 2013 introducono il concetto di App.L'idea è quella di creare delle vere e proprie applicazioni che possano funzionare nel caso di SharePoint all'interno del browser e nel caso Office all'interno dei rispettivi client (Desktop e Web). In entrambi in casi la cosa che bisogna sottolinare è l'introduzione di un nuovo paradigma che prevede il fatto di non andare più a estendere SharePoint (con tutta una serie di vantaggi e svantaggi) con delle feature o in Office con degli Addin, ma di creare delle entità a se stanti che sono appunto le App. La differenza è molto sottile, è vero, ma cerchiamo di spiegarla.Per esempio, cosa vuol dire creare una Solution con delle Features per SharePoint? Vuol dire creare un progetto in Visual Studio che permetta di creare una serie di item per inserire funzionalità all'interno di un sito di SharePoint (per esempio content type, list definitions, list instance, ecc, pagine, file css, immagini, ecc) e/o scrivere del codice che permetta di effettuare qualcosa lato server per esempio alla creazione o alla modifica di un item (Event Receiver) oppure creare una WebPart, una Application Page, ecc, ecc.Una volta che andiamo a installare una Solution, questa si fonde all'interno di SharePoint, magari andando a deployare qualcosa nel file sistem di SP oppure inserendo la dll (risultato della compilazione della solution) nella GAC del sistema.E' vero che l'utente (che ha i privilegi) può sempre andare ad amministrare una o più features (attivare o disattivare funzionalità) ma questo non è riconducibile al concetto di applicazione. Cos'è quindi un'applicazione?E' un'entità che può essere installata / disinstallata / aggiornata, che ha un set di permessi per poter accedere a delle funzionalità/dati, che ha un'interfaccia propria per poter essere utlizzata.Il paragone con le App per SmartPhone danza a pennello.Questo solo per capire quindi la differenza fra Solution/Feature e App per SharePoint. SharePoint Nel caso di SharePoint il nuovo modello di Sviluppo prevede il fatto che non ci sia più codice lato server (inteso nello stesso processo di SharePoint) che venga eseguito, bensi l'applicazione verrà eseguita completamente lato client oppure ospitata all'interno di qualche server web (dipende dal modello di sviluppo adottato) Le applicazioni per SharePoint potranno comunicare con SharePoint stesso esclusivamente utilizzando le API Rest che SharePoint 2013 mette a disposizione oppure utilizzando il CSOM (Client Object Model). Il vantaggio di questo modello, molto simile a quello che si ha nello sviluppo di App per Facebook, è quello che finalemente siamo slegati dalla tecnologia con cui è fatto SharePoint ovvero .NET nella versione 4.5.Possiamo quindi realizzare o portare applicazioni già realizzate e farle diventare App per SharePoint indipendentemente dalla tecnologia con cui SharePoint è fatto.Possiamo utilizzare semplicemente JavaScript oppure PHP oppure Java oppure qualsiasi stack web vogliamo utilizzare. Ad oggi abbiamo 3 modelli di Sviluppo per App di SharePoint riassunti in questa immagine: In post successivi andrò ad approfondire i 3 modelli, per diciamo che il modell SharePoint-hosted è quello che prevede di andare a realizzare l'App completamente in JavaScript, senza che ci sia del codice che venga eseguito lato server, mentre gli altri 2 modelli prevedono il fatto di eseguire codice lato server (in qualsiasi linguaggio) ma richiedono un servizio di hosting che nel caso del modello Autohosted è Windows Azure. Office Nel caso di Office 2013, il nuovo modello si sviluppo di App prevede la realizzazione di applicazioni che possano essere eseguire contestualmente al documento stesso e non al client in cui vengono eseguite.Questo permette di avere un'App che viene "installata" nel documento e non nel client di Office e questo permette di poter utilizzare quell'App su qualsiasi client Office 2013 in cui quel documento viene aperto. Le App per Office 2013 supportano, sia pur con delle limitazioni, sia le versioni Desktop che Web di Office 2013, permettendo quindi di poter lavorare con le app nei documenti da diversi dispositivi, non solo il classico Windows con Office installato.Per poter far funzionare questo scenario, le App per Office sono realizzare in modo molto simile a quanto abbiamo appena visto per SharePoint, ovvero utilizzando tecnologia Web. Esistono 3 tipi di App che si possono sviluppare per Office: Task Pane App, Content App e Mail App: Ognuna ha come targhet una tipologia di documento/client.Nei prossimi post analizzeremo meglio queste tipologie di App. Conclusioni Di seguito uno schema riassuntivo della nuova architettura delle App di SharePoint e di Office 2013 Ma perchè andare a creare App per SharePoint e Office?I motivi sono molteplici sia lato Dev che lato User: Il codice rimane "isolato" all'interno dell'App, la comunicazione avviene mediante API Client Non siamo più legati a una piattaforma specifica di sviluppo L'utente accederà alla logica applicativa attraverso l'interfaccia dell'App Gli utenti potranno installare le App che vorranno attraverso lo Store pubblico di Microsoft oppure atteaverso degli Store privati ecc... Vi lascio un video in inglese che riassume in modo simpatico quanto detto fino ad adesso, nei prossimi post andremo più nel dettaglio della nuova architettura. <a title="Imagine apps for Office 2013 and SharePoint 2013 in 90 seconds" href="http://www.microsoft.com/office/preview?videoid=61ce61c7-cb0b-4236-9d96-41b0094b0398&from=shareembed-syndication" target="_new" data-mce-href="http://www.microsoft.com/office/preview?videoid=61ce61c7-cb0b-4236-9d96-41b0094b0398&from=shareembed-syndication">MS_Office Imagine apps for Office 2013 and SharePoint 2013 in 90 seconds</a>

Single Page Applications and SharePoint at first SPSItaly

Here are my slides of the session that I held on the first SharePoint Saturday in Italy Single page applications & SharePoint from Fabio Franzini

SharePoint Saturday Italy a Milano il 18 maggio 2013

Finalmente comincia l'avventure dei SharePoint Saturday in Italia con il primo evento rigorosamente gratuito il 18 maggio 2013 ospitato da Avanade. Io terrò una sessione su come realizzare delle Single Page Application all'interno di SharePoint utilizzando HTML5 e JavaScript, ma oltre a me ci sono molti altri speaker degli di nota come Peppe, Igor, Salvatore e Marco e Massimo Questa è la pagina principale dell'evento dove potete trovare il form di registrazione (affrettatevi!!), l'agenda completa e altre informazioni! Ci vediamo li il 18 maggio 2013, non mancate!! P.S. L'hashtag ufficiale dell'evento è #spsitaly

Slides della mia sessione a DotNetCampus 2013

Office 2013 loves web developers slide from Fabio Franzini

Slides della mia sessione SPA al Codemotion 2013

Codemotion 2013 - Designing complex applications using html5 and knockoutjs from Fabio Franzini

Nuovo progetto Codeplex - SharePoint 2010 App Model

E’ con piacere che comunico che la pubblicazione del mio nuovo progetto su Codeplex si è appena conclusa. Il progetto si chiama SharePoint 2010 App Model è lo scopo è quello di emulare un subset delle funzionalità legate al nuovo App Model di SharePoint 2013 in SharePoint 2010 attraverso l’uso delle SandBox Solution. Chiaramente lo scopo non è quello di creare un vero clone dell nuovo App Model in SharePoint 2010, anche perchè non avrebbe neanche senso, ma di creare un set di funzionalità che possano un domani favorire la migrazione delle applicazioni sviluppate da oggi con questo progetto dalla versione 2010 alla versione 2013 di SharePoint. In questa prima fase il progetto contiene un Project Template per Visual Studio 2012 che permette di creare una delle tre tipologie di App che si possono creare in SharePoint 2013 ovvero le SharePoint Hosted App. Nella home page del progetto su Codeplex si trovano le semplici istruzioni per poter cominciare fin da subito a utilizzarlo. Enjoy!

Le slide della mia sessiona alla WebNetConf 2012

Quest'anno ho avuto per la prima volta il terrore di partecipare come speaker a una conferenza, giuro!Il motivo è dovuto esclusivamente al mio inglese molto maccheronico e poco fluido purtroppo :(Nonostante tutto sono contento di essere arrivato in fondo, dopo un'ora di sessione, ancora vivo.Questo mi da coraggio sia per migliorare il mio inglese (ci sto lavorando pesantemente), sia per affrontare, quando ce ne sarà l'occasione, un'altra conf internazionale senza avere timori! :) Di quale conferenza sto parlando? Ovviamente della WebNetConf 2012 che il mio amico Ugo Lattanzi ha organizzato insieme a Simone Chiaretta.Conferenza estremamente interessante e perfettamente riuscita sia per i contenuti che per le persone presenti, una giornata veramente spesa bene! Di seguito potete trovare le slide della mia sessione, buona visione!

I'm speaking @ SharePoint & Office Conference 2011

Anche se un po in ritardo, ho il piacere di annunciare che quest'anno sarò speker alla SharePoint & Office Conference 2011 con la sessione: SB323 Web Development Basics for SharePoint, dove parlerò di tutte le tecnologie web che un vero SharePointer deve conoscere.Le iscrizioni sono ancora aperte! :-D 

About the author


Fabio Franzini is Senior Consultant, Software Engineer and Trainer, specializing mainly on SharePoint, ASP.NET, web solutions and in general about everything that revolves around the Microsoft web platform. [more]

Translate

Month List

Page List