|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Messaggi: n/a
|
[c#] help! non ho capito alcune cose del .net framework e c#?
ciao a tutti
volevo chiedervi cortesemente se potevate aiutarmi a capire come funzionano le dll e gli assembly in c#. Ho provato a leggere i libri della hoepli e l'MSDN ma ho ancora molti dubbi. Partiamo dalle basi: che differenza c'è tra un assembly e una dll??? in particolare ho letto che un assembly può contenere una dll, un eseguibile ed altre cose..ma allora cosa è un assembly? è un programma (applicazione) compilato a se stante? o un'applicazione può contenere diversi assembly? poi in c# importare un assmbly e importare una dll immagino avranno sintassi diverse? quali??? infine, anceh se credo di esagerare, un app. domain nel contesto assembly dll come si inserisce??? grazie in anticipo per la risposta....se non riesco a capirlo tramite voi credo che dovrò chiedere ad un informatico a pagamento immagino... ciao! |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
La prima risposta che mi verrebbe in mente è:
Assembly è un contenitore logico di codice .NET. Un assembly non è necessariamente costituito da un file solo, le sue componenti interne possono essere splittate su file differenti, ma deve esistere un assembly principale che elenca tutti i file in cui sono contenute le sottoparti. Dll è un estensione di comodo in cui è possibile impacchettare un assembly. Dato che un assembly può essere contenuto anche all'interno di file .exe Le estensioni chiaramente sono puramente indicative dato che nè una dll nè un exe .NET sono una dll o un exe in formato PE (quello standard Win32). Un Assembly poi è costituito da uno o più Moduli, che contengono le informazioni sui tipi, ma in generale Visual Studio crea assembly con un singolo modulo. Gli AppDomain sono contesti di esecuzione controllabili dal programmatore in cui puoi caricare un assembly dinamicamente e scaricarlo quando non ti serve più (una sottospecie di LoadLibrary) |
![]() |
![]() |
![]() |
#3 |
Messaggi: n/a
|
si ok ma come si importa un assembly?
devo fare un import per tutti i file ad esso collegati? e che cambia tra importare il singolo file dll e non tutto l'assembly? quindi se ho capito bene un'applicazione può contenere diversi assembly (ancora non ho capito bene come si collegano fra loro per creare un'unica applicazione) e ogni applicazione può essere fatta girare in un appdomain in modo che se due applicazioni fanno uso di due assembly coondivisi uguali, il loro codice viene importato una sola volta nello spazio degli indirizzi virtuali. ho capito bene???? |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
in VS tu aggiungi il riferimento solo al file principale dell'assembly.
nel codice importi i namespace! ps: VS crea diversi file per lo stesso assembly quando al suo interno ci sono risorse per diverse culture/lingue |
![]() |
![]() |
![]() |
#5 |
Messaggi: n/a
|
v
e come si fa ad aggiungere il riferimento al file principale?
con quiale comando c#??? l'using per i namespace lo conosco. ma appunto per riferirsi agli assembly? stesso modo per assembly exe e dll??? |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
Quote:
http://msdn.microsoft.com/en-us/libr...ky(VS.80).aspx |
|
![]() |
![]() |
![]() |
#7 |
Messaggi: n/a
|
v
grazie!!!!
e invece il metodo assembly.load??? va bene anche questo??? prometto che non chiedo piu nulla!!! ![]() ciao |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
i metodi Assembly.Load() o Assembly.LoadFile() servono di caricare dinamicamente un assembly. Da quel momento in poi puoi lavorare solo di Reflection.
Uno scenario d'uso comune per questi metodi è l'implementazione ed uso di AddIn. Nel 99.99% dei casi l'aggiunta di un riferimento statico all'assembly è più che sufficiente ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:27.