Saturday, October 31, 2009

Resources em SharePoint

Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink
 
Resources em Solução de Sharepoint

Umas das situações que tenho encontrado em algumas soluções na internet, e a utilização no codigo de textos, sem ter a possibilidade de alterar o seu conteudo para outra lingua, sem ser a padrão ou seja a "Inglesa".
Ao realizar este artigo prentendo que os desenvolvedores de Sharepoint tenham a capacidade de disponibilizar as suas soluções que possam ser usadas em várias Linguagem e outros paises que não o de origem.   

Solução SharePoint em Visual Studio 

Para asssociar ao projecto deverá ser criado a pasta "<hive>\12\CONFIG\Resources\" que será de suporte ao ficheiros a traduzir.
[Nome Projecto].resx
[Nome Projecto].pt-PT.resx
[Nome Projecto].en-US.resx

Para utilizar os resources como os ficheiro Features e soluções de apoio de SharePoint que se encontram na pasta Hive"12", como os ficheiros FEATURE.XML deverá ser necessário criar os resources na pasta ""<hive>\12\Resources\".
[Nome Projecto].resx
[Nome Projecto].pt.resx
[Nome Projecto].en.resx


 



 
Para utilizar os resources em código podemos utilizar o seguinte exemplo:
HttpContext.GetGlobalResourceObject("[Nome Projecto]", "[nome da String]").ToString();

 

Para usar resources em modulo de XML
Exemplo Feature.XML:
$Resources:MyResource, MyName



 


Sempre que for necessário adicionar algum texto de apoio directamente nas páginas "ASPX" ou "ASCX", este deverá vir dos ficheiro resx.
Exemplo:
<%$ Resources:[Nome Projecto], [nome da String] %> 




Neste Exemplo é demonstrado a arquitectura da nossa solução tendo uma imagem de como a estrutura dos ficheiros de Visual Studio ira reflectir na Solução de Sharepoint.  
Em Anexo fica a solução que podemo utilizar como ajuda ao desenvolvimento.




 

Instalação da Solução e 


Depois de criar a nossa solução WSP, podemos utilizar a a solução Sharepoint Installer de uma maneira simples, simples.




 
Para utilizar os resources criados que são guardados na pasta Hive""\12\Config\Resources", será ser necessário copiar para o pasta do Site de Sharepoint "c:\inetpub\wwwroot\wss\VirtualDirectories\80\App_GlobalResources" que vai ser utilizado para realizar a tradução da Cultura do Site.
Para realizar esta tarefa a Microsoft disponibilizou uma linha de comandos para copiar estes ficheiros para a pasta de Site de Sharepoint
EXEMPLO:
"Stsadm -o copyappbincontent"


Os novos resources em "\12\Config\Resources" são copiados para o pasta do Site de Sharepoint "c:\inetpub\wwwroot\wss\VirtualDirectories\80\App_GlobalResources"




 
Depois de instalada a solução WSP no site a utilizar é necessário activar a Feature para utilizar a WebPart com UserControl utilizando Resources. 
 

Depois de activada a nossa solução, podemos adicionar a nossa WebPart para ver o resultado final, se o Site estiver como Lingua Base Ingles, entao aparece em "1033", se for em Português aparece o Texto em "2070".



Feito, aqui deixo em anexo a solução que podem utilizar para criar as soluções usando Resources.
Espero que tenham gostado desta solução e que seja bastante útil, as vezes é complicado passar todas as ideias que tenho na cabeça para o papel, sim uma verdadeira tempestade...
Bom aqui mando um abraço de Portugal para toda a gente :) ......


Sharepoint Articles

Google Docs, is a very powerfull, useful and handly tool, have the hability to create Web Form in a easy way, today i use to get what sharepoint users want to know about Sharepoint.

Pagina de Boas Vindas



Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink

Contexto Página de Bem Vindo 

