rodrigo braga

tactical code




10 March 2007

Dormindo com o inimigo: como é voltar a .NET e C

Recentemente ingressei em uma nova missão usando Microsoft .NET com a linguagem C#. Como havia tempo que não “sujava minhas mãos” com isso, resolvi compartilhar com vocês a experiência.

Tio, dá pra se divertir com .NET?


De certa forma sim, não chega a ser o calvário que eu imaginava. Tem desvantagens, naturalmente, como qualquer outra plataforma. E tem também vantagens interessantes que a tornam uma escolha atrativa de certa forma.

E o que a baiana tem?


Tem ambiente multi-linguagem. Tem máquina virtual. Tem isso e aquilo outro… E mais os recursos interessantes que há anos o pessoal de portais como Linha de Código e iMasters vêm apresentando com riqueza de detalhes, aos quais não vamos nos ater aqui. Depois de áureos meses usando GNU/Linux como ambiente primário, aqui estou eu de volta ao Win32 (ou serão 64 agora?) – descobrindo algumas coisas interessantes e recordando velhas decepções.

Produtividade


Realmente é produtivo, MUITO. Naturalmente muitas coisas importantes (ainda que superficialmente) são omitidas ao desenvolvedor; você arrasta o componente onde lhe for interessante, aponta duas ou três propriedades e pronto. Use essas características com moderação. Elas são produtivas, porém podem distanciar você demais do que costumamos chamar de desenvolvedor.

Integrated Developmente Enviroment


O Visual Studio é um ambiente de desenvolvimento que integra muitos recursos,. Se existisse um selo “Genuine IDE” sem dúvida ele teria um. Há diagramas, manipulação do banco de dados, versionamento e mais algumas coisas você pode fazer sem sair da IDE. Bem, na verdade você sairá para algumas pouquíssimas coisas (ainda não tem banheiro, piscina com bar…), mas nada que comprometa. Das muitas IDEs para N linguagens, definitivamente o Visual Studio figura entre as melhores (para acalmar uns e outros mais ácidos com a Microsoft, observem que o trecho “entre as melhores” não diz que o Visual Studio é o melhor ou único).

Documentação do framework

Outra característica importante e cuidadosamente desenhada é a documentação do framework. É completa e bem rica em detalhes, além dos exemplos que acompanham cada tópico. A IDE permite que você utilize a documentação off ou online, de forma transparente e igualmente simples. Outro aspecto interessante é a documentação em português, que é muito abundante, inclusive documentação não oficial.

Recursos extras


Este talvez seja o tópico mais surpreendente. Há muito tempo não trabalhava direta ou indiretamente com tecnologias Microsoft e me limitava a reclamar de documentos do Word que não abriam no OO.org. Acabei tendo gratas surpresas neste ponto.

O CodePLex é um portal nos moldes do SourceForge: você publica um projeto, outros colaboram e assim a vida segue. Já possui projetos legais hospedados nele e acredito que poderá crescer bastante no futuro. Ainda é um portal discreto, afinal é “recente”. Se a comunidade de desenvolvedores Microsoft aderir a essa idéia será algo a ser comemorado, eu torço grandemente por isso.

O pacote EntLib (assim chamado carinhosamente) é um mini-framework dividido em ApplicationBlocks que abrangem áreas como segurança, caching, banco de dados entre outras. Alguns ApplicationBlocks estão prestes a sair do forno. Sem dúvida ajudam a padronizar e acelerar o desenvolvimento de software. Muito interessante.

O nome Ajax, que constitui a associação de tecnologias JS + XML fazendo chamadas remotas assíncronas, é o mesmo nome do framework para usar Ajax com ASP .NET. Eu já vi esse filme outras vezes com SQL (Server), Office e cia… Não fiquem assustados se daqui a algum tempo associarem Ajax (patrimônio da humanidade) com o framework da Microsoft.

Porém algo se salvou. Este recurso é realmente interessante e fácil de usar, possui muitos componentes para atividades comuns (painéis, auto-complete, entre outros). É extensível e permite que novos componentes sejam criados com alguma facilidade, o que de certa forma deixa a impressão que o “Ajax .NET” poderá enriquecer ainda mais brevemente

Muito me custa crer!


Esta frase é usada por um grupo de amigos em situações extremas, inacreditáveis… Ou quando a Microsoft faz algo de “bom”. Estas ferramentas citadas acima são código aberto e permitem interação com usuários ou desenvolvedores dispostos a colaborar com elas. Talvez por isso tenham tido um avanço interessante. Elas estão hospedadas no CodePlex, veja você mesmo.

Para não perder o costume


Os que me conhecem sabem que numa abordagem geral para qualquer problema eu sugiro Python como solução (ou ao menos parte), porque é mais divertida, mais prática e mais fácil. Ainda fico com o “shell” (tudo bem, não é o shell que minha mãe sonhou pra mim, é o command do Windows) escrevendo alguma coisa em Python. É uma terapia e me ajuda a viver melhor; como nem sempre tenho acesso a SSH, é o que me resta e assim vou levando. E o IronPython?, você pode ter imaginado…

Um alento aos corações mais sofridos


IronPython é a implementação Python para a máquina virtual .NET. Nos enche de esperança e parece promissor, mas este projeto ainda tem um longo caminho à frente. E apesar da velocidade crescente, ainda faltam algumas características importantes. De certa forma não está maduro o suficiente para o mundo real. Acredito que em breve poderemos ouvir mais sobre esse projeto. E claro que estarei atento.

E no final das contas


Descobri que desde que você esteja disposto a usar .NET em sua magnitude e arcar com algumas conseqüências, como a dependência do Windows, recursos otimizados para produtos da família Microsoft, como SQL Server por exemplo, em detrimento a outras alternativas, escolher esta plataforma é um atitude acertada. Afinal, afinal além de riqueza em recursos, tem uma curva de aprendizado curta, uma biblioteca vasta, documentada e muito poderosa. Porém se esses itens (e alguns outros) forem intragáveis para você, sugiro um pulo no Python.org para que descubra um novo mundo ou ao menos o IronPython, já um grande começo.

Você esqueceu do Mono?


Não, não esqueci não. Este é um relato de uma experiência em ambiente Microsoft Windows; Mono é uma alternativa interessante para outras plataformas (além do próprio Windows), porém não avaliada ainda. Mas certamente um assunto interessante para outra oportunidade. Bem, se vocês não se incomodarem, vou terminar este texto por aqui. Minha estação está instável e vou ter reiniciá-la. Ah, sim. Estou usando Windows.

O texto Dormindo com o inimigo: como é voltar a .NET e C# foi escrito originalmente para o portal webinsider