La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

.NET Development su tecnologia SharePoint Parte 2 ASP.NET Web Part, Master Page, Data Rendering Paolo Pialorsi

Presentazioni simili


Presentazione sul tema: ".NET Development su tecnologia SharePoint Parte 2 ASP.NET Web Part, Master Page, Data Rendering Paolo Pialorsi"— Transcript della presentazione:

1 .NET Development su tecnologia SharePoint Parte 2 ASP.NET Web Part, Master Page, Data Rendering Paolo Pialorsi Roberto Brunetti

2 ASP.NET Integration SP v3 ASP.NET 2.0 Maggiore integrazione Ci sono ancora alcune differenze SharePoint ha Modello basato su template Un utente può editare le pagine ASP.NET 2.0 Windows SharePoint Services v3 Windows SharePoint Services v2 ASP.NET 1.1

3 SharePoint per sviluppatori ASP.NET Differenze nel modello di security I Knowledge Worker possono editare le pagine Molti siti, basati su Template No-Code page No-Code Behind page SafeControls Template ASPX Pages _layouts Application ASPX Pages Customized ASPX Pages Web Front End Content Database

4 Integrazione IIS -> ASP.NET Autenticazione Windows Authentication Forms Authentication Membership Per entrambi Role Manager Web Parts Master Page

5 Web Parts Digital Dashboard del 99 in chiave.NET

6 Obiettivo Per lutente UI flessibile Contenuto personalizzato Per lo sviluppatore Ton di pre-written code Personalizzazione di UI Customizzazione semplice Contenuto complesso Plumbing già creato !

7 ASP.NET Web Parts Building Block per siti dinamici Utilizzabile in qualunque web app Portal, contenuti, intranet, internet Supporto Windows e Form Authentication Integrazione con ASP.NET Control Ogni controllo può essere una Web Part Connessioni semplici e potenti Flessibile e estendibile Supporto per servizi ASP.NET Personalization, Role Management, Membership, Profile.. ecc Visual Studio Designer Full !

8 Giro sul sito DLASPNET20/WebParts

9 Display Mode Browse Design Edit Catalog Connection

10 Il Cervello: Web Part Manager Non-visual Traccia lo stato della pagina Browse, Catalog, Connect, Design, Edit Gestisce le Zone e i Controlli Traccia le Part in ogni Zone Gestisce le Web Part Add, Close, Delete, Move Gestisce le comunicazioni fra controlli Obbligatorio !

11 WebPartZone Gestore di layout per server control Sezione/Porzione UI Una Zone può contenere più controlli Rendering di elementi UI Border, Title, Verbs Una pagina può contenere più Zone Una Zone è legata al WebPartDisplayMode Edit visualizza EditorZone Catalog visualizza CatalogZone Connection visualizza ConnectionZone WebPartZone sempre visualizzato

12 WebPartZone Edit mode Connection modeCatalog mode All modes Zone* WebPartZoneBase* ToolZone* CatalogZone WebPartZone EditorZoneConnectionZone

13 Zone Layout WebPartZone EditorZone

14 Zone Layout DLASPNET20/WebParts

15 Part Qualunque server side control o user control si comporta come Web Part System.Web.UI.WebControls.WebPart Classe base Definisce come lutente interagisce con la Web Part Custom verbs Settaggi per titolo e Catalog Built-in Control per le funzionalità in una zona

16 Part EditorZone Edit Mode CatalogZone Catalog Mode WebPartZone All Modes Part WebPart CatalogPart AppearanceEditorPart GenericWebPart BehaviorEditorPart LayoutEditorPart EditorPart PropertyGridEditorPart ImportCatalogPart PageCatalogPart TemplateCatalogPart

17 Part: Content Web Part Control LayOutEditorPart AppearanceEditorPart User Control Literal

