Pregunta

Estoy escribiendo un programa simple que se ejecutará completamente del lado del cliente. (¿Programación de escritorio? ¿La gente todavía hace eso?) Y necesito una manera simple de almacenar cantidades triviales de datos en forma estructurada, pero realmente no veo ninguna necesidad de usar un sistema de base de datos. Además, algunos de los datos deben ser serializados y transmitidos a diferentes usuarios, como algún tipo de "archivo" o tal vez un "documento". (¿Alguien ha hecho eso antes?)

Entonces, he visto el uso de conjuntos de datos .NET, LINQ, manipulación directa de XML, y todos parecen que harían el trabajo, pero me gustaría saber antes de sumergirme en cualquiera de ellos si hay un método que generalmente es considerado como más fácil de codificar que otros. Como dije, la cantidad de datos que se almacenarán es trivial, incluso si cien personas usan la misma máquina de la que no estamos hablando de más de 10 MB, por lo que el rendimiento no es una preocupación tan grande como la codeabilidad/mantenimiento. ¡Gracias a todos de antemano!

¿Fue útil?

Solución

Suena como Linq-to-XML es una buena opción para esto.

Enlace 1 Enlace 2

Toneladas de información sobre esto.

Otros consejos

Sin saber nada más sobre su aplicación, los conjuntos de datos .NET probablemente serían su opción más fácil porque Writexml y Readxml ya existe.

Cualquier API de serialización debe funcionar bien aquí. Recomendaría algo que esté basado en contrato (no BinaryFormatter, que está basado en el tipo), ya que eso lo mantendrá utilizable con el tiempo (a medida que cambia su ensamblaje).

Entonces construiría un modelo de objeto básico (DTO) y usaría cualquiera de:

  • XmlSerializer
  • DataContractSerializer
  • ProtoBuf-Net (todos sabían que iba a venir ...)

OO, simple y fácil. Y fácil de usar para pasar fragmentos de los datos (ya sea entre los usuarios de un servidor central).

Elegiría una base de datos incrustada. Usar algo como SQLite no parece ser una exageración para mí. Incluso puede probar su puerto C# (http://code.google.com/p/csharp-sqlite/).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top