Welcome to MSDN Blogs Sign in | Join | Help

Alex Schulz

Especialista em Desenvolvimento
Gerenciamento de Documentos: Content Organizer

Dando continuidade as novidades de gerenciamento de documentos no SharePoint 2010, nesse post vou abordar o Content Organizer.

Essa funcionalidade tem como objetivo facilitar a organização dos documentos realizando um roteamento do documento para o local correto analisando um metadado associado ao documento, ou seja, de acordo com o valor de uma determinada coluna do content type o documento é direcionado para um determinado local de armazenamento.

Essa funcionalidade sempre é utilizada associada com algum content type. Com o content type definido, podemos criar as regras de roteamento e associa-la ao content type. Com as regras definidas, o documento segue o fluxo abaixo:

image

Quando um documento está no “Drop off zone”, o usuário deve informar os metadados que estão faltando, e após isso o documento é redirecionado para o local correto.

Configurações do Content Organizer

Algumas das configurações do Content Organizer são:

  • Se todo upload de documento, que tenha alguma regra associada a ele, seja redirecionado para o “Drop Off Zone”.
  • Enviar documento para outro site collection.
  • Automatizar a criação de novas pastas quando o número do documentos seja superior a algum número pré-determinado.
  • Comportamento caso duplicidade no nome dos documentos: criar uma nova versão do documentos ou adicionar um número no nome e mantar os dois documentos.

Após a configuração do Content Organizer, é hora de criar as regras de roteamento

Criando uma nova Regra de roteamento

Conforme o número de regras aumenta, se torna mais necessário que seja possível gerenciar a estrutura de regras de uma maneira simples. Temos duas opções para isso:

  • Desabilitar uma regra para prevenir que ela seja executada. Essa opção é útil quando você quer eliminar uma regra, mas ainda quer manter um histórico do que já foi executado (para mostrar que tal procedimento era executado, por exemplo).
  • Especificar a ordem em que cada regra será avaliada informando a prioridade de cada uma das regras. Se o documento estiver ok para duas regras diferentes, a regra com maior prioridade será executada.

image

Após isso é necessário fazer a associação com o content type com o qual a regra estará associada. Ao selecionar um content type, você estará determinando as propriedades que poderão ser utilizadas para o roteamento. Primeiro você seleciona o content type group e após isso seleciona o content type:

  • Todos os grupos disponíveis que possuam pelo menos um content type que derive do “Document” content type.
  • Quando estiver selecionando o content type, somente estarão disponíveis os tipos que derivam de “Document” (incluindo “Document Set”)

image

 

 

Até esse ponto temos a mesma funcionalidade do Record Center do MOSS, ou seja, roteamento baseado no content type. Com o Content Organizer, agora você pode definir uma condição que restringe mais a regra de roteamento utilizando o metadado para refinar o roteamento.

Você pode criar uma série (no máximo 6) de condições com base nas propriedades do documento, ou seja, a regra só será executada se os valores do metadado do documento forem os especificados nas condições. Um exemplo seria, se seu documento tem a propriedade “país”, somente os documentos com a propriedade país igual a “Brasil” seguiriam a regra.

image

Para finalizar a criação uma regra, é necessário definir o destino  do documento que obedecer a regra que está sendo criada. Uma informação importante é que o o destino do documento deve estar associado ao content type do documento.

image

O Content Organizer é uma evolução do roteamento existente do Record Center do MOSS 2007. Com ele, além de fazer um roteamento baseado no Content Type, você pode utilizar as propriedades do documento para refinar a regra de roteamento, aumentando muito as possibilidades de manter seu ambiente de documentos mais organizado e facilitando a vida do usuário na hora de fazer upload de um documento (ele não precisa se preocupar com o local onde ele deve subir o documento).

[]s

Alex Schulz

Palestras de Office & SharePoint 2010 no PDC

Caros,

para os que vão ao Microsoft Professional Developers Conference (PDC) 09, ou para os que estão pensando em ir, o Steve Fox (Microsoft Corp) publicou no blog dele as palestras de desenvolvimento Office & SharePoint 2010 que serão apresentadas durante o evento.

Vale conferir.

[]s

Alex Schulz

SharePoint 2010 - Gerenciamento de Documentos

No Microsoft Office SharePoint Server 2007 (MOSS), temos as seguintes funcionalidades relacionadas a gerenciamento de documentos que tiveram poucas (ou nenhuma) alteração na nova versão (2010):

  • Recycle Bin
  • Check in e check out
  • Versionamento (Major e Minor)
  • Permissões no nível do item
  • Content Types
  • Policy
  • Workflow

