2009-02-03 3 views
3

Je commence un nouveau projet C# qui utilise une base de données, mais je souhaite que tout soit contrôlé par version. Je pense à une base de données SQL Server (Si je fais un fichier mdf, serai-je capable de l'utiliser dans un ordinateur sans SQL Server installé?) Et LINQ to SQL.Démarrage d'une nouvelle application avec prise en charge de base de données

Comment commencez-vous habituellement un projet comme celui-ci? Créez-vous un fichier .sql pour créer la base de données, puis créez les modèles linq? Y a-t-il un meilleur moyen?

Répondre

4

Cela dépend vraiment de ce que vous préférez. Vous obtiendrez des réponses qui vous diront qu'il vaut mieux d'abord concevoir votre modèle d'objet (les programmeurs vous le diront) et d'autres qui vous diront de concevoir votre modèle de données en premier (les administrateurs de la base de données).

En fin de compte, la bonne façon est la façon dont vous vous sentez le plus à l'aise. Si vous pensez que vous allez effectuer la majeure partie de la manipulation des données dans le code, il peut être bon de commencer avec le modèle objet. Si vous pensez que vous effectuerez la majorité des opérations dans les données, il serait bon que vous commenciez avec la base de données. En ce qui concerne le contrôle de la source, si vous voulez tout mettre à jour, alors vous allez devoir générer un fichier sql qui aura ce dont vous avez besoin pour créer votre base de données à partir de zéro. Ensuite, chaque fois que vous modifiez ou mettez à jour le schéma ou les données de la base de données, vous devez également placer ce fichier dans le contrôle de la source. Je recommande également une convention de dénomination qui incorpore la date et l'heure du fichier dans le fichier, pour le rendre facile à comprendre dans quel ordre appliquer les fichiers lorsque vous travaillez à partir de zéro, ou n'importe quel moment après cela.

Et bien sûr, vous devez également modifier votre code source, mais cela devrait aller de soi.

2

Première question: oui vous avez toujours besoin du serveur sql installé sur votre machine pour accéder à la base de données localement, sinon vous devez configurer votre serveur pour accepter les connexions externes. Deuxièmement: non, vous ne devriez pas stocker le fichier MDF de la base de données sous le contrôle de la source. Comme vous l'avez dit, stockez les scripts sql dans le contrôle de source à la place. Troisième: Je recommande d'examiner un système de mapping de relation d'objet tel que FluentNHibernate et NHibernate de sorte que vous n'ayez pas besoin de gérer votre base de données en SQL autre que la table create/alter et les index.

2

Si vous utilisez un fichier .mdf, vos utilisateurs devront posséder une version de SQL Server. Pour les petites applications, vous pouvez utiliser SQL Server Express (gratuit). Quant à la façon de concevoir votre solution, cela peut être difficile, mais votre désir d'avoir tout dans le contrôle de la source est correcte. Trop souvent, les développeurs ne placent pas le code de leur base de données dans le contrôle de la source, ce qui entraîne toujours des problèmes.

Le problème est que la version contrôlant une base de données peut être difficile dans Visual Studio. Le simple fait de placer des scripts de modification dans un dossier est difficile, car vous devez vous souvenir de les créer lorsque vous concevez la base de données. Des choses simples comme le renommage de champs, etc. peuvent être fastidieuses, car les faire dans le bon ordre est important. Vous pouvez envisager une infrastructure de migration telle que RikMigrations comme une approche. Pour les applications plus volumineuses, un projet de base de données Visual Studio (nécessite une nouvelle installation, mais a récemment été rendu disponible dans le sku 'Team Developer') vous aidera à contrôler les versions, modifier les scripts de base de données, etc

Questions connexes