Quelle base de données recommanderiez-vous d'utiliser avec l'application C # (.NET)?

StackOverflow https://stackoverflow.com/questions/174059

  •  05-07-2019
  •  | 
  •  

Question

Je développe un petit plan de projet et je suis arrivé à un moment où je dois choisir le système de base de données local à utiliser.

Les données d'entrée seront stockées sur le serveur Web (hébergement - base de données MySQL). L'idée est de créer un processus permettant de télécharger toutes les données nécessaires (par exemple à minuit) et de les traiter. Cependant, il y aura beaucoup d'entrées et d'étapes de traitement, je dois donc utiliser une sorte de base de données locale pour stocker le semi-produit de l'application

Quel système de base de données local recommanderiez-vous pour travailler avec une application C # (.NET)?

modifier: le produit final (informations) doit être facilement exporté vers Hébergement de la base de données MySQL.

Comme Will l'a mentionné dans sa réponse - oui, je suis pour une performance ET un confort d'utilisation.

Était-ce utile?

La solution

Je veux dire que Microsoft SQL 2005 Express, car il s’agit (presque) du choix évident lors du développement en .NET.

Mais tout dépend de vos compétences précédentes en matière de base de données. Si vous connaissez déjà MySql et comme vous l'avez déjà dit, les données doivent être exportées vers MySql. Pourquoi ne pas utiliser MySql à fond?

Autres conseils

Pour aller vite et bien, j'irais avec Sql Server Compact Edition. Il s’agit d’une implémentation en cours de processus de SQL Server, elle ne nécessite donc aucune autre application.

À l’époque, vous utiliseriez une base de données Access pour ce genre de choses. Mais les bases de données Access sont un peu soufflantes.

Il ne faudrait pas beaucoup pour télécharger vos données finies sur le serveur de production. Si vous recherchez une solution qui automatise ce processus, vous devrez probablement envisager d’héberger une instance de MySql localement et d’utiliser les services de réplication fournis.

Je dis aller avec SQL Server Compact Edition. C'est vraiment similaire à la version complète de SQL Server, et VS2008 a un support intégré pour la conception de tables, les requêtes, etc. (Management Studio 2008 le supporte également). L'inconvénient majeur est que vous perdez des procédures stockées, mais l'avantage est qu'il n'y a pas besoin d'installer quoi que ce soit sur la machine des utilisateurs locaux et qu'il fonctionne très rapidement pour sélectionner des données. Encore plus cool, avec SQL Metal, vous pouvez créer un fichier DBML et utiliser LINQ comme vous le feriez avec Sql Server.

Pourquoi utiliser db4o? C'est un OODB que vous pouvez intégrer à votre application. Prend également en charge la réplication . Edit: Comme remarque - Dans mon projet animalier actuel utilisant db4o, j'ai une ligne (C # 3.5):

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

Utilisation d'une expression lambda fortement typée pour obtenir une liste (lazy) d'objets de la base de données. Il utilise également des index pour récupérer rapidement la liste.

La prise en charge de MS SQL Server est prête à l'emploi sans autre pilote ou configuration. MS SQL Server Express est également gratuit.

Vous pouvez générer des scripts qui exporteront les données vers / depuis MySQL.

Le " évident " Le choix serait MS SQL Server Express. VS et .net le supportent tous deux de manière native et si vous avez déjà de l'expérience (pour la base de données principale), je serais certainement tenté de rester avec elle (ou sa version express).

Mais ce n’est certainement pas la fin de vos options. J'utilise beaucoup SQLite pour les applications multiplates-formes et les applications Web. C'est extrêmement rapide et il s'intègre plutôt bien grâce à System.Data.SQLite - mais pas comme étroitement comme MS SQL Server.

Il existe également une édition compacte de SQL Server qui se compare très bien à SQLite.

Choisissez tout ce qui est disponible, mais code par rapport aux interfaces uniquement, afin de pouvoir basculer facilement entre elles.

Pour la production, je dirais soit MS SQL pour les grands projets (ou express pour les utilisateurs de niveau moyen) simplement en raison de l’intégration étroite avec VS et Sqlite pour les plus petits projets.

Étant donné la description, je penserais que Sqlite serait un bon choix, car ce sont les frais généraux les plus simples et les plus bas.

Je ne connais pas de bonne base de données in-process intégralement syntaxique et compatible avec MySQL. Dans cet esprit, vous avez trois options:

  1. Choisissez quelque chose comme SQLlite, Access ou SQL Server Compact. Le problème est que vous finirez par écrire une logique de conversion complexe avec l’une de celles-ci et que vous devrez écrire toutes vos requêtes deux fois.
  2. Installez MySQL localement. Ensuite, vous devez avoir un serveur de base de données complet s'exécutant sur votre système local. Vous voulez absolument éviter cela pour tout ce que vous expédierez à un client, mais pour votre propre usage, cela pourrait bien se passer. Heureusement, MySQL n’utilise pas autant de ressources que certains autres serveurs de bases de données modernes, mais cela n’est toujours pas idéal.
  3. Basculez vers l'édition SQL Server Express sur le serveur et utilisez SQL Server Compact sur le client. C'est aussi bon marché que MySQL (peut-être même moins cher, puisque vous êtes censé acheter MySQL pour toute utilisation commerciale). Étant donné que vous utilisez C # du côté du client, vous pouvez également l’utiliser avec ASP.Net du côté du serveur. Et si vous utilisez le côté serveur ASP.Net, il n’est pas difficile de trouver un hôte qui offre SQL Server Express. Maintenant, vos bases de données sont compatibles avec les types et toute requête que vous écrivez pour votre client est également garantie pour votre serveur.

IMO, l’un des gros points forts de la pile de bases de données MS (à l’exception de l’accès) est qu’ils disposent d’une solution compatible pour tout ce que vous faites, du bureau aux clusters de centres de données multiples. Si l’échelle de votre application change ou si vous devez envoyer des données entre deux classes différentes d’applications, votre couche de base de données est traitée.

Je fais quelques tests depuis quelque temps et je recommanderais également SQL Server 2005 (Express si nécessaire) car il fonctionne immédiatement, même si SQL Server 2008 est nouveau et RTM'd maintenant.

SQL Server, comme le signalent la plupart des personnes ... Ma raison serait que vous pouvez utiliser le contrôle de source pour intégrer les scénarios de test de C # à la base de données ....

La fondation d'équipe (TFS) en est une de Microsoft avec interface graphique ...

Puisque ceci est déjà répondu. Je dois mentionner que lorsque je travaille avec des langages CLR, l’intégration CLR / .NET Framework distingue MS SQL Server 2005/2008 des autres. Suite de l'extrait de ici .

  

En utilisant des langages tels que Visual   Basic .NET et C #, vous pouvez capitaliser   sur l'intégration CLR pour écrire du code   a une logique plus complexe et est plus   adapté aux tâches de calcul.   De plus, Visual Basic .NET et C #   offre des capacités orientées objet   tels que l'encapsulation, l'héritage,   et polymorphisme. Vous pouvez facilement   organiser le code associé en classes et   Les espaces de noms, ce qui signifie que vous pouvez   plus facilement organiser et maintenir votre   investissements de code lorsque vous travaillez   avec de grandes quantités de code. le   capacité à logiquement et physiquement   organiser le code en assemblées et   espaces de noms est un avantage énorme que   vous permet de mieux trouver et relier   différents morceaux de code dans un grand   mise en oeuvre de la base de données.

Pour ce que vous avez décrit, définitivement MS SQL Server. Bonne performance, bons outils. Gratuit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top