A página de Bem Vindo é a primeira página de apresentação e rosto do Site ou Area que o utilizador está a aceder, onde se encontra um resumo de toda a informação que podemos aceder. 
Para mim é uma das principais páginas das Intranet ou Internet, os primeiros 10 segundos que uma pessoa utiliza para analizar, navegar e entender a informação que página disponibiliza, pode ser o necessário para ter um cliente satisfeito e um caso de sucesso com Cliente/Organização utilizando Site de Sharepoint. 

Acontece que nem sempre prentendemos que a pagina de apresentação seja a default, que pode ter pouca informação e não estar conforme a organização pretende, para isso podemos cria uma nova página e alterar atráves da opção "Welcome Page". 
A pior parte é a necessidade activdade de pessoas external ou tecnicas para realizar a administração desta Tarefa, quando estamos a realizar desenvolvimento e estamos a criar 300 paginas nao podemos dizer aos técnicos para realizar esta tarefa, algo muito pouco profissional, para isso teremos que realizar atraves de Features....
 







 

Criando Feature "Pagina de Boas Vindas"  

 

Features em Sharepoint é o Paradigma definido pela Microsoft para realizar passagem de soluções desenvolvidas em Visual Studio, se prentendemos utilizar controlo e desenvolvimento a medida a funcionalidade por defeito .

Para realizar a nossa solução utilizei as seguintes Soluções:

 

Visual Studio 2008


DLL Sharepoint


 

As DLL de apoio ao desenvolvimento pode ser encontradas onde se encontra instalado o Sharepoint, por defeito na pasta "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI", com os nomes: 
Micrsoft.SharePoint.dll 
Micrsoft.SharePoint.Publishing.dll 


 

Criamos uma Solução com o WSP Builder e selecionamos nos template "Feature with receiver" e criamos a estrutura como indicada na imagem em baixo indicada.




 

"Feature Exemplo"

 

Feature.xml

Tem como função definir a estrutra da solução a adicionar no Sharepoint, tendo definido um conjunto de metodos e Ficheiros de apoio a nossa solução.

 





Elements.xml

Ficheiro de apoio a Feature.xml onde se encontra definido as paginas a passar





Name: Nome do Modulo onde definimos a página a copiar para o Site de Sharepoint em modo Ghost*

URL: Link da Document Library onde as páginas irão ser adicionadas e actualizadas.

RootWebOnly: Esta propiedade tem como função limitar a copia da pagina a Raiz do Site de SharePoint.

Path: Pasta da Feature onde se encontra a página a passar a copiar para o Site de SharePoint


*GhostTableInLibrary são ficheiros que se encontram em FileSystem da hive e"12" que se reflecte em páginas de site em Sharepoint de apoio em futuras actualizações utilizando Features, qualquer alterações realizada com o Sharepoint Designer as paginas ficam UnGhosted não sendo possivel actualizar com futuras actualizações das Features.


FeatureCode Exemplo.CS

Classe de activação da Feature onde definimos a pagina "PageBoasVinda.aspx" como a primeira Página de acesso.

 
class Exemplo : SPFeatureReceiver 

public override void FeatureActivated(SPFeatureReceiverProperties properties) 

SPSecurity.RunWithElevatedPrivileges(delegate() 

if (properties != null) 

SPSite site = properties.Feature.Parent as SPSite; 
SPWeb web = site.RootWeb; 
PublishingWeb pubWeb = PublishingWeb.GetPublishingWeb(web); 
if (web.GetFile(String.Concat(pubWeb.PagesList.RootFolder.Url,"/PageBoasVindas.aspx")).Exists)
SPFile homePageFile = web.GetFile(String.Concat(pubWeb.PagesList.RootFolder.Url,"/PageBoasVindas.aspx")); 
pubWeb.DefaultPage = homePageFile; 
pubWeb.Update(); 


});

}


Instalação da solução WSP e Instalação da Feature no site de SharePoint





 


 

Depois de activar a Feature a página "PageBoasVindas.aspx" será copiada para a "Document Library Pages" e fica definido como a primeira página de acesso da Aréa .

 




 

Sempre que precisarem realizar alterações da Pagina, podem alterar o seu conteudo no Visual Studio e realizar o upgrade da Solução, através desta aplicação de uma maneira simples.