18 UI Element Verb Elementi che consentono azioni WebPartZone fornisce Close, Minimize, Restore, Help, Edit, Connect, Export Custom Verb derivando WebPart Title Verbs Chrome Content TitleIcon

19 Costruire una vera Web Part Derivare da System.Web.UI.WebControls.WebPart System.Web.UI.Control O qualunque derivata Aggiungere membri Override ChildControlCreated/Render Aggiungere a una Zone Non usare ViewState Usa Personalization in auto dietro le quinte

20 WebPart Base Class Più controllo su tutto rispetto alle interfacce. Si può Gestire Interazione con lutente AllowClose, AllowExport, AllowMinimize..etc Aggiunta di custom verb Icona per titolo e Catalogo Help mode e Help URL Error Message per limportazione Container Control Deriva da Può includere text, markup, e server side control Lavora anche fuori dalle WebPart !!!

21 PrevisioniWebPart.cs Deriva da WebPart Definisce proprietà Custom ZipCode WebBrowsable Personalizabile WebDisplayName Si vede anche nel Designer di VS 2005 WebDescription ToolTip siulla riga Per usarlo si registra come sempre Proprietà esposta accessibile nel Designer di VS 2005

22 TextDisplayWebPart.cs Tolgo il verbo Close e Minimize In Get proprietà AllowClose/Minimize Override di RenderContent Crea Label Aggiunge Label Aggiunta di Verb Save Override Verbs Per usarlo si registra come sempre In DesignMode provare Verb

23 CatalogMode Export/Import ExportMode=All in Default.aspx Su WebPart vere Serve anche web.config Es su PrevisioniWebPart Da codice ExportMode=WebPartExportMode.All

24 SharePoint Web Part

25 Tipi di SharePoint Web Part ASP.NET Web Part Microsoft.Web.UI.WebControls.WebParts.WebPart WSS Web Part Microsoft.SharePoint.WebPartPages.WebPart Client Connection, Caching, Work Item Usano XML Serialization Hybrid Web Part (v2) Microsoft.SharePoint.WebPartPages.WebPart Utilizzate per la migrazione Usano ASP.NET Serialization

26 Limitazioni sulla integrazione Si possono usare le Web Part ASP.NET 2.0 Ma non le pagine contenenti Web Part Occorre usare SPWebPartZones e SPWebPartManager Non esiste supporto built-in.ASCX (user controls) come Web Parts Si possono usare.ASCX nelle pagine Si possono creare però Wrapper per ASCX Forse nella versione finale

