SharePoint 2010 als ontwikkelplatform Ton Stegeman 9 Januari 2013 - DIWUG
Introductie Ton Stegeman SharePoint architect bij PGGM ton@tonstegeman.com PGGM Pensioenuitvoeringsorganisatie Pensioenbeheer Vermogensbeheer Bestuurlijke advisering Coöperatie Introductie Versies OTAP Teams Configuratie Uptime Open deuren
Applicaties op de internet farm Pfzw.nl Pggm.nl EMI Bestuurders portaal Pensioenfonds cultuur.nl Rabo Bedrijven Pensioen Website Geld voor Later Wijzer MijnPFZW 2013: Leden Pensioen contract 2013: WerkenBij Arbeidsmonitor 2013: Website Applicatie profiel Anonieme content Pensioen planner Business Intelligence Samenwerken
Architectuur SharePoint applicaties 1 2 3 1 2 3 App X App Z ASP.NET BLC A Gedeelde platform componenten BLC B BLC C SharePoint Intranet SharePoint Internet
Wat betekent dat? Business Afhankelijkheden 1 2 3 1 2 3 App X App Z A BLC B: versie 2.1.0.4 B BLC B: versie 2.2.0.0 A Installeren op T BLC A B BLC B Installeren naar T, A, P BLC C A Installeren naar A Gedeelde platform componenten SharePoint Intranet Downtime bij installaties SharePoint Internet
Mogelijkheden tot versioning van componenten Site Collection Sandbox Web Application BIN Farm GAC
In de praktijk Site Collection Sandbox Farm BIN Farm GAC
Versiebeheer cruciaal! Versie = tekst file in de WSP Erin gezet door TFS teambuild Component = WSP + Installatie + Configuratie Ga uit van aanpassingen aan deze infracomponenten!
Heldere OTAP strategie
OTAP Build omgeving Introduceer Build omgeving Niet beheerde omgeving Finetunen installaties Eerste multi-server farm Regressie testen Zoveel mogelijk gelijk aan T snapshots Quality gate
OTAP - Deployment Is onderdeel van ontwikkeling Ontwikkelaars verantwoordelijk voor werkende installatie procedure Definition of Done: testbaar in testomgeving Vergeet Visual Studio Deployment Neem tijd voor het schrijven van release notes Automatiseer alles!
OTAP Upgrades Houd upgrade paden zoveel mogelijk gelijk Van T: R1.4 NIET zo naar A: R1.3 R1.2 R1.1 R1.4 R1.0 R1.0
OTAP Server beheer Houd de Health Analyzer schoon Health Analyzer meldingen blokkerend voor installatie op A Custom analyzer rules
Teams Scrum Technisch beheer in het team Beheerder en implementatie manager Ontwikkelaar en beheerder installeren T samen Tester in het team Vanaf dag 1 Schrijven coded UI tests
Configuratie Farm / Web Applications Doorvoeren van farm en web applicatie level configuratie Oorspronkelijk: Farm WA-1 WA-2 WA-3 WA-4 -A -B -C
Configuratie Farm / Web Applications Oplossing: introduceer Farm en Domein projecten (versioning) Farm WA-1 WA-2 WA-3 WA-4 PGGM.Web. Farm PGGM.Web. Domain.D1 PGGM.Web. Domain.D2 Versiebeheer! -A -B -C
Houd controle Controle over web app scoped features Scenario: kopieer.browser files naar alle Web Frontend servers in de farm Farm WA-1 WA-2 WA-3 WA-4 WSP-X WSP-Y FeatureActivated Copy Timerjob Resources Feature FeatureDeactivating Delete Timerjob
Houd controle Uninstall: Retract WSP Automatisch: FeatureDeactivating Timerjob Solution deployment: remove WSP Farm WA-1 WA-2 WA-3 WA-4 WSP-Y Full Install Resources Feature FeatureDeactivating Delete Timerjob
Houd controle Install: Add solution Deploy solution; uhmmm, welke web apps?? Install-SPSolution -AllWebApplications Farm WA-1 WA-2 WA-3 WA-4 WSP-Y Full Install FeatureActivated Copy Timerjob Resources Feature
Houd controle Oplossing: Installatie scripts onthouden welke web apps Per domein feature die Resources eventreceiver gebruikt Activeren in installatie ipv Activate On Default Farm WA-1 WA-2 WA-3 WA-4 WSP-X WSP-Y PGGM.Web. Domain.D1 PGGM.Web. Domain.D2 FeatureActivated Copy Timerjob Resources Feature FeatureDeactivating Delete Timerjob
IISReset Design voor uptime Design je solutions voor minimale verstoring op farm bij installatie Farm WA-1 WA-2 WA-3 WA-4 WSP-Y DeploymentTarget = GlobalAssemblyCache Farm AppPool recycle AppPool recycle WA-1 WA-2 WA-3 WA-4 WSP-Y DeploymentTarget = WebApplication
Pas op met farm level objecten Pas op met custom fields Farm level! Web Frontend Server IIS WA-1 WA-2 WA-3 WebAnalytics Service Global Assembly Cache DLL Oplossing: Resetten services in scripts Gebruik custom fields echt nodig? WSP-Z Geldt voor alle farm level objecten (STS, claim provider, audience provider) DLL
Open deuren Web.config wijzigingen Automatiseer alles Ontwikkelservers zelfde config als P Ontwikkelaars: denk aan stabiliteit P ipv je eigen gemak Component = WSP + Configuratie Standaard structuur TFS Heldere branching afspraken
Vragen? ton@tonstegeman.com