<?xml version="1.0" encoding="iso-8859-1"?><feed version="0.3" xmlns="http://purl.org/atom/ns#" xml:lang="it-it"><title>PeppeDotNet Blog - Category: Sharepoint</title><link rel="alternate" type="text/html" href="http://www.peppedotnet.it/Blog/"/><tagline type="text/html">www.peppedotnet.it/Blog/</tagline><id>http://www.peppedotnet.it/Blog/</id><modified>2012-2-7T12:24:58+01:00</modified><author><name>Marchi Giuseppe</name><url>http://www.peppedotnet.it/Blog/</url></author><entry><title>Visual Studio 11 for SharePoint Tip#4: addio all’azione di menu “package”</title><id>/Blog/VisualStudio11ForSharePointTip4.aspx</id><created>2012-2-7T12:24:58+01:00</created><content type="text/html" mode="escaped">Una delle piccole cose che mi è saltata all'occhio è stata la sparizione dell'azione di menu "package" dal menu contestuale che si apre facendo click con il tasto destro del mouse su un progetto SharePoint 2010.  
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/vs11ForSharePointDevs_9.jpg" alt="Visual Studio 11 for SharePoint Tip#4: addio all’azione di menu package" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Al suo posto però, è stata aggiunta l'opzione "Publish" (evidenziata in figura) che, oltre a permetterci di pubblicare una soluzione in una site collection SharePoint remota (vedremo in dettaglio questa funzionalità nel prossimo tip), ci da anche la possibilità di generare il file .wsp e di copiarlo in un percorso a nostra scelta. 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/spRemoteDeployVs11_15.jpg" alt="Visual Studio 11 for SharePoint Tip#4: addio all’azione di menu package" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Quindi, non spaventatevi :) hanno cambiato solo il nome dell'azione e hanno aggiunto una finestra in più per facilitarci le successive operazioni di deploy della nostra soluzione SharePoint. 
&lt;br /&gt;
&lt;br /&gt;Vi ricordo che per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27543" title="Visual Studio 11 web installer" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27543&lt;/a&gt; (web installer) 
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27538" title="Visual Studio 11 offline installer" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27538&lt;/a&gt; (offline installer)
&lt;br /&gt; 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 11.aspx" title="TAG: Visual Studio 11"&gt;Visual Studio 11&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VisualStudio11ForSharePointTip4.aspx" /><issued>2012-2-7T12:24:58+01:00</issued><modified>2012-2-7T12:24:58+01:00</modified></entry><entry><title>Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution</title><id>/Blog/VisualStudio11ForSharePointTip3.aspx</id><created>2012-1-30T14:48:32+01:00</created><content type="text/html" mode="escaped">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 &lt;a href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-le-Sandboxed-Solutions" title="Video sulle Sandbox Solution di Paolo Pialorsi" target="_blank"&gt;questo video&lt;/a&gt; di &lt;a href="http://www.sharepoint-reference.com/" title="Paolo Pialorsi" target="_blank"&gt;Paolo&lt;/a&gt;). 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. 
&lt;br /&gt;
&lt;br /&gt;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à &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.eventreceivers.aspx" title="Proprietà EventReceives" target="_blank"&gt;EventReceivers&lt;/a&gt; (di tipo &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.SPEventReceiverDefinitionCollection.aspx" title="Classe SPEventReceiverDefinitionCollection" target="_blank"&gt;SPEventReceiverDefinitionCollection&lt;/a&gt;) manca il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/ms430598.aspx" title="Metodo Add della classe SPEventReceiverDefinitionCollection" target="_blank"&gt;Add&lt;/a&gt;, che consultando la documentazione vedrete esplicitamente escluso da una soluzione di tipo Sandbox: 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/vs11SandboxSupport_1.jpg" title="Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/vs11SandboxSupport_1s.jpg" alt="Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Questo risultato era raggiungibile già in passato installando i &lt;a href="http://visualstudiogallery.msdn.microsoft.com/8e602a8c-6714-4549-9e95-f3700344b0d9" title="Visual Studio 2010 SharePoint Power Tools" target="_blank"&gt;Visual Studio 2010 SharePoint Power Tools&lt;/a&gt; disponibili all'interno della code gallery di Microsoft. Ora invece è tutto integrato all'interno dell'IDE. 
&lt;br /&gt;
&lt;br /&gt;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. 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/vs11SandboxSupport_2.jpg" alt="Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution" /&gt;
&lt;br /&gt;
&lt;br /&gt;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. 
&lt;br /&gt;
&lt;br /&gt;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: 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/vs11SandboxSupport_3.jpg" title="Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/vs11SandboxSupport_3s.jpg" alt="Visual Studio 11 for SharePoint Tip#3: miglior supporto alle Sandbox Solution" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;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. 
&lt;br /&gt;
&lt;br /&gt;Vi ricordo che per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27543" title="Visual Studio 11 (web installer)" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27543&lt;/a&gt; (web installer) 
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27538" title="Visual Studio 11 (offline installer)" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27538&lt;/a&gt; (offline installer)
&lt;br /&gt; 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 11.aspx" title="TAG: Visual Studio 11"&gt;Visual Studio 11&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VisualStudio11ForSharePointTip3.aspx" /><issued>2012-1-30T14:48:32+01:00</issued><modified>2012-1-30T14:48:32+01:00</modified></entry><entry><title>Visual Studio 11 for SharePoint Tip#2: Silverlight Web Part</title><id>/Blog/VisualStudio11ForSharePointTip2.aspx</id><created>2012-1-23T15:23:12+01:00</created><content type="text/html" mode="escaped">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". 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/images/vs11ForSharePointDevs_4.jpg" title="SharePoint 2010 Siverlight Web Part in Visual Studio 11" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/images/vs11ForSharePointDevs_4s.jpg" alt="SharePoint 2010 Siverlight Web Part in Visual Studio 11" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;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: 
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Inserimento nella pagina della "Silverlight Web Part",&lt;/li&gt;&lt;li&gt;caricamento del file .xap proprio della vostra applicazione Silverlight in qualche document library,&lt;/li&gt;&lt;li&gt;modifica delle proprietà della web part così da far riferimento al file .xap tramite una URI.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;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). 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/vs11ForSharePointDevs_5.jpg" alt="SharePoint 2010 Siverlight Web Part in Visual Studio 11" /&gt;
&lt;br /&gt;
&lt;br /&gt;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. 
&lt;br /&gt;Fatto questo, possiamo dare un’occhiata alla struttura della soluzione SharePoint che è stata generata. Essa contiene: 
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;un elemento di tipo "Silverlight Web Part" con i relativi file di provisioning,&lt;/li&gt;&lt;li&gt;una feature per abilitarla a livello di site collection.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/vs11ForSharePointDevs_6.jpg" alt="SharePoint 2010 Siverlight Web Part in Visual Studio 11" /&gt;
&lt;br /&gt;
&lt;br /&gt;Il file di provisioning in questione sono due: 
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;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),&lt;/li&gt;&lt;li&gt;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.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;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, &lt;span style="text-decoration:underline"&gt;lato SharePoint non è cambiato nulla&lt;/span&gt;, 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"): 
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;webParts&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;webPart&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/WebPart/v3"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;metaData&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;type&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="Microsoft.SharePoint.WebPartPages.SilverlightWebPart, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt; 
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;importErrorMessage&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;$Resources:core,ImportErrorMessage;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;importErrorMessage&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;metaData&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;data&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;properties&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="Title"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="string"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;SilverlightWebPartProject1 - SilverlightWebPart1&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="Description"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="string"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;My Silverlight Web Part&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="Height"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="unit"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;300px&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="Width"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="unit"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;400px&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#FF0000'&gt; name&lt;span style='color:#0000FF'&gt;="Url"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="string"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;/SiteAssets/SilverlightWebPartProject1/SilverlightWebPart1/SilverlightProject1.xap&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;property&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;properties&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;data&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;webPart&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;webParts&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;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: 
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Module&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="SilverlightWebPart1"&lt;/span&gt; List&lt;span style='color:#0000FF'&gt;="113"&lt;/span&gt; Url&lt;span style='color:#0000FF'&gt;="_catalogs/wp"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;File&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Path&lt;span style='color:#0000FF'&gt;="SilverlightWebPart1\SilverlightWebPart1.webpart"&lt;/span&gt; Url&lt;span style='color:#0000FF'&gt;="SilverlightWebPartProject1_SilverlightWebPart1.webpart"&lt;/span&gt; Type&lt;span style='color:#0000FF'&gt;="GhostableInLibrary"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Property&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="Group"&lt;/span&gt; Value&lt;span style='color:#0000FF'&gt;="Custom"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;File&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Module&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Module&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="SilverlightWebPart1"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;File&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Path&lt;span style='color:#0000FF'&gt;="SilverlightWebPart1\SilverlightProject1.xap"&lt;/span&gt; Url&lt;span style='color:#0000FF'&gt;="SiteAssets/SilverlightWebPartProject1/SilverlightWebPart1/SilverlightProject1.xap"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt; 
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Module&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; &lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;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). 
&lt;br /&gt;
&lt;br /&gt;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. 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/vs11ForSharePointDevs_7.jpg" alt="SharePoint 2010 Siverlight Web Part in Visual Studio 11" /&gt;
&lt;br /&gt;
&lt;br /&gt;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.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/vs11ForSharePointDevs_8.jpg" alt="SharePoint 2010 Siverlight Web Part in Visual Studio 11" /&gt;
&lt;br /&gt;
&lt;br /&gt;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.
&lt;br /&gt;Se voltete scaricarvi i sorgenti d'esempio eccoli qua:
&lt;br /&gt;- ZIP (bho kb)
&lt;br /&gt;
&lt;br /&gt;Vi ricordo che per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27543" title="Visual Studio 11 Developer Preview (web installer)" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27543&lt;/a&gt; (web installer) 
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27538" title="Visual Studio 11 Developer Preivew (offline installer)" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27538&lt;/a&gt; (offline installer)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 11.aspx" title="TAG: Visual Studio 11"&gt;Visual Studio 11&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VisualStudio11ForSharePointTip2.aspx" /><issued>2012-1-23T15:23:12+01:00</issued><modified>2012-1-23T15:23:12+01:00</modified></entry><entry><title>Visual Studio 11 for SharePoint Tip#1: template di progetto ed elemento </title><id>/Blog/VisualStudio11ForSharePointTip1.aspx</id><created>2012-1-16T16:3:1+01:00</created><content type="text/html" mode="escaped">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 :) 
&lt;br /&gt;
&lt;br /&gt;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. 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/vs11ForSharePointDevs_1.jpg" title="Visual Studio 11 for SharePoint Tip#1: template di progetto ed elemento " target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/vs11ForSharePointDevs_1s.jpg" alt="Visual Studio 11 for SharePoint Tip#1: template di progetto ed elemento " border="0" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;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 &lt;a href="http://www.peppedotnet.it/Blog/MicrosoftSharePointIsNotSupportedWithVersion4OfTheNetFramework.aspx" title="Le librerie di SharePoint 2010 possono essere usate solo su applicazioni compilate con il .NET Framework 3.5" target="_blank"&gt;vi dicevo&lt;/a&gt;) supportano solo quella specifica versione del .NET Framework. 
&lt;br /&gt;
&lt;br /&gt;Detto questo, vediamo nel dettaglio tutte le tipologie di progetto che possiamo creare: 
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="text-decoration: underline"&gt;SharePoint 2010 Project&lt;/span&gt; – è 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.&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline"&gt;SharePoint 2010 Silverlight Web Part&lt;/span&gt; – è 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.&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline"&gt;SharePoint 2010 Visual Web Part&lt;/span&gt; – è 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.&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline"&gt;Import SharePoint 2010 Solution Package&lt;/span&gt; – è 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.&lt;/li&gt;&lt;li&gt;&lt;span style="text-decoration: underline"&gt;Import Reusable SharePoint 2010 Workflow&lt;/span&gt; – è 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.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;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”. 
&lt;br /&gt;
&lt;br /&gt;Per provare queste novità dovete installare la developer preview di Visual Studio 11, che potete trovare a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27543" title="Visual Studio 11 Developer Preview" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27543&lt;/a&gt; (web installer)
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27538" title="Visual Studio 11 Developer Preview" target="_blank"&gt;http://www.microsoft.com/download/en/details.aspx?id=27538&lt;/a&gt; (offline installer)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 11.aspx" title="TAG: Visual Studio 11"&gt;Visual Studio 11&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VisualStudio11ForSharePointTip1.aspx" /><issued>2012-1-16T16:3:1+01:00</issued><modified>2012-1-16T16:3:1+01:00</modified></entry><entry><title>HTML5 fields per SharePoint 2010</title><id>/Blog/HTML5InputFieldsForSharePoint2010.aspx</id><created>2012-1-9T10:58:51+01:00</created><content type="text/html" mode="escaped">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 &lt;a href="http://html5videowebpart.codeplex.com/" title="HTML5 Video Web Part for SharePoint 2010" target="_blank"&gt;qualche esperimento&lt;/a&gt; e sicuramente ci sarà da divertirsi nei prossimi anni.
&lt;br /&gt;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. 
&lt;br /&gt;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.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;input&lt;/span&gt;&lt;span style='color:#FF0000'&gt; id&lt;span style='color:#0000FF'&gt;="txtAge"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="text"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;I valori possibili per tale attributo "type", ad oggi (perchè ancora le specifiche non sono complete), sono i seguenti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;email&lt;/li&gt;&lt;li&gt;url&lt;/li&gt;&lt;li&gt;number&lt;/li&gt;&lt;li&gt;range&lt;/li&gt;&lt;li&gt;Date pickers (date, month, week, time, datetime, datetime-local)&lt;/li&gt;&lt;li&gt;search&lt;/li&gt;&lt;li&gt;color&lt;/li&gt;&lt;/ul&gt;Ecco quindi che una casella di input pensata per inserire gli anni di un utente, potrà essere scritta in questo modo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;input&lt;/span&gt;&lt;span style='color:#FF0000'&gt; id&lt;span style='color:#0000FF'&gt;="txtAge"&lt;/span&gt; type&lt;span style='color:#0000FF'&gt;="number"&lt;/span&gt; step&lt;span style='color:#0000FF'&gt;="1"&lt;/span&gt; min&lt;span style='color:#0000FF'&gt;="0"&lt;/span&gt; max&lt;span style='color:#0000FF'&gt;="123"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;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.
&lt;br /&gt;- &lt;a href="http://www.w3schools.com/html5/html5_form_input_types.asp" title="HTML5 Input types" target="_blank"&gt;http://www.w3schools.com/html5/html5_form_input_types.asp&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;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ò.
&lt;br /&gt;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.
&lt;br /&gt;
&lt;br /&gt;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.
&lt;br /&gt;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.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/html5Fields.png" alt="HTML5 fields for SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;L'indirizzo è il seguente: &lt;a href="http://html5spfields.codeplex.com/" target="_blank" title="HTML5 fields for SharePoint"&gt;http://html5spfields.codeplex.com/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;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.
&lt;br /&gt;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 ;)
&lt;br /&gt;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.
&lt;br /&gt;
&lt;br /&gt;Come sempre, se c'è qualche volenteroso che mi vuole dare una mano io son contento :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/HTML5.aspx" title="TAG: HTML5"&gt;HTML5&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/HTML5 Fields.aspx" title="TAG: HTML5 Fields"&gt;HTML5 Fields&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HTML5InputFieldsForSharePoint2010.aspx" /><issued>2012-1-9T10:58:51+01:00</issued><modified>2012-1-9T10:58:51+01:00</modified></entry><entry><title>Il Client Object Model di SharePoint 2010 per applicazioni Silverlight</title><id>/Blog/VideoClientObjectModelForSilverlight.aspx</id><created>2012-1-7T14:1:39+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 10px; float: right;" alt="Channel9" src="http://www.peppedotnet.it/images/channel9.png" /&gt;Continua il nostro percorso di sviluppo su SharePoint 2010. Settimana scorsa (o meglio, l'anno scorso :) abbiamo introdotto l'architettura e il funzionamento di base che sta dietro al Client Object Model assieme al primo video dedicato all'utilizzo di tali librerie in applicazioni .NET.
&lt;br /&gt;Questa volta vedremo come sfruttare le classi e i metodi del secondo dei tre modelli disponibili per lo sviluppo di Rich Internet Aplpication in Silverlight che si interfacciano con la piattaforma di collaborazione Microsoft. Nel particolare vedremo come possiamo effettuare tutte le operazioni CRUD su liste e document library e come comprendere a pieno il meccanismo di comunicazione asincrona tra l'applicazione eseguita sul browser dell'utente e il server SharePoint.
&lt;br /&gt;
&lt;br /&gt;&lt;iframe style="height:288px;width:512px" src="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-client-side-object-model-con-Silverlight/player?w=512&amp;h=288" frameBorder="0" scrolling="no" &gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;A riguardo, avevo pubblicato un post su come installare applicazioni Silverlight all'interno di SharePoint Online sfruttando le potenzialità di una sandbox solution e un pò delle nozioni di provisioning su SharePoint. Ecco qua il post:
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Blog/InstallSilverlightAppsInOffice365SharePointOnline.aspx" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;http://www.peppedotnet.it/Blog/InstallSilverlightAppsInOffice365SharePointOnline.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete poi, potete scaricare i sorgenti che ho scritto per registrare il video:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/BEIT_Demo5.zip" title="Sorgenti video" target="_blank"&gt;BEIT_Demo5.zip&lt;/a&gt; (794 Kb)
&lt;br /&gt;
&lt;br /&gt;E se volete invece riguardarvi gli altri, ecco qua la lista completa:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="SharePoint 2010: introduzione per gli sviluppatori" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-introduzione-alle-novit-per-sviluppatori" target="_blank"&gt;Introduzione alle novità di SharePoint 2010 per sviluppatori&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;Il modello ad oggetti di SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;&lt;a title="Sviluppo di Web Part" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-web-part" target="_blank"&gt;Sviluppo di Web Part&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;&lt;a title="Introduzione al modello ad oggetti Client-Side di SharePoint 2010" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-Introduzione-al-modello-client-side" target="_blank"&gt;Introduzione al modello ad oggetti client-side&lt;/a&gt; (Peppe)&lt;ul&gt;&lt;li&gt;&lt;a title="Modello per applicazioni .NET" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-client-side-object-model-con-NET" target="_blank"&gt;Modello per applicazioni .NET&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-client-side-object-model-con-Silverlight" title="Modello per applicazioni Silverlight" target="_blank"&gt;Modello per applicazioni Silverlight&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Modello per personalizzazioni Javascript&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;I REST services di SharePoint 2010 (Peppe)&lt;/li&gt;&lt;li&gt;Personalizzazione della barra dei Ribbon (Peppe)&lt;/li&gt;&lt;li&gt;LINQ to SharePoint (Paolo)&lt;/li&gt;&lt;li&gt;Data Provisioning (Peppe)&lt;/li&gt;Sviluppo di campi custom (Peppe)&lt;li&gt;Introduzione ai Business Connectivity Services (Peppe)&lt;/li&gt;&lt;li&gt;Sandbox Solutions in SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;Workflow con SharePoint 2010 e Visual Studio 2010 (Paolo)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Nonostante è ormai chiaro che Silverlight ha una vita molto breve a favore di HTML5 &amp; co. può essere ancora un'opzione valida per molti casi. Basti pensare che ancora la maggior parte delle realtà aziendali italiane utilizza browser obsoleti. 
&lt;br /&gt;Nella prossima puntata invece vedremo come interagire con i contenuti di SharePoint 2010 tramite javascript cosa che, in ottica vNext, è sicuramente molto più interessante ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a title="TAG: SharePoint" href="http://www.peppedotnet.it/Tags/SharePoint.aspx"&gt;SharePoint&lt;/a&gt;] [&lt;a title="TAG: SharePoint 2010" href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a title="TAG: Client Object Model" href="http://www.peppedotnet.it/Tags/Client Object Model.aspx"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VideoClientObjectModelForSilverlight.aspx" /><issued>2012-1-7T14:1:39+01:00</issued><modified>2012-1-7T14:1:39+01:00</modified></entry><entry><title>Non sopportate le query CAML? C'&#232; Camlex.NET</title><id>/Blog/Camlex.aspx</id><created>2012-1-2T14:19:22+01:00</created><content type="text/html" mode="escaped">Innanzitutto buon anno a tutti! ;)
&lt;br /&gt;
&lt;br /&gt;Per chi di voi non ha mai trovato feeling con il linguaggio CAML per effettuare query sui contenuti di SharePoint, volevo segnalarvi un progetto molto carino che viene portato avanti da &lt;a href="http://sadomovalex.blogspot.com/" title="Alexey Sadomov" target="_blank"&gt;Alexey Sadomov&lt;/a&gt; (MVP SharePoint). 
&lt;br /&gt;Si chiama Camlex.NET e non è altro che una libreria .NET che ci permette di scrivere le nostre query CAML utilizzando una sintassi più semplice e sicuramente più affine al paradigma di programmazione ad oggetti.
&lt;br /&gt;Potete trovate la libreria compilata e i sorgenti direttamente su CodePlex a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://camlex.codeplex.com/" title="Camlex.NET on Codeplex" target="_blank"&gt;http://camlex.codeplex.com/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Attualmente è alla versione 3.0 e ti permette di produrre query CAML più o meno complicate.
&lt;br /&gt;Io resto dell'idea che secondo me conviene impararselo per bene CAML, perchè comunque hai sempre il controllo completo sulla tua query, però è sicuramente un tool molto interessante.
&lt;br /&gt;Inoltre, potete utilizzare un tool online per avere una preview delle vostre query CAML:
&lt;br /&gt;- &lt;a href="http://camlex-online.org/" title="Camlex.NET online tool" target="_blank"&gt;http://camlex-online.org/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Spero possa essere utile a qualcuno.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/CAML.aspx" title="TAG: CAML"&gt;CAML&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/Camlex.aspx" /><issued>2012-1-2T14:19:22+01:00</issued><modified>2012-1-2T14:19:22+01:00</modified></entry><entry><title>Il Client Object Model di SharePoint 2010 per applicazioni .NET</title><id>/Blog/VideoClientObjectModelForNetClr.aspx</id><created>2011-12-28T17:53:30+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 10px; float: right;" alt="Channel9" src="http://www.peppedotnet.it/images/channel9.png" /&gt;Continua il nostro percorso di sviluppo su SharePoint 2010. Settimana scorsa abbiamo introdotto l'architettura e il funzionamento di base che sta dietro al Client Object Model, una delle novità della nuova versione per noi sviluppatori.
&lt;br /&gt;Questa volta vedremo come sfruttare le classi e i metodi di uno dei tre modelli disponibili per lo sviluppo di applicazioni .NET che girano al di fuori del contesto di SharePoint (quindi console application, windows application, windows service, applicazioni asp.net, e chi più ne ha più ne metta). Nel particolare vedremo come possiamo effettuare tutte le operazioni CRUD su liste e document library, come sfruttare la sintassi LINQ per effettuare delle query filtrate e come applicare la gestione delle eccezioni.
&lt;br /&gt;
&lt;br /&gt;&lt;iframe style="height:288px;width:512px" src="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-client-side-object-model-con-NET/player?w=512&amp;h=288" frameBorder="0" scrolling="no" &gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;Se preferite leggere e volete andare un pò più nel dettaglio riguardo questo argomento, potete far riferimento agli articoli che ho scritto per SharePointCommunity.it:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Introduzione alle Client-Side API di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" target="_blank"&gt;Introduzione alle Client-Side API di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Operazioni CRUD con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12" target="_blank"&gt;Operazioni CRUD con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Gestione di liste con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=15" target="_blank"&gt;Gestione di liste con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Gestione delle eccezioni con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=16" target="_blank"&gt;Gestione delle eccezioni con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=20" target="_blank"&gt;Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Query LINQ tramite il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=24" target="_blank"&gt;Query LINQ tramite il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Se volete poi, potete scaricare i sorgenti che ho scritto per registrare i video. Questi, sono gli stessi della precedente puntata, me ve li rimetto per semplicità:
&lt;br /&gt;- &lt;a title="Sorgenti del video: SharePoint 2010, introduzione al modello client-side" href="http://www.peppedotnet.it/zip/BEIT_Demo4.zip" target="_blank"&gt;BEIT_Demo4.zip&lt;/a&gt; (30Kb)
&lt;br /&gt; 
&lt;br /&gt;E se volete invece riguardarvi gli altri, ecco qua la lista completa: 
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="SharePoint 2010: introduzione per gli sviluppatori" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-introduzione-alle-novit-per-sviluppatori" target="_blank"&gt;Introduzione alle novità di SharePoint 2010 per sviluppatori&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;Il modello ad oggetti di SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;&lt;a title="Sviluppo di Web Part" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-web-part" target="_blank"&gt;Sviluppo di Web Part&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;&lt;a title="Introduzione al modello ad oggetti Client-Side di SharePoint 2010" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-Introduzione-al-modello-client-side" target="_blank"&gt;Introduzione al modello ad oggetti client-side&lt;/a&gt; (Peppe)&lt;ul&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-client-side-object-model-con-NET" title="Modello per applicazioni .NET" target="_blank"&gt;Modello per applicazioni .NET&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Modello per applicazioni Silverlight&lt;/li&gt;&lt;li&gt;Modello per personalizzazioni Javascript&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;I REST services di SharePoint 2010 (Peppe)&lt;/li&gt;&lt;li&gt;Personalizzazione della barra dei Ribbon (Peppe)&lt;/li&gt;&lt;li&gt;LINQ to SharePoint (Paolo)&lt;/li&gt;&lt;li&gt;Data Provisioning (Peppe)&lt;/li&gt;Sviluppo di campi custom (Peppe)&lt;li&gt;Introduzione ai Business Connectivity Services (Peppe)&lt;/li&gt;&lt;li&gt;Sandbox Solutions in SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;Workflow con SharePoint 2010 e Visual Studio 2010 (Paolo)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;In parole povere.. avete a disposizione tutto quanto :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VideoClientObjectModelForNetClr.aspx" /><issued>2011-12-28T17:53:30+01:00</issued><modified>2011-12-28T17:53:30+01:00</modified></entry><entry><title>Come creare una webpart page da codice</title><id>/Blog/HowToCreateWebPartPageProgrammatically.aspx</id><created>2011-12-26T17:9:28+01:00</created><content type="text/html" mode="escaped">Una webpart page è una delle possibili pagine che possiamo creare all'interno di un sito SharePoint. Queste pagine, che esistono fin dalla versione 2003 del prodotto, si differenziano dalle application page in quanto permettono la modifica del proprio contenuto tramite il browser (tramite le varie webpart zone).
&lt;br /&gt;Dovete sapere che tramite il modello ad oggetti di SharePoint potete tranquillamente creare una di queste pagine, conoscendo però a priori la tipologia di template che volete utilizzare.
&lt;br /&gt;Ecco qua il codice che dovete scrivere per raggiungere questo obbiettivo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;SPWeb web = SPContext.Current.Web;
&lt;br /&gt;
&lt;br /&gt;&lt;span style="color: #008200"&gt;//creo una document library per contentere la mia nuova webpart page&lt;/span&gt;
Guid listId = web.Lists.Add(&lt;span style="color: #A31515"&gt;"Pages"&lt;/span&gt;, &lt;span style="color: #A31515"&gt;""&lt;/span&gt;, SPListTemplateType.DocumentLibrary);
&lt;br /&gt;SPList list = web.Lists[listId];
&lt;br /&gt;list.OnQuickLaunch = &lt;span style="color: #0000FF"&gt;false&lt;/span&gt;;
&lt;br /&gt;list.Update();
&lt;br /&gt;
&lt;br /&gt;&lt;span style="color: #008200"&gt;//creo la webpart page&lt;/span&gt;
&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; postInformation = &lt;span style="color: #A31515"&gt;"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;"&lt;/span&gt; +
&lt;br /&gt;&lt;span style="color: #A31515"&gt;"&lt;Method&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetList Scope=\"Request\"&gt;"&lt;/span&gt; + listId + &lt;span style="color: #A31515"&gt;"&lt;/SetList&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"ID\"&gt;New&lt;/SetVar&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"Cmd\"&gt;NewWebPage&lt;/SetVar&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"Type\"&gt;WebPartPage&lt;/SetVar&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"WebPartPageTemplate\"&gt;2&lt;/SetVar&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"Title\"&gt;TITOLO PAGINA&lt;/SetVar&gt;"&lt;/span&gt; +
&lt;br /&gt;      &lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"Overwrite\"&gt;true&lt;/SetVar&gt;"&lt;/span&gt; +
&lt;br /&gt;&lt;span style="color: #A31515"&gt;"&lt;/Method&gt;"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; processBatch = web.ProcessBatchData(postInformation);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo vedrete una nuova webpart page comparire all'interno della document library specificata (nel nostro caso, abbiamo creato da zero la library "Pages"), con il template n°2. 
&lt;br /&gt;L'elenco dei template da poter utilizzare è lo stesso che trovate nella pagina di creazione di una nuova webpart page e, se volete conoscere i vari identificativi di ogni template (in generale seguono l'ordine dall'1 all'8), potete trovare le relative pagine fisiche al seguente percorso:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\[LCID]\STS\DOCTEMP\SMARTPGS&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Questa tecnica è molto utile sia in fase di installazione della nostra applicazione ma soprattutto quando stiamo sviluppando una soluzione di tipo Sandbox, dove non possiamo sfruttare le funzionalità di un'application page normale e dobbiamo dotare in egual modo la nostra applicazione di intere pagine dedicate a funzionalità specifiche. Questo perchè sia la classe &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.aspx" title="Classe SPWeb" target="_blank"&gt;SPWeb&lt;/a&gt; che il metodo &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.processbatchdata.aspx" title="Metodo ProcessBatchData" target="_blank"&gt;ProcessBatchData&lt;/a&gt; sono disponibili all'interno del subset di membri che possono essere utilizzati in una soluzione Sandbox.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] </content><link rel="alternate" type="text/html" href="/Blog/HowToCreateWebPartPageProgrammatically.aspx" /><issued>2011-12-26T17:9:28+01:00</issued><modified>2011-12-26T17:9:28+01:00</modified></entry><entry><title>Video sullo sviluppo per SharePoint 2010 all'interno di Channel9</title><id>/Blog/SharePoint2010DevelopmentVideoOnChannel9.aspx</id><created>2011-12-21T10:0:41+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/images/channel9.png" alt="Channel9" style="float: right; margin: 10px" /&gt;Vi segnalo che da oggi, grazie alla disponibilità di &lt;a href="http://blogs.msdn.com/b/pietrobr/" title="Pietro Brambati" target="_blank"&gt;Pietro Brambati&lt;/a&gt;, i miei video riguardo il percorso formativo per chi vuole imparare a sviluppare su SharePoint 2010 sono stati pubblicati anche su &lt;a href="http://channel9.msdn.com/Tags/sharepoint?lang=it" title="Video sullo sviluppo per SharePoint 2010 su Channel9" target="_blank"&gt;Channel9&lt;/a&gt;.
&lt;br /&gt;Per chi di voi che inizia ad approcciarsi al prodotto, come &lt;a href="http://www.peppedotnet.it/Blog/VideoAboutSharePoint2010Development.aspx" title="Percorso formativo sullo sviluppo in SharePoint 2010 su Microsoft BEIT" target="_blank"&gt;già vi dicevo&lt;/a&gt;, sono sicuramente un'ottima fonte tecnica da cui partire, oltre a libri, documentazione e tutto il resto.
&lt;br /&gt;
&lt;br /&gt;Nelle ultime due pubblicazioni, avevamo visto il &lt;a href="http://www.peppedotnet.it/Blog/VideoAboutSharePoint2010Development.aspx" title="Video introduttivo al percorso di formazione su SharePoint 2010" target="_blank"&gt;video introduttivo al percorso&lt;/a&gt; e quello riguardo lo &lt;a href="http://www.peppedotnet.it/Blog/WebPartInSharePoint2010HowToVideo.aspx" title="Sviluppo di web part su SharePoint 2010" target="_blank"&gt;sviluppo di web part&lt;/a&gt;.
&lt;br /&gt;Oggi vi segnalo il primo di tre screencast sullo sviluppo tramite il Client Object Model di SharePoint 2010, una delle novità più importanti portate dalla piattaforma di collaborazione Microsoft. Un vero e proprio set di librerie in grado di permetterci di scrivere applicazioni che girano all'esterno del contesto di SharePoint ma che sono comunque in grado di interagire con i suoi contenuti.
&lt;br /&gt;In questo video si presenta un'introduzione all'architettura e al funzionamento generale, poi poi passare a video più specifici che utilizzano il Client Object Model per JavaScript, Silveright e il .NET CLR.
&lt;br /&gt;
&lt;br /&gt;&lt;iframe style="height:288px;width:512px" src="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-Introduzione-al-modello-client-side/player?w=512&amp;h=288" frameBorder="0" scrolling="no" &gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete poi, potete scaricare i sorgenti che ho scritto per registrare i video. Ecco quelli legati a questo video:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/BEIT_Demo4.zip" title="Sorgenti del video: SharePoint 2010, introduzione al modello client-side" target="_blank"&gt;BEIT_Demo4.zip&lt;/a&gt; (30Kb)
&lt;br /&gt;
&lt;br /&gt;E se volete invece riguardarvi gli altri, ecco qua la lista completa:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="SharePoint 2010: introduzione per gli sviluppatori" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-introduzione-alle-novit-per-sviluppatori" target="_blank"&gt;Introduzione alle novità di SharePoint 2010 per sviluppatori&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;Il modello ad oggetti di SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;&lt;a title="Sviluppo di Web Part" href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-web-part" target="_blank"&gt;Sviluppo di Web Part&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/Blogs/PietroBrambati/SharePoint-2010-Introduzione-al-modello-client-side" title="Introduzione al modello ad oggetti Client-Side di SharePoint 2010" target="_blank"&gt;Introduzione al modello ad oggetti client-side&lt;/a&gt; (Peppe)&lt;ul&gt;&lt;li&gt;Modello per applicazioni .NET&lt;/li&gt;&lt;li&gt;Modello per applicazioni Silverlight&lt;/li&gt;&lt;li&gt;Modello per personalizzazioni Javascript&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;I REST services di SharePoint 2010 (Peppe)&lt;/li&gt;&lt;li&gt;Personalizzazione della barra dei Ribbon (Peppe)&lt;/li&gt;&lt;li&gt;LINQ to SharePoint (Paolo)&lt;/li&gt;&lt;li&gt;Data Provisioning (Peppe)&lt;/li&gt;Sviluppo di campi custom (Peppe)&lt;li&gt;Introduzione ai Business Connectivity Services (Peppe)&lt;/li&gt;&lt;li&gt;Sandbox Solutions in SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;Workflow con SharePoint 2010 e Visual Studio 2010 (Paolo)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Buona visione ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Channel9.aspx" title="TAG: Channel9"&gt;Channel9&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/BeIT.aspx" title="TAG: BeIT"&gt;BeIT&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010DevelopmentVideoOnChannel9.aspx" /><issued>2011-12-21T10:0:41+01:00</issued><modified>2011-12-21T10:0:41+01:00</modified></entry><entry><title>Modificare la modalit&#224; di scadenza della password di Office 365</title><id>/Blog/ModifyPasswordExpirationInOffice365.aspx</id><created>2011-12-13T14:2:41+01:00</created><content type="text/html" mode="escaped">E' da un pò che mi hanno attivato l'account su Office 365 dopo la fase beta e proprio oggi, cercando di accedere alla posta, Outlook mi ha avvisato di un malfunzionamento nel download dei nuovi messaggi dall'account Exchange Online rimandandomi ad un link per la risoluzione.
&lt;br /&gt;Questa la schermata cui mi trovo di fronte una volta aperta la pagina proposta da Outlook:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/SPOnline_ChangePasswordPolicy_01.png" alt="Modificare la modalità di scadenza della password di Office 365" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Questo accade perchè la password di ogni account Office 365 è settata di default in modo tale da scadere ogni 90 giorni.
&lt;br /&gt;C'è però il modo di cambiare questo comportamento, utilizzando PowerShell e precisamente il toolkit "Microsoft Online Services for PowerShell", che potete scaricare a questi indirizzi:
&lt;br /&gt;- X86: &lt;a href="http://g.microsoftonline.com/0BD00en-US/565" title="Microsoft Online Services for PowerShell" target="_blank"&gt;http://g.microsoftonline.com/0BD00en-US/565&lt;/a&gt;
&lt;br /&gt;- X64: &lt;a href="http://g.microsoftonline.com/0bd00en-us/557" title="Microsoft Online Services for PowerShell" target="_blank"&gt;http://g.microsoftonline.com/0bd00en-us/557&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Una volta installato, all'interno del menu start aprite il programma "Microsoft Online Services Module for Windows Powershell" ed eseguite il comando "Connect-MsolService" per accedere ai servizi di Office 365. Vi verrà richiesto l'account di amministrazione della vostra licenza Office 365.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/SPOnline_ChangePasswordPolicy_02.png" alt="Modificare la modalità di scadenza della password di Office 365" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Una volta connessi, possiamo eseguire:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;il comando "Get-MsolUser" per vedere l'elenco di tutti gli utenti presenti all'interno della vostra installazione di Office 365,&lt;/li&gt;&lt;li&gt;il comando "Get-MsolUser –UserPrincipalName [mail_user]" per recuperare il vostro utente (nel mio caso è unico),&lt;/li&gt;&lt;li&gt;il comando "Set-MsolUser –UserPrincipalName [mail_user] -PasswordNeverExpires $True" per disabilitare la scadenza della password su un particolare utente&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/SPOnline_ChangePasswordPolicy_03.png" alt="Modificare la modalità di scadenza della password di Office 365" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Nel mio caso ho utilizzato il comando "Get-MsolUser | Set-MsolUser -PasswordNeverExpires $True" che disabilita la scadenza della password su tutti gli utenti.
&lt;br /&gt;Spero che vi possa essere utile.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/PowerShell.aspx" title="TAG: PowerShell"&gt;PowerShell&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ModifyPasswordExpirationInOffice365.aspx" /><issued>2011-12-13T14:2:41+01:00</issued><modified>2011-12-13T14:2:41+01:00</modified></entry><entry><title>Avete le date sbagliate in SharePoint Online?</title><id>/Blog/WrongDatesInOffice365SharePointOnline.aspx</id><created>2011-11-14T10:29:48+01:00</created><content type="text/html" mode="escaped">A me è capitato e credo che possa a capitare quanto meno ai primi che hanno acquistato una licenza di &lt;a href="http://www.office365.com" title="Office 365" target="_blank"&gt;Office 365&lt;/a&gt; e a quelli che, come me, venivano dalla beta.
&lt;br /&gt;Facendo caso alle date di creazione e di modifica dei vari documenti all'interno delle mie document libaries, mi sono accorto che non erano quelle giuste. Oltre al formato (che era inglese, su un sito creato attraverso il language pack italiano), era diversa propriol'ora visualizzata.
&lt;br /&gt;Questo perchè di default erano selezionati i regional settings per l'america, qunidi era tutto "shiftato" di 6 ore.
&lt;br /&gt;Per risolvere la cosa e configurare correttamente la mia site collection SharePoint Online, basta entrare all'interno dei "site settings" dal sito padre di tutti, selezionare la voce "Impostazione internazionali (o Regional settings per chi ha creato il sito utilizzando il language pack inglese) e scegliere la time zone desiderata, il formato, ecc..
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/SPOnline_RegionalSettings.jpg" alt="Regional settings in SharePoint Online" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Così facendo vedrete che tutto tornerà alla normalità.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/WrongDatesInOffice365SharePointOnline.aspx" /><issued>2011-11-14T10:29:48+01:00</issued><modified>2011-11-14T10:29:48+01:00</modified></entry><entry><title>Office 365 Integration Module Beta per SBS 2011</title><id>/Blog/Office365IntegrationModuleBetaForSBS2011.aspx</id><created>2011-11-1T21:45:40+01:00</created><content type="text/html" mode="escaped">Dal &lt;a href="http://blogs.technet.com/b/sbs/" title="Blog di Small Business Server" target="_blank"&gt;blog di Small Business Server&lt;/a&gt; l'annuncio della disponibilità, in versione beta, del modulo di integrazione di SBS con Office 365.
&lt;br /&gt;Questo modulo modificherà l'attuale Dashboard di SBS 2011 in modo da permettere ad utenti amministratori, la gestione e l'esecuzione di alcune attività su una particolare sottoscrizione Office 365.
&lt;br /&gt;L'aspetto interessante è sicuramente quello di poter gestire in maniera centralizzata le utenze locali e quelle sul cloud, come se fossero uniche e far si che gli utenti riescano ad entrare all'interno dei vari applicativi di Office 365 con il medesimo account della propria rete locale.
&lt;br /&gt;
&lt;br /&gt;Per maggiori informazioni, vi lascio il link diretto al post:
&lt;br /&gt;&lt;a href="http://blogs.technet.com/b/sbs/archive/2011/11/01/download-the-microsoft-174-office-365-integration-module-beta-for-windows-174-small-business-server-2011-essentials-today.aspx" title="Office 365 Integration Module Beta per SBS 2011" target="_blank"&gt;http://blogs.technet.com/b/sbs/archive/2011/11/01/download-the-microsoft-174-office-365-integration-module-beta-for-windows-174-small-business-server-2011-essentials-today.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/Office365IntegrationModuleBetaForSBS2011.aspx" /><issued>2011-11-1T21:45:40+01:00</issued><modified>2011-11-1T21:45:40+01:00</modified></entry><entry><title>HTML5 Video Web Part per SharePoint 2010</title><id>/Blog/HTML5VideoWebPartForSharePoint2010.aspx</id><created>2011-10-21T11:45:40+01:00</created><content type="text/html" mode="escaped">E' con enorme piacere che vi presento il mio ultimo progettino (pensavo di farvene vedere prima un altro, ma non ho resistito :) 
&lt;br /&gt;...una web part per SharePoint 2010 utile alla visualizzazione e la gestione di video secondo gli standard forniti dal draft corrente di HTML5 !! 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/html5VideoWebPart.jpg" alt="HTML5 Video Web Part per SharePoint 2010" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Ancora è in una fase embrionale lo ammetto, ed ho potuto testatarlo solamente con Chrome 14 (per farla funzionare con IE9 c'è da modificare quanto meno la master page di SharePoint e vi terrò aggiornati a riguardo), ma i comandi presenti nella barra dei Ribbon funzionano alla perfezione ed è disponibile anche la visualizzazione del tempo trascorso all'interno della status bar, oltre al controllo del volume, la possibilità di visualizzare un video sia da internet che dalla vostra intranet (per esempio inserito all'interno di una document library), di scegliere le dimensioni del video o di eseguire più video all'interno della stessa pagina. 
&lt;br /&gt;
&lt;br /&gt;L'unica cosa di cui non sono tanto contento è che, per ora, sono stato obbligato ad utilizzare una farm solution e non una sanbox, a causa della registrazione del tab personalizzato all'interno della barra dei Ribbon. Nello specifico, la classe che non è disponibile nelle sandbox è la &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spribbon.aspx" title="SPRibbon class" target="_blank"&gt;SPRibbon&lt;/a&gt;, che invece mi serve per registrare il codice javascript custom per la gestione dei controlli all'interno della barra dei Ribbon e, in generale, del video stesso. Questo significa che, sempre per ora, non possiamo utilizzare questa web part all'interno di Office 365 (ma questa funzionalità penso di implementarla a breve). 
&lt;br /&gt;
&lt;br /&gt;In ogni modo, è vero che ancora magari è presto, ma le integrazioni in HTML5 su SharePoint stanno già venendo fuori (vedi &lt;a href="http://kyleschaeffer.com/sharepoint/v5-responsive-html5-master-page/" title="HTML5 Master Page per SharePoint 2010" target="_blank"&gt;questa fantastica master page&lt;/a&gt;) e così facendo possiamo essere tutti pronti per quello che sicuramente sarà il futuro. Se vi scaricate i sorgenti infatti, vedrete che ci sono un bel po’ di cose carine che si possono imparare (a meno che non le sappiate già ovviamente :) e che vi potranno essere molto utili anche nei vostri progetti SharePoint. 
&lt;br /&gt;
&lt;br /&gt;Quindi, questo è il link al progetto: &lt;a href="http://html5videowebpart.codeplex.com" title="HTML5 Video Web Part su Codeplex.com" target="_blank"&gt;http://html5videowebpart.codeplex.com&lt;/a&gt; 
&lt;br /&gt;
&lt;br /&gt;Se riuscite ad installarlo e a darmi qualche tipo di feedback, mi fate veramente contento. 
&lt;br /&gt;Invece.. Se volete darmi una mano e partecipare allo sviluppo, contattatemi pure via mail ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Peppe
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/HTML5.aspx" title="TAG: HTML5"&gt;HTML5&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/HTML5 Video Web Part.aspx" title="TAG: HTML5 Video Web Part"&gt;HTML5 Video Web Part&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HTML5VideoWebPartForSharePoint2010.aspx" /><issued>2011-10-21T11:45:40+01:00</issued><modified>2011-10-21T11:45:40+01:00</modified></entry><entry><title>SharePoint Online si aggiorna! A partire dal 20 ottobre</title><id>/Blog/SharePointOnlineUpdates.aspx</id><created>2011-10-13T21:0:6+01:00</created><content type="text/html" mode="escaped">&lt;a title="Microsoft Office 365" href="http://office365.microsoft.com" target="_blank"&gt;&lt;img style="margin: 10px; float: right;" alt="Microsoft Office 365" src="http://www.peppedotnet.it/Images/office365.jpg"&gt;&lt;/a&gt;Ho appena ricevuto la mail d'avviso riguardo i prossimi aggiornamenti di SharePoint Online (Office 365).
&lt;br /&gt;Dal prossimo &lt;b&gt;20 ottobre&lt;/b&gt;, fino alla &lt;b&gt;fine di novembre&lt;/b&gt;, Microsoft di preoccuperà di aggiornare tutte le istanze di SharePoint Online per ognuno dei clienti facenti parte della piattaforma Office 365.
&lt;br /&gt;Come già &lt;a href="http://www.peppedotnet.it/Blog/SharePointConference2011Recap.aspx" title="SharePoint Conference 2011 Recap" target="_blank"&gt;vi dicevo&lt;/a&gt;, alcuni di questi aggiornamenti li conosciamo già. Altri sono nuovi ed è stata chiaramente una piacevole sorpresa vederli.
&lt;br /&gt;Eccoli nel dettaglio (riporto la mail di Microsoft così com'è):
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/AggiornamentiSharePointOnline.jpg" border="0" alt="Aggiornamenti a SharePoint Online (Office 365)" /&gt;
&lt;br /&gt;
&lt;br /&gt;Nonostante l'ampio arco di tempo prefessito per l'aggiornamento, si verrà comunque avvisati 48 ore prima dell'aggiornamento alla propria web application.
&lt;br /&gt;Speriamo che la mia venga migrata prima di &lt;a href="http://www.peppedotnet.it/Blog/WPC2011.aspx" target="_blank" title="WPC 2011"&gt;WPC&lt;/a&gt; :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePointOnlineUpdates.aspx" /><issued>2011-10-13T21:0:6+01:00</issued><modified>2011-10-13T21:0:6+01:00</modified></entry><entry><title>Riassunto della SharePoint Conference 2011</title><id>/Blog/SharePointConference2011Recap.aspx</id><created>2011-10-10T19:14:26+01:00</created><content type="text/html" mode="escaped">Si è da poco conclusa la &lt;a href="http://www.mssharepointconference.com/Pages/default.aspx" title="SharePoint Conference 2011" target="_blank"&gt;SharePoint Conference 2011&lt;/a&gt; tenuta ad Anaheim (CA) e sono arrivati pian piano tutti i rumor per chi di noi non ha potuto partecipare (anche &lt;a href="http://www.sharepointcommunity.it" title="SharePointCommunity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; ha pubblicato qualche informazione, grazie a &lt;a href="http://blogs.devleap.com/paolo/archive/2011/10/03/sharepoint-conference-2011-anaheim-ca.aspx" title="Paolo Pialorsi" target="_blank"&gt;Paolo&lt;/a&gt; che era presente alla conferenza). Comunque, data la breve distanza dalla nascita di SharePoint 2010, ovviamente non c'erano tante novità riguardo il prodotto in se e non si è svelato tanto neanche riguardo il futuro. 
&lt;br /&gt;
&lt;br /&gt;Sembra infatti che la novità più grossa sia la location per la prossima SharePoint Conference: Las Vegas! :) 
&lt;br /&gt;
&lt;br /&gt;Scherzi a parte, una delle informazioni più importanti che sono state svelate è sicuramente il prossimo supporto ai Business Connectivity Services in Office 365, per quanto riguarda l'utilizzo di web service remoti (senza l'accesso diretto a SQL Server quindi). Una feature molto utile di cui SharePoint 2010 nella sua versione cloud risulta sprovvisto e che invece ci permetterà di integrare all'interno dei nostri siti SharePoint Online dei dati provenienti da archivi esterni, incrementando così le funzionalità come possiamo esporre in un'eventuale Extranet. 
&lt;br /&gt;
&lt;br /&gt;Inoltre, è stata dimostrata la duttilità e la potenza della nuova versione di SQL Server (codename "Denali") e della sua modalità "Always on", così da offrire una grandissima efficienza alle nostre farm SharePoint, in termini di disponibilità e di facilità in caso di disater recovery. 
&lt;br /&gt;
&lt;br /&gt;Poi, sono stati anunciati:&lt;ul&gt;&lt;li&gt;il rilascio di un tool veramente comodo per la costruzione di comandi powershell per SharePoint 2010, che potete trovare a questo indirizzo: 
&lt;br /&gt;&lt;a href="http://www.microsoft.com/resources/TechNet/en-us/Office/media/WindowsPowerShell/WindowsPowerShellCommandBuilder.html" title="PowerShell Command Builder for SharePoint 2010" target="_blank"&gt;http://www.microsoft.com/resources/TechNet/en-us/Office/media/WindowsPowerShell/WindowsPowerShellCommandBuilder.html&lt;/a&gt;
&lt;br /&gt; 
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;e il rilascio di un add-in per Visio in grado di aiutarvi nella costruzione di diagrammi a rappresentare le vostre farm SharePoint, che potete scaricare a questo indirizzo: 
&lt;br /&gt;&lt;a href="http://visio.microsoft.com/en-us/Templates_And_Downloads/Software_Add-ins/Pages/Visio-2010-Add-in-for-SharePoint-Network-Topology-Diagram.aspx" title="Visio add-in for SharePoint Network Topology" target="_blank"&gt;http://visio.microsoft.com/en-us/Templates_And_Downloads/Software_Add-ins/Pages/Visio-2010-Add-in-for-SharePoint-Network-Topology-Diagram.aspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Infine, ci sono anche novità per quanto riguarda il percorso di certificazioni, in quanto è stata aggiunta la "Microsoft Certified Architect" su SharePoint, ci cui potete trovare maggiori informazioni a questo indirizzo: &lt;a href="http://www.microsoft.com/learning/en/us/certification/architect-review.aspx" title="Microsoft Certified Architect su SharePoint" target="_blank"&gt;http://www.microsoft.com/learning/en/us/certification/architect-review.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Come vi dicevo, non è stata buttata tanta carne al fuoco.. vorrà dire che aspetteremo Las Vegas ;) 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePointConference2011Recap.aspx" /><issued>2011-10-10T19:14:26+01:00</issued><modified>2011-10-10T19:14:26+01:00</modified></entry><entry><title>Come installare SharePoint su Sql Server che risponde ad una porta diversa dalla 1433</title><id>/Blog/InstallSharePointOnCustomSqlServerPort.aspx</id><created>2011-9-29T19:30:27+01:00</created><content type="text/html" mode="escaped">Quando installate SharePoint (2007 o 2010 che sia) vi può capitare di dovervi connettere ad un'istanza di SQL Server in cui è stata cambiata la porta d'ascolto di default (la famosissima 1433) e, siccome il configuration wizard di SharePoint non ci permette di specificare su quale porta TCP effettuare la connessione al database, questo può diventare un vero e proprio problema. A me è capitato tempo fa da un cliente in cui avevano deciso di modificare la 1433, con SharePoint già installato e a pieno regime, senza dirmi un bel niente (il tutto chiaramente per tenermi in allenamento ;)
&lt;br /&gt;
&lt;br /&gt;Non sto a riportarvi gli errori dati dal configuration wizard o presenti all'interno dell'Event Viewer della macchina SharePoint (che possono essere comunque riportati sotto un generico "cannot connect to database"), ma cerco di venire subito alla soluzione. Grazie ad un fantastico tool che si chiama cliconfg.exe (o se volete "SQL Server Client Network Utility") avete la possibilità di istruire il driver che si collega a SQL Server dalla vostra macchina SharePoint in modo tale da utilizzare la porta custom che il vostro dba ha scelto. Per farlo, dobbiamo scrivere all'interno di "Start &gt; Esegui" la stringa "cliconfg.exe", scegliere di abilitare il protocollo TCP all'interno della scheda "General" 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/cliconfg1.jpg" alt="Come installare SharePoint su Sql Server che risponde ad una porta diversa dalla 1433" /&gt;
&lt;br /&gt;
&lt;br /&gt;e configurarlo così da specificare la porta custom con cui connettersi alla vostra istanza di SQL Server. 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/cliconfg2.jpg" alt="Come installare SharePoint su Sql Server che risponde ad una porta diversa dalla 1433" /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/cliconfg3.jpg" alt="Come installare SharePoint su Sql Server che risponde ad una porta diversa dalla 1433" /&gt;
&lt;br /&gt;
&lt;br /&gt;Questa utility vi può tornare molto utile anche durante eventuali migrazioni dei server di back-end di SharePoint, in quanto oltre a permettervi di modificare la porta con cui connettersi a SQL Server vi da anche la possibilità di specificare un alias per la vostra istanza SQL ed utilizzare quel nome in tutte le connessioni a partire dalla macchina che state configurando. Questo per evitare di cambiare il nome del server di back-end all'interno delle configurazioni di SharePoint, anche se effettivamente il database sta girando su una nuova macchina. 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Sql Server.aspx" title="TAG: Sql Server"&gt;Sql Server&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/InstallSharePointOnCustomSqlServerPort.aspx" /><issued>2011-9-29T19:30:27+01:00</issued><modified>2011-9-29T19:30:27+01:00</modified></entry><entry><title>Non riuscite ad aprire file tramite le Web App di SharePoint Online?</title><id>/Blog/CannotOpenWordDocsInBrowserOffice365.aspx</id><created>2011-9-21T13:3:36+01:00</created><content type="text/html" mode="escaped">Una volta acquistata una licenza di Office 365 (trial o a pagamento che sia), sono certo che una delle prime cose che vorrete testare con mano sono le Office Web Apps. Che cosa sono? Non sono nient'altro che delle applicazioni web che ci danno la possibilità di scrivere documenti Word, Excel, PowerPoint ecc.. direttamente dal browser o da altri dispositivi che sono quanto meno attaccati ad internet. Quindi, senza dover più avere installato in locale il pacchetto Office. Il tutto facente parte del pacchetto Office 365, di cui abbiamo già parlato. 
&lt;br /&gt;
&lt;br /&gt;Inoltre, sono altrettanto sicuro che la prima esperienza con le Office Web Apps sarà stato alquanto deludente per la maggior parte di voi. Io per primo (durante il periodo di beta del prodotto) sono entrato nel portale di Office 365 tutto bello contento, accedo alla site collection SharePoint Online che mi era stata creata in automatico in fase di registrazione, creo una document library, faccio click sul tasto "nuovo documento" e... PAM! Ecco quello che mi dice il browser: 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/webApps1.jpg" title="Non riuscite ad aprire file tramite le Web App di SharePoint Online?" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/webApps1_p.jpg" alt="Non riuscite ad aprire file tramite le Web App di SharePoint Online?" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Che delusione immensa.. :( 
&lt;br /&gt;
&lt;br /&gt;Vabbè dai, forse il mio browser (Internet Explorer 9 a 32bit) vorrà che io inserisca a mano il sito https://*.sharepoint.com all'interno dei siti trusted... 
&lt;br /&gt;
&lt;br /&gt;Neanche questo! In pratica anche inserendo il sito tra i siti trusted, l'unica cosa che ottenevo era aprire Word in locale senza la visualizzazione del warning che vi ho riportato. 
&lt;br /&gt;
&lt;br /&gt;Sempre più deluso (e ancora un po’ speranzoso di non esser stato fregato), provo a controllare i settings di SharePoint Online relativi alle Office Web Apps. Per prima cosa quindi, per controllare che effettivamente il servizio è stato installato con successo, controllate se è presente e soprattutto se è attiva la feature "Office Web Apps" a livello di site collection. 
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/webApps2.jpg" alt="Non riuscite ad aprire file tramite le Web App di SharePoint Online?" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/webApps2_p.jpg" alt="Non riuscite ad aprire file tramite le Web App di SharePoint Online?" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Fatto questo, come secondo (ed ultimo) controllo potete poi accertarvi che la feature "Apri documenti nelle applicazioni client per impostazione predefinita" (sempre a livello di site collection) NON sia abilitata. 
&lt;br /&gt;
&lt;br /&gt;Nel mio caso, entrambi i controlli sono andati a buon fine. Quindi inizio a pensare di provare a cambiar browser.. Chrome non era ancora supportato, Firefox al momento non ce l'avevo installato sulla mia macchina e quindi mi sono buttato per disperazione sulla versione di &lt;b&gt;Internet Explorer 9 a 64 bit&lt;/b&gt;. 
&lt;br /&gt;Con grande stupore, al posto del warning di cui sopra (che iniziavo un po’ ad odiare) ecco apparire il form web per la scelta del nuovo nome di documento! 
&lt;br /&gt;
&lt;br /&gt;Ora, &lt;a href="http://onlinehelp.microsoft.com/office365-enterprises/it-it/ff652534.aspx" title="Documentazione Office 365" target="_blank"&gt;nella documentazione&lt;/a&gt; non ne parlano di questo funzionamento (come vedete non riportano la versione di Internet Explorer 9 da utilizzare) ed io &lt;a href="http://www.peppedotnet.it/Blog/Office365BrowsersCompatibility.aspx" title="Office 365 browsers compatibility" target="_blank"&gt;nelle mie prove di un tempo&lt;/a&gt;, non avevo notato la cosa. 
&lt;br /&gt;
&lt;br /&gt;Spero possa esser utilie a qualcuno. 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office Web Apps.aspx" title="TAG: Office Web Apps"&gt;Office Web Apps&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/CannotOpenWordDocsInBrowserOffice365.aspx" /><issued>2011-9-21T13:3:36+01:00</issued><modified>2011-9-21T13:3:36+01:00</modified></entry><entry><title>Come installare il Service Pack 1 di SharePoint 2010</title><id>/Blog/HowToInstallSharePoint2010ServicePack1.aspx</id><created>2011-8-9T15:15:57+01:00</created><content type="text/html" mode="escaped">&lt;div style="margin-left: 10px; float: right;"&gt;&lt;a title="SharePointCommunity.it - La community italiana per i professionisti SharePoint" href="http://www.sharepointcommunity.it" target="_blank"&gt;&lt;img alt="SharePointCommunity.it - La community italiana per i professionisti SharePoint" src="http://www.peppedotnet.it/Images/spCommunity.jpg"&gt;&lt;/a&gt;&lt;/div&gt;Ciao a tutti!
&lt;br /&gt;Vi lascio qui una bella lettura per la vostra estate.. &lt;a href="http://www.sharepointinside.it" title="Francesco Sodano" target="_blank"&gt;Francesco Sodano&lt;/a&gt; ha scritto una serie di articoli ben dettagliati che vi spiegano le notivtà introdotte e tutti i passi per installare il &lt;a href="http://www.peppedotnet.it/Blog/SharePoint2010ServicePack1AvailableForDownload.aspx" title="Service Pack 1 di SharePoint 2010" target="_blank"&gt;Service Pack 1 di SharePoint 2010&lt;/a&gt;. Potete trovare questi articoli all'interno del sito di SharePointCommunity.
&lt;br /&gt;Ecco qua i link diretti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=32" title="Parte 1: Informazioni preliminari" target="_blank"&gt;Parte 1: Informazioni preliminari&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=33" title="Parte 2: Le perle nascoste nella SP1 e nel June 2011 CU" target="_blank"&gt;Parte 2: Le perle nascoste nella SP1 e nel June 2011 CU&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=34" title="Parte 3: Installazione della SP1 e del June 2011 Cumulative Update" target="_blank"&gt;Parte 3: Installazione della SP1 e del June 2011 Cumulative Update&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=35" title="Parte 4: Creazione DVD slipstream con SP1" target="_blank"&gt;Parte 4: Creazione DVD slipstream con SP1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Buona lettura ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Service Pack.aspx" title="TAG: Service Pack"&gt;Service Pack&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToInstallSharePoint2010ServicePack1.aspx" /><issued>2011-8-9T15:15:57+01:00</issued><modified>2011-8-9T15:15:57+01:00</modified></entry><entry><title>Sviluppo di Web Part in SharePoint 2010</title><id>/Blog/WebPartInSharePoint2010HowToVideo.aspx</id><created>2011-7-18T21:24:8+01:00</created><content type="text/html" mode="escaped">Continua il nostro &lt;a href="http://www.peppedotnet.it/Blog/VideoAboutSharePoint2010Development.aspx" title="Percorso formativo per lo sviluppo su SharePoint 2010" target="_blank"&gt;percorso&lt;/a&gt; di sviluppo su SharePoint 2010. Dopo una breve panoramica, passiamo allo sviluppo di uno dei componenti da sempre più utilizzati all'interno di SharePoint: le web part!
&lt;br /&gt;In sostanza una web part non è altro che un pezzo di pagina. Vista così è un concetto di facile apprendimento per tutti, senza mettersi subito a parlare di cose "complicate"..
&lt;br /&gt;Nel video, vedremo che possiamo sviluppare sia delle web part partendo da un designer grafico (integrato all'interno di Visual Studio 2010) sia utilizzando direttamente il nostro linguaggio di programmazione preferito (nel mio caso C#).
&lt;br /&gt;Ecco il link diretto al video.
&lt;br /&gt;
&lt;br /&gt;&lt;a title="SharePoint 2010: sviluppo di web part" href="http://www.microsoft.com/italy/beit/Msdn.aspx?video=SharePoint-201035WebPart" target="_blank"&gt;&lt;img alt="SharePoint 2010: sviluppo di web part" src="http://www.peppedotnet.it/Images/BEIT_1.png"&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete poi, potete scaricare i sorgenti che ho scritto per registrare i video. Ecco quelli legati a questo video:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/BEIT_Demo3.zip" title="Sorgenti del video SharePoint 2010: sviluppo di web part" target="_blank"&gt;BEIT_Demo3.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;E se volete invece riguardarvi gli altri, ecco qua la lista:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="SharePoint 2010: introduzione per gli sviluppatori" href="http://www.microsoft.com/italy/beit/Msdn.aspx?video=SharePoint-201035introduzione-per-gli-sviluppatori" target="_blank"&gt;Introduzione alle novità di SharePoint 2010 per sviluppatori&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;Il modello ad oggetti di SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/italy/beit/Msdn.aspx?video=SharePoint-201035WebPart" title="Sviluppo di Web Part" target="_blank"&gt;Sviluppo di Web Part&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;Introduzione al modello ad oggetti client-side (Peppe)&lt;ul&gt;&lt;li&gt;Modello per applicazioni .NET&lt;/li&gt;&lt;li&gt;Modello per applicazioni Silverlight&lt;/li&gt;&lt;li&gt;Modello per personalizzazioni Javascript&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;I REST services di SharePoint 2010 (Peppe)&lt;/li&gt;&lt;li&gt;Personalizzazione della barra dei Ribbon (Peppe)&lt;/li&gt;&lt;li&gt;LINQ to SharePoint (Paolo)&lt;/li&gt;&lt;li&gt;Data Provisioning (Peppe)&lt;/li&gt;Sviluppo di campi custom (Peppe)&lt;li&gt;Introduzione ai Business Connectivity Services (Peppe)&lt;/li&gt;&lt;li&gt;Sandbox Solutions in SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;Workflow con SharePoint 2010 e Visual Studio 2010 (Paolo)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/BeIT.aspx" title="TAG: BeIT"&gt;BeIT&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/WebPartInSharePoint2010HowToVideo.aspx" /><issued>2011-7-18T21:24:8+01:00</issued><modified>2011-7-18T21:24:8+01:00</modified></entry><entry><title>SharePoint 2010 and Windows Azure training course</title><id>/Blog/SharePoint2010AndWindowsAzureTrainingCourse.aspx</id><created>2011-7-12T16:41:48+01:00</created><content type="text/html" mode="escaped">Ciao a tutti.
&lt;br /&gt;In questo caldo infernale, vi segnalato che è disponibile da pochissime ore un training course per l'integrazione tra la piattaforma Windows Azure e SharePoint 2010.
&lt;br /&gt;Questo il link diretto:
&lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/spazuretrainingcourse" title="SharePoint 2010 and Windows Azure training course" target="_blank"&gt;http://msdn.microsoft.com/en-us/spazuretrainingcourse&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Vi ricordo inoltre che, se volete entrare un pò più nei dettagli delle possibili integrazioni tra i due prodotti Micorsoft, potete trovare su questo sito le mie slide e le demo utilizzate all'Azure Day 2011:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/Blog/SlideAndDemosOfSharePoint2010AndAzureSession.aspx" title="Slide e demo utilizzate durante l'Azure Day 2011" target="_blank"&gt;http://www.peppedotnet.it/Blog/SlideAndDemosOfSharePoint2010AndAzureSession.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Windows Azure.aspx" title="TAG: Windows Azure"&gt;Windows Azure&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010AndWindowsAzureTrainingCourse.aspx" /><issued>2011-7-12T16:41:48+01:00</issued><modified>2011-7-12T16:41:48+01:00</modified></entry><entry><title>Le modifiche alle API di SharePoint 2010 dopo il Service Pack 1</title><id>/Blog/SharePoint2010ApiChangesAfterSP1.aspx</id><created>2011-7-11T10:19:49+01:00</created><content type="text/html" mode="escaped">Dopo l'annuncio della disponibilità di download del &lt;a href="http://www.peppedotnet.it/Blog/SharePoint2010ServicePack1AvailableForDownload.aspx" title="Service Pack 1 di SharePoint 2010" target="_blank"&gt;Service Pack 1 di SharePoint 2010&lt;/a&gt;, ecco disponibili i membri aggiunti e quelli modificati, presenti all'inteno degli assembly del modello ad oggetti server side.
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Microsoft.SharePoint.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.SPRecycleBinItemType&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New enum value:&lt;ul&gt;&lt;li&gt;&lt;em&gt;Web&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.SPWeb&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public void Recycle()&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Strings&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New constants:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public const string CannotRecycleRootWeb&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string HealthRule_Explanation_BcsShimsAreEnabled&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string HealthRule_Remedy_BcsShimsAreEnabled&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string RecycleBinWebMissingContainerError&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string SPStorageMetricsProcessingJobDescription &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string SPUsageUserCodeRequestsDescription &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string SPUsageUserCodeRequestsMonitoredDataDescription&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string SiteAlreadyExists&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string StorageMetricsDBObjectsNotFound&lt;/em&gt; &lt;/li&gt;
&lt;br /&gt;&lt;li&gt;&lt;em&gt;public const string StorageMetricsFreshnessWarning&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string StorageMetricsNotAvailable&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public const string TimerJobTitleStorageMetricsProcessing&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPAce&lt;T&gt;&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New properties:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public Byte[] BinaryId() { get; }&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public Microsoft.SharePoint.Administration.SPIdentifierType BinaryIdType() { get; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPAcl&lt;T&gt;&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;public SPAce&lt;T&gt; Add(string principalName, string displayName, SPIdentifierType identifierType, byte[] identifier, T grantRightsMask, T denyRightsMask)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPContentDatabase&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public Microsoft.SharePoint.Administration.SPDeletedSite GetDeletedSite(System.Guid id)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public void Move(SPContentDatabase destinationDb, List&lt;SPSite&gt; sitesToMove, Dictionary&lt;string, string&gt; rbsProviderMap, out Dictionary&lt;SPSite, string&gt; failedSites)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPContentDatabaseCollection&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public SPContentDatabase Add(string strDatabaseServer, string strDatabaseName, string strDatabaseUsername, string strDatabasePassword, int warningSiteCount, int maximumSiteCount, int status, bool flushChangeLog, bool changeSyncKnowledge)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPDatabase&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public void ChangeDatabaseInstance(string databaseServiceInstance)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPIncomingEmailService&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public int RetryDeliveryInterval { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPPolicy&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected Void OnDeserialization()&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPSiteLookupProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;Changed method (breaking change!)&lt;ul&gt;&lt;li&gt;&lt;em&gt;public Void RenameHostHeaderSite(Guid siteId, string newHostHeader)&lt;/em&gt; =&gt; &lt;em&gt;public Void RenameHostHeaderSite(Guid siteId, Uri newHostHeaderSiteUri)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPUsageApplication&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public int UsageInsertionTimeOut { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPUserCodeExecutionTier&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public int PriorityPerProcess { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPWebApplication&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New properties:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public int StorageMetricsProcessingDuration { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public uint MaxDiscussionBoardItemsForSiteDataFolderQuery { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public uint? UserDefinedWorkflowMaximumComplexity { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public SPDeletedSiteCollection GetDeletedSites()&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public SPDeletedSiteCollection GetDeletedSites(SPDeletedSiteQuery query)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public SPDeletedSiteCollection GetDeletedSites(Guid siteId)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public SPDeletedSiteCollection GetDeletedSites(string sitePath)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public void MigrateUsers(IMigrateUserCallback callback)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.SPWebService&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New properties:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public int ImagingDownloadSizeLimit { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public bool EnableHostHeaderSiteBasedSchemeSelection { get; set; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPActiveDirectoryClaimProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected override void FillDefaultLocalizedDisplayName(CultureInfo culture, out string localizedName)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPAllUserClaimProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected override void FillDefaultLocalizedDisplayName(CultureInfo culture, out string localizedName)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPClaimHierarchyProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected override void FillDefaultLocalizedDisplayName(CultureInfo culture, out string localizedName)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public string GetLocalizedDisplayName()&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPClaimProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public virtual bool SupportsUserKey { get; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected override void FillDefaultLocalizedDisplayName(CultureInfo culture, out string localizedName)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public string GetLocalizedDisplayName()&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public SPClaim UserKeyForEntity(SPClaim entity)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public virtual string GetClaimTypeForUserKey()&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;protected virtual SPClaim GetUserKeyForEntity(SPClaim entity)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPClaimProviderDefinition&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public bool IsVisible { get; set; }&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPClaimProviderOperationOptions&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New enum value:&lt;ul&gt;&lt;li&gt;&lt;em&gt;OverrideVisibleFlag&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPFormsClaimProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected override void FillDefaultLocalizedDisplayName(CultureInfo culture, out string localizedName)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Administration.Claims.SPSystemClaimProvider&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected override void FillDefaultLocalizedDisplayName(CultureInfo culture, out string localizedName&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.BusinessData.Administration.LobSystem&lt;/em&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;New static method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public static LobSystem MergeXml(string xml, out string[] errors, PackageContents packageContents, AdministrationMetadataCatalog metadataCatalog, string settingId)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.BusinessData.Administration.TypeDescriptor&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New static method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public static TypeDescriptor MergeXml(string xml, out string[] errors, PackageContents packageContents, Parameter parameter, TypeDescriptor parent, string settingId)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.BusinessData.SharedService.BdcServiceApplicationProxy&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public bool IsSystemTypeEnabled(SystemType systemType)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public void EnableSystemType(SystemType systemType, bool value)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.JSGrid.GridSerializer&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public void ApplyPostViewIncrementalInsertsAndDeletes(IEnumerable changes, Func&lt;/em&gt;&gt; fnGetDefaultValuesForPostViewInserts) &lt;/OBJECT,&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.JSGrid.HierarchyNode&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public HierarchyNode Parent { get; set; }&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Utilities.SPUtility&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New static method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public static Stream ExecuteCellStorageBinaryRequest(SPFile spfile, Stream request, bool coalesce, ref Guid partitionID, string userName, bool coauthVersioning, string etagMatching, bool fExpectNoFileExists, string contentChangeUnit, string clientFileID, string bypassSchemaID, long nLockType, string lockID, long nTimeout, bool createParentFolder, out string etagReturn, out bool allRequestSucceeded, out int coalesceHRESULT, out string coalesceErrorMessage, out bool containHotboxData, out bool haveOnlyDemotionChanges, ref int binaryReqCountQuota)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.WebPartPages.ListFormWebPart&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public bool ShouldSerializeTemplateName()&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em  style="text-decoration: underline"&gt;New classes:&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPDeletedSite&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPDeletedSiteCollection&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPDeletedSiteLookupInfo&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPDeletedSiteQuery&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPUsageUserCodeRequests&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPUsageUserCodeRequestsEntry&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPUsageUserCodeRequestsMonitoredData&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPUsageUserCodeRequestsMonitoredDataEntry&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.Health.SPHealthAnalysisRuleInstance&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.WebControls.IEVersionMetaTag&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em  style="text-decoration: underline"&gt;New enum types:&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.SPIdentifierType&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em  style="text-decoration: underline"&gt;New interfaces:&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.IMigrateUserCallback&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.Administration.ISPSiteLookupProviderRecycleBin&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Microsoft.SharePoint.Publishing.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Publishing.Internal.CodeBehind&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected bool IsCurrentUserSiteAdmin { get; }&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Publishing.WebControls.SpellCheckV4Action&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected bool ShouldRenderWithoutTabs()&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Publishing.WebControls.EditingMenuActions.ConsoleAction&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;protected bool ShouldRenderWithoutTabs()&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Microsoft.SharePoint.Taxonomy.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.SharePoint.Taxonomy.TermStore&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public Group GetSiteCollectionGroup(SPSite currentSite)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Microsoft.SharePoint.Portal.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.UserProfiles.UserProfileService&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public void AddLeader(string accountName)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public Leader[] GetLeaders()&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public void RemoveLeader(string accountName)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Microsoft.Office.Server.UserProfiles.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.SocialData.PluggableSocialSecurityTrimmerManager&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public static string[] GetUrlFoldersRequiringTrim(SPServiceContext serviceContext)&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;public static string[] GetUrlFoldersToAlwaysAllow(SPServiceContext serviceContext)&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;public static void SetTrimmerSettings(SPServiceContext serviceContext, bool enableTrimming)&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;public static void SetTrimmerSettings(SPServiceContext serviceContext, string[] urlFoldersRequiringTrim, string[] urlFoldersToAlwaysAllow)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.UserProfiles.BusinessDataCatalogConnection&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public void Delete()&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.UserProfiles.ConnectionManager&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public DirectoryServiceConnection AddActiveDirectoryConnection(ConnectionType type, string displayName, string server, bool useSSL, string accountDomain, string accountUsername, SecureString accountPassword, List&lt;DirectoryServiceNamingContext&gt; namingContexts, string spsClaimProviderTypeValue, string spsClaimProviderIdValue, string adClaimIDMapAttribute)&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.UserProfiles.UserProfileManager&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New methods:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public void AddLeader(string accountName)&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public Leader[] GetLeaders()&lt;/em&gt; &lt;/li&gt;&lt;li&gt;&lt;em&gt;public void RemoveLeader(string accountName)&lt;/em&gt; &lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em  style="text-decoration: underline"&gt;New classes:&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Microsoft.Office.Server.UserProfiles.Leader&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Microsoft.Office.Server.Search.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.Search.Administration.CrawlTopologyState&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New enum values:&lt;ul&gt;&lt;li&gt;&lt;em&gt;ActiveToBeRemoved&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;DeactivatingToBeRemoved&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.Search.Administration.SearchServiceApplication&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public uint CrawlLogCleanupIntervalInDays { get; set; }&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public LocationConfigurationCollection LocationConfigurations { get; }&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.Search.Query.QueryInfo&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New property:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public string CorrelationId { get; set; }&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;em style="text-decoration: underline"&gt;Microsoft.Office.Server.Search.Query.QueryManager&lt;/em&gt;&lt;ul&gt;&lt;li&gt;New method:&lt;ul&gt;&lt;li&gt;&lt;em&gt;public System.Xml.XmlDocument GetResults()&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Microsoft.SharePoint.PowerShell.dll&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;em  style="text-decoration: underline"&gt;New classes:&lt;/em&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.PowerShell.SPDeletedSitePipeBind&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;Microsoft.SharePoint.PowerShell.SPHealthAnalysisRuleInstancePipeBind&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Buona ispezione! ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Service Pack.aspx" title="TAG: Service Pack"&gt;Service Pack&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Object Model.aspx" title="TAG: Object Model"&gt;Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010ApiChangesAfterSP1.aspx" /><issued>2011-7-11T10:19:49+01:00</issued><modified>2011-7-11T10:19:49+01:00</modified></entry><entry><title>Microsoft SharePoint MVP per il secondo anno di fila</title><id>/Blog/MicrosoftSharePointMVPSecondYearInArow.aspx</id><created>2011-7-1T17:10:26+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 10px; float: right;" alt="Microsoft SharePoint MVP" src="http://www.peppedotnet.it/Images/mvp2.jpg"&gt;Ho appena ricevuto la conferma.. &lt;b&gt;sono stato nominato Microsoft SharePoint MVP per il secondo anno di fila&lt;/b&gt;!! E dire che sono contento è poco!! :)
&lt;br /&gt;
&lt;br /&gt;E' stata una giornata veramente elettrizzante anche questa di quest'anno, non credevo. Aspettare LA MAIL è davvero qualcosa di unico.
&lt;br /&gt;Dall'&lt;a href="http://www.peppedotnet.it/Blog/MicrosoftSharePointMVP.aspx" title="Microsoft SharePoint MVP" target="_blank"&gt;anno scorso&lt;/a&gt; ne son successe di cose.. e devo dire che il mio e di chi è con me, è stato proprio un bell'anno.
&lt;br /&gt;Ho fatto una miriade di nuove esperienze tutte veramente utili, ho partecipato a tantissime iniziative di Microsoft e di varie community, sono stato in un sacco di posti (Napoli, Milano, Roma, Bologna, Padova) dove ho conosciuto tantissime nuove persone, molte delle quali veramente splendide. 
&lt;br /&gt;E penso che questa sia stata la cosa più bella del programma. La passione per quel che facciamo e che ci raggruppa tutti, da ogni parte d'Italia o del mondo, è proprio bella.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/MVP.aspx" title="TAG: MVP"&gt;MVP&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Community.aspx" title="TAG: Community"&gt;Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MicrosoftSharePointMVPSecondYearInArow.aspx" /><issued>2011-7-1T17:10:26+01:00</issued><modified>2011-7-1T17:10:26+01:00</modified></entry><entry><title>Service Pack 1 per SharePoint 2010 disponibile per il download</title><id>/Blog/SharePoint2010ServicePack1AvailableForDownload.aspx</id><created>2011-6-29T9:29:26+01:00</created><content type="text/html" mode="escaped">Da ieri (28/06/2011), assieme al lancio di Office 365 è stato reso disponibile per il download pubblico il Service Pack 1 per SharePoint 2010 (assieme a quello per la suite Office 2010,). Potete scaircarlo seguendo questo indirizzo:
&lt;br /&gt;&lt;a href="http://technet.microsoft.com/it-it/office/ee748587.aspx" title="Download SharePoint 2010 Service Pack 1" target="_blank"&gt;http://technet.microsoft.com/it-it/office/ee748587.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Blog/AnnouncedSharePoint2010SP1.aspx" title="Anunciato il Service Pack 1 di SharePoint 2010" target="_blank"&gt;Come dicevamo&lt;/a&gt;, questo primo Service Pack della famiglia dei prodotti Office 2010 (per quanto riguarda SharePoint chiaramente), oltre a correggere un bel pò di cose qua e la, vede anche la presenza di alcune aggiunte:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Il pieno supporto per Internet Explorer 9 e per Google Chrome sia di SharePoint 2010 che delle Office Web Applications&lt;/li&gt;&lt;li&gt;La possibilità di recuperare siti cancellati dal cestino (ad oggi era possibile solo per liste, document libray e singoli elementi)&lt;/li&gt;&lt;li&gt;La possibilità di ricercare all'interno dei file PPSX&lt;/li&gt;&lt;li&gt;Un nuovo comando Powershell per spostare una site collection da un database di contenuti all'altro (comando "Move-SPSite")&lt;/li&gt;&lt;li&gt;Funzionalità aggiuntive e avanzate per quanto riguarda la parte di backcup e restore&lt;/li&gt;&lt;li&gt;Ripristino della pagina StoreMan.asxp (per gestione dello storage)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Ci sono alcune cose cui dovete stare attenti però..
&lt;br /&gt;
&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Per prima cosa, al posto di partire direttamente con l'installazione del service pack, dovete leggere per bene questa KB Microsoft così da conoscere tutti i problemi noti che potete avere durante tutto il processo:
&lt;br /&gt;- &lt;a href="http://support.microsoft.com/kb/2532126" title="Problemi noti durante l'installazione di Office 2010 SP1 e SharePoint 2010 SP1" target="_blank"&gt;http://support.microsoft.com/kb/2532126&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Poi, subito dopo aver installato il Service Pack 1, dovete correre ad installare il pacchetto cumulativo di update di giugno. Lo trovate a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2536599" title="June 2011 Cumulative Update" target="_blank"&gt;http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2536599&lt;/a&gt;
&lt;br /&gt;Questo perchè sono stati rilasciati degli aggiornamenti e degli hotfix molto importanti che però non sono stati inseriti all'interno del Service Pack 1.&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Per l'ordine di installazione ed ulteriori informazioni, vi rimando direttamente al blog del team di SharePoint 2010:
&lt;br /&gt;&lt;a href="http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=984" title="SharePoint 2010 Team Blog" target="_blank"&gt;http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=984&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Mi raccomando, seguite bene tutte le KB prima di partire con l'installazione.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Service Pack.aspx" title="TAG: Service Pack"&gt;Service Pack&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010ServicePack1AvailableForDownload.aspx" /><issued>2011-6-29T9:29:26+01:00</issued><modified>2011-6-29T9:29:26+01:00</modified></entry><entry><title>Cosa possiamo sviluppare in SharePoint Online (Office 365)</title><id>/Blog/DevelopingForSharePointOnlineOffice365.aspx</id><created>2011-6-23T14:3:27+01:00</created><content type="text/html" mode="escaped">&lt;a title="Microsoft Office 365" href="http://office365.microsoft.com" target="_blank"&gt;&lt;img style="margin: 10px; float: right;" alt="Microsoft Office 365" src="http://www.peppedotnet.it/Images/office365.jpg"&gt;&lt;/a&gt;Non abbiamo ancora mai parlato di come sviluppare per SharePoint Online, la piattaforma di collaborazione Microsoft offerta all'interno del pacchetto Office 365. Abbiamo visto &lt;a href="http://www.peppedotnet.it/Blog/InstallSilverlightAppsInOffice365SharePointOnline.aspx" title="Come installare un'applicazione Silverlight all'interno di SharePoint Online" target="_blank"&gt;come possiamo installare un'applicazione Silverlight&lt;/a&gt;, attraverso una SandBox solution, ma niente di più, quindi direi che è proprio il caso di iniziare perchè il 29 giugno SharePoint Online verrà ufficialmente lanciato al pubblico ed è meglio esser preparati.
&lt;br /&gt;In SharePoint Online la cosa più importante che dobbiamo sapere è che ogni personalizzazione la dobbiamo scrivere e installare utilizzando le soluzioni di tipo SandBox. Quindi, togliamoci subito dalla testa tutte le cose che possiamo fare tramite le Farm Solutions (visual web part, application page, ecc..).
&lt;br /&gt;Altra cosa importante è che non possiamo fare debug all'interno di SharePoint Online, quindi dobbiamo prima sviluppare le nostre personalizzazioni in locale e poi possiamo procedere con l'installazione sul cloud.
&lt;br /&gt;Per il resto, le funzionalità che abbiamo a disposizione noi sviluppatori sono esattamente le stesse con cui siamo stati abituati fin'ora utilizzando le installazioni di SharePoint 2010 in locale.
&lt;br /&gt;Riguardo ai limiti detti, ecco quindi che all'interno di Visual Studio 2010 ci è data la possibilità di utilizzare solamente le seguenti tipologie di progetti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Empty projects (in cui però possiamo inserire solamente alcuni tipi di elementi)&lt;/li&gt;&lt;li&gt;List Definition projects&lt;/li&gt;&lt;li&gt;Event Receiver projects&lt;/li&gt;&lt;li&gt;Content Type projects&lt;/li&gt;&lt;li&gt;&lt;/ul&gt;
&lt;br /&gt;Di conseguenza, non possiamo creare nuovi progetti attraverso i template:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Site Definition projects &lt;/li&gt;&lt;li&gt;Business Data Connectivity service model projects&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Chiaramente poi, all'interno dei template di progetto "supportati" abbiamo un insieme ridotto di template di element che possiamo utilizzare all’interno della nostra soluzione Sandox. Questo insieme esclude tutti gli artefatti che necessitano un'installazione all'interno della SharePoint root o all'interno della Central Administration di SharePoint.
&lt;br /&gt;Ecco quindi che, all'interno di una soluzione Sandbox per SharePoint Online possiamo utilizzare solamente questi template di elemento:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Web Parts&lt;/li&gt;&lt;li&gt;List definitions&lt;/li&gt;&lt;li&gt;Event receivers&lt;/li&gt;&lt;li&gt;Content types&lt;/li&gt;&lt;li&gt;Visual Web Parts (solamente la versione Sandbox che potete usare scaricando i Visual Studio 2010 SharePoint Power Tools)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Mentre invece restano esclusi i progetti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Visual Web Parts (standard)&lt;/li&gt;&lt;li&gt;Application pages&lt;/li&gt;&lt;li&gt;BDC models&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Proprio perchè tutte e tre le tipologie di template di elemento, necessitano dell'installazione di alcuni dei loro file all'interno della SharePoint root (percorso "14" per intenderci) o dell'esecuzione di alcune operazioni tramite la Central Administration a cui, in SharePoint Online, non possiamo accedere in quanto tutti i tool e in generale i concetti legati alla Farm di SharePoint non sono più affar nostro.
&lt;br /&gt;Infine, dovete tenere bene a mente che sviluppando delle Sandbox solution non avete a disposizione tutto un'insieme di classi del modello ad oggetti di SharePoint 2010 che in installazioni on-premises siete sempre stati abituati ad utilizzare. Questo insieme è composto da tutte le classi che rappresentano oggetti che stanno al di fuori del concetto di site collection corrente.
&lt;br /&gt;Per esempio, non è possibile istanziare un nuovo oggetto di tipo SPSite, specificando l'url di una site collection diversa da quella corrente come parametro principale. Oppure, non è possibile utilizzare alcuni metodi della classe HttpWebRequest (in quanto effettuano delle operazioni  http nel contesto esterno alla site collection corrente di SharePoint) o effettuare delle query a database SQL Server o di altro tipo.
&lt;br /&gt;Se, in fase di sviluppo, volete un piccolo aiuto per quanto riguarda le classi e i metodi che potete o non potete utilizzare all'interno della vostra soluzione Sandbox per SharePoint Online, vi consiglio di installare i Visual Studio 2010 SharePoint Power Tools che potete scaricare seguendo questo indirizzo:
&lt;br /&gt;&lt;a href="http://visualstudiogallery.msdn.microsoft.com/8e602a8c-6714-4549-9e95-f3700344b0d9" title="Visual Studio 2010 SharePoint Power Tools" taget="_blank"&gt;http://visualstudiogallery.msdn.microsoft.com/8e602a8c-6714-4549-9e95-f3700344b0d9&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Il pacchetto contiene due feature molto utili per sviluppare per SharePoint Online:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La già citata Sandboxed-compatible Visual Web Part – che vi permette di scrivere web part utilizzando un designer grafico.&lt;/li&gt;&lt;li&gt;La compilazione per soluzioni Sandbox (Sandbox compilation) – che vi aiuta, in fase di compilazione, a capire quali sono le classi e i metodi che potete utilizzare all'interno di una soluzione sandbox.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Detto questo, vi ricordo che potete ancora effettuare le vostre prove accedendo alla versione Beta di Office 365 iscrivendovi al programma attraverso il sito &lt;a href="http://www.office365.com" title="Officer65.com" target="_blank"&gt;www.office365.com&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/DevelopingForSharePointOnlineOffice365.aspx" /><issued>2011-6-23T14:3:27+01:00</issued><modified>2011-6-23T14:3:27+01:00</modified></entry><entry><title>Gestire gli event receiver di SharePoint 2010 tramite PowerShell</title><id>/Blog/SharePoint2010EventReceiverThroughPowershell.aspx</id><created>2011-6-20T9:7:11+01:00</created><content type="text/html" mode="escaped">Il concetto degli event receiver dovrebbe essere ormai famigliare a tutti gli sviluppatori SharePoint, dato che ne potevamo sfruttare le potenzialità già da SharePoint Portal Server 2003/WSS 2.
&lt;br /&gt;In linea di massima, scrivere un event receiver non è mai stato difficile. C'è sempre stata una classe da cui ereditare, e uno o più metodi da sovrascrivere e di cui pensare l'implementazione.
&lt;br /&gt;La rottura di scatole (permettetemi il termine) è sempre stata invece l'associazione del nostro event receiver custom a liste o document library.
&lt;br /&gt;
&lt;br /&gt;Se non mi credete, torniamo un pò indietro nella storia..
&lt;br /&gt;
&lt;br /&gt;&lt;span style="text-decoration: underline"&gt;Windows SharePoint Services 2.0 / SharePoint Portal Server 2003&lt;/span&gt;
&lt;br /&gt;Per legare del codice custom a qualche evento di una document library (e SOLO di una document library, perchè sulle liste non erano ancora stati implementati), si doveva modificare dei settings all'interno delle pagine di amministrazione di SharePoint e in quelle di configurazione della document library, sperando di non sbagliare il nome completo dell'assembly che conteneva il nostro receiver e il nome completo del tipo.
&lt;br /&gt;Ecco qua la documentazione che lo dimostra: &lt;a href="http://technet.microsoft.com/en-us/library/cc288968(office.12).aspx" title="Binding to a Document Library Event Handler (Windows SharePoint Services 2.0)" target="_blank"&gt;http://technet.microsoft.com/en-us/library/cc288968(office.12).aspx&lt;/a&gt;
&lt;br /&gt;Lo so.. erano bei tempi :)
&lt;br /&gt;
&lt;br /&gt;&lt;span style="text-decoration: underline"&gt;Windows SharePoint Service 3.0 / MOSS 2007&lt;/span&gt;
&lt;br /&gt;Ora possiamo avere receiver anche su liste, abbiamo molte operazioni in più da poter gestire e due diverse tipologie di associazione del receiver alla relativa lista o document library:
&lt;br /&gt;- associazione tramite una feature
&lt;br /&gt;- associazione tramite il modello ad oggetti di SharePoint
&lt;br /&gt;Al tempo, erano stati dei grandissimi passi avanti!
&lt;br /&gt;La rottura di scatole però era che non avevamo template per farci generare il codice di associazione e, per legare velocemente un receiver custom ad una lista, finivamo puntualmente per scrivere l'ennesima console application da dover lanciare a mano sulla macchina SharePoint. Questo fino a che non sono stati rilasciati su codeplex alcuni tool fantastici come &lt;a href="http://speventhandlermanage.codeplex.com/" title="SharePoint Event Handler Manager" target="_blanK"&gt;SharePoint Event Handler Manger&lt;/a&gt;, &lt;a href="http://thesharedcontext.codeplex.com/" title="SharePoint Event Handler Management Extensions for STSADM" target="_blank"&gt;SharePoint Event Handler Management Extensions for STSADM&lt;/a&gt; e &lt;a href="http://speventsmanager.codeplex.com/" title="SharePont Events Manager" target="_blank"&gt;SharePoint Events Manager&lt;/a&gt;.
&lt;br /&gt;Per chi ha ancora a che fare con SharePoint 2007, potete fare riferiemento a questo mio articolo:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/Articoli/Wss3EventHandlers.aspx" title="WSS 3.0 event handlers" target="_blank"&gt;http://www.peppedotnet.it/Articoli/Wss3EventHandlers.aspx&lt;/a&gt;
&lt;br /&gt;e a queste pagine della documentazione Microsoft:
&lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163318.aspx" title="Events in SharePoint 2007" target="_blank"&gt;http://msdn.microsoft.com/en-us/magazine/cc163318.aspx&lt;/a&gt;
&lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ms463479.aspx" title="What's New with Event Handlers" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms463479.aspx&lt;/a&gt;
&lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ms475328(v=office.12).aspx" title="Registering an Event Handler" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms475328(v=office.12).aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style="text-decoration: underline"&gt;SharePoint 2010&lt;/span&gt;
&lt;br /&gt;Eccoci al presente.. oggi possiamo legare del codice custom a siti, site collection, liste, elementi, documenti, content type, feature e workflow. Spero proprio che possa bastarvi :)
&lt;br /&gt;I metodi di associazione che avevamo disponibili in SharePoint 2007 sono tutti mantenuti.
&lt;br /&gt;Abbiamo un template specifico per la creazione di un event receiver da Visual Studio 2010.
&lt;br /&gt;E, grazie all'integrazione con PowerShell, possiamo registrare al volo event receiver su oggetti all'interno di SharePoint senza dover scrivere feature o console application. Il che, almeno dal mio punto di vista, è fantastico perchè ho a disposizione una vera e propria console di scripting che nel mio caso uso per aggiungere, togliere, modificare le associazioni dei miei event receiver, ma che posso utilizzare per fare qualsiasi cosa io desidiri sui miei siti SharePoint, senza dover compilare nessun progetto o scrivere codice XML di provisioning.
&lt;br /&gt;
&lt;br /&gt;Ecco qundi che volendo aggiungere un nuovo event receiver su una lista SharePoint, mi basta aprire PowerShell dal menu dei programmi sotto la voce "Microsoft SharePoint 2010 Products" e scrivere questo script:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;$web = Get-SPWeb -Identity http:&lt;span style="color: #008200"&gt;//servername &lt;/span&gt;
$list = $web.Lists[&lt;span style="color: #A31515"&gt;"Your list name"&lt;/span&gt;] 
&lt;br /&gt;$&lt;span style="color: #0000FF"&gt;event&lt;/span&gt; = $list.EventReceivers.Add() 
&lt;br /&gt;$&lt;span style="color: #0000FF"&gt;event&lt;/span&gt;.Assembly = &lt;span style="color: #A31515"&gt;"Your full assembly name, Version=1.0.0.0, Culture=neutral, PublicKeyToken=..."&lt;/span&gt;
&lt;br /&gt;$&lt;span style="color: #0000FF"&gt;event&lt;/span&gt;.Class = &lt;span style="color: #A31515"&gt;"Your class name"&lt;/span&gt;
&lt;br /&gt;$&lt;span style="color: #0000FF"&gt;event&lt;/span&gt;.Name = &lt;span style="color: #A31515"&gt;"Test event from PowerShell"&lt;/span&gt;
&lt;br /&gt;$spEventReceiver.Type = 10002 
&lt;br /&gt;$spEventReceiver.SequenceNumber = 1000 
&lt;br /&gt;$spEventReceiver.Synchronization = 1 
&lt;br /&gt;$spEventReceiver.Update()&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Le propietà che vengono settate in questo script PowerShell non sono altro che le proprietà delle classi SPList e SPEventReceiver con cui siete stati abituati a lavorare fin'ora.
&lt;br /&gt;Le uniche due cose su cui bisogna porre attenzione sono le proprietà Type e Synchronization, in quanto essendo delle enum devono essere valorizzate con gli interi che corrispondono al valore di enumarazione che vogliamo utilizzare.
&lt;br /&gt;Per la proprietà Synchronization, abbiamo a disposizione i seguenti valori:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1: Synchronous&lt;/li&gt;&lt;li&gt;2: Asynchronous&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Per la proprietà type invece, la lista è un pò più lunga:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;-1: InvalidReceiver&lt;/li&gt;&lt;li&gt;1: ItemAdding&lt;/li&gt;&lt;li&gt;2: ItemUpdating&lt;/li&gt;&lt;li&gt;3: ItemDeleting&lt;/li&gt;&lt;li&gt;4: ItemCheckingIn&lt;/li&gt;&lt;li&gt;5: ItemCheckingOut&lt;/li&gt;&lt;li&gt;6: ItemUncheckingOut&lt;/li&gt;&lt;li&gt;7: ItemAttachmentAdding&lt;/li&gt;&lt;li&gt;8: ItemAttachmentDeleting&lt;/li&gt;&lt;li&gt;9: ItemFileMoving&lt;/li&gt;&lt;li&gt;101: FieldAdding&lt;/li&gt;&lt;li&gt;102: FieldUpdating&lt;/lI&gt;&lt;li&gt;103: FieldDeleting&lt;/li&gt;&lt;li&gt;104: ListAdding&lt;/li&gt;&lt;li&gt;105: ListDeleting&lt;/li&gt;&lt;li&gt;201: SiteDeleting&lt;/li&gt;&lt;li&gt;202: WebDeleting&lt;/li&gt;&lt;li&gt;203: WebMoving&lt;/li&gt;&lt;li&gt;204: WebAdding&lt;/li&gt;&lt;li&gt;501: WorkflowStarting&lt;/li&gt;&lt;li&gt;10001: ItemAdded&lt;/li&gt;&lt;li&gt;10002: ItemUpdated&lt;/li&gt;&lt;li&gt;10003: ItemDeleted&lt;/li&gt;&lt;li&gt;10004: ItemCheckedIn&lt;/li&gt;&lt;li&gt;10005: ItemCheckedOut&lt;/li&gt;&lt;li&gt;10006: ItemUncheckedOut&lt;/li&gt;&lt;li&gt;10007: ItemAttachmentAdded&lt;/li&gt;&lt;li&gt;10008: ItemAttachmentDeleted&lt;/li&gt;&lt;li&gt;10009: ItemFileMoved&lt;/li&gt;&lt;li&gt;10010: ItemFileConverted&lt;/li&gt;&lt;li&gt;10101: FieldAdded&lt;/li&gt;&lt;li&gt;10102: FieldUpdated&lt;/li&gt;&lt;li&gt;10103: FieldDeleted&lt;/li&gt;&lt;li&gt;10104: ListAdded&lt;/li&gt;&lt;li&gt;10105: ListDeleted&lt;/li&gt;&lt;li&gt;10201: SiteDeleted&lt;/li&gt;&lt;li&gt;10202: WebDeleted&lt;/li&gt;&lt;li&gt;10203: WebMoved&lt;/li&gt;&lt;li&gt;10204: WebProvisioned&lt;/li&gt;&lt;li&gt;10501: WorkflowStarted&lt;/li&gt;&lt;li&gt;10502: WorkflowPostponed&lt;/li&gt;&lt;li&gt;10503: WorkflowCompleted&lt;/li&gt;&lt;li&gt;20000: EmailReceived&lt;/li&gt;&lt;li&gt;32766: ContextEvent&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Bene. Ora che abbiamo inserito un nuovo event receiver, vediamo quali altri script PowerShell possiamo utilizzare per facilitarci il lavoro.
&lt;br /&gt;
&lt;br /&gt;Vogliamo vedere la lista di receiver che sono collegati ad una lista/document library? Ecco qua:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;$web = Get-SPWeb -Identity http:&lt;span style="color: #008200"&gt;//servername &lt;/span&gt;
$list = $web.Lists[&lt;span style="color: #A31515"&gt;"Your list name"&lt;/span&gt;] 
&lt;br /&gt;$list.EventReceivers | Select Name,Assembly,Type&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Vogliamo cancellare o modificare l’associazione di un event receiver? Ecco qua:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;$web = Get-SPWeb -Identity http:&lt;span style="color: #008200"&gt;//servername &lt;/span&gt;
$list = $web.Lists[&lt;span style="color: #A31515"&gt;"My List Name"&lt;/span&gt;] 
&lt;br /&gt;$eventsCount = $spList.EventReceivers.Count 
&lt;br /&gt;$&lt;span style="color: #0000FF"&gt;class&lt;/span&gt; = &lt;span style="color: #A31515"&gt;"Your class name"&lt;/span&gt;
&lt;br /&gt;$type = 10002
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;for&lt;/span&gt; ($i = 0; $i -lt $eventsCount; $i+=1) 
&lt;br /&gt;{ 
&lt;br /&gt;   &lt;span style="color: #0000FF"&gt;if&lt;/span&gt; ($list.EventReceivers[$i].Class -eq $&lt;span style="color: #0000FF"&gt;class&lt;/span&gt; -and $list.EventReceivers[$i].Type -eq $type) 
&lt;br /&gt;   { 
&lt;br /&gt;      $list.EventReceivers[$i].Delete() 
&lt;br /&gt;   } 
&lt;br /&gt;} 
&lt;br /&gt;$list.Update()&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Bello, no? :)
&lt;br /&gt;
&lt;br /&gt;Purtroppo (e qui ho l'unica nota dolente del post) attualmente PowerShell non è funzionante se utilizzato per modificare contenuti SharePoint Online all'interno del pacchetto Office 365.
&lt;br /&gt;Resta di fatto che, per lo sviluppo e per la gestione delle nostre installazioni on premises, è uno strumento fondamentale che ogni sviluppatore SharePoint dovrebbe sapere utilizzare senza problemi.
&lt;br /&gt;Chissà poi, cosa ci riserverà il futuro :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/PowerShell.aspx" title="TAG: PowerShell"&gt;PowerShell&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010EventReceiverThroughPowershell.aspx" /><issued>2011-6-20T9:7:11+01:00</issued><modified>2011-6-20T9:7:11+01:00</modified></entry><entry><title>Percorso formativo sullo sviluppo in SharePoint 2010 su Microsoft BEIT</title><id>/Blog/VideoAboutSharePoint2010Development.aspx</id><created>2011-5-30T9:35:55+01:00</created><content type="text/html" mode="escaped">Settimana scorsa è iniziato un &lt;a href="http://www.microsoft.com/italy/beit/Msdn.aspx?author=Giuseppe Marchi" title="Percorso formativo su SharePoint 2010" target="_blank"&gt;percorso formativo&lt;/a&gt; sullo sviluppo in SharePoint 2010 all'interno del sito &lt;a href="http://www.microsoft.com/italy/beit/" title="Microsoft BEIT" target="_blank"&gt;Microsoft BEIT&lt;/a&gt;. Questo percorso, tenuto da me e &lt;a href="http://blogs.devleap.com/paolo/" title="Paolo Pialorsi" target="_blank"&gt;Paolo&lt;/a&gt;, sarà formato da una serie di video utili a chi si approccia per la prima volta allo sviluppo di applicazioni all'interno del prodotto di collaborazione Microsoft.
&lt;br /&gt;Questa la scaletta che stiamo seguendo:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/italy/beit/Msdn.aspx?video=SharePoint-201035introduzione-per-gli-sviluppatori" target="_blank" title="SharePoint 2010: introduzione per gli sviluppatori"&gt;Introduzione alle novità di SharePoint 2010 per sviluppatori&lt;/a&gt; (Peppe)&lt;/li&gt;&lt;li&gt;Il modello ad oggetti di SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;Sviluppo di Web Part (Peppe)&lt;/li&gt;&lt;li&gt;Introduzione al modello ad oggetti client-side (Peppe)&lt;ul&gt;&lt;li&gt;Modello per applicazioni .NET&lt;/li&gt;&lt;li&gt;Modello per applicazioni Silverlight&lt;/li&gt;&lt;li&gt;Modello per personalizzazioni Javascript&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;I REST services di SharePoint 2010 (Peppe)&lt;/li&gt;&lt;li&gt;Personalizzazione della barra dei Ribbon (Peppe)&lt;/li&gt;&lt;li&gt;LINQ to SharePoint (Paolo)&lt;/li&gt;&lt;li&gt;Data Provisioning (Peppe)&lt;/li&gt;Sviluppo di campi custom (Peppe)&lt;/li&gt;&lt;li&gt;Introduzione ai Business Connectivity Services (Peppe)&lt;/li&gt;&lt;li&gt;Sandbox Solutions in SharePoint 2010 (Paolo)&lt;/li&gt;&lt;li&gt;Workflow con SharePoint 2010 e Visual Studio 2010 (Paolo)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Vi lascio qua il primo video che da una panoramica a quelle che sono le novità che abbiamo a disposizione noi sviluppatori all'interno di SharePoint 2010.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.microsoft.com/italy/beit/Msdn.aspx?video=SharePoint-201035introduzione-per-gli-sviluppatori" target="_blank" title="SharePoint 2010: introduzione per gli sviluppatori"&gt;&lt;img src="http://www.peppedotnet.it/Images/BEIT_1.png" alt="SharePoint 2010: introduzione per gli sviluppatori" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;A breve vedremo anche tutti gli altri.
&lt;br /&gt;Se volete poi, potete scaricare i sorgenti che ho scritto per registrare i video. Ecco quelli legati al primo video:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/BEIT_Demo1.zip" title="Sorgenti del video SharePoint 2010: introduzione per gli sviluppatori" target="_blank"&gt;BEIT_Demo1.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Spero veramente che questo percorso sia utile a chi di voi vuole approcciarsi allo sviluppo su SharePoint 2010. Se avete domande e/o curiosità non esitate a contattarmi.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/BeIT.aspx" title="TAG: BeIT"&gt;BeIT&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/VideoAboutSharePoint2010Development.aspx" /><issued>2011-5-30T9:35:55+01:00</issued><modified>2011-5-30T9:35:55+01:00</modified></entry><entry><title>Visualizzare controlli custom nella barra dei Ribbon posta in home page</title><id>/Blog/CustomRibbonVisibleAlsoInHomePage.aspx</id><created>2011-5-23T14:51:51+01:00</created><content type="text/html" mode="escaped">Abbiamo già visto che la barra dei Ribbon è personalizzabile nella maggior parte delle sue zone e abbiamo anche spiegato quale logica dobbiamo seguire per posizionare i nostri controlli all'interno dei gruppi già presenti nella barra. Se volete un riepilogo veloce, ecco qua l'elenco dei post a riguardo.
&lt;br /&gt;
&lt;br /&gt;&lt;div style="margin-left: 15px;"&gt;&lt;b&gt;- &lt;/b&gt;&lt;a title="Come creare un Ribbon in SharePoint 2010" href="http://www.peppedotnet.it/Blog/HowToWriteARibbonInSharePoint2010.aspx"&gt;Come creare un Ribbon in SharePoint 2010&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-left: 15px;"&gt;&lt;b&gt;- &lt;/b&gt;&lt;a title="La gestione della posizione dei controlli inseriti nella barra dei Ribbon di SharePoint 2010" href="http://www.peppedotnet.it/Blog/ControlPositionOnSharePoint2010RibbonBar.aspx"&gt;La gestione della posizione dei controlli inseriti nella barra dei Ribbon di SharePoint 2010&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-left: 15px;"&gt;&lt;b&gt;- &lt;/b&gt;&lt;a title="Template di un controllo Ribbon posto all interno di un gruppo pre-esistente" href="http://www.peppedotnet.it/Blog/SharePoint2010RibbonTemplateAlias.aspx"&gt;Template di un controllo Ribbon posto all'interno di un gruppo pre-esistente&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-left: 15px;"&gt;&lt;b&gt;- &lt;/b&gt;&lt;a title="Le icone di un controllo personalizzato all interno della barra dei Ribbon" href="http://www.peppedotnet.it/Blog/SharePoint2010RibbonControlsImages.aspx"&gt;Le icone di un controllo personalizzato all'interno della barra dei Ribbon&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-left: 15px;"&gt;&lt;b&gt;- &lt;/b&gt;&lt;a title="Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell utente corrente" href="http://www.peppedotnet.it/Blog/EnableOrDisableASharePoint2010RibbonButton.aspx"&gt;Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;In pratica, dopo aver scelto i valori degli attributi RegistrationType e RegistrationId dell'elemento CustomAction, dobbiamo preoccuparci di posizionare il nostro controllo nella gerarchia già presente valorizzando l'attributo Location dell'elemento CommandUIDefinition.
&lt;br /&gt;Abbiamo detto che, per inserire i nostri Ribbon all'interno dei vari tab e dei vari gruppi, vale la seguente regola:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="margin-left: 10px"&gt;&lt;b&gt;Ribbon.[Tab].[Group].Controls._children &lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;Se però, proviamo a visualizzare lo stesso ribbon in home page o in una qualsiasi web part/wiki page, vi accorgerete che i vostri controlli personalizzati non saranno visibili all'interno della barra dei ribbon.
&lt;br /&gt;
&lt;br /&gt;Questo perchè la &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webpartpages.xsltlistviewwebpart.aspx" title="XsltListViewWebPart class" target="_blank"&gt;XsltListViewWebPart&lt;/a&gt; ha di default l'attributo "ToolbarType" valorizzato a "Summary Toolbar".
&lt;br /&gt;Per permettere la corretta visualizzazione dei vostri elementi personalizzati all'interno della Ribbon bar anche su pagine di questo tipo, ci basta semplicemente valorizzare tale proprietà a &lt;b&gt;"Full Toolbar"&lt;/b&gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/02_RibbonInHomePage.jpg" alt="Visualizzare controlli custom nella barra dei Ribbon posta in home page" /&gt;
&lt;br /&gt;
&lt;br /&gt;Spero possa esser utile a qualcuno!
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/CustomRibbonVisibleAlsoInHomePage.aspx" /><issued>2011-5-23T14:51:51+01:00</issued><modified>2011-5-23T14:51:51+01:00</modified></entry><entry><title>Annunciato il Service Pack 1 di SharePoint 2010</title><id>/Blog/AnnouncedSharePoint2010SP1.aspx</id><created>2011-5-17T9:31:23+01:00</created><content type="text/html" mode="escaped">Finalmente un pò di news da svelare al pubblico :)
&lt;br /&gt;Dal &lt;a href="http://blogs.technet.com/b/office_sustained_engineering/archive/2011/05/16/announcing-service-pack-1-for-office-2010-and-sharepoint-2010.aspx" title="Anouncing the Service Pack 1 for Office 2010 and SharePoint 2010" target="_blank"&gt;blog del team degli Office Updates&lt;/a&gt; possiamo leggere la notizia del rilascio del primo service pack per SharePoint 2010 (e per tutta la famiglia Office 2010). Non c'è ancora una data ufficiale, ma possiamo sapere che di per certo verrà rilasciato &lt;span style="text-decoration: underline"&gt;alla fine del prossimo giugno 2011&lt;/span&gt;.
&lt;br /&gt;Per le versioni localizzate, state pur tranquilli perchè verranno rilasciate tutte quante simultaneamente.
&lt;br /&gt;
&lt;br /&gt;All'interno dell'aggiornamento, oltre alla solita marea di hotfix che sono già stati rilasciati da Microsoft nel corso di questo periodo e a parecchie correzioni non ancora rilasciate, abbiamo un pò di aggiunte molte importanti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Il pieno supporto per Internet Explorer 9 e per Google Chrome sia di SharePoint 2010 che delle Office Web Applications&lt;/li&gt;&lt;li&gt;La possibilità di recuperare siti cancellati dal cestino (ad oggi era possibile solo per liste, document libray e singoli elementi)&lt;/li&gt;&lt;li&gt;La possibilità di ricercare all'interno dei file PPSX&lt;/li&gt;&lt;li&gt;Un nuovo comando Powershell per spostare una site collection da un database di contenuti all'altro (comando "Move-SPSite")&lt;/li&gt;&lt;li&gt;Funzionalità aggiuntive e avanzate per quanto riguarda la parte di backcup e restore&lt;/li&gt;&lt;li&gt;Ripristino della pagina StoreMan.asxp (per gestione dello storage)&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Potete trovare ulteriori informazioni direttamente dal blog del team di SharePoint 2010 a questo indirizzo:
&lt;br /&gt;- &lt;a href="http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=973" title="Service Pack 1 for SharePoint 2010" target="_blank"&gt;http://sharepoint.microsoft.com/blog/Pages/BlogPost.aspx?pID=973&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Per completezza, sappiate che il service pack 1 di SharePoint 2010 contiene tutti questi hotfix:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2528533"&gt;Office 2010 April 2011 Cumulative Update (KB 2528533)&lt;/a&gt; – Released April 26, 2011&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2535422"&gt;Security and Non-Security Updates for April 2011&lt;/a&gt; – Released April 12, 2011&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2518242"&gt;Security and Non-Security Updates for March 2011&lt;/a&gt; – Released March 8, 2011&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2493730"&gt;Office 2010 February 2011 Cumulative Update (KB 2493730)&lt;/a&gt; – Released February 22, 2011&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2500894"&gt;Security and Non-Security Updates for February 2011&lt;/a&gt; – Released February 8, 2011 &lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2490385"&gt;Non-Security Updates for January 2011&lt;/a&gt; – Released January 11, 2011&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2479673"&gt;Office 2010 December 2010 Cumulative Update (KB 2479673)&lt;/a&gt; – Released December 14, 2010 &lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2479674"&gt;Security and Non-Security Updates for December 2010&lt;/a&gt; – Released December 14, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2458112"&gt;Security and Non-Security Updates for November 2010&lt;/a&gt; – Released November 9, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2449183"&gt;Office 2010 October 2010 Cumulative Update (KB 2449183)&lt;/a&gt; – Released October 26, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2427483"&gt;Security and Non-Security Updates for October 2010&lt;/a&gt; – Released October 12, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2411165"&gt;Security and Non-Security Updates for September 2010&lt;/a&gt; – Released September 14, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2396341"&gt;Office 2010 August 2010 Cumulative Update (KB 2396341)&lt;/a&gt; – Released August 31, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2344294"&gt;Security and Non-Security Updates for August 2010&lt;/a&gt; – Released August 10, 2010&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2279990"&gt;Security and Non-Security Updates for July 2010&lt;/a&gt; – Released July 13, 2010 &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/2259686"&gt;Office 2010 June 2010 Cumulative Update (KB 2259686)&lt;/a&gt; – Released June 29, 2010 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Service Pack.aspx" title="TAG: Service Pack"&gt;Service Pack&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/AnnouncedSharePoint2010SP1.aspx" /><issued>2011-5-17T9:31:23+01:00</issued><modified>2011-5-17T9:31:23+01:00</modified></entry><entry><title>Community tour su SharePoint Online @ SMAU di Bologna - 9 giugno 2011</title><id>/Blog/SharePointOnlineCommunityTourSMAUBologna.aspx</id><created>2011-5-16T9:48:35+01:00</created><content type="text/html" mode="escaped">&lt;div style="margin-left: 10px; float: right;"&gt;&lt;a title="SharePointCommunity.it - La community italiana per i professionisti SharePoint" href="http://www.sharepointcommunity.it" target="_blank"&gt;&lt;img alt="SharePointCommunity.it - La community italiana per i professionisti SharePoint" src="http://www.peppedotnet.it/Images/spCommunity.jpg"&gt;&lt;/a&gt;
&lt;br /&gt;&lt;img alt="SMAU BOLOGNA" src="http://www.powershell.it/ReusableItems/Graphics/News/sb11_logo_padova11.jpg"&gt;&lt;/div&gt;Dopo la &lt;a href="http://www.peppedotnet.it/Blog/SharePointOnlineCommunityTourSMAUPadova.aspx" title="Community tour @ Padova" target="_blank"&gt;tappa di Padova&lt;/a&gt;, il community tour arriva anche allo SMAU di Bologna ! 
&lt;br /&gt;&lt;a title="SharePoint Community @ SMAU Padova" href="http://www.sharepointcommunity.it/news/Lists/Events/DispForm.aspx?ID=14" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt;, la community italiana per professionisti che lavorano su SharePoint, assieme a PowerShell.it (la community italiana su Windows PowerShell) partecipa al community tour di Microsoft presentando due sessioni durante lo &lt;a title="SMAU Padova" href="http://www.smau.it" target="_blank"&gt;SMAU di Bologna&lt;/a&gt; il giorno &lt;b&gt;9 giugno 2011&lt;/b&gt;.
&lt;br /&gt;&lt;br&gt;Nello specifico, io vi darò un'introduzione e un'anteprima di SharePoint Online (la piattaforma di collaborazione on the cloud, targata Office 365), Francesco vi parlerà invece di virtualizzazione ed Efran affronterà il remote management attraverso Powershell.
&lt;br /&gt;Questa l'agenda nel dettaglio:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-decoration: underline;"&gt;10:00 - 10:30&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;Welcome e keynote - PierGiorgio Malusardi&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-decoration: underline;"&gt;10:30 - 11:30&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;SharePoint in the cloud - Giuseppe Marchi&lt;/b&gt;
&lt;br /&gt;In questa sessione cercheremo di conoscere l'offerta di Microsoft per quanto riguarda SharePoint in the cloud, all'interno del programma Office 365. Vedremo quali sono le principali caratteristiche e funzionalità del prodotto, le differenze rispetto alle normali installazioni on-premise e le modalità di gestione di contenuti e infrastruttura, assieme alle modalità di deployment di eventuali personalizzazioni. 
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-decoration: underline;"&gt;11:30 - 12:30&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;Virtualize a SharePoint 2010 Environment - Francesco Sodano&lt;/b&gt;
&lt;br /&gt;La virtualizzazione degli ambienti di sviluppo e produzione rappresentano ormai uno standard aziendale in molte società. In questa sessione si farà il punto su come è possibile virtualizzare un ambiente SharePoint 2010 su Microsoft Hyper-V (sia esso sviluppo o produzione), quali sono i vantaggi offerti e i punti di attenzione da tenere presente. Si mostrerà inoltre come creare una macchina virtuale SharePoint 2010 da utilizzare come template per SCVMM.
&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-decoration: underline;"&gt;12:30 - 13:30&lt;/span&gt;
&lt;br /&gt;&lt;b&gt; Windows PowerShell 2.0 ed il remote management - Efran Cobisi&lt;/b&gt;
&lt;br /&gt;Il remote management è una delle novità più interessanti di PowerShell 2.0 e consente di gestire in completa autonomia e sicurezza le proprie macchine attraverso la rete, dalla riga di comando; non si tratta di un semplice sostituto di RCMD ma di una nuova ed articolata infrastruttura, costruita sulle basi del framework 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;Per registrarvi dovete seguire questo link:
&lt;br /&gt;&lt;a title="Iscritivi a SMAU Bologna" href="http://www.smau.it/invite/microsoft-10" target="_blank"&gt;http://www.smau.it/invite/microsoft-10&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Vi aspettiamo ! ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a title="TAG: SharePoint" href="http://www.peppedotnet.it/Tags/SharePoint.aspx"&gt;SharePoint&lt;/a&gt;] [&lt;a title="TAG: SharePoint Online" href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx"&gt;SharePoint Online&lt;/a&gt;] [&lt;a title="TAG: Office 365" href="http://www.peppedotnet.it/Tags/Office 365.aspx"&gt;Office 365&lt;/a&gt;] [&lt;a title="TAG: SharePoint Community" href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx"&gt;SharePoint Community&lt;/a&gt;]            </content><link rel="alternate" type="text/html" href="/Blog/SharePointOnlineCommunityTourSMAUBologna.aspx" /><issued>2011-5-16T9:48:35+01:00</issued><modified>2011-5-16T9:48:35+01:00</modified></entry><entry><title>Office 365 browsers compatibility</title><id>/Blog/Office365BrowsersCompatibility.aspx</id><created>2011-5-10T12:29:24+01:00</created><content type="text/html" mode="escaped">Come sapete, è da poco pubblica la beta di Office 365! Il che vuol dire che voi potete accedervi facendo richiesta e che io invece posso finalmente fare uno screenshot e pubblicarlo sul sito! :)
&lt;br /&gt;Attualmente, tutti gli applicativi software esposti dalla piattaforma Microsoft Office 365 e il portale di amministrazione, sono funzionanti e (sopratutto) supportati se utilizzati tramite i seguenti browser:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Internet Explorer 9, Internet Explorer 8 e Internet Explorer 7 installati su Windows 7&lt;/li&gt;&lt;li&gt;Internet Explorer 8 e Internet Explorer 7 installati su Windows Vista (con service pack 2)&lt;/li&gt;&lt;li&gt;Internet Explorer 8 e Internet Explorer 7 installati su Windows XP (con service pack 3)&lt;/li&gt;&lt;li&gt;Mozilla Firefox 3.x installato su Windows 7 o su Windows Vista (con service pack 2)&lt;/li&gt;&lt;li&gt;Apple Safari installato su Mac OS X versione 10.6 o 10.5&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Se proviamo infatti ad accedere al portale &lt;a href="https://portal.microsoftonline.com" title="Office 365" target="_blank"&gt;https://portal.microsoftonline.com&lt;/a&gt; con Chrome, ci viene visualizzato questo avviso:
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/02_ChromeErrorPortal.jpg" title="Office 365 browsers compatibility" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/02_ChromeErrorPortal_s.jpg" alt="Office 365 browsers compatibility" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Che comunque ci permette di continuare la navigazione all'interno del portale. Ad oggi io non ho trovato le pagine non funzionanti che cita questo avviso (e se ne trovate voi, vi prego di segnalarmele).
&lt;br /&gt;Per quanto riguarda invece l'utilizzo di Outlook Web App (la versione on-line del client posta per Exchange Online 2010), sono invece supportati questi browser:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Internet Explorer 7 o versione successiva (su Windows 7, Windows Vista SP2, Windows XP SP3)&lt;/li&gt;&lt;li&gt;Firefox 3 o versione successiva&lt;/li&gt;&lt;li&gt;Safari 3 o versione successiva su Macintosh OS X 10.5 o superiore&lt;/li&gt;&lt;li&gt;Chrome 3 e versioni successive&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;In ogni modo, esiste anche una versione di Outlook Web App che supporta un set ridotto di funzionalità così da permettere l'utilizzo della maggior parte dei browser.
&lt;br /&gt;Potete trovare il resto dei requisiti software a questo indirizzo:
&lt;br /&gt;&lt;a href="http://www.microsoft.com/it-it/office365/small-business/beta.aspx#SystemRequirements" title="" target="_blank"&gt;http://www.microsoft.com/it-it/office365/small-business/beta.aspx#SystemRequirements&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Specifiche a parte, ho fatto anche io un pò di prove e questi sono i risultati:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;FIREFOX&lt;/b&gt; (io ho provato la versione 4)
&lt;br /&gt;Nessun problema riscontrato.
&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/05_FirefoxOutlookWebApp.jpg" title="Office 365 browsers compatibility - Firefox" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/05_FirefoxOutlookWebApp_s.jpg" alt="Office 365 browsers compatibility - Firefox" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/06_FirefoxSharePointOnline.jpg" title="Office 365 browsers compatibility" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/06_FirefoxSharePointOnline_s.jpg" alt="Office 365 browsers compatibility" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;CHROME&lt;/b&gt; (io ho provato la versione 10.0.648.204)
&lt;br /&gt;Nonostante l'avviso all'apertura del portale, non ho trovato alcun tipo di malfunzionamento ne nella pagina principale ne nelle varie pagine di configurazione utenti, gruppi, ecc..
&lt;br /&gt;Anche provando ad accedere a SharePoint Online, nessun errore o malfunzionamento visibile.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/01_ChromeSharePointOnline.jpg" title="Office 365 browsers compatibility - Chrome" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/01_ChromeSharePointOnline_s.jpg" alt="Office 365 browsers compatibility - Chrome" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;L'unica cosa che mi è capitata è stata utilizzando Outlook Web App. Avendo già aperto il sito in un primo tab e provando ad aprire il secondo tab con lo stesso indirizzo, mi è venuto fuori questo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/03_ChromeErrorOutlook.jpg" title="Office 365 browsers compatibility - Chrome" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/03_ChromeErrorOutlook_s.jpg" alt="Office 365 browsers compatibility - Chrome" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;A parte questo, anche la versione del client di posta per Exchange Online 2010 è perfettamente funzionante anche su Chrome.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/04_ChromeOutlookWebApp.jpg" title="Office 365 browsers compatibility - Chrome" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/04_ChromeOutlookWebApp_s.jpg" alt="Office 365 browsers compatibility - Chrome" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;SAFARI&lt;/b&gt; (su Mac OS)
&lt;br /&gt;In base alla versione, viene visualizzato il solito warning durante l'apertura del portale, ma nonostante questo sembra tutto funzinonante anche su Mac OS.
&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td valign="top"&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/07_Mac.jpg" title="Office 365 browsers compatibility - Safari" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/07_Mac_s.jpg" alt="Office 365 browsers compatibility - Safari" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/td&gt;&lt;td valign="top"&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/08_Mac.jpg" title="Office 365 browsers compatibility - Safari" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365BrowserCompatibiity/08_Mac_s.jpg" alt="Office 365 browsers compatibility - Safari" /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;Non ho provato ancora su Linux, ma credo sia lo stesso discorso sia per Chrome che per Firefox (se qualcuno ha info a riguardo, mi faccia pure sapere).
&lt;br /&gt;Invece, per chi di voi sta già utilizzando la beta e avete qualche malfunzionamento da segnalare per quanto riguarda la compatibilità di Office 365 con il vostro browser, scrivetemi pure a info@peppedotnet.it !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/Office365BrowsersCompatibility.aspx" /><issued>2011-5-10T12:29:24+01:00</issued><modified>2011-5-10T12:29:24+01:00</modified></entry><entry><title>Office 365 - Installare applicazioni Silverlight su SharePonit Online</title><id>/Blog/InstallSilverlightAppsInOffice365SharePointOnline.aspx</id><created>2011-5-3T15:54:43+01:00</created><content type="text/html" mode="escaped">Se vogliamo pensare di sviluppare per SharePoint Online dobbiamo metterci in testa di imparare ad utilizzare le soluzioni di tipo Sandbox e di cercare i modi di implementare le nostre personalizzazioni sfruttando le funzionalità (ma soprattutto i limiti) proprie di questo tipo di soluzioni.
&lt;br /&gt;Detto questo, se volessimo portare e fruire da un sito SharePoint Online un'applicazione Silverlight, dobbiamo cercare di effettuare il provisioning del .XAP generato attraverso, appunto, una soluzione di tipo Sandbox. In questo senso, dobbiamo effettuare l'installazione di tale file all'interno di una document library, utilizzando una feature e un module.
&lt;br /&gt;Vediamo passo per passo come possiamo fare.
&lt;br /&gt;
&lt;br /&gt;1- Per prima cosa dobbiamo creare un nuovo progetto utilizzando il template "Empty SharePoint Project"
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/02.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/02s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;2- Scegliamo la tipologia "Sandbox" per la nostra nuova soluzione
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/03.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/03s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;3- Aggiungiamo un nuovo elemento alla nostra soluzione SharePoint
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/04.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/04s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;4- Scegliamo il template d'elemento "Module"
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/05.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/05s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;5- Cancelliamo il file di testo (.txt) che viene creato in automatico e copiamo il file .XAP proprio dell'applicazione Silverlight che vogliamo installare all'interno del nostro sito SharePoint Online.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/06.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/06s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;6- Modifichiamo il file "Elements.xml" in modo da installare il file .XAP all'interno della library "Site Assets".
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;!--&lt;/span&gt;&lt;span style='color:#FF0000'&gt; install Silvrelight application into Site Assets library --&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Module&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="InstallXAP"&lt;/span&gt; Url&lt;span style='color:#0000FF'&gt;="SiteAssets"&lt;/span&gt; RootWebOnly&lt;span style='color:#0000FF'&gt;="TRUE"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;File&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Path&lt;span style='color:#0000FF'&gt;="InstallXAP\SilverlightLovesOffice365.xap"&lt;/span&gt; Url&lt;span style='color:#0000FF'&gt;="SilverlightLovesOffice365.xap"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Module&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;7- Scegliamo l'opzione "Package" così da permettere a Visual Studio 2010 di creare il file .wsp che potremo poi installare all'interno della nostra site collection SharePoint Online.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/07.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/07s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;8- Accediamo all'interno della site collection in cui vogliamo installare ed utilizzare l'applicazione Silverlight e accediamo alla "Solution gallery" reperibile seguendo il percorso: "Site actions &gt; Site settings &gt; Solutions". All'interno della gallery, effettuare l'upload del file .WSP appena generato da Visual Studio 2010.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/08.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/08s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;9- Una volta inserita la nostra soluzione all'interno della gallery, scegliamo di attivarla. Così da poter usufruire delle personalizzazioni che abbiamo appena sviluppato.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/09.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/09s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;10- Modifichiamo la pagina in modo da poter inserire la Silverlight Web Part
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/10.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/10s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;11- Aggiungiamo la Silverlight Web Part all'interno della pagina
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/11.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/11s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;12- Modifichiamo la Silverlight Web Part e selezioniamo il tasto "Configure", così da poter specificare il percorso relativo del file .XAP
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/12.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/12s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;13- Settiamo un'altezza fissa per la nostra web part (se non facciamo questa operazione, la Silverlight Web Part andrà in errore)
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/13.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/13s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;14 - Fatto questo, possiamo vedere la nostra applicazione Silverlight all'interno del nostro sito SharePoint Online.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365InstallSilverlight/14.jpg" title="Office 365 - Installare applicazioni Silverlight su SharePonit Online" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365InstallSilverlight/14s.jpg" alt="Office 365 - Installare applicazioni Silverlight su SharePonit Online" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Ho proposto la stessa demo anche alla &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference 2011" target="_blank"&gt;SharePoint Conference&lt;/a&gt; appena passata, ma chiaramente non ha funzionato :)
&lt;br /&gt;Vi lascio anche i sorgenti così da potete veder bene la Sandbox solution ed utilizzarla come punto di partenza.
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/SilverlightLovesOffice365.zip" title="Download codice sorgente" target="_blank"&gt;SilverlightLovesOffice365 (695 Kb)&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;I sorgenti potete tranquillamente provarli sulla vostra installazione di SharePoint in locale, se non avete ancora accesso alla beta pubblica di Office 365. In generale, potete fare in locale tutte le attività di test e debug della vostra soluzione Sandbox per poi portarla on-line.
&lt;br /&gt;
&lt;br /&gt;Vi ricordo invece che se volete un'anteprima di SharePoint Online e della piattaforma Office 365, potete venire allo &lt;a title="SMAU Padova 5 maggio" href="http://www.sharepointcommunity.it/news/Lists/Events/DispForm.aspx?ID=13" target="_blank"&gt;SMAU di Padova il 5 maggio&lt;/a&gt;. Vi rimando a &lt;a title="Community tour su SharePoint Online @ SMAU di Padova - 5 maggio 2011" href="http://www.peppedotnet.it/Blog/SharePointOnlineCommunityTourSMAUPadova.aspx" target="_blank"&gt;questo post&lt;/a&gt; per ulteriori informazioni.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/InstallSilverlightAppsInOffice365SharePointOnline.aspx" /><issued>2011-5-3T15:54:43+01:00</issued><modified>2011-5-3T15:54:43+01:00</modified></entry><entry><title>Office 365 - SharePoint Online new Silverlight User Experience</title><id>/Blog/Office365SharePointOnlineNewSilverlightExperience.aspx</id><created>2011-4-28T9:1:43+01:00</created><content type="text/html" mode="escaped">All'uscita di SharePoint 2010 &lt;a href="http://www.peppedotnet.it/Blog/SilverlightCreationExperienceInSharePoint2010.aspx" title="Silverlight creation experience in SharePoint 2010" target="_blank"&gt;parlavamo&lt;/a&gt; già della forte integrazione del prodotto di collaborazione Microsoft con Silverlight, sia per tutte le funzionalità Out Of the Box esposte (Silverlight Web Part, Silverlight Media Web Part, Organization Browser Web Part, maschera per la creazione di nuove liste e/o document library, maschera per la creazione di nuovi siti, ecc.. ), sia per la possibilità di estensione della UI tramite applicazioni Silverlight personalizzate.
&lt;br /&gt;A tal proposito, abbiamo appena parlato di integrazione tra Silverlight e SharePoint 2010 alla &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference 2011" target="_blank"&gt;SharePoint Conference&lt;/a&gt; e, per chi non è potuto venire, vi assicuro che se ne possono fare delle belle !
&lt;br /&gt;Comunque, volevo rassicurarvi che all'interno del prodotto SharePoint Online (parte della suite Office 365) sono comunque rimaste tutte le applicazioni Silverlight che abbiamo appena citato e che in più è stata introdotta una nuova maschera per la selezione e l'inserimento di web part all'interno della pagina.
&lt;br /&gt;Possiamo accedere a questa visualizzazione modificando una qualsiasi pagina del nostro sito su SharePoint Online e facendo click sul tasto "Altre web part" presente nella barra dei Ribbon (come vi sarete accorti, anche questo tab è stato modificato rispetto alla versione di SharePoint on premise).
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/01.jpg" title="Office 365 - SharePoint Online new Silverlight User Experience" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/01small.jpg" alt="Office 365 - SharePoint Online new Silverlight User Experience" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Una volta scelta l'azione di inserimento di una web part dalla barra dei Ribbon, possiamo scegliere la web part (o lista/document library) che abbiamo intenzione di inserire nella pagina, utilizzando la nuova applicazione Silverlight in questione.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/02.jpg" title="Office 365 - SharePoint Online new Silverlight User Experience" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/02small.jpg" alt="Office 365 - SharePoint Online new Silverlight User Experience" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Come vedete è molto simile a quella di creazione di nuovi contenuti. In parole povere, visualizza tutte le web part abilitate a livello di site collection e che quindi possiamo inserire nella pagina, con la possibilità di filtrarle in base alla categoria di appartenenza (vengono visualizzate anche tutte le categorie custom per le nostre web part).
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/03.jpg" title="Office 365 - SharePoint Online new Silverlight User Experience" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/03small.jpg" alt="Office 365 - SharePoint Online new Silverlight User Experience" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se invece stiamo utilizzando una macchina dove non è stato installato il plugin di Silverlight oppure un browser che non lo supporta, vedremo in automatico la visualizzazione cui siamo sempre stati abituati nella versione di SharePoint on premise.
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/04.jpg" title="Office 365 - SharePoint Online new Silverlight User Experience" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365SilverlightUserExperience/04small.jpg" alt="Office 365 - SharePoint Online new Silverlight User Experience" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;A breve vedremo quanto è facile installare un'applicazione Silverlight personalizzata all'interno di SharePoint Online.
&lt;br /&gt;Vi ricordo invece che se volete un'anteprima di SharePoint Online e della piattaforma Office 365, potete venire allo &lt;a href="http://www.sharepointcommunity.it/news/Lists/Events/DispForm.aspx?ID=13" title="SMAU Padova 5 maggio" target="_blank"&gt;SMAU di Padova il 5 maggio&lt;/a&gt;. Vi rimando a &lt;a href="http://www.peppedotnet.it/Blog/SharePointOnlineCommunityTourSMAUPadova.aspx" title="Community tour su SharePoint Online @ SMAU di Padova - 5 maggio 2011" target="_blank"&gt;questo post&lt;/a&gt; per ulteriori informazioni.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/Office365SharePointOnlineNewSilverlightExperience.aspx" /><issued>2011-4-28T9:1:43+01:00</issued><modified>2011-4-28T9:1:43+01:00</modified></entry><entry><title>Microsoft Technical Conferences - Day 1</title><id>/Blog/MSTC2011Day1.aspx</id><created>2011-4-19T16:34:59+01:00</created><content type="text/html" mode="escaped">Eccomi qua, direttamente dalle &lt;a href="http://www.sharepointconference.it" title="Microsoft Technical Conferences" target="_blank"&gt;Microsoft Technical Conferences&lt;/a&gt;, a scrivervi del primo giorno.
&lt;br /&gt;Anche se non ancora finito, è stata davvero una bella giornata !
&lt;br /&gt;Il posto è veramente gigante ! Tanti gli sponsor e tante le persone che sono arrivate stamattina qui a Milano Fiera (c'è qualcuno che è andato ad Assaggo stamattina, ma non vorrei far nomi...). Non vi dico il pranzo.... :)
&lt;br /&gt;Io le mie due sessioni le ho fatte e spero tanto che siano piacitue (stiamo aspettando ancora i feedback). 
&lt;br /&gt;Domani mattina, dopo la keynote, parleremo invece in dettaglio del Client Object Model di SharePoint 2010.
&lt;br /&gt;
&lt;br /&gt;Per cui.. A domani ! :)
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/spoc11Pie.jpg" alt="PeppeDotNet @ Microsoft Tecnical Conferences" /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MSTC2011Day1.aspx" /><issued>2011-4-19T16:34:59+01:00</issued><modified>2011-4-19T16:34:59+01:00</modified></entry><entry><title>Office 365 in beta pubblica !</title><id>/Blog/PublicBetaForOffice365.aspx</id><created>2011-4-18T9:47:32+01:00</created><content type="text/html" mode="escaped">&lt;a title="Microsoft Office 365" href="http://office365.microsoft.com" target="_blank"&gt;&lt;img style="margin: 10px; float: right;" alt="Microsoft Office 365" src="http://www.peppedotnet.it/Images/office365.jpg"&gt;&lt;/a&gt;Da oggi, il pacchetto di prodotti &lt;a href="http://www.peppedotnet.it/Blog/Office365Intro.aspx" title="Office 365" target="_blank"&gt;Office 365&lt;/a&gt; è entrato in beta pubblica !
&lt;br /&gt;Questo significa che in 37 paesi (compreso il nostro) è possibile iscriversi e provare le funzionalità della prossima versione di Office "on the cloud" e delle versioni di SharePoint, Exchange e Lync fruite on-line, in 17 lingue diverse !
&lt;br /&gt;
&lt;br /&gt;Per potersi iscrivere, fate la vostra richiesta su questo sito:
&lt;br /&gt;&lt;a href="http://www.microsoft.com/it-it/office365/online-software.aspx" title="Office 365" target="_blank"&gt;http://www.microsoft.com/it-it/office365/online-software.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Inoltre, se volete avere un'introduzione sulla piattaforma Office 365 e, in particolare, su SharePoint OnLine, vi ricordo che potete ancora iscrivervi alla &lt;a href="http://www.sharepointconference.it" target="_blank" title="SharePoint Conference"&gt;Microsoft SharePoint &amp; Office Conference&lt;/a&gt; di domani (19 Aprile 2011), dove ci saranno ben due sessioni proprio su questi due prodotti.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/PublicBetaForOffice365.aspx" /><issued>2011-4-18T9:47:32+01:00</issued><modified>2011-4-18T9:47:32+01:00</modified></entry><entry><title>DotNetCampus 2011 - Slide e demo: Fantacalcio con SharePoint 2010</title><id>/Blog/DotNetCampusDemoFantacalcioSharePoint.aspx</id><created>2011-4-11T13:9:4+01:00</created><content type="text/html" mode="escaped">Si è da poco conlcusa anche la seconda tappa del &lt;a title=".NET Campus 2011 - Milano" href="http://www.dotnetcampus.it" target="_blank"&gt;DotNetCampus 2011&lt;/a&gt; qui a Milano, un evento veramente interessante e ben pensato dal gruppo &lt;a href="http://www.devleap.com" title="DevLeap" target="_blank"&gt;DevLeap&lt;/a&gt;, Microsoft e tutto il gruppo Microsoft Student Partners. 
&lt;br /&gt;E' stata una bella giornata, come quella di Roma, piena di ragazzi provenienti da molte università del nord italia, venuti appositamente per vedere le tecnologie che sono in voga al momento, legate al mondo Microsoft.
&lt;br /&gt;Il mio "esperimento" su SharePoint sinceramente non so come sia andato, ma credo bene.
&lt;br /&gt;Parlare di SharePoint ad un pubblico che non è ancora entrato nel mondo del lavoro e delle aziende è stata comunque una bella esperienza e spero davvero di aver incuriosito qualcuno che magari voglia addentrarsi un pò di più nei vari dettagli del prodotto.
&lt;br /&gt;La dome è stata sicuramente il punto forte.. Una bella applicazione per giocare al fantacalcio, fruibile attraverso SharePoint e realizzata con una singola soluzione di tipo Sandbox (il che significa che adesso la vado a mettere anche su Office 365 ;)
&lt;br /&gt;Ecco qua un pò di screenshot.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Il sito completo, alla fine della demo&lt;/b&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/SharePointFantacalcio/fantacalcio1.png" title="Fantacalcio con SharePoint 2010" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/SharePointFantacalcio/fantacalcio1_l.png" alt="Fantacalcio con SharePoint 2010" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Il dettaglio di una partita&lt;/b&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/SharePointFantacalcio/fantacalcio2.png" title="Fantacalcio con SharePoint 2010" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/SharePointFantacalcio/fantacalcio2_l.png" alt="Fantacalcio con SharePoint 2010" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Il dettaglio di una squadra con rosa e formazione base&lt;/b&gt;
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Images/SharePointFantacalcio/fantacalcio3.png" title="Fantacalcio con SharePoint 2010" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/SharePointFantacalcio/fantacalcio3_l.png" alt="Fantacalcio con SharePoint 2010" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;L'applicazione per ora supporta 8 fanta squadre ed è basata sui voti e sulle quotazioni dei calciatori prodotte del sito &lt;a href="http://www.fantagazzetta.com" target="_blank" title="Fantagazzetta.com"&gt;Fantagazzetta.com&lt;/a&gt; !
&lt;br /&gt;Uno dei primi step da fare, una volta installata ed attivata la soluzione Sandbox è infatti quello di abilitare la feature chiamata "Football Manager - Structures" a livello di sito e fare l'upload di un file excel, preso dal Fantagazzetta.com e contenente l'elenco dei giocatori si serie A.
&lt;br /&gt;
&lt;br /&gt;La feature creare le seguenti liste (basate su altrettanti Content Type e relative List Definition):
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Images - per raccogliere immagini utili all'applicazione&lt;/li&gt;&lt;li&gt;Matches - il calendario dell'anno fanta-calcistico&lt;/li&gt;&lt;li&gt;Matches archive - per salvare le formazioni di ogni giornata&lt;/li&gt;&lt;li&gt;System pages - per contenere le pagine dell'applicazione&lt;/li&gt;&lt;li&gt;Players archive - per effettuare l'upload del file Excel di quotazioni dei giocatori&lt;/li&gt;&lt;li&gt;Players - lista di giocatori raggruppata per fanta-squadra e per ruolo&lt;/li&gt;&lt;li&gt;Teams - lista delle 8 fanta squadre, con i relativi mister e crediti residui&lt;/li&gt;&lt;li&gt;Votes - document library per archiviare i voti di ogni giornata e per calcolare i risultati&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;In tutto sono state sviluppate ben 9 web part:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GenerateCalendar web part - per la generazione automatica dei primi due gironi di un calendario calcistico&lt;/li&gt;&lt;li&gt;GenerateSampleTeams - per la configurazione dimostrativa di alcune squadre&lt;/li&gt;&lt;li&gt;InsertFormation - per il rendering dell'applicazione Silverlight in grado di permettere l'inserimento della formazione&lt;/li&gt;&lt;li&gt;LastTurn - per visualizzare il turno appena giocato&lt;/li&gt;&lt;li&gt;Match - per visualizzare i dettagli di una singola partita&lt;/li&gt;&lt;li&gt;NextTurn - per visuaizzare il turno da giocare&lt;/li&gt;&lt;li&gt;Ranking - per visualizzare la classifica in formato testuale&lt;/li&gt;&lt;li&gt;Team - per visualizzare i dettagli di una squadra&lt;/li&gt;&lt;li&gt;UserControlPanel - per visualizzare il pannello di gestione della propria squadra&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Assieme a queste strutture, sono stati sviluppati anche:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;3 event receiver, rispettivamente per inserire i giocatori a partire dal file Excel di quotazioni di Fantagazzetta.com, calcolare i voti di ogni giocatore nelle formazioni della giornata corrente, aggiornare la classifica in base ai risultati delle varie partire&lt;/li&gt;&lt;li&gt;Un ribbon personalizzato, per aggiornare la giornata fanta-calcistica corrente&lt;/li&gt;&lt;li&gt;2 applicazioni Silverlight, rispettivamente per inserire la formazione e visualizzare la formazione base di ogni squadra e per visualizzare la classifica tramite grafico a barre&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Il tutto utilizzando le principali tecniche di provisioning e di programmazione tramite il modello ad oggetti lato server e quello lato client.
&lt;br /&gt;E' un'applicazione questa, che può essere presa tranquillamente come "applicazione tipo" per quanto riguarda la sviluppo su SharePoint 2010 tramite Sandbox solutions. A questo propostio, vi ricordo che questi argomenti e tanti altri, li vedremo durante la mia sessione "SharePoint Development Basics and Best Practices" che terrò alla &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference" target="_blank"&gt;Microsoft SharePoint &amp; Office Conference 2011&lt;/a&gt; di questo 19 Aprile.
&lt;br /&gt;
&lt;br /&gt;Per ora è veramente un draft (anche se le funzionalità di base di un sito del fantacalcio ce le ha tutte). Se qualcuno vuole modificarla e ampliarla mi &lt;a href="mailto:info@peppedotnet.it" title="Scrivimi"&gt;scriva&lt;/a&gt; che la mettiamo subito su codeplex !
&lt;br /&gt;
&lt;br /&gt;Questi sono i sorgenti dell'applicazione:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.SP2010.Fantacalcio.zip" title="Fantacalcio con SharePoint 2010" target="_blank"&gt;PeppeDotNet.SP2010.Fantacalcio.zip (9,95 MB)&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Queste le slide:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/Introduzione SharePoint per DEV.pdf" title="Fantacalcio con SharePoint 2010" target="_blank"&gt;Introduzione SharePoint per DEV.pdf (3,93 MB)&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Questi sono i sorgenti della web part "Hello World" fatta alla tappa di Milano:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/DotNetCampusMilano.zip" title="Hello World web part" target="_blank"&gt;DotNetCampusMilano.zip (55,3 KB)&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Per chi era presente e vuole avvicinarsi ancora di più al mondo di SharePoint, si faccia avanti e mi scriva ! ;)
&lt;br /&gt;
&lt;br /&gt;&lt;a title=".NET Campus 2011 - Milano" href="http://www.dotnetcampus.it" target="_blank"&gt;&lt;img title=".NET Campus 2011 - Milano" src="http://www.peppedotnet.it/Images/dotnetcampus.jpg"&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/.NET Campus.aspx" title="TAG: .NET Campus"&gt;.NET Campus&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Fantacalcio.aspx" title="TAG: Fantacalcio"&gt;Fantacalcio&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/DotNetCampusDemoFantacalcioSharePoint.aspx" /><issued>2011-4-11T13:9:4+01:00</issued><modified>2011-4-11T13:9:4+01:00</modified></entry><entry><title>Team Foundation Server e SharePoint 2010 claims authentication</title><id>/Blog/TFSWithSP2010ClaimsAuthentication.aspx</id><created>2011-4-4T9:50:8+01:00</created><content type="text/html" mode="escaped">Se vi capita di installare Team Foundation Server e volete utilizzare SharePoint 2010 per la gestione dei vari team site di progetto, fate molta attenzione alla tipologia di autenticazione con cui create la web application che sarà poi legata a TFS.
&lt;br /&gt;Ve lo dico perchè durante una delle ultime installazioni di SharePoint che ho fatto, mi è capitato un errore un pò particolare. Cercando infatti di creare un nuovo progetto dalla toolbox team explorer, il processo di creazione falliva e mi veniva ritornato il seguente errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;TF218017: A Sharepoint Site could not be created for use as the team project portal. The following error ocurred: Server was unable to process request. --&gt; The User does not exists or is not unique --&gt; The User does not exists or is not unique.&lt;/div&gt;
&lt;br /&gt;Qual'era effettivamente il problema ? Avevo creato la web application in cui volevo inserire tutti i team site legati ai miei progetti TFS, scegliendo la Claims Mode Authentication come metodologia di autenticazione. 
&lt;br /&gt;Ecco, questo tipo di authenticazione non è supportato da TFS. E' bastato infatti ricreare la web application utilizzando la Classic Mode Authentication per far funzionare tutto come dovrebbe.
&lt;br /&gt;Ve lo scrivo, perchè ad oggi non ho trovato alcun tipo di documentazione a riguardo. Quindi magari a qualcuno può esser utile.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/TFS.aspx" title="TAG: TFS"&gt;TFS&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Claims.aspx" title="TAG: Claims"&gt;Claims&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/TFSWithSP2010ClaimsAuthentication.aspx" /><issued>2011-4-4T9:50:8+01:00</issued><modified>2011-4-4T9:50:8+01:00</modified></entry><entry><title>Office 365 community online !</title><id>/Blog/OnLineTheOffice365Community.aspx</id><created>2011-4-1T9:48:39+01:00</created><content type="text/html" mode="escaped">&lt;a title="Microsoft Office 365" href="http://office365.microsoft.com" target="_blank"&gt;&lt;img style="margin: 10px; float: right;" alt="Microsoft Office 365" src="http://www.peppedotnet.it/Images/office365.jpg"&gt;&lt;/a&gt;Da ieri (31 marzo 2011) è on-line il sito della comunity di &lt;a href="http://www.peppedotnet.it/Blog/Office365Intro.aspx" title="Introduzione ad Office 365" target="_blank"&gt;Office 365&lt;/a&gt; a questo indirizzo:
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://community.office365.com/en-us/default.aspx" title="Office 365 Community" target="_blank"&gt;http://community.office365.com&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Vi ricordo che se volete una introduzione su Office 365, alla &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference 2011" target="_blank"&gt;Microsoft SharePoint &amp; Office Conference 2011&lt;/a&gt; ci saranno due sessioni di Antonio Gazzeri:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Introduzione a Microsoft Office 365 (19 Aprile alle 11.15 – Sala A)&lt;/b&gt;
&lt;br /&gt;Microsoft Office 365 è la nuova generazione di servizi online che comprende Microsoft Office, SharePoint Online, Exchange Online e Lync Online nella loro versione cloud, cioé offerti in modalità "Software as a Service" (SaaS) ad aziende di ogni dimensione. Questa sessione introduce Office 365 a 360° :-), toccando aspetti legati alle funzionalità disponibili, alla gestione delle identità e del single-sign-on, e ai percorsi di migrazione, il tutto con un mix ricco di demo sull'ambiente beta per rendere più concreti gli argomenti trattati.
&lt;br /&gt; 
&lt;br /&gt;&lt;b&gt;Introduzione a SharePoint Online (19 Aprile alle 14.00 – Sala A)&lt;/b&gt; 
&lt;br /&gt;SharePoint Online è SharePoint offerto in modalità "Software as a Services" (SaaS) da Microsoft ad aziende di tutte le dimensioni. Questa sessione introduce le caratteristiche del servizio SharePoint Online, nell'ambito della più ampia suite di soluzioni di Microsoft Online che comprende anche servizi di posta elettronica, di comunicazione ed altri. Dopo una breve carrellata sulle opzioni di servizio disponibili e in arrivo, ci concentreremo sulla nuova versione di SharePoint Online – attualmente in beta – inclusa nella suite Office 365. Analizzeremo le funzionalità disponibili, gli approcci per la personalizzazione e gli aspetti legati all'amministrazione del servizio, il tutto con un mix ricco di demo sull'ambiente beta per rendere più concreti gli argomenti trattati.
&lt;br /&gt; 
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/OnLineTheOffice365Community.aspx" /><issued>2011-4-1T9:48:39+01:00</issued><modified>2011-4-1T9:48:39+01:00</modified></entry><entry><title>Come spostare un sito SharePoint: una precisazione</title><id>/Blog/HowToMoveSharePointSiteProgrammatically.aspx</id><created>2011-3-27T19:50:43+01:00</created><content type="text/html" mode="escaped">Ieri al .NET Campus, tra tutti gli altri amici e non, ho incontrato Giuliano, autore di un commento veramente utile ad uno dei miei &lt;a href="http://www.peppedotnet.it/Blog/HowToMoveSharePointSiteProgrammaticallyWithinTheSameSiteCollection.aspx" title="Come spostare un sito SharePoint nella stessa site collection" target="_blank"&gt;precedenti post&lt;/a&gt; e che ringrazio tanto per avermi dato anche una prova live di quanto aveva già scritto. 
&lt;br /&gt;Si parlava di come spostare un sito all'interno della medesima site colleciton SharePoint utilizzando l'utility a riga di comando STSADM o il modello ad oggetti di SharePoint stesso. Nel mio precedente post, avevo scritto in maniera un pò imprecisa l'operazione di "reparent" che può essere applicata ad un sito per permetterne lo spostamento in un'altra locazione della stessa site collection.
&lt;br /&gt;L'esempio che avevo scritto io era:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; oldUrl = &lt;span style="color: #A31515"&gt;"http://servername/DaSpostare/"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; newUrl = &lt;span style="color: #A31515"&gt;"Peppe/Spostato"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (SPSite site = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SPSite(oldUrl))
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (SPWeb web = site.OpenWeb())
&lt;br /&gt;{
&lt;br /&gt;  web.ServerRelativeUrl = newUrl;
&lt;br /&gt;  web.Update();
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Io l'avevo provato ed ero sicurissimo di quello che avevo scritto (per fortuna :), ma non avevo precisato una cosa.
&lt;br /&gt;Se provassimo, per esempio, a spostare un sito dall'indirizzo:
&lt;br /&gt;
&lt;br /&gt;http://servername/Padre/Figlio
&lt;br /&gt;
&lt;br /&gt;all'indirizzo:
&lt;br /&gt;
&lt;br /&gt;http://servername/Figlio
&lt;br /&gt;
&lt;br /&gt;Il codice sopra, pur non sollevando nessuna eccezione, non avrebbe eseguito alcuna operazione di "reparent" sul nostro sito, come invece noi ci aspettiamo.
&lt;br /&gt;Questo perchè il nuovo indirizzo deve essere "server-relative", quindi se volessi spostare un sito e metterlo direttamente sotto la root della site collection devo specificare lo "/" prima del nuovo indirizzo, altrimenti, specificando un nome senza percorso relativo, l'operazione di "reparent" viene fatta a partire dal sito corrente in giu.
&lt;br /&gt;Nell'esempio infatti, il sito "Figlio" viene spostato sempre sotto il sito "Padre" e NON sotto la root.
&lt;br /&gt;Per spostarlo sotto la root della nostra site collection, avrei dovuto scrivere:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; oldUrl = &lt;span style="color: #A31515"&gt;"http://servername/Padre/Figlio/"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; newUrl = &lt;span style="color: #A31515"&gt;"/Figlio"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (SPSite site = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SPSite(oldUrl))
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (SPWeb web = site.OpenWeb())
&lt;br /&gt;{
&lt;br /&gt;  web.ServerRelativeUrl = newUrl;
&lt;br /&gt;  web.Update();
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Questa precisazione è davvero importante innanzitutto perchè di permette di capire come effettivamente funziona l'operazione di "recap" di SharePoint e poi perchè ci fa saltare all'occhio che questo è l'unico modo che abbiamo per spostare un sito da una qualsiasi locazione alla root di site collection, in quanto l'utlity STSADM invece non implementa la funzionalità di spostare un sito direttamente sotto la root della site collection.
&lt;br /&gt;
&lt;br /&gt;Per fortuna ogni tanto c'è qualcuno che mi legge e mi corregge ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/STSADM.aspx" title="TAG: STSADM"&gt;STSADM&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToMoveSharePointSiteProgrammatically.aspx" /><issued>2011-3-27T19:50:43+01:00</issued><modified>2011-3-27T19:50:43+01:00</modified></entry><entry><title>Microsoft Technical Conferences 2011: agenda in continuo aggiornamento !</title><id>/Blog/UpdatedAgendaMicrosoftTechnicalConferences2011.aspx</id><created>2011-3-24T13:25:22+01:00</created><content type="text/html" mode="escaped">&lt;a title="Iscriviti alle Microsoft Technical Conferences 2011" href="http://www.mstechnicalconferences.it/" target="_blank"&gt;&lt;img style="margin: 10px; float: right;" alt="Iscriviti alle Microsoft Technical Conferences 2011" src="http://www.peppedotnet.it/Images/spoc-medium-rect_300x250.png"&gt;&lt;/a&gt;Come potete vedere direttamente dal &lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx" title="Microsoft Technical Conferences 2011" target="_blank"&gt;sito delle conferenze&lt;/a&gt;, l'agenda è in continuo aggiornamento ! Sono state aggiunte tante nuove sessioni, veramente interessanti che non potetevi perdervi.
&lt;br /&gt;Queste alcune delle novità:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#ALL201" title="Introduzione a SharePoint" target="_blank"&gt;Introduzione a SharePoint&lt;/a&gt; - Igor Macori e Paolo Pialorsi&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#SQL201" title="Using SQL Azure" target="_blank"&gt;Using SQL Azure&lt;/a&gt; - Roberto Brunetti&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#BI207" title="Cubi per tutti: Analysis Services senza wizard" target="_blank"&gt;Cubi per tutti: Analysis Services senza wizard&lt;/a&gt; - Francesco De Chirico&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#OFF201" title="Soluioni di Office Automation con SharePoint" target="_blank"&gt;Soluzioni di Office Automation con SharePoint&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#BI205" title="Common issue in Data Warehousing" target="_blank"&gt;Common issue in Data Warehousing&lt;/a&gt; - Alessandro Rezzani&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#ONL303" title="Scenari di integrazione tra SharePoint e Windows Azure" target="_blank"&gt;Scenari di integrazione tra SharePoint e Windows Azure&lt;/a&gt; - Fabio Santini e Massimo A. Santin&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#ALL202" title="Introduzione a Powershell" target="_blank"&gt;Introduzione a Powershell&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#SQL203" title="Understanding XQuery" target="_blank"&gt;Understanding XQuery&lt;/a&gt; - Dejan Sarka&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx?#SB323" title="Web development basics for SharePoint" target="_blank"&gt;Web development basics for SharePoint&lt;/a&gt; - Fabio Franzini&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;E questo è niente !! Controllate pure l'&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx" title="Microsoft Technical Conferences 2011" target="_blank"&gt;agenda&lt;/a&gt;..
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Conference.aspx" title="TAG: SharePoint Conference"&gt;SharePoint Conference&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/UpdatedAgendaMicrosoftTechnicalConferences2011.aspx" /><issued>2011-3-24T13:25:22+01:00</issued><modified>2011-3-24T13:25:22+01:00</modified></entry><entry><title>Scrivere query CAML per filtrare campi di tipo Lookup</title><id>/Blog/SharePoint2010CAMLQueriesToFilterLookupFields.aspx</id><created>2011-3-22T11:44:15+01:00</created><content type="text/html" mode="escaped">I campi lookup sono sicuramente tra i campi più utilizzati in SharePoint sin dalle prime versioni. Utilizzando il modello ad oggetti (server-side o client-side), ci può capitare di voler scrivere una query CAML che si preoccupi di filtrare le informazioni presenti su una particolare lista in base al valore di un campo di tipo Lookup.
&lt;br /&gt;Normalmente il primo filtro che ci può venire in mente di fare (o almeno.. a me è successo così :) è quello sul valore testuale del campo. Ecco quindi che per filtrare gli elementi di una lista, in base al valore di uno dei suoi campi di tipo Lookup, possiamo scrivere la seguente query CAML:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Query&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldRef&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="VOSTROCAMPOLOOKUP"&lt;/span&gt;  &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Type&lt;span style='color:#0000FF'&gt;="Lookup"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;PEPPE&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Query&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;E fin qua tutto bene..
&lt;br /&gt;Se ci pensate bene però, può anche capitare di avere dei valori doppi nella lista di lookup, mentre invece voi volete filtrare in base ad un valore ben preciso della vostra lista di lookup. Proprio per ovviare a questo problema, dobbiamo sapere che possiamo effettuare un filtro basandoci sul valore dell'ID del nostro campo di tipo Lookup.
&lt;br /&gt;Ecco come:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Query&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldRef&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="VOSTROCAMPOLOOKUP"&lt;/span&gt; LookupId&lt;span style='color:#0000FF'&gt;="TRUE"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Type&lt;span style='color:#0000FF'&gt;="Lookup"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;1&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Query&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;In questo caso ho filtrato gli elementi della mia ipotetica lista SharePoint in base al valore di lookup con ID = 1.
&lt;br /&gt;Vi assicuro che può essere veramente utile.
&lt;br /&gt;
&lt;br /&gt;Se volete conoscere altri di questi "trucchi", ci vediamo alla mia sessione &lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx#DEV304" title="SharePoint Development Basics &amp; Best Practices" target="_blank"&gt;"SharePoint Development Basics &amp; Best Practices"&lt;/a&gt; alla &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference 2011" target="_blank"&gt;Microsoft SharePoint Conference 2011&lt;/a&gt; il 19 Aprile 2011 alle 9.30 in sala B !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/CAML.aspx" title="TAG: CAML"&gt;CAML&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010CAMLQueriesToFilterLookupFields.aspx" /><issued>2011-3-22T11:44:15+01:00</issued><modified>2011-3-22T11:44:15+01:00</modified></entry><entry><title>Microsoft Office 365</title><id>/Blog/Office365Intro.aspx</id><created>2011-3-21T9:7:41+01:00</created><content type="text/html" mode="escaped">&lt;a href="http://office365.microsoft.com" title="Microsoft Office 365" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/office365.jpg" alt="Microsoft Office 365" style="float: right; margin: 10px;" /&gt;&lt;/a&gt;Avrete sicuramente sentito parlare di Office 365, o almeno ne avrete letto il nome nei blog o in qualche sito Microsoft. Molto spesso lo si presenta come la nuova versione di BPOS (Business Productivity Online Suite) o come la versione on-line dei programmi del pacchetto Office.
&lt;br /&gt;Sicuramente è tutto quanto ciò che avete sentito dire, anche se c'è da fare un pò di chiarezza.
&lt;br /&gt;Quindi, proprio per esser chiari, Office 365 rappresenta la nuova offerta flessibile da parte di Microsoft per la collaborazione e il supporto ai processi aziendali in ambiente distribuito. Così dicendo, non stiamo parlando solamente del pacchetto Office, ma di tutti quei software che usiamo quotidianamente e che ci aiutano a svolgere le nostre attività lavorative assieme con i nostri colleghi o i nostri clienti, offerti però in modalità "Software as a Serivce" (SaaS).
&lt;br /&gt;Office 365 infatti, è una vera e propria piattaforma distribuita a cui possiamo accedere tramite abbonamento e che ci da la possibilità di utilizzare una particolare versione di Office direttamente dal vostro browser, un server di posta Exchange in cui configurare varie cassette postali, una o più site collection SharePoint per condividere documenti e processi aziendali e l'utilizzo di Lync, la nuova versione di Office Comunicator per comunicare on-line con colleghi e clienti. 
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/Office365Includes.png" alt="Microsoft Office 365" /&gt; 
&lt;br /&gt;
&lt;br /&gt;Una soluzione completa quindi, totalmente ospitata presso i datacenter Microsoft. In tutto ciò Microsoft, da parte sua, si preoccupa sia della parte implementativa che della gestione, garantendo la disponibilità dei servizi del 99.9% e sgravandoci dei costi dovuti a queste operazioni e a quelli relativi all'acquisto di materiale hardware.
&lt;br /&gt;Attraverso un unico pannello di amministrazione poi, saremo in grado di acquistare uno o più dei pacchetti descritti prima (secondo il modello "pay-as-you-go"), di gestirne le varie configurazioni, di aggiungere nuovi account utente e applicare regole di sicurezza sia  per quanto riguarda gli accessi che per l’utilizzo o meno di certe funzionalità.
&lt;br /&gt;Attualmente Office 365 è in versione beta, ma possiamo già conoscere i suoi punti di forza:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Massima produttività – possiamo infatti lavorare in team in maniera efficace e sfruttare al massimo tutto l'ambiente di collaborazione che ci viene offerto.&lt;/li&gt;&lt;li&gt;Accesso globale – possiamo raggiungere i nostri contenuti da qualsiasi locazione e utilizzando qualsiasi dispositivo, dal vostro pc in ufficio o a casa, al vostro smartphone.
&lt;br /&gt;- Abbiamo accesso ai servizi sia on-line che off-line grazie agli applicativi Office, sia su MAC che su PC.
&lt;br /&gt;- Possiamo visualizzare e modificare documenti utilizzando le Office Web Apps e sfruttando un'ampia gamma di browser supportati (Internet Explorer, Firefox, Chrome, Safari, ecc ...).
&lt;br /&gt;- Abbiamo accesso alla nostra inbox, ai contatti e al calendario sia dal browser che da centinaia di dispositivi tra cui Iphone, BlackBerry, Windows Phone e Nokia.
&lt;br /&gt;- Possiamo connetterci in sicurezza attraverso internet sfruttando il protocollo HTTPS senza la necessità di avere una VPN installata.&lt;/li&gt;&lt;li&gt;Lavorare con software già conosciuti – possiamo infatti sfruttare tutto il know-how che abbiamo acquisito fin’ora con le versioni "on-premise" dei programmi del pacchetto Office, di SharePoint, Exchange e Office Communicator, per utilizzare le stesse versioni on-line.&lt;/li&gt;&lt;li&gt;Alta affidabilità e sicurezza – Microsoft vi da disponibilità dei servizi al 99,9% garantita e si preoccupa di fornirvi la corretta applicazione della security sui vostri contenuti.&lt;/li&gt;&lt;li&gt;Efficenza e controllo delle risorse IT – Abbiamo controllo totale sugli account e le configurazioni di tutto quanto.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Ad oggi c'è una beta  a cui è possibile accedere su richiesta, si conoscono già molte specifiche tecniche, funzionalità e alcuni dei prezzi o dei pacchetti offerti. Vi avviso che non sono ancora definitivi, ma potete dargli già un'occhiata visitando il sito:
&lt;br /&gt;- &lt;a href="http://office365.microsoft.com" title="Microsoft Office 365" target="_blank"&gt;http://office365.microsoft.com&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete però un'introduzione completa sia alla piattaforma Office 365 che alla parte relativa a SharePoint Online, iscrivetevi alla &lt;a href="http://www.sharepointconference.it" title="Microsoft SharePoint &amp; Office Conference 2011" target="_blank"&gt;Microsoft SharePoint &amp; Office Conference 2011&lt;/a&gt; che si terrà il 19,20 e 21 Aprile 2011 a Milano. In questa occasione, Antonio Gazzeri ci introdurrà i due argomenti in due distinte sessioni:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Introduzione a Microsoft Office 365 (19 Aprile alle 11.15 – Sala A)&lt;/b&gt;
&lt;br /&gt;Microsoft Office 365 è la nuova generazione di servizi online che comprende Microsoft Office, SharePoint Online, Exchange Online e Lync Online nella loro versione cloud, cioé offerti in modalità "Software as a Service" (SaaS) ad aziende di ogni dimensione. Questa sessione introduce Office 365 a 360° :-), toccando aspetti legati alle funzionalità disponibili, alla gestione delle identità e del single-sign-on, e ai percorsi di migrazione, il tutto con un mix ricco di demo sull'ambiente beta per rendere più concreti gli argomenti trattati.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Introduzione a SharePoint Online (19 Aprile alle 14.00 – Sala A)&lt;/b&gt;
&lt;br /&gt;SharePoint Online è SharePoint offerto in modalità "Software as a Services" (SaaS) da Microsoft ad aziende di tutte le dimensioni. Questa sessione introduce le caratteristiche del servizio SharePoint Online, nell'ambito della più ampia suite di soluzioni di Microsoft Online che comprende anche servizi di posta elettronica, di comunicazione ed altri. Dopo una breve carrellata sulle opzioni di servizio disponibili e in arrivo, ci concentreremo sulla nuova versione di SharePoint Online – attualmente in beta – inclusa nella suite Office 365. Analizzeremo le funzionalità disponibili, gli approcci per la personalizzazione e gli aspetti legati all'amministrazione del servizio, il tutto con un mix ricco di demo sull'ambiente beta per rendere più concreti gli argomenti trattati.
&lt;br /&gt;
&lt;br /&gt;&lt;a title="Microsoft Technical Conferences" href="http://www.technicalconferences.it/default.aspx" target="_blank"&gt;&lt;img alt="Microsoft Technical Conferences" src="/Images/banner_Leaderboard-10.png"&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;A breve poi, vedremo in dettaglio che cosa offre la versione on-line di SharePoint 2010.. che a noi è questo che interessa! ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Conference.aspx" title="TAG: SharePoint Conference"&gt;SharePoint Conference&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office 365.aspx" title="TAG: Office 365"&gt;Office 365&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Online.aspx" title="TAG: SharePoint Online"&gt;SharePoint Online&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/Office365Intro.aspx" /><issued>2011-3-21T9:7:41+01:00</issued><modified>2011-3-21T9:7:41+01:00</modified></entry><entry><title>Le mie sessioni alla Microsoft SharePoint Conference 2011</title><id>/Blog/MySessionsAtMicrosoftSharePointConference2011.aspx</id><created>2011-3-17T12:29:32+01:00</created><content type="text/html" mode="escaped">&lt;a href="http://www.mstechnicalconferences.it/" title="Iscriviti alle Microsoft Technical Conferences 2011" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/Images/spoc-medium-rect_300x250.png" alt="Iscriviti alle Microsoft Technical Conferences 2011" style="float: right; margin: 10px" /&gt;&lt;/a&gt;L'&lt;a href="http://www.sharepointconference.it/events/2011/agenda.aspx" title="Agenda Microsoft Technical Conferences 2011" target="_blank"&gt;agenda&lt;/a&gt; sta quasi per essere conclusa, la macchina organizzativa è partita da un bel pezzo, sono già finiti i vari periodi di sconti e agevolazioni, appaiono i primi sponsor.. ci siamo quasi !
&lt;br /&gt;Manca un mese all'evento dell'anno, le &lt;a href="http://www.mstechnicalconferences.it/" title="Microsoft Technical Conferences" target="_blank"&gt;Microsoft Technical Conferences&lt;/a&gt;. Tre giorni (19, 20 e 21 Aprile 2011)  di formazione tecnica ad alto livello, tenuti da oltre 60 degli speaker più famosi del mondo IT sulle tecnologie Microsoft del momento. In un'unica location (MIC - Fiera Milano Congressi), le tre più importanti conferenze tecniche sulle soluzioni Microsoft in Italia:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/" title="Microsoft Office &amp; SharePoint Conference 2011" target="_blank"&gt;Microsoft Office &amp; SharePoint Conference 2011&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sqlconference.it/" title="Microsoft SQL Server &amp; BI Conference 2011" target="_blank"&gt;Microsoft SQL Server &amp; BI Conference 2011&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ucconference.it/" title="Microsoft Unified Communication &amp; Collaboration Conference 2011" target="_blank"&gt;Microsoft Unified Communication &amp; Collaboration Conference 2011&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Io sarò speaker per la parte SharePoint e terrò 3 sessioni. Eccole nel dettaglio:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;SharePoint Development Basics &amp; Best Practices (Sala B - 9.30 del 19 Aprile 2011)&lt;/b&gt;
&lt;br /&gt;Sviluppare applicazioni per SharePoint 2010 prevede un certo numero di conoscenze di base, partendo dai concetti logici di sito e lista fino ad arrivare alla programmazione vera e propria tramite uno dei modelli ad oggetti esposti. In questa sessione impareremo a programmare SharePoint 2010 e impareremo a farlo seguendo le principali linee guida. Vedremo che cos'è una web part e come implementarla, che cosa significa sviluppare una pagina, che cosa sono le feature e le soluzioni; vedremo come far proprio il modello ad oggetti server-side e i concetti di accesso ai dati, provisioning di strutture e di gestione e personalizzazione degli eventi scatenati da SharePoint stesso. Il tutto imparando ad utilizzare le principali best practices fornite da Microsoft.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Silverlight 4 and SharePoint 2010 get married ! (Sala B - 14.00 del 19 Aprile 2011&lt;/b&gt;
&lt;br /&gt;Una sessione con tanto codice per imparare a creare interfacce e applicazioni utili, facili da usare e con una grande user experience, attraverso lo sviluppo di Rich Internet Application in grado di integrarsi con le informazioni presenti all’interno di SharePoint 2010.
&lt;br /&gt;Insomma... un matrimonio perfetto tra la piattaforma di collaborazione Microsoft e l’ultima versione di Silverlight.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Il Client Object Model di SharePoint 2010 (Sala B - 11.15 del 20 Aprile 2011)&lt;/b&gt;
&lt;br /&gt;Il Client Object Model di SharePoint 2010 SharePoint Foundation 2010 ha introdotto una serie di nuovi modelli ad oggetti che permettono agli sviluppatori di scrivere applicazioni che accedono ai dati di SharePoint sia da applicazioni .NET che risiedono client-side, sia da applicazioni Silverlight, che tramite codice Javascript eseguito lato client all'interno del browser. Tramite questo nuovo modello di programmazione infatti, siamo in grado di scrivere codice senza dover installare niente sul server SharePoint, senza dover richiamare dei web services e mantenendo nelle nostre applicazioni il paradigma di programmazione ad oggetti. Questa sessione introduce il modello di sviluppo client-side di SharePoint 2010 e, attraverso tanti esempi pratici, si vedrà in dettaglio come sfruttarlo al meglio per le nostre esigenze.
&lt;br /&gt;
&lt;br /&gt;Mi raccomando, &lt;a href="http://www.sharepointconference.it/events/2011/register.aspx" title="Iscriviti alle Microsoft Technical Conferences 2011" target="_blank"&gt;iscrivetevi&lt;/a&gt; e non fatevi sfuggire quest'evento.. che se ne vedranno delle belle! 
&lt;br /&gt;E sopratutto, se venite.. non siate timidi e fatevi riconoscere, che ci fa solo piacere ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Conference.aspx" title="TAG: SharePoint Conference"&gt;SharePoint Conference&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MySessionsAtMicrosoftSharePointConference2011.aspx" /><issued>2011-3-17T12:29:32+01:00</issued><modified>2011-3-17T12:29:32+01:00</modified></entry><entry><title>Il controllo FileUpload non &#232; disponibile all'interno di soluzioni sandbox di SharePoint 2010</title><id>/Blog/FileUploadNotAvailableOnSandboxSolutions.aspx</id><created>2011-3-15T18:15:15+01:00</created><content type="text/html" mode="escaped">Se avete intenzione di scrivere una web part che utilizza o il controllo FileUpload o il controllo HtmlInputFile e di effettuarne il deploy tramite una Sandbox Solution sappiate che vi troverete di fronte ad una bella sorpresa.
&lt;br /&gt;In pratica, a casa dei limiti di sicurezza che ha il processo in cui girano le soluzioni deployate come "sandbox" (il processo "User Code"), non è possibile accedere al contesto HTTP corrente e quindi recuperare il file che l'utente ha intenzione di postare. Infatti, come potete vedere in figura, il contenuto della proprietà PostedFile della classe FileUpload è nullo.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/FileUploadErrorOnSandboxSolutions.jpg" alt="Il controllo FileUpload non è disponibile all'interno di soluzioni sandbox di SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Se lo stesso codice lo spostate in una Farm Solution, vedrete che il meccanismo di upload proprio del controllo ASP.NET in questione, funzionerà senza alcun problema.
&lt;br /&gt;Purtroppo non c'è soluzione a questo limite, a meno di utilizzare javascript e fare l'upload di file attraverso il modello ad oggetti client-side.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Sandbox Solution.aspx" title="TAG: Sandbox Solution"&gt;Sandbox Solution&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/FileUploadNotAvailableOnSandboxSolutions.aspx" /><issued>2011-3-15T18:15:15+01:00</issued><modified>2011-3-15T18:15:15+01:00</modified></entry><entry><title>Errore &quot;This site is not assigned to an index&quot; in SharePoint Foundation 2010</title><id>/Blog/ThisSiteIsNotAssignedToIndexer.aspx</id><created>2011-3-10T17:10:30+01:00</created><content type="text/html" mode="escaped">Se provate a fare una nuova ricerca su uno dei vostri siti SharePoint Foundation 2010 e vi viene stampato a video questo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;Your search cannot be completed because this site is not assigned to an indexer&lt;/div&gt;
&lt;br /&gt;Sappiate che dovete:
&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Scegliere un utente con i corretti privilegi sia sul file system che sul database dei contenuti&lt;/li&gt;&lt;li&gt;Avviare il servizio di ricerca di SharePoint (scegliendo l'opzione "Services on server" dalla home page della central administration)&lt;/li&gt;&lt;li&gt;Scegliere poi l'opzione "Manage content databases" (sempre dalla home della Central Administration)
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/indexErrorSPFoundation2010_1.jpg" alt="Errore This site is not assigned to an index in SharePoint Foundation 2010" /&gt;&lt;/li&gt;&lt;li&gt;Selezionare il vostro content database e scegliere poi il server di indicizzazione
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/indexErrorSPFoundation2010_2.jpg" alt="Errore This site is not assigned to an index in SharePoint Foundation 2010" /&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;Fatto questo, dovete solo aspettare che finisca l'indicizzazione.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Search.aspx" title="TAG: Search"&gt;Search&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ThisSiteIsNotAssignedToIndexer.aspx" /><issued>2011-3-10T17:10:30+01:00</issued><modified>2011-3-10T17:10:30+01:00</modified></entry><entry><title>Slide e demo della mia sessione su SharePoint 2010 e Azure</title><id>/Blog/SlideAndDemosOfSharePoint2010AndAzureSession.aspx</id><created>2011-3-8T11:35:24+01:00</created><content type="text/html" mode="escaped">&lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;&lt;IMG style="MARGIN: 5px; FLOAT: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;&lt;/a&gt;Come vi dicevo, ieri c'è stato l'evento su Windows Azure organizzato dai ragazzi di DotNetLombardia ed è stata una bella giornata.
&lt;br /&gt;Vi lascio qua le slide e le demo che ho utilizzato per la mia sessione su come integrare SharePoint 2010 con Windows Azure.
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.peppedotnet.it/zip/Integrating SharePoint with Azure.pdf" title="Slide in pdf" target="_blank"&gt;Slide in formato PDF (820 kb)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.AzureDay.zip" title="Demo" target="_blank"&gt;Demo (6.6 mb)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Vi ricordo inoltre che se volete più informazioni su Windows Azure, potete far riferimento ai blog di &lt;a href="http://blogs.msdn.com/b/mariofontana/" title="Mario Fontana" target="_blank"&gt;Mario&lt;/a&gt;, &lt;a href="http://dotnetlombardia.org/b/rob/default.aspx" title="Roberto Freato" target="_blank"&gt;Roberto&lt;/a&gt; (che sta scrivendo una &lt;a href="http://dotnetlombardia.org/b/rob/archive/tags/windows+azure+training/default.aspx" title="Articoli su Windows Azure" target="_blank"&gt;serie di articoli&lt;/a&gt; proprio su Windows Azure) e &lt;a href="http://dotnetside.org/blogs/fabio/" title="Fabio Cozzolino" target="_blank"&gt;Fabio&lt;/a&gt; (il cui libro su Windows Azure sarà presto in libreria).
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Azure.aspx" title="TAG: Azure"&gt;Azure&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SlideAndDemosOfSharePoint2010AndAzureSession.aspx" /><issued>2011-3-8T11:35:24+01:00</issued><modified>2011-3-8T11:35:24+01:00</modified></entry><entry><title>Integrare i dati di SQL Azure all'interno di SharePoint 2010</title><id>/Blog/SqlAzureAndSharePoint2010WithBCSPart3.aspx</id><created>2011-3-8T11:14:12+01:00</created><content type="text/html" mode="escaped">&lt;img style="MARGIN: 5px; FLOAT: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;Fresco dall'&lt;a href="http://azureday01.dotnetlombardia.org/" title="Windows Azure Day" target="_blank"&gt;Azure Day&lt;/a&gt;, svolto ieri in Microsoft e organizzato da &lt;a href="http://www.dotnetlombardia.org/" title="DotNetLombardia" target="_blank"&gt;DotNetLombardia&lt;/a&gt;, vi scrivo per avvisarvi che è stata pubblicata la terza parte del mio articolo riguardo l'integrazione tra SharePoint 2010 e SQL Azure all'interno di &lt;a href="http://www.sharepointcommunity.it/" title="SharePointCommunity.it" target="_blank"&gt;SharePoint Community&lt;/a&gt;.
&lt;br /&gt;In questa terza parte potrete vedere come configurare un external content type, utilizzando SharePoint Designer 2010, in modo da definire la struttura delle informazioni esterne presenti all'interno di SQL Azure e gestirle tramite le interfacce di default di SharePoint 2010.
&lt;br /&gt;L'insieme dei 3 articoli, che vi riporto qui sotto, è stata anche una delle demo che ho fatto vedere ai partecipanti dell'evento di ieri e vi assicuro che è una cosa veramente molto utile.
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 1" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=25" target=_blank&gt;Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 2" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=26" target=_blank&gt;Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 3" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=27" target=_blank&gt;Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 3&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Spero vi sia piaciuta questa mini-serie di articoli.
&lt;br /&gt;Poi, se volete avere maggiori informazioni più dettagliate riguardo SharePoint 2010, i BCS e l'integrazione con Windows Azure, vi ricordo che potete ancora iscrivervi alla &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference 2011" target="_blank"&gt;SharePoint Conference 2011&lt;/a&gt; che si terrà a Milano (Assago) il 19,20 e 21 Aprile 2011.
&lt;br /&gt;
&lt;br /&gt;&lt;a title="Microsoft Technical Conferences" href="http://www.technicalconferences.it/default.aspx" target="_blank"&gt;&lt;img alt="Microsoft Technical Conferences" src="/Images/banner_Leaderboard-10.png"&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Azure.aspx" title="TAG: Azure"&gt;Azure&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SQL Azure.aspx" title="TAG: SQL Azure"&gt;SQL Azure&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SqlAzureAndSharePoint2010WithBCSPart3.aspx" /><issued>2011-3-8T11:14:12+01:00</issued><modified>2011-3-8T11:14:12+01:00</modified></entry><entry><title>Come cancellare content types &quot;orfani&quot; da una site collection SharePoint</title><id>/Blog/HowToDeleteSharePoint2010OrphanContentTypes.aspx</id><created>2011-3-4T14:38:38+01:00</created><content type="text/html" mode="escaped">Se lavorate con i content type all'interno delle vostre soluzioni di provisioning su SharePoint, vi sarà capitato di non riuscire più a cancellare un content type rimasto "orfano" dalle tante operazioni di deployment e retract che avrete fatto durante la fase di sviluppo e test.
&lt;br /&gt;Ho usato il termine "orfano" poichè normalmente è corretto che SharePoint ci vieti di cancellare un content type (dai site settings del nostro sito) se questo è ancora in uso, ma molto spesso può capitare che l'operazione di cancellazione venga comunque vietata anche se siete sicuri al 100% che il vostro content type non è più in uso su nessuna lista o document library (per essere sicuri, fate riferimento a &lt;a href="http://blog.thekid.me.uk/archive/2008/11/03/a-tip-when-looking-at-the-sharepoint-content-db.aspx" title="Come controllare che il vostro content type non sia più utilizzato" target="_blank"&gt;questo post&lt;/a&gt;).
&lt;br /&gt;Nello specifico, il messaggio d'errore che viene visualizzato dall'interfaccia o all'interno del log di SharePoint è il seguente:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;The content type "NOME DEL VOSTRO CONTENT TYPE" is part of an application feature.   at Microsoft.SharePoint.SPContentTypeCollection.DeleteFromWeb(SPContentTypeId id, String strName) 
&lt;br /&gt;   at Microsoft.SharePoint.SPContentTypeCollection.Delete(SPContentTypeId id) 
&lt;br /&gt;   at Microsoft.SharePoint.SPContentType.Delete() 
&lt;br /&gt;   at Microsoft.SharePoint.ApplicationPages.ManageContentTypePage.DeleteContentType() 
&lt;br /&gt;   at Microsoft.SharePoint.ApplicationPages.ManageContentTypePage.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 
&lt;br /&gt;   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 
&lt;br /&gt;   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 
&lt;br /&gt;   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)&lt;/div&gt;
&lt;br /&gt;Per prima cosa dobbiamo controllare se sono presenti all'interno del recycle bin una o più liste che utilizzavano il content type in questione e che magari abbiamo deciso di cancellare. Quindi, svuotiamo il cestino di SharePoint da queste liste e proviamo ad eliminare di nuovo il content type.
&lt;br /&gt;
&lt;br /&gt;Se ci viene ritornato ancora l'errore descritto sopra, possiamo considerare il content type come "orfano" e possiamo procedere alla sua cancellazione. Per compiere questa operazione bisogna sporcarsi un pò le mani e modificare direttamente il database dei contenuti della vostra web application SharePoint.
&lt;br /&gt;&lt;div style="margin: 7px; margin-left: 10px"&gt;So bene che vi consiglio sempre di NON modificare a mano il database di SharePoint ed utilizzare il modello ad oggetti, ma purtroppo in questo caso è proprio necessario, perchè non esiste altro modo di poter cancellare il content type da cui scaturisce l'errore, ne utilizzando SharePoint Designer ne uno dei modelli ad oggetti disponibili (server, client o web services).&lt;/div&gt;
&lt;br /&gt;Apriamo quindi SQL Management Studio, selezioniamo il database di contenuto relativo alla web application in cui abbiamo riscontrato l'errore e scegliamo di effettuare una nuova query. Questa serve per controllare la presenza effettiva del nostro content type, tramite il suo identificativo.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;SELECT *  FROM [NOME DATABASE].[dbo].[ContentTypes] 
&lt;br /&gt;WHERE (sys.fn_varbintohexstr(ContentTypeId) LIKE 'VOSTRO CONTENT TYPE ID%')&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo riuscirete a recuperare la riga corrispondente alla definizione del vostro content type. Da notare è il campo IsFromFeature, che sarà sicuramente valorizzato a "1".
&lt;br /&gt;
&lt;br /&gt;Per risolvere quindi il problema originale di cancellazione del content type, basta settare il valore di quel campo a "0" tramite una normalissima query di update.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Update [NOME DATABASE].[dbo].[ContentTypes] 
&lt;br /&gt;SET [IsFromFeature] = 0 
&lt;br /&gt;WHERE (sys.fn_varbintohexstr(ContentTypeId) LIKE 'VOSTRO CONTENT TYPE ID%')&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Fatto questo update, sarete così in grando di cancellare il content type orfano.
&lt;br /&gt;
&lt;br /&gt;MI RACCOMANDO, utilizzate questa tecnica solo se siete sicuri al 100% che il vostro content type non ha più alcuna referenza su nessuna lista all'intenro della vostra site collection (per fare questo controllo, fate sempre riferimento a &lt;a href="http://blog.thekid.me.uk/archive/2008/11/03/a-tip-when-looking-at-the-sharepoint-content-db.aspx" title="Come controllare che il vostro content type non sia più utilizzato" target="_blank"&gt;questo post&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Content type.aspx" title="TAG: Content type"&gt;Content type&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToDeleteSharePoint2010OrphanContentTypes.aspx" /><issued>2011-3-4T14:38:38+01:00</issued><modified>2011-3-4T14:38:38+01:00</modified></entry><entry><title>Come esportare la definizione di una web part in SharePoint 2010</title><id>/Blog/HowToExportWebPartInSharePoint2010.aspx</id><created>2011-3-3T11:38:41+01:00</created><content type="text/html" mode="escaped">Mi sono accorto di questa cosa un pò di tempo fa, mentre stavo cercando di mettere in piedi una site definition in SharePoint 2010. Il mio intento era quello di far apparire nella home del nuovo sito creato a partire dal template che stavo appunto definendo, un pò di web part (sia di default di SharePoint che custom); per farlo, avevo bisogno dell'XML che definisce la web part in se.
&lt;br /&gt;Utilizzando WSS 3.0/MOSS 2007 (la vecchia versione di SharePoint per intenderci) potevo recuperare la struttura di definizione delle web part che volevo inserire all'interno della home della mia site definition, selezionando il menu contestuale della web part e scegliendo l'opzione "Export", così da poter scaricare l'XML di definizione della web part ed utilizzarlo all'interno della mia site definition.
&lt;br /&gt;Vado per fare la stessa operazione su una Silverlight Web Part posizionata in uno dei miei siti SharePoint 2010 e, sopresa delle sorprese, non trovo più quell'opzione che era davvero tanto comoda (vedi immagine).
&lt;br /&gt;E' vero che posso recuperare quell'XML di definizione in tanti modi, ma farlo direttamente dalla UI di SharePoint è sicuramente molto più immediato.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/exportWebPart1.jpg" alt="Come esportare la definizione di una web part in SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;C'è un modo però per far riapparire quell'opzione. Se scegliamo di modificare le proprietà della web part e espandiamo il gruppo "Advanced", troviamo la proprietà "Export Mode" settata a "Do not allow".
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/exportWebPart2.jpg" alt="Come esportare la definizione di una web part in SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Valorizzando questa proprietà con uno dei due altri valori disponibili riusciamo a vedere l'opzione di export nella nostra web part e recuperarne il file di definizione.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/exportWebPart3.jpg" alt="Come esportare la definizione di una web part in SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Praticamente l'hanno solo nascosto, per fortuna !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToExportWebPartInSharePoint2010.aspx" /><issued>2011-3-3T11:38:41+01:00</issued><modified>2011-3-3T11:38:41+01:00</modified></entry><entry><title>Guest post sul blog di MSDN Italia: SharePoint 2010 e Azure</title><id>/Blog/MSDNItalyGuesPostSharePointAzure.aspx</id><created>2011-2-28T22:14:3+01:00</created><content type="text/html" mode="escaped">&lt;img style="float: right; margin-left: 10px" alt="Windows Azure Day" src="http://www.peppedotnet.it/Images/azureDay.png" /&gt;Direttamente dal blog del team di &lt;a href="http://blogs.msdn.com/b/italy/" title="MSDN Italia" target="_blank"&gt;MSDN Italia&lt;/a&gt;, è stato pubblicato un mio "guest post" riguardante l'integrazione tra SharePoint 2010 e la piattaforma Windows Azure.
&lt;br /&gt;Ecco qua il link diretto:
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://blogs.msdn.com/b/italy/archive/2011/02/27/guest-post-integrazione-tra-sharepoint-2010-e-windows-azure.aspx" title="Guest post: Integrazione tra SharePoint 2010 e Windows Azure" target="_blank"&gt;Guest post: Integrazione tra SharePoint 2010 e Windows Azure&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;E' più che altro un'introduzione di quello che potete già leggere su &lt;a href="http://www.sharepointcommunity.it" title="SharePointCommunity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; o di quello che potrete vedere e sentire all'&lt;a href="" title="Windows Azure Day" target="_blank"&gt;Azure Day&lt;/a&gt;, il 7 marzo 2011 presso la sede di Microsoft a Segrete (Milano) con me e i ragazzi di DotNetLombardia.
&lt;br /&gt;Un grazie a &lt;a href="http://blogs.msdn.com/b/pietrobr/" title="Pietro Brambati" target="_blank"&gt;Pietro&lt;/a&gt; per la pubblicazione !
&lt;br /&gt;
&lt;br /&gt;Buona lettura ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Azure.aspx" title="TAG: Azure"&gt;Azure&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MSDNItalyGuesPostSharePointAzure.aspx" /><issued>2011-2-28T22:14:3+01:00</issued><modified>2011-2-28T22:14:3+01:00</modified></entry><entry><title>Integrare i dati di SQL Azure all'interno di SharePoint 2010</title><id>/Blog/SqlAzureAndSharePoint2010WithBCS.aspx</id><created>2011-2-25T18:26:6+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 5px; float: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;Ho interrotto un pò la serie di articoli sul &lt;a href="/Tags/Client%20Object%20Model.aspx" title="Client Object Model" target="_blank"&gt;Client Object Model&lt;/a&gt; all'interno di &lt;a href="http://www.sharepointcommunity.it" title="SharePointCommunity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; per parlare un pò di Azure e SharePoint 2010.
&lt;br /&gt;Oggi, infatti, è stata pubblicata la prima parte (1 di 3) di un tutorial per imparare ad utilizzare i Business Connectivity Services in modo da integrare i dati salvati all'interno di SQL Azure con le interfacce di default di SharePoint 2010, così da permetterne la gestione tramite le normali operazioni CRUD e il loro utilizzo all'interno di programmi del pacchetto Office (attraverso il runtime lato client proprio dei BCS).
&lt;br /&gt;Ecco l'indirizzo di questa prima parte del tutorial:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=25" title="Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 1" target="_blank"&gt;Integrare i dati di SQL Azure all'interno di SharePoint 2010 - Parte 1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Questa è una delle possibili integrazioni che possiamo implementare tra i due prodotti. Ne abbiamo tante altre, date proprio dalla disponibilità di SharePoint ad essere esteso e a recuperare informazioni da archivi esterni al suo contesto.
&lt;br /&gt;
&lt;br /&gt;Vi ricordo che potete avere un'anteprima di queste tecniche, delle altre che ancora non vi ho anticiapto (ma che vi anticiperò a breve) e in generale di Windows Azure, il giorno 7 Marzo 2011 presso la sede Microsoft di Segrate (Milano) all'evento gratuito &lt;a href="http://azureday01.dotnetlombardia.org/" title="Windwos Azure Day @Microsoft" target="_blank"&gt;"Windows Azure Day"&lt;/a&gt; organizzato dai ragazzi di DotNetLombardia.
&lt;br /&gt;
&lt;br /&gt;Se invece, volete andare più nel dettaglio, questa è l'ultima settimana disponibile per sfruttare l'Early Bind ed iscriversi alle &lt;a href="http://www.mstecnicalconferences.it" title="Microsoft Technical Conferences" target="_blank"&gt;Microsoft Technical Conferences&lt;/a&gt; !
&lt;br /&gt;Passato questo ultimo sconto, anche se mi assicuro che ne verrà la pena, dovrete pagare il prezzo pieno.
&lt;br /&gt;
&lt;br /&gt;&lt;a title="Microsoft Technical Conferences" href="http://www.technicalconferences.it/default.aspx" target=_blank&gt;&lt;img alt="Microsoft Technical Conferences" src="/Images/banner_Leaderboard-10.png"&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Azure.aspx" title="TAG: Azure"&gt;Azure&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SQLAzure.aspx" title="TAG: SQLAzure"&gt;SQLAzure&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SqlAzureAndSharePoint2010WithBCS.aspx" /><issued>2011-2-25T18:26:6+01:00</issued><modified>2011-2-25T18:26:6+01:00</modified></entry><entry><title>Una giornata all'insegna di Windows Azure</title><id>/Blog/SharePointAndWindowsAuzure.aspx</id><created>2011-2-22T17:28:9+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/azureDay.png" alt="Windows Azure Day" style="float: right; margin-left: 10px" /&gt;Gli amici di &lt;a href="http://azureday01.dotnetlombardia.org/" title="Windows Azure Day - DotNetLombardia" target="_blank"&gt;DotNetLombardia&lt;/a&gt; stanno organizzando un evento grauito su Windows Azure, la piattaforma Microsoft per il cloud computing. L'evento sarà presso la sede Microsoft di Segrate (Milano) il giorno 7 marzo 2011.
&lt;br /&gt;Assieme a Roberto e Matteo, ci sarò anche io a parlarvi di come integrare i servizi e le potenzialità di Windows Azure con SharePoint 2010 (tanto per cambiare :) così da poter vedere come sfruttare le potenzialità di entrambi i prodotti ed essere pronti per passare al cloud o per interagire con esso.
&lt;br /&gt;A breve poi, seguiranno anche degli articoli a riguardo sul sito della &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;community&lt;/a&gt;.
&lt;br /&gt;La sessione sarà una "intro" di quello che potrete vedere alla &lt;a href="http://www.sharepointconference.it" target="_blank"&gt;SharePoint Conference&lt;/a&gt; di questo Aprile 2011.
&lt;br /&gt;
&lt;br /&gt;Se volete vedere l'agenda completa e registrarvi all'evento, questo è l'indirizzo:
&lt;br /&gt;&lt;a href="http://azureday01.dotnetlombardia.org/" title="Microsoft Windows Azure Day - DotNetLombardia" target="_blank"&gt;http://azureday01.dotnetlombardia.org/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;E, se volete sapere la mia.. sarà una bella giornata.. Vi aspettiamo !
&lt;br /&gt;Peppe
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Windows Azure.aspx" title="TAG: Windows Azure"&gt;Windows Azure&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePointAndWindowsAuzure.aspx" /><issued>2011-2-22T17:28:9+01:00</issued><modified>2011-2-22T17:28:9+01:00</modified></entry><entry><title>Query LINQ tramite il Client Object Model di SharePoint 2010</title><id>/Blog/LINQQueriesWithSharePoint2010ClientObjectModel.aspx</id><created>2011-2-21T9:12:43+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 5px; float: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg"&gt;Continua la mia serie di articoli sul Client Object Model di SharePoint 2010 pubblicati all'interno di &lt;a href="http://www.sharepointcommunity.it" title="SharePointCommunnity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; ! 
&lt;br /&gt;In questa puntata vedremo come è possibile utilizzare delle query LINQ per recuperare oggetti di contenuto filtrandoli prima di effettuare la query al server SharePoint.
&lt;br /&gt;Negli articoli visti fin'ora, abbiamo sempre recuperato informazioni da SharePoint utilizzando il metodo Load della classe ClientContext, a cui abbiamo sempre passato o degli oggetti specifici (siti, liste, collezioni di elementi, ecc...) o il risultato di una query CAML (per quanto riguarda la lettura di elementi di una singola lista).
&lt;br /&gt;Il modello ad oggetti client-side però può offrire molto di più di questo. Infatti, una delle sue potenzialità nasce dall'intergrazione con LINQ, che ci permette di scegliere gli oggetti da inserire nella richiesta al server SharePoint attraverso una query fatta direttamente all'interno del nostro linguaggio .NET preferito, in grado di filtrare a priori i risultati. E' da notare che, per tutti quegli oggetti di contenuto (vedi per esempio una collezione di liste), senza utilizzzare una query LINQ, non è proprio possibile applicare dei filtri prima di far partire la richiesta e questa tecnica ci facilita veramente la vita, anche perchè alza notevolmente le performance delle nostre applicazioni client-side.
&lt;br /&gt;Vi lascio qua il link diretto all'articolo:
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=24" title="Query LINQ tramite il Client Object Model di SharePoint 2010" target="_blank"&gt;Query LINQ tramite il Client Object Model di SharePoint 2010&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Mentre qua trovate un riepilogo su tutti gli articoli legati al Client Object Model di SharePoint 2010 pubblicati sul sito della community. 
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Introduzione alle Client-Side API di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" target="_blank"&gt;Introduzione alle Client-Side API di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;A title="Operazioni CRUD con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12" target="_blank"&gt;Operazioni CRUD con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Gestione di liste con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=15" target="_blank"&gt;Gestione di liste con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Gestione delle eccezioni con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=16" target="_blank"&gt;Gestione delle eccezioni con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=20" target="_blank"&gt;Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=24" title="Query LINQ tramite il Client Object Model di SharePoint 2010" target="_blank"&gt;Query LINQ tramite il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Buona lettura ! ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/LINQQueriesWithSharePoint2010ClientObjectModel.aspx" /><issued>2011-2-21T9:12:43+01:00</issued><modified>2011-2-21T9:12:43+01:00</modified></entry><entry><title>Effettuare una query CAML filtrando su un campo boolean</title><id>/Blog/CAMLQueryOnBooleanField.aspx</id><created>2011-2-19T18:26:9+01:00</created><content type="text/html" mode="escaped">Abbiamo &lt;a href="http://www.peppedotnet.it/Blog/HowToSetDefaultValueInSPFieldBooleanField.aspx" title="Come settare il valore di default per un campo di tipo SPFieldBoolean" target="_blank"&gt;già visto in passato&lt;/a&gt; che il campo di tipo "Boolean" in SharePoint è un campo un pò particolare, perchè sotto sotto salva un tipo di dato "bit" (all'interno di SQL Server) che in realtà vale "1" per il "vero" e "0" per il "falso".
&lt;br /&gt;Quindi, se cerchiamo di fare una query CAML che nella clausola WHERE ha al suo interno un campo di questo tipo, dobbiamo stare attenti ad applicare la medesima teoria. Potremmo infatti incappare nello scrivere una query di questo tipo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldRef&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="CampoDiTipoBoolean"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Type&lt;span style='color:#0000FF'&gt;="Boolean"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;TRUE&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Ecco.. questa query CAML è &lt;b&gt;SBAGLIATA&lt;/b&gt;.
&lt;br /&gt;La query corretta indica che il valore da confrontare con il campo di tipo Boolean, dovrà essere invece un valore di tipo Integer.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldRef&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="CampoDiTipoBoolean"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Type&lt;span style='color:#0000FF'&gt;="Integer"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;1&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Value&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Eq&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Where&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;In questo modo, vedrete che le vostre query CAML a fronte del filtro su campi di tipo Boolean, funzioneranno alla perfezione.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/CAML.aspx" title="TAG: CAML"&gt;CAML&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/CAMLQueryOnBooleanField.aspx" /><issued>2011-2-19T18:26:9+01:00</issued><modified>2011-2-19T18:26:9+01:00</modified></entry><entry><title>Come cancellare tanti elementi di una lista SharePoint in un colpo solo!</title><id>/Blog/HowToDeleteLargeNumberOfItemsInSharePointList.aspx</id><created>2011-2-10T12:16:32+01:00</created><content type="text/html" mode="escaped">Se vi è mai capitato da dover cancellare tutti gli elementi di una lista, o cmq una grossa quantità di questi elementi, è probabile che abbiate percorso la via di ciclare tutti questi elementi e richiamare il metodo Delete() su oguno di questi. Se è così, vi sarete sicuramente accorti che l'operazione di cancellazione, a fronte della presenza di tanti elementi all'interno della lista, sarà risultata veramente lenta.
&lt;br /&gt;Questo perchè ad ogni chiamata del metodo Delete() della classe SPListItem viene fatta una query sul database di contenuto di SharePoint.
&lt;br /&gt;Dovete sapere però, che esiste un modo per fare eseguire un'unica query al database e cancellare allo stesso modo tanti elementi di una lista. Questo grazie al metodo &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.processbatchdata.aspx" title="Metodo ProcessBatchData della classe SPWeb" target="_blank"&gt;ProcessBatchData&lt;/a&gt; della classe SPWeb.
&lt;br /&gt;Questo metodo vuole come parametro di input una stringa in formato XML che specifichi il numero e la tiplogia di operazioni da eseguire assieme.
&lt;br /&gt;Vediamo quindi come possiamo cancellare più elementi da una lista, in un colpo solo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;StringBuilder sb = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; StringBuilder();
&lt;br /&gt;sb.Append(&lt;span style="color: #A31515"&gt;"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;&lt;Batch&gt;"&lt;/span&gt;);
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;foreach&lt;/span&gt; (SPListItem CurrentItem &lt;span style="color: #0000FF"&gt;in&lt;/span&gt; CurrentList.Items)
&lt;br /&gt;{
&lt;br /&gt;    sb.Append(&lt;span style="color: #A31515"&gt;"&lt;Method&gt;"&lt;/span&gt;);
&lt;br /&gt;    sb.Append(&lt;span style="color: #A31515"&gt;"&lt;SetList Scope=\"Request\"&gt;"&lt;/span&gt; + CurrentList.ID + &lt;span style="color: #A31515"&gt;"&lt;/SetList&gt;"&lt;/span&gt;);
&lt;br /&gt;    sb.AppendFormat(&lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"ID\"&gt;{0}&lt;/SetVar&gt;"&lt;/span&gt;, CurrentItem.ID);
&lt;br /&gt;    sb.Append(&lt;span style="color: #A31515"&gt;"&lt;SetVar Name=\"Cmd\"&gt;Delete&lt;/SetVar&gt;"&lt;/span&gt;);
&lt;br /&gt;    sb.Append(&lt;span style="color: #A31515"&gt;"&lt;/Method&gt;"&lt;/span&gt;);
&lt;br /&gt;}
&lt;br /&gt;sb.Append(&lt;span style="color: #A31515"&gt;"&lt;/Batch&gt;"&lt;/span&gt;);
&lt;br /&gt;
&lt;br /&gt;SPContext.Current.Site.RootWeb.ProcessBatchData(sb.ToString());&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Come vi sarete accorti, la sintassi XML da utilizzare per la specifica di queste operazioni (che nel nostro caso sono solamente delle cancellazion) è molto simile a quelli che dobbiamo utilizzare per richiamare i web services esposti da SharePoint (già dalla versione 2007 del prodotto).
&lt;br /&gt;In questo esempio abbiamo visto come è possibile fare tante operaioni di cancellazione in un colpo solo, ma volendo, possiamo eseguire operazioni di vario genere e vi assiucuro che la cosa pu essere veramente utile.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WSS 3.0.aspx" title="TAG: WSS 3.0"&gt;WSS 3.0&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToDeleteLargeNumberOfItemsInSharePointList.aspx" /><issued>2011-2-10T12:16:32+01:00</issued><modified>2011-2-10T12:16:32+01:00</modified></entry><entry><title>Solo per oggi: sconto del 50% sui libri su SharePoint 2010 di Microsoft Press</title><id>/Blog/OnlyForTodaySave50OnSharePoint2010Books.aspx</id><created>2011-2-8T12:25:37+01:00</created><content type="text/html" mode="escaped">O'Reilly Media, solo per oggi (08/02/2011), rilascia uno sconto del 50% su tutti gli e-book attualmente pubblicati relativi a SharePoint 2010.
&lt;br /&gt;Questi i libri in questione:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Managing and Implementing Microsoft SharePoint 2010 Projects&lt;/li&gt;&lt;li&gt;Microsoft SharePoint 2010 Administrator's Pocket Consultant&lt;/li&gt;&lt;li&gt;Microsoft SharePoint 2010 Administrator's Companion&lt;/li&gt;&lt;li&gt;Designing Solutions for Microsoft SharePoint 2010&lt;/li&gt;&lt;li&gt;Microsoft SharePoint Designer 2010 Step by Step&lt;/li&gt;&lt;li&gt;Microsoft SharePoint 2010 Plain &amp; Simple&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Il codice di sconto è: DDSDX
&lt;br /&gt;Qua trovate il dettaglio di questa offerta: &lt;a href="http://oreilly.com/store/ddsdx.html?utm_campaign=Feed%3A+oreilly%2Fmspebookdeal+%28Microsoft+Press+Ebook+Deal+of+the+Day%29" title="SharePoint 2010 Titles from Microsoft Press
&lt;br /&gt;" target="_blank"&gt;SharePoint 2010 Titles from Microsoft Press&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/OnlyForTodaySave50OnSharePoint2010Books.aspx" /><issued>2011-2-8T12:25:37+01:00</issued><modified>2011-2-8T12:25:37+01:00</modified></entry><entry><title>Come nascondere un bottone dalla barra dei Ribbon di SharePoint 2010</title><id>/Blog/HowToHideButtonsFromSharePoint2010RibbonBar.aspx</id><created>2011-2-3T11:45:2+01:00</created><content type="text/html" mode="escaped">Molto spesso può capitare di volere togliere la possibilità agli utenti di eseguire delle specifiche azioni su una lista o in generale su qualche pagina di un particolare sito e, allo stesso tempo, di voler comunque mantenere un certo tipo di livello di autorizzazioni sull'oggetto in questione (lista, elemento, conten type, pagina, ecc...) per l'utente finale.
&lt;br /&gt;La maggior parte di queste azioni, dall'avvento di SharePoint 2010, sono disponibili attraverso la barra dei Ribbon e vengono visualizzate o nascoste in base ai permessi che ha l'utente corrente sull'oggetto che sta visualizzando o che ha selezionato.
&lt;br /&gt;Per tutte le azioni custom create da noi, o per alcune delle azioni presenti all'interno dell'Edit Control Block (il menu contestuale che appare sul campo "Title" di ogni elemento di una lista o di una document library), o quelle presenti all'interno del menu "Site actions" o, per esempio, all'interno della pagina "Site settings" di un sito SharePoint, abbiamo la possibilità di utilizzare l'elemento &lt;a href="http://msdn.microsoft.com/en-us/library/ms414790.aspx" title="Elemento HideCustomAction" target="_blank"&gt;"HideCustomAction"&lt;/a&gt; posto all'interno di una specifica feature. A riguardo, c'è da dire che per nascondere alcune delle operazioni che si possono fare tramite l'Edit Control Block, l'unico modo di farlo è modificare un file Javascript o che, in generale, l'elemento HideCustomAction non è che funzioni poi così tanto bene, ma questo è tutto un altro discorso.
&lt;br /&gt;
&lt;br /&gt;Infatti, tale elemento NON è da utilizzare se voglio nascondere qualcosa dalla barra dei Ribbon di SharePoint 2010.
&lt;br /&gt;Per nascondere un elemento, un gruppo o addirittura un tab dalla barra dei Ribbon per uno specifico template di lista, per un content type, per uno specifico ProgID o per una singola tipologia di file, non dobbiamo far altro che creare una nuova custom action (utilizzando l'elemento "CustomAction") e definire al suo interno l'inizio della definizione di un nuovo controllo per la barra dei Ribbon, specificando il medesimo identificativo del controllo che invece vogliamo togliere, all'interno dell'attributo "LocationID" dell'elemento "CommandUIDefinition". Lasciando poi vuota l'implementazione.
&lt;br /&gt;Ecco quindi il codice della nostra custom action, utile a nasconde il pulsante "New" da tutte le document library che utilizzando il content type "Document" (ID: 0x0101).
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="PeppeDotNet.Ribbon.Documents.HideNewButton"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hides new button from document content type"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="0x0101"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;="ContentType"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.New.NewDocument"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;            &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;!--&lt;/span&gt;&lt;span style='color:#FF0000'&gt; empty implementation --&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo, se effettuiamo il deploy della nostra soluzione ed attiviamo la corrispondente feature, vedremo che all'interno di una normale Document Library, non avremo più la possibilità di visualizzare il tasto "New".
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HideRibbon_01.jpg" alt="Hide new button from Ribbon toolbar" /&gt;
&lt;br /&gt;
&lt;br /&gt;L'identificativo per recuperare e quindi nascondere il tasto "New", come avete potuto vedere dal listato qui sopra, è il seguente:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Ribbon.Documents.New.NewDocument&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;Per recuperare questo identificativo, non dobbiamo far altro che consultare la &lt;a href="http://msdn.microsoft.com/en-us/library/ee537543.aspx" title="Default Server Ribbon Customization Locations
&lt;br /&gt;" target="_blank"&gt;documentazione&lt;/a&gt; oppure aprire e sfogliare per bene il file &lt;b&gt;CMDUI.xml&lt;/b&gt; posto all'interno della directory:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Seguendo questa tecnica siamo in grado di sovrascrivere completamente la barra dei Ribbon di SharePoint 2010 secondo le nostre necessità. Se volessimo infatti fornire agli utenti finali in una nuova interfaccia grafica o una nuova funzionalità per il tasto "New" di una Document Library, non dobbiamo far altro che nasconderlo utilizzando la tecnica appena vista e scrivere una nuova custom action per mettere un nuovo controllo (nel nostro caso un bottone) al suo posto, in grado di fornire delle operazioni personalizzate utili ai nostri scopi.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="PeppeDotNet.Ribbon.Documents.Replace.HideNewButton"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hides new button from document content type"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="0x0101"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;=""&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt;
&lt;br /&gt;          Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.New.NewDocument"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="PeppeDotNet.Ribbon.Documents.Replace"&lt;/span&gt;
&lt;br /&gt;                  Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                  Title&lt;span style='color:#0000FF'&gt;="Replace new button from document content type"&lt;/span&gt;
&lt;br /&gt;                  RegistrationId&lt;span style='color:#0000FF'&gt;="0x0101"&lt;/span&gt;
&lt;br /&gt;                  RegistrationType&lt;span style='color:#0000FF'&gt;="ContentType"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.New.Controls._children"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="PeppeDotNet.Ribbon.Documents.Replace.New"&lt;/span&gt;
&lt;br /&gt;                  LabelText&lt;span style='color:#0000FF'&gt;="Custom new document"&lt;/span&gt;
&lt;br /&gt;                  Image32by32&lt;span style='color:#0000FF'&gt;="/_layouts/$Resources:core,Language;/images/formatmap32x32.png"&lt;/span&gt; 
&lt;br /&gt;                  Image32by32Top&lt;span style='color:#0000FF'&gt;="0"&lt;/span&gt; 
&lt;br /&gt;                  Image32by32Left&lt;span style='color:#0000FF'&gt;="-64"&lt;/span&gt;
&lt;br /&gt;                  ToolTipTitle&lt;span style='color:#0000FF'&gt;="$Resources:core,cui_ButNewDocument;"&lt;/span&gt;
&lt;br /&gt;                  ToolTipDescription&lt;span style='color:#0000FF'&gt;="$Resources:core,cui_STT_ButNewDocument;"&lt;/span&gt;
&lt;br /&gt;                  TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt; 
&lt;br /&gt;                  Sequence&lt;span style='color:#0000FF'&gt;="1"&lt;/span&gt;  &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Ecco il risultato finale:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HideRibbon_02.jpg" alt="Hide new button from Ribbon toolbar" /&gt;
&lt;br /&gt;
&lt;br /&gt;Bello no ? :)
&lt;br /&gt;Se volete provare con mano, ecco qua i sorgenti che ho utilizzato per fare le mie prove:
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.SP2010.Ribbon.zip" title="PeppeDotNet.SP2010.Ribbon.zip"&gt;PeppeDotNet.SP2010.Ribbon.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToHideButtonsFromSharePoint2010RibbonBar.aspx" /><issued>2011-2-3T11:45:2+01:00</issued><modified>2011-2-3T11:45:2+01:00</modified></entry><entry><title>Utenti con permesso Contribute non possono inserire file .XAP o .SWF in una document library di SharePoint 2010</title><id>/Blog/CantAddXAPorSWFintoDocumentLibrarySP2010.aspx</id><created>2011-1-12T18:44:6+01:00</created><content type="text/html" mode="escaped">Al contrario di quanto succedeva su WSS 3.0/MOSS 2007, se provate ad inserire un file .XAP o un file .SWF all'interno di una document library di SharePoint 2010, con un utenza che ha permessi di "Contribute" sulla medesima libreria, verrete ridirezionati sulla pagina di errore. L'errore stampato sarà di tipo "Access Denied".
&lt;br /&gt;Questo perchè, by desgin, all'interno di una document library di SharePoint 2010 è possibile inserire certe tipologie di file SOLO con permessi da "Design" in su.
&lt;br /&gt;Gli utenti con permesso di "Contribute" non possono inserire tutte queste tipologie di file:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;.ASPX&lt;/li&gt;&lt;li&gt;.MASTER&lt;/li&gt;&lt;li&gt;.XAP&lt;/li&gt;&lt;li&gt;.SWF&lt;/li&gt;&lt;li&gt;.JAR&lt;/li&gt;&lt;li&gt;.ASMX&lt;/li&gt;&lt;li&gt;.ASCX&lt;/li&gt;&lt;li&gt;.XSN&lt;/li&gt;&lt;li&gt;.XSF&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Questo perchè le tipologie di file appena elencate sono considerate come "web sensitive", anche se non sono presenti all'interno dei file bloccati da SharePoint.
&lt;br /&gt;Questo l'articolo della KB di riferimento:
&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/2483447" title="Contributors are not permitted to upload SWF files onto Sharepoint 2010" target="_blank"&gt;http://support.microsoft.com/kb/2483447&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/XAP.aspx" title="TAG: XAP"&gt;XAP&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SWF.aspx" title="TAG: SWF"&gt;SWF&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/CantAddXAPorSWFintoDocumentLibrarySP2010.aspx" /><issued>2011-1-12T18:44:6+01:00</issued><modified>2011-1-12T18:44:6+01:00</modified></entry><entry><title>On-line il sito della SharePoint Conference 2011 e dell'evento MS Technical Conferences 2011</title><id>/Blog/SharePointConference2011Site.aspx</id><created>2011-1-11T9:59:27+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/msTechnicalConf2011.jpg" alt="Microsoft Technical Conferences 2011" style="float: right; margin: 10px" /&gt; Da ieri sera è on-line il sito della &lt;a href="http://www.sharepointconference.it/" title="SharePoint &amp; Office Conference 2011" target="_blank"&gt;Microsoft SharePoint &amp; Office Conference 2011&lt;/a&gt; assieme ai siti delle &lt;a href="http://www.mstechnicalconferences.it" title="Microsoft Technical Conferences 2001" target="_blank"&gt;Microsoft Technical Conferences 2001&lt;/a&gt;, l'evento dell'anno 2011 che raccoglie assieme due delle più importanti conferenze italiane (SharePoint Conference e SQL Confernce) e la neonata Unified Comunication &amp; Collaboration Conference.
&lt;br /&gt;
&lt;br /&gt;Assieme a qualche contenuto (ancora ne l'agenda ne le sessioni sono on-line) avete la possibilità di avvalervi di un super sconto se vi iscrivete ora ! Si risparmiano circa 200 euro sul normale costo dell'iscrizione (per la conferenza su SharePoint, il prezzo dei 3 giorni è di 685 euro, al posto di 900 euro.. vedete un pò voi !).
&lt;br /&gt;Non fatevi sfuggire questa occasione perchè vi assicuro che sarà un evento fantastico !!
&lt;br /&gt;
&lt;br /&gt;Inoltre, è stata annunciata una nuova iniziativa che sarà presente in tutte e tre le conference: 
&lt;br /&gt;- SharePoint Clinic
&lt;br /&gt;- SQL Clinic
&lt;br /&gt;- Unified Communication Clinic
&lt;br /&gt;
&lt;br /&gt;In sintesi, avrai la possibilità di incontrare i gli specialisti italiani del Microsoft Customer Service and Support (CSS) che, grazie alla loro esperienza plueriennale sui problemi incontrati dai clienti nell'adozione di Microsoft SharePoint a livello europeo, ti aiuteranno a risolvere i tuoi problemi con SharePoint, SQL Server o altri prodotti targati Microsoft.
&lt;br /&gt;Per quanto riguarda SharePoint, gli specialisti della SharePoint Clinic saranno coadiuvati dai membri di &lt;a href="http://www.sharepointcommunity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt;, la Community Italiana per professionisti che lavorano sul prodotto di collaborazione Microsoft.
&lt;br /&gt;
&lt;br /&gt;Intanto, vi lascio qua i link ai 3 siti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointconference.it/" title="SharePoint &amp; Office Conference 2011" target="_blank"&gt;http://www.sharepointconference.it&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sqlconference.it/" title="SQL Server &amp; BI Conference 2011" target="_blank"&gt;http://www.sqlconference.it&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.ucconference.it/" title="Unified Communication &amp; Collaboration Conference 2011" target="_blank"&gt;http://www.ucconference.it&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Io sarò &lt;a href="http://www.sharepointconference.it/events/2011/WorkInProgress/speakers.aspx" title="SharePoint Conference speakers" target="_blank"&gt;speaker&lt;/a&gt; per la SharePoint &amp; Office Conference anche quest'anno e sono felicissimo di dirvelo..
&lt;br /&gt;Vi tengo aggiornati sulle mie sessioni, l'agenda e tutto quanto !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Conference.aspx" title="TAG: SharePoint Conference"&gt;SharePoint Conference&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePointConference2011Site.aspx" /><issued>2011-1-11T9:59:27+01:00</issued><modified>2011-1-11T9:59:27+01:00</modified></entry><entry><title>Come risolvere gli errori legati al deployment di modelli del BCS di SharePoint 2010</title><id>/Blog/HowToSolveAddSolutionErrorsSharePoint2010BCSModel.aspx</id><created>2011-1-10T10:1:57+01:00</created><content type="text/html" mode="escaped">Sviluppando dei modelli personalizzati per i Business Connectivity Services di SharePoint 2010 tramite Visual Studio 2010, potete incappare in un errore in fase di deployment. Il mio errore era dato dal fatto che prima avevo caricato un modello con un identificatore di tipo System.String, poi ho tentato di cambiarlo in System.Int32 (non mi sembra l'operazione più strana o difficile del mondo, ma vabbè..) e, così facendo, non riuscivo più ad effettuare il deployment della mia soluzione all'interno della Central Administration di SharePoint.
&lt;br /&gt;Nel dettaglio, la dicitura dell'errore era:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;Error occurred in deployment step 'Add Solution': Model file 'TestModel\TestModel.bdcm' has the following External Content Type activation errors: 
&lt;br /&gt;TypeDescriptor with Name 'Identifier1' (found in Parameter with Name 'returnParameter', Method with Name 'ReadList', Entity (External Content Type) with Name 'Entity1' and Version '1.0.0.20' in Namespace 'PeppeDotNet.TestModel') refers to an Identifier with Name 'Identifier1' of Type 'System.Int32' which is supposed to exist on Entity with Name 'Entity1' in Namespace 'PeppeDotNet.TestModel'. This Identifier cannot be found.&lt;/div&gt;
&lt;br /&gt;Praticamente il sistema di deployment si accorge che è stato cambiato l'identificatore, confrontando la vecchia versione del modello deployato, e s'incazza !
&lt;br /&gt;Per risolvere questo problema pensavo bastasse un retract della soluzione per poi andare su
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Central Administration &gt; Application Management &gt; Manage Service Applications &gt; Business Data Connectivity Services&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;e cancellare il modello su cui stavo lavorando.
&lt;br /&gt;Invece NO !
&lt;br /&gt;&lt;b&gt;E' necessario cancellare tutte le occorrenze del modello in questione anche dalle pagine "External systems" e "External content types"&lt;/b&gt; alle quali potete accedere dal menu a tendina che trovate in alto nella pagina dell'elenco dei modelli BCS installati.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/bcsErrorSolve.jpg" alt="Come risolvere gli errori legati al deployment di modelli del BCS di SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Così facendo, siete liberi di rieffettuare un deployment della vostra soluzione che verrà installata senza alcun errore.
&lt;br /&gt;Spero possa esser utilie a qualcuno.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/BCS.aspx" title="TAG: BCS"&gt;BCS&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToSolveAddSolutionErrorsSharePoint2010BCSModel.aspx" /><issued>2011-1-10T10:1:57+01:00</issued><modified>2011-1-10T10:1:57+01:00</modified></entry><entry><title>Evento &quot;SharePoint 2010 Firestarter&quot; - 27 Gennaio 2011</title><id>/Blog/SharePoint2010FireStarter.aspx</id><created>2011-1-8T11:33:42+01:00</created><content type="text/html" mode="escaped">Sulla scia dell'evento "FireStarter" su Silverlight, Microsoft offrirà l'omonimo evento anche per &lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032473308" title="SharePoint 2010 Firestarter" target="_blank"&gt;SharePoint 2010&lt;/a&gt; !
&lt;br /&gt;L'evento avrà luogo a Redmond il 27 gennaio 2011 e in diretta streaming.
&lt;br /&gt;
&lt;br /&gt;Ecco qua l'agenda:
&lt;br /&gt; 
&lt;br /&gt;[Time  (PST)] Session - Speaker
&lt;br /&gt;[08:30 am - 09:00 am] Introduction to the day - &lt;a href="http://blogs.msdn.mithund/" title="Mithun Dhar" target="_blank"&gt;Mithun Dhar&lt;/a&gt;
&lt;br /&gt;[09:00 am - 10:00 am] Keynote - &lt;a href="http://sharepoint.microsoft.com/blog/Pages/default.aspx" title="Eric Swift" target="_blank"&gt;Eric Swift&lt;/a&gt;
&lt;br /&gt;[10:00 am - 10:15 am] Break
&lt;br /&gt;[10:15 am - 11:15 am] SharePoint 2010 Developer Overview - &lt;a href="http://blogs.msdn.mithund/" title="Mithun Dhar" target="_blank"&gt;Mithun Dhar&lt;/a&gt;
&lt;br /&gt;[11:15 am - 12:15 pm] SharePoint 2010 Developer Tools - &lt;a href="http://sharepoint.microsoft.com/blog/Pages/default.aspx" title="Mike Morton" target="_blank"&gt;Mike Morton&lt;/a&gt;
&lt;br /&gt;[12:15 pm - 01:00 pm] Lunch
&lt;br /&gt;[01:00 pm - 02:00 pm] SharePoint Development in the Cloud with SharePoint Online - &lt;a href="http://blogs.msdn.com/b/cmayo/" title="Chris Mayo" target="_blank"&gt;Chris Mayo&lt;/a&gt; 
&lt;br /&gt;[02:00 pm - 03:00 pm] Integrating SharePoint with Office - &lt;a href="http://blogs.msdn.com/b/donovanf/" title="Donovan Follette" target="_blank"&gt;Donovan Follette&lt;/a&gt; 
&lt;br /&gt;[03:00 pm - 03:15 pm] Break   
&lt;br /&gt;[03:15 pm - 04:15 pm] Integrating SharePoint with Azure - &lt;a href="http://blogs.msdn.com/b/steve_fox/" title="Steve Fox" target="_blank"&gt;Steve Fox&lt;/a&gt; 
&lt;br /&gt;[04:15 pm - 05:00 pm] Integrating SharePoint with Silverlight - &lt;a href="http://blogs.msdn.com/b/pstubbs/" title="Paul Stubbs" target="_blank"&gt;Paul Stubbs&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Per iscriversi all'evento on-line, seguire questo link:
&lt;br /&gt;&lt;a href="http://go.microsoft.com/?linkid=9756774" title="Iscrizione on-line a SharePoint 2010 FireStarter" target="_blank"&gt;http://go.microsoft.com/?linkid=9756774&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Firestarter.aspx" title="TAG: SharePoint Firestarter"&gt;SharePoint Firestarter&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010FireStarter.aspx" /><issued>2011-1-8T11:33:42+01:00</issued><modified>2011-1-8T11:33:42+01:00</modified></entry><entry><title>L'elemento RenderPattern di un campo custom in SharePoint 2010 &#232; obsoleto !</title><id>/Blog/RenderPatternInSharePoint2010IsNowObsolete.aspx</id><created>2011-1-8T10:55:14+01:00</created><content type="text/html" mode="escaped">Lo dice anche la documentazione qua:
&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa544291.aspx" title="RenderPattern" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa544291.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;In SharePoint 2010, se iniziate la scrittura di un campo custom così come siete abituati dallo sviluppo in WSS 3.0/MOSS 2007 ed utilizzate, appunto, l'elemento RenderPattern per modificare il rendering del vostro campo nelle varie viste, vi accorgerete subito che tutte le modifiche che apporterete alla visualizzazione secondo le tecniche che già conoscete, non verranno applicate.
&lt;br /&gt;Perchè ? Semplicissimo.. in SharePoint 2010 sono stati introdotti i "Field Rendering Templates", che non sono altro che degli oggetti che modificano il rendering di un campo custom tramite XSLT. Si perchè ora, tutto il rendering di viste è fatto in XSLT e di conseguenza lo doveva essere anche il rendering dei campi custom.
&lt;br /&gt;Spero di parlarvi presto di queste nuove tecniche, cmq all'interno della documentazione trovate &lt;a href="http://msdn.microsoft.com/en-us/library/bb862248.aspx" title="How to: Create a Custom Field Type" target="_blank"&gt;tutto quello che vi serve&lt;/a&gt; per iniziare.
&lt;br /&gt;
&lt;br /&gt;Riguardo il nostro elemento RenderPattern, dobbiamo sapere però che è ancora supportato (ma SOLO per tutti quei campi che sono stati sviluppati nella versione precedente di SharePoint, in quanto la best practice è di utilizzare il rendering in XSLT).
&lt;br /&gt;Per permettere la visualizzazione di quanto avete scritto all'interno del metodo RenderPattern, basta aggiungere la proprietà &lt;b&gt;CAMLRendering&lt;/b&gt; all'interno dell'XML di definizione del nostro campo personalizzato e valorizzarla a &lt;b&gt;TRUE&lt;/b&gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldTypes&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldType&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="TypeName"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;MyField&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="ParentType"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;MultiColumn&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="TypeDisplayName"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;TEST RenderPattern field&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="FieldTypeClass"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;Peppe.MyField, $SharePoint.Project.AssemblyFullName$&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="CAMLRendering"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;TRUE&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;RenderPattern&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Name&lt;span style='color:#0000FF'&gt;="DisplayPattern"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Switch&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Expr&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Column&lt;/span&gt;&lt;span style='color:#FF0000'&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Expr&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Case&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Value&lt;span style='color:#0000FF'&gt;=""&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Default&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Column&lt;/span&gt;&lt;span style='color:#FF0000'&gt; SubColumnNumber&lt;span style='color:#0000FF'&gt;="0"&lt;/span&gt; HTMLEncode&lt;span style='color:#0000FF'&gt;="TRUE"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;HTML&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;![CDATA[&lt;BR&lt;/span&gt;&lt;span style='color:#FF0000'&gt; /&gt;]]&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;HTML&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Column&lt;/span&gt;&lt;span style='color:#FF0000'&gt; SubColumnNumber&lt;span style='color:#0000FF'&gt;="1"&lt;/span&gt; HTMLEncode&lt;span style='color:#0000FF'&gt;="TRUE"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Default&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Switch&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;RenderPattern&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldType&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;FieldTypes&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Se avete migrato a SharePoint 2010 e vi siete portati dietro dei campi custom che utilizzano l'elemento RenderPattern, potete usare questa tecnica per permettere al campo di continuare a funzionare senza troppi problemi. Il mio consiglio cmq è di migrare il campo, utilizzando il rendering in XSLT.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Custom field.aspx" title="TAG: Custom field"&gt;Custom field&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/RenderPattern.aspx" title="TAG: RenderPattern"&gt;RenderPattern&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/RenderPatternInSharePoint2010IsNowObsolete.aspx" /><issued>2011-1-8T10:55:14+01:00</issued><modified>2011-1-8T10:55:14+01:00</modified></entry><entry><title>Come recuperare la lista dei comandi Powershell per SharePoint 2010</title><id>/Blog/HowToGetSharePoint2010PowershellCommandsList.aspx</id><created>2011-1-4T11:7:36+01:00</created><content type="text/html" mode="escaped">Nella nuova versione di SharePoint, Powershell gioca un ruolo fondamentale in quanto sono disponibili una grossa quantità di comandi ("cmdlet", per utilizzare il gergo corretto) utili proprio a fare tutte quelle operazioni che in MOSS 2007/WSS 3.0 facevamo tramite l'utility a riga di comando STSADM.
&lt;br /&gt;Abbiamo quindi comandi specifici per gestire le soluzioni, altri per le feature, per i backup, ecc..
&lt;br /&gt;Ecco.. data la mole di questi comandi, risulta veramente difficile tenerli a mente tutti quanti e magari non sempre abbiamo la documentazione disponibile.
&lt;br /&gt;Utilizzando però la stessa "SharePoint 2010 Management Shell" abbiamo la possibilità di recuperare l'elenco di tutti questi comandi, con più o meno informazioni riguardo ognuno di questi, tramite la seguente sintassi:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Get-Command –PSSnapin "Microsoft.SharePoint.PowerShell" | select name, definition | format-list &gt; "C:\Users\peppe\Desktop\ComandiPowershellSP2010.txt"&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;In questo caso abbiamo scelto di visualizzare il nome del comando e la relativa definizione (utile a vedere quali i parametri di entrata necessita il comando stesso).
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/SP2010PowershellCommands.jpg" alt="Come recuperare la lista dei comandi Powershell per SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Se siete assaliti dalla prigrizia post vacanze, vi lascio il file di testo contenente l'elenco dei comandi generato dall'istruzione appena vista.
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/ComandiPowershellSP2010.txt" alt="ComandiPowershellSP2010.txt" target="_blank"&gt;ComandiPowershellSP2010.txt&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Spero possa esservi utile.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Powershell.aspx" title="TAG: Powershell"&gt;Powershell&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToGetSharePoint2010PowershellCommandsList.aspx" /><issued>2011-1-4T11:7:36+01:00</issued><modified>2011-1-4T11:7:36+01:00</modified></entry><entry><title>Client Object Model di SharePoint 2010: come migliorare le performance sulle selezioni</title><id>/Blog/IncreasePerformanceOnSelectionUsingSharePointClientObjectModel.aspx</id><created>2010-12-28T11:46:8+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 5px; float: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;Continua la mia serie di articoli sul Client Object Model di SharePoint 2010 pubblicati all'interno di &lt;a href="http://www.sharepointcommunity.it" title="SharePointCommunity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; !
&lt;br /&gt;In questa puntata parliamo di performance. 
&lt;br /&gt;Durante lo sviluppo di applicazioni client che interagiscono con SharePoint è molto importante controllare il carico dei dati che richiediamo al server, perchè questo va a discapito dell'utilizzo della nostra applicazione da parte dell'utente. Si deve valutare bene di richiedere sempre e solo quello che risulta strettamente necessario all'applicazione e niente di più !
&lt;br /&gt;Molto spesso, sopratutto quando si compiono i primi passi con il Client Object Model di SharePoint 2010, siamo portati ad inserire nella nostra richiesta oggetti interi, per poi utilizzarne solo alcune prorpietà. Ecco.. un approccio del genere, a lungo andare va a pesare sull'interazione che ha la nostra applicazione client con i siti SharePoint, ne diminuisce l'usabilità e tutto il resto che ne consegue.
&lt;br /&gt;In questo articolo (di cui trovate il link qui sotto) vi spiego come cercare di richiedere al server SharePoint, solamente le informazioni di cui abbiamo effettivamente bisogno. Nulla di più, nulla di meno !
&lt;br /&gt;Questo il link diretto al sito:
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=20" title="Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model" target="_blank"&gt;Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Mentre qua trovate un riepilogo su tutti gli articoli legati al Client Object Model di SharePoint 2010 pubblicati sul sito della community.
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a title="Introduzione alle Client-Side API di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" target="_blank"&gt;Introduzione alle Client-Side API di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Operazioni CRUD con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12" target="_blank"&gt;Operazioni CRUD con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Gestione di liste con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=15" target="_blank"&gt;Gestione di liste con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Gestione delle eccezioni con il Client Object Model di SharePoint 2010" href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=16" target="_blank"&gt;Gestione delle eccezioni con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=20" title="Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model" target="_blank"&gt;Migliorare le performance sulle selezioni di contenuti effettuate tramite il Client Object Model&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Se avete diffocoltà nell'utilizzo del Client Object Model, non esitate a scrivere sul &lt;a href="http://social.msdn.microsoft.com/Forums/it-IT/sharepointit/threads" title="Forum SharePoint Dev" target="_blank"&gt;forum Micorsoft di sviluppo su SharePoint&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/IncreasePerformanceOnSelectionUsingSharePointClientObjectModel.aspx" /><issued>2010-12-28T11:46:8+01:00</issued><modified>2010-12-28T11:46:8+01:00</modified></entry><entry><title>Customizzazione della barra dei RIbbon di SharePoint 2010 e la cache</title><id>/Blog/SharePoint2010RibbonCustomizationAndCache.aspx</id><created>2010-12-27T11:40:45+01:00</created><content type="text/html" mode="escaped">Se approcciate per la prima volta le tecniche di sviluppo di personalizzazioni alla barra dei Ribbon di SharePoint 2010 (seguendo magari &lt;a href="http://www.peppedotnet.it/Guides/SharePoint%202010.aspx" title="Guida SharePoint 2010" target="_blank"&gt;uno dei post&lt;/a&gt; presenti su questo sito), vi accorgerete subito che molto spesso le modifiche che effettuate alle vostre personalizzazioni non vengono recepite immediatamente dall'interfaccia del sito SharePoint 2010.
&lt;br /&gt;Questo accade sia a fronte di modifiche alle strutture XML, sia a fronte di modifiche sul codice Javascript legato al Ribbon o su eventuali file Javascript esterni.
&lt;br /&gt;Ecco, se vi accorgete di un comportamento del genere, sappiate che &lt;b&gt;è il browser che state utilizzando a mettere in cache il codice Javascript utile a visualizzare il Ribbon e a definirne eventuali azioni&lt;/b&gt;.
&lt;br /&gt;
&lt;br /&gt;Per risolvere questo problema basta pulire la cache del browser (e questo vale per le modifiche effettuate al codice Javascript del vostro Ribbon) oppure aggiungere il numero di verisone alla Feature che contiene la definizione della vostra personalizzazione alla barra dei Ribbon.
&lt;br /&gt;
&lt;br /&gt;Se state utilizzando Internet Explorer (dalla versione 7 in su) basta scegliere il tasto F12 per aprire gli strumenti per sviluppatori e scegliere le voci "Always refresh from server" e "Clear browser cache" presenti all'interno del menu "Cache".
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/clearcache.jpg" alt="IE clear cache" /&gt;
&lt;br /&gt;
&lt;br /&gt;Anche tutti gli altri browser hanno la funzionalità di pulizia della cache, quindi non preoccupatevi :)
&lt;br /&gt;Invece, per specificare il numero di versione alla feature che conterrà la vostra personalizzazione, basta aggiungere (o modificare) l'attributo "Version" all'interno dell'elemento "Feature" tramite Visual Studio 2010.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Feature&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt; version&lt;span style='color:#0000FF'&gt;="1.0.0.1"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Feature&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così facendo, all'interno dell'interfaccia utente di SharePoint 2010 dovreste avere sempre la versione aggiornata della vostra personalizzazione alla barra dei Ribbon.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010RibbonCustomizationAndCache.aspx" /><issued>2010-12-27T11:40:45+01:00</issued><modified>2010-12-27T11:40:45+01:00</modified></entry><entry><title>Non sai che versione di SharePoint scegliere ?</title><id>/Blog/HowToChooseSharePointVersion.aspx</id><created>2010-12-21T19:49:4+01:00</created><content type="text/html" mode="escaped">SharePoint 2010 espone davvero tante funzionalità e molto spesso risulta veramente difficile districarsi tra tutte queste e le differenti versioni del prodotto stesso.
&lt;br /&gt;Durante corsi o demo, mi è capitato spesso di presentare una di queste funzionalità di SharePoint e ricevere a seguito le domande "ma in che versione è ?", "è presente nella parte gratis ?" e chi più ne ha più ne metta..
&lt;br /&gt;
&lt;br /&gt;Ecco.. queste domande hanno ovviamente una risposta all'interno della documentazione, ma ne hanno una anche direttamente dal sito del prodotto all'interno del quale possiamo vedere una rapida classificazione di feature, divise per versioni.
&lt;br /&gt;Ecco l'indirizzo:
&lt;br /&gt;&lt;a href="http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx" title="SharePoint version comparison" target="_blank"&gt;http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Spero che vi possa essere d'aiuto !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/Sharepoint.aspx" title="TAG: Sharepoint"&gt;Sharepoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Sharepoint 2010.aspx" title="TAG: Sharepoint 2010"&gt;Sharepoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Sharepoint Foundation 2010.aspx" title="TAG: Sharepoint Foundation 2010"&gt;Sharepoint Foundation 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToChooseSharePointVersion.aspx" /><issued>2010-12-21T19:49:4+01:00</issued><modified>2010-12-21T19:49:4+01:00</modified></entry><entry><title>SharePointCommunity.it su Community Ring</title><id>/Blog/SharePointCommunityRing.aspx</id><created>2010-12-20T9:49:8+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" style="float:right; margin: 10px" /&gt;&lt;img src="http://www.peppedotnet.it/Images/CR-Logo-Medium.png" style="float:right; margin: 10px" /&gt;Da questo weekend, anche &lt;a href="http://www.sharepointcommunity.it" title="SharePointCommunity.it" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; è presente all'interno di &lt;a href="http://www.communityring.net/" title="CommunityRing.net" target="_blank"&gt;CommunityRing.net&lt;/a&gt; !
&lt;br /&gt;
&lt;br /&gt;Cos'è CommunityRing ?
&lt;br /&gt;E' una lodevole iniziativa del mitico &lt;a href="http://blogs.ugidotnet.org/raffaele/" title="Raffaele Rialdi" target="_blank"&gt;Raf&lt;/a&gt;, per cercare di fornire al popolo delle community un punto centrale per informarsi su eventi, community stesse e quant'altro.
&lt;br /&gt;Dico lodevole perchè ogni tanto capita che effettivamente mi perdo anch'io qualcuno degli eventi delle varie community italiane e, visto quante sono e quanto si danno da fare, era davvero un peccato non avere un punto unico per visualizzare gli eventi di tutti. Lodevole anche perchè l'iniziativa parte da un singolo, che si da sempre tanto da fare per le community italiane.
&lt;br /&gt;
&lt;br /&gt;Quindi, da ora in poi, oltre a tutti i vari eventi che organizzano le community italiane legate a .NET potete trovare anche quelli organizzati da SharePointCommunity a questo indirizzo:
&lt;br /&gt;
&lt;br /&gt;&lt;a href="http://www.communityring.net/" title="CommunityRing.net" target="_blank"&gt;www.communityring.net&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;][&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Community.aspx" title="TAG: Community"&gt;Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePointCommunityRing.aspx" /><issued>2010-12-20T9:49:8+01:00</issued><modified>2010-12-20T9:49:8+01:00</modified></entry><entry><title>Date non corrette utilizzando il Client Object Model di SharePoint 2010</title><id>/Blog/IncorrectDatesTakenFromSharePoint2010ClientObjectModel.aspx</id><created>2010-11-29T9:33:12+01:00</created><content type="text/html" mode="escaped">In tutto questo periodo in cui ho utilizzato il client object model di SharePoint 2010, ho sempre dato per scontato che i dati ritornati dalle mie query effettuate sugli elementi di liste fossero corretti. O meglio, non ho mai avuto problemi con tutti quelli con cui ho avuto a che fare fin'ora, ma non avevo mai interagito con dei campi di tipo "data e ora".
&lt;br /&gt;In questa settimana invece ho avuto la necessità di leggere gli elementi presenti all'interno di una lista di task e di stamparli a video in un'applicazione eseguita client-side.
&lt;br /&gt;Inizialmente, una volta letti i dati dalla lista SharePoint, non mi è saltato all'occhio niente di strano. Dopo un pò invece, mi accorgo di una discrepanza tra le date presenti nella mia applicazione e quelle visibili all'interno dell'interfaccia di SharePoint 2010.
&lt;br /&gt;Vi rendo subito partecipi della cosa.. provate a creare una nuova lista di Task all'interno di uno dei vostri siti SharePoint 2010, inserite un pò di task con date varie ed incollate questo codice all'interno di una console application (dopo aver aggiunto la referenza sia alla libreria Microsoft.SharePoint.dll che alle librerie del client object model Microsoft.SharePoint.Client.dll e Microsoft.SharePoint.Client.Runtime.dll):
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Console.WriteLine(&lt;span style="color: #A31515"&gt;"Client object model:"&lt;/span&gt;);
&lt;br /&gt;ClientContext context = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; ClientContext(&lt;span style="color: #A31515"&gt;"http://sharepoint2010/"&lt;/span&gt;);
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (context)
&lt;br /&gt;{
&lt;br /&gt;    List l = context.Web.Lists.GetByTitle(&lt;span style="color: #A31515"&gt;"Tasks"&lt;/span&gt;);
&lt;br /&gt;    ListItemCollection items = l.GetItems(CamlQuery.CreateAllItemsQuery());
&lt;br /&gt;
&lt;br /&gt;    context.Load(items, its =&gt; its.Include(i =&gt; i[&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;]));
&lt;br /&gt;    context.ExecuteQuery();
&lt;br /&gt;
&lt;br /&gt;    &lt;span style="color: #0000FF"&gt;foreach&lt;/span&gt; (ListItem item &lt;span style="color: #0000FF"&gt;in&lt;/span&gt; items)
&lt;br /&gt;    {
&lt;br /&gt;        Console.WriteLine(&lt;span style="color: #A31515"&gt;"{0}"&lt;/span&gt;, (DateTime)item[&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;]);
&lt;br /&gt;    }
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;Console.WriteLine(&lt;span style="color: #A31515"&gt;"Server object model:"&lt;/span&gt;);
&lt;br /&gt;SPSite site = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SPSite(&lt;span style="color: #A31515"&gt;"http://sharepoint2010/"&lt;/span&gt;);
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (site)
&lt;br /&gt;{
&lt;br /&gt;    SPWeb web = site.OpenWeb();
&lt;br /&gt;    SPList list = web.Lists[&lt;span style="color: #A31515"&gt;"Tasks"&lt;/span&gt;];
&lt;br /&gt;    &lt;span style="color: #0000FF"&gt;foreach&lt;/span&gt; (SPListItem item &lt;span style="color: #0000FF"&gt;in&lt;/span&gt; list.GetItems(&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;))
&lt;br /&gt;    {
&lt;br /&gt;        Console.WriteLine(&lt;span style="color: #A31515"&gt;"{0}"&lt;/span&gt;, (DateTime)item[&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;]);
&lt;br /&gt;    }
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Bene.. se eseguite questo codice su un qualsiasi sito SharePoint (creato con qualsiasi lingua, anche la stessa della vostra macchina client), sono sicuro che vi accorgerete anche voi delle diversità dei valori di tipo data e ora.
&lt;br /&gt;Se non ci credete, ecco qua uno screenshot:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/WrongDates.png" alt="Date non corrette utilizzando il Client Object Model di SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Come potete vedere, le prime 4 date sono diverse da quelle lette sulla stessa lista tramite il modello ad oggetti lato server. Lasciando perdere le ore (in quanto il mio campo di tipo "data e ora" permetteva all'utente di inserire solamente delle date), in questi 4 valori c’è una discrepanza di un giorno.
&lt;br /&gt;Li per li penso al bug (chissà come mai.. :), poi invece mi salta in mente il fatto che la mia applicazione viene eseguita sul client e che quindi è molto probabile che la lingua con cui vengono stampate queste date sia diversa da quella con cui è stato creato il sito SharePoint (o cmq da quella con cui è stata configurata la sezione "Regional settings"). Infatti, richiamando il metodo ToUniversalTime() della classe DateTime mi sono subito accorto che invece le date erano esattamente le stesse.
&lt;br /&gt;
&lt;br /&gt;Quindi il problema a questo punto era: "come posso far si che le mie date vengano visualizzate attraverso la stessa culture della mia applicazione client ?".
&lt;br /&gt;
&lt;br /&gt;Ho provato ad utilizzare il metodo ConvertToDateTime passando la medesima cultura presente all'interno della pagina "Regional Settings" del mio sito SharePoint, ma niente. Le date risultavano ancora diverse.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;DateTime s = Convert.ToDateTime(((DateTime)item[&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;]), &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; CultureInfo(&lt;span style="color: #A31515"&gt;"en-US"&lt;/span&gt;));
&lt;br /&gt;Console.WriteLine(&lt;span style="color: #A31515"&gt;"{0}"&lt;/span&gt;, s);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Cerco un pò all'interno dell'SDK e trovo la fantastica classe Utility e il suo ancor più fantastico metodo FormatDateTime, che effettua la conversione del mio DateTime secondo il formato scelto all'interno dei "Regional Settings" del mio sito SharePoint 2010.
&lt;br /&gt;Applicandolo al mio codice, ecco che i valori delle mie date vengono visualizzati esattamente come all'interno dell'interfaccia del mio sito.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;Console.WriteLine(&lt;span style="color: #A31515"&gt;"Client object model:"&lt;/span&gt;);
&lt;br /&gt;ClientContext context = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; ClientContext(&lt;span style="color: #A31515"&gt;"http://sharepoint2010/"&lt;/span&gt;);
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (context)
&lt;br /&gt;{
&lt;br /&gt;    Web web = context.Web;
&lt;br /&gt;    List l = web.Lists.GetByTitle(&lt;span style="color: #A31515"&gt;"Tasks"&lt;/span&gt;);
&lt;br /&gt;    ListItemCollection items = l.GetItems(CamlQuery.CreateAllItemsQuery());
&lt;br /&gt;
&lt;br /&gt;    context.Load(web, w =&gt; w.Language);
&lt;br /&gt;    context.Load(items, its =&gt; its.Include(i =&gt; i[&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;]));
&lt;br /&gt;    context.ExecuteQuery();
&lt;br /&gt;
&lt;br /&gt;    &lt;span style="color: #0000FF"&gt;foreach&lt;/span&gt; (ListItem item &lt;span style="color: #0000FF"&gt;in&lt;/span&gt; items)
&lt;br /&gt;    {
&lt;br /&gt;        DateTime start = ((DateTime)item[&lt;span style="color: #A31515"&gt;"StartDate"&lt;/span&gt;]);
&lt;br /&gt;        ClientResult&lt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt;&gt; result = Utility.FormatDateTime(context, context.Web, start, DateTimeFormat.DateTime);
&lt;br /&gt;        context.ExecuteQuery();
&lt;br /&gt;        DateTime rightStart = Convert.ToDateTime(result.Value, &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; CultureInfo((&lt;span style="color: #0000FF"&gt;int&lt;/span&gt;)web.Language));
&lt;br /&gt;        Console.WriteLine(&lt;span style="color: #A31515"&gt;"{0}"&lt;/span&gt;, rightStart);
&lt;br /&gt;    }
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;In pratica, &lt;b&gt;durante una normale query tramite il client object model di SharePoint 2010, le date vengono ritornate all'applicazione client in formato UTC e necessitano di essere convertite&lt;/b&gt;.
&lt;br /&gt;Ecco il risultato eseguendo il secondo listato (corretto) assieme al primo (scorretto).
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/RightDates.png" alt="Date CORRETTE utilizzando il Client Object Model di SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Vi lascio anche i sorgenti, così potete provare con mano quanto vi ho detto (senza riscrivere l'applicazione da zero):
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/zip/ClientObjectModelDates.zip" title="Sorgenti per la gestione corretta delle date tramie il client object model di SharePoint 2010"&gt;ClientObjectModelDates.zip (37,4 Kb)&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/IncorrectDatesTakenFromSharePoint2010ClientObjectModel.aspx" /><issued>2010-11-29T9:33:12+01:00</issued><modified>2010-11-29T9:33:12+01:00</modified></entry><entry><title>WPC 2010: 3 bei giorni !</title><id>/Blog/WCP2010Recap.aspx</id><created>2010-11-25T21:37:38+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/wpc.png" alt="WPC 2010" style="float: right; margin: 5px" /&gt;Eccomi qua.. di ritorno dai 3 giorni di &lt;a href="http://www.techdays-wpc.it/" title="WPC 2010" target="_blank"&gt;WPC&lt;/a&gt; passati ad Assago.
&lt;br /&gt;Non c'ero mai stato prima e vi assicuro che è stata veramente una bella esperienza !
&lt;br /&gt;Per chi se l'è persa, raccomando di prendersi del tempo per andarci il prossim'anno. Il motivo ? Semplice: potete incontrare delle persone fantastiche e preparatissime, pronte a parlare di tutte le ultime tecnologie, tecniche ed interessi che fanno parte del nostro lavoro.
&lt;br /&gt;Per chi c'era invece, mi auguro veramente che la pensiate come me.
&lt;br /&gt;
&lt;br /&gt;Sul sito potete trovare un pò di foto: &lt;a href="http://www.techdays-wpc.it/pics.aspx" title="Foto WPC TechDays 2010" target="_blank"&gt;http://www.techdays-wpc.it/pics.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Alla prossima !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/WPC.aspx" title="TAG: WPC"&gt;WPC&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Community.aspx" title="TAG: Community"&gt;Community&lt;/a&gt;] </content><link rel="alternate" type="text/html" href="/Blog/WCP2010Recap.aspx" /><issued>2010-11-25T21:37:38+01:00</issued><modified>2010-11-25T21:37:38+01:00</modified></entry><entry><title>Gestione delle eccezioni con il Client Object Model di SharePoint 2010</title><id>/Blog/ExceptionHandlingSharePoint2010ClientObjectModel.aspx</id><created>2010-11-20T17:7:21+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 5px; float: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;A pochi giorni dalla &lt;a href="http://www.techdays-wpc.it/" title="Microsoft TechDays WPC" target="_blank"&gt;WPC&lt;/a&gt; è uscito un mio nuovo articolo su &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePointCommunity.it&lt;/a&gt; sempre riguardo il Client Object Model di SharePoint 2010.
&lt;br /&gt;Il quarto della serie, vede una breve introduzione sulla gestione delle eccezioni che possono essere scatenate da qualche chiamata al server SharePoint effettuata dalle nostre applicazioni client che utilizzando le classi del Client Object Model.
&lt;br /&gt;Una volta letto vedrete che è stata introdotta una particolare classe che ci permette di far gestire le eccezioni durante la computazione del nostro codice che viene effettuata lato server. Questo ci permette di ridurre al minimo le richieste dalle nostre applicazioni client e di poter eseguire delle operazioni in base alla presenza di un errore nel nostro codice senza dover rifare da zero una nuova richiesta La classe in questione è la classe ExceptionHandlingScope.
&lt;br /&gt;A mio avviso è una tecnica quantomeno da tenere presente durante lo sviluppo di applicazioni client che dialogano con SharePoint 2010 tramite le sue API client-side, sopratutto per quanto riguarda un discorso di performance.
&lt;br /&gt;
&lt;br /&gt;Vi lascio qua il link diretto all'articolo:
&lt;br /&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=16" title="Gestione delle eccezioni con il Client Object Model di SharePoint 2010" target="_blank"&gt;http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=16&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete, potete anche scaricarvi i sorgenti.
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/zip/Dev4Side.SP2010.ClientExceptions.zip" title="Gestione delle eccezioni con il Client Object Model di SharePoint 2010" target="_blank"&gt;Dev4Side.SP2010.ClientExceptions.zip (32kb)&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Ecco invece il riepilogo dei contenuti riguardo il Client Object Model presenti su SharePointCommunity.it:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" title="Introduzione alle Client-Side API di SharePoint 2010" target="_blank"&gt;Introduzione alle Client-Side API di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12" title="Operazioni CRUD con il Client Object Model di SharePoint 2010" target="_blank"&gt;Operazioni CRUD con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=15" title="Gestione di liste con il Client Object Model di SharePoint 2010" target="_blank"&gt;Gestione di liste con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=16" title="Gestione delle eccezioni con il Client Object Model di SharePoint 2010" target="_blank"&gt;Gestione delle eccezioni con il Client Object Model di SharePoint 2010&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt; 
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]
&lt;br /&gt;
&lt;br /&gt;</content><link rel="alternate" type="text/html" href="/Blog/ExceptionHandlingSharePoint2010ClientObjectModel.aspx" /><issued>2010-11-20T17:7:21+01:00</issued><modified>2010-11-20T17:7:21+01:00</modified></entry><entry><title>Rilasciate le librerie del Client Object Model di SharePoint 2010 per la ridistribuzione</title><id>/Blog/SharePointClientObjectModelRedistributableReleased.aspx</id><created>2010-11-19T9:46:51+01:00</created><content type="text/html" mode="escaped">Dal blog del team della documentazione di SharePoint l'&lt;a href="http://blogs.msdn.com/b/sharepointdeveloperdocs/archive/2010/11/18/sharepoint-client-object-model-redistributable-released.aspx" title="SharePoint Client Object Model Redistributable Released" target="_blank"&gt;annuncio&lt;/a&gt; del rilascio delle versioni ufficiali del Client Object Model di SharePoint 2010 per la ridistribuzione.
&lt;br /&gt;Sono esattamente le stesse librerie che possiamo trovare all'interno dell'installazione di default di SharePoint, che ora potete trovare anche on-line per lo sviluppo delle vostre applicazioni custom da eseguire lato client.
&lt;br /&gt;Nello specifico, sono stati rilasciati solamente gli assembly per lo sviluppo di applicazioni .NET o per la creazione di applicazioni Silverlight. I file .js per personalizzazioni ECMAScript all'interfaccia, sono stati lasciati volutamente fuori da questo download, in quando sono sempre referenziati all'interno delle master page di SharePoint 2010.
&lt;br /&gt;Per chi si è perso gli articoli usciti su &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePoint Community&lt;/a&gt;, queste sono le librerie che potete scaricare:
&lt;br /&gt;
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Microsoft.SharePoint.Client.dll&lt;/li&gt;&lt;li&gt;Microsoft.SharePoint.Client.Runtime.dll&lt;/li&gt;&lt;li&gt;Microsoft.SharePoint.Client.Silverlight.dll&lt;/li&gt;&lt;li&gt;Microsoft.SharePoint.Client.Silverlight.Runtime.dll&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Il pacchetto di installazione vi copierà i file al seguente percorso:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;C:\Program Files\Common Files\Microsoft Shared\SharePoint Client&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così che possiate poi aggiungere le corrette referenze all'interno dei vostri progetti.
&lt;br /&gt;Per il download, potete seguire questo link:
&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b4579045-b183-4ed4-bf61-dc2f0deabe47" title="SharePoint Client Object Model Redistributable" target="_blank"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=b4579045-b183-4ed4-bf61-dc2f0deabe47&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Vi ricordo inoltre che se venite alla &lt;a href="http://www.techdays-wpc.it/agenda.aspx" title="Microsoft Techdays WPC" target="_blank"&gt;WPC&lt;/a&gt; e se volete un'introduzione su tutto quello che è il modello ad oggetti client-side esposto da SharePoint 2010, terrò due sessioni il giorno 23 alle 14.00 e alle 17.15, rispettivamente presso la sala "Arancio" e "Nera" (le sale sono cambiate da poco).
&lt;br /&gt;Non potete mancare !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePointClientObjectModelRedistributableReleased.aspx" /><issued>2010-11-19T9:46:51+01:00</issued><modified>2010-11-19T9:46:51+01:00</modified></entry><entry><title>Silverlight LOVES SharePoint 2010</title><id>/Blog/SilverlightLovesSharePoint2010.aspx</id><created>2010-11-15T13:5:24+01:00</created><content type="text/html" mode="escaped">In questo weekend ho finito di preparare le sessioni per la &lt;a href="http://www.techdays-wpc.it/" title="Microsoft Tech-Days WPC" target="_blank"&gt;WPC&lt;/a&gt;, conferenza Microsoft che si terrà qui a Milano nei giorni 23, 24 e 25 di novembre.
&lt;br /&gt;Sono piuttosto soddisfatto, soprattutto per la sessione su Silverlight in cui ho cercato di mantenere alta la quantità di demo live rispetto alle solite slide.
&lt;br /&gt;Il matrimonio sarà celebrato esattamente alle ore &lt;b&gt;17.15&lt;/b&gt; presso la &lt;b&gt;sala gialla&lt;/b&gt;.. ecco il vostro invito :)
&lt;br /&gt;
&lt;br /&gt;&lt;div id="silverlightControlHost"&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="480px" height="450px"&gt;&lt;param name="source" value="/ClientBin/SilverlightLovesSharePoint.xap"/&gt;&lt;param name="background" value="white" /&gt;&lt;param name="minRuntimeVersion" value="4.0.50826.0" /&gt;&lt;param name="autoUpgrade" value="true" /&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;v=4.0.50826.0" style="text-decoration:none"&gt;&lt;img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/&gt;&lt;/a&gt;&lt;/object&gt;&lt;iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WPC.aspx" title="TAG: WPC"&gt;WPC&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SilverlightLovesSharePoint2010.aspx" /><issued>2010-11-15T13:5:24+01:00</issued><modified>2010-11-15T13:5:24+01:00</modified></entry><entry><title>Eventi gratuiti su SharePoint a Bologna</title><id>/Blog/EventiGratuitiSuSharePointBologna.aspx</id><created>2010-11-15T10:14:6+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 5px; float: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;Ciao a tutti !
&lt;br /&gt;Per chi non lo sapesse, volevo ricordarvi che domani ci sono due eventi gratuiti organizzati da &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePoint Community&lt;/a&gt; in collaborazione con Microsoft Italia, &lt;a href="http://www.ugiss.org/" title="UGISS" target="_blank"&gt;UGISS&lt;/a&gt;, e &lt;a href="http://dotdotnet.org/" title="DotDotNet" target="_blank"&gt;DotDotNet&lt;/a&gt;, la community dell'emilia romagna.
&lt;br /&gt;Io sarò alla parte per sviluppatori, quindi se venite non esitate a farvi riconoscere.
&lt;br /&gt;Per le rispettive agende, potete far riferimento a queste due pagine:
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://www.sharepointcommunity.it/news/Lists/Events/DispForm.aspx?ID=10" title="Community Tour Developers - Bologna" target="_blank"&gt;Community Tour Developers - Bologna&lt;/a&gt;
&lt;br /&gt;- &lt;a href="http://www.sharepointcommunity.it/news/Lists/Events/DispForm.aspx?ID=9" title="Community Tour IT Pro - Bologna" target="_blank"&gt;Community Tour IT Pro - Bologna&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;A domani !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/EventiGratuitiSuSharePointBologna.aspx" /><issued>2010-11-15T10:14:6+01:00</issued><modified>2010-11-15T10:14:6+01:00</modified></entry><entry><title>MVP Open Days 2010</title><id>/Blog/MVPOpenDays2010.aspx</id><created>2010-11-9T9:21:10+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin-left: 10px; float: right" alt="Microsoft SharePoint MVP" src="http://www.peppedotnet.it/Images/mvp2.jpg" /&gt;Questo weekend sono stato per la prima volta agli MVP Open Days qui a Milano, due giornate di incontro per tutti gli MVP del territorio italiano, tenute presso la sede Microsoft di Segrate.
&lt;br /&gt;Purtroppo, sono potuto andare solamente il primo giorno (compreso di cena in discoteca :) ma vi giuro che è stata una bellissima esperienza.. ho conosciuto questa "famigghia" molto particolare, composta da tantissimi professionisti di livello, in cui sono stato accolto veramente con amore (mi son sentito pure chiamare "picciotto").
&lt;br /&gt;Mi son dovuto presentare (e questo è rigorosamente sotto NDA, sopratutto su questo blog), ci sono stati ospiti d'eccellenza venuti apposta dall'estero, qualche gadget, delle sessioni tecniche che finivano sempre a metà per colpa del numero improponibile di domande che avevano tutti e un sacco di chicchierate tecniche, che la maggior parte delle volte mi lasciavan veramente di stucco.
&lt;br /&gt;Per tutto questo, un grazie doveroso va a (Don) &lt;a href="http://blogs.technet.com/b/alead_msft/" titlte="Alessandro Teglia" target="_blank"&gt;Ale&lt;/a&gt;. Il capo della famiglia, che si è preoccupato di organizzare tutto.
&lt;br /&gt;Poi, a tutti gli altri ! Che è stato veramente un piacere conoscervi o vederci dal vivo.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/MVP.aspx" title="TAG: MVP"&gt;MVP&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MVPOpenDays2010.aspx" /><issued>2010-11-9T9:21:10+01:00</issued><modified>2010-11-9T9:21:10+01:00</modified></entry><entry><title>Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente</title><id>/Blog/EnableOrDisableASharePoint2010RibbonButton.aspx</id><created>2010-11-8T9:25:37+01:00</created><content type="text/html" mode="escaped">Se decidiamo di personalizzare la barra dei Ribbon, inserendo alcuni controlli custom in qualche particolare tab e gruppo, abbiamo anche la possibilità di decidere quando tale Ribbon dovrà o meno essere abilitato. Chiaramente, quello che verrà abilitato (o disabilitato) sarà il comando che l'utente finale può eseguire facendo click sul Ribbon; poi, l'interfaccia di SharePoint 2010 si preoccuperà anche di renderizzare il Ribbon in maniera da far capire a colpo d'occhio che non è possibile eseguire operazioni sul contentuo della pagina a partire da quello specifico controllo.
&lt;br /&gt;Ad effettuare il controllo vero e proprio invece, sarà una funzione Javascript che dovrà essere inserita all'interno della definizione del relativo comando del Ribbon. Nello specifico, questa funzione dovrà essere inserita allÂ’interno dellÂ’attributo "EnableScript" proprio dell'elemento "CommandUIHandler" e dovrà ritornare un valore booleano, in modo che lÂ’interfaccia di SharePoint 2010 riesca a capire quando abilitare il controllo e quando invece disabilitarlo.
&lt;br /&gt;Per fare in modo di abilitare o disabilitare il controllo del nostro Ribbon in base alla selezione da parte dell'utente sugli elementi di una lista, dobbiamo utilizzare il Client Object Model per ECMAScript offerto da SharePoint 2010 e le sue classi per la selezione.
&lt;br /&gt;Vediamo come:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="101"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;="List"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hello world ribbon"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.Controls._children"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld.Button"&lt;/span&gt;
&lt;br /&gt;                  LabelText&lt;span style='color:#0000FF'&gt;="Hello world"&lt;/span&gt;
&lt;br /&gt;                  TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt;
&lt;br /&gt;                  Image32by32&lt;span style='color:#0000FF'&gt;="/_layouts/images/PeppeDotNet/HelloWorld32by32.png"&lt;/span&gt;
&lt;br /&gt;                  Sequence&lt;span style='color:#0000FF'&gt;="31"&lt;/span&gt;
&lt;br /&gt;                  Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                          CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert('Action for only one item !');"&lt;/span&gt;
&lt;br /&gt;                          EnabledScript&lt;span style='color:#0000FF'&gt;="javascript:SP.ListOperation.Selection.getSelectedItems().length == 1;"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Nell'esempio, abbiamo deciso che il nostro Ribbon di prova dovrà essere abilitato solamente quando l'utente ha selezionato un singolo elemento. Nel &lt;a href="http://blogs.msdn.com/b/sharepoint/archive/2010/02/15/enabling-a-button-on-the-ribbon-based-on-selection.aspx" title="Enabling a Button on the Ribbon Based on Selection" target="_blank"&gt;blog del team di SharePoint&lt;/a&gt; trovate un'altra implementazione di questo comportamento, disponibile attraverso l'uso della funzione CountDictionary().
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_10.jpg" alt="Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente" /&gt;
&lt;br /&gt; 
&lt;br /&gt;Nel caso in cui lÂ’utente scelga di selezionare più elementi o nel caso in cui non ne abbia scelto ancora nessuno, il pulsante risulterà qunidi disabilitato.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_09.jpg" alt="Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente" /&gt;
&lt;br /&gt; 
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_11.jpg" alt="Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente" /&gt;
&lt;br /&gt;
&lt;br /&gt;Questo ci permette di effettuare operazioni su singoli elementi di una lista SharePoint.
&lt;br /&gt;Allo stesso modo, se volessimo invece effettuare operazioni su più di un elemento selezionato da una lista, dovremmo scrivere il codice che controlli che la selezione dell'utente contenga più di un singolo elemento (l'esatto contrario di quanto scritto prima).
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                  CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert(Action for multiple items !');"&lt;/span&gt;
&lt;br /&gt;                  EnabledScript="javascript:SP.ListOperation.Selection.getSelectedItems().length &lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; 1;"/&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Questo ci permettere di effettuare la medesima operazione su più documenti (o elementi) scelti dall'utente. Infatti, la funzione SP.ListOperation.Selection.getSelectedItems(), propria del modello ad oggetti client-side per ECMAScript (di cui sicuramente vedremo un'introduzione), ritornerà una collezione di elementi contenente tutti gli oggetti che sono stati selezionati dallÂ’utente, compresi di identificativi, utili ad effettuare poi le nostre operazioni personalizzate su di essi.
&lt;br /&gt;Nel caso di una selezione singola, quella funzione ritornerà una collezione contenente un solo elemento.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_12.jpg" alt="Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente" /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_13.jpg" alt="Abilitare o disabilitare un controllo di un Ribbon in base alla selezione dell'utente" /&gt;
&lt;br /&gt;
&lt;br /&gt;In questi esempi, abbiamo utilizzato le classi esposte dal modello ad oggetti client-side per ECMAScript per abilitare o disabilitare il nostro controllo Ribbon. Volendo, abbiamo la possibilità di fare qualsiasi altro tipo di calcolo all'interno del nostro script, utilizzando una o più funzioni, e ricordandoci sempre che la funzione principale deve ritornare un valore booleano.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                  CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert('Action only for work-hours !');"&lt;/span&gt;
&lt;br /&gt;                  EnabledScript&lt;span style='color:#0000FF'&gt;="javascript:function abilitaRibbon() {
&lt;br /&gt;                                    var ora = ritornaOraCorrente();
&lt;br /&gt;                                    return (ora &amp;gt;= 9 &amp;amp;&amp;amp; ora &amp;lt;= 18);
&lt;br /&gt;                                  };
&lt;br /&gt;                                  function ritornaOraCorrente()
&lt;br /&gt;                                  {
&lt;br /&gt;                                    var d = new Date();
&lt;br /&gt;                                    return d.getHours();
&lt;br /&gt;                                  }
&lt;br /&gt;                                  abilitaRibbon();"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Nel prossimo post vedremo come spostare all'esterno del file XML di definizione del Ribbon personalizzato (quindi all'interno di un file .js specifico), tutto il codice Javascript utilizzato sia per l'abilitazione o la disabilitazione del controllo, sia per l'azione vera e propria da compiare dopo un click da parte dellÂ’utente sul controllo stesso.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/EnableOrDisableASharePoint2010RibbonButton.aspx" /><issued>2010-11-8T9:25:37+01:00</issued><modified>2010-11-8T9:25:37+01:00</modified></entry><entry><title>Le icone di un controllo personalizzato all'interno della barra dei Ribbon</title><id>/Blog/SharePoint2010RibbonControlsImages.aspx</id><created>2010-11-5T9:29:25+01:00</created><content type="text/html" mode="escaped">Nel &lt;a href="http://www.peppedotnet.it/Blog/SharePoint2010RibbonTemplateAlias.aspx" title="Template di un controllo Ribbon posto all'interno di un gruppo pre-esistente" target="_blank"&gt;precedente post&lt;/a&gt; abbiamo visto com'è possibile personalizzare la grandezza di un controllo Ribbon all'interno di un tab e un gruppo già presenti alla barra dei Ribbon. Abbiamo identificato due template principali, rispettivamente definiti dagli alias "o1" e "o2", e abbiamo visto che in base alla scelta di un template al posto dell'altro, vengono visualizzate differenti immagini a rappresentare il nostro controllo.
&lt;br /&gt;Nel dettaglio, certi tipi di controlli possono essere rappresentati da due differenti immagini, ovviamente di diverse dimensioni:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Immagine 32 x 32: il cui URL va definito all'interno dell’attributo "Image32by32"&lt;/li&gt;&lt;li&gt;Immagine 16 x 16: il cui URL va definito all'interno dell’attributo "Image16by16"&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;I controlli che offrono la possibilità della visualizzazioni di questi due differenti formati di immagine sono i seguenti:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Button&lt;/li&gt;&lt;li&gt;SplitButton&lt;/li&gt;&lt;li&gt;ToggleButton&lt;/li&gt;&lt;li&gt;FlyoutAnchor&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Su qualsiasi di queste due immagini, possiamo poi definire una serie ulteriore di attributi che ne modificano la visualizzazione. Eccoli nel dettaglio:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Image32by32Class / Image16by16Class: il nome della classe CSS che verrà applicata all'immagine.&lt;/li&gt;&lt;li&gt;Image32by32Left / Image16by16Left: un valore negativo che rappresenta l'offset dal margine sinistro con cui deve essere renderizzata l'immagine.&lt;/li&gt;&lt;li&gt;Image32by32Top / Image16by16Top: un valore negativo che rappresenta l'offset dal margine alto con cui deve essere renderizzata l'immagine.&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Gli ultimi due attributi vengono utilizzati da SharePoint stesso per renderizzare parti di immagini contenenti più icone utili a differenti controlli.
&lt;br /&gt;Altri controlli che possono essere configurati in modo da visualizzare un'immagine all'interno della barra dei ribbon sono il controllo GalleryButton (tramite il suo attributo "Image") e il controllo Label (che contiene solamente l'attributo Image16by16).
&lt;br /&gt;
&lt;br /&gt;Se volete maggiori informazioni riguardo lo schema di tutti i controlli che potete inserire all'interno della barra dei Ribbon, potete consultare la documentazione on-line a questo indirizzo:
&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff458369.aspx" title="Server Ribbon Schema" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ff458369.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010RibbonControlsImages.aspx" /><issued>2010-11-5T9:29:25+01:00</issued><modified>2010-11-5T9:29:25+01:00</modified></entry><entry><title>Template di un controllo Ribbon posto all'interno di un gruppo pre-esistente</title><id>/Blog/SharePoint2010RibbonTemplateAlias.aspx</id><created>2010-11-2T9:24:44+01:00</created><content type="text/html" mode="escaped">Durante la customizzazione della barra dei ribbon, oltre a dover specificare il tab e il gruppo in cui i controlli relativi al nostro Ribbon personalizzato dovranno essere visualizzati (come abbiamo visto nel &lt;a href="http://www.peppedotnet.it/Blog/HowToWriteARibbonInSharePoint2010.aspx" target="_blank" title="Il nostro primo Ribbon su SharePoint 2010"&gt;primo post&lt;/a&gt; di questa serie dedicata ai Ribbon), dobbiamo specificare anche il modo in cui questi controlli dovranno essere renderizzati.
&lt;br /&gt;Per farlo, ogni controllo che possiamo inserire all'interno dell'estensione all'interfaccia di SharePoint che stiamo sviluppando, espone l'attributo &lt;b&gt;TemplateAlias&lt;/b&gt;. Questo attributo serve a specificare l'identificativo del template che deve essere utilizzato per dare una larghezza ed una grandezza al controllo in questione, quando un particolare template è stato applicato al gruppo in cui abbiamo deciso di inserire il nostro Ribbon personalizzato.
&lt;br /&gt;Nel primo esempio, abbiamo applicato al bottone il template con alias &lt;b&gt;"o1"&lt;/b&gt;. Questo alias permette al sistema di rendering della barra dei Ribbon di SharePoint 2010 di dare larghezza e altezza massime al bottone. Inoltre, applica al bottone stesso l'immagine il cui URL è definito all'interno dell'attributo "Image32by32".
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="101"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;="List"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hello world ribbon"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.Controls._children"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld.Button"&lt;/span&gt;
&lt;br /&gt;                  LabelText&lt;span style='color:#0000FF'&gt;="Hello world"&lt;/span&gt;
&lt;br /&gt;                  TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt;
&lt;br /&gt;                  Image32by32&lt;span style='color:#0000FF'&gt;="/_layouts/images/PeppeDotNet/HelloWorld32by32.png"&lt;/span&gt;
&lt;br /&gt;                  Sequence&lt;span style='color:#0000FF'&gt;="31"&lt;/span&gt;
&lt;br /&gt;                  Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                          CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert('Hello world from BIG Ribbon !');"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Il risultato di un bottone con l'attributo TemplateAlias valorizzato a "o1" lo conosciamo già.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_07.jpg" alt="AliasTemplate o1" /&gt;
&lt;br /&gt; 
&lt;br /&gt;Ma se volessimo invece visualizzare il nostro Ribbon personalizzato nel formato un pò più piccolo, dobbiamo specificare un nuovo valore per l'attributo TemplateAlias. Questo è il valore &lt;b&gt;"o2"&lt;/b&gt;, che specifica la dimensione massima del testo, la posizione e l'utilizzo dell'immagine il cui URL è definito all'interno dell'attributo "Image16by16".
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="101"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;="List"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hello world ribbon"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.Controls._children"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld.Button"&lt;/span&gt;
&lt;br /&gt;                  LabelText&lt;span style='color:#0000FF'&gt;="Hello world"&lt;/span&gt;
&lt;br /&gt;                  TemplateAlias&lt;span style='color:#0000FF'&gt;="o2"&lt;/span&gt;
&lt;br /&gt;                  Image16by16&lt;span style='color:#0000FF'&gt;="/_layouts/images/PeppeDotNet/HelloWorld16by16.png"&lt;/span&gt;
&lt;br /&gt;                  Sequence&lt;span style='color:#0000FF'&gt;="31"&lt;/span&gt;
&lt;br /&gt;                  Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                          CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert('Hello world from LITTLE Ribbon !');"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Una volta fatto deploy, vedremo il nostro bottone personalizzato apparire nel secondo gruppo di controlli (sempre all'inteno del gruppo "Manage" proprio del tab "Documents"), cioè assieme a tutti quei controlli con altezza minima. Volendo poi spostarlo prima, in mezzo o dopo gli altri controlli già presenti, possiamo giocare con i valori dell'attributo "Sequence" (come spiegato in &lt;a href="http://www.peppedotnet.it/Blog/ControlPositionOnSharePoint2010RibbonBar.aspx" title="Gestione della posizione dei controlli inseriti nella barra dei Ribbon di SharePoint 2010" target="_blank"&gt;questo post&lt;/a&gt;).
&lt;br /&gt; 
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_08.jpg" alt="AliasTemplate o2" /&gt;
&lt;br /&gt;
&lt;br /&gt;Gli alias di template visti fin'ora ("o1" e "o2") sono validi fin quando vogliamo inserire un controllo all'interno di uno dei gruppi già esistenti nella barra dei Ribbon di SharePoint 2010. Se decidiamo invece di creare dei tab e dei gruppi personalizzati, possiamo allora definire i nostri template personalizzati per la visualizzazione dei controlli.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010RibbonTemplateAlias.aspx" /><issued>2010-11-2T9:24:44+01:00</issued><modified>2010-11-2T9:24:44+01:00</modified></entry><entry><title>Gestione della posizione dei controlli inseriti nella barra dei Ribbon di SharePoint 2010</title><id>/Blog/ControlPositionOnSharePoint2010RibbonBar.aspx</id><created>2010-10-31T19:58:19+01:00</created><content type="text/html" mode="escaped">Come abbiamo visto dal nostro &lt;a href="http://www.peppedotnet.it/Blog/HowToWriteARibbonInSharePoint2010.aspx" title="Il nostro primo Ribbon per SharePoint 2010" target="_blank"&gt;primo esempio&lt;/a&gt;, possiamo aggiungere i nostri Ribbon personalizzati ad uno specifico tab ed uno specifico gruppo, specificando il corretto valore all'interno dell'attributo "Location". 
&lt;br /&gt;Se non definiamo nient'altro, gli elementi facenti parte del nostro Ribbon (bottoni, checkbox, ecc...) verranno visualizzati come ultimi nel gruppo in cui il Ribbon è stato inserito.
&lt;br /&gt;
&lt;br /&gt;&lt;div style="margin-left: 15px; font-style: italic; padding 3px;"&gt;&lt;span style="text-decoration: underline"&gt;Nota:&lt;/span&gt; In questo senso, è necessario però definire bene il concetto di "ultimo", in quanto questi controlli saranno visualizzati dopo tutti quelli definiti con il medesimo "TemplateAlias" (nei prossimi post daremo una spiegazione anche all'utilità di questo attributo).&lt;/div&gt;
&lt;br /&gt;Come possiamo vedere in figura, il gruppo "Manage" del tab "Documents" (proprio di ogni Document Library appartenente ad un sito SharePoint 2010), vede già la presenza di due controlli con l’attributo "TemplateAlias" valorizzato a "o1". Questi sono i controlli per la visualizzazione delle proprietà di un documento o per la loro modifica.
&lt;br /&gt;L'esempio visto nel precedente post infatti, posiziona il nostro Ribbon personalizzato con etichetta "Hello world", subito dopo questi due.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_05.jpg" alt="Posizionamento di un controllo nella barra dei Ribbon di SharePoint 2010" /&gt;
&lt;br /&gt; 
&lt;br /&gt;Se vogliamo invece spostare il nostro bottone personalizzato prima di tutti gli altri (o in qualsiasi altra posizione), dobbiamo dare un valore intero all'attributo "Sequence" del controllo che vogliamo posizionare.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="101"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;="List"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hello world ribbon"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.Controls._children"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld.Button"&lt;/span&gt;
&lt;br /&gt;                  LabelText&lt;span style='color:#0000FF'&gt;="Hello world"&lt;/span&gt;
&lt;br /&gt;                  TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt;
&lt;br /&gt;                  Sequence&lt;span style='color:#0000FF'&gt;="1"&lt;/span&gt;
&lt;br /&gt;                  Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt; 
&lt;br /&gt;                          CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert('Hello world from Ribbon !');"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Così, scegliendo di valorizzare tale attributo con il valore &lt;b&gt;1&lt;/b&gt; (o comunque un numero &lt;span style="text-decoration: underline"&gt;minore di 10&lt;/span&gt;), abbiamo deciso che il nostro bottone custom deve essere renderizzato come primo all'interno del gruppo "Manage" del tab "Documents".
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_04.jpg" alt="Posizionamento di un controllo nella barra dei Ribbon di SharePoint 2010" /&gt;
&lt;br /&gt; 
&lt;br /&gt;Specificando invece il valore &lt;b&gt;11&lt;/b&gt; (quindi &lt;span style="text-decoration: underline"&gt;maggiore di 10 e minore di 20&lt;/span&gt;), il nostro Ribbon custom verrà posizionato tra il controllo di visualizzazione delle proprietà e quello di modifica.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_06.jpg" alt="Posizionamento di un controllo nella barra dei Ribbon di SharePoint 2010" /&gt;
&lt;br /&gt; 
&lt;br /&gt;Questo perchè ogni Ribbon già presente nella barra, ha un valore dell'attributo "Sequence" che parte da 10 (per il primo controllo da sinistra) e va avanti di 10 in 10 per ogni controllo successivo.
&lt;br /&gt;Nel nostro esempio, i controlli presenti all'interno del gruppo "Manage" del tab "Documents" hanno i seguenti valori per il campo "Sequence":
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;View properties - 10&lt;/li&gt;&lt;li&gt;Edit properties - 20&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Per visualizzare i corretti valori di ognuno dei controlli presenti all'interno della barra dei Ribbon e del gruppo specifico che abbiamo scelto per la visualizzazione della nostra personalizzazione all'interfaccia di SharePoint 2010, possiamo spulciare il file di definizione &lt;b&gt;"CMDUI.XML"&lt;/b&gt; presente all'interno del percorso:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Ecco infatti, come sono definiti i due controlli in questione:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.ViewProperties"&lt;/span&gt;
&lt;br /&gt;        Sequence&lt;span style='color:#0000FF'&gt;="10"&lt;/span&gt;
&lt;br /&gt;        ...
&lt;br /&gt;        TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.EditProperties"&lt;/span&gt;
&lt;br /&gt;        Sequence&lt;span style='color:#0000FF'&gt;="20"&lt;/span&gt;
&lt;br /&gt;        ...
&lt;br /&gt;        TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Se avete famigliarità con le custom action introdotte in WSS 3.0/MOSS 2007, vi sarete sicuramente accorti che il concetto di sequenza della visualizzazione delle azioni è esattamente il medesimo, con l'unica differenza che in questo specifico caso viene applicato alla barra dei Ribbon e non ai vari menu contestuali presenti all'interno dell'interfaccia di SharePoint.
&lt;br /&gt;Nel prossimo post vedremo invece quali sono i template che abbiamo a disposizione per il rendering di un controllo posto all'interno di un gruppo già presente nella barra dei Ribbon di SharePoint 2010.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ControlPositionOnSharePoint2010RibbonBar.aspx" /><issued>2010-10-31T19:58:19+01:00</issued><modified>2010-10-31T19:58:19+01:00</modified></entry><entry><title>Il nostro primo Ribbon per SharePoint 2010</title><id>/Blog/HowToWriteARibbonInSharePoint2010.aspx</id><created>2010-10-27T17:24:25+01:00</created><content type="text/html" mode="escaped">La customizzazione dell'interfaccia di SharePoint 2010 può ritornarci molto utile per poter effettuare operazioni su liste ed elementi o per estendere il normale comportamento di SharePoint in modo da aggiungere funzionalità personalizzate, utili alle nostre applicazioni.
&lt;br /&gt;Una delle personalizzazioni che possiamo fare è lo sviluppo di un Ribbon personalizzato da poter aggiungere alla barra dei Ribbon presente nel layout di default della nuova versione di SharePoint.
&lt;br /&gt;Innanzitutto, è molto importante sapere che risulta una best practices utilizzare i Ribbon per tutte quelle operazioni che in MOSS 2007/WSS 3.0 abbiamo fruito ai nostri utenti attraverso le custom action. In generale poi, ci viene utile sviluppare un Ribbon se vogliamo fare operazioni su liste e singoli o multipli elementi di liste.
&lt;br /&gt;
&lt;br /&gt;Detto questo, per la definizione di un Ribbon all'interno di Visual Studio 2010 dobbiamo creare un progetto di tipo "Empty SharePoint Project" e scegliere di aggiungere un nuovo elemento di tipo "Empty element".
&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_01.jpg" alt="Empty element" /&gt;
&lt;br /&gt;
&lt;br /&gt;Questa tipologia di template contiene un file xml vuoto all'interno del quale possiamo procedere con la definizione del nostro Ribbon. Come vi dicevo, il legame tra un Ribbon e le custom action che abbiamo conosciuto in MOSS 2007 è molto importante, infatti per la definizione del nostro primo Ribbon personalizzato utilizziamo comunque il tag "CustomAction".
&lt;br /&gt;Ma vediamo subito l'esempio, che vale sicuramente più di mille parole.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#FF0000'&gt; xmlns&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                Title&lt;span style='color:#0000FF'&gt;="Hello World"&lt;/span&gt;
&lt;br /&gt;                Location&lt;span style='color:#0000FF'&gt;="CommandUI.Ribbon"&lt;/span&gt;
&lt;br /&gt;                RegistrationType&lt;span style='color:#0000FF'&gt;="List"&lt;/span&gt;
&lt;br /&gt;                RegistrationId&lt;span style='color:#0000FF'&gt;="101"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Location&lt;span style='color:#0000FF'&gt;="Ribbon.Documents.Manage.Controls._children"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Button&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Id&lt;span style='color:#0000FF'&gt;="Ribbon.HelloWorld"&lt;/span&gt;
&lt;br /&gt;                  TemplateAlias&lt;span style='color:#0000FF'&gt;="o1"&lt;/span&gt;
&lt;br /&gt;                  Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                  LabelText&lt;span style='color:#0000FF'&gt;="Hello world"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinition&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandler&lt;/span&gt;&lt;span style='color:#FF0000'&gt; Command&lt;span style='color:#0000FF'&gt;="HelloWorld"&lt;/span&gt;
&lt;br /&gt;                          CommandAction&lt;span style='color:#0000FF'&gt;="javascript:alert('Hello world from ribbon !"&lt;/span&gt;);" &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIHandlers&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CommandUIExtension&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;CustomAction&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;Elements&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Come potete vedere, proprio come le custom action della precedente versione di SharePoint, possiamo scegliere di inserire il nostro Ribbon all'interno della relativa barra (tramite l'attributo "Location"), il contesto in cui il nostro Ribbon dovrà apparire (attraverso gli attributi "RegistrationType" e "RegistrationId") e, novità rispetto alla vecchia versione, possiamo definire quale dovrà essere l'estensione all'interfaccia che il nostro Ribbon andrà a rappresentare.
&lt;br /&gt;
&lt;br /&gt;L'estensione non è altro che un singolo controllo o una serie di controlli (nel nostro esempio un semplice bottone) che decidiamo che dovranno essere visualizzati all'interno della barra dei Ribbon, in uno dei vari tab a disposizione e che forniscano delle azioni personalizzate agli utenti finali.
&lt;br /&gt;Nell'esempio, ho scelto di posizione la mia estensione all'interno del tab "Douments" presente in tutte le Document Library di SharePoint 2010 e all'interno del gruppo "Manage". Questa scelta viene specificata all'interno dell'attributo "Location" proprio dell'elemento "CommandUIDefinition" che rappresenta la mia estensione.
&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_02.jpg" alt="Hello world ribbon" /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;img src="http://www.peppedotnet.it/Images/2010/HelloWorldRibbon_03.jpg" alt="Hello world ribbon action" /&gt;
&lt;br /&gt;
&lt;br /&gt;In generale, per inserire i nostri Ribbon all'interno dei vari tab e dei vari gruppi, vale la seguente regola:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Ribbon.[Tab].[Group].Controls._children&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete la lista di tutti gli identificativi dei tab e dei gruppi che avete a disposizione, potete andare all'interno della documentazione a questo indirizzo:
&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee537543.aspx" target="_blank" title="Default Custom Action Locations and IDs"&gt;http://msdn.microsoft.com/en-us/library/ee537543.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Poi, ad ogni controllo (bottone, checkbox o altro che sia..) presente all'interno della nostra estensione all'interfaccia di SharePoint, possiamo legare uno specifico comando. Questo comando sarà una o più istruzioni JavaScript che abbiamo la possibilità di definire all'interno dell'attributo "CommandAction" dell'elemento "CommandUIHandler", utile a definire appunto il comportamento che dovrà avere il nostro ribbon a fronte di un'operazione da parte dell'utente su di esso.
&lt;br /&gt;
&lt;br /&gt;Non mi dilungo di più perchè di cose da dire ce ne sono davvero tante e dovrei riprenderle tutte nei prossimi post o in qualche articolo pubblicato da &lt;a href="http://www.sharepointcommunity.it" target="_blank"&gt;SharePointCommunity&lt;/a&gt;.
&lt;br /&gt;Vi ricordo, che se volete un template di progetto già fatto per la scrittura di Ribbon, lo potete trovare all'interno della Code Gallery di Microsoft a questo indirizzo: &lt;a href="http://code.msdn.microsoft.com/vsixforsp" title="Microsoft Code Gallery . Ribbon Project" target="_blank"&gt;http://code.msdn.microsoft.com/vsixforsp&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToWriteARibbonInSharePoint2010.aspx" /><issued>2010-10-27T17:24:25+01:00</issued><modified>2010-10-27T17:24:25+01:00</modified></entry><entry><title>Errore: &quot;'b' is null or not an object&quot; utilizzando l'ECMAscript client object model di SharePoint 2010</title><id>/Blog/ErrorBIsNullOrNotAnObjectEcmaScriptSharePoint2010.aspx</id><created>2010-10-24T14:39:59+01:00</created><content type="text/html" mode="escaped">In queste ultime due settimane ho lavorato tanto con il Client Object Model per ECMAScript, legato sopratutto alle operazioni che l'utente finale può fare tramite la barra dei Ribbon. Spero di riuscire a fare un pò di contenuti per il blog e per &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePoint Community&lt;/a&gt; a riguardo, perchè l'UI Framework di SharePoint 2010 è veramente carino.
&lt;br /&gt;Comunque, durante queste prove mi sono scontrato con questo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;'b' is null or not an object&lt;/div&gt;
&lt;br /&gt;Questo veniva scatenato quando cercavo di recuperare delle proprietà di un elemento selezionato, subito dopo aver richiamato il metodo executeQueryAsync().
&lt;br /&gt;Questo metodo vuole la specifica di due delegati per gestire il successo della chiamata lato server o un'eventuale errore. 
&lt;br /&gt;Nel mio caso, lo script non arriva ne al primo gestore ne al secondo, ma veniva fermato durante il callback.
&lt;br /&gt;Ecco il codice &lt;span style="color: red; font-weight: bold;"&gt;ERRATO&lt;/span&gt; che avevo scritto:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;var selectedItem;
&lt;br /&gt;
&lt;br /&gt;function initializeScript() { 
&lt;br /&gt;   var items = SP.ListOperation.Selection.getSelectedItems(); 
&lt;br /&gt;   var context = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SP.ClientContext.get_current();
&lt;br /&gt;   var currentList = context.get_web().get_lists().getById(SP.ListOperation.Selection.getSelectedList()); 
&lt;br /&gt;   selectedItem = currentList.getItemById(items[0].id); 
&lt;br /&gt;   context.load(selectedItem);
&lt;br /&gt;   context.executeQueryAsync(Function.createDelegate(&lt;span style="color: #0000FF"&gt;this&lt;/span&gt;, &lt;span style="color: #0000FF"&gt;this&lt;/span&gt;.onSuccessMethod), Function.createDelegate(&lt;span style="color: #0000FF"&gt;this&lt;/span&gt;, &lt;span style="color: #0000FF"&gt;this&lt;/span&gt;.onFailureMethod));
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;function onSuccessMethod(sender, args) { 
&lt;br /&gt;   alert('success');
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;function onFailureMethod(sender, args) {
&lt;br /&gt;   alert('fail');
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Dove sta l'errore ? L'errore sta nella specifica del nome dei due delegati. 
&lt;br /&gt;Nel mio script, faccio riferimento ai metodi onSuccessMethod e onFailureMethod utilizzando la parola chiave "this". Ecco, questo script funzionerebbe se lo estraessi dalla funzione "initializeScript". Essendo invece all'interno di tale funzione, la parola chiave "this" manda in errore il callback perchè così non vengono trovati i due delagati.
&lt;br /&gt;Togliendo la parole chiave "this", il meccanismo di callback sa quali sono i metodi che devono gestire gli eventi di successo o errore e tutti ritorna così a funzionare.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;var selectedItem;
&lt;br /&gt;
&lt;br /&gt;function initializeScript() { 
&lt;br /&gt;   var items = SP.ListOperation.Selection.getSelectedItems(); 
&lt;br /&gt;   var context = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SP.ClientContext.get_current();
&lt;br /&gt;   var currentList = context.get_web().get_lists().getById(SP.ListOperation.Selection.getSelectedList()); 
&lt;br /&gt;   selectedItem = currentList.getItemById(items[0].id); 
&lt;br /&gt;   context.load(selectedItem);
&lt;br /&gt;   &lt;span style="color: #008200"&gt;//context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), Function.createDelegate(this, this.onFailureMethod));&lt;/span&gt;
   context.executeQueryAsync(Function.createDelegate(&lt;span style="color: #0000FF"&gt;this&lt;/span&gt;, onSuccessMethod), Function.createDelegate(&lt;span style="color: #0000FF"&gt;this&lt;/span&gt;, onFailureMethod));
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;function onSuccessMethod(sender, args) { 
&lt;br /&gt;   alert('success');
&lt;br /&gt;}
&lt;br /&gt;
&lt;br /&gt;function onFailureMethod(sender, args) {
&lt;br /&gt;   alert('fail');
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Quindi, se capita anche a voi questo errore, sappiate che i nomi dei due delegati che gestiranno il callback dovranno essere scritti senza errori.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/ECMAScript.aspx" title="TAG: ECMAScript"&gt;ECMAScript&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/JavaScript.aspx" title="TAG: JavaScript"&gt;JavaScript&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ErrorBIsNullOrNotAnObjectEcmaScriptSharePoint2010.aspx" /><issued>2010-10-24T14:39:59+01:00</issued><modified>2010-10-24T14:39:59+01:00</modified></entry><entry><title>Errore &quot;The local SharePoint server is not available&quot; sul deploy da Visual Studio 2010</title><id>/Blog/ErroreTheLocalSharePointServerIsNotAvailable.aspx</id><created>2010-10-16T16:39:54+01:00</created><content type="text/html" mode="escaped">Se vi capita di fare deployment delle vostre soluzioni SharePoint per la prima volta su una nuova farm di sviluppo, è possibile che Visual Studio 2010 decida di bloccare l'operazione di deploy e ritornarvi il seguente errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;Error occurred in deployment step 'Recycle IIS Application Pool': The local SharePoint server is not available. Check that the server is running and connected to the SharePoint farm.&lt;/div&gt;
&lt;br /&gt;Ecco, tale errore non vi permette di fare deployment delle vostre soluzioni (anche se correttamente compilate) perchè l'utente con cui avete fatto logon sulla macchina SharePoint e con il quale avete avviato Visual Studio 2010 non ha i permessi sui seguenti database:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SharePoint_Config&lt;/li&gt;&lt;li&gt;SharePoint_AdminContent_[guid]&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Fatto questo, se provate subito ad effettuare il deploy della soluzione su una specifica web application SharePoint 2010, vi troverete questo secondo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px;"&gt;Error occurred in deployment step 'Recycle IIS Application Pool': Cannot connect to the SharePoint site: http://YOUR_SITE_NAME/. Make sure that this is a valid URL and the SharePoint site is running on the local computer. If you moved this project to a new computer or if the URL of the SharePoint site has changed since you created the project, update the Site URL property of the project.&lt;/div&gt;
&lt;br /&gt;Ne abbiamo &lt;a href="http://www.peppedotnet.it/Blog/ErrorOccurredInDeploymentStepRecycleIISApplicationPool.aspx" title="Error occurred in deployment step Recycle IIS Application Pool" target="_blank"&gt;già parlato&lt;/a&gt; di questo errore, in quanto può esser scatenato anche quando spostate manualmente un progetto da una macchina SharePoint ad un'altra.
&lt;br /&gt;In questo caso, è necessario che vi fate dare i permessi sul &lt;b&gt;content database&lt;/b&gt; legato alla web application in cui state facendo deploy.
&lt;br /&gt;
&lt;br /&gt;Detto questo, è vero che solitamente per attività di sviluppo si creano macchine virtuali ad hoc dove l'utente corrente è amministratore della macchina, ma è anche vero che vi può capitare di dover sviluppare su server che non gestite direttamente e in cui accedete con la vostra normale utenza di dominio.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 2010.aspx" title="TAG: Visual Studio 2010"&gt;Visual Studio 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ErroreTheLocalSharePointServerIsNotAvailable.aspx" /><issued>2010-10-16T16:39:54+01:00</issued><modified>2010-10-16T16:39:54+01:00</modified></entry><entry><title>Come inserire una site column ad un content type tramite l'object model di SharePoint</title><id>/Blog/FunctionalityIsUnavailableForFieldCollectionsNotAssociatedWithAList.aspx</id><created>2010-10-16T11:47:35+01:00</created><content type="text/html" mode="escaped">Utilizzando il modello ad oggetti lato server di SharePoint e provando a maneggare le classi SPField e SPContentType, possiamo avere la necessità di creare una site column ed attaccarla poi ad un content type esistente all'interno della nostra site collection (per la creazione di un content type tramite modello ad oggetti, vi rimando a &lt;a href="http://www.peppedotnet.it/Blog/CreateCustomContentTypeProgrammatically.aspx" title="Come creare un Content Type personalizzato via codice 
&lt;br /&gt;" target="_blank"&gt;questo post&lt;/a&gt;).
&lt;br /&gt;Abituati a come si devono gestire i campi (attraverso la classe SPFIeld) in liste SharePoint, la prima cosa ci può venire in mente è sicuramente quella di aggiungere il nostro SPField all'interno della SPFieldCollection esposta dalla proprietà "Fields" del nostro content type:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;SPContentType ct = web.ContentTypes[&lt;span style="color: #A31515"&gt;"CONTENT TYPE NAME"&lt;/span&gt;];
&lt;br /&gt;SPField field = web.Fields.GetFieldByInternalName(&lt;span style="color: #A31515"&gt;"COLUMN INTERNAL NAME"&lt;/span&gt;);
&lt;br /&gt;ct.Fields.Add(field);
&lt;br /&gt;ct.Update(&lt;span style="color: #0000FF"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Ecco, nel caso dell'inserimento di un SPField all'interno di un content type e NON all'interno di una lista, questo codice &lt;b&gt;E' SBAGLIATO !&lt;/b&gt;
&lt;br /&gt;Infatti, se provate ad eseguirlo vi ritroverete questo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;This functionality is unavailable for field collections not associated with a list&lt;/div&gt;
&lt;br /&gt;Errore scatenato all'esecuzione del metodo Add() della classe SPFieldCollection.
&lt;br /&gt;Il metodo corretto per l'inserimento di un SPField (la nostra site column) all'interno di un content type è tramite l'utilizzo della classe SPFieldLink. Ecco l'esempio.
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;SPContentType ct = web.ContentTypes[&lt;span style="color: #A31515"&gt;"CONTENT TYPE NAME"&lt;/span&gt;];
&lt;br /&gt;SPField field = web.Fields.GetFieldByInternalName(&lt;span style="color: #A31515"&gt;"COLUMN INTERNAL NAME"&lt;/span&gt;);
&lt;br /&gt;SPFieldLink link = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SPFieldLink(field);
&lt;br /&gt;ct.FieldLinks.Add(link);
&lt;br /&gt;ct.Update(&lt;span style="color: #0000FF"&gt;true&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Spero possa essere utile a qualcuno.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Object Model.aspx" title="TAG: Object Model"&gt;Object Model&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Content type.aspx" title="TAG: Content type"&gt;Content type&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/FunctionalityIsUnavailableForFieldCollectionsNotAssociatedWithAList.aspx" /><issued>2010-10-16T11:47:35+01:00</issued><modified>2010-10-16T11:47:35+01:00</modified></entry><entry><title>SharePoint 2010 e l'integrazione con le varie versioni di Office</title><id>/Blog/SharePoint2010AndOfficeIntegrationWithePaper.aspx</id><created>2010-10-15T8:7:0+01:00</created><content type="text/html" mode="escaped">Già per la versione 2007 di SharePoint era &lt;a href="http://technet.microsoft.com/en-us/library/cc263391.aspx" title="white paper for Office integration and SharePoint Server 2007" target="_blank"&gt;stato pubblicato&lt;/a&gt; un white paper che elencava le differenti caratteristiche e funzionalità che le versioni dei vari pacchetti Office avevano per quanto riguarda l'integrazione con WSS 3.0/MOSS 2007.
&lt;br /&gt;
&lt;br /&gt;Lo stesso white paper è stato aggiornato a SharePoint 2010 e Office 2010. Lo potete trovare all'interno del &lt;a href="http://download.microsoft.com/DOWNLOAD/2/A/A/2AA0D302-86A6-4AA2-A0A4-4F15FA7DBF5C/BUSINESS%20PRODUCTIVITY%20AT%20ITS%20BEST_WHITEPAPER.PDF" titlte="SharePoint 2010 e l'integrazione con le varie versioni di Office" target="_blank"&gt;sito di download di Microsoft&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;Questo documento descrive come i programmi dei pacchetti Office 2010, 2007 e 2003 possono interagire con SharePoint 2010. Quali sono le caratteristiche che vengno "perse" utilizzando una versione precedente ad Office 2010 e quali invece sono le novità dell'integrazione di questi nuovi due prodotti.
&lt;br /&gt;Infatti, come sapete, ogni versione di SharePoint dava il suo meglio con una corrispettiva versione di Office.
&lt;br /&gt;
&lt;br /&gt;SPS 2003 --&gt; Office 2003
&lt;br /&gt;WSS 3.0/MOSS 2007 --&gt; Office 2007
&lt;br /&gt;SharePoint 2010 --&gt; Office 2010
&lt;br /&gt;
&lt;br /&gt;Ovviamente, è stato sempre garantito il funzionamento delle caratteristiche di base di questa integrazione per le versioni precedenti di Office, ma per tutte le nuove funzionalità di ogni prodotto c'erano delle ovvie limitazioni per tali versioni. Limitazioni che invece non sono presenti nella versione di Office corrispettiva.
&lt;br /&gt;Non la faccio lunga.. vi invito a leggervi il white paper che è sicuramente meglio. :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Office 2010.aspx" title="TAG: Office 2010"&gt;Office 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010AndOfficeIntegrationWithePaper.aspx" /><issued>2010-10-15T8:7:0+01:00</issued><modified>2010-10-15T8:7:0+01:00</modified></entry><entry><title>Gestione di liste con il Client Object Model di SharePoint 2010</title><id>/Blog/ListManagementWithSharePoint2010ClientObjectModel2010.aspx</id><created>2010-10-12T21:46:33+01:00</created><content type="text/html" mode="escaped">&lt;img style="margin: 5px; float: right" alt="SharePoint Community" src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" /&gt;Continua la serie di articoli legati al Client Object Model di SharePoint 2010 pubblicati su &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePointCommunity&lt;/a&gt;.
&lt;br /&gt;Dopo un &lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" title="Introduzione alle Client-Side API di SharePoint 2010" target="_blank"&gt;articolo introduttivo&lt;/a&gt; e uno legato alle &lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12" title="Operazione CRUD con il Client Object Model di SharePoint 2010" target="_blank"&gt;operazioni che possiamo fare su elementi di liste&lt;/a&gt;, questa è la volta delle classi e dei metodi per la gestione di liste presenti all'interno di siti SharePoint. Dalla creazione e selezione di singole liste o gruppi di liste, alla modifica (nel caso specifico l'inserimento di un campo) e cancellazione.
&lt;br /&gt;E' sicuramente un argomento molto interessante anche questo, perchè capita spesso di dover interagire direttamente con la struttura di una lista, a partire dalla sua creazione o dall'eventuale modifica di uno o più campi, da applicazioni client-side. Con il Client Object Model offerto da SharePoint 2010, non dobbiamo più utilizzare il web service "Lists" (come facevamo su MOSS 2007) e possiamo mantenere il paradigma ad oggetti durante lo sviluppo della nostra applicazione.
&lt;br /&gt;
&lt;br /&gt;Questo il link diretto all'articolo:
&lt;br /&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=15" title="Gestione di liste con il Client Object Model di SharePoint 2010" target="_blank"&gt;http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=15&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete invece scaricare la soluzione Visual Studio 2010 che ho utilizzato per la stesura, la trovate qua:
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.SP2010.ListsManagement.zip" title="Gestione di liste con il Client Object Model di SharePoint 2010" target="_blank"&gt;PeppeDotNet.SP2010.ListsManagement.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;E se avete domande, potete scrivere direttamente sul &lt;a href="http://social.msdn.microsoft.com/Forums/it-IT/sharepointit/threads" title="Forum Microsoft per lo sviluppo su SharePoint" target="_blank"&gt;forum Microsoft&lt;/a&gt; per lo sviluppo su SharePoint.
&lt;br /&gt;Buona lettura ! :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ListManagementWithSharePoint2010ClientObjectModel2010.aspx" /><issued>2010-10-12T21:46:33+01:00</issued><modified>2010-10-12T21:46:33+01:00</modified></entry><entry><title>Di ritorno dallo &quot;SharePoint and CRM day&quot;</title><id>/Blog/NoteFromSharePointAndCRMDay.aspx</id><created>2010-10-11T11:18:48+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/sharepointandcrmday.jpg" alt="La mia sessione sullo sviluppo avanzato di SharePoint 2010" style="float: right; margin-left: 10px;" /&gt;Sono tornato ieri dall'ultimo evento su SharePoint a cui ho partecipato: lo "SharePoint and CRM day".
&lt;br /&gt;Anche se sto aspettando ancora i feedback, è stato davvero un bell'evento.
&lt;br /&gt;Devo ringraziare tutte le persone che sono venute, gli sponsor e sopratutto i ragazzi dello staff, precisi in tutto e di un'accoglienza fantastica !
&lt;br /&gt;
&lt;br /&gt;Come per gli altri eventi community, vi lascio qui il materiale (slide e demo) della mia sessione sullo sviluppo avanzato di SharePoint 2010.
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/SviluppoAvanzatoSuSharePoint2010.pdf" title="Slide della mia sessione si sviluppo avanzato su SharePoint 2010" target="_blank"&gt;Slide (PDF file)&lt;/a&gt;
&lt;br /&gt;- &lt;a href="http://www.peppedotnet.it/zip/Dev4Side.SharePointDay.zip" title="Demo della mia sessione si sviluppo avanzato su SharePoint 2010" target="_blank"&gt;Demos&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Spero davvero che il lavoro di &lt;a href="http://www.sharepointcommunity.it" title="Italian SharePoint Community" target="_blank"&gt;SharePointCommunity&lt;/a&gt; sia stato apprezzato e che si "diffonda un pò la voce" in tutta Italia sulla nostra iniziativa.
&lt;br /&gt;Ah dimenticavo, volevo anche avvisare tutte le persone che hanno ricevuto la maglietta.. se non vi &lt;a href="http://www.sharepointcommunity.it/registration/register.aspx" title="Iscriviti a SharePointCommunity.it" target="_blank"&gt;iscrivete&lt;/a&gt; alla community.. vi vengo a prendere uno per uno !!!! :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Community.aspx" title="TAG: Community"&gt;Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/NoteFromSharePointAndCRMDay.aspx" /><issued>2010-10-11T11:18:48+01:00</issued><modified>2010-10-11T11:18:48+01:00</modified></entry><entry><title>Sale e ore delle mie sessioni alla Micorosft TechDays WPC 2010</title><id>/Blog/SaleEOreDelleMieSessioniAllaMicrosoftTechdaysWPC2010.aspx</id><created>2010-10-7T9:26:39+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.techdays-wpc.it/images/media/Attendee02.png" alt="Microsoft TechDays WPC 2010" style="float: right; margin: 10px" /&gt;Da una settimana è uscita l'&lt;a href="http://www.techdays-wpc.it/agenda.aspx" title="Agenda Microsoft TechDays WPC 2010" target="_blank"&gt;agenda ufficiale&lt;/a&gt; della conferenza che si terrà il 23, 24 e 25 novembre qui a Milano organizzata da Microsoft e OverNet Education (la vecchia WPC).
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/Blog/MySessionsAtMicrosoftTechDaysWPC.aspx" title="Le mie sessioni alla Microsoft WPC" target="_blank"&gt;Come vi dicevo&lt;/a&gt;, terrò due sessioni legate principalmente all'utilizzo del modello ad oggetti client-side offerto da SharePoint 2010. La prima un pò più introduttiva e la seconda specifica su Silverlight.
&lt;br /&gt;Vi lascio qui le ore e le sale, così che se siete interessati avete un memo in più :)
&lt;br /&gt;
&lt;br /&gt;&lt;table style="width: 600px"&gt;&lt;tr bgColor="#e8e8e8"&gt;&lt;td&gt;&lt;span&gt;Verde&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span&gt;14.00&lt;br /&gt;15.15&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span&gt;DEV201 | &lt;b&gt;Introduction to SharePoint 2010 Client Object Model&lt;/b&gt;&lt;br /&gt;Giuseppe Marchi &lt;i&gt;{Track: Collaboration, Workflow &amp; Search }&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span&gt;Gialla&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span&gt;17.15&lt;br /&gt;18.30&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span&gt;DEV306 | &lt;b&gt;Silverlight loves SharePoint 2010&lt;/b&gt;&lt;br /&gt;Giuseppe Marchi &lt;i&gt;{Track: Collaboration, Workflow &amp; Search }&lt;/i&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;Per chi viene, mi raccomando fatevi riconoscere ;)
&lt;br /&gt;
&lt;br /&gt;Per chi è ancora indeciso, ricordo che il prezzo è ancora scontato fino al 10 di novembre ! 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WPC.aspx" title="TAG: WPC"&gt;WPC&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SaleEOreDelleMieSessioniAllaMicrosoftTechdaysWPC2010.aspx" /><issued>2010-10-7T9:26:39+01:00</issued><modified>2010-10-7T9:26:39+01:00</modified></entry><entry><title>Le librerie di SharePoint 2010 possono essere usate solo su applicazioni compilate con il .NET Framework 3.5</title><id>/Blog/MicrosoftSharePointIsNotSupportedWithVersion4OfTheNetFramework.aspx</id><created>2010-10-6T14:31:59+01:00</created><content type="text/html" mode="escaped">Se provate a creare un nuovo progetto con la versione 4 del .NET Framework come Target Platform e inserite la libreria Microsoft.SharePoint.dll tra le referenze del vostro progetto, vi accorgerete che tale libreria non può essere utilizzata con altre versioni del Framework se non con la versione 3.5 !
&lt;br /&gt;Infatti, usando una delle classi del modello ad oggetti lato server di SharePoint 2010, troverete questo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;System.PlatformNotSupportedException
&lt;br /&gt;Microsoft SharePoint is not supported with version 4.0.30319.1 of the Microsoft .Net Runtime.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/SharePointDLLOnlyOn35.png" alt="Microsoft SharePoint is not supported with version 4.0.30319.1 of the Microsoft .Net Runtime" /&gt;
&lt;br /&gt;
&lt;br /&gt;In altri casi, vi può succedere che subito dopo aver inserito la referenza alla dll di SharePoint tutto funzioni correttamente, intellisense e tutto il resto. Ma, alla prima compilazione, troverete tra le eccezioni scatenate la seguente:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;The type or namespace name 'SharePoint' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Questo purtroppo è così e basta ! Microsoft direbbe "è così by desgin". Quindi non possiamo farci niente.
&lt;br /&gt;Se vogliamo leggere o modificare dati presenti in SharePoint da un'applicazione scritta utilizzando il .NET Framework 4.0 dobbiamo usare i webservices esposti.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Object Model.aspx" title="TAG: Object Model"&gt;Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MicrosoftSharePointIsNotSupportedWithVersion4OfTheNetFramework.aspx" /><issued>2010-10-6T14:31:59+01:00</issued><modified>2010-10-6T14:31:59+01:00</modified></entry><entry><title>Come avere un report esaustivo prima di una migrazione a SharePoint 2010 con il metodo &quot;database attach&quot;</title><id>/Blog/SharePoint2010ExtendedMigrationDbAttachReport.aspx</id><created>2010-9-27T21:24:56+01:00</created><content type="text/html" mode="escaped">Una delle modalità più usate e più consigliate per effettuare una migrazione da MOSS 2007/WSS 3.0 a SharePoint 2010 è sicuramente quella dell'attach del database dei contenuti.
&lt;br /&gt;Se avete mai provato questa modalità per le vostre migrazioni, saprete sicuramente come utilizzare il cmdlet "Test-SPContentDatabase" di powershell e saprete anche che il risultato prodotto da questa operazione risulta pieno di informazioni, forse un pò forvianti o pressoché inutili. Il tool infatti, visualizza sulla console le informazioni di base riguardo tutte le issue che potrete incontrare se decidete di migrare il vostro database dei contenuti alla nuova versione di SharePoint.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/mossdbattach.jpg" alt="Test-SPContentDatabase method" /&gt;
&lt;br /&gt;
&lt;br /&gt;Sfortunatamente però, non otteniamo le informazioni che ci aiutano a capire quali sono queste issue e dove sono attualmente utilizzate. Per esempio:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le feature che verranno perse durante la migrazione sono presentate solamente tramite il loro identificativo&lt;/li&gt;&lt;li&gt;Le web part che dovranno essere spostate/migrate, vengono presentate solamente tramite un'identificativo (ottenuto tramite il calcolo spiegato &lt;a href="http://www.peppedotnet.it/Blog/HowToFindMissingWebPartIndicatedOverUpagradeToSharePoint2010Report.aspx" title="Come recuperare le Missing Web Part indicate nel report di upgrade a SharePoint 2010 " target="_blank"&gt;qua&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Questo significa che non siamo ne in grado di capire quali sono le web part che dobbiamo migrare, ne quali le feature e, sopratutto, non possiamo sapere dove queste sono attivate o utilizzate all'interno dei siti SharePoint presenti all'interno del database di contenuto che stiamo migrando.
&lt;br /&gt;Questo rende decisamente difficile la nostra migrazione, sopratutto se ci troviamo di fronte ad un ambiente SharePoint 2007 che non abbiamo customizzato in prima persona.
&lt;br /&gt;
&lt;br /&gt;Ecco quindi che, io e il mio gruppo, abbiamo sviluppato un piccolo tool di supporto a questa operazione che è in grado di leggere il report generato dal cmdlet "Test-SPContentDatabase" e generarne un secondo un pò più ricco diciamo.
&lt;br /&gt;Infatti, una volta eseguito il nostro tool, una web part mancante che prima ci veniva presentata in questo modo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;And a MissingWebPart issue like
&lt;br /&gt;Category        : MissingWebPart
&lt;br /&gt;Error           : True
&lt;br /&gt;UpgradeBlocking : False
&lt;br /&gt;Message         : WebPart class [xxx] is referenced [3] times in the database xxxx], but  is not installed on the current farm...&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;nel nuovo report generato, verrà invece visualizzato quanto segue:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;WebPart Details: CustomWebPart
&lt;br /&gt;WebPart name: CustomWebPart     
&lt;br /&gt;WebPart Type name: CustomWebPart.namespace     
&lt;br /&gt;Assembly Name: CustomWebPartAssembly, Version=1.1.0.0, Culture=neutral, PublicKeyToken=7668678dcd8080b491
&lt;br /&gt;WebPart Id:: xxx
&lt;br /&gt;This wep part can be located in the following pages:
&lt;br /&gt;SubSite/default.aspx
&lt;br /&gt;SubSite1/subsite/page.aspx&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Quindi, dal niente a TUTTO ! :)
&lt;br /&gt;Scherzi a parte, con questo tool siamo in grado di capire esattamente quali saranno le web part, le feature e le altre customizzazioni che dobbiamo migrare all'interno della nuova farm SharePoint 2010.
&lt;br /&gt;
&lt;br /&gt;Per utilizzarlo, è necessario seguire questi passi:
&lt;br /&gt;
&lt;br /&gt;1- effetture un backup e restore del database di contenuto all'interno del database server di SharePoint 2010
&lt;br /&gt;(qua per le istruzioni: &lt;a href="http://msdn.microsoft.com/en-us/library/ms187048.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms187048.aspx&lt;/a&gt;);
&lt;br /&gt;2- eseguire il comando "Test-SPContentDatabase" tramite powershell per generare il report di input
&lt;br /&gt;(qua per le istruzioni: &lt;a href="http://technet.microsoft.com/en-us/library/cc263026.aspx" target="_blank"&gt;http://technet.microsoft.com/en-us/library/cc263026.aspx&lt;/a&gt; e &lt;a href="http://technet.microsoft.com/en-us/library/ff607941.aspx" target="_blank"&gt;http://technet.microsoft.com/en-us/library/ff607941.aspx&lt;/a&gt;);
&lt;br /&gt;3- Copiare il report generato all'interno della vecchia farm SharePoint 2007;
&lt;br /&gt;4- Eseguire il nostro tool passando il file .txt come unico parametro
&lt;br /&gt;
&lt;br /&gt;Questa figura vi può chiarire il processo di utilizzo.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/migration2007howto.jpg" alt="Processo di creazione del report" /&gt;
&lt;br /&gt;
&lt;br /&gt;Per poterlo utilizzare, potete scaricare l'eseguibile compilato da codeplex o potete prendere i sorgenti e ricompilarlo. Ecco il link diretto al progetto:
&lt;br /&gt;&lt;a href="http://sp2010extmigrareport.codeplex.com/" title="SharePoint 2010 extended migration db attach report " target="_blank"&gt;http://sp2010extmigrareport.codeplex.com/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Bene, mi sembra tutto :)
&lt;br /&gt;Chiaramente il tool è ancora in fase di sviluppo e alcune missing customization non vengono recuperate nella loro interezza. Se qualcuno ha voglia di partecipare al progetto, ne saremmo ben contenti.
&lt;br /&gt;Se invece, pensate di utilizzarlo per le vostre migrazioni e siete così gentili da darci un feedback, ne saremo sicuramente felicissimi !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Upgrade.aspx" title="TAG: Upgrade"&gt;Upgrade&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Codeplex.aspx" title="TAG: Codeplex"&gt;Codeplex&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010ExtendedMigrationDbAttachReport.aspx" /><issued>2010-9-27T21:24:56+01:00</issued><modified>2010-9-27T21:24:56+01:00</modified></entry><entry><title>Bug nell'utilizzo di una Delay activity in un workflow di SharePoint 2010</title><id>/Blog/BugUsingDelayActivityOnSharePoint2010Workflow.aspx</id><created>2010-9-23T10:35:24+01:00</created><content type="text/html" mode="escaped">Dal &lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.DelayActivityBug.zip" title="Microsoft forum su SharePoint in italiano" target="_blank"&gt;forum italiano di sviluppo su SharePoint&lt;/a&gt; è venuta fuori un'interessante discussione sul mancato funzionamento di una Delay activity all'interno di un workflow sequenziale creato per essere eseguito all'interno di SharePoint 2010.
&lt;br /&gt;Andando nei dettagli, a fronte di un'installazione standard di SharePoint, se si prova a sviluppare un workflow che utilizza una Listen activity con all'interno una Delay activity che blocca il worklfow per un numero preciso di minuti, vi accorgerete che il flusso di operazioni resterà fermo per sempre. Non ci sarà alcun modo per far ripartire quel workflow dopo aver aspettato i minuti definiti all'interno dell'attività di tipo Delay.
&lt;br /&gt;Il workflow con cui io ho testato questo comportamento è rappresentato in figura.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/DelayActivityBug.jpg" alt="Delay activity bug on SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Girando su internet ci siamo accorti che il problema era già presente all'interno della vecchia versione di SharePoint (WSS 3.0/MOSS 2007) e che non è stato corretto.
&lt;br /&gt;C'è una soluzione però ! 
&lt;br /&gt;Per permettere il funzionamento di un workflow che utilizza una Delay activity è necessario settare una proprietà sul sito in cui si intende far girare il workflow, tramite l'utility STSADM.
&lt;br /&gt;La proprietà in questione è la "", che va valorizzata con il valore: "".
&lt;br /&gt;Quindi, prima possiamo provare a farci stampare il valore attuale della proprietà in questione:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;stsadm -o getproperty -pn job-workflow -url http://siteurl
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Poi, possiamo settarla:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;stsadm -o setproperty -pn job-workflow -pv "Every 5 minutes between 0 and 59" -url http://siteurl
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Una volta terminate le operazioni tramite l'utility STSADM, ricordatevi che è necessario un IISRESET e un riavvio del servizio timer di SharePoint.
&lt;br /&gt;
&lt;br /&gt;Fatto questo, il servizio timer capisce che deve controllare i nostri workflow ogni 5 minuti e permette così alla Delay activity di scattare correttamente.
&lt;br /&gt;Cosa molto importante da ricordare è che se vogliamo fare debug di un workflow di questo tipo, è necessario attaccarci al processo OSWTimer di SharePoint, altrimenti i nostri breakpoint non verranno mai catturati dal debugger.
&lt;br /&gt;
&lt;br /&gt;Se volete metterci un pò le mani, ecco qua la soluzione di test che ho utilizzato per riscontrare effettivamente il bug sulla mia macchina:
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.DelayActivityBug.zip" title="Sorgenti di test relativi al bug sulla Delay activity" target="_blank"&gt;PeppeDotNet.DelayActivityBug.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Workflow.aspx" title="TAG: Workflow"&gt;Workflow&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/BugUsingDelayActivityOnSharePoint2010Workflow.aspx" /><issued>2010-9-23T10:35:24+01:00</issued><modified>2010-9-23T10:35:24+01:00</modified></entry><entry><title>SharePoint 2010 and CRM Day: ancora posti disponibili !</title><id>/Blog/SharePoint2010AndCRMDay.aspx</id><created>2010-9-20T19:41:42+01:00</created><content type="text/html" mode="escaped">&lt;a href="http://sharepointcrmday.dotnetcampania.org/" title="SharePoint 2010 and CRM Day con DotNetCampania e SharePoint Community" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/images/SharePointAndCRMDay.png" alt="SharePoint 2010 and CRM Day con DotNetCampania e SharePoint Community" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Vi volevo ricordare dell'evento che &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePoint Community&lt;/a&gt; sta organizzando assieme ai ragazzi di &lt;a href="http://www.dotnetcampania.org/" title="DotNetCampania" target="_blank"&gt;DotNetCampania&lt;/a&gt; su SharePoint 2010 e CRM 2011 e dirvi, soprattutto, che ci sono ancora posti disponibili per l'iscrizione. Quindi forza, affrettatevi !!
&lt;br /&gt;La giornata avrà luogo venerdì 08/10/2010 al Centro Congressi Holiday Inn, Napoli.
&lt;br /&gt;&lt;a href="http://sharepointcrmday.dotnetcampania.org/registrazione.aspx" title="Registrazione" target="_blank"&gt;Qui trovate il form di registrazione all'evento&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;Sarà un'ottima occasione per vedere tutte le novità sia per DEV che per IT PRO della nuova versione di SharePoint e per avere un'anteprima di CRM 2011.
&lt;br /&gt;
&lt;br /&gt;Vi aspettiamo !!
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/CRM.aspx" title="TAG: CRM"&gt;CRM&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010AndCRMDay.aspx" /><issued>2010-9-20T19:41:42+01:00</issued><modified>2010-9-20T19:41:42+01:00</modified></entry><entry><title>Content CHM per professionisti IT su SharePoint Fonudation 2010 e SharePoint Server 2010</title><id>/Blog/ContentChmForITProForSharePoint2010.aspx</id><created>2010-9-20T14:11:30+01:00</created><content type="text/html" mode="escaped">Dal download center di Microsoft, sono stati resi disponibili due CHM per professionisti IT su SharePoint Foundation 2010 e SharePoint Server 2010.
&lt;br /&gt;Qua per il download:
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c8cf1631-0f48-4a02-a18d-54b04eb7f0a7" title="Microsoft SharePoint Foundation 2010 Technical Library in Compiled Help format" target="_blank"&gt;Microsoft SharePoint Foundation 2010 Technical Library in Compiled Help format&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3629425d-1505-456e-89e2-ede95f75ffe5" title="Microsoft SharePoint Server 2010 Technical Library in Compiled Help format" target="_blank"&gt;Microsoft SharePoint Server 2010 Technical Library in Compiled Help format&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Server 2010.aspx" title="TAG: SharePoint Server 2010"&gt;SharePoint Server 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Foundation 2010.aspx" title="TAG: SharePoint Foundation 2010"&gt;SharePoint Foundation 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ContentChmForITProForSharePoint2010.aspx" /><issued>2010-9-20T14:11:30+01:00</issued><modified>2010-9-20T14:11:30+01:00</modified></entry><entry><title>Come aggiungere assembly esterni alla soluzione WSP per SharePoint 2010 creata da Visual Studio 2010</title><id>/Blog/HowToAddAssemblyToWSPSolutionVisualStudio2010SharePoint2010.aspx</id><created>2010-9-19T23:20:37+01:00</created><content type="text/html" mode="escaped">Molto spesso può capitare di utilizzare componenti o funzioni presenti in assembly esterni, all'interno delle nostre personalizzazioni SharePoint. Questi poi, se utilizzati all'interno di web part, user control o pagine, devono essere aggiunti anche all'interno della sezione "Safe controls" dei vari file web.config delle web application in cui dovranno poi essere utilizzati, altrimenti risulterà impossibile utilizzare la personalizzazione da noi sviluppata.
&lt;br /&gt;Se quindi, vi inoltrate nello sviluppo di una web part che utilizza un componente o una funzione specifica presente all'interno di un assembly non appartenente alla vostra soluzione, in fase di compilazione non troverete alcun tipo di problema ma, una volta effettuato il deployment della soluzione all'interno di SharePoint vi accorgerete che non sarà possibile utilizzare la web part in quanto vi viene segnalato l'utilizzo di un assembly non contrassegnato come sicuro.
&lt;br /&gt;Inoltre, se effettuate il deployment di tale soluzione su un'altra macchina, vi accorgerete anche che la vostra dll esterne non viene proprio portata, ne all'interno della GAC del server ne all'interno delle varie directory /bin di ogni web application.
&lt;br /&gt;&lt;span style="text-decoration: underline"&gt;Questo perchè l'operazione di creazione della soluzione WSP propria di Visual Studio 2010, NON inserisce in automatico le dll esterne referenziate al progetto SharePoint di cui sta creando il pacchetto per il deployment.&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;Per aggiungere le librerie esterne alla soluzione SharePoint che stiamo sviluppando, dobbiamo aprire il Package Designer relativo alla nostra soluzione SharePoint e selezionare la voce "Advanced" posta in fondo alla zona di lavoro.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/01_PackageAdvancedProperties.jpg" alt="Come aggiungere assembly esterni alla soluzione WSP per SharePoint 2010 creata da Visual Studio 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Scegliere poi di aggiungere un nuovo assembly al pacchetto corrente:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/02_AddExistingAssembly.jpg" alt="Come aggiungere assembly esterni alla soluzione WSP per SharePoint 2010 creata da Visual Studio 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Selezionare l'assembly di cui effettuare il deployment, la tipologia di deployment (se in GAC o se nelle varie directory /bin) e se dovrà poi essere inserita la definizione all'interno della sezione "Safe controls" dei vari file web.config proprio di ogni web application SharePoint.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/03_SelectAssembly.jpg" alt="Come aggiungere assembly esterni alla soluzione WSP per SharePoint 2010 creata da Visual Studio 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Così facendo, siamo in grado di utilizzare le funzionalità esposte da librerie esterne alla nostra soluzione e di impacchettarle per un corretto deployment sulla farm SharePoint 2010.
&lt;br /&gt;A me è stato molto utile..
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 2010.aspx" title="TAG: Visual Studio 2010"&gt;Visual Studio 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToAddAssemblyToWSPSolutionVisualStudio2010SharePoint2010.aspx" /><issued>2010-9-19T23:20:37+01:00</issued><modified>2010-9-19T23:20:37+01:00</modified></entry><entry><title>Errore: &quot;The Web application at ... could not be found&quot; su applicazioni Visual Studio 2010 e SharePoint 2010</title><id>/Blog/ErrorTheWebApplicationCouldNotBeFoundVS2010SharePoint2010.aspx</id><created>2010-9-19T20:58:30+01:00</created><content type="text/html" mode="escaped">Utilizzando il modello ad oggetti lato server di SharePoint 2010 all'interno delle proprie applicazioni (nel mio caso una semplice console application), l'operazione da cui solitamente si parte è quella di istanziare un nuovo oggetto SPSite, da cui poi ricavare il relativo SPWeb e così via..
&lt;br /&gt;Installando Visual Studio 2010 sulla macchina SharePoint 2010 di sviluppo, dopo aver configurato la farm ed averne verificato il corretto funzionamento, vi accorgerete che tale operazione iniziale ritornerà un'errore (per la precizione una FileNotFoundException). Infatti, il codice:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt;(SPSite site = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SPSite(&lt;span style="color: #A31515"&gt;"http://localhost/"&lt;/span&gt;))
&lt;br /&gt;{
&lt;br /&gt;    &lt;span style="color: #008200"&gt;//...&lt;/span&gt;
}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;produrrà l'errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;The Web application at http://localhost/ could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Solitamente (anche nella precedente versione di SharePoint), questo errore è dovuto o alla mancanza di permessi dell'utente corrente sul sito SharePoint o ad una scorretta configurazione dell'Alternate Access Mapping della web application che si vuole cercare di raggiungere. 
&lt;br /&gt;Eppure (era anche il mio caso) l'indirizzo che avete specificato risponde correttamente tramite browser.
&lt;br /&gt;
&lt;br /&gt;Ebbene.. questo accade perchè di default, ogni nuova applicazione che viene creata all'interno di Visual Studio 2010 ha come target framework la versione 4.0 (il che non è un problema per un'applicazione SharePoint), ma come piattaforma di riferimento la x86.
&lt;br /&gt;Il problema però, come dovreste sapere, è che SharePoint 2010 gira solamente su piattaforme a 64 bit (x64).
&lt;br /&gt;Una volta che vi ricordate questo importantissimo vincolo, non vi resta che modificare la proprietà "Target Platform" del vostro progetto e vedrete che tutto ritornerà a funzionare.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/2010/TargetPlatform64.jpg" alt="Cambiamento target platform a 64bit per applicazioni SharePoint 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Chiaramente, se create nuovi progetti a partire dai template disponibili per lo sviluppo in SharePoint 2010 questo problema non verrà riscontrato.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Object Model.aspx" title="TAG: Object Model"&gt;Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ErrorTheWebApplicationCouldNotBeFoundVS2010SharePoint2010.aspx" /><issued>2010-9-19T20:58:30+01:00</issued><modified>2010-9-19T20:58:30+01:00</modified></entry><entry><title>Come creare viste personalizzate su un sondaggio in SharePoint 2007</title><id>/Blog/HowToCreateCustomViewsOnMOSS2007Survey.aspx</id><created>2010-9-15T17:54:24+01:00</created><content type="text/html" mode="escaped">Se creiamo una nuova lista all'interno di uno dei nostri siti SharePoint, partendo dal template "Survey", siamo in grado di offrire ai nostri utenti un vero e proprio sondaggio. Tale template però è un pò particolare.
&lt;br /&gt;Se vedete bene, ne dalla toolbar ne dalla pagina delle impostazioni della lista stessa, non è possibile creare nuove viste da affiancare alla "All responses", alla "Overview" e alla "Graphical summary".
&lt;br /&gt;Questa è stata una scelta del team di sviluppo di SharePoint che gli ha portati a creare questa tipologia di template.
&lt;br /&gt;Detto questo, dobbiamo però sapere che il meccanismo delle viste è comunque presente in tutte le liste che vengono create all'interno di SharePoint. Quello che fa quel template è semplicemente nascondere i link per la creazione o per la modifica delle viste già esistenti.
&lt;br /&gt;Per creare una nuova vista all'interno di un sondaggio qunidi, dobbiamo seguire questi passi:
&lt;br /&gt;
&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Recuperare l'ID della lista. Per farlo possiamo aprire la lista in formato Feed RSS e copiare la querystring "List" facente parte dell'indirizzo.
&lt;br /&gt;Es: http://SITEURL/_layouts/listfeed.aspx?List={...}
&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copiare l'indirizzo del link "Create view" che troviamo all'interno della impostazioni di una seconda lista.
&lt;br /&gt;Es: http://SITEURL/_layouts/ViewType.aspx?List={...}
&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Modificare il link "Create view" sostituendo l'identificativo della lista di tipo "Survey".
&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Selezionare il tipo di vista (io consiglio di partire dalla "All responses", perchè la "Overview" ha un layout che non vede la presenza dalla solita griglia con tutti gli elementi della lista).
&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Nominare la vista, scegliere i campi e la configurazione (filtri, sorting, limiti, ecc...).
&lt;br /&gt;
&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Fare click su OK :)&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Così facendo, troverete la vostra nuova vista nel menu a tendina presente nella toolbar della lista di tipo "Survey".
&lt;br /&gt;Non è difficilissimo, no ? :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WSS 3.0.aspx" title="TAG: WSS 3.0"&gt;WSS 3.0&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/MOSS.aspx" title="TAG: MOSS"&gt;MOSS&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToCreateCustomViewsOnMOSS2007Survey.aspx" /><issued>2010-9-15T17:54:24+01:00</issued><modified>2010-9-15T17:54:24+01:00</modified></entry><entry><title>Guida per la migrazione di WSS 3.0 a SharePoint Foundation 2010 su Small Business Server</title><id>/Blog/MigrationFromWSS3ToFoundation2010OnSmallBusinessServer.aspx</id><created>2010-9-12T12:8:13+01:00</created><content type="text/html" mode="escaped">Microsoft ha rilasciato una guida per imparare a migrare i siti Window SharePoint Services 3.0 interni (il famoso companyweb per intenderci) che possono essere creati su di un'installazione di Small Business Server, a SharePoint Foundation 2010.
&lt;br /&gt;Davvero utile !
&lt;br /&gt;
&lt;br /&gt;Qui per il download: 
&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2dc66a0f-f840-4b29-93d3-13db70c85cba" title="Step-by-Step Guide to Migrating from Windows SharePoint Services 3.0 to Microsoft SharePoint Foundation 2010 on a server running Windows Small Business Server 2008" target="_blank"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2dc66a0f-f840-4b29-93d3-13db70c85cba&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WSS 3.0.aspx" title="TAG: WSS 3.0"&gt;WSS 3.0&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Foundation 2010.aspx" title="TAG: SharePoint Foundation 2010"&gt;SharePoint Foundation 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Migrazione.aspx" title="TAG: Migrazione"&gt;Migrazione&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MigrationFromWSS3ToFoundation2010OnSmallBusinessServer.aspx" /><issued>2010-9-12T12:8:13+01:00</issued><modified>2010-9-12T12:8:13+01:00</modified></entry><entry><title>La differenza tra le propriet&#224; SiteUsers, Users e AllUsers della classe SPWeb</title><id>/Blog/DifferencesBetweenSiteUsersUsersAndAllUsersSPWebProperties.aspx</id><created>2010-9-12T11:59:10+01:00</created><content type="text/html" mode="escaped">Ogni volta che dobbiamo recuperare un oggetto di tipo SPUser relativo ad un particolare utente del nostro sito utilizzando il suo login name, è molto probabile andare in confusione tra le proprietà Users, AllUsers e SiteUsers esposte dalla classe SPWeb propria del modello ad oggetti lato server di SharePoint.
&lt;br /&gt;Il più delle volte, infatti, si è portati ad utilizzare la proprietà Users per questo tipo di operazione. E, se l'utente non è stato esplicitamente inserito all'interno dei permessi del sito corrente (senza essere incluso in un gruppo), l'utilizzo di quella proprietà ci ritornerà un errore di questo tipo:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;User cannot be found&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;E' bene quindi sapere la differenza che intercorre tra le tre proprietà in questione, per evitare di incappare sempre in questo errore. Ecco qua tutto spiegato:
&lt;br /&gt;
&lt;br /&gt;- &lt;b&gt;SPWeb.AllUsers&lt;/b&gt;: ritorna la collezione di oggetti che rappresentano tutti gli utenti che sono o membri del sito o che hanno navigato il sito come membri autenticati di un gruppo di dominio che ha permessi sul sito stesso.
&lt;br /&gt;
&lt;br /&gt;- &lt;b&gt;SPWeb.Users&lt;/b&gt;: ritorna la collezione di oggetti che rappresentano tutti gli utenti a cui sono stati assegnati dei permessi esplicitamente all'interno del sito corrente.
&lt;br /&gt;
&lt;br /&gt;- &lt;b&gt;SPWeb.SiteUsers&lt;/b&gt;: ritorna la collezione di utenti che fanno parte della site collection corrente.
&lt;br /&gt;
&lt;br /&gt;Spero possa essere utile a qualcuno.
&lt;br /&gt;Buona domenica a tutti ! :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SPWeb.aspx" title="TAG: SPWeb"&gt;SPWeb&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/DifferencesBetweenSiteUsersUsersAndAllUsersSPWebProperties.aspx" /><issued>2010-9-12T11:59:10+01:00</issued><modified>2010-9-12T11:59:10+01:00</modified></entry><entry><title>SharePoint 2010 and CRM Day con DotNetCampania e SharePoint Community</title><id>/Blog/SharePoint2010AndCRMDayWithSharePointCommunityDotNetCampania.aspx</id><created>2010-9-10T11:23:16+01:00</created><content type="text/html" mode="escaped">&lt;a href="http://sharepointcrmday.dotnetcampania.org/" title="SharePoint 2010 and CRM Day con DotNetCampania e SharePoint Community" target="_blank"&gt;&lt;img src="http://www.peppedotnet.it/images/SharePointAndCRMDay.png" alt="SharePoint 2010 and CRM Day con DotNetCampania e SharePoint Community" /&gt;&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Sono molto contento di darvi questa notizia...
&lt;br /&gt;Venerdì 8 ottobre a Napoli, si terrà un evento su SharePoint 2010 e CRM organizzato da &lt;a href="http://dotnetcampania.org/" title="DotNetCampania" target="_blank"&gt;DotNetCampania&lt;/a&gt; in collaborazione con &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePoint Community&lt;/a&gt; !!!
&lt;br /&gt;
&lt;br /&gt;L'evento vedrà quattro sessioni su SharePoint 2010 e due su CRM 2011.
&lt;br /&gt;Della seconda parte se ne occuperà &lt;a href="http://www.crionet.it/" title="Giorgio Garcia-Agreda" target="_blank"&gt;Giorgio&lt;/a&gt; (MVP su CRM). Su SharePoint invece, verrà tenuta una sessione introduttiva da &lt;a href="http://bitvector.tostring.it/" title="Salvatore di Fazio" target="_blank"&gt;Salvatore&lt;/a&gt; (di SharePoint Community), una per Professionisti IT tenuta da &lt;a href="http://dotnetcampania.org/blogs/mariosaccoia/" title="Mario Saccoia" target="_blank"&gt;Mario&lt;/a&gt; (di DotNetCampania), una introduttiva sullo sviluppo tenuta da &lt;a href="http://dotnetcampania.org/blogs/luigipanariello" title="Luigi Panariello" target="_blank"&gt;Luigi&lt;/a&gt;  (di DotNetCampania) e una su tecniche di sviluppo un pò più avanzato che terrò io. Comunque, trovate i dettagli sull'&lt;a href="http://sharepointcrmday.dotnetcampania.org/agenda.aspx" title="Agenda evento" target="_blank"&gt;agenda&lt;/a&gt; sul sito dell'evento.
&lt;br /&gt;Per quanto riguarda la mia sessione, vedremo tutte le novità un pò più avanzate che ci ha reso disponibili la nuova versione di SharePoint. Si parlerà quindi di Client Object Model, di integrazione con Silverlight, di customizzazione dell'interfaccia "ribbon" e dell'utilizzo dei Business Connectivity Services per l'integrazione e la gestione di dati esterni al contesto di SharePoint.
&lt;br /&gt;Si prospetta veramente un bell'evento ! Se siete dalle parti di Napoli quindi, vi consiglio di venire.
&lt;br /&gt;
&lt;br /&gt;Le &lt;a href="http://sharepointcrmday.dotnetcampania.org/registrazione.aspx" title="Registrazione evento" target="_blank"&gt;registrazioni&lt;/a&gt; sono aperte, quindi affrettatevi !
&lt;br /&gt;Ci vediamo la ! ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/DotNetCampania.aspx" title="TAG: DotNetCampania"&gt;DotNetCampania&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Business Connectivity Services.aspx" title="TAG: Business Connectivity Services"&gt;Business Connectivity Services&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Ribbon.aspx" title="TAG: Ribbon"&gt;Ribbon&lt;/a&gt;]
&lt;br /&gt;</content><link rel="alternate" type="text/html" href="/Blog/SharePoint2010AndCRMDayWithSharePointCommunityDotNetCampania.aspx" /><issued>2010-9-10T11:23:16+01:00</issued><modified>2010-9-10T11:23:16+01:00</modified></entry><entry><title>Aggiornato l'SDK di SharePoint 2010 con 44 esempi di codice</title><id>/Blog/UpdatedSharePoint2010SDKWith44SampleCodes.aspx</id><created>2010-9-10T10:34:50+01:00</created><content type="text/html" mode="escaped">L'SDK di SharePoint 2010 è stato appena aggiornato ! Lo potete scaricare da &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&amp;FamilyID=f0c9daf3-4c54-45ed-9bde-7b4d83a8f26f" title="Microsoft Download Center" target="_blank"&gt;centro download Microsoft&lt;/a&gt;.
&lt;br /&gt;La notizia è stata data dal blog di &lt;a href="http://blogs.msdn.com/b/randalli/archive/2010/09/09/updated-sharepoint-2010-sdk-now-available-for-download.aspx" title="Randall Isenhour" target="_blank"&gt;Randall&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;La nuova versione dell'SDK vede queste novità:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;44 esempi di codice sorgente:&lt;/b&gt; esempi in Silverlight e di personalizzazioni che utilizzano i BCS, le feature di Enterprise Content Management (ECM), gli User Profile e i Social Data &lt;/li&gt;&lt;li&gt;&lt;b&gt;Documentazione aggiornata:&lt;/b&gt; nuovi how-to e articoli.&lt;/li&gt;&lt;li&gt;&lt;b&gt;File per l'intellisense aggiornati:&lt;/b&gt; per l'autocompletamento della scrittura del vostro codice sorgente o delle vostre personalizzazioni&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;La lista completa di tutti gli aggiornamenti la potete trovare qua:
&lt;br /&gt;
&lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ff847474.aspx" title="Whats New in the SDK for SharePoint Foundation 2010 " target="_blank"&gt;What's New in the SDK for SharePoint Foundation 2010&lt;/a&gt;
&lt;br /&gt;- &lt;a href="http://msdn.microsoft.com/en-us/library/ff847475.aspx" title="Whats New in the SDK for SharePoint Server 2010 " target="_blank"&gt;What's New in the SDK for SharePoint Server 2010&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Buon download !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Foundation 2010.aspx" title="TAG: SharePoint Foundation 2010"&gt;SharePoint Foundation 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SDK.aspx" title="TAG: SDK"&gt;SDK&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/UpdatedSharePoint2010SDKWith44SampleCodes.aspx" /><issued>2010-9-10T10:34:50+01:00</issued><modified>2010-9-10T10:34:50+01:00</modified></entry><entry><title>Come visualizzare tutte le informazioni sui risultati di una ricerca all'interno di una Search Results Web Part</title><id>/Blog/HowToViewAllSearchInfoIntoASearchResultsWebPart.aspx</id><created>2010-9-4T19:56:28+01:00</created><content type="text/html" mode="escaped">La Search Results web part è una delle web part che abbiamo a disposizione all'interno di MOSS 2007 e che possiamo utilizzare per visualizzare i risultati di una ricerca all'interno di una pagina custom del nostro sito SharePoint, senza utilizzare la pagina di ricerca di default o un sito di tipo Search Center. 
&lt;br /&gt;Tale web part è molto utile in quanto permette la customizzazione della visualizzazione dei risultati di una ricerca ricerca, tramite del codice XSLT per permettere l'inserimento di valori presi da campi particolari delle nostre liste o document library che normalmente non vengono visualizzati all'interno della pagina di ricerca di default. Oppure, semplicemente, per cambiare il layout con cui l'utente finale deve avere a che fare durante le sue ricerche.
&lt;br /&gt;
&lt;br /&gt;Una volta che iniziamo a sviluppare il codice XSLT utile a cambiare la visualizzazione dei risultati di un'eventuale ricerca, dobbiamo sapere che esiste un trucchetto per visualizzare quali sono tutte le informazioni che abbiamo a disposizione dal motore di ricerca di SharePoint e che possiamo utilizzare per modificare il rendering della pagina.
&lt;br /&gt;Per vedere tali informazioni, non dobbiamo far altro che inserire questo pezzo di codice XSLT all'interno della Search Results web part:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="UTF-8"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;xsl:stylesheet&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; xmlns:xsl&lt;span style='color:#0000FF'&gt;="http://www.w3.org/1999/XSL/Transform"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;xsl:output&lt;/span&gt;&lt;span style='color:#FF0000'&gt; method&lt;span style='color:#0000FF'&gt;="xml"&lt;/span&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="UTF-8"&lt;/span&gt; indent&lt;span style='color:#0000FF'&gt;="yes"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;xsl:template&lt;/span&gt;&lt;span style='color:#FF0000'&gt; match&lt;span style='color:#0000FF'&gt;="/"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;xmp&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;xsl:copy-of&lt;/span&gt;&lt;span style='color:#FF0000'&gt; select&lt;span style='color:#0000FF'&gt;="*"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;xmp&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;xsl:template&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;xsl:stylesheet&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Questo tip è molto importante quando aggiungiamo delle managed properties al motore di indicizzazione di SharePoint e vogliamo vedere se effettivamente risultano disponibili tra i risultati di una specifica ricerca e, soprattutto, se vengono valorizzate.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/MOSS.aspx" title="TAG: MOSS"&gt;MOSS&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Search.aspx" title="TAG: Search"&gt;Search&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToViewAllSearchInfoIntoASearchResultsWebPart.aspx" /><issued>2010-9-4T19:56:28+01:00</issued><modified>2010-9-4T19:56:28+01:00</modified></entry><entry><title>Le mie sessioni a WPC 2010 (Microsoft TechDays)</title><id>/Blog/MySessionsAtMicrosoftTechDaysWPC.aspx</id><created>2010-9-1T14:18:36+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.techdays-wpc.it/images/media/Attendee02.png" alt="Microsoft TechDays WPC 2010" style="float: right; margin: 5px" /&gt;E' da un pò che lo sapevo, ma ancora non era stato avvisato "ufficialmente" :)
&lt;br /&gt;Nei giorni 23, 24 e 25 di Novembre 2010, qui al Centro Congressi Milano Fiori (Milano) si terrà la 17° edizione di WPC, la più importante conferenza italiana legata al mondo Microsoft organizzata da Microsoft stessa in collaborazione con Overnet Eduction.
&lt;br /&gt;Ecco.. quest'anno &lt;a href="http://www.techdays-wpc.it/speakers.aspx" title="Elenco speaker della Microsoft TechDays WPC 2010" target="_blank"&gt;ci sono anche io&lt;/a&gt; ! :)
&lt;br /&gt;Terrò queste due sessioni per sviluppatori SharePoint 2010:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="margin-left: 10px"&gt;&lt;b&gt;Introduzione al Client Object Model di SharePoint 2010&lt;/b&gt;
&lt;br /&gt;Tanto codice per un'introduzione alle tecniche di utilizzo del Client Object Model di SharePoint 2010 per la realizzazione di personalizzazioni lato client utilizzando javascript, silverlight o applicazioni desktop.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;Silverlight loves SharePoint 2010&lt;/b&gt;
&lt;br /&gt;Una sessione con tanto codice per vedere come la nuova versione di SharePoint si sposa con Silverlight 4, in modo da fruire agli utenti delle Rich Internet Application utili, facili da usare e veramente di impatto, in grado di interfacciarsi con i dati del prodotto di collaborazione Microsoft.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Vi terrò aggiornati per date e ore.
&lt;br /&gt;Se pensate di venire, correte ad iscrivervi che è ancora in corso la sconto di circa 20% del prezzo pieno.
&lt;br /&gt;Se volete vedere tutti gli altri argomenti o avere qualche informazione in più, questo è il sito dell'evento: &lt;a href="http://www.techdays-wpc.it/" title="Microsoft TechDays WPC 2010" target="_blank"&gt;http://www.techdays-wpc.it/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/WPC 2010.aspx" title="TAG: WPC 2010"&gt;WPC 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/MySessionsAtMicrosoftTechDaysWPC.aspx" /><issued>2010-9-1T14:18:36+01:00</issued><modified>2010-9-1T14:18:36+01:00</modified></entry><entry><title>The evaluation version of Microsoft Office SharePoint Server 2007 for this server has expired</title><id>/Blog/TheEvaluationVersionOfMOSS2007ForThisServerHasExpired.aspx</id><created>2010-8-30T11:57:1+01:00</created><content type="text/html" mode="escaped">Se, cercando di aprire il vostro "My Site" da una qualsiasi pagina della site collection SharePoint 2007, vi trovate di fronte a questo errore (e siete sicuri di avere una versione di MOSS valida):
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;The evaluation version of Microsoft Office SharePoint Server 2007 for this server has expired&lt;/div&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/EvaluationVersionExpired.jpg" alt="The evaluation version of Microsoft Office SharePoint Server 2007 for this server has expired" /&gt;
&lt;br /&gt;
&lt;br /&gt;per prima cosa: non spaventatevi ! :)
&lt;br /&gt;La vostra versione di MOSS 2007 non è scaduta, ma c'è solamente qualcosina che non va.. infatti, nonostante questo errore, vi accorgerete che siete in grado comunque di creare nuove site collection e nuovi siti, dare permessi, creare liste, ecc.. come avete sempre fatto fin'ora.
&lt;br /&gt;Per risolvere questo problema, che impedisce totalmente la navigazione all'interno del proprio "My Site" per tutti gli utenti, è necessario aprire il registro di sistema e cambiare i permessi della chiave di registro "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0" in questa maniera:
&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lettura al gruppo WSS_WPG&lt;/li&gt;&lt;li&gt;Controllo completo al gruppo WSS_ADMIN_WPG&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;Spero possa essere utile a qualcuno.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/MOSS.aspx" title="TAG: MOSS"&gt;MOSS&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/My site.aspx" title="TAG: My site"&gt;My site&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/TheEvaluationVersionOfMOSS2007ForThisServerHasExpired.aspx" /><issued>2010-8-30T11:57:1+01:00</issued><modified>2010-8-30T11:57:1+01:00</modified></entry><entry><title>Provisioning di un campo RichText in SharePoint 2010</title><id>/Blog/RichTextFieldProvisioningInSharePoint2010.aspx</id><created>2010-8-27T8:56:33+01:00</created><content type="text/html" mode="escaped">Un campo di tipo RichText in SharePoint non è altro che un campo multilinea con abilitato l'editor di testo completo per la rappresentazione di contenuti "ricchi", quindi testi formattati, link, immagini, tabelle, ecc..
&lt;br /&gt;Per effettuare il provisioning di un campo del genere all'interno delle nostre list definition o all'interno dei nostri content type, basta creare un campo di tipo "Note" ed aggiungere le proprietà "RichText" e "RichTextMode", valorizzandole rispettivamente a "TRUE" e "FullHtml".
&lt;br /&gt;Come si suol dire, un esempio vale più di mille parole.. ecco quindi la sintassi del nostro campo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;Field&lt;/span&gt;&lt;span style='color:#FF0000'&gt; ID&lt;span style='color:#0000FF'&gt;="8EAA0ED0-A045-43AD-BA82-44CFAF312908"&lt;/span&gt; 
&lt;br /&gt;       Type&lt;span style='color:#0000FF'&gt;="Note"&lt;/span&gt;
&lt;br /&gt;       DisplayName&lt;span style='color:#0000FF'&gt;="Sample Rich Text Field"&lt;/span&gt;
&lt;br /&gt;       Name&lt;span style='color:#0000FF'&gt;="SampleRichTextField"&lt;/span&gt;
&lt;br /&gt;       StaticName&lt;span style='color:#0000FF'&gt;="SampleRichTextField"&lt;/span&gt;
&lt;br /&gt;       Group&lt;span style='color:#0000FF'&gt;="PeppeDotNet.it - Sample Fields"&lt;/span&gt;
&lt;br /&gt;       RichText&lt;span style='color:#0000FF'&gt;="TRUE"&lt;/span&gt;
&lt;br /&gt;       RichTextMode&lt;span style='color:#0000FF'&gt;="FullHtml"&lt;/span&gt;
&lt;br /&gt;       Sealed&lt;span style='color:#0000FF'&gt;="FALSE"&lt;/span&gt;
&lt;br /&gt;       SourceID&lt;span style='color:#0000FF'&gt;="http://schemas.microsoft.com/sharepoint/v3"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt; 
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Se inseriamo questa definizione di campo all'interno di una feature e la attiviamo (o a livello di site collection o a livello di singolo sito), troveremo il nostro campo di tipo RichText tra le site column disponibili.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/2010/richTextFieldInstalled.jpg" alt="Campo di tipo RichText correttamente installato" /&gt;
&lt;br /&gt;
&lt;br /&gt;Come potete vedere, il tipo di formattazione del testo specificato è proprio "Enhanced rich text (Rich text with pictures, tables and hyperlinks)".
&lt;br /&gt;Se poi decidiamo semplicemente di inserire il nostro campo all'interno di una lista SharePoint 2010 o se abbiamo intenzione di creare un content type ed inserirci il riferimento al nostro campo di tipo RichText, avremmo a disposizione l'editor di testo avanzato all'interno della barra dei ribbon, in fase di inserimento o di modifica.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/2010/richTextField.jpg" alt="Campo di tipo RichText in funzione" /&gt;
&lt;br /&gt;
&lt;br /&gt;A titolo d'esempio, ho creato una soluzione SharePoint 2010 contenente il campo di tipo RichText, un content type d'esempio e una list definition creata a partire da questo content type.
&lt;br /&gt;Trovate i sorgenti a questo indirizzo: &lt;a href="http://www.peppedotnet.it/zip/PeppeDotNet.Provisioning.RichText.zip" title="Sorgenti per il provisioning di un campo di tipo RichText"&gt;http://www.peppedotnet.it/zip/PeppeDotNet.Provisioning.RichText.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Provisioning.aspx" title="TAG: Provisioning"&gt;Provisioning&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Site column.aspx" title="TAG: Site column"&gt;Site column&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Content type.aspx" title="TAG: Content type"&gt;Content type&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/RichTextFieldProvisioningInSharePoint2010.aspx" /><issued>2010-8-27T8:56:33+01:00</issued><modified>2010-8-27T8:56:33+01:00</modified></entry><entry><title>Operation aborted (Exception from HRESULT: 0&#215;80004004 (E_ABORT))</title><id>/Blog/OperationAbortedExceptionFromHRESULT0x80004004EABORT.aspx</id><created>2010-8-25T12:12:46+01:00</created><content type="text/html" mode="escaped">Sviluppando su SharePoint (WSS 3.0 o MOSS 2007) tramite il modello ad oggetti lato server, il più delle volte in ambiente di test (dove sono solito incasinare più o meno tutto e non controllare mai nulla :), mi è capitato di trovarmi di fronte a questo messaggio di errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;Operation aborted (Exception from HRESULT: 0×80004004 (E_ABORT))
&lt;br /&gt;
&lt;br /&gt;System.Runtime.InteropServices.COMException : Operation aborted (Exception from HRESULT: 0×80004004 (E_ABORT))
&lt;br /&gt;at Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateRoleAssignment(String bstrUrl, Guid&amp; pguidScopeId, Int32 lPrincipalID, Object&amp; pvarArrIdRolesToAdd, Object&amp; pvarArrIdRolesToRemove)
&lt;br /&gt;at Microsoft.SharePoint.Library.SPRequest.UpdateRoleAssignment(String bstrUrl, Guid&amp; pguidScopeId, Int32 lPrincipalID, Object&amp; pvarArrIdRolesToAdd, Object&amp; pvarArrIdRolesToRemove)&lt;/div&gt;
&lt;br /&gt;In questo caso specifico, trovavo questa eccezione quando cercavo di modificare i permessi di un elemento SharePoint via codice, o quando cercavo di rompere l'ereditarietà di un elemento dall'elemento padre, ma vi può capitare durante uno qualsiasi degli update che cercate di fare sul database di SharePoint tramite il modello ad oggetti.
&lt;br /&gt;Cercando un pò su internet, ho trovato le due possibili cause per questo errore:
&lt;br /&gt;
&lt;br /&gt;1- il database log legato al db di contenuto di SharePoint risulta essere pieno.
&lt;br /&gt;2- l'account con cui cercate di accedere al database dei contenuti non ha permessi per accedere.
&lt;br /&gt;
&lt;br /&gt;Il mio caso era il primo, quindi è bastato un backup del database per liberare lo spazio nel database log.
&lt;br /&gt;Per vedere bene cosa succede a SharePoint, quando capitano questi tipi di errori, vi consiglio di utilizzare l'utility SPTraceView che trovate su codeplex a questo indirizzo:
&lt;br /&gt;&lt;a href="http://sptraceview.codeplex.com/" title="SPTraceView" target="_blank"&gt;http://sptraceview.codeplex.com/&lt;/a&gt;
&lt;br /&gt;che vi permettere di visualizzare in tempo reale gli errori che accadono su SharePoint.
&lt;br /&gt;Spero possa essere utilie a qualcuno..
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WSS 3.0.aspx" title="TAG: WSS 3.0"&gt;WSS 3.0&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/MOSS.aspx" title="TAG: MOSS"&gt;MOSS&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/OperationAbortedExceptionFromHRESULT0x80004004EABORT.aspx" /><issued>2010-8-25T12:12:46+01:00</issued><modified>2010-8-25T12:12:46+01:00</modified></entry><entry><title>Upgrade di template a SharePoint 2010 e i 40 template per WSS 3</title><id>/Blog/SiteTemplateUpgradeToSharePoint2010And40TemplateForWSS3.aspx</id><created>2010-8-23T11:42:12+01:00</created><content type="text/html" mode="escaped">Ne ho parlato alla scorsa &lt;a href="http://www.sharepointconference.it" title="SharePoint Conference" target="_blank"&gt;SharePoint Conference italiana&lt;/a&gt; e ancora l'argomento è molto caldo.
&lt;br /&gt;A fronte di un upgrade di un'installazione SharePoint 2007 (WSS o MOSS) a SharePoint 2010 i template di sito .STP non vengono portati !
&lt;br /&gt;Per effettuarne l'upgrade quindi, dobbiamo seguire questo percorso di operazioni:
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/images/UpgradeSTP.jpg" alt="STP Template upgrade path" /&gt;
&lt;br /&gt;
&lt;br /&gt;Il che ci permette di portare quei siti che erano stati creati a partire dal template .STP nella vecchia versione del programma e poi salvarli come template secondo le nuove specifiche di SharePoint 2010.
&lt;br /&gt;
&lt;br /&gt;Parlando di template .STP vengono subito in mente i 40 template che Microsoft aveva rilasciato per Windows SharePoint Services 3.0  e che la maggior parte di voi avrà sicuramente utilizzato.
&lt;br /&gt;Siccome Microsoft non sta aggiornando questi template e sopratutto perchè non ci sono neanche delle voci che ad oggi abbia deciso di farlo, è necessario porsi il problema di come aggiornare questi template se vogliamo passare le nostre farm a SharePoint 2010.
&lt;br /&gt;Questo gruppo di template, per fortuna, non era però composto solamente da file .STP ma c'erano anche molte soluzioni SharePoint con estensione .WSP che ci facilitano notevolmente il lavoro. Si perchè possiamo tranquillamente aggiornare i siti creati sia a partire da un .STP che da un .WSP, ma i primi non possono più essere riutilizzati una volta che la farm è stata aggiornata, mentre i secondi si ! E questo è bene che lo sappiate.
&lt;br /&gt;
&lt;br /&gt;&lt;div style="font-style: italic; margin-left: 10px"&gt;Nota: in fase di upgrade, alcuni hanno notato l'impossibilità di riutilizzare questi template .WSP: : Absence Request and Vacation Schedule Management, Call Center, Help Desk, IT Team Workspace, Knowledge Base, and Physical Asset Tracking and Management&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;Se invece siete pigri :) ..c'è qualcuno che ha fatto un pò di lavoro di upgrade per noi:
&lt;br /&gt;&lt;a href="http://techsolutions.net/Blog/tabid/65/EntryId/17/Fab-40-Templates-for-MOSS-2010.aspx" title="Fab 40 templates for SharePoint 2010" target="_blank"&gt;http://techsolutions.net/Blog/tabid/65/EntryId/17/Fab-40-Templates-for-MOSS-2010.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Upgrade.aspx" title="TAG: Upgrade"&gt;Upgrade&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/STP.aspx" title="TAG: STP"&gt;STP&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/WSP.aspx" title="TAG: WSP"&gt;WSP&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SiteTemplateUpgradeToSharePoint2010And40TemplateForWSS3.aspx" /><issued>2010-8-23T11:42:12+01:00</issued><modified>2010-8-23T11:42:12+01:00</modified></entry><entry><title>Come disattivare l'attivazione di feature in fase di deploy in Visual Studio 2010</title><id>/Blog/HowToDisableFeatureActivationOnDeployInVisualStudio2010.aspx</id><created>2010-8-16T10:17:22+01:00</created><content type="text/html" mode="escaped">Quando sviluppiamo le nostre personalizzazioni su SharePoint 2010 utilizzando gli strumenti messi a disposizione da Visual Studio 2010, ci accorgiamo che tutte le nostre feature vengono attivate in automatico ogni volta che viene lanciata l'operazione di deploy della soluzione sul sito SharePoint scelto in fase di creazione del progetto.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/ActivateFeatureVS2010.jpg" alt="Attivazione automatica della feature in fase di deployment da Visual Studio 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Questa è la configurazione di default che abbiamo all'interno dei tool di sviluppo per SharePoint 2010. Molte volte però, questa configurazione può impedire le nostre azioni di debug del codice o delle funzionalità implementate.
&lt;br /&gt;Pensiamo solo allo sviluppo di un event receiver che gestisce gli eventi di attivazione o di disattivazione della feature. In questo caso specifico ad esempio, non siamo in grado di fare debug del nostro codice, in quanto Visual Studio 2010 non permette di effettuare l'operazione di deployment e quella di debug contemporaneamente.
&lt;br /&gt;Proprio per ovviare a questo problema, è possibile modificare tale configurazione e scegliere di non attivare la feature in automatico. Per farlo basta entrare nelle proprietà del progetto dalla toolbox "Solution Explorer", scegliere il tab "SharePoint" e selezionare la configurazione "No Activation".
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/ActivateFeatureVS2010_2.jpg" alt="Cambio della configurazione di deployment delle soluzioni SharePoint 2010 in Visual Studio 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Così facendo, ad ogni successivo deployment non verranno attivate le feature della nostra soluzione in automatico, ma potremmo farlo noi da interfaccia web (o tramite l'utility STSADM o, ancora, tramite PowerShell) per poi metterci in debug del nostro codice.
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/ActivateFeatureVS2010_3.jpg" alt="Mancata attivazione automatica della feature in fase di deployment da Visual Studio 2010" /&gt;
&lt;br /&gt;
&lt;br /&gt;Così come abbiamo potuto disabilitare l'attivazione in automatico della feature all'interno del sito SharePoint scelto in fase di creazione del progetto, abbiamo anche la possibilità di creare configurazioni personalizzate in cui inserire operazioni di deploy e retract della soluzione, reciclo degli application pool, attivazione di feature e esecuzione di comandi pre/post deployment.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Feature.aspx" title="TAG: Feature"&gt;Feature&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Visual Studio 2010.aspx" title="TAG: Visual Studio 2010"&gt;Visual Studio 2010&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToDisableFeatureActivationOnDeployInVisualStudio2010.aspx" /><issued>2010-8-16T10:17:22+01:00</issued><modified>2010-8-16T10:17:22+01:00</modified></entry><entry><title>Annunciate le date della prossima SharePoint Conference italiana</title><id>/Blog/AnnunciateLeDateDellaProssimaSharePointConferenceItaliana.aspx</id><created>2010-8-15T12:33:13+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/SPOC2011_small.png" alt="SharePoint Conference 2010" style="float: right; margin: 2px" /&gt;L'annuncio è stato già dato da &lt;a href="http://blogs.devleap.com/igor/archive/2010/08/09/annunciata-la-prossima-edizione-italiana-della-microsoft-sharepoint-amp-office-conference-2011.aspx" title="Igor Macori" target="_blank"&gt;Igor&lt;/a&gt; e all'interno di &lt;a href="http://www.sharepointcommunity.it/news/Lists/News/DispForm.aspx?ID=8" title="Annuncio SharePoint Conference 2010 su SharePointCommunity.it" target="_blank"&gt;SharePoint Community&lt;/a&gt;.
&lt;br /&gt;La prossima edizione della Microsoft SharePoint &amp; Office Conference 2011 si svolgerà in parallelo alla Microsoft SQL Server &amp; Business Intelligence Conference 2011, sempre qui a Milano dal &lt;b&gt;19 al 21 Aprile 2011&lt;/b&gt;. Quindi salvatevi queste date che se ne vedranno sicuramente delle belle !
&lt;br /&gt;I contenuti saranno sicuramente di alto livello e sarà un momento ottimo per rincontrarsi con la community nata esattamente nella scorsa edizione della conferenza.
&lt;br /&gt;
&lt;br /&gt;Inoltre, come lo scorso anno, è stato anche aperto il call for paper per la raccolta delle vostre candidature come speaker o se semplicemente avete particolari argomenti da proporre.
&lt;br /&gt;Questo l'indirizzo:
&lt;br /&gt;&lt;a href="http://www.sharepointconference.it/2011/CFP/Pages/cfp.aspx" title="Call for paper SharePoint Conference 2010 Italiana" target="_blank"&gt;http://www.sharepointconference.it/2011/CFP/Pages/cfp.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Manca ancora tanto, è vero.. però è sempre meglio tenersi pronti ;)
&lt;br /&gt;Buon ferragosto a tutti !
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Conference.aspx" title="TAG: SharePoint Conference"&gt;SharePoint Conference&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint Community.aspx" title="TAG: SharePoint Community"&gt;SharePoint Community&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/AnnunciateLeDateDellaProssimaSharePointConferenceItaliana.aspx" /><issued>2010-8-15T12:33:13+01:00</issued><modified>2010-8-15T12:33:13+01:00</modified></entry><entry><title>Come abilitare le informazioni per il debug di un'eccezione in SharePoint 2010</title><id>/Blog/HowToEnableExceptionInformationForDebugInSharePoint2010.aspx</id><created>2010-8-5T14:52:23+01:00</created><content type="text/html" mode="escaped">SharePoint ha sempre nascosto i messaggi di errore veri e propri e tutte le informazioni relative al debug dell'errore stesso, per mantenere un buon rapporto con l'utente finale che il più delle volte si spaventa alla vista di tutte quelle scritte preferendo la solita frase "an error has occourred".
&lt;br /&gt;Sappiamo già com'è possibile &lt;a href="http://www.peppedotnet.it/Blog/AnUnexpectedErrorHasOccurred.aspx" title="Come visualizzare informazioni su errori in WSS 3.0 o MOSS 2007" target="_blank"&gt;visualizzare per esteso le informazioni degli errori in WSS 3.0/MOSS 2007&lt;/a&gt;, modificando il file web.config proprio della web application su cui stiamo facendo operazione di debug.
&lt;br /&gt;In SharePoint 2010 invece, è necessario modificare due differenti web.config:
&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Quello presente nella directory legata alla vostra web application SharePoint (se non cambiate il percorso di default, troverete il web.config da modificare al percorso: 
&lt;br /&gt;"[drive]:\inetpub\wwwroot\wss\virtualdirectories\[port]")&lt;/li&gt;&lt;li&gt;Quello presente all'interno della directory "LAYOUTS" posta sotto la SharePoint root (cioè il file presente al percorso:
&lt;br /&gt;"[drive]:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS")&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Quello che rimane invariato rispetto alla versione precedente di SharePoint, sono gli attributi da modificare all'interno del file web.config:&lt;ol&gt;&lt;li&gt;L'attributo "Debug" dell’elemento "Compilation" va portato a "true"&lt;/li&gt;&lt;li&gt;L'attributo "CallStack" dell'elemento "SafeMode" va portato a "true"&lt;/li&gt;&lt;li&gt;L'attributo "Mode" dell'elemento "CustomErrors" va portato a "Off"&lt;/li&gt;&lt;/ol&gt;
&lt;br /&gt;Così facendo, la schermata di errore classico passerà da..
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/DebugInfo1.jpg" alt="Error message SharePoint 2010" border="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;a..
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.peppedotnet.it/Images/2010/DebugInfo2.jpg" alt="Debug Information SharePoint 2010" borer="0" /&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete invece maggiori informazioni sull'esecuzione della pagina, potete abilitare la developer dashboard (una delle novità si SharePoint 2010 per sviluppatori). Se volete informazioni a riguardo, ne potete trovera all'interno della documentazione: &lt;a href="http://msdn.microsoft.com/en-us/library/ff512745.aspx" title="Using the Developer Dashboard" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ff512745.aspx&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] </content><link rel="alternate" type="text/html" href="/Blog/HowToEnableExceptionInformationForDebugInSharePoint2010.aspx" /><issued>2010-8-5T14:52:23+01:00</issued><modified>2010-8-5T14:52:23+01:00</modified></entry><entry><title>Errore &quot;Security error&quot; utilizzando il Client Object Model di SharePoint 2010 per Silverlight</title><id>/Blog/SecurityErrorUsingSharePoint2010ClientObjectModelForSilverlight.aspx</id><created>2010-8-3T15:39:38+01:00</created><content type="text/html" mode="escaped">Se iniziate ad utilizzare il modello ad oggetti client-side di SharePoint 2010 per applicazioni Silverlight e provate ad istanziare un nuovo oggetto di tipo "ClientContext" passando come parametro al costruttore principale l'indirizzo di un sito SharePoint remoto (senza far girare l'applicazione Silverlight all'interno del contesto di SharePoint) ...
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;ClientContext context = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; ClientContext(&lt;span style="color: #A31515"&gt;"http://sharepoint2010"&lt;/span&gt;);
&lt;br /&gt;&lt;span style="color: #008200"&gt;//…&lt;/span&gt;
context.ExecuteQueryAsync(...); &lt;span style="color: #008200"&gt;//errore&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;vi troverete a fare i conti con questo errore:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;{System.Security.SecurityException ---&gt; System.Security.SecurityException: Security error.
&lt;br /&gt;at System.Net.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
&lt;br /&gt;at System.Net.BrowserHttpWebRequest.&lt;&gt;c__DisplayClass5.b__4(Object sendState)
&lt;br /&gt;at System.Net.AsyncHelper.&lt;&gt;c__DisplayClass2.b__0(Object sendState)
&lt;br /&gt;--- End of inner exception stack trace ---
&lt;br /&gt;at System.Net.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
&lt;br /&gt;at System.Net.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
&lt;br /&gt;at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
&lt;br /&gt;at System.Net.WebClient.OpenReadAsyncCallback(IAsyncResult result)}&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;L'errore viene scatenato alla chiamata del metodo ExecuteQueryAsync per l'esecuzione della query dall'applicazione client a SharePoint 2010.
&lt;br /&gt;Ecco, è bene sapere che questo errore può accadere per due principali motivi:
&lt;br /&gt;1- L'indirizzo che avete inserito come parametro del costruttore principale della classe ClientContext non esiste, non funziona o non è raggiungibile tramite browser.
&lt;br /&gt;2- Non avete inserito alcun file di policy ("ClientAccessPolicy.xml") per regolamentare le connessioni ai web services di SharePoint dall'esterno, nella directory della vostra web application.
&lt;br /&gt;
&lt;br /&gt;Come è possibile leggere dal punto 2, per consumare un web services (che sia o meno esposto da SharePoint) all'interno di un'applicazione Silverlight, è necessario che il web server che lo ospita abbia un file di policy che regolamenta la possibilità di utilizzo o meno del web service stesso da applicazioni remote. Questo file è il file "ClientAccessPolicy.xml", che e va creato all'interno della root della nostra applicazione web.
&lt;br /&gt;Siccome il modello ad oggetti client-side ha, al suo interno, una classe proxy che si occupa di chiamare il servizio "Client.svc" esposto da SharePoint 2010 e leggerne le risposte, anche tutte le applicazioni che ne utilizzano i vari membri dovranno fare i conti con il medesimo modello di policy, in quanto pur scrivendo codice che mantiene il paradigma ad oggetti, alla fine vengono comunque fatte delle chiamate ad servizio web (in questo caso un servizio WCF). Per un introduzione sull'architettura del modello ad oggetti client-side di SharePoint 2010, trovate un articolo su &lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" title="Introduzione al Client Object Model di SharePoint 2010" target="_blank"&gt;SharePoint Community&lt;/a&gt;.
&lt;br /&gt;Quindi, in ambiente di sviluppo, potete mettere un file nominato "ClientAccessPolicy.xml" all'interno della root della vostra web application SharePoint. Questo un'esempio classico:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style='color:#0000FF'&gt;&lt;?&lt;/span&gt;&lt;span style='color:#800000'&gt;xml&lt;/span&gt;&lt;span style='color:#FF0000'&gt; version&lt;span style='color:#0000FF'&gt;="1.0"&lt;/span&gt; encoding&lt;span style='color:#0000FF'&gt;="utf-8"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;?&gt;&lt;/span&gt;   
&lt;br /&gt;  &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;access-policy&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;    &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;cross-domain-access&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;      &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;policy&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;allow-from&lt;/span&gt;&lt;span style='color:#FF0000'&gt; http-request-headers&lt;span style='color:#0000FF'&gt;="*"&lt;/span&gt;&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;           &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;domain&lt;/span&gt;&lt;span style='color:#FF0000'&gt; uri&lt;span style='color:#0000FF'&gt;="*"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;   
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;allow-from&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;grant-to&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;          &lt;span style='color:#0000FF'&gt;&lt;&lt;/span&gt;&lt;span style='color:#800000'&gt;resource&lt;/span&gt;&lt;span style='color:#FF0000'&gt; path&lt;span style='color:#0000FF'&gt;="/"&lt;/span&gt; include-subpaths&lt;span style='color:#0000FF'&gt;="true"&lt;/span&gt; &lt;/span&gt;&lt;span style='color:#0000FF'&gt;/&gt;&lt;/span&gt;   
&lt;br /&gt;        &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;grant-to&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;     &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;policy&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;   &lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;cross-domain-access&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt;  
&lt;br /&gt;&lt;span style='color:#0000FF'&gt;&lt;/&lt;/span&gt;&lt;span style='color:#800000'&gt;access-policy&lt;/span&gt;&lt;span style='color:#0000FF'&gt;&gt;&lt;/span&gt; &lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;Prima di procedere, provate a raggiungere tale file tramite il browser in modo tale da essere sicuri che possa essere letto da tutti, utilizzando questo indirizzo:
&lt;br /&gt;
&lt;br /&gt;http://[servername]/ClientAccessPolicy.xml
&lt;br /&gt;
&lt;br /&gt;E poi fate un bel IISRESET.
&lt;br /&gt;
&lt;br /&gt;Se siete in produzione invece, è meglio seguire le linee guida date da Microsoft per il posizionamento e la stesura del contenuto del file "ClientAccessPolicy.xml".
&lt;br /&gt;Trovate invece più informazioni riguardo il modello di sicurezza per l'accesso a risorse esterne tramite applicazioni Silverlight qua: &lt;a href="http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx" title="Network Security Access Restrictions in Silverlight" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/cc645032(VS.95).aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Silverlight.aspx" title="TAG: Silverlight"&gt;Silverlight&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client  Object Model.aspx" title="TAG: Client  Object Model"&gt;Client  Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/SecurityErrorUsingSharePoint2010ClientObjectModelForSilverlight.aspx" /><issued>2010-8-3T15:39:38+01:00</issued><modified>2010-8-3T15:39:38+01:00</modified></entry><entry><title>Come spostare un sito SharePoint all’interno della stessa site collection da codice</title><id>/Blog/HowToMoveSharePointSiteProgrammaticallyWithinTheSameSiteCollection.aspx</id><created>2010-8-2T16:42:12+01:00</created><content type="text/html" mode="escaped">Un pò di tempo fa abbiamo visto com'è possibile muovere un sito SharePoint o alcuni dei suoi principali oggetti (liste, documenti, elementi, ecc..) da programma, utilizzando le &lt;a href="http://www.peppedotnet.it/Blog/SharePointAPIforContentDeploymentAndMigrations.aspx" title="API per la migrazione e il deployment dei contenuti" target="_blank"&gt;API per la migrazione e il deployment dei contenuti&lt;/a&gt; esposte da SharePoint.
&lt;br /&gt;Le medesime operazioni di spostamento, come dovremmo sapere, è possibile effettuarle anche utilizzando le operazioni di backup e restore dell'utility STSADM, quelle presenti all'interno della Central Administration, quelle che potete invece trovare all'interno di SharePoint Designer oppure (ma solo se avete MOSS 2007 e le feature di publishing attivate a livello di site collection) tramite il tool di gestione del contenuto di SharePoint, il tool "Site manager" (che potete raggiungere selezionando "Site settings" - "Content and structure").
&lt;br /&gt;
&lt;br /&gt;Ma, se vogliamo scrivere un'applicazione custom che effettui lo spostamento di un sito all'interno della stessa Site Collection, SharePoint ci mette a disposizione un'ulteriore tecnica molto più facile all'uso che viene chiamata "reparent" (che, devo dir verità, non so come si può tradurre in italiano :)
&lt;br /&gt;Tramite questa tecnica, possiamo spostare un sito SharePoint all'interno della stessa site collection senza effettuare alcun tipo di backup o restore.
&lt;br /&gt;Per utilizzarla, non dobbiamo far altro che inserire all'interno della nostra applicazione il seguente codice (una volta aggiunta la referenza alla libreria Microsoft.SharePoint.dll):
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; oldUrl = &lt;span style="color: #A31515"&gt;"http://servername/DaSpostare/"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;string&lt;/span&gt; newUrl = &lt;span style="color: #A31515"&gt;"Peppe/Spostato"&lt;/span&gt;;
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (SPSite site = &lt;span style="color: #0000FF"&gt;new&lt;/span&gt; SPSite(oldUrl))
&lt;br /&gt;&lt;span style="color: #0000FF"&gt;using&lt;/span&gt; (SPWeb web = site.OpenWeb())
&lt;br /&gt;{
&lt;br /&gt;  web.ServerRelativeUrl = newUrl;
&lt;br /&gt;  web.Update();
&lt;br /&gt;}&lt;/pre&gt;&lt;/div&gt;
&lt;br /&gt;In questo esempio, viene spostato il sito dall'indirizzo "http://servername/DaSpostare" all'indirizzo "http://servername/Peppe/Spostato".
&lt;br /&gt;Quindi, semplicemente modifcando il valore della proprietà "ServerRelativeUrl" di un oggetto di tipo SPWeb siamo in grado di muovere il sito all'interno della medesima Site Collection mantenendone intatte le proprietà, i permessi e i contenuti.
&lt;br /&gt;Chiaramente, il nuovo indirizzo assegnato al sito da spostare deve essere valido fino al nome del sito una volta spostato. Per esempio, se io voglio spostare il sito "http://servername/daspostare" all'indirizzo: "http://servername/sito/peppe/test",  i siti "http://server/sito" e "http://server/sito/peppe" devono esistere !
&lt;br /&gt;
&lt;br /&gt;La stessa tecnica, può essere utilizzata da riga di comando tramite l'utility STSADM in questo modo:
&lt;br /&gt;
&lt;br /&gt;&lt;div class="code"&gt;&lt;pre&gt;stsadm -o renameweb -url http://servername/daSpostare -newname Peppe
&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt; 
&lt;br /&gt;Che sposta il sito all'indirizzo "http://servername/Peppe".
&lt;br /&gt;
&lt;br /&gt;Non male, eh ?
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/STSADM.aspx" title="TAG: STSADM"&gt;STSADM&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/HowToMoveSharePointSiteProgrammaticallyWithinTheSameSiteCollection.aspx" /><issued>2010-8-2T16:42:12+01:00</issued><modified>2010-8-2T16:42:12+01:00</modified></entry><entry><title>Operazioni CRUD con il Client Object Model di SharePoint 2010</title><id>/Blog/CRUDOperationsWithSharePoint2010ClientObjectModel.aspx</id><created>2010-8-2T11:46:30+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" alt="SharePoint Community" style="float: right; margin: 5px;" /&gt;Dopo &lt;a href="http://www.peppedotnet.it/Blog/IntroduzioneAlleClientSideAPIdiSharePoint2010.aspx" title="Introduzione alle Client-Side API di SharePoint 2010 " target="_blank"&gt;l'articolo di introduzione sulle API per la programmazione client-side di SharePoint 2010&lt;/a&gt;, ecco il mio secondo articolo sul tema pubblicato su &lt;a href="http://www.sharepointcommunity.it" title="SharePoint Community" target="_blank"&gt;SharePoint Community&lt;/a&gt;. Questa volta però, è incentrato sulle operazioni di base che si possono fare su liste SharePoint utilizzando il Client Object Model e una banalissima applicazione Windows. 
&lt;br /&gt;Ho scelto di scriverci un articolo proprio perchè le operazioni CRUD (Create, Read, Update, Delete) su liste, sono veramente le azioni che si fanno più spesso quando si sviluppano applicazioni che hanno a che fare con SharePoint e penso che sicuramente sarà utile a molti.
&lt;br /&gt;Qui il link per l'articolo:
&lt;br /&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12" title="" target="_blank"&gt;http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=12&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Se volete scaricare i sorgenti invece, potete farlo direttamente da qua (sono gli stessi esempi visti all'interno della mia sessione per l'evento GroundZero di DotNetLombardia):
&lt;br /&gt;&lt;a href="http://www.peppedotnet.it/zip/Dev4Side.GroundZero.zip" title="Sorgenti operazioni CRUD tramite il Client Object Model di SharePoint 2010" target="_blank"&gt;http://www.peppedotnet.it/zip/Dev4Side.GroundZero.zip&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;Finalmente, sto per andare in vacanza anche io.. verso mare stupendo spero.
&lt;br /&gt;Ci si risente tra un pò ;)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/CRUDOperationsWithSharePoint2010ClientObjectModel.aspx" /><issued>2010-8-2T11:46:30+01:00</issued><modified>2010-8-2T11:46:30+01:00</modified></entry><entry><title>Introduzione alle Client-Side API di SharePoint 2010</title><id>/Blog/IntroduzioneAlleClientSideAPIdiSharePoint2010.aspx</id><created>2010-7-26T16:40:30+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/Images/sharepointCommunity.jpg" alt="SharePoint Community" style="margin: 10px; float: right" /&gt; E' appena stato pubblicato un mio nuovo articolo su SharePoint 2010 all'interno di &lt;a href="http://www.sharepointcommunity.it/" title="SharePoint Community.it" target="_blank"&gt;SharePoint Community&lt;/a&gt;.
&lt;br /&gt;E' una breve introduzione sulle API esposte dalla nuova versione di SharePoint, per lo sviluppo di applicazioni client-side che girano su Windows o all'interno del browser (Silverlight o personalizzazioni Javascript).
&lt;br /&gt;Seguirà un secondo articolo, dove sarà possibile vedere il codice per effettuare le normali operazioni di tipo CRUD su liste SharePoint utilizzando uno dei tre modelli ad oggetti per lo sviluppo lato client (per esser precisi quello per lo sviluppo di applicazioni Windows).
&lt;br /&gt;Qua il link all'articolo:
&lt;br /&gt;&lt;a href="http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11" title="Introduzione alle Client-Side API di SharePoint 2010" target="_blank"&gt;http://www.sharepointcommunity.it/articles/Lists/Articles/DispForm.aspx?ID=11&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;L'introduzione delle API per la programmazione client-side sono sicuramente la novità che, personalmente, ho apprezzato di più all'interno di SharePoint 2010. 
&lt;br /&gt;Non si parla più di web services, di dover formattare e parsare tutto quell'xml per interrogare SharePoint dall'esterno e leggere i risultati delle nostre interrogazioni, il tutto mantenedo il paradigma della programmazione ad oggetti, proprio come siamo sempre stati abituati utilizzando il modello ad oggetti lato server.
&lt;br /&gt;Il che è fantastico ! No ? :)
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS:  [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint 2010.aspx" title="TAG: SharePoint 2010"&gt;SharePoint 2010&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Client Object Model.aspx" title="TAG: Client Object Model"&gt;Client Object Model&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/IntroduzioneAlleClientSideAPIdiSharePoint2010.aspx" /><issued>2010-7-26T16:40:30+01:00</issued><modified>2010-7-26T16:40:30+01:00</modified></entry><entry><title>Errore: &quot;The crawler could not communicate with the server&quot;</title><id>/Blog/ErrorTheCrawlerCouldNotCommunicateWithTheServer.aspx</id><created>2010-7-24T17:28:38+01:00</created><content type="text/html" mode="escaped">Se, guardando il log dell'indicizzazione prodotto dal servizio di ricerca di MOSS 2007 su uno dei content source che avete configurato, vi trovate un errore di questo tipo:
&lt;br /&gt;
&lt;br /&gt;&lt;div style="color: red; font-style: italic; margin-left: 10px"&gt;The crawler could not communicate with the server. Check that the server is available and that the firewall access is configured correctly&lt;/div&gt;
&lt;br /&gt;controllate subito l'indirizzo che viene specificato come fonte dell'errore cercando di raggiungerlo tramite browser utilizzando la connessione in desktop remoto sulle vostre macchine che si occupano dell'indicizzazione. 
&lt;br /&gt;Probabilmente avete una farm dove uno o più server si occupano di fornire la parte front-end di SharePoint e uno o più server quella di indicizzazione. E magari l'indirizzo che vedete come fonte dell'errore, se raggiunto dalle macchine client, vi risulterà sicuramente funzionante.
&lt;br /&gt;Ma se provate a raggiungerlo da una delle macchine di indicizzazione, vedrete che vi ritornerà un errore di tipo 5xx.
&lt;br /&gt;Quindi cercate di capire il perchè di quell'errore 500 e, una volta corretto, fate ripartire l'indicizzazione.
&lt;br /&gt;Nel mio caso, era stato stoppato l'application pool ed è bastato semplicemente riavviarlo.
&lt;br /&gt;Spero possa esser utile a qualcuno.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;TAGS: [&lt;a href="http://www.peppedotnet.it/Tags/SharePoint.aspx" title="TAG: SharePoint"&gt;SharePoint&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/MOSS 2007.aspx" title="TAG: MOSS 2007"&gt;MOSS 2007&lt;/a&gt;] [&lt;a href="http://www.peppedotnet.it/Tags/Search.aspx" title="TAG: Search"&gt;Search&lt;/a&gt;]</content><link rel="alternate" type="text/html" href="/Blog/ErrorTheCrawlerCouldNotCommunicateWithTheServer.aspx" /><issued>2010-7-24T17:28:38+01:00</issued><modified>2010-7-24T17:28:38+01:00</modified></entry><entry><title>Slide e demo della mia sessione all'evento GroundZero di DotNetLombardia</title><id>/Blog/SlidesAndDemosOfMySessionAtDotNetLombardia.aspx</id><created>2010-7-22T23:6:0+01:00</created><content type="text/html" mode="escaped">&lt;img src="http://www.peppedotnet.it/images/devordie.jpg" alt="Dev or Die !" style="float: ri
