Sunday, November 22, 2009

Configurar WebPart para Meteorologia

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

Configurar WebPart para Meteorologia
O  Sharepoint é daquelas ferramentas que devemos parar e explorar antes de realizar desenvolvimento, uma das grande capacidade do Sharepoint é a sua integração com outras tecnologias Web o que torna bastante flexivel e toda a personalização das paginas simples e directas.
Para este tipo de desenvolvimento, o sharepoint tem uma Webpart chamada "DataViewWebpart" que realiza chamada a dado através de diferentes camadas de dados, desde Listas de Sharepoint, WebServices, Banco de Dados e XML.
Para desenho da Webpart utilizei a estrutra XSL "EXtensible Stylesheet Language" que é uma camada de Desenho que serve para modelos em diferentes Webpart, desde que tenha os mesmo tipo de dados a receber.
Neste artigo mostra como podemos utilizar os acessos a Dados XML em WebPart com Desenho XSL, tendo como finalidade criar uma WebPart de Meterologia.

Configurar XSL para conteudo

Antes de começar a criar a WebPart temos que desenhar a estrutura como a nossa Webpart vai ficar, para isso podemos utilizar o Sharepoint Designer 2007 e utilizar a (DVWP) DataViewWebPart, para chamar a nossa Datasource precisamos chamar o WebService de Meterologia da Google.
Exemplo: 
WebService da Google para Meterologia.*
Autor

* Google disponibiliza um webservice para aceder ao estado tempo através de um conjunto de parâmetros.
Parâmetros:
Weather: Cidade onde estamos a pesquisar a Meterologia
hl: Lingua em que o conteudo vem traduzido, pt-PT(Portugal), pt-BR (Brasil)


Ao chamar o WebService, pretendo que fique em ficheiro XML para poder trabalhar e realizar alterações.
Depois de criar o ficheiro de XML, podemos utiliza a opção "Datasource Library" para fazer uma pré-visualização dos nossos dados e selecionar e importar.

Depois  seleccionamos os campos a importar adicionamos a Datasource e os campos a importar de uma maneira simples simple :).

 Depois de importar os campos que queres utilizar dos WebServices podemos utilizar o HTML para desenhar o resultado final da Webpart.


Depois de criado a alterado dados do output da nossa WebPart, devemos copiar o seu conteudo desde 
"<xls:stylesheet" até "</xls:stylesheet">, este conteudo irá ser utilizado para configuração da XML WebPart.

Configurar XML WebPart

Já na página de Sharepoint, adicionamos a nossa "XML WebPart" e podemos começar a configurar.


No modo de Edição da WebPart, podemos definir de onde provem os nossos dados de XML, neste caso eu defini o nosso WebService da Google para meterologia.
No campos:
XML Link: Devemos adicionar o Link onde se encontra o nosso conteudo de XML neste caso o WebService da Google.
XSL Editor: Da cópia do conteudo do XSL realizada no Sharepoint Designer 2007 devemos passar para este editor de conteúdo, onde irá ficar a estrutura da WebPart de Meteorologia. 


Feito, agora é so fazer "OK" e a nossa WebPart está pronta para ficar disponível na página de Sharepoint.


Aqui temos mais um exemplo de como podemos utilizar o que vem por defeito do Sharepoint sem realizar nenhum desenvolvimento, apenas alteração de XSL e serviços disponibilizados pela internet, de uma maneira, simples simples.
Anexo  "Tempo _São Paulo_ - By André Lage.dwp"
Anexo "Microsoft Stock" - MSFT_Stock.dwp
Anexo "Graficos Bolsas" "Google, Microsoft, Oracle, Sybase"
Exemplo:

 

Se pretenderem mudar as imagens que o serviço da API da google disponibiliza para algo mais personalizado podes alterar o caminho.


images/weather/chance_of_rain.gif
images/weather/sunny.gif
images/weather/mostly_sunny.gif
images/weather/partly_cloudy.gif
images/weather/mostly_cloudy.gif
images/weather/chance_of_storm.gif
images/weather/rain.gif
images/weather/chance_of_rain.gif
images/weather/chance_of_snow.gif
images/weather/cloudy.gif
images/weather/mist.gif
images/weather/storm.gif
images/weather/thunderstorm.gif
images/weather/chance_of_tstorm.gif
images/weather/sleet.gif
images/weather/snow.gif
images/weather/icy.gif
images/weather/dust.gif
images/weather/fog.gif
images/weather/smoke.gif
images/weather/haze.gif
images/weather/flurries.gif



