2010-11-22 3 views
0

J'ai travaillé sur une application ASP.NET MVC 2 similaire à SQL MDS. L'application que nous appelons en tant qu'application ADMIN est destinée aux développeurs pour configurer des données client non transactionnelles afin de les intégrer.La solution est-elle passée de ASP.NET MVC 2 à?

L'application a toutefois été conçue pour cibler une base de données SQL sur un environnement unique UAT/LIVE/QA, etc. En un mot, l'application est déployée avec DB.

La nouvelle exigence est - l'application doit cibler plusieurs DB. En d'autres termes, les données client saisies doivent être transférées vers UAT & par la suite dans l'environnement LIVE. Cela garantira que les données client ne doivent pas être saisies plusieurs fois. Cette nouvelle exigence m'a pris au dépourvu.

Je ne peux pas aller avec un site unique ciblant plusieurs DB parce que les environnements sont séparés et qu'aucun accès réseau croisé n'est autorisé. Ce qui est juste. Une autre approche que je pensais était d'exporter le entitgraph d'entitties en tant que paquet (puisque j'utilise LINQ2SQL) pour être importé dans l'environnement suivant en utilisant serialize/deserialize. Cependant, j'ai peur de rencontrer des problèmes d'identification et d'intégrité référentielle. Quelqu'un at-il essayé cela? Comme j'utilise DI/IoC, l'architecture est faiblement couplée. Quelles autres solutions pourrais-je essayer sans trop recourir aux efforts de développement? Dois-je utiliser une approche Winform et mandater les implémenteurs pour avoir un accès réseau à tous les serveurs SQL?

Les pensées seront très appréciées ... Daks

Répondre

0

Toutes les bases de données ont-elles le même schéma? Si oui, ne pouvez-vous pas simplement changer les chaînes de connexion à la volée et vous connecter à quelle base de données vous avez besoin?

+0

Tous les DB partagent un schéma commun. Cependant, je ne peux pas aller avec un site unique ciblant plusieurs DB répartis sur des environnements séparés (QA/UAT/LIVE). Tous sont séparés et aucun accès au réseau inter-environnements n'est autorisé. – dakuji

+0

Je sens ta douleur. Lors de ma dernière entreprise, nous avions environ 40 bases de données à synchroniser. Nous avons utilisé http://www.red-gate.com/products/SQL_Packager/index.htm et SQL Comapre les a beaucoup aimés. – rboarman

+0

Bien que je ne l'ai pas encore testé. De l'apparence de SQL_Packager semble être le candidat le plus approprié pour accomplir ce dont j'ai besoin. – dakuji

0

Si je comprends bien votre question correctement, je pense que vous pourriez envisager d'utiliser ETL pour transférer les données entre les différentes bases de données à chaque fois qu'il est mis à jour. Rhino ETL est un bon outil pour déplacer les données.

Here est un lien sur l'utilisation et here est un lien vers le dépôt git.