Le Sandbox Solution sono state sicuramente la novità più grossa di SharePoint 2010, novità che si è rivelata poi una delle basi per la customizzazione di SharePoint Online (Office 365). Che cos'è una Sandbox Solution lo dovreste ormai sapere (altrimenti, guardatevi questo video di Paolo). Quello che dovete sapere è che all'interno di Visual Studio 11 è stato fatto un particolare lavoro da parte del team di sviluppo che ci ha portato notevoli facilitazioni per la costruzione delle nostre soluzioni.

Per prima cosa l'intellisense nasconde in automatico tutte quei membri del modello ad oggetti di SharePoint 2010 che non possono essere utilizzati all'interno di una Sandbox Solution. In figura potete vedere che alla proprietà EventReceivers (di tipo SPEventReceiverDefinitionCollection) manca il metodo Add, che consultando la documentazione vedrete esplicitamente escluso da una soluzione di tipo Sandbox:

Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution

Questo risultato era raggiungibile già in passato installando i Visual Studio 2010 SharePoint Power Tools disponibili all'interno della code gallery di Microsoft. Ora invece è tutto integrato all'interno dell'IDE.

La seconda miglioria invece è legata ad una casistica specifica: quella in cui decido di passare manualmente da una Farm solution ad una Sandbox solution. In questo caso, Visual Studio 11 ferma la compilazione della nostra soluzione ritornandoci un errore specifico, il che ci ripara da errori in fase di run-time una volta effettuato il deploy della Sandbox Solution.

Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution

Mi sarebbe piaciuto tanto che venisse fuori un bell'errore anche se provassi ad utilizzare (per esempio) le classi SqlConnection, WebClient o una di quelle che effetuano delle operazioni che sono esplicitamente escluse dal contesto limitato di una Sandbox solution, ma niente ancora. Speriamo nella prossima release.

Infine, per evitare errori in fase di deploy delle nostre applicazioni Sandbox, Visual Studio 11 ci indica tramite la scritta "Farm Solution Only" quali sono i template di elemento che possiamo utilizzare senza problemi all'interno della nostra soluzione e quali invece sono disponibili solo in una Farm Solution. Se scegliamo quindi di aggiungere un nuovo elemento in una Sandbox Solution, ecco la schermata che ci ritroviamo:

Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution

La parte relativa allo sviluppo di applicazioni Sandbox è stata sicuramente quella più curata in questa Developer Preview di Visual Studio 11, il che conferma l'attenzione di Microsoft per questa funzionalità. Vedremo poi quali altre funzionalità e/o migliorie ci lasceranno a riguardo nella prossima release di Visual Studio e, soprattutto, nella prossima versione di SharePoint.

Vi ricordo che per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
- http://www.microsoft.com/download/en/details.aspx?id=27543 (web installer)
- http://www.microsoft.com/download/en/details.aspx?id=27538 (offline installer)



TAGS: [SharePoint] [Visual Studio 11]
Commenti(0) - Posted @ 1/30/2012 2:48:32 PM - Categoria: Sharepoint - Permalink - Share on twitter | facebook
Uno dei nuovi template di progetto che possiamo sfruttare all'interno di Visual Studio 11 (e vi parlo della Developer Preview) per quanto riguarda lo sviluppo di applicazioni custom su piattaforma SharePoint 2010 o SharePoint Online è il template "SharePoint 2010 Silverlight Web Part".

SharePoint 2010 Siverlight Web Part in Visual Studio 11

Con questo template è possibile creare una soluzione che si preoccupi di effettuare il provisioning dell'omonima "Silverlight Web Part" (componente già presente nell'installazione di default di SharePoint 2010) e di legarla ad una nuova applicazione Silverlight che può essere aggiunta all'interno della soluzione in Visual Studio 11. Come avrete capito quindi, non si tratta di niente di nuovo, è solo una facilitazione per evitare tutte quelle operazioni manuali che eravamo obbligati a fare tramite l'interfaccia grafica di SharePoint stesso:

  • Inserimento nella pagina della "Silverlight Web Part",
  • caricamento del file .xap proprio della vostra applicazione Silverlight in qualche document library,
  • modifica delle proprietà della web part così da far riferimento al file .xap tramite una URI.