Um grande abraço a todos e espero que tenham gostado de mais este Artigo.


Wednesday, November 18, 2009

Sharepoint 2010 Beta is Official and Out

Yep,

Sharepoint 2010 Beta is Official and Out and ready to Download.
http://sharepoint2010.microsoft.com/try-it/Pages/Trial.aspx

Tuesday, November 17, 2009

Menu Lista de colaboradores

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


Menu Lista de colaboradores


Este Artigo é dedicado a todos os colunistas do CanalSharepoint, como mostra da capacidades do Sharepoint e readaptar os Layouts para divulgar a comunidade. 
Espero que gostem. ;) 

OverView


Esta WebPart encontra-se em desenvolvimento para integração com Lista de Sharepoint, enquanto se encontra em desenvolvimento deixo um amostra do resultado final, utilizando um (CEWP) Content Editor Web Part, 

Selecionar a opção "Add a Web Part>Choose template Gallery>Import" depois realiza-mos upload do nosso anexo.

 




Com a webPart adicionada realizamos o Drag and Drop para a Webpart Zone onde irá estar a nosso menu Personalizado do CanalSharePoint :). 



 
Feito, a parti de aqui podemos seleccionar a opção "Canal Sharepoint Colunistas", onde irá Listar os Colunistas com uma pequena descrição e imagem associada, caso o Colunista tenha um Link, este encontra-se associado.

Este Layout de Menu  foi criado por Christophe http://pathtosharepoint.wordpress.com/ é bastante prático e podem adicionar como exemplo, de como se utiliza os Layouts de Menu de Sharepoint de uma maneira personalizada.  

Anexo "ColaboradoresCanalsharepoint.dwp"
Mais um artigo e um grande abraço para quem ler este artigo.



SharePoint 2010 Beta Release on MSDN and Technet

Yes news run faster than fire, Technet and MSDN have release the for some Level the Versions of Sharepoint 2010, go and see if you have access and can download, i already download...



PS:
Only for
Available to Levels: TechNet Plus SA Media; TechNet Plus (Retail); TechNet Direct (Retail); TechNet Plus (VL); TechNet Plus Direct (VL); TechNet Cert Partner; TechNet Gold Cert Partner; TechNet Plus Consumer Service Professional Pilot;

Thursday, November 12, 2009

Ghosted e UnGhosted em Sharepoint

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


Ghosted e UnGhosted em Sharepoint


Esta é uma daquelas questões que um antigo colega de trabalho me abordou sobre a diferença entre estes 2 conceitos "Ghosted e UnGhosted".

OverView


Com o Sharepoint as pagina de .aspx podem ser renderizadas de 2 formas possíveis, quando um pedido e recebido para uma páginas de aspx, o filtro de Sharepoint isapi determina quem ira tratar a renderização da paginas, ou o ASP.Net ou o "Parser SafeMode do Sharepoint", este metodo apenas existe com o Sharepoint Services.

 





Por defeito as páginas que se encontram na pasta 12"Hive" são compiladas via ASP.NET, 



Todas as páginas de site de Conteudo Sharepoint estão alojadas em Base de dados. Ou seja para cada documento, vamos encontrar um linha na tabela de documentos existente no documento. O ficheiro actual é guardada numa linha da Tabela de Base de dados. Isto é verdade para todos os ficheiros. Mas existe uma excepção, algumas páginas não são guardadas em Base de dados, em vez disso são guardadas em File System, mais concretamente na pasta 12"Hive" da Instalação do SharePoint, ai estão as nossas paginas Ghosted


