2
André Vala
andre.vala@create.pt
http://blogit.create.pt/blogs/andrevala
Raúl Ribeiro
raul.ribeiro@create.pt
http://blogit.create.pt/blogs/raulribeiro
Software Deployment
Software deployment is all of the activities that
make a software system available for use.
…
Therefore, deployment should be interpreted as
a general process that has to be customized
according to specific requirements or
characteristics.
4
Fonte: http://en.wikipedia.org/wiki/Software_deployment
Agenda
 Tipos de Deployment
 Solution Deployment
 Casos de Uso
 Ferramentas de Suporte
5
TIPOS DE DEPLOYMENT
Deployment em SharePoint
Tipos de Deployment
 Idade da Pedra
 Backup/Restore Deployment
 Content Deployment
 Content Deployment and Migration API
7
Tipos de Deployment
Idade da Pedra
 O processo seria algo deste género:
1. Developers fazem código, webparts, etc, habitualmente num ambiente stand-
alone de SharePoint
2. Com sorte os desenvolvimentos são “empacotados” num instalador
3. Entrega-se o instalável e documentação às equipas de produção para
instalarem
 O problema é que no SharePoint existem vários passos necessários na
instalação:
 Deployment de Assemblies para a GAC ou BIN
 Alterações ao web.config para colocar os SafeControls, CAS Policies, etc
 Copiar os resources como imagens, stylesheets, javascript, etc
 Ficheiros .dwp ou .webpart
 Criação de Content Types e Site Columns
8
Tipos de Deployment
Backup/Restore Deployment
 SQL Server Backup & Restore – backup nativo do SQL
Server
 Stsadm Utility
 stsadm –o backup/restore
 stsadm –o export/import
 Estas opções são válidas mas têm os problemas da opção
anterior:
 Deployment de Assemblies para a GAC ou BIN
 Alterações ao Web.config para colocar os SafeControls, CAS Policies,
etc
 Copiar os resources como imagens, stylesheets, javascript, etc
9
Tipos de Deployment
Content Deployment
 Copia conteúdos entre duas site
collections
 Por omissão são efectuados deployments
incrementais: apenas as páginas e os
resources alterados.
 Tem os problemas das opções
apresentadas nos slides anteriores
10
Tipos de Deployment
Content Deployment and Migration API
 Permite exportar site collections, web sites, listas ou
mesmo um único item
 Permite exportação incremental ou completa
 Permite preservar ou não os IDs dos itens
exportados
 Permite importar para uma hierarquia diferente da
origem
 Tem os problemas das opções apresentadas nos
slides anteriores
11
SOLUTION DEPLOYMENT
Deployment em SharePoint
Solution Deployment
Conceitos
 Features
 Feature Manifest
 Feature Element
 Solution Package
 Solution Manifest
13
Solution Deployment
Feature
 Conjunto de ficheiros XML que descrevem
objectos de SharePoint que devem ser
aprovisionados num web site
 Podem ser activadas/desactivadas em vários
âmbitos:
 Farm, web application, site collection, web
 Para cada âmbito existem diferentes
elementos XML disponíveis
14
Solution Deployment
Features Scopes
 (Web site)
 Control
 Custom Action
 Custom Action
Group
 Hide Custom Action
 List Instance
 List Template
 Module (File Set)
 Receiver
15
 Farm (farm)
 Control
 Custom Action
 Custom Action Group
 Feature/Site Template Association
 Hide Custom Action
 WebApplication (Web application)
 Control
 Custom Action
 Custom Action Group
 Document Converter
 Feature/Site Template Association
 Hide Custom Action
Fonte: http://weblogs.asp.net/soever/archive/2007/05/03/sharepoint-features-elements-scope-and-other-info.aspx
 Site (site collection)
 Content Type
 Content Type Binding
 Control
 Custom Action
 Custom Action Group
 Feature/Site Template
Association
 Field
 Hide Custom Action
 List Template
 Module (File Set)
 Workflow
Solution Deployment
Features
 Podem ser activadas/desactivadas
16
Página de gestão de
features com âmbito
Web.
A maior parte das
funcionalidades do
MOSS encontram-se
implementadas desta
forma, podendo ser
activadas ou
desactivadas quando
necessário
Solution Deployment
Pastas de Sistema
 12TEMPLATE
 12TEMPLATEFEATURES
 12TEMPLATEIMAGES
 12TEMPLATELAYOUTS
