Domanda

vedo che le giunzioni sono un modo comune di riferimento codice condiviso in molti progetti. Tuttavia, non ho visto li ha usati nelle applicazioni web prima.

Il nostro team sta esplorando la possibilità di abbandonare directory virtuali a favore di giunzioni a semplificare il nostro processo di generazione. Il mio obiettivo è quello di compilare una lista di pro e contro, al fine di prendere una decisione informata riguardo a questa modifica.

È più opportuno utilizzare incroci o le directory virtuali su progetti di applicazioni web?

L'ambiente è ASP.NET, IIS6 / IIS7, VS.NET.

È stato utile?

Soluzione

Le directory virtuali contro giunzioni è come paragonare le mele alle pere:. Entrambi creano una sorta di copia virtuale di una directory, così come le mele e le pere sono entrambi frutti, ma le estremità di confronto ci

Prima di tutto, a partire da Windows Vista, la cosa nuova è collegamenti simbolici (che sono essenzialmente lo stesso di giunzioni, ma può anche scegliere un file o un percorso SMB remoto).

I collegamenti simbolici consentono di, ad esempio, condividere ogni parte di un'applicazione web, tranne la sua web.config e un foglio di stile. Questo è qualcosa di directory virtuali non potranno mai fare.

Inoltre, le directory virtuali partecipano monitoraggio del cambiamento di ASP.NET. Se si tenta di eliminare (un file o una) cartella dall'interno dell'applicazione, per esempio, ASP.NET uccide la vostra applicazione dopo il completamento di richiesta, con conseguente perdita della sessione, ecc Se invece di utilizzare una directory virtuale, si utilizza una simbolica collegamento, il cambiamento non sarà notato e la vostra applicazione continuerà a sfornare.

E 'importante tenere a mente che i link simbolici non sono una caratteristica di tutti i giorni in Windows. Sì, si può vedere che un file o una directory è legata a Explorer, ma non è immediatamente visibile a ciò che è collegato. Inoltre, dal codice è molto più difficile per vedere se un file è collegato, quindi se si accidentalmente elimina il file che viene collegata a da un milione di link simbolici, tutti quei link simbolici improvvisamente 'STOP esistente'.

I link simbolici anche accelerare l'implementazione di più istanze della stessa applicazione, dal momento che l'unica cosa che dovete fare è copiare alcuni file effettivi, e quindi creare link simbolici ai file di origine per tutto il resto.

Altri suggerimenti

Nel caso in cui con le cartelle virtuali è necessario IIS installato su ogni ambiente. Tuttavia, con entrambi gli approcci è necessario mantenere manualmente tutti i riferimenti dopo ogni cambiamento (ad esempio situazione in cui qualcuno ha aggiunto un altro riferimento), che non è comoda.

Si consideri utilizzando VCS con il sistema referncing. Per esempio SVN con esterni . In questo caso si avrà:

  1. Aggiornamento automatico dei riferimenti su ogni ambiente.
  2. Possibilità di avere riferimenti in diverse versioni di codice esterno. Ciò eviterà situazioni in cui è necessario modificare tutte le applicazioni dipendenti dopo ogni modifica codice esterno.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top