Sharepoint.Dev() Just another SharePoint weblog

27Jul/100

Buscar Informações do AD para Web Parts, sem utilizar SSP

Como já perceberam eu ando bem afastado do blog, faz tempo que não o atualizo e compartilho mais de minhas experiências em projetos... desculpe-me mas estou realmente complicado de tempo e assuntos pessoais a tratar.

Pois bem, mas não esqueci de vocês não e por isso vou deixar aqui uma dica bem interessante sobre como trabalhar com Informações do AD sem utilizar o SSP.

O texto é do meu amigo Marcelo Leite e pode ser lido neste link: Buscar Informações do AD para Web Parts, sem utilizar SSP !!

Abraços!

:)

2May/100

Verificador de Dias Úteis

Mais um post rápido!! ;D

Aqui vai um método simples para estipular uma data de prazo desconsiderando os finais de semana.
Sei que é bem simples, mas fica a dica!

public DateTime DiasUteis(DateTime dataHoje, int qtdDias)
        {
            for (int i = 1; i <= qtdDias; i++)
            {
                dataHoje = dataHoje.AddDays(1);
                if (dataHoje.DayOfWeek == DayOfWeek.Saturday)
                    dataHoje = dataHoje.AddDays(2);
            }

            MessageBox.Show(dataHoje.ToString());
        }

Simples! Passa-se uma data e quantos dias deseja acrescentar à esse data. O que esse método faz é um contador de 1 até o número passado de parametro para acrescentar os dias e verifica se esse dia que adiciou é sábado.. se for sábado pula dois dias e continua adicionando.

;)
Abraços

9Feb/100

Biblioteca de WebParts – dotDEV

Depois de mais uns tempos conturbados eis-me aqui novamente atualizando o blog. E mais uma vez com notícias boas também.
Além de estar preparando um post sobre como usar LINQ para buscar e trabalhar as informações do SharePoint eu estou planejando também uma área onde armazenarei algumas WebParts que já tive situações em que tive que desenvolve-las e outras WP que surgiram na minha cabeça numa ou outra hora qualquer.

Só preciso organizá-las, gerar os pacotes de instalação para disponibiliza-las aqui no site. Ainda dando continuidade à idéia de difundir mais o SharePoint, principalmente detalhes técnicos, estas WebParts ficarão disponíveis para download.

De qualquer forma estou a disposição caso queiram se adiantar antes dessa seção nova. Basta entrar em contato comigo pelo email filipe.cavalcante@dotdev.com.br ou filipe.cavalcante@gmail.com!

Aguardem mais atualizações!

23Nov/090

Cancelar Workflow via programação

No último projeto tivemos que dar a possibilidade para o usuário encerrar o andamento do fluxo manualmente. Para isso um método foi criado:

SPSecurity.RunWithElevatedPrivileges(delegate()
{
    using (SPSite site = new SPSite(siteID))
    {
          using (SPWeb web = new SPWeb(relativeWeb))
         {
              SPWorkflowManager manager = site.WorkflowManager;
              SPListItem item = web.Lists[listname].GetItemByID(itemID);
              foreach(SPWorkflow workflow in manager.GetItemActiveWorkflows(item))
              {
                       SPWorkflowManager.CancelWorkflow(workflow);
              }
          }
    }
});

Detalhe para o "SPSecurity.RunWithElevatedPrivileges()" que faz com que o código possa ser executado por qualquer usuário que esteja logado.

O código que está no nosso projeto não é exatamente este, não coloquei algumas ações específicas do nosso projeto, mas basicamente para encerrar o fluxo, que é o tema deste post é esse!

Até a próxima!

Referencia: http://pointstoshare.spaces.live.com/Blog/cns!AEC42F315B4528B0!3045.entry?sa=648616426

18Nov/090

Estamos de volta… e com novidades.

Olá pessoal,

Faz um bom tempo que não mexia no meu blog. Eu havia migrado para este novo servidor, mas depois por um vacilo meu acabei apagando-o involuntariamente e depois fiquei com preguiça de reconfigurar, restaurar tudo de novo...
Mas enfim... o importante é que agora estamos de volta e com novidades.

Todos ja sabem que o Sharepoint 2010 está chegando né? Pois bem, algumas das pessoas que trabalham comigo foram na conferência em Las Vegas sobre o Sharepoint 2010 e em breve pretendo fazer alguns comentários sobre as novidades da nova versão.