27 Creare una Web Part [DefaultProperty(ImageLink"), ToolboxData(" ")] [XmlRoot(Namespace="FirstSimpleWebPart")] public class DemoWP: Microsoft.SharePoint.WebPartPages.WebPart { [WebPartStorage(Storage.Shared), Resources("ImageLinkLiteral", "Advanced", "ImageLink"), XmlElement("ImageLink", IsNullable=false)] public string ImageLink { get; set; } } C#

28 Lalbero genealogico

29 Creare una WebPart

30 Definire i controlli child I controlli child possono essere definiti come membri privati/protected nel codice della classe, come nei WebControl Ridefinire CreateChildControls per configurarli e aggiungerli (Controls.Add) al controllo Il loro rendering sarà gestito dal metodo protected void RenderWebPart(HtmlTextWriter output); che internamente richiama RenderChildren La gestione degli eventi e del postback passa attraverso il motore di Sharepoint che fa da host delle nostre Web Part

31 Strong Name e GUID sn –k NomeChiave.snk [assembly: AssemblyVersion(" ")] [assembly: AssemblyKeyFile(keyfile.snk")] [Guid("12F8AFE7-3E99-4fd1-B6AC- C5F36F6E6B06")]

32 Parametri di configurazione Possiamo definire delle proprietà configurabili: [DefaultValue(Valore Predefinito)] [WebPartStorage(Storage.*)] Storage.Personal: il valore sarà salvato nello storage relativo a ciascun utente Storage.Shared: il valore sarà comune a tutti gli utent Storage.None: il valore non sarà salvato [Resources(Name, Category, Description)] [FriendlyName(Nome da mostrare")] [Category(Nome Categoria)] [Description(Contenuto del ToolTip)] [Browsable(true)] Indicare False per non mostrarlo e fornire un pannello custom [XmlElement(ElementName=nome_tag_da_serializz are)]

33 Stili di impaginazione Il file OWS.CSS C:\Program Files\Common Files\Microsoft Shared \web server extensions\60\TEMPLATE\LAYOUTS\1033\STYLES Contiene gli stili principali di WSS ms-toolbar ms-formlabel ms-formdescription ms-formbody ms-* us/spptsdk/html/tsovCSSStyles_SV asp?frame=true

34 Deployment manuale (development) Se siamo in development possiamo Project Output:.\bin\ del web site Copiare file DWP nella BIN Definire nel web.config del web site lassembly come SafeControl First Simple Web Part This is a first simple Web Part. FirstSimpleWebPart, Version= , Culture=neutral, PublicKeyToken=684a1baf4f6ac767 FirstSimpleWebPart.FirstWP XML XML

35 Deployment via.CAB Creare un file.CAB Da VS.NET creare un progetto del gruppo Setup and Deployment di tipo Cab Project Inserire nel file Assembly.DLL Manifest.XML Risorse WebPart.DWP Cioè scegliere dal progetto della Web Part Primary Output Content Files Usare STSADM.EXE per il deployment (vedi poi...)

36 STSADM.EXE –o *wppack STSADM.EXE è il tool a riga di comando per la gestione di WSS I comandi relativi alle Web Part sono: addwppack –f file.cab Aggiunge un nuovo Web Part Package (CAB) deletewppack –name file.cab Rimuove un Web Part Package enumwppacks Elenca i Web Part Package installati Per esempio per installare un WPPack: STSADM.EXE –o addwppack –f file.cab –url

37 Web Part deployment

38 Proprietà Estese e Dialog Possiamo definire proprietà con designer esterni Attributo: HtmlDesignerAttribute BuilderArguments: argomenti passati via JavaScript al popup HtmlEditorBuilderType Color => Constant used to refer to the designer color builder. Date => Constant used to refer to the designer date builder. File => Constant used to refer to the designer file builder. Font => Constant used to refer to the designer font builder. Picture => Constant used to refer to the designer picture builder. String => Constant used to refer to the designer string builder. BuilderUrl: la URL della finestra di popup DialogFeatures: per impostare il formato della finestra di popup Ridefinendo il metodo: protected virtual string GetCustomBuilder(string propertyName);

39 Proprietà Estese e Dialog Possiamo definire delle pagine HTML o ASPX dinamiche Inserire del codice JavaScript che gestisca: window.dialogArguments window.returnValue

40 Collegare Web Parts Possiamo creare delle Web Part connesse Master/Detail Possiamo lasciare la scelta allutente su come connettere le Web Part Utililzzare interfacce apposite Con BDC servirà sempre meno...

41 Form Digest Se definiamo un ASCX, o utilizziamo delle pagine ASPX nel codice possiamo inserire un controllo Form Digest di WSS Che ci permetterà di intervenire sulle informazioni relative al sito Web Altrimenti otterremmo un errore Questo serve per evitare che altri, non autorizzati, possano inviare in POST dei dati ad una pagina, modificando senza autorizzazione i dati ASPX

42 Sicurezza A partire da ASP.NET 1.1 è possibile sfruttare livelli di trust personalizzati WSS definisce dei custom Permission SharePointPermission (ObjectModel, UnsafeSaveOnGet, Unrestricted) WebPartPermission (Connections, Unrestricted) I livelli di trust di ASP.NET sono Full High Medium Low Minimal WSS definisce anche WSS_Minimal WSS_Medium

43 Conseguenze A volte le Web Part e le estensioni non sono autorizzate a funzionare SecurityException: SharePointPermission Conviene gestire lerrore e/o ricordarsi di configurare correttamente il livello di Trust Per esempio con WSS_Minimal una Web Part non può utilizzare il Managed Object Model Serve almeno WSS_Medium

44 Permessi e CAS A seconda del codice che abbiamo previsto potremmo avere problemi di security Ricordiamoci dei livelli di Trust predefiniti Ricordiamoci che possiamo definire dei nostri livelli di Trust Operazioni tipiche che richiedono modifiche al livello di Trust predefinito: Managed Object Model System.IO System.Data.SqlClient System.Management

45 Come ovviare al problema Adattare il livello di Trust del site Installare nella GAC (che di default ha FullTrust) gli assembly di estensione e delle Web Part Prevedere blocchi try...catch nelle istruzioni a rischio Creare custom policy file per gli assembly che necessitano di permessi particolari

46 Master Page

47 Definiscono Layout E volendo comportamento Le pagina puntano alla Master Page Master Page definisce Placeholder dove le pagine vanno a scrivere Master Page Chrome (default.master) Content Page (default.aspx)

48 Master Pages Placeholder

49 ASP.NET 2.0 Master Page Possono essere nidificate Master Master di Sezione 1 Pagine sezione 1 Master di Sezione 2 Pagine sezione 2 Possono usare Property Override Meccanismo nativo dei controlli di ASP.NET 2.0 per modificare il valore di una proprietà in base al browser che effettua la richiesta Es. Se FireFox -> Master = Color.master Se Pocket IE -> Master = Little.master

50 Master Pages In WSS Ogni pagina punta a una Master Page Ogni Site WSS ha una MPG (Gallery) I metadati del Site indicano dove vercare le Master Page Le Content Page per default usano la MPG del Site Le Application Page per default la directory _layout Site metadata indicates where WSS looks for a master page

51 Master Page Token Due token dinamici ~masterurl/default.master Punta a spweb.MasterUrl ~masterurl/custom.master Punta a spweb.CustomMasterUrl Due token statici ~sitecollection/default.master ~site/default.master

52 SharePoint Page Layout default.aspx spweb.MasterUrl.aspx.master Content Pages - //_catalogs/masterpage/ allitems.aspx.aspx /shared documents/ create.aspx.aspx /_layouts/ Application Pages.master /_layouts/ application.master File System - \.. \web server extensions\12\ default.aspx SiteTemplates\STSGlobal\ viewpage.aspx Pages\ default.master ghosting default.master

53 Master Page custom

54 Extensibility Point

55 Cosa Toolbars, Menu, Pagine Settings Link alle pagine Usare controlli ASP.NETsulle toolbar Associate List type Content type File Type

56 Content Type Settings Site Settings Central Admin

57 Display Form ToolBar View ToolBar Welcome Menu Site Actions ECB

58 Visual Studio Extensions for Sharepoint

59 Visual Studio Extensions Supporto operativo a chi sviluppa soluzioni per SharePoint Aggiunge dei template a VS2005 VS Project, Item Templates Build, Deploy, Debug WSS XSD con XML intellisense Forse ci sarà anche un tool per esportare i contenuti dei site da un ContentDB (devDB) ad un altro (productionDB)

60 Servirà per creare Web Part Site Definition List Definition Feature Definition Event Handler Workflow Activity

61 Mobility

62 Mobile Page Architecture Usa ASP.NET Property Override Cambia Home Page Con redirect In base al template Personalizzabile da Web Template Type List Template Type Field Type

63 Ulteriori approfondimenti…

64 Grazie! Domande? Compilate il form di valutazione…

65 © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Scaricare ppt ".NET Development su tecnologia SharePoint Parte 2 ASP.NET Web Part, Master Page, Data Rendering Paolo Pialorsi"

Presentazioni simili


Annunci Google