O NeoMatrix Tech está de casa nova!

Você deverá ser redirecionado em 6 segundos. Se não, visite:
http://www.leonelfraga.com/neomatrixtech
e atualize seus favoritos.

Aviso IMPORTANTÍSSIMO!

Aviso aos navegantes:

O NeoMatrix Tech mudou de casa!!!

A partir de agora, acessem pelo novo endereço:

http://www.leonelfraga.com/neomatrixtech

Ué... mas é só o domínio mudou de lugar?

R: Na verdade, não é bem assim hehe. Este domínio que você acessa agora aponta para um blog hospedado no Blogger, enquanto no novo, aponta para um blog na plataforma Wordpress, hospedagem própria, muito mais rápida e com um layout mais agradável de ler ;)

Não vou fechar este domínio igual ao que eu fiz com o NM Light (que já está 100% na nova plataforma). Talvez beeeeeeem depois eu faça isso.

Todos os posts daqui se encontram lá, e novos posts serão colocados somente no novo endereço.
A única coisa que não consegui importar foram os comentários. Mas em breve vai ter um post contando sobre a epopéia que foi migrar o NeoMatrix Tech!

Somente vou fechar a área de comentários daqui. Caso queiram comentar, favor ver o post correspondente no "Novo NeoMatrix Tech" e comentem por lá. É bem melhor! (pena que os permalinks "amigáveis para SEO" não funcionam lá, dá erro 404 e não consigo fazer a configuração funcionar. E olha que eu já vi vários artigos falando desse assunto :( ).

Quem assina o feed, já está lendo o conteúdo do novo NeoMatrix Tech!

sexta-feira, 13 de março de 2009

Simple PIM – Exemplo Nova Classe de Conexão – Parte 4: Conclusões

Fechando esta sequência de artigos sobre a nova versão da Classe de Conexão, cheguei a algumas conclusões, sendo algumas meio óbvias, algumas melhorias a fazer, entre outras.

A mais óbvia é a capacidade de reaproveitamento de código que podemos obter seguindo este modelo de desenvolvimento, centralizando tudo o que for relacionado às chamadas de Providers na Classe de Conexão e centralizando as operações de persistência em uma classe DAL genérica.

Como pudemos ver nesta e em oportunidades anteriores, não usamos NENHUMA declaração de provider específico de banco de dados: é bem dizer o mesmo código para N bancos de dados; a diferença está na sintaxe dos comandos SQL em si.

Nestas mesmas oportunidades anteriores, vimos que as operações básicas das classes de cadastro são feitas da mesma maneira, e ao centralizar estas operações em uma classe genérica tivemos um aproveitamento monstruoso: Bastou construir a parte VO de uma classe e já estava tudo funcionando.

Economizamos código também na codificação (no code-behind) da interface de usuário. Um dos “trabalhos braçais” mais chatos que existem é exatamente a atribuição dos valores nos componentes da UI. Principalmente se tiver dezenas de campos a serem preenchidos.

De quebra, ainda pude aprender a usar um pouco do conceito de Reflection do .NET.

Como, já dizia o ditado, nem tudo são flores: Temos também a parte chata, de que temos que redobrar a atenção ao seguir algumas convenções. Nas primeiras vezes, é um pouco chato, mas vamos nos acostumando a isso e o resto vai de boa.

Embora facilite bastante, seguir as convenções ao pé-da-letra pode restringir um pouco o uso da Classe de Conexao. Nada que uma POG bem feita não resolva, mas o intuito não é apelar para este lado.

Pensando em algumas restrições que pude perceber ao longo da existência (e da adoção onde eu trabalho) da Classe de Conexão, há melhorias a serem feitas, com certeza.

Uma destas restrições é na parte de transações. Como a Classe de Conexão foi projetada pensando-se em uma aplicação Web, onde ela se conecta ao banco, faz o que tem que fazer, e desconecta-se, e quis evitar ao máximo possível a declaração de providers fora da Classe Conexao, tive que criar uma coleção e um método para executar instruções SQL em lote, em uma única transação.

Só que isso trouxe a limitação em si: Somente poderei executar instruções que não me retornem resultset dentro da coleção BatchSQLItens.

Só que também existem horas que eu preciso fazer um Select dentro da mesma sessão em que a transação é executada: o método ExecuteBatchSQL quando termina a execução ele já encerra a sessão. Desta forma não é possível fazer isso.

Já deu para saber uma deficiência a melhorar: Fazer um controle de transações que não dependa da coleção BatchSQLItens :-)

Outras melhorias são acrescentar o suporte para Windows Forms, e quem sabe, aplicações Mobile.

Mas… essa Classe de Conexão está me ajudando bastante em meus projetos, tenho tido um ótimo ganho de tempo com ela e esse jeito de desenvolver.

Um abraço!

0 comentários:


Postar um comentário

Para tornar este artigo ainda mais interessante, escreva suas críticas (desde que construtivas e sem ofenças), elogios, sugestões, complementos, dúvidas, etc, etc, etc!!!

  © Blogger templates ProBlogger Template by Ourblogtemplates.com 2008 - Editado e configurado por Leonel F.

Voltar ao TOPO