Pregunta

Estoy desarrollando un pequeño plan de proyecto y llegué a un punto en el que necesito decidir qué sistema de base de datos local usar.

Los datos de entrada se almacenarán en el servidor web (hosting - MySQL DB). La idea es crear un proceso para descargar todos los datos necesarios (por ejemplo, a la medianoche) y procesarlos. Sin embargo, habrá muchas entradas y etapas de procesamiento, por lo que necesito usar algún tipo de base de datos local para almacenar el semiproducto de la aplicación

¿Qué sistema de base de datos local recomendaría para trabajar con la aplicación C # (.NET)?

editar: el producto final (información) se debe exportar fácilmente a Hosting MySQL DB.

Como Will mencionó en su respuesta, sí, estoy a favor de una performance Y comodidad de uso.

¿Fue útil?

Solución

Quiero decir Microsoft Sql 2005 Express, ya que (casi) es la opción obvia cuando se desarrolla en .NET.

Pero todo depende de las habilidades db anteriores que tengas. Si ya conoce MySql y, como ya dijo, los datos deben exportarse a MySql. ¿Por qué no usar MySQL hasta el final?

Otros consejos

Para ser rápido y sucio, iría con Sql Server Compact Edition. Es una implementación en proceso de Sql Server, por lo que no requiere que instale ninguna otra aplicación.

En el pasado, usaría una base de datos de Access para este tipo de cosas. Pero el acceso a las bases de datos es un poco malo.

No se tardaría mucho en volver a cargar los datos terminados en el servidor de producción. Si está buscando una solución que automatice ese proceso, probablemente deba considerar alojar una instancia de MySQL localmente y usar los servicios de replicación que proporciona.

Yo digo que vaya con Sql Server Compact Edition. Es realmente similar a la versión completa de SQL Server, y VS2008 ha incorporado soporte para diseñar tablas, consultar, etc. (Management Studio 2008 también tiene soporte para eso). El mayor inconveniente es que pierde los procedimientos almacenados, pero el alza es excelente ya que no hay necesidad de instalar nada en la máquina de los usuarios locales, y funciona muy rápido para seleccionar datos. Aún más genial, es que con SQL Metal, puede crear un archivo DBML y usar LINQ como lo haría con el servidor SQL.

¿Qué hay de usar db4o? Es un OODB que puedes incrustar en tu aplicación. También admite replicación . Editar: Como nota al margen: en mi proyecto de mascota actual con db4o tengo una línea (C # 3.5):

IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin");

Uso de una expresión lambda de tipo fuerte para obtener una lista (perezosa) de objetos de la base de datos. También utiliza índices para recuperar la lista rápidamente.

La compatibilidad con MS SQL Server se entrega sin necesidad de ningún otro controlador o configuración. Además, MS SQL Server Express es gratis.

Puede generar scripts que exportarán los datos a / desde MySQL.

El " obvio " La elección sería MS SQL Server Express. VS y .net lo admiten de forma nativa y, si ya tienes experiencia con él (para la base de datos principal), ciertamente estaré tentado a seguirlo (o su versión Express).

Pero ese ciertamente no es el final de tus opciones. Uso mucho SQLite para aplicaciones multiplataforma y aplicaciones web. Es increíblemente rápido y se integra bastante bien a través de System.Data.SQLite , aunque no tan estrechamente como MS SQL Server.

También hay una edición compacta de SQL Server que se compara bastante bien con SQLite.

Elija cualquier cosa que esté disponible, pero solo código contra interfaces, de esa manera puede cambiar fácilmente entre ellas.

Para producción, diría que MS SQL para proyectos grandes (o Express para nivel medio) simplemente debido a la estrecha integración con VS y Sqlite para proyectos más pequeños.

Dada la descripción, creo que Sqlite sería una buena opción, ya que es la sobrecarga más simple / más baja.

No conozco una buena base de datos en proceso que sea completamente sintaxis y compatible con MySQL. Teniendo eso en cuenta, tienes tres opciones:

  1. Elija algo como SQLlite, Access o SQL Server Compact. El problema es que terminarás escribiendo alguna lógica de conversión compleja con cualquiera de ellas y tendrás que escribir todas tus consultas dos veces.
  2. Instala MySQL localmente. Luego, debe soportar tener un servidor de base de datos completo ejecutándose en su sistema local. Definitivamente desea evitar esto por cualquier cosa que envíe a un cliente, pero para su propio uso podría estar bien. Afortunadamente, MySQL no usa tantos recursos como otros servidores de bases de datos modernos, pero esto no es lo ideal.
  3. Cambie a la edición de SQL Server Express en el servidor y use SQL Server Compact en el cliente. Es tan barato como MySQL (tal vez incluso más barato, ya que se supone que debes comprar MySQL para cualquier uso comercial). Teniendo en cuenta que está utilizando C # en el extremo del cliente, es posible que desee utilizarlo también con ASP.Net en el lado del servidor. Y si está utilizando el lado del servidor ASP.Net, entonces no es difícil encontrar un host que ofrezca SQL Server Express. Ahora sus bases de datos son compatibles con el tipo y se garantiza que cualquier consulta que escriba para su cliente también funcionará para su servidor.

IMO, uno de los grandes puntos fuertes de la pila de la base de datos de MS (excluyendo el acceso) es que tienen una solución compatible para lo que sea que esté haciendo desde el escritorio hasta los clústeres de centros de datos múltiples. Si la escala de su aplicación cambia o si necesita enviar datos entre dos clases diferentes de aplicaciones, su capa de base de datos está a cargo.

Últimamente he estado haciendo algunas pruebas y, aunque también recomendaría SQL Server 2005 (Express si es necesario) porque funciona de manera inmediata, aunque SQL Server 2008 es nuevo y ahora es RTM.

SQL Server, como la mayoría ha mencionado ... Mi razón sería porque puede usar el control de origen para integrar los casos de prueba de C # a la base de datos ...

Team Foundation (TFS) es uno de Microsoft con GUI ...

Ya que esto ya está contestado. Tengo que mencionar que al trabajar con idiomas CLR, la integración de CLR / .NET Framework distingue a MS SQL Server 2005/2008 del resto. A continuación, un extracto de here .

  

Usando lenguajes como Visual   Basic .NET y C #, puedes capitalizar   en la integración CLR para escribir código que   Tiene una lógica más compleja y es más   adecuado para tareas de computación.   Además, Visual Basic .NET y C #   ofrecer capacidades orientadas a objetos   tales como la encapsulación, la herencia,   y el polimorfismo. Tu puedes fácilmente   organizar código relacionado en clases y   espacios de nombres, lo que significa que puedes   más fácil organizar y mantener su   Código de inversiones cuando estás trabajando.   Con grandes cantidades de código. los   Capacidad de lógica y física.   organizar el código en conjuntos y   espacios de nombres es un gran beneficio que   te permite encontrar y relacionarte mejor   diferentes piezas de código en una gran   implementación de la base de datos.

Por lo que describiste, definitivamente MS SQL Server. Buen rendimiento, buenas herramientas. Gratis.

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