Segnolo un’interessante iniziativa di Microsoft per presentare graficamente in forma diversa dei contenuti presenti su MSDN. Sto parlando in particolare di STSADM e di tutte le operations e properties da esso esposte.
E’ stato realizzato un controllo Silverlight che permette la navigazione tra le operations e properties suddividendole per applicazione (Backup & Restore, ECM, Db, ecc…), per rilascio (SP1, SP2), per raggiungibilità (se tramite la UI di SharePoint o solo via STSADM).
Ecco il link:
http://technet.microsoft.com/en-us/office/sharepointserver/cc948709.aspx
A mio parere, data la mole di contenuti su MSDN e technet sarebbe opportuno una ristrutturazione con conseguente miglioramento della ricerca e navigazione. Ne avevo già parlato con una persona del team che segue la pubblicazione dei contenuti su MSDN dell’area dedicata a SharePoint e spero che questa pagina sia solamente una briciola, giusto per testare l’audience.
Nel mese di Giugno, per esigenze di progetto, starò a Milano. Quale miglior occasione per unire l’utile al dilettevole! Sull’onda delle iniziative di successo negli U.S.A e U.K. organizziamo in Italia la prima SharePint a Milano.
ANNUNCIO: a tutti i frequentatori del blog e appassionati di SharePoint propongo una serata all’insegna della socializzazione e della buona birra. Niente workshop, niente slide!!! Please fare girare la voce!
Data proposta: 18 Giugno
Luogo: TBD – lascio agli amici milanesi la scelta anche perchè non conosco locali
Per adesioni: inviarmi una email a marcorizzi @ marcorizzi.com
Aggiornamenti sul blog e twitter @marcorizzi
In questi giorni al TechEd 2009 sono state rese pubbliche alcune informazioni sulle next wave di Office e SharePoint 2010. Il grosso naturalmente non verrà svelato in attesa della SharePoint Conference 2009.
Ci sono però una serie di informazioni che sono state rese pubbliche. Una di queste è una novità in merito alla UI di SharePoint 2010, ovvero che sarà migliorata notevolmente con l’introduzione di controlli SilverLight e la Ribbon di Office. Per chi non sapesse cos’è, la Ribbon è la toolbar presente sulle applicazoni del pacchetto Office 2007. Ecco qui sotto come si presenta la Ribbon di Word.
Al che sono fatto una domanda “Non potremmo mettere la Ribbon già su alcune toolbar di SharePoint 2007 ? "
In particolare mi è venuto in mente di sostituire la toolbar della Console di Publishing con la Ribbon. Navigando sul forum della Telerik ho trovato un thread molto interessante che spiega come inserire la ribbon sulle applicazioni ASP.NET fruttando dei controlli Telerik. Russell Mason mi ha preceduto, sviluppando un componente in grado di renderizzare la Ribbon.
Così con poche righe di codice ho integrato la Ribbon su SharePoint. A sviluppo completato il risultato è stato davvero notevole come si può vedere degli screenshot.
Dettaglio del menù Page
Dettaglio del menù Workflow
Dettaglio del menù Tools
Com’è stato ottenuto questo risultato?
A grandi linee ecco come inserire la Ribbon su SharePoint 2007:
- Creare una master page (RibbonMinimalMasterPage.ascx) partendo dalla Minimal Master Page pubblicata su MSDN
- Creare uno user control (RibbonPublishingControl.ascx) per generare la Ribbon e scrivere un pò di codice per inserire le voci di menù e relative funzionalità che si ottengono navigando l’oggetto XmlDataSource del EditingMenu. Importante: leggere il thread sopra indicato per ottenere delle specifiche su come utilizzare il controllo della Ribbon. Segnalo che è necessario scaricare e installare gli assembly Telerik.Web.UI e RusselMason.Web.UI.Office2007
- Modificare la master page sostituendo il link dello user control PublishingControl
1: da
2: <%@ Register Tagprefix="PublishingConsole" TagName="Console" src="~/_controltemplates/PublishingConsole.ascx" %>
3: a
4: <%@ Register Tagprefix="PublishingConsole" TagName="Console" src="~/_controltemplates/RibbonPublishingConsole.ascx" %>
- Impostare la nuova master page sulla site collection agendo da Site Actions –> Site Settings –> Modify all site sittings –> Master Page (dalla colonna Look and Feel)
NOTA: la soluzione descritta è stata sviluppata a scopo didattico. Non sono mai stati fatti dei test approfonditi sulle funzionalità. Se qualcuno volesse darmi una mano sia per i test e per le fix mi faccia sapere; sarò lieto di condividere i sorgenti.
Segnalo un’interessante paragrafo tratto da MSDN relativamente alla pianificazione delle zone di una web application. Qui l’articolo completo.
“If you plan to implement more than one authentication method for a Web application by using zones, use the following guidelines:
-
Use the default zone to implement your most secure authentication settings. If a request cannot be associated with a specific zone, the authentication settings and other security policies of the default zone are applied. The default zone is the zone that is created when you initially create a Web application. Typically, the most secure authentication settings are designed for end-user access. Consequently, the default zone will likely be the zone that is accessed by end users.
-
Use the minimum number of zones that is required by the application. Each zone is associated with a new IIS site and domain for accessing the Web application. Only add new access points when these are required.
-
If you want content within the Web application to be included in search results, ensure that at least one zone is configured to use NTLM authentication. NTLM authentication is required by the index component to crawl content. Do not create a dedicated zone for the index component unless necessary. “
Il primo punto è il più interessante: quando si crea una nuova web application configurare la zona di default per essere quella più sicura (ovvero quella internet) e la motivazione è più corretta. Quindi la regola per configurare il classico sito WCM con zona di accesso dedicata ad utenti editori per gestire i contenuti e zona di internet anonima con eventuale possibilità di consultazione di aree riservate per gli utenti registrati internet è questa:
- zona default con autenticazione FBA
- zona intranet con autenticazione Windows NTLM
Qui c’è l’elenco completo delle operazioni da seguire per configurare la web application (si presuppone che la site collection sia host-named e che il sito necessiti delle funzionalità di search)
Direi che dopo questo post finisce l’era del de bustibus (come se tutti gli addetti ai lavori leggessero il mio blog :-). Amministratori di farm, architetti, solution designer siete stati avvertiti!!
Technorati Tags:
SharePoint,
WCM
La SP2 di SharePoint introduce nuovi parametri relativamente al funzionalità di backup tramite stsadm.
Tali parametri sono force e nositelock.
force serve per effettuare il backup ignorando le verifiche della disponibilità di spazio su disco. Ne scaturisce quindi una velocizzazione di esecuzione.
nositelock è stato introdotto per gestire il lock di un sito (mettere il sito in read-only) durante le operazioni di backup.
Situazione pre-SP2: durante le operazioni di backup il sito non veniva automaticamente posto in read-only ma era necessario lanciare, sempre via stsadm e prima del backup, setsitelock impostando il lock a readonly e successivamente al backup togliere il lock, pena la corruzione del backup se durante tale operazione avvengono delle modifiche ai contenuti.
Situazione post-SP2: la funzionalità di backup prima di essere eseguita mette automaticamente il sito in read-only e al termine dello stesso toglie il lock. Da qui nasce il parametro nositelock che permette di evitare questo nuovo comportamente tornando di fatto a quello pre-SP2. Interessante il fatto che questo nuovo comportamento sia di default, lasciando comunque la scelta del comportamento più adatatta sulla base singole necessità.
Ultima nota: non fare backup via stsadm a site collection più grandi di 15Gb
Per ulteriori info
http://technet.microsoft.com/en-us/library/cc263441.aspx - Backup
http://technet.microsoft.com/en-us/library/cc262811.aspx – Setsitelock
Reflector
Download: www.red-gate.com/products/reflector
Descrizione: Client application. Disassembla assembly in codice nativo o linguaggi più comuni (esempio c#, vb.net). Indispensabile per studiare l’object model di SP e per la fase di debugging.
SharePoint Manager 2007
Download: www.codeplex.com/spm
Descrizione: Client application. Il tool più completo per navigare sui siti SP via object model. Talvolta il tool permette apportare modifiche direttamente dalla UI (oltre a non essere supportato questo tipo di operatività, personalmente la sconsiglio).
WSPBuilder + WSP template per Visual Studio 2008
Download: www.codeplex.com/wspbuilder
Descrizione: Console application + Visual Studio 2008 Template. Semplifica notevolmente la creazione di solution da Visual Studio 2008.
VSeWSS (Visual Studio extension for WSS)
Download: www.microsoft.com/downloads/details.aspx?FamilyID=7bf65b28-06e2-4e87-9bad-086e32185e68&displaylang=en
Descrizione: VS extensions. Si propone di essere il punto di partenza per molti sviluppatori. Le estensioni permettono di creare e pacchettizzare nuovi progetti SP, web parts, custom field, list definition, ecc.. Interessante il tool che parendo da un sito esistente ne genera la site definition.
U2U Caml Query Builder 2007
Download: www.u2u.be/res/Tools/CamlQueryBuilder.aspx
Descrizione: Windows application che interagisce con SP via object model web service. Semplifica la scrittura delle CAML query sulle liste (no crosslist) che può essere effettuata interamente da UI senza toccare l’xml.
Stramit Caml Viewer 2007
Download: www.codeplex.com/SPCamlViewer
Descrizione: Windows application che interagisce con SP via web service. Per creare CAML query, visualizza tutti i field di una lista compresi quelli di sistema.
SPDisposeCheck
Download: code.msdn.microsoft.com/SPDisposeCheck
Descrizione: Console application. Tramite pattern verifica se all’interno di un assembly sono state effettuate tutte le dispose che SP richiede. Molto utile per fare code review rapidamente ed evitare i più comuni problemi di memory leak.
AppPoolManager
Download: www.harbar.net/articles/APM.aspx
Descrizione: Windows application che rimane nella try area. Per effetturare miratamente il recycle degli application pool di IIS. Permette inoltre di effettuare il warm-up post recycle.
IE7 + IEDevToolBar + Fiddler e FireFox 3.x + FireBug
Descrizione: Addins per browsers. Utile per tracciare il traffico di rete, localizzare e modificare al volo parti di HTML, individuare e verificare l’applicazione dei CSS, debug degli script.
Lapointe.SharePoint.STSADM.Commands
Download: stsadm.blogspot.com
Descrizione: Libreria di estensioni di STSAdmin. Più di 130 estensioni per effettuare le più comuni operazioni di configurazione, installazione, manutenzione e verifiche.
SharePoint Query Web Service Test Tool
Download: www.wsssearch.com/querywebservice.html
Descrizione: Windows application. Connettendosi al web service di search di SP permette di effettuare delle ricerche full-text creando automaticamente l’xml della request e ottenere l’xml della response.
Visual Studio 2008 IntelliSense per CAML xml
Download: code.msdn.microsoft.com/camlintellisense
Descrizione: Visual Studio extension. Scrivere gli xml di SP seguendo lo schema CAML non è mai stato così facile. Configurazione automatizzata degli schema su VS.
CodePlex Features
Download: www.codeplex.com/features
Descrizione: SharePoint feature. Collezione di features che introducono e semplificano l’operatività e lo sviluppo.
Colgo lo spunto per rispondere ad un domanda che spesso mi viene rivolta:
com’è possibile personalizzare il menù Site Actions per aggiungere nuove voci o rimuovere quelle di sistema?
Questa domanda dovrebbe essere preceduta dalla più comune “si può fare?”. Occorre sempre verificare la fattibilità prima di buttarsi a capofitto l’implementazione quando si sta personalizzando un prodotto. Talvolta il delta tra implementare qualcosa da zero integrato con il prodotto e personalizzare il prodotto è molto elevato. In questo caso la risposta è sì.
Torniamo al topic. Quando la feature di publishing è attivita, il data source del menù SiteAction punta al file storato nella posizione C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS\EditingMenu\Siteaction.xml.
Le voci di menù presenti nella SiteAction e contenute nel file precedentemente segnalato sono personalizzabili in questi due modi:
- via feature per fruttare il solution framework di SharePoint che fornisce stabilità, manutenibilità, riutilizzo e facile attivazione/disattivazione via web
- editando il file usato da sharepoint per personalizzare il menù tramite SharePoint Designer
Non modificare mai i file di sistema di SharePoint!
Personalmente preferisco il primo approccio; però come ho già detto altre volte, durante la fase di sviluppo, spesso uso Designer per interagire rapidamente col sistema. Successivamente prendo tutte le modifiche effettuate con Designer e le impacchetto in un wsp.
Per rimuovere una voce di menù generata da SharePoint occorre editare il file CustomSiteAction.xml presente sulla master page gallery nella folder EditingMenu.
A seguire un esempio di xml che rimuove la voce Create Page presente nel menù out-of-the-box di SharePoint sostituendola con una custom.
<?xml version="1.0" encoding="utf-8" ?>
<Console>
<references>
<reference TagPrefix="cms"
assembly="Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" namespace="Microsoft.SharePoint.Publishing.WebControls.EditingMenuActions" />
</references>
<structure >
<ConsoleNode ConfigMenu="Replace" ChangedNodeID="wsaCreatePage" />
<ConsoleNode Action="cms:CreateNewPublishingPageAction"
DisplayText="cms,siteactions_createpage_displaytext"
Description="cms,siteactions_createpage_description"
HideIfDisabled="true"
UseResourceFile="true"
MenuGroupId="100"
Sequence="6000"
IsSiteRelative="true"
PermissionContext="CurrentList"
ImageUrl="/_layouts/images/crtpage.gif"
NavigateUrl="/_layouts/Customcreatepage.aspx"
ID="wsaCreatePage1"/>
</structure>
</Console>
Leggendo l’xml si nota che il primo ConsoleNode tramite l’attributo ChangeNodeID identifica su quale voce di menù si deve interagire mentre l’attributo ConfigMenu definisce il tipo di operazione da effettuare. Il secondo ConsoleNode contiene la voce del menù che stiamo rimpiazzando (le cui label sono contenute in un file di risorse) e tramite l’attributo NavigateUrl viene specificato su quale pagina redirigere l’utente al click della voce di menù.
Technorati Tags:
SharePoint,
Dev
Tempo fa mi era imbattutto in un problema che riguarda la scrittura di valori in un field di tipo lookup multi value. Per la precisione: ciò che veniva fatto è valorizzare la collezione del multi value un pò alla volta senza ogni volta salvare l'item, più o meno come riportato
SPListItem item = getItem();
//Code 1
SPFieldLookupValueCollection fieldLookupValues = (SPFieldLookupValueCollection)item["MultiValueField"]; // ok
fieldLookupValues.Add(new SPFieldLookupValue(1, "value));
item["MultiValueField"] = fieldLookupValues;
//... do some operations
//Code 2
fieldLookupValues = (SPFieldLookupValueCollection)item["MultiValueField"]; // Exception
Nel primo blocco di codice viene letto un field, settato il primo valore della collection e successivamente salvata la collection sul item.
Il secondo blocco, se seguito successivamente al primo, genera una exception di tipo 'Unable to cast object'. Questo perchè è l'oggetto SPListItem che si occupa di mappare la stringa di un lookup multi value, il cui valore è id1;#value1;id2;#value2, in un oggetto di tipo SPFieldLookupValueCollection. Una volta impostato un valore per questo campo, il type del field torna ad essere String, ovvero il tipo con cui viene gestito internamente.
Per farlo tornare un oggetto tipizzato a SPFieldLookupValueColletion occorre fare un item.Update() prima del blocco 2.
Technorati Tags:
SharePoint,
Dev
Ormai è da qualche tempo che ho installato IE8 ma tra le varie beta pensavo che il comportamente errato relativamente ai menu dinamici di SharePoint fosse essenzialmente un baco del browser e che prima del rilascio della RC venisse fissato, invece niente.
Oggi ho avuto sono riuscito a ritagliarmi un pò di tempo per approfondire il comportamento e trovare il perchè dell’anomalia. Una volta individuato ciò, sarebbe stato possibile correggere il comportamento magari anche con poche linee di codice.
Ma di cosa sto parlando nel dettaglio:
il controllo SharePoint:ASPMenu, che si basa su asp:menu, se configurato opportunamente ha la possibilità di visualizzare menù su più livelli dinamicamente. Selezionando una voce di menù, il controllo genera un ‘tabella’ delle voci di menù del livello inferiore via javascript chiamando la funzione PopOut_Show che viene inclusa automaticamente nella pagina. Tale funzione effettua delle operazioni di verifica e assegnazione della proprietà z-index presente sul panel del menu. Il valore dello z-index viene calcolato differentemente sulla base del browser e non della versione dello stesso (non avviene nessun controllo sulla versione di IE). Per IE assume che la proprietà element.currentStyle.zIndex restituisca una valore numerico, ma in realtà per IE8 in valore restituito è ‘auto’ e ciò genera l’anomalia.
Dopo alcune prove e leggendo su google ho trovato per risolvere la issue basta definire una nuova classe css che contiene un z-index numerico e assegnare questa classe allo style dinamico del menù.
In breve:
adjustedMenu {
z-index: 99;
}
e
<asp:Menu ID="Menu1" runat="server">
<DynamicMenuStyle CssClass="adjustedMenu " />
</asp:Menu>
Applicando queste modifiche sono riuscito a visualizzare di nuovo il menù anche su IE8.
Segnalo alcuni interessanti link che ho trovato navigando:
- Bertrand Le Roy qui descrive il problema e spiega perchè non sia una issue di IE.
- Microsoft dovrebbe a breve rilasciare anche una fix (KB962351) che per il momento non è ancora pubblica ma a questo link su può già scaricare qualcosa in anteprima.
UPDATE: è stato scritto un KB http://support.microsoft.com/kb/962351 che permette di scaricare una fix
Sono incappato in una strana anomalia di SharePoint:
accedendo ad una folder creata appositamente per contenete i page layouts e master pages dentro la master page gallery viene sistematicamente generato l’errore “Cannot complete this action.”

Di fatto viene impedita la modifica e inserimento di nuovi page layouts e master pages da UI di SharePoint, mentre invece tramite SharePoint Designer l’operatività è completa.
Sfongliando alla libreria masterpage ho notato che sono state modificate alcune impostazione relativamente alla visualizzazione e ordine dei contentType. La funzionalità è erogata dal menù Change New Button Order and Default Content Type presente nella pagina dei settings delle lista. La modifica di queste impostazioni genera anch’essa l’errore.
Dopo avere investito una mezza giornata per indagare, sia leggendo il file di log di SharePoint che facendo ricerche su internet, ho trovato questo kb 956057 dal titolo “Description of the Windows SharePoint Services 3.0 hotfix package (Sts.msp): August 26, 2008” che contiene già una fix per l’anomalia riscontrata.
In particolare
Per verificare se è già stato installato il pacchetto cumulativo occorre confrontare la versione dell’assembly Microsoft.Sharepoint.dll. Il pacchetto cumulativo contiene la versione 12.0.6327.5000.
Raccomando a tutti gli amministratori di SharePoint di prevedere dei piani di patching del prodotto. Sempre più spesso mi capita di lavorare con versioni di SharePoint non aggiornate. In alcuni casi le farm non ha neppure la SP1.
Stesso avvertimento agli sviluppatori: aggiornate le VM su cui sviluppate!
Technorati Tags:
moss,
patch,
sharePoint
Ci sono altri italiani che prenderanno parte alla conferenza?
Technorati Tags:
SharePoint,
SPC 2009
Prosegue e si arricchisce di contenuti la serie di articoli pubblicati su UGISP (link http://www.ugisharepoint.it/) che fanno parte della guida alle Variations (alias Variations a 360°)
Questi sono gli articoli già pubblicati:
4 #1: Introduzione alle Variations: cosa sono e come usarle.
4 #2: Guida alla configurazione delle Variations.
4 #3: Come configurare delle Variation Labels. NOVITA’ (25/01/09)
4 #4: Variations page layout e logiche base di ridirezione. NOVITA’ (06/02/09)
4 #5: Variation logs: per monitorare quello che accade. NOVITA’ (15/02/09)
Sono già pronti ma richiedono ulteriori revisioni:
4 #6: Variation jobs: come avvengono le repliche dei siti e delle pagine.
4 #7: I meccanismi interni delle Variations.
4 #8: Le Variations via object model.
Da qualche settimana mi sono iscritto e sto usando regolarmente twitter. Nonostante la larga adozioni negli U.S.A., da noi in Italia non ha ancora preso piede. Molta gente è titubante e lo trova semplicemente un’altro sito di social network e forse anche molto, troppo banale. C’è da dire che anche FaceBook ha una funzionalità molto simile a quella di twitter, sto parlando del my status, e che su FaceBook si posso fare tante altre cose.
Qual’è lo scopo di usare questo social network?
Naturalmente ce ne sono molteplici a partire da quello più semplice che è commentare e condividere con gli amici quello che si sta facendo, si è fatto o si farà, tutto rigorosamente in tempo reale. Onestamente pensare di sfruttarlo per fare ciò, è molto riduttivo. Non lo trovo molto stimolante aggiornare il mio stato e leggere quello che scrivono gli amici. Ci sono altri modi per comunicare con gli amici, in primis i tool di IM.
Altra cosa è invece fruttarlo per comunicare di particolari argomenti con appassionati di tutto il mondo. Non è detto gli argomenti debbano necessariamente essere tecnologici ma anche hobbies, passioni e sport in generale.
Come entrare nel network ‘giusto’?
Prima cosa occorre creare un profilo specificando nei dati personali ciò di cui si vuole parlare. E’ molto importante inserire parole chiave perchè queste saranno poi ricercabili da altri utenti. Successivamente scrivere i twit, i piccoli messaggi di massimo 140 caratteri, descrivendo ciò che si vuole discutere: argomenti, presentare se stessi, ecc…. Questi primi twit potranno essere visti da tutti gli utenti internet e quindi è importante essere regolari nello scriverli. Inutile mandare 10 twit in un giorno e poi non scrivere più nulla per una settimana, gli altri prima di aggiungervi al loro network considereranno anche questo.
Inoltre consiglio di partecipate attivamente al network rispondendo agli altri utenti ma sempre con moderazione e cognizione. In poche parole, non monopolizzate le discussioni!
Un’altro modo per usare twitter è creare rumors per un blog o un sito annunciando la pubblicazione di nuovi articoli e post. Naturalmente non è sufficiente fare ciò per essere seguiti, occorre partecipare attivamente aggiornando il proprio stato e rispondendo ad altri.
Personalmente lo sto usando per scrivere ad esperti e appassionati di SharePoint. Spesso si intavolano anche veri e propri botta e risposta su particolari argomenti tecnici, si chiedono consigli e suggerimenti, si segnalano siti internet o post (non necessariamente i propri). Tutto ciò lo faccio per essere sempre ‘sul pezzo’ ed è un’interessante opportunità per conoscere e rimanere in contatto gente di tutto il mondo perchè non si parla solo di SharePoint naturalmente. Spesso capita di avere delle idee e di volerle condividere, ma non sempre sia ha il tempo di scrivere un post sul blog ed è proprio in questo caso che twitter interviene.
Se ti ho incuriosito iscriviti e aggiungimi tra i tuoi followers.
Technorati Tags:
Twitter,
SharePoint
E’ passato un anno da quanto ho pubblicato la feature MOSSUserMembership su codeplex e vedo che le statistiche di download sono confortanti (oltre 500 download) per una cosa del genere. Onestamente mi aspettavo solo qualche decina di download e devo ammettere che publicare su codeplex sia già un bel trampolino di lancio; il resto lo fanno i motori di ricerca e le persone che segnalano sul proprio blog di averla usata e le impressioni.
Sto pensando ad una nuova release per aggiungere qualche funzionalità e correggere piccoli bachi. Se qualcuno ha segnalazioni/indicazioni, si di faccia avanti rispondendo a questo post o direttamente su codeplex.
… ma cos’è MossUserMembership?
E’ una fuzionalità, tendenzialmente amministrativa, che permette di gestire rapidamente l’appartenza di un utente a gruppi SharePoint. La feature permettere, con un solo click, di aggiungere e rimuovere un utente da molteplici gruppi.
Screenshot

More Posts
« Previous page -
Next page »