Dopo aver scelto la tipologia di soluzione che conterrà il codice di provisioning della “Silverlight Web Part” (sono pienamente supportate sia le soluzioni di tipo Sandbox che quelle di tipo Farm), Visual Studio 11 ci chiede di associare un progetto Silverlight alla nostra soluzione (non preoccupatevi, non c'è nessun obbligo, siamo liberi di fare questa associazione anche in un secondo momento). In questo modo le operazioni di compilazione e di creazione del package del nostro progetto SharePoint saranno precedute dalla creazione del file .xap proprio dell'applicazione Silverlight in questione e dalla copia di questo file all'interno di un particolare folder della soluzione SharePoint che verrà poi generata in fase di deploy (nella precedente versione dell'IDE di sviluppo, queste operazioni andavano fatte o a mano o schedulando delle azioni post-build).

SharePoint 2010 Siverlight Web Part in Visual Studio 11

Nella schermata di selezione del progetto Silverlight, potete scegliere il nome del progetto, il path, il linguaggio da utilizzare e la versione del plugin con cui lavorare.
Fatto questo, possiamo dare un’occhiata alla struttura della soluzione SharePoint che è stata generata. Essa contiene:

  • un elemento di tipo "Silverlight Web Part" con i relativi file di provisioning,
  • una feature per abilitarla a livello di site collection.

SharePoint 2010 Siverlight Web Part in Visual Studio 11

