Pergunta

Alguém pode me dar qualquer ponteiros para recursos detalhando as estruturas e algoritmos usados ??"sob o capô" do . NET DataSet classe?

Atualmente estou trabalhando em um idioma que não tem uma implementação de uma estrutura genérica de dados na memória como a classe DataSet. I pode acabar tendo de construir um para mim (mas não tão extensa!), Mas eu gostaria de ter uma idéia melhor de como os sistemas existentes são colocados juntos antes de eu começar a mexer. (Obrigado Douglas Hofstadter )

Eu estou lendo o Mono implementação , mas qualquer outra links, artigos, ou idéias seria apreciada

.
Foi útil?

Solução

Fire-se refletor e ir direto à fonte ...

Outras dicas

Você pode legalmente baixar o código fonte original para DataSet a partir do Microsoft , que lhe dará acesso a tudo, incluindo os comentários originais. No entanto, se você está implementando um sistema / produto similar, você deve estudar cuidadosamente a licença para garantir você não é provável que rompê-la por olhar para o código-fonte.

refletor está disponível em http://www.red-gate.com /products/reflector/index.htm , e permitirá que você ver exatamente como DataSet é implementado.

Você também vai querer olhar para DataAdapter, especialmente DbDataAdapter.Fill, DataTable, especialmente DataTable.Load e DataRow e DbDataReader. Você pode então querer olhar para algumas das implementações specifici como SqlDataAdapter, SqlCommand, etc.

Note que DataSet é prova do velho ditado sobre tudo parecendo um prego. Ele foi mais utilizado em .NET. Em particular, não usá-lo para transferir dados entre um serviço web e seus clientes - que não interopera bem

.

A estrutura de dados-chave do ADO.Net DataSet é a Vermelho-Preto árvore

É complexo, mas tem boa pior caso tempo para suas operações e está sendo executado prática eficiente: ele pode procurar, inserir, eliminar e em O (N log N) tempo, onde n é o número total de elementos em a árvore. Simplificando, um vermelho-preto árvore é uma árvore de busca binária, que inserções e remove uma forma inteligente, garantir a árvore é razoavelmente equilibradas.

O livro chamado de programação ADO.Net 2.0 referência núcleo tem uma excelente descrição de conjuntos de dados, incluindo muitas questões e estruturas de dados internos discutidos.

A principal aplicação do conjunto de dados se baseia em vermelho / preto árvores auto-equilíbrio.

O outro grande ressalva de que o livro mencionado é que a pesquisa de código de dados via cordas não foi implementado de forma eficiente, já que usa comparação de string para procurar uma tabela de referência para a coluna apropriada. Você poderia ficar muito bons aumentos de desempenho de pesquisa em ambas as tabelas e em colunas por codificar os números de suas linhas. Claro que isto é um pesadelo de manutenção a menos que você escrever uma ferramenta para fazer isso por você.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top