Microsoft Regional Architecture Forum 2006

Nos dias 04 e 05 de abril, aconteceu em São Paulo o segundo Microsoft Regional Architecture Forum. Organizado pela equipe de Arquitetura da Microsoft Brasil, tivemos dois dias recheados de palestras sobre Arquitetura de TI, com grandes especialistas da área, como arquitetos de TI da própria Microsoft Brasil e Americana, de consultorias renomadas e MVPs.

As palestras foram divididas em três sessões gerais (abertas para todos os participantes) e nove sessões em grupos, chamadas de breakout sessions, que ocorriam simultaneamente em nove salas distintas e com participação limitada a um número pequeno de pessoas, para que se tornassem mais proveitosas, possibilitando discutir os vários assuntos com maior profundidade.

Tivemos as seguintes sessões gerais:

  • Enterprise Service Orientation Maturity Model: nesta palestra, Wolf Gilbert, consultor de TI e ex-Program Manager do Windows Product Group, abordou um tema em moda atualmente: SOA - Service Oriented Architecture. Ele apresentou um Modelo de Maturidade para Orientação a Serviços e os caminhos percorridos para se chegar a ele.
  • Visão para Fábrica de Software: nessa sessão, Mauro Regio, arquiteto de soluções do Architecture Strategy Team da Microsoft, mostrou o que se tem a ganhar ao se utilizar o conceito de industrialização no desenvolvimento de software. Um tema bastante polêmico...
  • Direção de Filmes e Arquitetura de TI: você pode estar se perguntando: "o que há de comum entre dirigir um filme e arquitetura de TI?". Também não via muito sentido antes de ver esta palestra, mas acredito que todos da platéia saíram de lá com uma visão totalmente modificada. Cao Hamburger, conceituado diretor de cinema, televisão e propaganda (dentre seus trabalhos destacam-se a séria Castelo Rá-Tim-Bum e, mais recentemente, a série Filhos do Carnaval) mostrou o processo de criação e produção de um filme e, acreditem em mim, há muito mais em comum com TI do que podemos imaginar.

Ricardo Oneda.

DataSet ou Classe Customizada?

Uma das dúvidas quando se está planejamento a arquitetura de um sistema multicamadas feito em .NET é sobre como fazer a comunicação entre as camadas da aplicação: utilizar DataSet ou desenvolver classes customizadas? A resposta para esta pergunta - e para todas as outras polêmicas como esta - é...depende.

Ambas abordagens tem suas vantagens e desvantagens: enquanto o DataSet pode ser bom pois já traz uma série de características prontas que podem nos poupar tempo, ele também é mais "pesado" já que possui muita coisa que talvez não iremos utilizar. Já a utilização de classes de negócios customizadas traz um maior controle sobre nossa arquitetura, já que podemos otimizá-las de acordo com nossas necessidades, mas o que num primeiro momento pode ser uma vantagem pode se tornar uma desvantagem, já que teremos que desenvolver muita coisa do zero, o que pode consumir um tempo grande do projeto. Outra alternativa que também pode ser considerada é a utilização de DataSet Tipados, que entre suas vantagens está o fato de ser fortemente tipado (ao contrário do DataSet "puro"), mas que também está longe de ser a solução de todos os nossos problemas.

Com o objetivo de ajudar a fazer uma escolha tão complexa quanto essa, sugiro a leitura do artigo DataSets vs. Collections do mestre Dino Esposito, no qual ele analisa cada caso e explica em qual situação utilizar cada uma das opções. Do artigo, chamo a atenção para uma tabela comparativa entre as várias possibilidades.

E a seguir alguns outros artigos que podem ajudar a decidir qual o melhor para o seu caso (percebam o quanto o assunto é polêmico):

On the Way to Mastering ASP.NET: Introducing Custom Entity Classes
Poor MSDN article on Custom Business Entities and DataSets
Typed DataSets and Business Entities: A Compromise (Part 1)
Typed DataSets and Business Entities: A Compromise (Part 2)
Typed DataSets and Business Entities: A Compromise (Part 3)

Ricardo Oneda.