2010-04-19 8 views
12

Estoy escribiendo un pequeño programa para nuestra escuela secundaria local (pro bono). El programa tiene una interfaz que permite al usuario ingresar a las vacaciones escolares. Esta es una simple aplicación de Windows independiente.¿Qué formato utilizo para almacenar una cantidad relativamente pequeña de datos de usuario?

¿Qué formato debo usar para almacenar los datos? Una gran información relacional obviamente es excesiva.

Mi plan inicial era almacenar los datos en un archivo XML. Los compañeros de trabajo han sugerido que utilizo archivos JSON, Access Databases, SQL Lite y SQL Server Express. Incluso hubo una sugerencia de archivos INI de la vieja escuela.

+2

Tengo que preguntar, ¿cuántos usuarios usarán esa base de datos? ¿Lo van a usar todos a la vez? Entonces probablemente un archivo xml sea una mala idea si no desea tener uno por usuario. –

+0

¿Qué hace exactamente tu programa? Si solo enumera las vacaciones y permite a los usuarios ingresar vacaciones, no veo por qué necesita algo más que un simple archivo de texto ... – IVlad

+0

Solo habrá uno o dos usuarios de esta aplicación, Oskar. No tengo ningún conocimiento de sus redes o bases de datos. No usan Outlook. Pensé que simplemente podrían guardarlo en una carpeta y hacer un enlace a su escritorio. Probablemente tendré que mostrarles cómo hacerlo; o) – wcm

Respuesta

10

Los proyectos como este tienen la costumbre de crecer más rápido, y si lo hacen, su archivo XML se volverá complejo y una carga para su administración.

No recomendaría almacenar los datos en un archivo xml o json - son solo archivos de texto con un nombre diferente, todos sufren el mismo problema - no tiene control sobre quién los edita.

utilizan algún tipo de db, a partir de los pequeños primero (Acceso, SQLLite)

Editar

Basado en sus comentarios, poner al día a un punto en el que los usuarios han estado utilizando el aplicación durante dos años.

  • ¿Cuántos datos espera almacenar para entonces?
  • Será el usuario (s) que tenga que mirar hacia atrás a través de datos históricos para ver, por ejemplo, lo que hicieron hace un año

Y más aún, en este momento

  • ¿Cuál es Maestro A hacer el jueves por la tarde
  • ¿Será el maestro B libre de asistir al evento el 15 de mayo de 2010?
  • ¿Puede el alumno C asistir al evento D?

Todas estas preguntas/problemas son mucho más fáciles/más eficientes de manejar con SQL. Además, la base de código resultante tendrá mucho más sentido. Atravesar XML no es lo más bonito de hacer.

Además, si su base de usuarios ya está familiarizada con Excel, vincular Excel a una base de datos SQL (y producir resultados personalizados) es mucho más fácil que hacer lo mismo con XML.

+0

Haces excelentes puntos en tu edición. Sin embargo, este problema de programación tiene menos que ver con la disponibilidad de maestros o estudiantes que las normas estatales y federales sobre cuánto tiempo debe pasar para diferentes tipos de revisiones y reuniones. Gracias por su aporte: o) – wcm

+1

+1 por presionar para un DB de algún tipo. Las aplicaciones escritas originalmente para dos usuarios tienen dos puntos finales de por vida: 0 usuarios porque la aplicación es mala o innecesaria, en cuyo caso no importa lo que haga, o muchos usuarios porque sigue creciendo, en cuyo caso, si no tiene alguna tecnología de DNS por adelantado, pagarás caro por ello más adelante. – cdkMoose

2

Hm, obviamente SQL Express es una base de datos completa - otohj puede tener sentido. ¿Por qué no utilizar un databsae si ya tienen uno?;)

De lo contrario, posiblemente iría con un archivo XML.

+0

Ellos ya no tienen uno. – wcm

+0

THen XML - A MENOS QUE pueda prever otros proyectos o más funcionalidadx, luego SQL Express. – TomTom

2

Recomendaría un archivo XML y un conjunto de datos tipeados.
Tendrá que averiguar dónde colocar el archivo XML.

Tenga en cuenta que si alguna vez desea permitir que varios usuarios lo utilicen, necesita para usar una base de datos, como Access o SQL Server.

+0

Punto tomado.En este momento, solo una o dos personas en el departamento de educación especial lo estarán usando. – wcm

+0

¿Por qué él * necesita * utilizar una base de datos para múltiples usuarios? Los únicos problemas serían actualizar los datos dentro del archivo, pero eso aún se puede controlar fácilmente solo permitiendo 1 editor a la vez. –

1

yo iría a

  • SQL Server Express (libre y pleno base de datos relacional soplado)
  • XML/JSON si no desea que una base de datos (LINQ to XML podría ser de gran ayuda aquí)
3

Tendría que duplicar la respuesta de Json y SQL Lite.

Otra opción sería utilizar la base de datos integrada que se incluye en todas las ventanas (since Windows 2000), ESENT. Existe un proyecto Codeplex para facilitar el trabajo con http://managedesent.codeplex.com/

+1

Siempre me pregunto por qué esta parece ser una respuesta tan poco popular cuando alguien hace una pregunta sobre un almacén de datos local para una aplicación y ya hay una base de datos proporcionada por Microsoft lista para funcionar. Aunque creo que es mucho más parecido a un db NoSQL frente a un db normal. –

1

xml parece ser una buena opción. usando Linq a xml debería ser bastante fácil leer/escribir los archivos de objetos/a objetos. echa un vistazo a las clases de XDocument y XElement Acceso a bases de datos, SQL Lite y SQL Server Express seens como una exageración. ¿realmente necesita una base de datos para almacenar datos simples del calendario? ¿Tu aplicación va a crecer?

+0

No anticipo que crezca demasiado. – wcm

3

¿Ha considerado usar SQLite? Dará como resultado un pequeño archivo .s3db. SQLite es utilizado por todo tipo de aplicaciones de escritorio para el almacenamiento local.

Hay un SQLite .NET library que le permitirá usar ADO.NET para CRUD sus datos.

Echa un vistazo Mike Duncan's article on how to get started with SQLite in .NET.

+1

Ir con SQLite también lo coloca en una buena posición para pasar a una base de datos más complicada si los requisitos lo exigen más adelante. – Quentin

1

Desde "simple aplicación de Windows independiente", me parece que no es crítico. Me gustaría ir con lo que sea más fácil, o con lo que te sientas más cómodo. XML es útil legible por humanos, pero un archivo plano sensiblemente formateado puede ser igual de sensato.

0

Una cosa a tener en cuenta si utiliza una base de datos en lugar de un archivo de texto de algún tipo: ya no es una "simple aplicación de Windows independiente". Ahora (lo más probable) tiene un programa de instalación para escribir.

Cuestiones relacionadas