Ena tanta coisa para ajudar e sem perder tempo..... :)

Fica em Anexo a Solução em Visual Studio para ajuda dos desenvolvimentos. 
Anexo

Quando tudo pareçe que vai cair, este Site amigo está aqui para ajudar :)

Mais um artigo daqueles simples, mas espero que seja bastante util e que tenham gostado..... 
Um grande abraço.

Tuesday, October 20, 2009

SharePoint 2010 Hands-on Labs


Yes, Sharepoint 2010 is being releasae and all material will support him, here link you can download

Microsoft SharePoint Server 2010 Evaluation Guide

SharePoint 2010: Getting Started with Development on SharePoint 2010 Hands-on Labs in C# and Visual Basic

Microsoft SharePoint Server 2010 Evaluation Guide

SharePoint 2010: Getting Started with Development on SharePoint 2010 Hands-on Labs in C# and Visual Basic

SharePoint 2010: SharePoint Developer Platform Wall Poster

SharePoint 2010: Developer and IT Professional Learning Plan

SharePoint 2010: Professional Developer Evaluation Guide and Walkthroughs

Search Environment Planning for Microsoft SharePoint Server 2010

Design Search Architectures for Microsoft SharePoint Server 2010

Search Architectures for Microsoft SharePoint Server 2010

Getting started with business intelligence in SharePoint Server 2010

Topologies for SharePoint Server 2010

Hosting Environments for SharePoint 2010 Products

Cross-farm Services in SharePoint 2010 Products

Tuesday, October 13, 2009

Anexos em Listas de SharePoint


Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink


Anexos em Listas de SharePoint



Sharepoint Designer permite ao utilizador a possibilidade de criar formulário personalizados para gestão das listas de uma forma rápida através da DVWP "DataView WepPart", mas por defeito não existe a possibilidade de listagem e edição dos anexos associados as Listas, este pequeno manual ajuda a configurar o nosso formulário a interagir com anexos das Listas.  

Formulário de Lista

Primeiro devemos abrir a nosso Site de Sharepoint e criar um nova Página ASPX, "File>New>ASPX".

Esta nova páginas ira servir de base para o nosso formulário personalizado, para adicionar o formulário da Lista ex."Contacto" a página devemos selecionar as seguintes opções, "Insert>SharePoint Controls>Custom List Form".



Ao seleccionar a opção podemos escolher uma Lista existente no site de Sharepoint  que irá servir de apoio ao nosso, formulário.
Após escolha da Lista podemos escolher o tipo de formulário que pretendemos, "Novo, Edição ou Listagem da Lista", para este exemplo vou seleccionar a opção "Edição"

Editar anexos da Lista


Por defeito ao escolher a vista não existe a possibilidade de visualizar/editar os anexos da nossa lista para resolver esta situação será necessario adicionar a noss DVWP "Data View WebPart" o control: 
<SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/>
Este controlo tem como função a listagem os anexos associados a lista.



Após adicionar a controlo podemos guardar a nossa páginas como "contacts.aspx" e aceder página, está ira editar os contactos do utilizador com a possibilidade de alterar o seu conteudo e adicionar ou remover os anexos associados a item da Lista. 

E desta forma simples podemos criar formulários personalizados com possibilidade de associar e editar anexos . J

Monday, October 12, 2009

Erro 312 (net::ERR_UNSAFE_PORT)

I was using firefox to access a new Sharepoint site with a port number:
http://[url]:6000
then
"Erro 312 (net::ERR_UNSAFE_PORT): Erro desconhecido."

What a strange error, this only happen on Firefox and Chrome, IE works fine

The problem: Firefox and Chrome have security properties about ports diferent 80 and block access....
So how to override this situation,
After a litle search a College sugest me this solution, only work with Firefox,

On url write
"about:config"
click next
add new Property "String"
network.security.ports.banned.override

Then add the port Number:
6000
and now works like a charme....





Friday, October 09, 2009

