Question

Je vois que les jonctions sont un moyen commun de référencement code partagé dans de nombreux projets. Cependant, je ne les ai pas vu utilisé dans les applications web avant.

Notre équipe étudie la possibilité d'abandonner les répertoires virtuels en faveur des jonctions pour simplifier notre processus de construction. Mon but est de dresser une liste des avantages et des inconvénients afin de prendre une décision éclairée au sujet de ce changement.

Est-il plus approprié d'utiliser des jonctions ou des répertoires virtuels sur des projets d'applications Web?

L'environnement est ASP.NET, IIS6 / IIS7, VS.NET.

Était-ce utile?

La solution

Les répertoires virtuels par rapport aux jonctions est comme comparer des pommes poires:. Deux créent une sorte de copie virtuelle d'un répertoire, ainsi que les pommes et les poires sont les fruits, mais les extrémités de comparaison il

Tout d'abord, depuis Windows Vista, la nouvelle chose est des liens symboliques (qui sont essentiellement les mêmes que jonctions mais peut aussi pointer vers un fichier ou un chemin SMB à distance).

Les liens symboliques vous permettent, par exemple, partager toutes les parties d'une application Web à l'exception de son web.config et une feuille de style. Ceci est quelque chose des répertoires virtuels ne peuvent jamais faire.

En outre, les répertoires virtuels participent à la surveillance des changements de ASP.NET. Si vous essayez de supprimer (ou un fichier) répertoire à partir de votre application, par exemple, ASP.NET tue votre application après la finalise demande, ce qui entraîne une perte de session, etc. Si au lieu d'utiliser un répertoire virtuel, vous utilisez une symbolique lien, le changement ne sera pas remarqué et votre application va continuer à barattage.

Il est important de garder à l'esprit que les liens symboliques ne sont pas une caractéristique de tous les jours dans Windows. Oui, vous pouvez voir qu'un fichier ou un répertoire est lié dans l'Explorateur, mais ce n'est pas instantanément visible à ce qu'il est lié. En outre, à partir du code, il est beaucoup plus difficile de voir si un fichier est lié, donc si vous supprimez accidentellement le fichier qui est lié à un million de liens symboliques, tous ces liens symboliques soudainement « stop existant ».

Les liens symboliques aussi accélérer le déploiement de plusieurs instances de la même application, car la seule chose que vous devez faire est de copier quelques fichiers réels, puis créer des liens symboliques vers les fichiers source pour tout le reste.

Autres conseils

Dans le cas des dossiers virtuels dont vous avez besoin IIS installé sur chaque environnement. Cependant, avec les deux approches doivent vous maintenir manuellement toutes les références après chaque changement (par exemple la situation quand quelqu'un a ajouté une autre référence), ce qui est convinient.

Pensez à utiliser avec le système VCS referncing. Par exemple SVN avec externals. Dans ce cas, vous devez:

  1. Mise à jour automatique des références sur chaque environnement.
  2. Possibilité d'avoir des références dans les différentes versions de code externe. Cela évitera des situations où il est nécessaire de changer toutes les applications dépendantes après chaque changement de code externe.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top