Mas enquanto isso, vou deixar aqui um exemplo de código simples para fazer upload de documento para uma biblioteca de documentos do sharepoint com metadados

public static bool UploadDocumento(SPWeb web, string docLib, Documento documento, ParametrosList parametros, bool overwrite)
        {
            try
            {
                Hashtable docProperties = new Hashtable();
                // Metadados
                foreach (Parametros var in parametros)
                {
                    docProperties[var.Parametro] = var.Valor;
                }

                SPFolder folder = web.Folders[docLib];
                SPFile file = folder.Files.Add(documento.Nome, documento.FileBytes, docProperties ,overwrite);

                return true;
            }
            catch
            { return false; }
        }

Bem simples.

Nesse método existem dois objetos que eu criei na mão para auxiliar na passagem dos parametros para este método. O objeto 'Documento" basicamente carrega as informações vindas do componente FileUpload, e o objeto "ParametroList" é uma lista de parametros genérico que utilizo para o sistema todo, e conterão as informações dos metadados e seus respectivos valores.

Nesse exemplo não fiz tratamento de erro, simplesmente e retorna um BOOLEANO indicando se foi feito o upload corretamente na biblioteca de documento ou não.

Abraços

20Jun/090

Padronização de código C#

Para quem estiver começando a desenvolver, aprendendo ou querendo aprimorar sua forma de desenvolver segue alguns textos e documentos sobre padronização de código com ótimas dicas e explicações da linguagem C#!!!!

http://blogs.msdn.com/brada/articles/361363.aspx

http://www.codeproject.com/KB/cs/c__coding_standards.aspx

http://weblogs.asp.net/lhunt/attachment/591275.ashx

Abraços

[]s

4May/090

Sharepoint e layouts Crossbrowsers.

Talvez vocês tenham percebido que constantemente tenho mudado o layout do blog, isso se dá ao fato de que eu nunca estou satisfeito com os que estão disponíveis pelo wordpress. Nada contra, tem uns ótimos, mas nenhum me agrada 100%.

Bom, com isso meu pensamento sobre satisfação continua mais forte do que nunca: "Quer bem feito e do jeito que imagina? Faça você mesmo." Em breve construirei um layout novo pra esse site. Simples, funcional e bonito. Bom, vou tentar agregar tudo isso junto. Até mesmo porque preciso dar uma relembrada e estudada nas novidades de CSS e xHTML.

Com os novos browsers recém lançados é bom saber quais limitações de layout, hacks e as adequações aos padrões webstandart. Pra quem trabalha com criações de sites, sistemas web e até mesmo com sharepoint esse conhecimento é fundametal. Bom, pelo menos essa é minha opnião.

Voltando um pouco o assunto ao sharepoint. Quem trabalha com customização de layout para sharepoint sabe a dificuldade que é adequar o layout desenhado ao sharepoint. Infelizmente ainda vejo a Microsoft pecar nesse sentido, na padronização do código gerado automaticamente pelos componentes de seus softwares, e isso envolve Visual Studio também. Ja tentaram entender um código html de um portal Sharepoint? Tem que se ter paciencia e no minimo um conhecimento intermediário de html pra conseguir achar alguma coisa. Não é dificil mas também não é facil.

Bom. Aqui vai a MINHA opnião sobre customização de layout de sharepoint. Todos os portais, sejam internet, intranet, extranet etc devem ser focados aos browsers mais comuns, tipo Firefox, Opera, IE, etc. Isso deve ser bem definido na proposta do projeto.

Para portais "Internet" isso é no minimo o mais importante, ja imaginou um portal em sharepoint que o layout não funciona corretamente no Firefox? Corrigir um layout ja montado pode ser mais trabalhoso do que se criar um já voltado e adequado aos browsers mais influente no mundo WWW.

13Apr/090

Verificando se existe SPWeb

Segue um método simples e rápido que faz uma verificação se existe um SPWeb em um SPWebCollection()

private bool ChildWebExists(SPWeb parentWeb, string childWebName)
{
    using(SPweb childWeb = parentWeb.Webs[childWebName])
    {
      return childWeb.Exists;
    }
}
Filed under: Sharepoint, TI, WebPart No Comments
21Jan/090

Principais benefícios do SQLServer 2008 para o Sharepoint