Il file di provisioning in questione sono due:
  • un file .webpart – che contiene il codice XML per la definizione di una "Silverlight Web Part" con qualche parametro custom (tra cui altezza, larghezza, titolo ed URL dell'applicazione Silverlight da renderizzare),
  • il file Elements.xml – utilizzato per effettuare il provisioning (quindi l'installazione) sia del file .webpart appena visto che del file .xap, rispettivamente all'interno della gallery delle web part della vostra site collection SharePoint e della document library "Site Assets". La document library di destinazione può essere modificata direttamente all'interno del file xml.

Anche in questo caso, se guardiamo il codice all'interno di questi file, non notiamo alcuna differenza con le tecniche di provisioning che conosciamo fin'ora. Questo perchè, ve lo ricordo, lato SharePoint non è cambiato nulla, quello che è cambiato sono solamente i tool all'interno di Visual Studio. Quindi, la definizione della web part è la medesima che abbiamo sempre utilizzato anche per definire le nostre web part personalizzate (in questo caso, al posto di far riferimento ad un assembly custom, si fa riferimento all'assembly di SharePoint che contiene la "Silverlight Web Part"):

<?xml version="1.0" encoding="utf-8"?> 

<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Microsoft.SharePoint.WebPartPages.SilverlightWebPart, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL" />
<importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
</metaData>
<data>
<properties>
<property name="Title" type="string">SilverlightWebPartProject1 - SilverlightWebPart1</property>
<property name="Description" type="string">My Silverlight Web Part</property>
<property name="Height" type="unit">300px</property>
<property name="Width" type="unit">400px</property>
<property name="Url" type="string">/SiteAssets/SilverlightWebPartProject1/SilverlightWebPart1/SilverlightProject1.xap</property>
</properties>
</data>
</webPart>
</webParts>

Mentre la parte di provisioning invece, sfrutta due diversi moduli per installare prima il file .xap relativo alla nostra applicazione Silverlight e poi il file .webpart:

<?xml version="1.0" encoding="utf-8"?> 

<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
<Module Name="SilverlightWebPart1" List="113" Url="_catalogs/wp">
<File Path="SilverlightWebPart1\SilverlightWebPart1.webpart" Url="SilverlightWebPartProject1_SilverlightWebPart1.webpart" Type="GhostableInLibrary" >
<Property Name="Group" Value="Custom" />
</File>
</Module>
<Module Name="SilverlightWebPart1">
<File Path="SilverlightWebPart1\SilverlightProject1.xap" Url="SiteAssets/SilverlightWebPartProject1/SilverlightWebPart1/SilverlightProject1.xap" />
</Module>
</Elements>

Se non conoscete le tecniche di provisioning di SharePoint 2010 o la sintassi per la definizione di una web part, questo è sicuramente un bell'aiuto e quindi un ottimo inizio per approfondire lo studio (a riguardo potete guardare il mio video su channel9).

L'applicazione Silverlight invece, è stata creata con le referenze delle due librerie del Client Object Model di SharePoint 2010, così da permettere l'interazione con i contenuti server-side.

SharePoint 2010 Siverlight Web Part in Visual Studio 11

Facendo un primo build della soluzione Visual Studio, ci accorgiamo che il file .xap che rappresenta la nostra applicazione Silverlight viene compilato ed inserito all'interno del pacchetto SharePoint (il classico .wsp), precisamente all'interno del folder "SilverlightWebPart1", proprio come specificato dal file XML di provisioning che abbiamo visto sopra. In questo modo, una volta installata la soluzione all'interno di una farm SharePoint e una volta abilitata la relativa feature, siamo in grado di inserire la "Silverlight Web Part" che punta alla nostra applicazione Silverlight, all'interno di una pagina SharePoint 2010.

SharePoint 2010 Siverlight Web Part in Visual Studio 11

Come vi dicevo, niente di nuovo. Abbiamo un template di progetto ed un template di elemento in più per evitare di pubblicare a mano le nostre applicazioni Silverlight all'interno di SharePoint 2010.
Se voltete scaricarvi i sorgenti d'esempio eccoli qua:
- ZIP (bho kb)

Vi ricordo che per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
- http://www.microsoft.com/download/en/details.aspx?id=27543 (web installer)
- http://www.microsoft.com/download/en/details.aspx?id=27538 (offline installer)


TAGS: [SharePoint] [Visual Studio 11]
Commenti(0) - Posted @ 1/23/2012 3:23:12 PM - Categoria: Sharepoint - Permalink - Share on twitter | facebook
Community Days 2012Vi scrivo per dirvi che da oggi è possibile iscriversi ad un lab su Windows Azure che sarà erogato all'interno dei Community Days di quest'anno.
Per la precisione questo lab si svolgerà il secondo giorno di conferenza, quindi venerdì 17 febbraio (è in concomitanza con la mia sessione, ma fa niente :)

In ogni modo, trovate maggiori informazioni direttamente sul sito:
- http://www.communitydays.it/events/communitydays-2012/

Vi ricordo poi che le iscrizioni per il primo sono chiuse purtroppo, è aperta solo la lista d'attesa. Mentre per il secondo giorno ci sono ancora 20 posti disponibili!
Se vi siete già iscritti invece, aggiornate il vostro stato di iscrizione per piacere, così se non potete più venire quanto meno lasciate il posto libero alle persone attualmente in lista di attesa. Grazie :)



TAGS: [Azure] [Community Days]
Commenti(0) - Posted @ 1/23/2012 12:29:49 PM - Categoria: Eventi - Permalink - Share on twitter | facebook
Come dalla versione 2010 anche Visual Studio 11 (non si sa ancora quale sarà il nome ufficiale) ha al suo interno gli strumenti di sviluppo per costruire applicazioni SharePoint, con qualche funzionalità aggiunta e parecchie cose messe a posto qua e la rispetto alla versione precedente dei tool. Per far subito chiarezza, queste novità riguardano SOLO Visual Studio e NON SharePoint, in quanto la beta pubblica della prossima versione si presume (quanto meno questi sono i “rumors”) che venga rilasciata a fine 2012 e tutte le funzionalità sono legate SOLO allo sviluppo su SharePoint 2010 o SharePoint Online. Quindi dobbiamo metterci il cuore in pace ed aspettare ancora un pò. Poi, se le cose cambieranno nel corso di quest’anno io non lo so di sicuro :)

