Arquitetura de Soluções – Grupo de Estudos

Outubro 27, 2008

Olá pessoal.

Hoje em dia muito tem-se ouvido falar sobre “Arquitetura de Desenvolvimento”, “Best-Practices em Desenvolvimento de Software”, “Melhores Metodologias”, entre outras coisas. Tudo para tornar o nosso desenvolvimento de software cada vez mais profissional e elegante.

Mas, na prática, aplicamos de fato isso em nosso projetos? Melhor, aplicamos isso da forma correta em nosso projetos?

Independente da sua resposta, acredito que um bom Desenvolvedor/Analista/Arquiteto/Profissional de TI sempre está em busca de aprimorar seus conhecimentos. Um ótimo meio é com grupos de estudos.

Iniciei o meu desenvolvimento em plataforma Unix e meu primeiro contato c/ .NET foi em 2005, em uma Célula Acadêmica (ou grupo de estudos) da minha faculdade, pelo então líder Diego Nogare, hoje um Microsoft MVP. Acreditem, valeu muito a pena. Mesmo tendo mudado “definitivamente” de plataforma só em 2006, foi um aprendizado único.

Bom, falei tudo isso pra “dar um gancho” e falar sobre o Grupo de Estudos de Arquitetura de Soluções que o Giovanni Bassi está organizando. Ele, entre outras coisas, é editor técnico da revista .NET Magazine, da editora DevMedia. E eu sou um entusiasta “de carteirinha” desse tipo de assunto.

Sábado passado (25/10) ja rolou a primeira reunião na UNIP da Cidade Universitária/Marginal Pinheiros e haverão novas reuniões. Não pude comparecer mas tive um feedback do próprio Giovanni muito empolgado com o futuro do Grupo.

Maiores informações:

Giovanni Bassi: http://unplugged.giggio.net/unplugged

Grupo de Estudos Arquitetura de Soluções: http://unplugged.giggio.net/post/Grupo-de-estudos-de-arquitetura-de-software.aspx

Primeira Reunião (Feedback): http://unplugged.giggio.net/unplugged/post/Resultado-da-primeira-reuniao-do-grupo-de-arquitetura.aspx

Vale a pena pessoal, de verdade. Desconheço qualquer tipo de Célula de Estudo com esse foco.

Bons Estudos. E vejo vocês na próxima reunião.

Abraços


Macros no .NET?

Outubro 3, 2008

Oi pessoal,

Descobri uma coisa interessante sobre as macros do Visual Studio, além do VBA também é possivel acessar essas mesmas classes a partir do .NET =P

Em qualquer versão do VS, você pode ir até o menu Tools > Macros e criar scripts para automatizar tarefas. Praticamente todas as funcionalidades do VS estão representadas lá. Só que sabemos que o VBA é uma linguagem limitada, seria bom poder acessar essas classes a partir do C# por exemplo. Por isso a Microsoft disponibilizou as classes COM+ das macros em assembly, assim você pode adicionar a referência a elas nos seus projetos em .NET.

As principais assemblies que você precisa adicionar referência são:

EnvDTE – Contém as funcionalidade do Visual Studio 2003
EnvDTE80 – Contém as funcionalidade do Visual Studio 2005
EnvDTE90 – Contém as funcionalidade do Visual Studio 2008

 

Como nem tudo é perfeito, algumas dicas para você não apanhar no desenvolvimento com essas bibliotecas:

- Elas não são nativas do .NET, são apenas wrappers em cima das dlls COM+. Os seja, prepare-se para deparar com exceptions bizarras vindo de dentro do COM+.

- Não existe documentação/comentários no IntelliSense, procure no MSDN.

- A nomenclatura e a forma de instanciação dos objetos não é intuitiva. Por exemplo, Solution é a classe que representa as solutions no VS 2003, Solution2 as solutions VS 2005, e Solution3 no VS2008. Para instanciar uma Solution3 não funciona um “new Solution3()“, você tem que fazer um cast a partir da classe original Solution:

// Obtem uma instancia do Visual Studio 2008
DTE2
objDTE = (DTE2)System.Activator.CreateInstance(System.Type.GetTypeFromProgID(“VisualStudio.DTE.9.0″, true), true);

// Obtem uma instancia da Solution
Solution3 objSolution = (Solution3)objDTE.Solution;

- Algumas coisas seguem o padrão do VB, nas collections (se você estiver no C#) não é possivel acessar um item usando colchetes e o indice não começa do zero e sim do um. Isso impede o foreach funcionar em cima dessas collections. Exemplo a collection de projetos da solution:

// Retorna o nome do primeiro projeto da solution
string strPrjName = objSolution.Projects.Item(1).Name;

 

Tirando essas dificuldades, as possibilidades são muitas, você pode desenvolver em C# por exemplo, um gerador automático de solutions e projetos com as camadas e namespaces já no seus padrões.

Abraços!