No SharePoint 2010 tivemos melhorias no Document Center Site Template e a funcionalidade do Record Center do MOSS 2007 (fornece roteamento de documentos baseado no Content Type do documento), tem uma nova versão no SharePoint 2010 que oferece roteamento baseado em meta dados: o Content Organizer.

Além do Content Organizer, temos de novidades:

  • “Document Sets”: gerenciamento de multiplos documentos
  • “Location-based metadata defaults”: modo de definir os valores padrões dos meta dados tendo como base a localização (folder, por exemplo) do documento.
  • “Metadata navigation and filtering”: ferramenta para facilitar a navegação em listas de documentos muito grandes.
  • “Document ID”: identificador único do documento (ou Document Set) que independe da localização do documento, ou seja, fornece uma url de acesso ao documento que não é formada pela localização do documento.

Nos próximos posts, vou explorar um pouco de cada uma dessas melhorias e novidades do SharePoint 2010.

[]s

Alex Schulz

SharePoint Brasil Summit 2009

Caros,

fica aqui uma dica de um evento onde será apresentado muitas coisas do SharePoint 2010. O evendo acontecerá no dia 7 de novembro. Mais informações em: http://www.sharepointbrasil.net/Summit/default.html

[]s

Alex Schulz

SharePoint 2010 (Beta) Developer Center disponível

Pra quem já pretende começar a conhecer e entender melhor o SharePoint 2010, está disponível o Developer Center para o Beta do SharePoint 2010, além de termos um Upgrade Resource Center para ajuda-los a planejar o upgrade para a nova versão (o beta publico do SharePoint deve estar disponível em Novembro de 2009).

Além disso está disponível um Community Resource Center que será um fórum focado em desenvolvimento para o Beta do SharePoint 2010.

Agora, se você já quer começar a desenvolver para o SharePoint 2010, foi lançado o Getting Started Developing on SharePoint 2010 que contém 10 módulos:

Com esses recursos, já podemos começar a conhecer e desenvolver utilizando o SharePoint 2010.

[]s

Alex Schulz

Nova Versão do SharePoint Guidance - Patterns & Practices

Foi lançada mais uma versão do SharePoint Guidance - Patterns & Practices.

Essa nova versão tem como objetivo:

  • Aplicações de “Larga Escala”
  • Aplicações com muito Conteúdo
  • Integração com sistemas legados

O conteúdo está muito bom vale conferir.

[]s

Alex Schulz

Encontro de parceiros Setembro 2009

Durante o segundo dia do encontro de parceiros da Microsoft tivemos uma Track para parceiros de solução.

Durante essa track, fiz uma apresentação sobre Windows 7 para desenvolvedores e, conforme prometido, o ppt apresentado está disponível para download aqui ou visualizado abaixo:

As referências apresentadas foram:

Para as outras apresentações sugiro acessar os blogs do Rafael Godinho e do Luciano Condé.

[]s

Alex Schulz

SharePoint 2010: um pouco mais de informações

Para quem quiser ter um pouco mais de informações sobre o SharePoint 2010, a microsoft publicou algumas informações e videos (visão geral, IT Pros e Desenvolvedores). Vale conferir.

links:

[]s

Alex Schulz

Windows 7 Taskbar: ícone e barra de progresso

Para terminar a série de posts sobre a nova barra de tarefas do Windows 7, vou mostrar como trabalhar com ícones e barra de progresso no taskbar. Para isso novamente estarei utilizando os helpers que referenciei no primeiro post sobre a barra de tarefas do Windows 7.

Trocando o Ícone

Algumas vezes pode ser interessante alterar o ícone que aparece na barra de tarefas. Por exemplo, o Messenger utiliza desse recurso: o ícone na barra de tarefas reflete exatamente o status em que me encontro:

icone_1

Executar essa alteração é muito simples. Utilizando o helper Windows7Taskbar precisamos chamar o método SetTaskbarOverlayIcon que recebe o novo ícone e sua descrição. Dessa forma o que precisaríamos fazer é, ao mudar o status de nossa aplicação, chamar esse método (como feito no código abaixo):

Icon icon = GetIconByStatus((string)cmbStatus.SelectedItem);
Windows7Taskbar.SetTaskbarOverlayIcon(this.Handle, icon, (string)cmbStatus.SelectedItem);