Exportar Excel para Lista de SharePoint


Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink


Exportar Excel para Lista de SharePoint



Existe em várias empresas que são governada pelo Excel e pela sua capacidade e facilidade no tratamento da informação, Excel 2007 foi mais um passo positivo para a continuação da saga Microsoft Office, um excelente produto e uma solução para muitas empresas.
Mas o que acontece quando começam a existe muitos documentos excel com diferente conteúdo de informação importante para a nossa organização, essa informação pode ser utilizada para interagir directamente com o portal de SharePoint e o Excel de uma forma muito simples.

Este exemplo demonstra como podemos importar o documento de excel para uma Lista de Sharepoint de uma forma simples e directa, esta funcionalidade já existia na antiga versão do Office.

Preparar e Formatar Documento Excel para importação 

O primeiro passo será definir qual a informação que deverá ser importada e como esta será tratada para o Sharepoint "quais as colunas de devem ir, os valores que podem importar", não vá passar valores confidenciais ou considerado por excesso.

Depois de definir as colunas e os valores e seleccionar a zona a formatar, devemos escolher a opção "Insert>Table" para definir a zona como Tabela a ser Importada. 





Criar e Importar conteúdo para nova Lista

Com a zona  formatada para Tabela, seleccionamos a opção "Design>Export>Export Table to SharePoint List"




 
Após seleccionar aparece uma janela para configurar a nossa Lista, onde devemos adicionar o Site de SharePoint onde pretendemos importar e o nome da Lista a criar.  



 

Após definir, site, Nome e descrição, definimos os Tipo de campos a importar, desde campos de Texto, numérico entre outras opções, depois de realizar as alterações pretendida podemos fechar e irá realizar criar a Lista e importar o seu conteúdo do Excel.




 

Por defeito ao criar a Lista utiliza a vista com integração Office Access, se o utilizador não tive instalado o Microsoft Office é possivel fazer o download da Activex e DLL necessárias de uma maneira gratuita e poder interagir com SharePoint.


Office 2003 Add-in: Office Web Components

http://www.microsoft.com/downloads/details.aspx?FamilyId=7287252C-402E-4F72-97A5-E0FD290D4B76&displaylang=en





Mais um artigo para juntar ao saco, um grande abraço, SharePoint 2010 Beta está a porta. J

Wednesday, October 07, 2009

Compress ViewState em Páginas SharePoint

Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink


Comprimir ViewState em Paginas de SharePoint


Um dos grande desafios dos desenvolvedores é a capacidade de reduzir o tamanho das paginas ao mínimo com a informação estritamente necessária, tendo a ViewState como função de persistir o estado e conteúdos da paginas para realizar um postback e retornar os valores que pretendemos, de uma maneira segura e encriptada.

Neste artigo prentendo utilizar os Metodos recomendados pela Microsoft para realizar a compressão das paginas de Sharepoint.
Understanding ASP.NET View State

Validar tamanho da "ViewState" em Paginas Default SharePoint


Para verificar o tamanho da View State, das paginas por defeito 
Feito, agora abri-mos a paginas, no "Internet Explorer>View>Source" e procurar a variavel "VIEWSTATE".



Código para compressão da "ViewState"

Para realizar a compressão é necessário criar uma "class" onde se derivam as Metodos para as Páginas de SharePoint.



Página de referencia:

Para comprimir a viewState é necessário derivar das seguintes 2 Classes:

using Microsoft.SharePoint.WebPartPages;
.....
 public class CustomWebPartPage :  WebPartPage

OU

using Microsoft.SharePoint.Publishing;
.....
public class CustomPublishingLayoutPage : PublishingLayoutPage

Em anexo ficar o ficheiro "CustomWebPartPage.cs"

Para compilar é necessário criar uma "Strong Name Key" e criar uma DLL.
Após a DLL ser criada será necessário registar na GAC, "c:\WINDOWS\assembly" e adicionar a nova Tag como SafeControl na Web.Config.