Detto questo, il primo impatto che si ha con il nuovo ambiente di sviluppo riguardo la parte per applicazioni SharePoint è un pò diverso dal precedente. La schermata di creazione di un nuovo progetto infatti, ha meno template di progetto rispetto a quelli con cui siamo stati abituati a lavorare fin’ora, assieme ad un singolo nuovo template.

Visual Studio 11 for SharePoint Tip#1: template di progetto ed elemento

Una delle cose che mi è venuta subito all’occhio è la possibilità di creare progetti SharePoint anche con il nuovo framework 4.5, il che anticipa sicuramente la versione con cui sarà creato SharePoint vNext. Chiaramente però, allo stato attuale delle cose, quindi nel caso in cui volessimo utilizzare Visual Studio 11 per sviluppare sulla versione 2010 di SharePoint o su SharePoint Online, dobbiamo comunque scegliere la versione 3.5 come target Framework per il nostro progetto, perchè SharePoint 2010 e soprattutto le librerie del suo modello ad oggetti (come vi dicevo) supportano solo quella specifica versione del .NET Framework.

Detto questo, vediamo nel dettaglio tutte le tipologie di progetto che possiamo creare:

  • SharePoint 2010 Project – è il "classico" progetto vuoto, che in Visual Studio 2010 corrispondeva proprio al template “Empty SharePoint Project” e che crea la struttura di base del package relativo alla nostra soluzione.
  • SharePoint 2010 Silverlight Web Part – è l’unico template aggiunto e permette la creazione di una soluzione che contiene il provisioning di della “Silverlight Web Part” di SharePoint 2010 che fa riferimento ad una nuova applicazione Silverlight che può essere inclusa nella soluzione.
  • SharePoint 2010 Visual Web Part – è il template che crea una nuova soluzione SharePoint con all’interno una singola Visual Web Part. Rispetto alla versione precedente dei tool di sviluppo, abbiamo la possibilità di scegliere questo template sia nel caso di una sandbox solution che nel caso di una farm solution. I dettagli riguardo questa nuova funzionalità li vedremo in seguito. Promesso.
  • Import SharePoint 2010 Solution Package – è la funzionalità di Visual Studio che permette di importare e modificare una soluzione SharePoint già confezionata (un file .wsp per intenderci). Riguardo questa funzionalità ad oggi non ci sono particolari cambiamenti rispetto alla versione precedente dell’IDE.
  • Import Reusable SharePoint 2010 Workflow – è la funzionalità di Visual Studio che permette di importare un workflow già confezionato (anche in questo caso in un file .wsp) per poi modificarlo e re-installarlo. Anche riguardo questa funzionalità, non ci sono cambiamenti rispetto al passato.

Solo 5 progetti contro i 14 presenti su Visual Studio 2010. Perchè? Il motivo preciso non lo so, bisognerebbe chiedere al team di sviluppo, ma secondo me la ragione principale è stata data dai vari feedback degli utenti. Nessuno per creare una web part scegliava il template di progetto “Web Part”, ma passava sempre per un progetto vuoto così da non dover rinominare il file creato in automatico da “WebPart1” al nome preferito per la propria web part. Lo stesso per tutte le altre tipologie di progetto. Una volta creato il progetto infatti, è possibile trovare esattamente tutte le tipologie di personalizzazioni che erano già presenti all’interno di Visual Studio 2010, con l’aggiunta della “Silverlight Web Part”.

Per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
- http://www.microsoft.com/download/en/details.aspx?id=27543 (web installer)
- http://www.microsoft.com/download/en/details.aspx?id=27538 (offline installer)



