1 votes

Jonctions ou répertoires virtuels pour les applications Web ?

Je constate que les jonctions sont un moyen courant de référencer le code partagé dans de nombreux projets. Cependant, je ne les ai jamais vues utilisées dans des applications web.

Notre équipe étudie la possibilité d'abandonner les répertoires virtuels au profit des jonctions afin de simplifier notre processus de construction. Mon objectif est de dresser une liste des avantages et des inconvénients afin de prendre une décision éclairée concernant 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.

2voto

ErikHeemskerk Points 1048

Les répertoires virtuels par rapport aux jonctions, c'est comme comparer des pommes et des poires : ils créent tous deux une sorte de copie virtuelle d'un répertoire, de même que les pommes et les poires sont toutes deux des fruits, mais la comparaison s'arrête là.

Tout d'abord, depuis Windows Vista, la nouvelle chose est les liens symboliques (qui sont essentiellement les mêmes que les jonctions mais peuvent également pointer vers un fichier ou un chemin SMB distant).

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

De même, les répertoires virtuels participent à la surveillance des modifications d'ASP.NET. Si vous essayez de supprimer (un fichier ou) un répertoire à partir de votre application, par exemple, ASP.NET tue votre application après la fin de la requête, ce qui entraîne une perte de session, etc. Si au lieu d'utiliser un répertoire virtuel, vous utilisez un lien symbolique, le changement ne sera pas remarqué et votre application continuera à fonctionner.

Il est important de garder à l'esprit que les liens symboliques ne sont pas une fonctionnalité courante de Windows. Oui, vous pouvez voir qu'un fichier ou un répertoire est lié dans l'Explorateur, mais vous ne pouvez pas voir instantanément à quoi il est lié. De plus, il est beaucoup plus difficile de voir si un fichier est lié à partir du code. Ainsi, si vous supprimez accidentellement le fichier qui est lié à un million de liens symboliques, tous ces liens symboliques cessent soudainement d'exister.

Les liens symboliques accélèrent également le déploiement de plusieurs instances d'une même application, car il suffit de copier quelques fichiers réels, puis de créer des liens symboliques vers les fichiers sources pour tous les autres.

1voto

Yauheni Sivukha Points 1656

Dans le cas de dossiers virtuels, vous devez installer IIS sur chaque environnement. Cependant, avec les deux approches, vous devez maintenir manuellement toutes les références après chaque changement (par exemple, lorsque quelqu'un a ajouté une référence supplémentaire), ce qui n'est pas pratique.

Envisagez d'utiliser VCS avec un système de référencement. Par exemple SVN avec externes . Dans ce cas, vous aurez :

  1. Mise à jour automatique des références sur chaque environnement.
  2. Possibilité d'avoir des références dans différentes versions du code externe. Cela permettra d'éviter les situations où il est nécessaire de modifier toutes les applications dépendantes après chaque changement de code externe.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X