Se a Coluna SetupPath da BD de Conteúdos de Sharepoint sobre a página de ASPX estiver como null entao é um ficheiro Ghosted  e vai ser compilada em File System 12"Hive" com parse de ASP.NET, se o Campo da BD "SetupPath" estiver preenchida entao a página esta Unghosted e vai utilizar o SafeMode parse do Sharepoint Services, com as regras definidas.
Podemos visualizar a diferença das paginas de Sharepoint e File System atraves dos url com extençao "/_Layouts/*" e "/_vti_bin/*" para WebServices. 

Quando adicionamos um pedaço de código ASP.NET, em uma página de .ASPX que esteja Unghosted, ou seja dentro do Site de Sharepoint o Filtro ISAPI activa o " Parser SafeMode do Sharepoint" para Sharepoint Services retornando a mensagem de erro.

Exemplo:
Adicionar a Tag de Código ASP.NET numa página no Site de Sharepoint Unghosted:
"<%= ctrl.ClientID %>" 
OutPut: Error: Parser Error Message : Code blocks are not allowed in this file

Por resolver este problema, temos que adicionar na Web.Config a Tag "PageParserPaths" com o caminho da Pagina para considerar a pagina segura para compilar código.
<PageParserPaths>
        <PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" />
</PageParserPaths> 

Qual é a diferença em utilizar o SafeMode parse e o ASP.NET?


Compilação do Código.

ASP.NET vai realizar o parse da página na primeira renderização e compilar em uma Assembly.

O Metodo "SafeMode Parse" NÃO ira compilar as Páginas está desenhada para criar uma estrutura de Objectos da página. Se encontrar um linha de código "Server Side" na página "ASPX ou ASCX" o metodo SafeMode parser nao deixa a página renderizar. Adicionalmente, os objectos marcados como "runat=server" que podem ser instanciado são os objectos que podem utilizar na Lista de SafeControls que podemos utilizar no desenvolvimento das nossas páginas. 



Porque existe 2 tipos de metodos de renderização?

Segurança e Estabilidade.



O Metodo SafeMode parse  para paginas unghosted serve para proteger de codigo malicioso e injecção de código em paginas com a função de sobrecarregar o servidor e desligar os serviços associados ao Site de Sharepoint.
Se não tivéssemos o Safe Mode Parser todas as páginas teriam de ser compiladas em ASP.NET ou seja teriam que ficar alojadas em Memoria, agora imaginem milhares de páginas, a quantidade de memoria necessária seria enorme.Com a utilização do Virtual Server para WSS, está desenhado para realizar a gestão de um pequena quantidade de paginas compiladas em vez de compilar todas as páginas existentes no Sharepoint o que faz um boa gestão da Memoria, optimo :).



Quais as razões para passar uma página Ghosted para UnGhosted?

As paginas Ghosted passam para Unghosted quando são alteradas no Sharepoint, normalmente são alteradas através de software de apoio ao Desenvolvimento como o SharePoint Designer 2007, ou quando estamos a realizar a carregamento de uma página numa Document Library, o seu conteúdo ira ser registado na BD do Sharepoint, passando automaticamente para UnGhosted.



O que fazer quando as paginas estão Unghosted?


Gary Lapoint desenvolveu um conjunto de linhas de comando para repor as paginas de Sharepoint que foram editadas pelo Sharepoint Designer 2007 ou carregadas no sharepoint.






Disponibiliza um conjunto de Linha de comando para Listagem das paginas que estão Unghosted.

Exemplo:
stsadm –o gl-enumunghostedfiles -url "http://intranet/" -recursesubwebs


Para alterar o estado Unghosted para páginas Ghosted será necessário correr a Linha de comandos.

Exemplo:

stsadm –o gl-reghostfile -url "http://intranet/sitedirectory/lists/sites/summary.aspx" –scope file -force



Para esta linha de comando existe podemos usar as propriedades para diferente tipo de Scopes:

-Scope "Webapplication | Site | Web | List | Page"



Este Artigo e um pouco extenso mas importante para quando realizamos actualizações das páginas e acima de tudo diferenciar o que é ASP.NET e o que é Código de SharePoint.

Mais um artigo e um grande abraço para quem ler este artigo.



Wednesday, November 11, 2009

Os filhos perdidos da WebPart

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

