Pergunta

Estou escrevendo um programa simples que será executado totalmente do lado do cliente. (Programação da área de trabalho? As pessoas ainda fazem isso?) E preciso de uma maneira simples de armazenar quantidades triviais de dados em um formulário estruturado, mas realmente não vê necessidade de usar um sistema de banco de dados. Além disso, alguns dos dados precisam ser serializados e transmitidos a diferentes usuários, como algum tipo de "arquivo" ou talvez um "documento". (Alguém já fez isso antes?)

Então, eu olhei para usar conjuntos de dados .NET, LINQ, manipulação direta de XML, e todos parecem fazer o trabalho, mas eu gostaria de saber antes de mergulhar em qualquer um deles se houver um método que geralmente seja considerado mais fácil de codificar do que outros. Como eu disse, a quantidade de dados a serem armazenados é trivial, mesmo que cem pessoas usassem a mesma máquina que não estamos falando de mais de 10 MB, portanto o desempenho não é tão grande quanto a codificação/manutenção. Obrigado a todos antecipadamente!

Foi útil?

Solução

Parece que o Linq-para-XML é uma boa opção para isso.

Link 1 Link 2

Toneladas de informações por aí sobre isso.

Outras dicas

Sem saber mais nada sobre o seu aplicativo, os conjuntos de dados .NET provavelmente seriam sua opção mais fácil porque Writexml e Readxml já existe.

Qualquer API de serialização deve se sair bem aqui. Eu recomendaria algo que seja baseado em contrato (não BinaryFormatter, que é baseado em tipo), pois isso o manterá utilizável com o tempo (conforme a sua montagem muda).

Então, eu construiria um modelo de objeto básico (DTO) e usaria qualquer um de:

  • XmlSerializer
  • DataContractSerializer
  • Protobuf-Net (todos vocês sabiam que estava chegando ...)

OO, simples e fácil. E fácil de usar para passar fragmentos dos dados (entre usuários de um servidor central).

Eu escolheria um banco de dados incorporado. Usar algo como Sqlite não parece ser um exagero para mim. Você pode até tentar sua porta C# (http://code.google.com/p/csharp-sqlite/).

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