2010-11-25 2 views
1

Je suis en train de configurer deux environnements de développement (l'un sera sur mon serveur local, l'autre sur un fournisseur de services cloud où je vais travailler, ce qui peut nécessiter plus de mémoire que sur mon serveur local).Comment conservez-vous des environnements de développement séparés qui doivent être synchronisés, synchronisés?

Que puis-je faire pour m'assurer que les deux environnements sont toujours entièrement synchronisés? Je cherche à déployer des applications de manière centralisée et à utiliser un outil pour synchroniser les bases de données SQL Server, et un autre outil pour synchroniser les serveurs Sharepoint entre deux machines virtuelles sur les deux environnements à l'identique. Y a-t-il autre chose qui pourrait aider à atteindre cet objectif?

Merci

Répondre

1

Ceci est un problème très délicat pour le développement de SharePoint.

En ce qui concerne le serveur SQL (pour les éléments non-SharePoint), vous pouvez simplement synchroniser vos bases de données à l'aide des outils fournis dans SQL Server. L'assistant de copie de base de données par exemple ou vous pouvez même écrire votre propre paquetage SSIS si vous avez besoin d'un travail personnalisé à faire.

SharePoint est une question différente cependant. Vous ne pouvez pas synchroniser les collections de sites/applications Web d'un serveur à l'autre en copiant simplement les bases de données, cela ne fonctionnera pas (pour plusieurs raisons, mais surtout parce que lorsque vous créez une application web sur un serveur, GUID en tant qu'ID de l'application: ce GUID est utilisé partout dans la base de données et tous les liens entre les tables seront rompus si vous essayez de le modifier). La structure de la base de données SharePoint n'est pas documentée et MS recommande de ne pas la modifier manuellement. Et honnêtement, même si vous avez réussi à synchroniser vos bases de données directement depuis le serveur SQL, vous rencontrerez d'autres problèmes car toutes les personnalisations que vous faites ne sont pas sauvegardées dans la base de données (beaucoup de choses vont dans la ruche).

Donc, il s'agit de ce que vous essayez d'atteindre.

Si vous essayez de synchroniser des personnalisations (c'est-à-dire vos types de contenu, vos modèles de liste, vos composants WebPart, etc.) qui ont été codés. Je vous recommande de créer des packages WSP à partir de votre environnement de développement et de les déployer chaque fois que vous devez effectuer une synchronisation.

Si vous essayez uniquement de synchroniser des données (c'est-à-dire des éléments de liste), vous pouvez utiliser la solution de sauvegarde/restauration (vous la trouverez dans l'Administration centrale). Notez qu'il n'est pas trop fiable si vous avez des personnalisations. Il fonctionne très bien sur hors des sites de la boîte, mais il peut être difficile de restaurer une fois que vous utilisez vos propres modèles de liste, etc.

Vous pouvez également écrire du code pour synchroniser en utilisant le web services ou Content Deployment API et voir si elle répond à vos besoins.

Vous pouvez également regarder dans des outils qui feront tout ou partie du travail pour vous. Donc, fondamentalement, peu importe comment vous décidez de le faire, il ne sera pas aussi simple que vous l'attendiez. Le problème de synchronisation de l'environnement DEV/TEST/PROD est classique pour le développement de SharePoint.

Je travaille sur une application Web SharePoint très personnalisé et la meilleure solution que nous avons trouvée était de:

  • être très discipliné dans notre code: faire toutes vos personnalisations par le code et construire des paquets WSP avec ce code. Aucun concepteur SharePoint Une fois que vous avez personnalisé une page avec le concepteur SharePoint, vous ne pouvez rien synchroniser.
  • Synchroniser les listes entre tous les serveurs utilisant les services Web
+0

Ceci est une très bonne réponse. Merci! – dotnetdev

Questions connexes