2009-06-12 25 views
10

¿Cuál es actualmente la mejor solución para las aplicaciones WPF que están destinadas a ser utilizadas en una computadora donde varios usuarios inicie sesión en ellas y úselas para obtener/guardar información localmente? Así es como veo las opciones:¿Cuál es la mejor solución de base de datos local para aplicaciones WPF?

  • MDF que parece ser la mejor opción, ya que supongo que se puede bloquear abajo bastante bien por lo que a pesar de que los usuarios puedan acceder al archivo .mdf, todavía no pudiste t acceder a los datos en él, excepto a través de la aplicación en sí. Supongo que el archivo .MDF debería existir por separado de la aplicación, de modo que se implementarían el archivo .exe y el archivo .mdf. Ah, si utiliza un archivo .MDF, ¿necesita el usuario SQL Server instalado para usarlo como es indicated in this stackoverflow question?

  • Creo que SDF no es recomendable ya que tiene limitaciones y se utiliza principalmente para el almacenamiento móvil.

  • XML puede ser apropiado si la seguridad no importa, p. una pequeña aplicación para un solo usuario para guardar datos localmente que de todos modos no protegería, y otras aplicaciones/sitios web de la computadora podrían acceder fácilmente a este archivo.

  • SQLite puede ser una opción, pero por lo que sé, las API para .NET para esta base de datos aún no son tan robustas, ¿verdad?

  • .mdb El acceso puede ser una opción si necesita usuarios también para editar/ver los datos o generar informes con Access.

  • también hay IsolatedStorage pero creo que esto tiene serias limitaciones, ¿no? ¿no puede acceder a él desde otras aplicaciones?

  • tal vez usando un servicio de nube podría ser factible y bastante recta hacia adelante hoy en día, habría que investigar

agradecería cualquier comentario o ideas.

Respuesta

11

de SQL Server Compact Edition también es una opción - http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx

El despliegue es bastante fácil de usar ClickOnce o copiando los archivos DLL del motor para el directorio de la aplicación .

edición
+0

¿no es esto lo mismo que los archivos ".ldf" que puede crear con Visual Studio haciendo "agregar elemento, base de datos local"? –

2

Yo diría SQLite. Es increíblemente liviano y fácil de usar, y la API está bien. Siempre puede usar DbLinq como ORM.

3

Elegiría SQLite. Puede obtener el controlador compatible ADO.NET aquí:

System.Data.SQLite

+0

Hace cinco meses, LINQ-to-SQLite no parecía ser una realidad, ¿ha cambiado eso desde entonces? –

+0

cómo protegería los datos para que un usuario con el complemento SQLite Manager para Firefox (https://addons.mozilla.org/en-US/firefox/addon/5817) no pudiera simplemente abrirlo y leer/escribir en es, hay una manera de hacer esto? –

+0

Puede usar un archivo dl sqlite por usuario. – Nifle

1

SQL Server Compact es mi elección, debido a los siguientes beneficios:

  • Una pequeña biblioteca de tiempo de ejecución que puede distribuir con su aplicación
  • Compatible con LINQ to SQL (búsqueda "SqlMetal.exe")
  • experiencia de diseño integrado con Visual Studio 2008

es un buen todo terreno como una solución ligera para una aplicación .NET.

http://www.microsoft.com/Sqlserver/2008/en/us/compact.aspx

0

MDF parece ser la solución más flexible, pero el usuario necesita tener instalado el servidor SQL Express para utilizarlo.

¿Cómo piensa ejecutar procesos CRUD? Si desea utilizar Linq para SQL, tiene limitaciones en términos generales, solo admite SQL 2005, Sql 2008 y Sql Compact.

Además, ¿la aplicación necesita ser desconectada, parcialmente, completamente conectada a internet? Eso puede poner un poco de peso en su decisión.

IMO, comenzaría con SQL Server Compact Edition y, si eso fuera demasiado limitante, pasará a sql server express. (.MDF)

Cuestiones relacionadas