17
Solution Deployment
Feature Manifest
 Exemplo de um feature manifest
 Declarado em CAML (Collaborative Application Markup
Language)
18
<Feature
Id="B2CB42E2-4F0A-4380-AABA-1EF9CD526F20"
Title="A Sample Feature: Hello World"
Description=“Hello World Feature Sample"
Scope="Web"
Hidden="FALSE"
ImageUrl=“MyImage.gif"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="elements.xml" />
</ElementManifests>
</Feature>
Solution Deployment
Feature Element
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="SiteActionsToolbar"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="100"
Title="Hello World"
Description="A custom menu item added using a feature"
ImageUrl="_layouts/images/crtsite.gif" >
<UrlAction Url="http://msdn.microsoft.com"/>
</CustomAction>
</Elements>
19
 Exemplo de um element manifest
 Declarado em CAML
 Este exemplo cria uma entrada no menu Site Actions
Solution Deployment
Feature Receivers
20
Solution Deployment
Solution Package
21
 Evolução das Web Part Packages do WSS 2.0
 Ficheiro CAB com a extensão .wsp criado usando ficheiro
.ddf e MAKECAB.EXE, com os ficheiros a instalar
 Contém um manifesto que o caracteriza
 Stsadm –o addsolution
 Pode empacotar:
 Features
 Assemblies (GAC, BIN)
 Site Definitions
 CAS Policies
 DwpFiles
 Imagens
Solution Deployment
Solution Manifest
<Solution SolutionId="9EFFE92B-781D-4c99-BBCC-432D248B899D"
xmlns="http://schemas.microsoft.com/sharepoint/">
<FeatureManifests>
<FeatureManifest Location="CustomApplicationPagesfeature.xml" />
</FeatureManifests>
<TemplateFiles>
<TemplateFile Location="LAYOUTSCustomApplicationPagesHello.aspx"/>
<TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage1.aspx"/>
<TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage2.aspx"/>
<TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage3.aspx"/>
<TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage4.aspx"/>
<TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage5.aspx"/>
<TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage6.aspx"/>
</TemplateFiles>
<Assemblies>
<Assembly Location="CustomApplicationPages.dll"
DeploymentTarget="GlobalAssemblyCache" />
</Assemblies>
</Solution>
22
Solution Deployment
23
CASOS DE USO
Deployment em SharePoint
Casos de Uso
 Criar Site Columns e Content Types
 Criar List Templates
 Criar Listas
 Instalar WebParts
 Instalar Master Pages e Page Layouts
 Instalar Event Receivers
 Instalar Site Definitions
 Modificar um Site Template
Casos de Uso
Criar Site Columns e Content Types
 O que se pretende...
 Adicionar Site Columns a uma Site Collection
 Adicionar Content Types a uma Site Collection
 Como se faz...
 Feature Element do tipo Field
 Feature Element do tipo ContentType
 Âmbito: Site
Casos de Uso
Criar List Templates
 O que se pretende...
 Criar um modelo de lista (list template) numa Site
Collection
 Como se faz...
 Feature Element do tipo ListTemplate
 Âmbito: Site
Casos de Uso
Criar Listas
 O que se pretende...
 Criar uma lista com base num modelo
 Como se faz...
 Feature Element do tipo ListInstance
 Âmbito: Web
Casos de Uso
Instalar Web Parts
 O que se pretende...
 Colocar o assembly na GAC
 Colocar uma entrada Safe Controls no web.config
 Colocar um ficheiro .webpart ou .dwp na Web Part
Gallery da Site Collection
 Como se faz...
 Feature Element do tipo Module
 Âmbito: Site
Casos de Uso
Instalar Master Pages e Page Layouts
 O que se pretende...
 Colocar ficheiros .master e .aspx na Master Page
Gallery da Site Collection
 Como se faz...
 Feature Element do tipo Module
 Âmbito: Site
Casos de Uso
Instalar Event Receivers
 O que se pretende...
 Colocar o assembly na GAC
 Registar um Event Receiver
 Como se faz...
 Feature Element do tipo Receivers
 Âmbito: Web
Casos de Uso
Instalar Site Definitions
 O que se pretende...
 Colocar um ficheiro WebTemp.xml em
12TEMPLATE[LCID]XML
 Colocar uma pasta para o site template em
12TEMPLATESiteTemplates
 Como se faz...
 Não requer Feature, apenas Solution
 Utilização de elementos TemplateFile no
manifest.xml da Solution
Casos de Uso
Modificar um Site Template
 O que se pretende...
 Feature Stapling
 Associar Features a um modelo de site (site
template) já existente
 Como se faz...
 Feature Elements do tipo
FeatureSiteTemplateAssociation
 Âmbito: Farm
FERRAMENTAS DE SUPORTE
Deployment em SharePoint
Ferramentas de Suporte
 WSS Extensions for Visual Studio 1.2
 Windows SharePoint Services SDK 1.4
 WSP Builder no CodePlex
 Content Deployment Wizard no CodePlex
 SharePoint Manager 2007 no CodePlex
 Stramit Caml Viewer by Renaud Comte
 Caml Query Builder by U2U