TAGS: [SharePoint] [Visual Studio 11]
Commenti(0) - Posted @ 1/16/2012 4:03:01 PM - Categoria: Sharepoint - Permalink - Share on twitter | facebook
E' da un pò che sto studiando HTML5, penso sia ormai un dovere per tutti noi sviluppatori web. Nella fine dello scorso anno ho già fatto qualche esperimento e sicuramente ci sarà da divertirsi nei prossimi anni.
La cosa bella è che vengono aggiunte tutte quelle funzionalità per cui prima si doveva pensare qualcosa di custom utilizzando javascript o altro. Un esempio lampante sono le nuove tipologie di controlli input, che permettono di catalogare una semplice casella ti testo secondo un'insieme di valori a caratterizzare il tipo di dato che dovrà essere inserito dall'utente.
Questi valori vanno a sostituire il valore "text" che eravamo soliti utilizzare all'interno del tag "input" per il renderizzare la nostra casella di testo.

<input id="txtAge" type="text" />

I valori possibili per tale attributo "type", ad oggi (perchè ancora le specifiche non sono complete), sono i seguenti:
  • email
  • url
  • number
  • range
  • Date pickers (date, month, week, time, datetime, datetime-local)
  • search
  • color
Ecco quindi che una casella di input pensata per inserire gli anni di un utente, potrà essere scritta in questo modo:

<input id="txtAge" type="number" step="1" min="0" max="123" />

Come referenza riguardo questi nuovi elementi HTML potete utilizzare il sito W3Schools.com, da cui io stesso ho preso la lista che avete appena letto.
- http://www.w3schools.com/html5/html5_form_input_types.asp

Come potete vedere, allo stato attuale delle specifiche, solo Chrome ed Opera supportano a pieno queste nuove tipologie di input. Per gli altri browser dovremmo aspettare ancora un pò.
Invece, un campo in cui questi nuovi controlli di input danno il massimo e sono già ampiamente supportati è il campo degli applicativi mobile. In base alla tipoloia di campo infatti, uno smartphone presenta all'utente una configurazione differente della tastiera, così da permettere un'input contestualizzato in base al campo che l'utente seleziona. Qunidi un campo di tipo "number" verrà gestito con la tastiera con soli numeri, il campo di tipo "mail" avrà la tastiera con la chiocchiola e così via.

Per non restare indietro quindi, mi è venuta l'idea di iniziare ad applicare i vantaggi di questi tag all'interno di SharePoint 2010, perchè il concetto di "campo" o "colonna" in SharePoint è ormai radicato da anni e mi è sembrato un buon punto di estensione del prodotto in ottica futura.
Ecco quindi che ne è uscito un progettino, ancora in fase primordiale, che ci permette di sfruttare queste funzionalità del browser anche su form di liste e document library presenti su siti SharePoint. Qua sotto, potete vedere un esempio d'uso del campo "number" con Chrome.

HTML5 fields for SharePoint 2010

L'indirizzo è il seguente: http://html5spfields.codeplex.com/

Attualmente ho sviluppato solo i campi di tipo "mail" e "number". Non ho ancora pubblicato una versione totalmente funzionante perchè mi manca da sviluppare le funzionalità di visualizzazione in percentuale e di rendering di un valore numerico con uno o più decimali (proprio come fa il campo numerico di default di SharePoint), però dai sorgenti potete già scaricare la soluzione, provarla e darmi qualsiasi tipo di feedback.
Ho in previsione di sviluppare quanto meno i campi di tipo "range" (molto carino), "url" e quelli legati alle date, ma non posso darvi la certezza assoluta ancora ;)
Comunque, come vi dicevo, con Chrome e con Opera non avete problemi di utilizzo. Internet Explorer 9 non ha implementato nessuna di queste novità ancora.

Come sempre, se c'è qualche volenteroso che mi vuole dare una mano io son contento :)



TAGS: [SharePoint] [SharePoint 2010] [HTML5] [HTML5 Fields]
Commenti(0) - Posted @ 1/9/2012 10:58:51 AM - Categoria: Sharepoint - Permalink - Share on twitter | facebook