Os filhos perdidos da webpart


    Parece um estranho titulo para um artigo, parece mais um titulo de filme de baixo orçamento, mas toda a gente fala da WebPart e de como criar uma WebPart, até aqui tudo bem, mas queremos ir um pouco mais alem, ou seja começar a personalizar e utilizar as verdadeiras capacidade das Webpart, quem já teve que realizar uma WebPart robusta e fiavel, o simples "Hello World" não dá resposta :P.

Este artigo tem como função ajudar e a entrar mais a fundo no desenvolvimento das WebParts, pegar nas partes mais aborrecidas e difícil de perceber, chamar aquela parte que os 500 mil artigos de como criar um WebPart em Sharepoint não explica....

Eh eh.... :)

Definir novas Propriedades na Edição da Webpart



    No desenvolvimento das Webpart umas das primeira tarefas a realizar é a definição de propiedade para guardar um conjunto de informação que irá servir de apoio ao desenvolvimento da WebPart.
Esta informação vai estar sempre associada a Webpart sem que tenhamos perda de informação ao reiniciar o servidor ou reiniciar os serviços de IIS.  

As propriedades podem ser definidos em vários tipos de variáveis.
  • String
  • Boolean
  • Enum

Para começar a definir as propiedades e necessário chamar um conjuntos de objectos da Webpart para categorizar e definir a sua área de acção, essas áreas pode-mos definir um 

WebBrowsable: A propriedade está visivel ou não na Edição da WebPart
Category: Categoria onde se insere a propiedade.
FriendlyName: Nome da area da propiedade
Description: Pequena descrição da utilidade da propriedade

Exemplo de criação de propriedade para Texto e CheckBox. 

Propriedade Redirect URL:

        //Propriedade Texto
[WebBrowsable(true)] 
[Category("Redirect Url")] 
[PersistenceMode(PersistenceMode.InnerProperty)] 
[Personalizable(PersonalizationScope.Shared)] 
[FriendlyName("Redirect Url OK")] 
[Description("Redirect Url OK")] 
public string RedirectURLOK 

get { return _RedirectURLOK; } 
set { _RedirectURLOK = value; } 
}
        
        //Propriedade CheckBox
        [WebBrowsable(true)]
        [Category("Redirect Url")]
        [PersistenceMode(PersistenceMode.InnerProperty)]
        [Personalizable(PersonalizationScope.Shared)]
        [FriendlyName("Active Redirect URL OK")]
        [Description("Active Redirect URL OK")]
        public bool ActiveOK
        {
            get { return _ActiveOK; }
            set { _ActiveOK = value; }
        }

O resultado da nossa Propriedade:


Exemplo de criação de propriedade para DropDown. 

Propriedade Cores "Para escolher uma propriedade de uma  Lista de valores, devemos criar um enumerate":

//Propriedade Dropdown
public enum cores
{
amarelo = 0,
vermelho,
verde};

protected cores _cor;

[WebBrowsable(true)]
[Category("Cores")]
[PersistenceMode(PersistenceMode.InnerProperty)]
[Personalizable(PersonalizationScope.Shared)]
[FriendlyName("Escolher Cor")]
[Description("Escolher Cor")]
public cores _Cor
{
get { return _cor; }
set { _cor = value; }
}

O resultado da nossa Propriedade:


Desenho do Menu de Edição da WebPart  "EditorPart, ToolPart"


Com a evolução dos Sharepoint com as diferentes versões "Wss2.0/Wss3.0" e "SPS2003/MOSS2007" o Controlo WebPart tem sofrido algumas alterações para tornar mais rica a experiência para o utilizador.  

Quando foram utilizadas as WebPart em  "Wss2.0/SPS2003" estas tinham a class "ToolPart" que dava a capacidade de desenhar controlos na WebPart para ajudar a configuração desta, esta class vinha do Objecto "System.Web.UI.WebControls.WebParts.WebPart".  

Com as  WebPart existentes em "Wss3.0/MOSS2007" o objecto "System.Web.UI.WebControls.WebParts.WebPart" manteve-se, sendo derivadas dessa class outra do tipo "Microsoft.SharePoint.WebPartPages.WebPart" onde existem novas funcionalidade para ajuda ao desenvolvimento entre elas a class "EditorPart".

