150 likes | 230 Views
Web Part Best Practices. Sweden SharePoint User Group WictorWilén 2009-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.
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