Nesse código estou recuperando o ícone baseado no que foi selecionado num ComboBox e após isso estou chamando o SetTaskbarOverlayIcon para trocar o ícone. O resultado na aplicação que estou utilizando como teste seria o seguinte:

icone_2 

Barra de progresso

Outra possibilidade da nova barra de tarefas é utilizar o ícone que fica na barra de tarefa como uma barra de progresso.

Para demonstrar isso vou utilizar a mesma aplicação acima e realizar uma tarefa de transferência de arquivo (não vou implementar a transferência, mas vou simular um processo que toma algum tempo para terminar). Para isso vou utilizar o método Windows7Taskbar.SetProgressValue. Esse método recebe o percentual no qual o processo se encontra (de 0 a 100).

Windows7Taskbar.SetProgressValue(Handle, (ulong)_percentFileCompleted,(ulong)100);

Barra de progresso na barra de tarefas 

Com isso, a barra verde vai crescendo de acordo com o valor que foi passado. Além disso podemos passar um status (por exemplo, um status de erro). Para isso utilizamos o Windows7Taskbar.SetProgressState.

Windows7Taskbar.SetProgressState(Handle, Windows7Taskbar.ThumbnailProgressState.Error);
progress_bar2 

Dessa forma podemos acompanhar o progresso da tarefa (atualizando o valor de _percentFileCompleted) ou informar visualmente que um erro ocorreu. Abaixo o código que utilizei para simular o progresso e o erro (que ocorre quando chega a 100%).

sendFileTimer.Interval = 1000;
sendFileTimer.Tick += delegate
{
    _percentFileCompleted += 10;
    if (_percentFileCompleted == 100)
    {
        sendFileTimer.Stop();
        MessageBox.Show("File operation failed!");
        Windows7Taskbar.SetProgressState(Handle, 
            Windows7Taskbar.ThumbnailProgressState.Error);
        _percentFileCompleted = 0;
    }
    else
    {
        Windows7Taskbar.SetProgressValue(Handle, 
            (ulong)_percentFileCompleted, (ulong)100);
    }
};
sendFileTimer.Start();

Com essas informações, eu fecho a série de 3 posts referentes a nova barra de tarefas do Windows, onde a idéia foi demonstrar algumas possibilidades de utilização dessa nova Taskbar em sua aplicação.

Os outros dois posts foram:

[]s

Alex Schulz

Windows 7 Taskbar: Thumbnails

Dando continuidade nas possibilidades de utilização / customização da barra de tarefas do Windows 7, agora vou mostrar como customizar o Thumbnail da aplicação que é mostrado quando paramos o mouse em cima da aplicação que está rodando no taskbar.

Thumbnail 

Por padrão o Thumbnail traz um preview do aplicação para identificarmos se é essa janela que queremos ver sem precisar ir até a aplicação (muito útil quando temos muitas documentos, apresentações e/ou browsers abertos). Porém quando a aplicação possui muitas informações na tela e fica muito complicada a visualização no modo padrão. É nessas situações em que o que vou mostrar é muito útil.

Vale lembrar que estou usando o mesmo Helper que comentei no post anterior sobre Taskbar.

Selecionando uma região a ser mostrada no Thumbnail.

Como vocês podem notar na imagem abaixo, muitas vezes é impossível ler o que é mostrado no Thumbnail. Então uma das opções que temos é selecionar uma região da aplicação para aparecer. É isso o que vamos fazer agora.

Thumbnail_1

Como no nosso exemplo estou utilizando um aplicativo que visualiza um documento de texto, vou utilizar o índice do primeiro caracter (GetFirstCharIndexOfCurrentLine() do rich text box) para recuperar o ponto onde esse caracter é exibido (GetPositionFromCharIndex(index) do mesmo rich text box) e definir um retângulo que defini o que será exibido no Thumbnail utilizando o SetThumbnailClip do helper Windows7Taskbar.

int index = rtbText.GetFirstCharIndexOfCurrentLine();
Point point = rtbText.GetPositionFromCharIndex(index);

Windows7Taskbar.SetThumbnailClip(Handle,
      new Rectangle(point, new Size(200, 119)));

Com isso podemos tornar o thumbnail mais visível realizando uma espécie de zoom, o que facilita a identificação do conteúdo da aplicação que está rodando.

Thumbnail_2

Alterando o conteúdo do Thumbnail

