fabio santini.net senior developer evangelist. 2 sharepoint customizzazione 4 principali modalità 4...

27
Fabio Santini Fabio Santini .NET Senior Developer Evangelist .NET Senior Developer Evangelist

Upload: gavino-magnani

Post on 01-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

Fabio SantiniFabio Santini.NET Senior Developer Evangelist.NET Senior Developer Evangelist

Page 2: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

2

SharePoint CustomizzazioneSharePoint Customizzazione

4 principali modalità4 principali modalità Componenti (Web Parts e Event Handler)Componenti (Web Parts e Event Handler) Custom TemplatesCustom Templates Site DefinitionsSite Definitions Web ServicesWeb Services

Page 3: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

Web PartsWeb Parts

Page 4: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

4

"Hello World""Hello World" Creare una classe che…Creare una classe che…

Eredita da Eredita da Microsoft.SharePoint.WebPartPages.WebPartMicrosoft.SharePoint.WebPartPages.WebPart Overrides del metodo Overrides del metodo RenderWebPartRenderWebPart Utilizza Utilizza HtmlTextWriterHtmlTextWriterusing Microsoft.SharePoint.WebPartPages;

using System.Web.UI;

namespace AcmeWebParts { public class WebPart1 : WebPart { protected override void RenderWebPart(HtmlTextWriter output) { output.Write("Hello, World"); } }}

Page 5: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

5

Assembly DeploymentAssembly Deployment Copiare l’assembly nella cartella Copiare l’assembly nella cartella \bin\bin del del

virtual server rootvirtual server root Solo in ambiente di sviluppoSolo in ambiente di sviluppo

Global Assembly Cache (GAC)Global Assembly Cache (GAC) Raccomandata in ambiente di produzioneRaccomandata in ambiente di produzione

Page 6: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

6

Web Parts come Safe ControlsWeb Parts come Safe Controls Web Parts sono eseguite dall’engine di Web Parts sono eseguite dall’engine di

SharePointSharePoint Web Part vengono eseguite in Safe ModeWeb Part vengono eseguite in Safe Mode

Sottosistema di security integrato in WSSSottosistema di security integrato in WSS L’amministratore DEVE mL’amministratore DEVE modificare il web.config per abilitare odificare il web.config per abilitare

una nuova Web Partuna nuova Web Part<!– web.config in root directory of hosting virtual server -->

<configuration> <SharePoint> <SafeControls> <SafeControl Assembly="AcmeWebParts" Namespace="AcmeWebParts" TypeName="*" Safe="True" /> </SafeControls> </SharePoint></configuration>

Page 7: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

7

Web Parts e CASWeb Parts e CAS Le Le Web Parts nella GAC sono considerate fidate dalla CASWeb Parts nella GAC sono considerate fidate dalla CAS Web Parts nella \bin sono eseguite in sandboxWeb 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 nell’elemento Sandbox configurata nell’elemento <trust><trust> del web.config del web.config 3 Livelli di sicurezza3 Livelli di sicurezza

1) WSS_Minimum (default)1) WSS_Minimum (default) 2) WSS_Medium2) WSS_Medium 3) Full3) Full

<!– web.config in root directory of hosting virtual server -->

<configuration> </system.web> <!-- <trust level="WSS_Minimal" originUrl="" /> --> <trust level="WSS_Medium" originUrl="" />

</system.web></configuration>

Page 8: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

8

Importare Web PartImportare Web Part Dal menù Dal menù Modify Shared Web PageModify Shared Web Page

Scegliere Scegliere Add Web PartAdd Web Part >> >> ImportImport

Page 9: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

9

Debugging di una Web PartDebugging di una Web Part Attach sul worker process di SharePoint Attach sul worker process di SharePoint

(w3wp.exe)(w3wp.exe) importare i break points in Visual Studio .NETimportare i break points in Visual Studio .NET

Page 10: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

10

Custom PropertiesCustom Properties Le proprietà sono aggiunte alla definizione della Web PartLe proprietà sono aggiunte alla definizione della Web Part

sono usate per memorizzare informazioni sono usate per memorizzare informazioni hanno un valore di defaulthanno un valore di default possono essere modificate direttamente dal designer di Web possono essere modificate direttamente dal designer di Web

Part in SharepointPart in Sharepoint vengono persisite in due modi : shared o per-uservengono persisite in due modi : shared o per-user

