Vývoj aplikací pro SharePoint Windows Embedded Design Review April 8-9 2004 Vývoj aplikací pro SharePoint Tomáš Kutěj Systém Engineer Microsoft David Januška Programátor analytik Multima a.s. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda SharePoint Reálné příklady Základní přehled Datová vrstva Aplikační vrstva Prezentační vrstva Reálné příklady Události Šablony Webové části
SharePoint technologie Portálová nadstavba nad ASP.NET Licenčně Windows SharePoint Services - součást Windows S. 2003 Technicky – samostatně ke stažení Aktuálně SP1 Většina napsána v C# zbytky COM kódu z přechozích verzí nejsou navenek přístupné Třívrstvá architektura, podpora pro webové farmy (scale out)
Datová vrstva MSDE nebo SQL 2000 Možnost clusteringu pro vysokou dostupnost Možnost více ContentDB pro distribuované scénáře a vysoký výkon Obnova portálu = obnova databáze Plus nasměrování WSS na databázi Malá výjimka – web.config
Aplikační vrstva Server Object Model Managed kód (napsáno v C#) Přístupný z libovolného procesu na serveru Plně zdokumentovaný, rozšiřitelný Objektově zpřístupňuje téměř kompletní obsah databáze a obchodní logiku Na databázi nesahat !!!
Příklady funkcí Seznamy (Lists) – „jednotabulkové databázové aplikace“ Přidání, odebrání, editace, získání obsahu, ... Vytvoření definice nového seznamu (metadata, třídění, prezentace, ...) Knihovny dokumentů (Document Library) Souborové funkce, schválení, verzování Administrace Správa uživatelů, práce s rolemi, nastavením webů, ... Cokoliv je v databázi, cokoliv je v UI, ...
Příklady objektů List data Bezpečnost Dokumenty Administrace SPGroup SPGroupCollection SPSite SPUser SPUserCollection Dokumenty SPDocumentLibrary SPFile SPFileCollection SPFolder List data SPField SPFieldCollection SPListCollection SPList SPListItemCollection SPListItem SPView Administrace SPGlobalAdmin SPQuota SPVirtualServer
Události nad Document Library Jakákoliv změna Přidání, změna, schválení, check-out, ... Jsou volány asynchronně Základ pro workflow aplikace Postup: Vytvořit třídu implementující rozhraní IListEventSink Silné jméno, umístit do GAC Povolit události pro virtuální web Nastavit assembly a třídu pro Document Library
Windows Embedded Design Review Tomáš Kutěj System Engineer April 8-9 2004 Události Tomáš Kutěj System Engineer © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Úpravy a nastavení SPPS Prostředky SPPS Využívá UI SPPS Základní nastavení Využití MS FrontPage Využívá UI MS FrontPage Rozšiřuje možnosti Vlastní šablony Využívá objektový model SPPS Nutné dodržet základní principy Vlastní WebParts Využívá princip webpart pages Možné implementovat cokoliv
Možnosti vývoje nad SPPS Vlastní šablona objektu SPPS Seznam, knihovna dokumentů Vlastní webová součást (webpart) Třída zděděná z WebPartPages.WebPart Použití standardních webových služeb http://Server_name/_vti_bin/*.asmx Vývoj vlastních webových služeb Specifická pravidla pro integraci se SPPS
Vlastní šablony - Proč Implementace vlastní bezpečnosti Data z různých zdrojů Vazby mezi položkami formuláře Řízené chování formuláře Rozšíření o další akce a procesy
Vlastní šablona - ukázka
Vlastní šablony – Jak? Vytvořit novou složku šablony ..\Template\1029\STS\Lists Zaregistrovat šablonu do Onet.xml Upravit schema.xml šablony (CAML) Definice položek Vytvořit vlastní .aspx stránky NewForm.aspx DispForm.aspx EditForm.aspx
ONET.XML SCHEMA.XML <ListTemplates> <ListTemplate Name="SCHVAL_DOKUMENT„ DisplayName="SISO template pro schvalování dokumentů" Type="928" BaseType="0„ OnQuickLaunch="FALSE„ SecurityBits="11„ Description="Vytvoří seznam , kde budou evidovány všechny schvalované dokumenty.„ Image="/_layouts/images/itgen.gif"></ListTemplate> ... </ListTemplates> SCHEMA.XML <Fields> <Field Name="ID" DisplayName="ID dokumentu" Required="TRUE"/> <Field Name="Title" DisplayName="Jméno dokumentu" Type="Text" Required="TRUE"/> <Field Name="EvidencniCislo" DisplayName="Evidenční číslo" Type="Text" Required="TRUE"/> <Field Name="IDTridyDokumentu" DisplayName="Třída dokumentu" Type="Text" Required="TRUE"/> <Field Name="IDDruhuDokumentu" DisplayName="Druh dokumentu" Type="Text" /> <Field Name="StavSchvalovani" DisplayName="Stav schvalování" Type="Text" Required="TRUE"/> <Field Name="DocumentURL" DisplayName="Schvalovaný dokument" Type="URL" LinkType="Hyperlink" /> ... </Fields>
Vlastní šablony - tipy Na stránce zachovat interní objekty SPPS Využít user controls Dodržet styly – změna tématu Dodržet konstrukci adres ...DispForm?ID=5&Source=http://server.... Používat „strong names“ komponent <WebPartPages:WebPartZone runat="server" FrameType="None" ID="Main" Visible="false" Title="loc:Main" / > <uc1:NewEditFormCtl id="ctlEditForm„ runat="server"></uc1:NewEditFormCtl>
Windows Embedded Design Review Name Title Group April 8-9 2004 Vlastní šablony Name Title Group © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Vlastní webparts - Proč Implementace libovolné funkčnosti Možnost ovlivnit chování celé webpart Optimalizace výkonu Implementace vlastní bezpečnosti Využití infrastruktury WebPart stránek Využití dědičnosti pro skupiny webparts
Vlastní webpart - ukázka
Vlastní webpart – Jak? WebPart Templates for Visual Studio.NET Zdroj assembly Microsoft.SharePoint.dll ...SharePoint.WebPartPages.WebPart Override funkce CreateChildControls() RenderWebPart() Zkompilovat assembly Vytvořit .dwp soubor
WebPart Class public class SisoNavigation : Microsoft.SharePoint.WebPartPages.WebPart { [Browsable(true),Category("Miscellaneous"), DefaultValue(2), WebPartStorage(Storage.Personal), FriendlyName("Počet sloupců"), Description("Počet sloupců první úrovně")] public short PocetSloupcu get {return _colCount;} set {_colCount = value;} } protected override void RenderWebPart(HtmlTextWriter output) output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "2px"); output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "1px"); output.RenderBeginTag(HtmlTextWriterTag.Table); …
Windows Embedded Design Review Name Title Group April 8-9 2004 Vlastní webpart Name Title Group © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Informační zdroje Developement Sharepoint technologie http://www.microsoft.com/sharepoint CZ: http://www.microsoft.com/cze/office/sharepoint/ Developement http://www.msd2d.com http://www.gotdotnet.com Komunitní web http://www.sharepoint.cz WSS k stažení http://www.microsoft.com/downloads/details.aspx?displaylang=cs&FamilyID=E084D5CB-1161-46F2-A363-8E0C2250D990
Windows Embedded Design Review April 8-9 2004 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.