Existem situações onde queremos exibir no thumbnail informações diferentes do que é apresentado na visualização “original da aplicação.

Para criar uma nova visualização vou utilizar o helper CustomWindowsManager e realizar os seguintes passos:

  • Instanciar um objeto do tipo CustomWindowsManager utilizando a função estática CreateWindowsManager.
  • Registrar o evento ThumbnailRequested
    • Neste evento vou capturar o primeiro caracter do texto (lembre que minha aplicação é um leitor de documento) que será utilizado para recuperar os primeiros 200 caracteres do texto.
  • Vamos criar uma imagem (bitmap) com o texto capturado anteriormente com fonte e cor alterados.
//criando instancia do CustomWindowsManager
_customWindowManager = CustomWindowsManager.CreateWindowsManager(Handle);
//Registrando o evento ThumbnailRequested
_customWindowManager.ThumbnailRequested += (o, e) =>
{
   recuperando o primeiro caracter
   int index = rtbText.GetFirstCharIndexOfCurrentLine();

   //Recuperando os 200 primeiros caracteres
   string textAround = rtbText.Text.Substring(index,
      Math.Min(rtbText.Text.Length - index, 200));

   //criando a imagem que será exibida
   Bitmap bitmap = new Bitmap(e.Width, e.Height);
   using (Graphics g = Graphics.FromImage(bitmap))
   {
      g.DrawString(textAround,
      new Font(new FontFamily("Calibri"), 9, FontStyle.Bold),
      new SolidBrush(Color.Red), 0, 0);
   }
   e.Bitmap = bitmap;
};

Agora só precisamos sobrescrever o WndProc e realizar a chamada de dois métodos: DispatchMessage e InvalidatePreviews (esse método garante que o thumbnail será gerado novamente, evitando assim utilizar o que está no cache).

        protected override void WndProc(ref Message m)
        {

            if (_customWindowManager != null)
            {
                _customWindowManager.DispatchMessage(ref m);
                _customWindowManager.InvalidatePreviews();
            }

            base.WndProc(ref m);
        }

Dessa forma o resultado é um thumbnail com um aspecto diferente do que temos originalmente na aplicação.

Thumbnail_3

 

 

Assim podemos diferenciar (mudando conteúdo e formato, ou simplesmente fazendo um zoom na visualização original) o que vamos exibir no thumbnail.

[]s

Alex Schulz

Windows 7 Taskbar: como utilizar em suas aplicações

Uma das novidades do Windows 7 é a nova Taskbar, e entre outras novidades do Taskbar está a “Jump List”.

A idéia da Jump List é facilitar o acesso aos arquivos utilizados recentemente, bem como ao acesso a tarefas comuns do aplicativo.

Para isso, e sem nenhuma customização nas aplicações, podemos adicionar no Jump List a lista de arquivos recentemente abertos pela aplicação. Como isso é nativo do Windows 7, só precisamos registrar a associação do tipo de arquivo com a aplicação (pelo próprio SO, utilizando o “abrir com”, ou também podemos fazer a associação utilizando uma linha de código). Dessa forma, mesmo aplicações anteriores as Windows 7 podem tirar proveito da Jump List, mostrando os arquivos recentemente abertos que possuem a extensão associada com a aplicação.

Além dos arquivos recentes, como vocês podem ver na imagem abaixo, ao clicar com o botão direito do mouse sobre um aplicativo que está no Taskbar (no caso o Messenger), temos uma lista de tarefas que podemos executar. Então com pouco código (que vou mostrar aqui), podemos facilitar o acesso e uso de nossas aplicações.

Taskbar_JumpList

 

Dessa forma, vou mostrar como adicionar arquivo de forma explicita aos documentos recentes (mesmo sem esse arquivo ter sido utilizado), pra depois demonstrar como criar tarefas customizadas e categorias na Jump List.

Para facilitar o desenvolvimento, vou utilizar o Windows 7 taskbar: Developer Resources que contém implementado alguns Helpers, além de exemplos de utilização do Taskbar.

Associando um tipo de arquivo ao aplicativo

Para associar um tido de arquivo ao meu aplicativo, eu utilizei o Wrapper que está no projeto “Windows7.DesktopIntegration”, que contem um helper (RegistrationHelper) com essa finalidade.