Essas Classes são bastantes úteis quando estamos a desenhar a nossa WebPart e controlos de apoio com regras de funcionalidade de muito especifica, aqui fica um exemplo de como podemos chamar esta classes. 

 public class CustomWebPart : Microsoft.SharePoint.WebPartPages.WebPart
    {
..........
//Metodo para Chamar as Classes de Desenho Gráfico "EditorPart"
public override EditorPartCollection CreateEditorParts()
        {
            List<EditorPart> editorParts = new List<EditorPart>(1);
            EditorPart item = new MenuListEditorPart();
            item.ID = this.ID + "_mailEditorPart";
            editorParts.Add(item);
            return new EditorPartCollection(base.CreateEditorParts(), editorParts);
        }

//Metodo para Chamar as Classes de Desenho Gráfico "ToolPart"
 public override ToolPart[] GetToolParts()
        {
            ToolPart[] toolparts = new ToolPart[3];
            WebPartToolPart wptp = new WebPartToolPart();
            CustomPropertyToolPart cptp = new CustomPropertyToolPart(); 
            WebToolPart ctp = new WebToolPart();

            toolparts[0] = wptp;
            toolparts[1] = cptp;
            toolparts[2] = ctp;

            return toolparts;
        }
        .............
}

Com Métodos criados na Class Principal então podemos começar a derivar.


EditorPart

  • Desenho Gráfico do Topo da webPart

    using System;
    using System.Collections;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;

    public class MenuListEditorPart : EditorPart

     protected override void CreateChildControls()
        {

                .....Adicionar e Desenhar os controlos para o Topo de Edição da WebPart

         }



Imagem Exemplo:



 

ToolPart

  •  Desenho Gráfico do fundo do modo de edição da WebPart.

using System;
using System.Collections.Generic;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using Microsoft.SharePoint.WebPartPages;
using Microsoft.SharePoint;
using System.Drawing;
using Microsoft.SharePoint.WebControls;

class WebToolPart : ToolPart

protected override void CreateChildControls()
        {

                .....Adicionar e Desenhar os controlos para o fundo de Edição da WebPart

         }


Imagem Exemplo:






Novas opções de Menu da WebPart

Umas das grandes capacidades da WebPart a sua flexibilidade e a facilidade em disponibilizar a informação em todas as formas, como no Menu da propia webPart.




Para ter um resultado final como na imagem de anexo, vai ser necessário utilizar o metodo "WebPartVerbCollection" para criar novas opções de Menu da WebPart.


Pequeno exemplo:



 public override WebPartVerbCollection Verbs

        {

            get

            {

                List<WebPartVerb> verbs = new List<WebPartVerb>();

                WebPartVerb verb1 = new WebPartVerb(

                    this.ID + "_docLibVerb", String.Format("window.location.href = '{0}'", "http://spupload.codeplex.com"));

                verb1.Description = ShortcutDescription;

                verb1.Text = verb1.Description;

                verb1.ImageUrl = "/_layouts/images/HTM16.GIF";

                    verbs.Add(verb1);

                WebPartVerbCollection allverbs =

                     new WebPartVerbCollection(base.Verbs, verbs);

                return allverbs;

            }

        }

Actualizar Propriedade da WebPart em Código


Sempre que alterar as propriedades em código .cs, deverá ser utilizado o comando "this.SetPersonalizationDirty();" para forçar a actualização da nossa propriedade na WebPart.


Exemplo:
.......
ActiveOK=true;
this.SetPersonalizationDirty();

..........

Espero que estes pequenos exemplo possam ajudar no desenvolvimento mais rico e "User Friendly" das nossas aplicações, nem sempre tudo é simples mas o resultado final será bastante agradável. :)

Podem fazer download do codigo como exemplo no seguinte Link.


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


Monday, November 02, 2009

Alterar "Welcome" Control


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

Alterar "Welcome" Controlo


Quando estamos a realizar uma apresentação das funcionalidade do SharePoint, quer seja um cliente ou conferência a pergunta alguém realizar, como alterar as propriedade do Control "Welcome", para dar um aspecto mais personalizado e mais amigável a empresa ou instituição que estamos a implementar intranets de SharePoint. 

