ASP.NET Dynamic Data »Andrea Dottor – Microsoft MVP ASP/ASP.NET.
.NET Development su tecnologia SharePoint Parte 2 ASP.NET Web Part, Master Page, Data Rendering...
-
Upload
graziana-grosso -
Category
Documents
-
view
217 -
download
0
Transcript of .NET Development su tecnologia SharePoint Parte 2 ASP.NET Web Part, Master Page, Data Rendering...
.NET Development su .NET Development su tecnologia SharePoint tecnologia SharePoint Parte 2Parte 2
ASP.NET Web Part, Master Page, Data Rendering
Paolo PialorsiPaolo [email protected]@devleap.it
DevLeapDevLeaphttp://www.devleap.com/http://www.devleap.com/
Roberto BrunettiRoberto [email protected]@devleap.it
DevLeapDevLeaphttp://www.devleap.com/http://www.devleap.com/
ASP.NET IntegrationASP.NET IntegrationSP v3 <-> ASP.NET 2.0
Maggiore integrazione
Ci sono ancora alcune differenze
SharePoint haModello basato su template
Un utente può editare le pagine
ASP.NET 2.0ASP.NET 2.0
Windows Windows SharePoint SharePoint Services Services
“v3”“v3”
Windows Windows SharePoint SharePoint Services Services
“v2”“v2”
ASP.NET 1.1ASP.NET 1.1
SharePoint per sviluppatori SharePoint per sviluppatori ASP.NETASP.NET
Differenze nel modello di securityI Knowledge Worker possono editare le pagine
Molti siti, basati su Template
No-Code pageNo-Code Behind pageSafeControls
Template Template ASPX PagesASPX Pages
_layouts _layouts Application Application ASPX PagesASPX Pages
Customized Customized ASPX Pages ASPX Pages
Web Front Web Front EndEnd
Content Content DatabaseDatabase
IntegrazioneIntegrazioneIIS -> ASP.NET
AutenticazioneWindows AuthenticationForms Authentication
Membership
Per entrambi Role Manager
Web Parts
Master Page
Web PartsWeb Parts
Digital Dashboard del 99in chiave .NET
ObiettivoObiettivo
Per l’utenteUI flessibileContenuto personalizzato
Per lo sviluppatoreTon di pre-written code
Personalizzazione di UI
Customizzazione semplice
Contenuto complesso
Plumbing già creato !
ASP.NET Web PartsASP.NET Web PartsBuilding Block per siti dinamiciUtilizzabile in qualunque web app
Portal, contenuti, intranet, internet Supporto Windows e Form Authentication
Integrazione con ASP.NET ControlOgni controllo può essere una Web PartConnessioni semplici e potenti
Flessibile e estendibileSupporto per servizi ASP.NET
Personalization, Role Management, Membership, Profile.. ecc
Visual Studio Designer Full !
Giro sul sitoGiro sul sito
DLASPNET20/WebParts
Display ModeDisplay Mode
BrowseDesignDesign
EditEditCatalogCatalog
ConnectionConnection
Il Cervello: Web Part Il Cervello: Web Part ManagerManager
Non-visual<ASP:WebPartManager runat=server ... />
Traccia lo stato della paginaBrowse, Catalog, Connect, Design, Edit
Gestisce le Zone e i ControlliTraccia le Part in ogni Zone
Gestisce le Web PartAdd, Close, Delete, Move
Gestisce le comunicazioni fra controlli
Obbligatorio !
WebPartZoneWebPartZone
Gestore di layout per server controlSezione/Porzione UI
Una Zone può contenere più controlli
Rendering di elementi UIBorder, Title, Verbs
Una pagina può contenere più ZoneUna Zone è legata al WebPartDisplayMode
Edit visualizza EditorZone
Catalog visualizza CatalogZone
Connection visualizza ConnectionZone
WebPartZone sempre visualizzato
Zone LayoutZone Layout
WebPartZoneWebPartZone
EditorZoneEditorZone
Zone LayoutZone Layout
DLASPNET20/WebParts
PartPart
Qualunque server side control o user control si comporta come Web Part
System.Web.UI.WebControls.WebPartClasse baseDefinisce come l’utente interagisce con la Web PartCustom verbsSettaggi per titolo e Catalog
Built-in Control per le funzionalità in una zona
Part: ContentPart: ContentWeb Part ControlWeb Part Control
LayO
utE
dit
orP
art
LayO
utE
dit
orP
art
AppearanceEditorPartAppearanceEditorPartUser ControlUser Control
Litera
lLite
ral
UI ElementUI Element
VerbElementi che consentono azioniWebPartZone fornisce
Close, Minimize, Restore, Help, Edit, Connect, Export
Custom Verb derivando WebPart
TitleTitle VerbsVerbs
Chrome
Chrome
ContentContent
TitleIconTitleIcon
Costruire una vera Web Costruire una vera Web PartPartDerivare da
System.Web.UI.WebControls.WebPartSystem.Web.UI.Control
O qualunque derivata
Aggiungere membri
Override ChildControlCreated/Render
Aggiungere a una Zone
Non usare ViewStateUsa Personalization in auto dietro le quinte
WebPart Base ClassWebPart Base ClassPiù controllo su tutto rispetto alle interfacce. Si può
Gestire Interazione con l’utenteAllowClose, AllowExport, AllowMinimize..etc
Aggiunta di custom verbIcona per titolo e CatalogoHelp mode e Help URLError Message per l’importazione
Container ControlDeriva da <asp:Panel>Può includere text, markup, e server side controlLavora anche fuori dalle WebPart !!!
PrevisioniWebPart.csPrevisioniWebPart.csDeriva da WebPartDefinisce proprietà Custom ZipCode
WebBrowsable
Personalizabile
WebDisplayNameSi vede anche nel Designer di VS 2005
WebDescriptionToolTip siulla riga
Per usarlo si registra come sempreProprietà esposta accessibile nel Designer di VS 2005
TextDisplayWebPart.csTextDisplayWebPart.cs
Tolgo il verbo Close e MinimizeIn Get proprietà AllowClose/Minimize
Override di RenderContentCrea Label
Aggiunge Label
Aggiunta di Verb “Save”Override Verbs
Per usarlo si registra come sempre
In DesignMode provare Verb
CatalogModeCatalogModeExport/Import
ExportMode=“All” in Default.aspxSu WebPart “vere”
Serve anche web.config <webParts enableExport=“true”>
Es su PrevisioniWebPart
Da codice ExportMode=WebPartExportMode.All
SharePoint Web PartSharePoint Web Part
Tipi di SharePoint Web Tipi di SharePoint Web PartPartASP.NET Web Part
Microsoft.Web.UI.WebControls.WebParts.WebPart
WSS Web PartMicrosoft.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
Limitazioni sulla Limitazioni sulla integrazioneintegrazioneSi possono usare le Web Part
ASP.NET 2.0Ma 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 pagineSi possono creare però Wrapper per ASCX
Forse nella versione finale
Creare una Web PartCreare una Web Part
[DefaultProperty(“ImageLink"), ToolboxData("<{0}:DemoWP runat=server></{0}:DemoWP>")][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#
L’albero genealogicoL’albero genealogico
Creare una WebPartCreare una WebPart
Definire i controlli childDefinire i controlli childI 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 metodoprotected 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
Strong Name e GUIDStrong Name e GUID
sn –k NomeChiave.snk
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyKeyFile(“keyfile.snk")]
[Guid("12F8AFE7-3E99-4fd1-B6AC-C5F36F6E6B06")]
Deployment manuale Deployment manuale (development)(development)
Se siamo in development possiamoProject Output: .\bin\ del web site
Copiare file DWP nella BIN
Definire nel web.config del web site l’assembly come SafeControl
<?xml version="1.0" encoding="utf-8"?><WebPart xmlns="http://schemas.microsoft.com/WebPart/v2" >
<Title>First Simple Web Part</Title><Description>This is a first simple Web Part.</Description><Assembly>FirstSimpleWebPart, Version=1.0.0.1, Culture=neutral,
PublicKeyToken=684a1baf4f6ac767</Assembly><TypeName>FirstSimpleWebPart.FirstWP</TypeName>
</WebPart>
XML
<SafeControl Assembly="FirstSimpleWebPart, Version=1.0.0.1, Culture=neutral, PublicKeyToken=684a1baf4f6ac767" Namespace="FirstSimpleWebPart"
TypeName="*" Safe="True" />
XML
Deployment via .CABDeployment via .CABCreare un file .CAB
Da VS.NET creare un progetto del gruppo “Setup and Deployment” di tipo “Cab Project”
Inserire nel fileAssembly.DLLManifest.XMLRisorseWebPart.DWP
Cioè scegliere dal progetto della Web PartPrimary OutputContent Files
Usare STSADM.EXE per il deployment (vedi poi...)
STSADM.EXE –o *wppackSTSADM.EXE –o *wppackSTSADM.EXE è il tool a riga di comando per la gestione di WSSI comandi relativi alle Web Part sono:
addwppack –f file.cabAggiunge un nuovo Web Part Package (CAB)
deletewppack –name file.cabRimuove un Web Part Package
enumwppacksElenca i Web Part Package installati
Per esempio per installare un WPPack:STSADM.EXE –o addwppack –f file.cab –url http://site/
Web Part deploymentWeb Part deployment
SicurezzaSicurezzaA partire da ASP.NET 1.1 è possibile sfruttare livelli di trust personalizzatiWSS definisce dei custom Permission
SharePointPermission (ObjectModel, UnsafeSaveOnGet , Unrestricted)WebPartPermission (Connections, Unrestricted)
I livelli di trust di ASP.NET sonoFullHighMediumLowMinimal
WSS definisce ancheWSS_MinimalWSS_Medium
ConseguenzeConseguenzeA volte le Web Part e le estensioni non sono autorizzate a funzionare
SecurityException: SharePointPermission
Conviene gestire l’errore 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
Master PageMaster Page
Master PageMaster PageDefiniscono 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)Master Page “Chrome” (default.master)
Content Page Content Page (default.aspx)(default.aspx)
Master Master Pages Pages PlaceholderPlaceholder
ASP.NET 2.0 Master PageASP.NET 2.0 Master PagePossono essere nidificate
MasterMaster di Sezione 1
Pagine sezione 1
Master di Sezione 2Pagine sezione 2
Possono usare Property OverrideMeccanismo nativo dei controlli di ASP.NET 2.0 per modificare il valore di una proprietà in base al browser che effettua la richiestaEs. Se FireFox -> Master = “Color.master”
Se Pocket IE -> Master = “Little.master”
Master Pages In WSSMaster Pages In WSSOgni pagina punta a una Master PageOgni 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 SiteLe Application Page per default la directory _layout
Site metadata indicates where WSS looks for a master page
Master Page TokenMaster Page TokenDue token dinamici
~masterurl/default.masterPunta a spweb.MasterUrl
~masterurl/custom.masterPunta a spweb.CustomMasterUrl
Due token statici~sitecollection/default.master~site/default.master
SharePoint Page LayoutSharePoint Page Layout
default.aspx
spweb.MasterUspweb.MasterUrlrl
.aspx .master
Content Pages - http://myserver/
/ /_catalogs/masterpage/allitems.aspx
.aspx
/shared documents/
create.aspx
.aspx
/_layouts/
Application Pages
.master
/_layouts/
application.master
File System - \.. \web server extensions\12\
default.aspxSiteTemplates\STS Global\
viewpage.aspx
Pages\
default.master
“ghosting”
default.master
Master Page customMaster Page custom
Extensibility PointExtensibility Point
CosaCosaToolbars, Menu, Pagine “Settings”
Link alle pagineUsare controlli ASP.NETsulle toolbarAssociate
List type
Content type
File Type
Content Type SettingsContent Type Settings
Site SettingsSite Settings
Central AdminCentral Admin
Display Form ToolBarDisplay Form ToolBar
View View ToolBarToolBar
Welcome Welcome MenuMenu
Site ActionsSite Actions
““ECB”ECB”
Visual Studio ExtensionsVisual Studio Extensionsfor Sharepointfor Sharepoint
““Visual Studio Extensions”Visual Studio Extensions”
Supporto operativo a chi sviluppa soluzioni per SharePointAggiunge 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)
Servirà per creareServirà per creare
Web Part
Site Definition
List Definition
Feature Definition
Event Handler
Workflow Activity
MobilityMobility
Mobile Page ArchitectureMobile Page Architecture
default.aspx
mbllists.aspx
bloghome.aspx
view.aspx dispform.aspx
editform.aspx
newform.aspx
newpost.aspx disppost.aspx
viewcomment.aspx
newcomment.aspx
delete.aspx
Team Site Mobile Pages
Blog Site Mobile Pages
Redirect
http://mysitename/m http://mysitename/_layouts/mobile/default.aspx
Usa ASP.NET Property OverrideCambia Home Page
Con redirect
In base al template
Personalizzabile daWeb Template Type
List Template Type
Field Type
Ulteriori Ulteriori approfondimenti…approfondimenti…
http://www.microsoft.com/italy/msdn/
http://msdn.microsoft.com/office/future/
http://www.netfx3.com/
http://wf.netfx3.com/
http://www.devleap.it/
Grazie!Grazie!Domande?
Compilate il form di valutazione…
© 2006 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.