Com o o RegistrationHelper, o que precisamos fazer é chamar o método “RegisterFileAssociations” passando o Identificador da aplicação, true ou false para indicar se é uma ação para desassociar (false indica associar), o identificador do processo (onde podemos utilizar outro helper existente o Windows7 DesktopIntegration), a aplicação que deve abrir o arquivo, e as extensões.

RegistrationHelper.RegisterFileAssociations(
                APP_ID, false, Windows7Taskbar.GetCurrentProcessAppId(),
                Assembly.GetExecutingAssembly().Location + " /doc:%1",
                ".rtf");

Após isso, Sua aplicação fica disponível para abrir aquele determinado tipo de arquivo, mas até aqui, não tem nada demais.

Imagem_1

Adicionando arquivos abertos recentemente na lista

Após associar o tipo de arquivo, temos que informar quando algum arquivo associado a nossa aplicação foi aberto ou modificado.

Podemos fazer isso utilizando o a caixa de dialogo do Windows 7 através do “OpenFileDialog”:

OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() != DialogResult.OK)
    return;
rtbText.LoadFile(ofd.FileName);

Nesse exemplo estou abrindo um arquivo .rtf num RichTextBox.

Com isso, ao abrir o documento pela minha aplicação, o arquivo já aparece na lista de arquivos recentes.

Imagem_2

Outra forma de adicionar um arquivo na lista de recentes, é explicitamente adiciona-lo na Jump List.

Utilizando o helper existente no Windows7 IntegrationDesktop, só precisamos chamar o método AddToRecent do JumpListManager passando o nome do documento.

JumpListManager jlm = new JumpListManager(APP_ID);
jlm.UserRemovedItems += delegate { };
jlm.AddToRecent("Sample Document.rtf");

Inserindo tarefas e categorias

Até agora vimos o que é padrão no Jump List. Mas podemos ir um pouco além adicionando tarefas e categorias na lista. Para isso precisamos:

  • utilizar o JumpListManager
  • sobrescrever o “WndProc”
  • verificar se a mensagem é Windows7Taskbar.TaskbarButtonCreatedMessage (indicando que o Taskbar foi criado)
  • Registrar o evento JumpListManager.UserRemovedItems (esse evento é invocado se, quando a Jump List estiver sendo construida, for verificado que um item foi removido da Jump List pelo usuário)
  • chamar o método “AddUserTask” (adicionar uma tarefa) ou o “AddCustomDestination” para criar uma “categoria”
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == Windows7Taskbar.TaskbarButtonCreatedMessage)
            {
                _jumpListManager = new JumpListManager(APP_ID);
                _jumpListManager.UserRemovedItems += delegate { };
                _jumpListManager.AddUserTask(new ShellLink
                {
                    Path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), 
                            @"Windows NT\Accessories\wordpad.exe"), Title = "Launch Wordpad"
                });

                _jumpListManager.AddCustomDestination(new ShellItem
                {
                    Path = @"<real path here>\SampleDocument.rtf",
                    Category = "Interesting"
                });
            }

            _jumpListManager.Refresh();
        }

 

Quando estamos adicionando uma tarefa, no Path passamos o caminho do executável (no exemplo o caminho do wordpad.exe) e o título que vai aparecer na JumpList. Já quando estamos adicionando uma categoria, no Path informamos o caminho do arquivo e qual a categoria na qual ele vai ficar.

Imagem_3

Com isso, é possível criar uma forma bem fácil e prática de acessar sua aplicação utilizando a nova barra de tarefas do Windows 7, e o que é melhor, com pouco esforço.

[]s

Alex Schulz

Criando WebPart para o SharePoint

Durante o processo de criação de soluções utilizando o SharePoint, existem algumas situações nas quais precisamos de uma customização maior e criar nossos web parts. Nesses casos, uma boa saída é utilizar o Visual Studio com as extensões para WSS (VSeWSS).

Vale lembrar que não devemos sair construindo WebParts sem nenhum critério. Sempre devemos utilizar o que SharePoint nos oferece, e quando isso não for possível, vamos para o Visual Studio e construímos nossos WebParts.

Feita essa observação de grande importância, vou demonstrar como criar WebParts para o SharePoint

Quando temos o VSeWSS instalado, passamos a ter disponíveis templates para SharePoint no Visual Studio, incluindo uma opção para a criação de WebParts.

NewProject

Ao criar um projeto de WebPart para SharePoint, o Visual Studio cria um projeto que contém 3 arquivos:

  • WebPart1.cs –> é o controle web part, é onde você irá colocar o código que mostrará alguma coisa na tela, chamará um serviço, etc.
  • WebPart1.webpart –> é o xml que define o web part
  • WebPart1.xml –> é o xml que informa ao SharePoint no que consiste a feature onde ela deve estar localizada.