Q&A
André Vala
andre.vala@create.pt
http://blogit.create.pt/blogs/andrevala
Raúl Ribeiro
raul.ribeiro@create.pt
http://blogit.create.pt/blogs/raulribeiro
Instituto Superior Técnico
Campus do Taguspark

SharePoint Deployment

  • 2.
  • 4.
    Software Deployment Software deploymentis all of the activities that make a software system available for use. … Therefore, deployment should be interpreted as a general process that has to be customized according to specific requirements or characteristics. 4 Fonte: http://en.wikipedia.org/wiki/Software_deployment
  • 5.
    Agenda  Tipos deDeployment  Solution Deployment  Casos de Uso  Ferramentas de Suporte 5
  • 6.
  • 7.
    Tipos de Deployment Idade da Pedra  Backup/Restore Deployment  Content Deployment  Content Deployment and Migration API 7
  • 8.
    Tipos de Deployment Idadeda Pedra  O processo seria algo deste género: 1. Developers fazem código, webparts, etc, habitualmente num ambiente stand- alone de SharePoint 2. Com sorte os desenvolvimentos são “empacotados” num instalador 3. Entrega-se o instalável e documentação às equipas de produção para instalarem  O problema é que no SharePoint existem vários passos necessários na instalação:  Deployment de Assemblies para a GAC ou BIN  Alterações ao web.config para colocar os SafeControls, CAS Policies, etc  Copiar os resources como imagens, stylesheets, javascript, etc  Ficheiros .dwp ou .webpart  Criação de Content Types e Site Columns 8
  • 9.
    Tipos de Deployment Backup/RestoreDeployment  SQL Server Backup & Restore – backup nativo do SQL Server  Stsadm Utility  stsadm –o backup/restore  stsadm –o export/import  Estas opções são válidas mas têm os problemas da opção anterior:  Deployment de Assemblies para a GAC ou BIN  Alterações ao Web.config para colocar os SafeControls, CAS Policies, etc  Copiar os resources como imagens, stylesheets, javascript, etc 9
  • 10.
    Tipos de Deployment ContentDeployment  Copia conteúdos entre duas site collections  Por omissão são efectuados deployments incrementais: apenas as páginas e os resources alterados.  Tem os problemas das opções apresentadas nos slides anteriores 10
  • 11.
    Tipos de Deployment ContentDeployment and Migration API  Permite exportar site collections, web sites, listas ou mesmo um único item  Permite exportação incremental ou completa  Permite preservar ou não os IDs dos itens exportados  Permite importar para uma hierarquia diferente da origem  Tem os problemas das opções apresentadas nos slides anteriores 11
  • 12.
  • 13.
    Solution Deployment Conceitos  Features Feature Manifest  Feature Element  Solution Package  Solution Manifest 13
  • 14.
    Solution Deployment Feature  Conjuntode ficheiros XML que descrevem objectos de SharePoint que devem ser aprovisionados num web site  Podem ser activadas/desactivadas em vários âmbitos:  Farm, web application, site collection, web  Para cada âmbito existem diferentes elementos XML disponíveis 14
  • 15.
    Solution Deployment Features Scopes (Web site)  Control  Custom Action  Custom Action Group  Hide Custom Action  List Instance  List Template  Module (File Set)  Receiver 15  Farm (farm)  Control  Custom Action  Custom Action Group  Feature/Site Template Association  Hide Custom Action  WebApplication (Web application)  Control  Custom Action  Custom Action Group  Document Converter  Feature/Site Template Association  Hide Custom Action Fonte: http://weblogs.asp.net/soever/archive/2007/05/03/sharepoint-features-elements-scope-and-other-info.aspx  Site (site collection)  Content Type  Content Type Binding  Control  Custom Action  Custom Action Group  Feature/Site Template Association  Field  Hide Custom Action  List Template  Module (File Set)  Workflow
  • 16.
    Solution Deployment Features  Podemser activadas/desactivadas 16 Página de gestão de features com âmbito Web. A maior parte das funcionalidades do MOSS encontram-se implementadas desta forma, podendo ser activadas ou desactivadas quando necessário
  • 17.
    Solution Deployment Pastas deSistema  12TEMPLATE  12TEMPLATEFEATURES  12TEMPLATEIMAGES  12TEMPLATELAYOUTS 17
  • 18.
    Solution Deployment Feature Manifest Exemplo de um feature manifest  Declarado em CAML (Collaborative Application Markup Language) 18 <Feature Id="B2CB42E2-4F0A-4380-AABA-1EF9CD526F20" Title="A Sample Feature: Hello World" Description=“Hello World Feature Sample" Scope="Web" Hidden="FALSE" ImageUrl=“MyImage.gif" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="elements.xml" /> </ElementManifests> </Feature>
  • 19.
    Solution Deployment Feature Element <Elementsxmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Id="SiteActionsToolbar" GroupId="SiteActions" Location="Microsoft.SharePoint.StandardMenu" Sequence="100" Title="Hello World" Description="A custom menu item added using a feature" ImageUrl="_layouts/images/crtsite.gif" > <UrlAction Url="http://msdn.microsoft.com"/> </CustomAction> </Elements> 19  Exemplo de um element manifest  Declarado em CAML  Este exemplo cria uma entrada no menu Site Actions
  • 20.
  • 21.
    Solution Deployment Solution Package 21 Evolução das Web Part Packages do WSS 2.0  Ficheiro CAB com a extensão .wsp criado usando ficheiro .ddf e MAKECAB.EXE, com os ficheiros a instalar  Contém um manifesto que o caracteriza  Stsadm –o addsolution  Pode empacotar:  Features  Assemblies (GAC, BIN)  Site Definitions  CAS Policies  DwpFiles  Imagens
  • 22.
    Solution Deployment Solution Manifest <SolutionSolutionId="9EFFE92B-781D-4c99-BBCC-432D248B899D" xmlns="http://schemas.microsoft.com/sharepoint/"> <FeatureManifests> <FeatureManifest Location="CustomApplicationPagesfeature.xml" /> </FeatureManifests> <TemplateFiles> <TemplateFile Location="LAYOUTSCustomApplicationPagesHello.aspx"/> <TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage1.aspx"/> <TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage2.aspx"/> <TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage3.aspx"/> <TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage4.aspx"/> <TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage5.aspx"/> <TemplateFile Location="LAYOUTSCustomApplicationPagesApplicationPage6.aspx"/> </TemplateFiles> <Assemblies> <Assembly Location="CustomApplicationPages.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> </Solution> 22
  • 23.
  • 24.
  • 25.
    Casos de Uso Criar Site Columns e Content Types  Criar List Templates  Criar Listas  Instalar WebParts  Instalar Master Pages e Page Layouts  Instalar Event Receivers  Instalar Site Definitions  Modificar um Site Template
  • 26.
    Casos de Uso CriarSite Columns e Content Types  O que se pretende...  Adicionar Site Columns a uma Site Collection  Adicionar Content Types a uma Site Collection  Como se faz...  Feature Element do tipo Field  Feature Element do tipo ContentType  Âmbito: Site
  • 27.
    Casos de Uso CriarList Templates  O que se pretende...  Criar um modelo de lista (list template) numa Site Collection  Como se faz...  Feature Element do tipo ListTemplate  Âmbito: Site
  • 28.
    Casos de Uso CriarListas  O que se pretende...  Criar uma lista com base num modelo  Como se faz...  Feature Element do tipo ListInstance  Âmbito: Web
  • 29.
    Casos de Uso InstalarWeb Parts  O que se pretende...  Colocar o assembly na GAC  Colocar uma entrada Safe Controls no web.config  Colocar um ficheiro .webpart ou .dwp na Web Part Gallery da Site Collection  Como se faz...  Feature Element do tipo Module  Âmbito: Site
  • 30.
    Casos de Uso InstalarMaster Pages e Page Layouts  O que se pretende...  Colocar ficheiros .master e .aspx na Master Page Gallery da Site Collection  Como se faz...  Feature Element do tipo Module  Âmbito: Site
  • 31.
    Casos de Uso InstalarEvent Receivers  O que se pretende...  Colocar o assembly na GAC  Registar um Event Receiver  Como se faz...  Feature Element do tipo Receivers  Âmbito: Web
  • 32.
    Casos de Uso InstalarSite Definitions  O que se pretende...  Colocar um ficheiro WebTemp.xml em 12TEMPLATE[LCID]XML  Colocar uma pasta para o site template em 12TEMPLATESiteTemplates  Como se faz...  Não requer Feature, apenas Solution  Utilização de elementos TemplateFile no manifest.xml da Solution
  • 33.
    Casos de Uso Modificarum Site Template  O que se pretende...  Feature Stapling  Associar Features a um modelo de site (site template) já existente  Como se faz...  Feature Elements do tipo FeatureSiteTemplateAssociation  Âmbito: Farm
  • 34.
  • 35.
    Ferramentas de Suporte WSS Extensions for Visual Studio 1.2  Windows SharePoint Services SDK 1.4  WSP Builder no CodePlex  Content Deployment Wizard no CodePlex  SharePoint Manager 2007 no CodePlex  Stramit Caml Viewer by Renaud Comte  Caml Query Builder by U2U
  • 36.
  • 37.