Estou trabalhando em um pequeno projeto que terá apenas um usuário por vez, já que é um aplicativo local (desenvolvido em WPF e C #). Para armazenar dados, eu estava pensando em usar um arquivo XML, mas estou pensando se essa seria a melhor abordagem.
Para que servem os dados:
- Horários
- Biblioteca de arquivos em pastas (com Nome do artista, Título, Localização no disco rígido)
- Possivelmente estatísticas baseadas nos dados do shedule
- ...
As informações sobre a biblioteca ficariam bem em XML, imagino, mas sobre todo o resto não tenho tanta certeza. Além disso, o LINQ to SQL parece ser muito mais lucrativo em termos de velocidade de desenvolvimento do que o LINQ to XML. Isso está correto ou estou errado? Eu não tinha certeza se deveria postar isso no SO ou aqui, mas parecia mais apropriado aqui!
Agradeço antecipadamente
Respostas:
Se você fará muito IO, o SQL é sua melhor escolha. O SQL foi projetado para funcionar bem para obter / armazenar dados, e é por isso que o usamos para armazenar dados em algo como um site em vez de XML.
XML é bom para dados legíveis por humanos que podem ser compartilhados e interpretados entre aplicativos, como era sua intenção. A análise de XML envolve MUITAS manipulações de strings, que podem custar caro à medida que o tamanho do conjunto de dados aumenta.
fonte
Parece que seus dados podem potencialmente crescer infinitamente (a menos que eu não entenda sua aplicação). Nesse caso, eu diria que é melhor deixar o armazenamento persistente até um mecanismo de banco de dados para obter eficiência e desempenho.
fonte
Vá com a abordagem de banco de dados. É a tecnologia comprovada para lidar com dados.
Sobre a questão do desempenho, você pode acelerar o acesso acessando índices onde, em XML, esses meios não existem.
Em um banco de dados, você pode calcular dados estatísticos usando funções agregadas; em XML, você deve codificar isso.
Usando um banco de dados, você pode alterar a estrutura do banco de dados com relativa facilidade (adicionar coluna, tabela etc.) e existem ferramentas para ajudá-lo a mover os dados entre os bancos de dados, onde, como no XML, você mesmo deve fazer isso.
Em um banco de dados, você pode aplicar regras de integridade e permitir que os usuários escrevam suas próprias seleções, se necessário, o que não é muito fácil em XML.
No banco de dados, você pode classificar os dados com muita facilidade, além de adicionar segurança. Usando um banco de dados, você pode esquecer o tamanho e a simultaneidade; assim, no futuro, seu aplicativo poderá crescer sem alterações de código.
Para o exposto, use um banco de dados! EK
fonte