SolutionExplorer

Para este post, só vou “descomentar” as 3 linhas de código já está presente no WebPart1.cs para adicionar um label com o famoso “Hello World”.

protected override void CreateChildControls()
{
            base.CreateChildControls();

            // TODO: add custom rendering code here.
            Label label = new Label();
            label.Text = "Hello World";
            this.Controls.Add(label);
}

Para não ficar no Hello World mais básico de todos, você pode adicionar propriedades para a web part. Nesse exemplo vou criar uma propriedade que vai definir o que vai ser escrito como texto no lugar do Hello World.

namespace PrimeiraWebPart
{
    [Guid("06269bd9-c95b-4587-9775-d72cf5f53e52")]
    public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
    {
        private const string msgDefault = "Hello World";
        private string mensagem = msgDefault;

        [WebBrowsable(true),
        SPWebCategoryName("MinhaCategoria"),
        Personalizable(PersonalizationScope.Shared)]
        public string Greeting
        {
            get { return mensagem; }
            set { mensagem = value; }
        }

        public WebPart1()
        {
        }

        protected override void CreateChildControls()
        {
            base.CreateChildControls();

            // TODO: add custom rendering code here.
            Label label = new Label();
            label.Text = mensagem;
            this.Controls.Add(label);
        }
    }
}

Além disso podemos alterar as propriedades de título e descrição do web part no arquivo WebPart1.webpart

<?xml version="1.0" encoding="utf-8"?>
<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <!--
      The following Guid is used as a reference to the web part class, 
      and it will be automatically replaced with actual type name at deployment time.
      -->
      <type name="06269bd9-c95b-4587-9775-d72cf5f53e52" />
      <importErrorMessage>Cannot import WebPart1 Web Part.</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="Title" type="string">Primeira Web Part</property>
        <property name="Description" type="string">Descrição da minha primeira web part.</property>
      </properties>
    </data>
  </webPart>
</webParts>

Com isso já temos uma web part simples pronta para fazer um deploy no SharePoint, e para realizar isso podemos colocar a URL do nosso site SharePoint nas propriedades do projeto.

Properties

Dentro das propriedades de Debug basta colocar a URL do site SharePoint no “Start browser with URL”.

url

Com isso feito basta selecionar a opção “deploy” que a sua web part já vai estar disponível no SharePoint.

deploy

Para conferir o deploy no SharePoint (além da mensagem de sucesso do Visual Studio), basta ir até o Solution Management do Central Administration do SharePoint (Central Administration –> Operations –> Global COnfiguration –> Solution management).

Deploy-CentralAdm

Feito o Deploy, o web part já vai estar disponível para ser utilizado no site que foi informado nas propriedades de Debug do projeto no Visual Studio.

WebPart

Como adicionamos aquela propriedade na qual podemos informar qual texto seria exibido no web part, temos disponível na configuração do web part a nossa propriedade “Mensagem”.

Propriedade

Vale notar que no diretório do projeto, o Visual Studio cria um arquivo de setup para facilitar a instalação / desistalação do web part.

Command

Dessa forma simples podemos criar fácilmente web parts para o SharePoint para atender aquelas necessidades que o próprio produto não consegue nos atender.

[]s

Alex Shulz

Agora é Oficial: SharePoint 14 vai ser SharePoint 2010

“Next Wave of Microsoft Office Products Will Redefine How People Work”. Essa é a promessa de Chris Capossela (Senior Vice Presidente do Microsoft’s Information Worker Product Managemnet Gourp) com a nova release do Microsoft Exchange Server, Office, SharePoint Server, Visio and Project.

No que diz respeito ao SharePoint 2010, o nome “Microsoft Office SharePoint Server (MOSS)” deixa de existir e passa a ser simplesmente SharePoint 2010. Isso aconteceu pelo fato de muitos associarem o nome Office somente aos produtos cliente (word, excel, etc).

Ainda não há muita coisa publicada sobre essa nova versão do SharePoint 2010, mas vale a leitura da publicação "Next Wave of Microsoft Office Products Will Redefine How People Work"

Particularmente estou ansioso por essa nova versão do SharePoint e do Office. Promete muito.

[]s

Alex Schulz

SharePoint na Web – Site Branding