Um link interessante que fala sobre os principais benefícios do SQLServer 2008 para o Sharepoint.

http://www.sharepointbrasil.net/Lists/Postagens/Post.aspx?List=f1df0d58-e1cd-4bd2-ada1-b45e0fe1ec60&ID=75

6Jan/091

Instalando o MOSS 2007 e SQLServer 2008 em servidor Windows 2008 Server

Primeiro de tudo... feliz ano novo! 2009 já está aí, as festividades já passaram (pelo menos pra mim) e sei que é duro, mas temos de voltar ao ritmo de trabalho normal do dia-a-dia.

Bom, desde a última semana de 2008 eu comecei a montar um ambiente semelhante ao do nosso novo cliente. Trata-se de dois servidores, um de banco com SQLServer 2008 e outro de front-end com o MOSS2k7. Ambos os servidores seriam Windows 2008 Server. Eis que me surgiram os problemas.

Nunca havia instalado o SQLServer 2008, principalmente emcima do Windows 2008 Server e por isso tive algumas dificuldades.

Primeiramente no win2k8 o framework não é habilitado por padrão, e para isso é necessário adicionar essa feature pelo controle de features do windows. Em segundo a instalação do  SQL2k8 irá atualizar o .Net Framework 3.5 SP1 e depois verificará se o "Windnows Installer" é a versão 4.5. Bom, tive problemas nesses dois passos. Por algum motivo a instalação simplesmente não conseguia fazer a atualização, no momento que iria calcular o tempo estimado para download e instalação uma mensagem de erro do windows surgia e assim a instalação dava-se por encerrada. O mais curioso é que a mensagem de erro era simples, do tipo "Não foi possível concluir a instalação" e no log de eventos do windows nada de útil era gerado também. Para resolver isso - repito não entendi o motivo ainda - eu baixei o pacote completo do .Net Framework 3.5 sp1 e fiz a instalação offline mesmo, isto é, sem a necessidade de conectar a internet para fazer a instalação via "windows update". Pronto.

Sobre o windows installer, existe hotfix Windows6.0-KB942288-v2-x86 para contornar isso. Basta fazer o download no site da Microsoft  aplicá-lo no Windows e o problema também será solucionado.

Depois de feito essas das coisas a instalação ocorreu normalmente.

Agora é a vez de instalar o Moss no Win2k8. Mas há uma incompatibilidade (acreditem) que não permite que o Sharepoint seja instalado.  O erro é simples: "Esta versão do Windows não é compatível". Não pesquisei o porque do erro fui direto buscar a solução, já que não tinha muito tempo e encontrei nesse blog http://mindsharpblogs.com/ben/archive/2007/12/16/3837.aspx

Bem simples. O erro na verdade acusa que você deve instalar o Sharepoint com o ultimo Service Pack disponível, que no caso é o SP1.

Segue os passos:

  1. Copie toda o CD ou DVD do Sharepoint para uma pasta em seu computador. (Aqui no exemplo usaremos c:\sharepoint-install);
  2. Baixe o WSS 3.0 SP1 e o MOSS 2k7 SP1 (ref.: http://blogs.msdn.com/sharepoint/archive/2007/12/11/announcing-the-release-of-wss-3-0-sp1-and-office-sharepoint-server-2007-sp1.aspx);
  3. Crie uma pasta para cada um dos arquivos baixados pois será necessário descompactá-los. (Aqui no exemplo usarmos c:\moss2k7sp1 e c:\wss30sp1)
  4. Vá pelo prompt do DOS no diretório onde os dois arquivos foram baixados e execute o comando
    'officeserver2007sp1-kb936984-x64-fullfile-en-us.exe /extract:c:\moss2k7sp1' e
    'wssv3sp1-kb936988-x64-fullfile-en-us.exe /extract:c:\wss30sp1'
  5. Copie os arquivos que foram extraídos dentro das pastas c:\moss2k7sp1 e c:\wss30sp1 e cole dentro da pasta updates em c:\sharepoint-install. Atente-se na versão do windows e sharepoint. Se for 32-bits a pasta e os downloads tem de ser x86 ou se for 64-bits a pasta e os downloads tem de ser x64.
  6. Agora execute novamente a instalação do Sharepoint.

É isso aí.

Agora só instalar normalmente.

Abraços!