Para substituir as referencias as Paginas de Sharepoint, podemos abrir o SharePoint Designer e substituir as referencias das páginas de SharePoint para as nossas novas Classes. 

Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage, Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture....."


e alterar para a nova referencia.


Feito, agora abri-mos a pagina de SharePoint, e no Internet Explorer selecionar a opção "View>Source" pesquisa pela variável "COMPRESSEDVIEWSTATE".



A compressão da "ViewState" pode chegar a 20% do tamanho original, o que representa um ganho significativo de tráfico de Internet, isso é óptimas noticias. J

Menos Tráfico significa mais rapidez, mas obriga a um aumento do processador para compressão e descompressão do seu conteúdo, NADA É GRATIS.


Existe outras boas práticas recomendadas pela Microsoft para tirar maior performance das nossas paginas de conteúdos.

How to Optimize a SharePoint Server 2007 Web Content Management Site for Performance

Feito, toca a comprimir a nossas ViewStates e diminuir o tamanho da nossas páginas. 

Espero que tenham gostado, um grande abraço. J


Sunday, October 04, 2009

Publicar Paginas personalizadas pelo Sharepoint Desinger

Publicar Modelos Paginas personalizadas pelo Sharepoint Desinger

Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink

Contexto:

Boas este pequeno tutorial  tem como objectivo criar modelos de pagina personalizadas utilizando o Sharepoint Desinger.

O SharePoint  por si já é um ferramenta muito completa, existe a necessidade para cada organização de criar modelos paginas para apoio ao conteúdo e modo a facilitar a gestão e tornar personalizada a organização o conteúdo a adicionar.


Solução:

Para realizar estas operações precisas do MOSS 2007 e activar o modelo de gestão de Conteúdos que se encontra no Modelos de Site Publishing.

Primeira Tarefa será realizar o download do SharePoint Designer:

SharePoint Designer

http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42&displaylang=en

 

  1. Abrir o SharePoint Designer e aceder ao Site de SharePoint, File>SharePoint Content.

ContentType5.JPG

  1. SharePoint Publishing>Page Layout”, onde Seleccionamos os tipo de Conteúdo para realizar o Artigo personalizado.
    1. Definimos o nome do Modelo da Página e o tipo de conteúdo utilizar.
ContentType6.JPG


  1. No lado direito do SharePoint Designer, com a opção “Toolbox”, onde será listados os diversos campos que podemos utilizar para criar a nossa página customizada.ContentType7.JPGApós adicionar os Campos as paginas podemos pré visualizar ”Split” a página e guardar a paginas em “_catalogs/masterpages”.

 

ContentType11.JPG

Para criar um artigo através do modelo criado, escolhemos em “Acções do site>Criar Página

ContentType9.JPG

  1. Seleccionar o modelo de pagina criada pelo SharePoint, definir o titulo e descrição da página.

ContentType10.JPG


  1. Após criar a pagina, podemos criar os artigos com os campos que adicionamos, de uma maneira muito simples J.

ContentType13.JPG


Espero que gostem e que seja util para quem começa. J

 


Thursday, October 01, 2009

Customizar Pesquisa

Autor:André Lage
Publicação:__________
Download:Documento
(EN)TranslateLink

Parametrizar e Alterar Controlo de Pesquisa MOSS 2007

Hoje vou falar que tem tanto de útil como de dor de cabeça.

O control de Sharepoint para pesquisa é bastante util para realizar as filtragens das nossas pesquisas

Cenário:

O control de pesquisa é bastante util mas difícil de trabalhar obrigando alguma imaginação e funcionalidades de Features com alteração de CSS para resolver um conjunto de problemas associado a Layout e opções do Controlo.

Por isso fazo um pequeno artigo de como alterar o controlo, que não e possivel através do OOB "Out of the Box" de Sharepoint, ora digam lá quem é amigo. 

J

 

Adicionar a opção de Pesquisa no Site de SharePoint

Para adicionar o nosso controlo de Pesquisa no site de SharePoint, podemos abrir a MasterPage Principal e adicionar a seguinte Tag, normalmente dentro da ContentPlaceHolder "PlaceHolderSearchArea".


