2009-11-01 31 views
10

Estoy construyendo alguna aplicación WPF para administrar mi tiempo. Me gustaría ahorrar tiempo para el tiempo de trabajo en el proyecto por un día calendario.¿Cuál es la mejor manera de guardar datos localmente en una aplicación WPF?

Así que mi pregunta es ¿cuál es la mejor opción sobre cómo guardar los datos? Pensé que podría usar un archivo XML, un archivo de base de datos Access o tal vez una propiedad. Me gustaría guardar los datos localmente, por lo que no hay acción SQL Server en este caso. :)

¿Qué piensas, qué camino tomar?

Respuesta

5

Me gustaría obtener SQLite ya sea en su forma pura o .NET-friendly (haciendo una búsqueda en Google para 'sqlite .net' le dará algunas opciones allí). Es súper portátil y, en mi opinión, más fácil de instalar y distribuir que SQL Server compact.

Lo importante es asegurarse de que no está muy unido a su mecanismo de persistencia en el código, por lo que en el futuro podría sustituir fácilmente cualquier estrategia de almacenamiento que desee.

+0

¡Thx para la propina! Voy a probar SQLite, creo que eso es lo que estoy buscando. – Richard

6

Sé que no dijo SQL Server, pero estoy leyendo que quiere decir que no quiere ningún "servidor" y desea almacenar sus datos en el cliente. También supongo que probablemente no le importe la capacidad de administración de sus datos. Ya sabes, cosas como respaldo. Y las transacciones siempre son agradables, por lo que sus datos pueden permanecer consistentes. Por lo tanto, aunque podría usar XML (desterrar de su mente todos los pensamientos de Access), terminaría rodando su propia persistencia, cuando este es un problema resuelto.

Por lo tanto, consulte la edición gratuita SQL Server Compact. Es liviano, está diseñado para ejecutarse en un escritorio o dispositivo móvil, y se puede implementar fácilmente si su aplicación necesita hacerlo alguna vez. Y todos los marcos de persistencia comunes lo soportan. ¿Y he mencionado que es gratis (ya que no cuesta nada)?

+0

Mi propio proyecto de sandbox es más o menos lo mismo. Opté por usar SqlCE como una forma de aprender también Linq2Sql. Si tuviera que volver a hacerlo, podría optar por utilizar SqlCE w/ADO o (si es práctico, aún no lo he hecho) algo en línea con el servicio en la nube de Amazon, Google o MS. –

+2

¿Por qué no utilizar SQLite? Se integra muy bien con todas las cosas .NET y reside como un único archivo en un sistema de archivos. –

+0

También voto por SQLite. Hay un proveedor de Entity Framework para ello, por cierto. –

4

Yo sugeriría elegir el origen de datos más fácil posible y desacoplarlo adecuadamente para que pueda agregar un nuevo y diferente origen de datos en un momento posterior cuando descubra lo que es apropiado para sus propósitos. Con ese fin, puede encontrar algo como XML o incluso texto plano para ser lo más simple que podría funcionar.

Una vez que determine las características que necesitará de su fuente de datos, en función de su uso real, elija la tienda de respaldo adecuada.

No creo que sea crítico tomar esta decisión por adelantado porque es un proyecto personal, no comercial.

1

Un enfoque simple muerto que he usado en el pasado es su idea de "archivo xml". Simplemente cree un objeto que describa los datos que le interesan y, a continuación, serialícelos en xml.

Greg tiene toda la razón cuando dice que asegúrese de que su fuente de datos esté desacoplada correctamente para que pueda desactivarla si cambian sus requisitos.

Cuestiones relacionadas