Converter um projecto publishing WspBuilder para SharePoint 2010 

Tags: SharePoint, Upgrade

Introdução

 

Com a introdução do SharePoint 2010 existiram algumas alterações ao nível do Object Model e estrutura de Páginas Mestras e Layouts de Páginas derivado à introdução da Ribbon e introdução de novos métodos.

 

O custo de criar um projecto de raiz é enorme e não nos podemos esquecer que nem todos os nossos clientes adoptam ou irão a curto prazo adoptar a versão 2010 em suas Entidades. 

 

O objectivo deste artigo é a conversão de um projecto publishing criado em Visual Studio 2008 utilizando 99% do código existente, implementação de novas Páginas Mestras e Alteração dos Layouts de Páginas existentes

 

TaskList

 

1.       Montar uma VM com o SharePoint 2010, instalar o Visual Studio 2010 e instalar o WSPBuilder Extensions 2010 BETA 1.4.

 

2.       Converter o Projecto para a versão 2010

 

A primeira tarefa na nossa TaskList é a conversão do Projecto

 

Conversão

 

3.       Remover as DLL’s da versão 12

 

Eliminar as DLL’s da versão 12 e adicionar as mesmas para a versão 14

 

ddl

 

4.       Alteração de Plataforma e Versão de Framework

 

Após remover as DLL’s correspondentes, vamos passar o nosso projecto para a plataforma x64 e alterar a versão da Framework em todos os projectos para o mínimo versão 3.5

 

 

Fw

 

fw

 

5.       Verificar quais os métodos que ficaram “Obsolete” e “Deprecated”

 

Vamos compilar o nosso projecto e seguir todos os erros e avisos que o Visual Studio 2010 nos vai dar, do tipo:

 

'Microsoft.SharePoint.Publishing.PublishingWeb.InheritGlobalNavigation' is obsolete: 'Use PublishingWeb.Navigation.InheritGlobal instead.'

 

'Microsoft.SharePoint.Publishing.PublishingWeb.IncludePagesInNavigation' is obsolete: 'Use PublishingWeb.Navigation.GlobalIncludePages/CurrentIncludePages instead.'

 

Temos de alterar todas as indicações que nos vão sendo dadas pois os métodos Obsolete e Deprecated vão gerar erros no SharePoint. Alterar até eliminarmos todos os possíveis erros e ficarmos com um projecto Visual Studio limpo

 

 

6.       Alteração mandatória das Features (Content Types), TAG’s XML

 

Existe uma nova Tag mandatória para os Content Types Inherits = TRUE ou FALSE, O valor deste atributo determina se o tipo de conteúdo herda campos de seu tipo de conteúdo pai quando ele é criado. Se Inherits for TRUE, o tipo de conteúdo filho herda todos os campos que estão no pai, incluindo os campos que os utilizadores tenham adicionado.

 

<?xml version="1.0" encoding="utf-8" ?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

<ContentType

ID="0x010100xxx"

Name="Nome"

Group="Grupo"

Description="Descrição"

Inherits="TRUE" >

             <FieldRefs>

 

 

7.       Alteração nas Páginas Mestras

 

Está é sem dúvida uma alteração de fundo, pois vamos ter de mudar radicalmente o nosso HTML, eu sugiro o download do Starter Master Pages for SharePoint 2010 e encaixar os nossos controlos ou HTML personalizado. Neste caso vamos utilizar a página de tipo publishing.

 

a.       Remover a Ribbon quando o utilizador não tem permissões de edição

 

Pesquisar:

 

<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle"

 

Substituir

 

<div id="s4-ribbonrow" class="s4-pr s4-ribbonrowhidetitle" style="display:none">
<Sharepoint:SPSecurityTrimmedControl ID=
"SPSecurityTrimmedControl2"

                                     runat=
"server"

                                     PermissionsString=
"AddAndCustomizePages"
>
<script type=
"text/javascript"
>
    document.getElementById(
"s4-ribbonrow").style.display = "block"
;
</script>
</Sharepoint:SPSecurityTrimmedControl>

 

 

8.       Alteração nos Layouts de Páginas

 

Existem também alterações de fundo nos Layouts de Páginas, pois agora temos uma divisão entre o conteúdo para os leitores e conteúdo para os utilizadores que podem alterar o conteúdo

 

<PublishingWebControls:AuthoringContainer DisplayAudience="ReadersOnly" runat="server">
<!— Conteúdo para utilizadores sem permissão de edição vai aqui. -->
</PublishingWebControls:AuthoringContainer>
<PublishingWebControls:AuthoringContainer DisplayAudience="AuthorsOnly" runat="server">
<PublishingWebControls:EditModePanel runat="server" PageDisplayMode="Display">
<!-- Conteúdo para utilizadores com permissão de edição vai aqui. -->
</PublishingWebControls:EditModePanel>
<PublishingWebControls:EditModePanel runat="server" PageDisplayMode="Edit">
<!-- Conteúdo para edição vai aqui. -->

</PublishingWebControls:EditModePanel>
</PublishingWebControls:AuthoringContainer>

 

Notamos que há uma separação nítida do conteúdo que se quer que os utilizadores sem permissões vejam, mas se queremos apresentar o mesmo conteúdo para ambos vamos ter de repetir o HTML.

 

O Nosso projecto está pronto para Deploy

 

Deixe um comentário para outras situações não abrangidas aqui.

 

Happy Coding!

 

Escrito por João Tito Lívio

http://msmvps.com/blogs/officept/default.aspx

É MCP e MCTS em SharePoint 2010 Application Development

É Microsoft Most Valuable Professional (MVP) na categoria de Office Systems Development desde 2002

 
Posted em 17-Aug-11
1 Comentários  |  Trackback Url  |  Link para este post | Bookmark este post com:        
 

Links para este post



My Original Articles and Projects for this Year - Compilation

Trackback de Joao Livio { MIX ~ UP on USA} em 29 Jun 2012





My Original Articles and Projects for this Year - Compilation

Trackback de Joao Livio { MIX ~ UP on Europe} em 29 Jun 2012



Comentários


Rodrigo Pinto comentou em Wednesday, 17-Aug-2011
Boas , gostei do artigo, João, parabens. Umas pequenas notas a todos os Sharepointers: Todo o boolean dentro de definições XML dos content types deverá ser sempre em maiúsculas , ou seja TRUE ou FALSE. Caso não o seja é omitido o valor. Em publishing content types customizados NÃO coloquem Inherits ="FALSE",ao fazê-lo, o content type fica indisponível.

Nome:
URL:
Email:
Comentário: