150 likes | 235 Vues
Comprehensive guide to enhance SharePoint Web Parts functionality for better user experience and performance. Learn about Web Part development, event model, GAC vs. bin deployment, version control, properties, and more.
E N D
Web Part Best Practices Sweden SharePoint User Group WictorWilén2009-02-09
Vem är jag? • Wictor Wilén • Systemarkitekt • Pdb Stockholm, tidigare iBizkit • wictor.wilen@ibizkit.se • http://www.pdb.se/ • http://www.wictorwilen.se/ • http://www.twitter.com/wictor/
Web Part Best Practices 10 steg till bättre Web Parts
#1 - WebPart eller WebPart? • Microsoft.SharePoint.WebPartPages.WebPart • Arv från SharePoint 2003 • Bakåtkompabilitet • System.Web.UI.WebControls.WebParts.WebPart • Kommer från ASP.NET 2.0 • Går att köra utan SharePoint • Framtiden (inga ändringar i ASP.NET 4.0 PDC 08 preview) • Begränsningar i Web Part Connections • Endast mellan Web Parts , i WebPartZones , på samma sida
#2 – Förstå Event Modellen • Grundläggande ASP.NET 2.0 kunskaper • Vad händer med en sida och kontroll när • sidan laddas • postas tillbaka (PostBack) • ViewState • Använd aldrig Render() • Använd CreateChildControls() • Övning • Lägg till alla events och stega igenom en laddning och en postback
#2 – Förstå Event Modellen GET Request PostBack OnInit OnInit ApplyPersonalization OnLoad LoadViewState CreateChildControls CreateChildControls OnPreRender OnLoad SaveViewState Control Events Render OnPreRender OnUnLoad SaveViewState Render OnUnLoad
#3 – GAC eller bin? • Utveckla i bin • Fungerar oftast då i GACen • Inte alltid tvärtom • Snabbare utveckling • App poolen recyclas automatiskt • Glöm inte CAS • GAC i drift • Prestanda, .NET letar i GACen först • Full Trust! • Multipla versioner • IISRESET • Signa alltid din assembly!
#4 – definiera din .webpart fil • Krävs för galleriet • Fördefiniera den • Standardvärden • Jämför med New->Populate Gallery • CatalogIconImageUrl – galleriet • (TitleIconImageUrl – Web Part headern) • AllowClose = false • Tar bort Close verbet
#5 – Utnyttja wpresources • Länkade resurser • Farm • ~/_wpresources • C:\Program Files\Common Files\microsoft shared\Web Server Extensions\wpresources\ • WebApplication • ~/wpresources • C:\InetPub\wwwroot\wss\VirtualDirectories\80\wpresources\ • Använd undermappar, med assemblyns namn • Deploy med ClassResouces/ClassResource i manifestet • Page.ClientScript.RegisterClientScriptInclude ("file.js", ”~/_wpresources/namespace/script.js”); • Inbyggda resurser • WebResource.axd
#6 – Paketera som feature • Enkel installation • Populerar Web Part galleriet, vid aktivering • Gruppering • OBS: Avaktivering tar inte bort den från WPG
#7 - Versionshantering • Använd inte: • [assembly: AssemblyVersion(”1.0.*.*")] • Använd Assembly Redirection • <runtime> <assemblyBinding> <dependentAssembly> <assemblyIdentity name="WebPart" publicKeyToken="ba74fbef247b82bb" culture="neutral" /> <bindingRedirect oldVersion="1.0.0.0-1.5.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding></runtime>
#8 – Web Part Properties • Tänk på scopet • [Personalizable(PersonalizationScope.Shared)][WebPartStorage(Storage.Shared)]public int Prop{ get; set; }
#9 – Editor Parts • Bättre användarupplevelse • Valideringar • Länkade Properties
#10 – några snabba tips • HTMLEncode • undvik script/SQL injections • ValidationGroup • Lokalisera • Tänk på att din Web Part kan läggas in var som helst i siten!
Web Part Best Practices Sweden SharePoint User Group Wictor Wilén2009-02-09