Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vývoj a nasazování řešení pro SharePoint 2010

Podobné prezentace


Prezentace na téma: "Vývoj a nasazování řešení pro SharePoint 2010"— Transkript prezentace:

1 Vývoj a nasazování řešení pro SharePoint 2010
Průvodce základními principy, možnostmi a doporučenými postupy , Microsoft Ondřej Tučný, CEO, BoldBrick

2 Infrastruktura: cloud vs. on-premise Nasazení do produkce
Agenda Vývoj pro SharePoint 2010 Sandboxed solutions Infrastruktura: cloud vs. on-premise Nasazení do produkce

3 1. Vývoj pro SharePoint 2010

4 Dostupné nástroje pro vývoj
Microsoft Třetí strany SharePoint Designer Visual Studio InfoPath 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ší

5 Porovnání standardních nástrojů
Deklarativně můžete… Vyvíjet 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 Vlastní business logiku Vlastní sloupce Web party Event handlery Workflow aktivity WCF služby / integraci Timer joby Vlastní SPService

6 Client Object Model XSLT View Sandboxed solutions
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, …)

7 XSLT View Příklad: zobrazení kandidá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

8 XSLT View Příklad: zobrazení kandidáta (2/2)
Základní verze této aplikace jako open source na

9 Client Object Model + XSLT View
Příklad: jednoduchý workflow editor (1/2) Podobně nepřehledná situace jako u předchozího příkladu Základní verze této aplikace jako open source na

