Vývoj a nasazování řešení pro SharePoint 2010Průvodce základními principy, možnostmi a doporučenými postupy
11. 10. 2011, Microsoft
Ondřej Tučný, CEO, BoldBrick
Agenda
1. Vývoj pro SharePoint 20102. Sandboxed solutions3. Infrastruktura: cloud vs. on-premise4. Nasazení do produkce
1. Vývoj pro SharePoint 2010
Dostupné nástroje pro vývoj
Microsoft• SharePoint Designer• Visual Studio• InfoPath
Třetí strany• Nintex Workflow• Mossquito• …
Web
• Přizpůsobení out-of-the-box vlastností
• Stačí browser
Konfigurace
• Deklarativní vývoj a přizpůsobení
• Deklarativní nástroje třetích stran
Vývoj
• Vývoj vlastních řešení
• Znovupoužitelná řešení
• Visual Studio a další
Porovnání standardních nástrojů
Deklarativně můžete…• Zakládat a editovat stránky• Definovat datový model• Vytvářet formulářové
aplikace• Vytvářet komplexní
workflow• Editovat pokročilé
nastavení web partů• Vytvářet vlastní XSLT view
Vyvíjet můžete…• Vlastní business logiku• Vlastní sloupce• Web party• Event handlery• Workflow aktivity• WCF služby / integraci• Timer joby• Vlastní SPService
Zajímavé novinky v SP2010
• Client Object Model ⇒ práce s Object Modelem z JS a Silverlightu
• XSLT View ⇒ otevírá kreativitu v deklarativnímu vývoji UI
• Sandboxed solutions ⇒ cesta, jak vyvíjet pro Office365
(a spousta dalšího užitečného pro vývoj: REST, PowerShell, Business Connectivity Services, Managed Metadata, vlastní SPServices, …)
XSLT ViewPř ík lad: zobrazení kand idáta (1 /2 )
Standardní view se spoustou sloupců může být pěkně nepřehledné…
Základní verze této aplikace jako open source na http://sp2010recruitment.codeplex.com/
XSLT ViewPř ík lad: zobrazení kand idáta (2 /2 )
Základní verze této aplikace jako open source na http://sp2010recruitment.codeplex.com/
Client Object Model + XSLT ViewPř ík lad: jednoduchý work f low ed i tor (1 /2 )
Podobně nepřehledná situace jako u předchozího příkladu
Základní verze této aplikace jako open source na http://sp2010recruitment.codeplex.com/
Client Object Model + XSLT ViewPř ík lad: jednoduchý work f low ed i tor (2 /2 )
• Přesun položek nahoru a dolů• Rušení položek• Editace položek• Skrývání detailů• AJAX aktualizace seznamu
Základní verze této aplikace jako open source na http://sp2010recruitment.codeplex.com/
Best practices pro vývoj
Používejte funkce k tomu, k čemu jsou určeny Využívejte WSP i pro jednorázová řešení Už při vývoji myslete na deployment a upgrade Nemodifikujte systémové soubory Vhodně omezte kreativitu uživatelů Na hodně aplikací stačí Blank Template
Z reá lného svě ta
2. Sandboxed solutions
Použití
• Vlastní rozšíření Office365 webů• Bezpečnostně silně omezená řešení v on-
premise nasazeních• Delegace nasazení na správce site
kolekcí
• Sandboxed řešení mají řadu restrikcí
Architektura sandboxed řešení
Diagram převzat z http://blogs.msdn.com/b/sharepointpictures/
• Neovlivňuje ostatní procesy
• Řízení spotřeby systémových zdrojů
• Provádění pouze na vybraných serverech
• Nasazování správcem site collection
Co v sandboxu nemůžete
Limitovaná oprávnění kódu Vlastní typy sloupců Web party (kromě ASP.NET) Stránky + master page + site template Limitované používání API Workflow s kódem Volání externích web servisů Práce s file systémem Vytváření timer jobů
Jaké máte naopak možnosti
• Použití SharePoint Designeru ⇒ leccos dokážete vyřešit deklarativně bez
programování• Silverlight a využití Client Object Model
⇒ bohaté UI i přes jistá omezení sandboxu• Hybridní řešení Azure / Office365
⇒ SharePoint jako administrační back-end• Formulářové aplikace pomocí InfoPath
Zejména v kontextu Of f ice365
Jak vytvořit web part pro sandbox1 /3
Jak vytvořit web part pro sandbox2 /3
Vytváříte standardní ASCX kontrol pomocí ASP.NET značek…
Jak vytvořit web part pro sandbox3 /3
…Visual Studio generuje C# kód pro sandbox
Infrastruktura: cloud vs. on-premise
Tři modely infrastruktury pro SharePoint
On-Premise
Private Cloud
Office365
Cloud od Microsoftu: Office365
Výhody• Žádné starosti s
infrastrukturou• Jednoduchá administrace
a integrace s firemním AD• Spolehlivá infrastruktura
garantovaná Microsoftem• Pay-as-you-go
Včetně licencí MS Office• Přirozený mobilní přístup
Nevýhody• Omezené možnosti
customizace a vývoje• Žádné možnosti zásahů
do infrastruktury• Omezení vyplývající z
rychlosti připojení• Omezené integrace
Private Cloud řešení
Výhody• Smluvní SLA• Smluvní garance správy• Řešení na míru• Pay-as-you-go
SPLA licencování• Přirozený mobilní přístup• Vývoj na míru
Nevýhody• Infrastruktura není pod
přímou kontrolou• Omezení vyplývající z
rychlosti připojení• Složitější integrace• Pronájem HW a licencí je
dlouhodobě dražší
On-premise infrastruktura
Výhody• Infrastruktura pod přímou
kontrolou• Software pod přímou
kontrolou• Bezproblémové integrace• Využití všech možností a
variant nasazení• Vývoj na míru
Nevýhody• Zodpovědnost za správu• Počáteční investice
Nákup hardware Nákup licencí Může být zásadní položka
• Složitější mobilní přístup
Kdy se hodí který model?
Office365 Private Cloud On-PremiseSpráva Nechcete se starat o IT
Nepotřebujete sofistikované centrální řízení
Nechcete se starat o IT Nechcete se starat o
SharePoint
Máte vlastní správu IT Potřebujete centrální
správu
Náklady Minimalizujete náklady na IT
Využijete licencování Office pay-as-you-go
Upřednostňujete rozložení nákladů v čase
Stačí vám Foundation Investujete do velkých
projektů
Funkce Potřebujete jednoduše řešit extranety
Stačí vám out-of-the-box funkce
Potřebujete jednoduchý mobilní přístup
Potřebujete jednoduchý mobilní přístup
Potřebujete konkrétní custom řešení
Potřebujete specifické integrované řešení
Potřebujete komplexní řešení pro mnoho různých využití
Máte hodně specifických požadavků
Na co si dát pozor u Private Cloud řešení
• Bezpečnost• Zálohování dat• Budoucí rozšiřitelnost• Propojení infrastruktur• SLA na řešení jako celek• Dopady změn na licencování• Self-service funkce pro uživatele• Multi-tenant vs. Single-tenant model
• Private Cloud ≠ hosting za 1000 Kč / měsíc
Nasazení do produkce
Podpora nasazování na úrovni infrastruktury
Jednoduchý model
Vývojové prostředí (DEV)
Testovací prostředí (TEST)
Produkční prostředí (PROD)
Složitější modelVývojové
prostředí (DEV)
Integrační prostředí (INT)
Akceptační prostředí (ACC)
Produkční prostředí (PROD)
all-in-one / standalone
zjednodušené
1:1 k produkčnímu
Úskalí deploymentu: opakovatelnost
• Jak zajistit přenos mezi prostředími? Instalační postup + konfigurační tabulka prostředí
• Jak zajistit aktualizace datového modelu? Mossquito nabízí režim vývoj → porovnání → nasazení změn
Vývoj
Test
Produkce
Úskalí deploymentu: bezpečnost
• Vývoj typicky probíhá s admin právy• Testování už ale musí používat produkční nastavení práv• SharePoint nabízí značně škálovatelný bezpečnostní model• Neprovozujte produkční farmu jen s jedním účtem
• Zvlášť: Účet pro přístup do SQL Hlavní účet farmy Účty aplikačních poolů jednotlivých web aplikací Účty systémových servisů Účty vlastních servisů
• Vaše aplikace běží v kontextu různých účtů
Best practices pro nasazení
• Dobrý deployment začíná u vývoje• Mějte připraven rollback plán• Dokumentujte si celý proces• Neinstalujte hotfixy a service packy naslepo• Jednorázový proces… s dlouhodobými
dopady• Archivujte zdrojové kódy nasazeného
řešení
Z reá lného svě ta