Gerador de Classes em C#
, em Programação, por Miguel AlhoDas funcionalidade mais eficientes que pode haver é a possibilidade de autogerar código. Especialmente durante a fase inicial do coding da aplicação, gerar código das classes é uma seca. Mais se for multi-camada. Interfaces constantemente criadas, nomes repetidos constantemente e código que, de aplicação em aplicação, mantém-se sempre igual…
Os últimos projectos que desenvolvi permitiu observar muitos padrões em uso – o uso de objectos anuláveis frequentemente, o tipo de código de acesso aos dados constante, os métodos base existentes nas classes, etc. Algumas classes que desenvolvi já permitem a reutilização projecto a projecto, o que é óptimo. Por exemplo o de acesso a dados da BD SQLServer e SQLite (que ainda têm margem para melhorias), ou de escrita de dados em Excel, ou o de serialização para XML.
Mas para geração do código base é que ainda não tenho nada, e até agora tenho estado dependente do Visual Studio e algumas funcionalidades existentes. As versões Express ainda não tem esse tipo de funcionalidade implementada, mas tem pequenos truques que ajudam. O Sparx, que utilizei num projecto, é completo e resulta bem, mas pelo menos a versão que utilizei não resolveu todos os problemas.
O que preciso é de uma aplicação que gere os meus BO (business objects), a DAL (Data Acces Layer) e que aproveite correctamente os métodos de acesso que já gerei, o BLL (Business Logic Layer) caso o projecto necessite, e que me gere o SQL também, já agora. Preferencialmente, tudo adaptado ao meu workflow e padrão de código, similar e adaptado do esquema que o Imar Spaanjaars apresenta no site dele.
Há um tempo que imaginava tentar construir algo, que aproveitasse bem o que já desenvolvi até agora, para gerar código base para qualquer aplicação que eu venha a desnvolver. Algo do género do C# Classe Generator apresentados no CSharpFriends.com, que permite a inserção do Namespace, do classe, das propriedades, e que gere o código dos objectos e da DAL. Mas ao pesquisar para este post, encontrei algo interessante no site do Spaanjaars – um link para o MyGeneration. O MyGeneration é um gerador de código muito completo, e que permite introduzir templates; Suporta várias linguagens de programação (C#, VB.NET, JScript…), vários sistemas de BD (SQL Server, Oracle, Acces, SQLite, Firebird,..), conceito de projecto, e suporte a diversas arquitecturas ORM. O IDE parece bastante completo. E complexo.
Portanto surge o probelma normal de “Usar o que existe e poupar tempo (ou não)” vs. “Construir algo costumizado, e talvez mais simples (ou não)”. Vou ter de estudar melhor o MyGeneration a ver se encaixa.
8 Comentários
Interfaces e Generics numa generalização de uma DAL › Miguel Alho - Multimédia
Aug 26, 2008 @ 5:38 | 0 Respostas[...] ultimas semanas tenho ponderado e escrito algum código relativo ao gerador de código. Até agora consegui uma interface básica com uma treeview para navegar pelos objectos e um painel [...]
isidro
Aug 28, 2008 @ 18:30 | 0 RespostasOlá! Já tenho usado o MyGeneration e até gosto. Principalmente para as tarefas chatas de escrita de código de acesso a dados. Comecei por usar o doodads, mas voltei quase ao mesmo ... quando consegui um aumento de produtividade de 500% comecei a pensar que devia de haver outras formas mais céleres... e não é que há! ;) Se precisares de um empurrão com o doodads avisa! Abraço, RI
MytyMyky
Aug 28, 2008 @ 19:27 | 0 RespostasHey! "Long time, no see..." :D Por acaso, tem piada que quando vi o comment, estava a tentar escrever o código de uma classe da DAL, em que o dOOdads até seria útil para construir as queries. Confesso que não experimentei a fundo o myGeneration. Aliás, mal abri, verifiquei que não resolvia tudo aquilo que procurava, nomeadamente a definição de uma passagem só dos objectos e base de dados (pedia-me a ligação à BD, ou seja, a BD já construída), e obrigava-me a usar apenas uma base de dados, o que podia ser limitativo (recentemente tive um trabalho em que a connection string era variável - deveria olhar para bases de dados diferentes, usando os mesmos objectos e DAL, dependendo do modo (normal vs. histórico) em que estava. Acabei por optar pela abordagem pessoal e construir um "à minha maneira", mesmo isso implicando um pouco de trabalho extra. Verdade seja dita, até ta a ser útil, pois me tem permitido organizar algumas classes que já usei, e experimentar algumas ideias abordagens novas em termos de programação. Mas esta questão do dOOdads vai ser óptimo de analisar, pois certamente há muito dali que vou querer implementar, de uma forma ou de outra. Obrigado pela dica!
Giovani
Sep 24, 2008 @ 15:10 | 0 RespostasSe puder olhar o link abaixo: http://www.mercadodinamico.web.br.com/downloads/Setup.exe Esse é uma IDE de desenvolvimento .net, multi funcional onde o programador pode programar seu software com uma ide semelhante ao Visual Studio. Também um query analiser, onde o Dba pode criar suas querys, possui caracteristas intelisence. E também é uma ferramenta RAD onde o programador pode se beneficiar de templates prontos para gerar seus código, inclusive criar seu próprios templates.
MytyMyky
Sep 24, 2008 @ 15:31 | 0 RespostasObrigado Giovani, o aplicativo parece interessante... vou tentar ver melhor e com mais calma. Já agora, há documentação para o mesmo? O help e "acerca de" e afins não deram qualquer resultado...
Erivando Sena
Jan 24, 2009 @ 13:13 | 0 RespostasEu ha dias procuro algo do tipo para gerar meus codigos do DAO, BLL, Model para o Firebird. Quem ja utilizou para o banco Firebird?
MytyMyky
Jan 26, 2009 @ 6:59 | 0 RespostasPessoalmente, nunca usei o Firebird. Talvez justifique se é suficientemente semelhante a um outro, tipo MySQL ou PostgreSQL e usar os conectores e geradores para ele, ou até tentar criar através de uma DSL. O MyGeneration aparenta suportar o Firebird; é uma questão de testar...
claudemiro noya
Apr 1, 2012 @ 0:58 | 0 Respostasvale a pena conhecer www.totalcodegenerator.com.br