O objetivo do Web Content Management (WCM) do SharePoint é separar bem o que é Branding do que é Conteúdo, mas o que é site branding?

Site Branding, normalmente é feito pela equipe de marketing, feito por designers e desenvolvedores, envolve questões como navegação, estilo, “look and feel”, ou seja, estamos falando de assuntos como HTML, CSS, icones, Master Pages, Page Layouts, etc. 

Já quando falamos de conteúdo, é onde os contribuidores e editores realizam seu trabalho criando o conteúdo e escolhendo layouts e imagens. Então estamos falando de páginas de conteúdo, imagens, links, videos, etc.

Dessa forma quando estamos construindo sites web utilizando o SharePoint, o processo de definição do site é a base de todo o trabalho. Durante esse processo de definir o “look and feel”, os layouts das páginas, etc, é super importante a seguinte observação:

  • como o SharePoint é construido utilizando o ASP.Net 2.0, os conceitos continuam os mesmo (Master Pages, HTML, CSS, Imagens, JavaScript, etc), porém é necessário superar os desafios de atualizar os CSSs do SharePoint (que são inúmeros, e muitas vezes bem grandes), existem diversos Content Placeholders que precisam estar nas Master Pages do SharePoint (entender o que é minimal master page), além de existirem alguns pontos onde informações não estão nos CSS, mas no banco de dados.

Então conseguimos reutilizar diversos conceitos e conhecimentos que já possuímos do ASP.NET, porém existem conhecimentos específicos do SharePoint (seus CSSs, content placeholders, e informações que ficam em banco) que são fundamentais para o sucesso do projeto.

Para ajudar nesses pontos específicos do SharePoint, abaixo existem algumas referências:

[]s

Alex Schulz

Desenvolvimento SharePoint – Qual ferramenta utilizar?

Quando falamos de desenvolvimento para SharePoint temos basicamente duas ferramentas:

  • SharePoint Designer
  • Visual Studio

Mas quando e para qual finalidade utilizamos o SharePoint Designer ou o Visual Studio?

De uma forma geral, com o SharePoint Designer temos uma ferramenta que nos auxilia na construção / customização de sites (incluindo Master pages, page layouts, css, workflows), além de possibilitar a criação de páginas ASPX e utiilzar controles ASP.Net. Vale lembrar que não precisamos escrever nenhuma linka de código C# (ou VB.Net) para isso.

Além disso o SharePoint Designer tem IntelliSense que ajuda nos a identificar quais atributos estão disponiveis para o elemento que estamos manipulando, o que aumenta a produtividade durante o desenvolvimento.

O SP Designer também permite você uitlizar as Web Parts e Listas já existentes através do WebPart Gallery e do Data Source Library, além de fornecer um controle de versão (o mesmo que o prórpio SharePoint utiliza) que permite check out, check in e publicação dos arquivos.

Quando vamos para o lado do Visual Studio, temos a possibilidade de criar classes customizadas, inclusive utilizando o modelo de objetos do SharePoint para criar novas funcionalidades. Com a integração com o Team Foundation Server temos um controle total de versionamento e todas as outras funcionalidades do TFS para desenvolvimento em equipe.

Para facilitar o desenvolvimento SharePoint dentro do Visual Studio, exite o “Visual Studio extensions for Windows SharePoint Services” (ou simplesmente VSeWSS). Esse add-on fornece facilidades de build & deploy para auxiliar no processo de “transformar” projeto em features e soluções, e realizar o deploy no SharePoint.

Além de uma série de templates de projetos e items (focados no SharePoint), o VSeWSS tem o SharePoint Solution Generator, que é uma aplicação que converte um site SharePoint pré-existente em um projeto do Visual Studio que pode ser compilada em uma solução SahrePoint. Com isso você pode reutilizar um site SharePoint feito no SP Designer para criar uma nova solução que será trabalhada no Visual Studio.

Em linhas gerais, são essas as ferramentas que utilizamos durante um projeto SharePoint. Dependendo do tipo e nível de customizações necessárias, a escolha da ferramenta se faz de forma natural (grande parte do trabalho pode ser feito no SharePoint Designer, e as customizações mais “avançadas” são feitas utilizando o Visual Studio).

Espero ter ajudado a clarear um pouco a finalidade de cada uma dessas ferramentas no processo de desenvolvimento de soluções SharePoint.

[]s

Alex Schulz

More Posts Next page »
Page view tracker