[ XmlRoot(Namespace="AcmeWebParts") ]public class WeatherReportWebPart : WebPart {

protected string _ZipCode = string.Empty;

[ WebPartStorage(Storage.Personal), DefaultValue(""), Browsable(true), FriendlyName("Zip Code"), Category("Acme Custom Props") ] public string ZipCode { get { return _ZipCode; } set { _ZipCode = value; } } }}

Page 11: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

11

Impostare le Custom PropertiesImpostare le Custom Properties L’utente può modificare le custom L’utente può modificare le custom

propertyproperty WSS fornisce un interfaccia all’interno del WSS fornisce un interfaccia all’interno del

browserbrowser L’interfaccia può essere estesa scrivendo dei L’interfaccia può essere estesa scrivendo dei

custom toolcustom tool

Page 12: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

12

File .DWPFile .DWP Contiene i metadati necessari alla configurazioneContiene i metadati necessari alla configurazione

<?xml version="1.0" encoding="utf-8"?><WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >

<!– required web part properties --> <Title>First AcmeCorp WebPart</Title> <Description>AcmeCorp's very first Web Part</Description> <Assembly>AcmeWebParts</Assembly> <TypeName>AcmeWebParts.WebPart1</TypeName>

<!– extended web part properties --> <Zipcode xmlns="AcmeWebParts">98052</ZipCode>

</WebPart>

Page 13: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

Event HandlerEvent Handler

Page 14: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

14

Document Library Events (1)Document Library Events (1)

Posso essere avvertito quando cambia Posso essere avvertito quando cambia un documento in WSS?un documento in WSS?

Creare un Assembly .NETCreare un Assembly .NET Implementare Implementare IListEventSink IListEventSink Registrare nella Global Assembly Cache (GAC)Registrare nella Global Assembly Cache (GAC)

In WSSIn WSS Abilitare la notifica degli eventi a livello di serverAbilitare la notifica degli eventi a livello di server Configurare la Document Library per inviare le notifiche al Configurare la Document Library per inviare le notifiche al

nostro assemblynostro assembly Specificare il fully qualified nameSpecificare il fully qualified name

Page 15: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

15

Document Library Events (2)Document Library Events (2)

IListEventSink InterfaceIListEventSink Interface OnEvent method al cambiamento di un docOnEvent method al cambiamento di un doc Gli eventi sono asincroni EventsGli eventi sono asincroni Events No delegates / callbacksNo delegates / callbacks

NotificheNotifiche

Edited Edited Moved Moved Renamed Renamed UploadedUploaded

Checked in Checked in Checked out Checked out Check-out cancelled Check-out cancelled Copied Copied DeletedDeleted

Page 16: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

16

Object ModelObject Model List DataList Data

SPFieldSPField SPFieldCollectionSPFieldCollection SPListCollectionSPListCollection SPListSPList SPListItemCollectionSPListItemCollection SPListItemSPListItem SPViewSPView

AdministrationAdministration SPGlobalAdminSPGlobalAdmin SPQuotaSPQuota SPVirtualServerSPVirtualServer

SecuritySecurity SPGroupSPGroup SPGroupCollectionSPGroupCollection SPSiteSPSite SPUserSPUser SPUserCollectionSPUserCollection

DocumentsDocuments SPDocumentLibrarySPDocumentLibrary SPFileSPFile SPFileCollectionSPFileCollection SPFolderSPFolder

Page 17: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

Site definitionsSite definitions

Page 18: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

18

Site Definition FilesSite Definition Files

C:\Program FilesC:\Program Files\Common Files\Common Files\Microsoft Shared\Microsoft Shared\web server \web server

extensionsextensions\60\template\60\template

File ScopesFile Scopes Server Language Server Language

E.g., E.g., \1033\1033 Site Definition Site Definition

E.g., E.g., \1033\STS\1033\STS List DefinitionList Definition

E.g., E.g., \1033\STS\LISTS\\1033\STS\LISTS\DOCLIBDOCLIB

Enumeration of site definitions

Site definition

List definition

Minimalistsite definition

Page 19: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

19

Site Definition FilesSite Definition Files WEBTEMPWEBTEMP**.XML.XML

