Fabio Santini.NET Senior Developer Evangelist
2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event Handler) Componenti (Web Parts e Event Handler) Custom Templates Custom Templates Site Definitions Site Definitions Web Services Web Services
Web Parts
4 "Hello World" Creare una classe che… Creare una classe che… Eredita da Microsoft.SharePoint.WebPartPages.WebPart Eredita da Microsoft.SharePoint.WebPartPages.WebPart Overrides del metodo RenderWebPart Overrides del metodo RenderWebPart Utilizza HtmlTextWriter Utilizza HtmlTextWriter using Microsoft.SharePoint.WebPartPages; using System.Web.UI; namespace AcmeWebParts { public class WebPart1 : WebPart{ protected override void RenderWebPart(HtmlTextWriter output) { output.Write("Hello, World"); }
5 Assembly Deployment Copiare lassembly nella cartella \bin del virtual server root Copiare lassembly nella cartella \bin del virtual server root Solo in ambiente di sviluppo Solo in ambiente di sviluppo Global Assembly Cache (GAC) Global Assembly Cache (GAC) Raccomandata in ambiente di produzione Raccomandata in ambiente di produzione
6 Web Parts come Safe Controls Web Parts sono eseguite dallengine di SharePoint Web Parts sono eseguite dallengine di SharePoint Web Part vengono eseguite in Safe Mode Web Part vengono eseguite in Safe Mode Sottosistema di security integrato in WSS Sottosistema di security integrato in WSS Lamministratore DEVE modificare il web.config per abilitare una nuova Web Part Lamministratore DEVE modificare il web.config per abilitare una nuova Web Part <SafeControl Assembly="AcmeWebParts" Namespace="AcmeWebParts" TypeName="*" Safe="True" />
7 Web Parts e CAS Le Web Parts nella GAC sono considerate fidate dalla CAS Le Web Parts nella GAC sono considerate fidate dalla CAS Web Parts nella \bin sono eseguite in sandbox Web Parts nella \bin sono eseguite in sandbox Sandbox controllata dalla Code Access Security.Net (CAS) Sandbox controllata dalla Code Access Security.Net (CAS) Sandbox configurata nellelemento del web.config Sandbox configurata nellelemento del web.config 3 Livelli di sicurezza 3 Livelli di sicurezza 1) WSS_Minimum (default) 1) WSS_Minimum (default) 2) WSS_Medium 2) WSS_Medium 3) Full 3) Full -->
8 Importare Web Part Dal menù Modify Shared Web Page Dal menù Modify Shared Web Page Scegliere Add Web Part >> Import Scegliere Add Web Part >> Import
9 Debugging di una Web Part Attach sul worker process di SharePoint (w3wp.exe) Attach sul worker process di SharePoint (w3wp.exe) importare i break points in Visual Studio.NET importare i break points in Visual Studio.NET
10 Custom Properties Le proprietà sono aggiunte alla definizione della Web Part Le proprietà sono aggiunte alla definizione della Web Part sono usate per memorizzare informazioni sono usate per memorizzare informazioni hanno un valore di default hanno un valore di default possono essere modificate direttamente dal designer di Web Part in Sharepoint possono essere modificate direttamente dal designer di Web Part in Sharepoint vengono persisite in due modi : shared o per-user vengono persisite in due modi : shared o per-user [ XmlRoot(Namespace="AcmeWebParts") ] public class WeatherReportWebPart : WebPart { protected string _ZipCode = s trin g.Empty; [ WebPartStorage(Storage.Personal), DefaultValue(""), Browsable(true), FriendlyName("Zip Code"), Category("Acme Custom Props") ] public string ZipCode { get { return _ZipCode; } set { _ZipCode = value; } }
11 Impostare le Custom Properties Lutente può modificare le custom property Lutente può modificare le custom property WSS fornisce un interfaccia allinterno del browser WSS fornisce un interfaccia allinterno del browser Linterfaccia può essere estesa scrivendo dei custom tool Linterfaccia può essere estesa scrivendo dei custom tool
12 File.DWP Contiene i metadati necessari alla configurazione Contiene i metadati necessari alla configurazione First AcmeCorp WebPart AcmeCorp's very first Web Part AcmeWebParts AcmeWebParts.WebPart
Event Handler
14 Document Library Events (1) Posso essere avvertito quando cambia un documento in WSS? Posso essere avvertito quando cambia un documento in WSS? Creare un Assembly.NET Creare un Assembly.NET Implementare IListEventSink Implementare IListEventSink Registrare nella Global Assembly Cache (GAC) Registrare nella Global Assembly Cache (GAC) In WSS In WSS Abilitare la notifica degli eventi a livello di server Abilitare la notifica degli eventi a livello di server Configurare la Document Library per inviare le notifiche al nostro assembly Configurare la Document Library per inviare le notifiche al nostro assembly Specificare il fully qualified name Specificare il fully qualified name
15 Document Library Events (2) IListEventSink Interface IListEventSink Interface OnEvent method al cambiamento di un doc OnEvent method al cambiamento di un doc Gli eventi sono asincroni Events Gli eventi sono asincroni Events No delegates / callbacks No delegates / callbacks Notifiche Notifiche Edited Edited Moved Moved Renamed Renamed Uploaded Uploaded Checked in Checked in Checked out Checked out Check-out cancelled Check-out cancelled Copied Copied Deleted Deleted
16 Object Model List Data List Data SPField SPField SPFieldCollection SPFieldCollection SPListCollection SPListCollection SPList SPList SPListItemCollection SPListItemCollection SPListItem SPListItem SPView SPView Administration Administration SPGlobalAdmin SPGlobalAdmin SPQuota SPQuota SPVirtualServer SPVirtualServer Security Security SPGroup SPGroup SPGroupCollection SPGroupCollection SPSite SPSite SPUser SPUser SPUserCollection SPUserCollection Documents Documents SPDocumentLibrary SPDocumentLibrary SPFile SPFile SPFileCollection SPFileCollection SPFolder SPFolder
Site definitions
18 Site Definition Files C:\Program Files \Common Files \Microsoft Shared \web server extensions \60\template C:\Program Files \Common Files \Microsoft Shared \web server extensions \60\template File Scopes File Scopes Server Language Server Language E.g., \1033 E.g., \1033 Site Definition Site Definition E.g., \1033\STS E.g., \1033\STS List Definition List Definition E.g., \1033\STS\LISTS\DOCLIB E.g., \1033\STS\LISTS\DOCLIB Enumeration of site definitions Site definition List definition Minimalist site definition
19 Site Definition Files WEBTEMP*.XML WEBTEMP*.XML Per lingua Per lingua Definisce i tipi di sito Definisce i tipi di sito Contiene i puntatori a più ONET.XML Contiene i puntatori a più ONET.XML ONET.XML ONET.XML Definisce un sito Definisce un sito Definisce proprietà e navigazione Definisce proprietà e navigazione Contiene i puntatori a più SCHEMA.XML Contiene i puntatori a più SCHEMA.XML SCHEMA.XML SCHEMA.XML Definisce una lista Definisce una lista Definisce proprietà, schema e viste Definisce proprietà, schema e viste
Custom Templates
21 Custom Templates Una customizzazione di una site definition Una customizzazione di una site definition Scopo Scopo Creare nuovi template senza modificare il server Creare nuovi template senza modificare il server Impostare nuovi template e contenuti per la creazione di Site Impostare nuovi template e contenuti per la creazione di Site Meno pericolosi dei Custom Site Meno pericolosi dei Custom Site Da considerarsi il delta tra un Site Definition ed il risultato utente Da considerarsi il delta tra un Site Definition ed il risultato utente Sono legati ad un paritcolare Site Definition Sono legati ad un paritcolare Site Definition Integrati in FrontPage 2003 Integrati in FrontPage 2003
Web Service
23 I WebServices espongono il modello a oggetti lato server I WebServices espongono il modello a oggetti lato server Consentono il controllo completo di liste, siti, viste, ecc… Consentono il controllo completo di liste, siti, viste, ecc… Le funzionalità sono state ottimizzate per minimizzare le transazioni Le funzionalità sono state ottimizzate per minimizzare le transazioni Microsoft Office 2003 (Microsoft Excel, DataSheet, Microsoft Word, Microsoft Outlook ®, Microsoft FrontPage ®, etc.) Sono stati integrati utilizzando I Web Service esposti Microsoft Office 2003 (Microsoft Excel, DataSheet, Microsoft Word, Microsoft Outlook ®, Microsoft FrontPage ®, etc.) Sono stati integrati utilizzando I Web Service esposti Web Services in WSS
24 Web Service GetListCollection GetListCollection GetListItems GetListItems GetWebCollection GetWebCollection UpdateList UpdateList UpdateListItems UpdateListItems GetWebInfo GetWebInfo GetWebPart GetWebPart GetSmartPageDocument GetSmartPageDocument And more… And more…
25 Getting Started with Web Services Creare una Windows application Creare una Windows application Microsoft Visual Studio ®, Add Web Reference Microsoft Visual Studio ®, Add Web Reference lists.asmx - Lists lists.asmx - Lists UserGroup.asmx – users and groups UserGroup.asmx – users and groups Webs.asmx – Web information Webs.asmx – Web information Views.asmx – view information Views.asmx – view information Subscription.asmx – subscriptions Subscription.asmx – subscriptions
26 Approfondimenti SharePoint Products and Technologies Developer Center SharePoint Products and Technologies Developer Center GotDotNet GotDotNet MSD2D MSD2D WSS FAQ WSS FAQ SharePoint customization SharePoint customization Barry's Blog Barry's Blog
27 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.