<asp:ContentPlaceHolder id="PlaceHolderSearchArea" runat="server">
    <SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox" />
</asp:ContentPlaceHolder>


Definir "This Site" como Scope por Defeito

Quanto temos grande quantidade de Scopes a pesquisar a opção "This Site" não se consegue definir por defeito na pesquisa. 
Para realizar a gestão do controlo de Search é necessário aceder a Feature OSearchEnhacedFeature.
A feature tem um conjunto de parâmetros que podemos parametrizar.
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\FEATURES\OSearchEnhancedFeature
Ficheiro a Parametrizar:
SearchArea.xml


Propiedade a Alterar para definir a opção de pesquisa "This Site" por defeito
 <Property Name="DropDownMode">ShowDD_DefaultContextual</Property>

XML Final:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="
http://schemas.microsoft.com/sharepoint/">
    <Control 
        Id="SmallSearchInputBox" 
        Sequence="15"
        ControlClass="Microsoft.SharePoint.Portal.WebControls.SearchBoxEx" ControlAssembly="Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">
 <Property Name="GoImageUrl">/_layouts/images/gosearch.gif</Property>
 <Property Name="GoImageUrlRTL">/_layouts/images/goRTL.gif</Property>
 <Property Name="GoImageActiveUrl">/_layouts/images/gosearch.gif</Property>
 <Property Name="GoImageActiveUrlRTL">/_layouts/images/goRTL.gif</Property>
        <Property Name="UseSiteDefaults">true</Property>
 <Property Name="FrameType">None</Property>
        <Property Name="ShowAdvancedSearch">true</Property>
 
<Property Name="DropDownMode">ShowDD_DefaultContextual</Property>
    </Control>    
</Elements>



Definir Opção Pesquisa avançada


Para adicionar a opção "Pesquisa Avançada" é necessário adicionar a seguinte opção.

<Property Name="ShowAdvancedSearch">true</Property>



Alterar imagem de pesquisa 



A tag GoImageUrl tem a função onde se encontra imagem por defeito.
 <Property Name="GoImageUrl">/_layouts/images/gosearch.gif</Property>

Esconder Lista de Scopes a Pesquisa

Para esconder a Lista de Scope de pesquisa podemos utilizar o nosso *.Css personalizado e adicionar a seguinte tag:
select.ms-searchbox { display:none; }

Ou podemos alterar a feature "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\OSearchEnhancedFeature
Tag para esconder Lista de Scopes de pesquisa. 
<Property Name="DropDownMode">HideScopeDD</Property>


Documento de apoio:

Remover a opção "This Site" Lista a Pesquisar



Tag para remover a opção "This Site" da Lista da Scopes a pesquisar.
<Property Name="DropDownMode">ShowDD_NoContextual</Property>

Tambem podemos utilizar Javascript para remover "This Site" da Lista de Scopes a pesquisar.

Podemos definir na Masterpage de Sharepoint, um pedaço de codigo Javascript para esconder a opção "This Site".

Na tag Body adicionamos propiedade "onload" a regra em javascript para esconder na Lista das Scopes a pesquisa a opção "This Site" utilizando o ControlID associado ao Control de Pesquisa,
exemplo:
"ctl00_PlaceHolderSearchArea_ctl01_SBScopesDDL"

<script type="text/javascript">
        function removeOption(checkChar) {
            var x = document.getElementById("ctl00_PlaceHolderSearchArea_ctl01_SBScopesDDL");
            for (i = 0 ; i < x.length; i++) { if (x.options[i].text.indexOf(checkChar) != -1) { x.remove(i); i--; } } }
</script>


<BODY scroll="yes" onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') { _spBodyOnLoadWrapper(); removeOption(':'); }">



Importante: Sempre que alterar-mos a Feature  "OSearchEnhancedFeature" de pesquisa é necessário realizar IISRESET para actualizar o Control.


Feito, alteramos a parametrizamos o control para nosso melhor controlo.

Espero que tenham gostado, um grande abraço. J