- Utilizzare una libreria .Net o COM con ASP .Net -
 
COSA SERVE PER QUESTO TUTORIAL
 Chiedi sul FORUM | Glossario Una qualunque versione di Visual Studio
Come importare una DLL .Net o COM in una pagina ASP

INTRODUZIONE
Di cosa tratta questo articolo

In questo articolo vedremo come utilizzare una libreria di terze parti (ovvero non inclusa nel Framework .Net), sia .Net sia COM (il che richiede un semplice ulteriore passaggio). Il metodo qui proposto non richiede di avere pieno controllo sul server e non necessita di accedere alla Gestione di IIS, il che offre notevoli vantaggi dato che questo spesso risulta impossibile ai webmaster il cui spazio è in hosting.

IMPORTARE UNA LIBRERIA .NET
Dove posizionare la DLL e come porvi un riferimento all'interno della pagina ASP

Il procedimento è molto semplice, basta recuperare il/i file DLL del componente di cui si necessita e copiarlo nella cartella Bin all'interno della root (cartella principale) del sito. Fatto questo il Framework, quando ne avrà la necessità, andrà a cercare all'interno di quella cartella la DLL contenente lo spazio di nomi importato. Vediamo come fare riferimento ad un ipotetico componente il cui spazio di nomi (namespace) sia EmailerComponent:


<%@ Page Language="VB" %>

<%@ Import Namespace="EmailerComponent" %>

<script language="VB" runat="server">
Sub Page_Load(obj As Object, e As EventArgs)
EmailerComponent.EMail.Send("indirizzo@mail.com", "Saluti!")
End Sub
</script>

Come si può vedere non è stato specificato nessun riferimento esplicito al file DLL. Ricordiamo che se nel primo avvio l'esecuzione della pagina dovesse risultare molto lenta non c'è ragione di allarmarsi in quanto la prima volta che il Framework incontra un certo assembly lo compila e lo mette nella cache degli assembly dove rimarrà per tutte le esecuzioni successive.

IMPORTARE UNA LIBRERIA COM
Utilizzo del tool TlbImp

In Visual Studio importare un componente COM è semplice quanto per uno .Net, ma se non si utilizza quest'ultimo IDE le cose sono leggermente più complesse: bisogna cioè fare ciò che Visual Studio fa senza che ce ne si renda conto, ovvero creare un wrapper da COM a .Net. Per wrapper si intende una nuova DLL che permette di utilizzare quella COM in ambiente .Net. Crearlo non comporta alcune particolare difficoltà: avviare il prompt dei comandi di Visual Studio o della SDK (è possibile trovare un collegamento ad esso nel menu Programmi nella relativa cartella) e digitare quanto segue:

TlbImp "C:\Programmi\EmailerComponent\EmailerComponent.dll" /out:"C:\Inetpub\wwwroot\Bin\EmailerComponent.dll" /namespace:EmailerComponentWrapped

dove "C:\Programmi\EmailerComponent\EmailerComponent.dll" è il percorso della DLL COM, "C:\Inetpub\wwwroot\" è il percorso della cartella principale del sito e EmailerComponentWrapped è il nome che si desidera assegnare allo spazio di nomi che verrà creato (il parametro namespace è opzionale). Fatto questo ci si ritroverà con la DLL-wrap in Bin e sarà dunque possibile farvi riferimento come spiegato sopra.
NOTA: il programma TlbImp è situato in nella cartella bin all'interno dell'SDK della versione del Framework su cui si sta lavorando, ad esempio "C:\Programmi\Microsoft Visual Studio 8\SDK\v2.0\bin\TlbImp.exe". Si ricorda inoltre che nel caso di componenti COM, anche utilizzando questo metodo, è indispensabile avere il controllo sulla macchina in quanto ogni libreria COM per funzionare correttamente necessità di essere specificata nel registro di configurazione di Windows (compito solitamente svolto dall'installer del componente). Se si ha la necessità di registrare un componente a mano utilizzare il comando regsvr32 seguito dal percorso della DLL.
 

<< INDIETRO by VeNoM00