Sim é possível, mas obriga a um conhecimento e alteração da solução no servidor e definições de regras bem definidas.

Personalizar novas Funcionalidade



Por defeito o control Welcome encontra-se na pasta de instalação do nosso SharePoint por defeito encontra-se em "C:\.....12\template\ControlTemplates\welcome.ascx".
Se queremos personalizar ou criar um novo ascx, recomendo criar um pasta onde ficam os nossos desenvolvimentos, essa pasta convem ter um nome sugestivo para rapidamente identificar ser um desenvolvimento a medida,neste caso chamei "CustomWelcome" como podia ter dado o nome da empresa onde irei implementar, tendo copiado o ficheiro Welcome.ascx para essa pasta  para começar a realizar as alterações que pretendemos.

Porque criar uma nova pasta?  
Todas as pessoas fazem erros sendo necessário ter sempre o ficheiro base como apoio.
Quando criamos o nossa solução WSP, por norma eu organizo as minhas soluções em pastas de maneira a diferenciar o que desenvolvi de outras soluções desenvolvidas.
Se alterar-mos o ficheiro "Welcome.ascx" base, isto teria impacto em todos os outros sites de SharePoint, não é isto que pretende-mos.
A ultima razão para não alterar o ficheiro "Welcome.ascx" base, sempre que é instalado um service Pack, todos os ficheiros de SharePoint que são instalado originalmente do SharePoint são alterados para deixar como estavam por defeito, perdendo todas as configurações que foram realizados.




Depois de copiar o ficheiro, podemos editar o ficheiro onde podemos visualizar as diferentes opções que o Controlo "Welcome" fornece como, 

-Sequência do Menu
-Imagem da opção do Menu
-Descrição
-Texto
-Eventos de Javascript 
-Validação com Permissoes de SharePoint

Com estas opções podemos realizar as alterações para tornar a interacção dinâmica e com mais funcionalidades para o utilizador. 


Para adicionar o novo controlo acessível na páginas de SharePoint Welcome", será necessário abrir o nosso Sharepoint Desinger e a masterpage onde se encontra o controlo "Welcome", por defeito a masterpage de sharepoint está em "_catalog\masterpage\default.master" 
Depois de abrir a página será necessário alterar o caminho antigo da Welcome.ascx para o novo caminho.

Exemplo:


Se quiserer-mos invocar o resource do objecto Welcome que esta embedded em "Welcome [username]", podemos utilizar o objecto "SPResource.GetString("WelcomeUser",new object[] {name});", ou podemos alterar através de javascript, para ajudar ao nosso desenvolvimento podemos usar como apoio o Internet Explorer Developer Toolbar, esta aplicação é muito prática para identificar e validar html e id associados aos control asp.net que existem no site de SharePoint e para utilizar no javascript.
Exemplo:
<script type="text/javascript">
        function ChangeWelcome() {
            var x = document.getElementById('zz7_Menu');
           x.innerHTML="Empresa XPTO,";
</script>


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





Nota:
"Wictor Willen" desenvolveu um control para ajudar a renomear o texto que existe por defeito no objecto "Welcome" controls, de onde deriva-mos do control "Welcome" e mudamos o conteúdo a ser alterado.
Este exemplo é uma base de trabalho.  
namespace CustomWelcome {
     public class Welcome : Microsoft.SharePoint.WebControls.Welcome {
         protected Welcome() {
         }
          [SharePointPermission(SecurityAction.Demand, ObjectModel = true)]
          protected override void OnLoad(EventArgs e) {
              base.OnLoad(e);

             if (HttpContext.Current.User.Identity.IsAuthenticated) {
                 PostCacheSubstitutionText pt = base.ExplicitLogout.MenuControl.Controls[0] 
                                                as PostCacheSubstitutionText;
                 pt.TextType = PostCacheSubstitutionTextType.UserName;
          }
      }
}
} 
Artigo Base para apoio e alteração do Welcome control.

Espero que gostem de mais este artigo, irei lançar uma 2ª versão deste Artigo a fornecer algumas ajudas em  como se pode derivar estes controlos e outros para cumprir as regras de Acessibilidade em sites de SharePoint....
Um grande abraço.

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