7
votes

ASP.NET MVC - Alternatives aux bases de données

Je pensé à diviser ça, mais je pense qu'il vaut mieux comme une grande question. Ici, il va. : -)

Avertissement: cette question est en profondeur. : -)

Je travaille avec ASP.NET pour un peu de temps maintenant. Il y a quelques jours, après avoir regardé un cours sur le MVC Pluralsight , j'ai décidé d'essayer IT out. Le développement était incroyable et très facile, surtout avec Entity Framework 4.1. Comme je l'ai cherché autour des options de déploiement, j'ai trouvé AppHarbor . Malheureusement, je suis tombé sur quelques problèmes. Vous voyez, je ne peux pas juste par magie ports mes bases de données sur le git commit AppHarbor exige. Le problème est, je ne l'ai jamais vraiment travaillé avec des bases de données - ils ont toujours juste travaillé automagiquement . Je suis raide peur des chaînes de connexion et autres. J'ai réussi à obtenir une base de données créée sur AppHarbor pour les choses ASP.NET Membership (je toujours besoin de savoir comment copier les données et les schémas, mais je vais comprendre cela :-)) mais je ne suis aucune idée sur ce qu'il faut faire au sujet de la base de données Entity Framework SQL Server Compact, qui j'utilise pour stocker les messages du blog et des commentaires. Problèmes:

  1. Il ne fonctionne pas - MVC / EntityFramwork / whatever-Is-automagiquement-travail-behind-the-scenes ne se déclenche pas une nouvelle base de données ou tout
  2. AppHarbor permet seulement 1 base de données (pour la version gratuite)

    Solutions possibles?

    1. Combiner les bases de données. Je ne sais pas comment faire ou comment je garderais le travail Auto-Magic du EntityFramework.
    2. Adopter une solution non-base de données pour les messages / commentaires. Je me rends compte des bases de données sont incroyablement plus efficace car il y a une sorte d'interface entre le fichier littéral et les programmes accesing, donc vous n'avez pas le verrouillage de fichiers et d'autres choses. Alors, quelle serait la meilleure solution?

      Ma Question

      Quelle est la meilleure façon de gérer cette situation? Non seulement cette situation particulière, mais la situation générale de la "merde-haine-i-bases de données"?

      façons de répondre:

      1. Recommandant que j'apprends sur les bases de données:. Bien, mais s'il vous plaît donner quelques bonnes ressources
      2. Donner une alternative non-base de données. Impressionnante
      3. Expliquer ce que je dois faire pour obtenir tout cela de travail sur AppHarbor (mais plus généralement tout serveur de déploiement): idéal. Je peux même mettre en place une prime juste pour attribuer

        Merci beaucoup à l'avance; Je sais que cela est une question deepish et le représentant recueilli peut-être pas la peine. S'il vous plaît laissez-moi savoir si je dois fournir plus d'informations.


3 commentaires

À l'électeur proche: Si vous pouviez commenter Expliquer ce qui ne va pas avec ma question, ce serait génial. J'aime savoir où je vais mal. :-)


Lit comme un poteau de blog, au lieu d'une question réelle.


@George J'essaie juste de fournir un contexte décent pour mon problème. Je pensais isolé la question de la question assez bien, et je ne vois pas comment cela ne respecte pas la FAQ ... mais si vous avez des suggestions d'amélioration, ce serait génial. :)


3 Réponses :


0
votes

Ma suggestion est de créer des objets à l'aide de l'entité Framework 4.1 (appelé code d'abord)

Le gu (Scott Guthrie) a des pas à pas simples qui vous donneront un départ ... et au lieu de SQLCE4, vous pouvez indiquer l'adresse du serveur APPHARBOR SQL

http://weblogs.asp.net/scottgu/archive/2011/03/19/rc-of-entity-framework-4-1-qui-Chich-includes-f-code-first. ASPX (meilleure ressource et liens vers les autres) Ne devrait pas être plus d'une demi-heure avant d'avoir de vraies données en cours d'exécution à une base de données ...


2 commentaires

Bénéficier au code d'abord, vous vous inquiétez de vos objets et que la DB fonctionne simplement dans les coulisses une fois que vous faites une étape assez simple de dire ce que DB vous souhaitez vous connecter


Merci, mais c'est déjà ce que je fais. Cela ne répond pas tout à fait de ma question (si vous remarquerez, je l'ai monté trois façons de répondre) ... J'aime bien l'idée de simplement connecter le droit à la base de données Appharbor, et je vais vérifier ce lien et revenez à vous.



2
votes

Vous pouvez envisager de consulter une base de données de documents comme Raven DB .


4 commentaires

Merci, cela a l'air intéressant. Le vérifier.


@Thomas Shields: Oui, je suis aussi dans la catégorie "Crap-i-Hate-Bases de données" et que le corbeau est ce que je préfère traiter. Oren Eini a récemment créé un Moteur de blog nommé RACOVOONBLOG si vous souhaitez vérifier comment il l'utilise.


L'avertissement avec les bases de données de documents est qu'avec une poussée GIT, vous pouvez effacer les données téléchargées sur Appharbor si vous n'avez pas fait d'abord.


@Hurricanepkt Righto. Merci pour le rappel. @ataddeini cool, merci.



4
votes

Je vais contre le grain et suggère que vous n'utilisez pas d'EF et générer un tas de code d'échafaudage en utilisant MVC3. Simplifiez votre application et apprenez vraiment ce qui se passe. De cette façon, vous serez en mesure de déboguer et d'ajouter des fonctionnalités.

Essayez de prendre votre base de données existante et de construire une application MVC3 avec Massive . Vraiment simple et confrontable. Vous allez surmonter votre base de données Phobia lorsque vous voyez à quel point il est facile.


1 commentaires

+1 pour penser en dehors de la boîte ici. Pendant que je ne finirai probablement pas de le faire (surtout juste parce que je suis paresseux) Je peux y revenir et j'apprécie que vous essayez de supprimer ma base de données paranoïa. :-)