Rodrigo Romano – MVP SharePoint Server

Registros de um Especialista SharePoint :)

Posts Tagged ‘Desenvolvimento; Design Patterns;

SharePoint 2010 Design Patterns

with 4 comments


Olá SharePointers,

Após um feriadão que serviu para recarregar energias e pensar em questões que enfrentamos durante o dia-a-dia, gostaria de discutir um ponto fundamental no desenvolvimento de aplicações utilizando o SharePoint 2010 como plataforma de desenvolvimento.

Passando por vários projetos, times diferentes, times com históricos diferentes, times que vieram de .NET, times que foram criados no SharePoint, etc., tive várias ideias mas nada muito concreto sobre o assunto.

Resolvi pesquisar para ter embasamento. Encontrei um link muito interessante da Microsoft que fala exatamente sobre o assunto http://msdn.microsoft.com/en-us/library/ff798371.aspx (Application Foundations for SharePoint 2010). Nesse link a Microsoft descreve o que é considerado um bom código.

Segundo a Microsoft, Performance e estabilidade são os dois principais pontos a serem considerados durante o desenvolvimento de aplicações. Entretanto, quando falamos de aplicações corporativas algumas outras qualidades devem ser consideradas:

 

· Testability. Você consegue testar suas classes isoladamente?

· Flexibility. Você consegue atualizar ou trocar dependências sem recompilar o código?

· Configuration. Como você gerencia as configurações da sua solução? O seu método é escalável?

· Logging and exception handling. Como você loga as exceções e informações de rastreamento do código? O seu método é consistente e utilizado por outros integrantes do time?

· Maintainability. O seu código é fácil de manter?

 

Para ajudar com essa tarefa, a Microsoft dispões de classes que pode ajuda-los a endereçar esses pontos:

· SharePoint Service Locator – Pode ajudar a desenvolver códigos “testáveis” e modulares, utilizando técnicas de desacoplagem de dependências ou tipos externos.

· Application Setting Manager – Pode ajudar com as configurações, gerando um mecanismo robusto para salvar/ler configurações de cada nível da hierarquia do SharePoint.

· SharePoint Logger – Pode ajudar a logar exceções e informações de rastreamento de forma consistente e informativa.

Bom, voltando ao assunto principal desse post, a Microsoft indica a utilização de 3 patterns de desenvolvimento (ou uma combinação entre eles) em aplicações corporativas de larga escala: Service Locator, Model-View-Presenter (MVP) e Repository.

De acordo com a Microsoft, esses design patterns podem ajudar melhorando o código, evitando repetições, enfim, criando um código mais limpo. Mas, isso realmente se aplica a nossa realidade?

No mercado brasileiro, onde o ecossistema de SharePoint ainda está em desenvolvimento, acredito que o cenário seja bem diferente. Temos poucos profissionais realmente qualificados em SharePoint e se preocupar mais com o código construído do que respeitar a arquitetura particular (e, porque não peculiar) do SharePoint pode ser catastrófico.

Não é incomum vermos projetos que dão errado por que programadores .NET tentaram fazer de uma aplicação SharePoint “mais uma Web Application” .NET. Enfim, entender e respeitar a arquitetura do SharePoint é muito mais crucial, até porque, no fim, todo o código será rodado no IIS, 😀

Outro ponto é que na maioria dos times de SharePoint, profissionais Juniors precisam produzir, manter, alterar códigos. Quando aplicamos um design pattern, essa tarefa se torna praticamente impossível não?

Enfim, acredito que ainda podemos melhorar, e muito! Como consultor SharePoint, acredito que sempre podemos e DEVEMOS melhorar. Como influenciador, gostaria de abrir mais essa discussão.

O que acham?

Advertisements

Written by Rodrigo Romano

April 25, 2011 at 12:13 am