10 Client Object Model + XSLT View
Příklad: jednoduchý workflow editor (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

11 Best practices pro vývoj
Z reálného světa  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

12 Best practices pro vývoj
1/5  Používejte funkce k tomu, k čemu jsou určeny Vyvarujte se zneužívání funkcí pro jiné než jejich primární účely Může to mít nepředvídané funkční či výkonnostní dopady Příklad: Managed metadata jsou určena pro ukládání termínů, značek Nepoužívejte je pro ukládání uživatelských dat

13 Best practices pro vývoj
2/5  GUID = Globally Unique Identifier GUID má být unikátní. Tečka. Používejte „Guid.NewGuid()“ nebo funkci Visual Studia Vyvarujte se výroby Guidů po „domácku“ např. odvozením z jiného Guidu Vyvarujte se opakovaného použití Guidu! A to i když vám to SharePoint dovolí

14 Best practices pro vývoj
3/5  Už při vývoji myslete na deployment Vhodný návrh architektury řešení, výběr nástrojů a postupů dokáže zásadně usnadnit deployment Bude vaše řešení na serveru zaručeně jediné? Typicky: Ne, nebude Je vaše řešení v něčem privilegované proti jiným? Typicky: Ne, není Obvyklé programátorské poučky platí u SharePointu dvojnásob

15 Best practices pro vývoj
4/5  Už při vývoji myslete na upgrade Vhodný návrh architektury řešení, výběr nástrojů a postupů dokáže zásadně usnadnit upgrade Jak se vypořádáte se změnami provedenými uživateli? Jak budete v budoucnu upgradovat data? Kolik let bude řešení asi tak žít?

16 Best practices pro vývoj
5/5  Nemodifikujte systémové soubory Spousta souborů v instalaci SharePointu přímo svádí k modifikaci: ASPX stránky a ASCX controly JavaScript CSS Proč to nedělat: Přestáváte mít podporu od výrobce Přestanou (v tichosti) fungovat systémové updaty Nebudete umět modifikace replikovat jinam Po čase už nebudete vědět, proč jste to dělali

17 2. Sandboxed solutions

18 Vlastní rozšíření Office365 webů
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í

19 Architektura sandboxed řešení
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 Diagram převzat z

20  Limitovaná oprávnění kódu  Vlastní typy sloupců
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ů

21 Jaké máte naopak možnosti
Zejména v kontextu Office365 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

22 Jak vytvořit web part pro sandbox
1/3

23 Jak vytvořit web part pro sandbox
2/3 Vytváříte standardní ASCX kontrol pomocí ASP.NET značek…

24 Jak vytvořit web part pro sandbox
3/3 …Visual Studio generuje C# kód pro sandbox

25  RunWithElevatedPrivileges + „nebezpečná“ práva
Co v sandboxu nemůžete 1/10  RunWithElevatedPrivileges + „nebezpečná“ práva Nelze elevovat oprávnění na úroveň administrátora Nelze používat reflection Nelze používat Full Trust nastavení assembly Dopady: Zapomeňte na „triky“ pomocí reflection Nemůžete si se systémem dělat, co chcete

26 Nelze definovat a používat vlastní typy sloupců
Co v sandboxu nemůžete 2/10  Vlastní typy sloupců Nelze definovat a používat vlastní typy sloupců Nelze vytvářet vlastní editory Dopady: Jste omezení na out-of-the-box datové typy Office365: Musíte se spokojit se standardním chováním editorů

27 Nelze definovat a používat vlastní web party
Co v sandboxu nemůžete 3/10  Web party Nelze definovat a používat vlastní web party WebPart z ASP.NET je povolena Kompozice stránky s vlastními controly probíhá také v sandboxu Dopady: Sice lze vytvářet UI, ale s omezeními Vaše web party nejsou ve stránce „first class citizen“ Komunikace s ostatními (out-of-the-box) web party nelze

28  Vlastní stránky + master page + site template
Co v sandboxu nemůžete 4/10  Vlastní stránky + master page + site template Minimální možnosti customizace UI Dopady: Musíte se spokojit se standardními šablonami webů To moc nevadí, protože „blank template“ je základ všeho Vaše web party nejsou ve stránce „first class citizen“ Komunikace s ostatními (out-of-the-box) web party nelze

29 Co v sandboxu nemůžete  Používání API
5/10  Používání API Lze používat jen část všech assembly SP a .NETu: Musí být dostupné v GAC nebo v sandboxed solution Musí dovolovat partially-trusted volající Povoleno: 12 DLL, například: Microsoft.SharePoint.dll + řada omezení Microsoft.Office.Server.dll Zakázáno: 16 DLL Microsoft.SharePoint.Taxonomy.dll Dopady: Může se snadno stát, že skončíte u konstatování „Nelze“ Věnujte v MSDN pozornost větě „Available in Sandboxed Solutions“ u jednotlivých tříd a metod

30 Jsou zakázána workflow s vlastním kódem
Co v sandboxu nemůžete 6/10  Workflow s kódem Jsou zakázána workflow s vlastním kódem Nelze vytvářet vlastní plnohodnotné workflow aktivity Dopady: Nelze plnohodnotně vyvíjet workflow ve VS Jste omezení na deklarativní workflow (ať už pomocí SPD nebo VS) Vlastní workflow akce jsou sice možné, ale dost omezeně Office365: Nepoužívat jako workflow systém

31  Volání externích web servisů
Co v sandboxu nemůžete 7/10  Volání externích web servisů Nelze provádět jakoukoliv síťovou komunikaci Dopady: Nelze integrovat SharePoint s externími službami Nelze ani využívat Business Connectivity Services Office365: řešení jsou prakticky izolovaná od zbytku cloud světa

32 Nelze modifikovat web.config
Co v sandboxu nemůžete 8/10  Práce s file systémem Nelze modifikovat web.config Nelze pracovat se soubory na disku, ani temporary Dopady: Nijak zásadní: správná SharePoint aplikace nepoužívá file systém V podstatě je to podpora dobrých praktik 

33 SPJobDefinition nelze používat Dopady:
Co v sandboxu nemůžete 9/10  Používání timer jobů SPJobDefinition nelze používat Dopady: Nemůžete realizovat scénáře s dávkovým zpracováním dat Office365: nelze plánovaně provádět asynchronní úlohy

34  Klíčové slovo „static“
Co v sandboxu nemůžete 10/10  Klíčové slovo „static“ Nelze definovat statické („globální“) proměnné (fieldy) Dopady: Nijak zásadní: správně objektově navržená aplikace má pouze velmi málo potřeb používat statické proměnné V některých případech to může být nepříjemný zádrhel

35 Infrastruktura: cloud vs. on-premise

36 Tři modely infrastruktury pro SharePoint
On-Premise Private Cloud Office365

37 Cloud od Microsoftu: Office365
Výhody Nevý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 Omezené možnosti customizace a vývoje Žádné možnosti zásahů do infrastruktury Omezení vyplývající z rychlosti připojení Omezené integrace

38 Smluvní garance správy Řešení na míru Pay-as-you-go
Private Cloud řešení Výhody Nevý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 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žší

39 On-premise infrastruktura
Výhody Nevý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 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

40 Kdy se hodí který model? Office365 Private Cloud On-Premise Správa
Nechcete se starat o IT Nepotřebujete sofistikované centrální řízení 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 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ů

41 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

42 Nasazení do produkce

43 Podpora nasazování na úrovni infrastruktury
Jednoduchý model Složitější model Vývojové prostředí (DEV) Testovací prostředí (TEST) Produkční prostředí (PROD) Vý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

44 Ú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

45 Ú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ů

46 Best practices pro nasazení
Z reálného světa  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í

47 Best practices pro nasazování
1/4  Mějte připraven rollback plán Jak nasazení ovlivní funkce? Jak vrátíme předchozí stav funkcí? Jak nasazení ovlivní data? Jak vrátíme předchozí stav dat? Důsledně zálohujte před nasazením čehokoliv nového Akceptační prostředí 1:1 vůči produkčnímu ušetří hodně starostí

48 Best practices pro nasazování
2/4  Neinstalujte hotfixy a service packy naslepo Pokud používáte hodně custom řešení, testujte kompatibilitu s novými updaty (zejména service packy) Service Packy obsahují i tzv. „breaking changes” ⇒ custom řešení může přestat fungovat Service Packy mohou mít dopady na okolní infrastrukturu

49 Best practices pro nasazování
3/4  Jednorázový proces… s dlouhodobými dopady Špatně připravený deployment může mít nepříjemné důsledky v budoucnosti Na deployment a zejména pozdější změny se musí myslet už při vývoji

50 Best practices pro nasazování
4/4  Archivujte zdrojové kódy nasazeného řešení Může se stát, že budete potřebovat v budoucnu řešení instalovat do jiného prostředí vyžadující úpravy Může se stát, že budete řešení migrovat Co potřebujete archivovat: Zdrojové kódy nasazeného řešení — skutečně použitou verzi Dokumentaci pro buildování a instalaci řešení Informace o potřebných nástrojích a vývojovém prostředí

51 Rád zodpovím Vaše další otázky tucny@boldbrick.com
Děkuji za pozornost Rád zodpovím Vaše další otázky


Stáhnout ppt "Vývoj a nasazování řešení pro SharePoint 2010"

Podobné prezentace


Reklamy Google