Qual a melhor solução para os projetos em .Net ? Trabalhar com coleções de objetos customizados, DataSets Puros ou DataSets Tipados?
A resposta: depende da arquitetura escolhida, do tamanho do projeto e do tempo disponível.
Se estivermos desenvolvendo um projeto Windows Forms a melhor forma é trabalhar com DataSets, pois abrimos a conexão com o banco, fazemos as alterações necessárias e persistimos os dados, dessa forma minimizamos consideravelmente o acesso ao banco e ganhamos performance, independente de utilizarmos DataSets Puros ou Tipados.
Tanto em projetos Web como Windows Forms, o uso de coleções de objetos customizados nos dá um maior controle sobre a aplicação, além disso, estamos utilizando o verdadeiro conceito da orientação à objetos, porém, é necessário um tempo maior para a criação de todas as funcionalidades, visto que tudo deverá ser criado do zero, mas a performance se torna muito maior. Para o preenchimento de coleções podemos utilizar DataReader que é muito mais rápido que DataSets tornando a aplicação mais robusta.
Em arquiteturas 3 camadas (apresentação, negócio e acesso a dados) conseguimos abstrair o banco da camada de negócios e ficamos de certa forma independente do banco de dados, pois caso mude de SGBD apenas esta camada sofre alterações e qualquer alteração será transparente para a camada de negócios, onde é mais vantajoso utilizar coleções customizadas, pois uma boa parte do tempo é gasto na camada de acesso a dados e com um pouco mais de tempo o projeto se torna mais escalável.
DataSets Puros são criados via programação e armazenam dados tabulares (informações relacionais resultadas de consultas a banco de dados) onde podemos aproveitar as várias funcionalidades já existentes neste objeto, porém ele não possui estrutura pronta e nem tipagem de dados antes do prenchimento e muitas vezes depois de preenchido é necessário vários casts pra chegar ao resultado ideal, além disso, tem o tempo do “overhead” na montagem da estrutura. Outra desvantagem de DataSets é que ao utilizarmos devemos saber o nome das colunas ou índices e caso utilizarmos índices qualquer alteração na ordem das colunas no banco de dados poderá inconsistir o código. Uma das vantagens do uso de DataSets é o suporte que o mesmo oferece a XML. O DataSet pode ser muito útil para sistemas pequenos que não necessitam de N camadas e principalmente pra quem utiliza arquitetura baseado no SQL Server pela facilidade no desenvolvimento, porém o uso excessivo pode deixar o sistema pesado.
DataSets Tipados oferecem uma gama de vantagens sobre os DataSets Puros, pois possuem atributos, relacionamentos e chaves primárias, tipagem de dados, entre outros, que podem ser feitos em tempo de design, além disso, é de fácil criação (pode-se arrastar a tabela através do Server Explorer ou a própria procedure que será criado automaticamente) e pode ser utilizado como o objeto de negócio na aplicação, embora não é o mais correto. Outra vantagem é a pouquíssima quantidade de linhas para uso na programação.
Bom, cada forma tem sua vantagem e desvantagem, cabe à cada um escolher o melhor para sua solução.
Deixem suas críticas, dúvidas e sugestões.
Até a próxima!