Per linguaPer lingua Definisce i tipi di sitoDefinisce i tipi di sito Contiene i puntatori a più ONET.XMLContiene i puntatori a più ONET.XML

ONET.XMLONET.XML Definisce un sitoDefinisce un sito Definisce proprietà e navigazioneDefinisce proprietà e navigazione Contiene i puntatori a più SCHEMA.XMLContiene i puntatori a più SCHEMA.XML

SCHEMA.XMLSCHEMA.XML Definisce una listaDefinisce una lista Definisce proprietà, schema e visteDefinisce proprietà, schema e viste

Page 20: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

Custom TemplatesCustom Templates

Page 21: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

21

Custom TemplatesCustom Templates Una customizzazione di una site definitionUna customizzazione di una site definition ScopoScopo

Creare nuovi template senza modificare il serverCreare nuovi template senza modificare il server Impostare nuovi template e contenuti per la creazione Impostare nuovi template e contenuti per la creazione

di Sitedi Site Meno “pericolosi” dei Custom SiteMeno “pericolosi” dei Custom Site

Da considerarsi il delta tra un Site Definition ed il Da considerarsi il delta tra un Site Definition ed il risultato utenterisultato utente

Sono legati ad un paritcolare Site DefinitionSono legati ad un paritcolare Site Definition

Integrati in FrontPage 2003Integrati in FrontPage 2003

Page 22: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

Web ServiceWeb Service

Page 23: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

23

I WebServices espongono il modello a oggetti lato I WebServices espongono il modello a oggetti lato serverserver

Consentono il controllo completo di liste, siti, viste, Consentono il controllo completo di liste, siti, viste, ecc…ecc…

Le funzionalità sono state ottimizzate per minimizzare Le funzionalità sono state ottimizzate per minimizzare le transazionile transazioni

Microsoft Office 2003 (Microsoft Excel, DataSheet, Microsoft Office 2003 (Microsoft Excel, DataSheet, Microsoft Word, Microsoft OutlookMicrosoft Word, Microsoft Outlook®®, Microsoft , Microsoft FrontPageFrontPage®®, etc.) Sono stati integrati utilizzando I Web , etc.) Sono stati integrati utilizzando I Web Service espostiService esposti

Web Services in WSSWeb Services in WSS

Page 24: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

24

Web ServiceWeb Service GetListCollectionGetListCollection GetListItemsGetListItems GetWebCollectionGetWebCollection UpdateListUpdateList UpdateListItemsUpdateListItems GetWebInfoGetWebInfo GetWebPartGetWebPart GetSmartPageDocumentGetSmartPageDocument And more… And more…

Page 25: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

25

Getting Started with Web ServicesGetting Started with Web Services

Creare una Windows applicationCreare una Windows application Microsoft Visual StudioMicrosoft Visual Studio®®, “Add Web , “Add Web

Reference”Reference”

http://localhost/_vti_bin/http://localhost/_vti_bin/ lists.asmx - Listslists.asmx - Lists UserGroup.asmx – users and groupsUserGroup.asmx – users and groups Webs.asmx – Web informationWebs.asmx – Web information Views.asmx – view informationViews.asmx – view information Subscription.asmx – subscriptionsSubscription.asmx – subscriptions

Page 26: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

26

ApprofondimentiApprofondimenti

SharePoint Products and Technologies Developer CenterSharePoint Products and Technologies Developer Centerhttp://msdn.microsoft.com/SharePoint http://msdn.microsoft.com/SharePoint

GotDotNetGotDotNethttp://gotdotnet.com/team/sharepoint http://gotdotnet.com/team/sharepoint

MSD2DMSD2Dhttp://www.sharepointd2d.com/http://www.sharepointd2d.com/

WSS FAQ WSS FAQ http://wss.collutions.com/http://wss.collutions.com/

SharePoint customizationSharePoint customizationhttp://www.sharepointcustomization.com/default.aspxhttp://www.sharepointcustomization.com/default.aspx

Barry's BlogBarry's Bloghttp://Barracuda.net/BarrysBlog.aspxhttp://Barracuda.net/BarrysBlog.aspx

Page 27: Fabio Santini.NET Senior Developer Evangelist. 2 SharePoint Customizzazione 4 principali modalità 4 principali modalità Componenti (Web Parts e Event

27

© 2002 Microsoft Corporation. All rights reserved.© 2002 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.