Come creare in pochi passi un server component con Visual Basic

di Daniele Bochicchio, in COM & WebClass,

Questo articolo spiega agli sviluppatori ASP come raggiungere un livello di conoscenza superiore.
I component server-side (da ora server component) sono utili per moltissime ragioni; le più importanti: un componente migliora la velocità e la portabilità di una soluzione, protegge tutto il vostro lavoro, dato che si tratta di una DLL (Dynamic Link Library) e che quindi non espone direttamente il codice sorgente.

Ma cos'è esattamente un server component? E' una specie di controllo Active-X, ma invece di essere client side, come quelli sviluppati per Internet Explorer o lo stesso ambiente Visual Basic, sono usati in ambiente server. La differenza fondamentale tra client e server component è che l'ultimo ha l'assoluto divieto di esporre interfaccia utente, trattandosi di un componente che gira sulla macchina server, e che quindi non deve esporre finestre o pulsanti, in quando queste verrebbero visualizzate sullo schermo della macchina server.

Cosa serve per creare un server component? Un linguaggio che supporti lo standard COM, come ad esempio, Java, Visual C++, Delphi, o Visual Basic. Tutti i linguaggi menzionati, escluso VB, richiedono una mole di lavoro impressionante per iniziare a conoscere i fondamenti. Visual Basic è molto più semplice da usare e da imparare di qualsiasi altro linguaggio, tant'è che molta gente confonde il Visual Basic Script, quello che si usa nelle pagine ASP, con le ASP stesse, che invece di essere un linguaggio è un contenitore, una tecnologia.
Detto questo, per operare serve un sistema operativo a 32 bit (Window 95, 98 or NT) su cui devono girare le ASP, tramite IIS o Personal Web Server (PWS). E' necessario avere installato Visual Basic (dalla ver. 5 in poi) sullo stesso computer su cui dovranno essere sviluppati i components, altrimenti sarà impossibile per VB usare il riferimento agli oggetti ASP.

A questo punto è necessario far partire Visual Basic. Apparirà una finestra che chiede come partire. Selezionare "ActiveX DLL".

Dopo aver fatto doppio click su ActiveX DLL, Visual Basic crea per te un progetto ed una classe predefinite. E' consigliabile rinominare sia Project1 che Class1 secondo i nostri gusti. E' importante scegliere bene il nome, dato che per richiamare il component nelle nostre pagine sarà necessario usare Project1.Class1.
Fatto questo, è necessario fare un riferimento a "Microsoft Active Server Pages Object Library", la libreria necessaria per usare gli oggetti built-in ASP nel component. Dal menu di Visual Basic, bisogna scegliere "Project", quindi "References". Una finestra mostrerà tutti i riferimenti disponibili sul tuo sistema. Questo riferimento si trova solo se sul sistema è installato PWS o IIS. Nel caso in cui non lo trovaste, sarà necessario reinstallarli.

Nel nostro esempio, il nome del progetto sarà "Comp1", quello della classe "MyClass". La sintassi con cui è necessario dichiarare componenti ASP in una pagina è:

Set ObjReference = Server.CreateObject("Comp1.MyClass")

Ora, una volta impostato un riferimento nella pagina ASP, sarà possibile accedere a tutte le Sub o le Function del component, mediante una sintassi del tipo:

 <%
Set ObjReference = Server.CreateObject("Comp1.MyClass")
ObjReference.Prova
%>

Naturalmente affinchè tutto funzioni, è necessario che nel nostro component sia presente una Sub o una Function pubblica dal nome "Prova".

Prima dicevamo della libreria per l'accesso agli oggetti built-in. Bene, si tratta di una libreria molto importante, in quanto si rivela molto utile per queste ragioni. Si può accedere dal component agli oggetti Session, Application, Request, Response. Per usarlo nel component, oltre ad aver dovuto impostare un riferimento (come prima specificato) alla libreria ASP, è necessario inserire una Sub OnStartPage nel codice della classe. La Sub OnStartPage viene eseguita ogni volta che viene creata un'istanza del component, per cui può essere utile anche per altri scopi, come quello di impostare variabili condivise da alcune function/sub.
Risulterà una cosa del genere:

Public Sub OnStartPage(ASPScriptingContext As ScriptingContext)
   Set MyScriptingContext = ASPScriptingContext
   Set MyApplication = MyScriptingContext.Application
   Set MyRequest = MyScriptingContext.Request
   Set MyResponse = MyScriptingContext.Response
   Set MyServer = MyScriptingContext.Server
   Set MySession = MyScriptingContext.Session
End Sub

Non è tutto. E' anche necessario scrivere prima di questa sub, questo codice, per permettere a VB di non generare un errore:

   Private MyScriptingContext As ScriptingContext
  Private MyApplication As Application
  Private MyRequest As Request
  Private MyResponse As Response
  Private MyServer As Server
  Private MySession As Session

A questo punto creeremo anche una Sub che scarichi dalla memoria questi riferimenti, in modo da non appesantire il sistema. Per fare questo useremo la Sub OnEndPage, che viene richiamata alla chiusura della classe.

Public Sub OnEndPage()
   Set MyScriptingContext = Nothing
   Set MyApplication = Nothing
   Set MyRequest = Nothing
   Set MyResponse = Nothing
   Set MyServer = Nothing
   Set MySession = Nothing
End Sub

Ora possiamo accedere dal codice VB del nostro component, a tutti i metodi e le proprietà offerte dagli oggetti built-in ASP. Ad esempio, per scrivere in una pagina ASP, potrai usare il codice MyResponse.Write, che equivale in tutto e per tutto a scrivere in una pagina ASP Response.Write.

2 pagine in totale: 1 2
Contenuti dell'articolo

    Commenti

    Visualizza/aggiungi commenti

    | Condividi su: Twitter, Facebook, LinkedIn

    Per inserire un commento, devi avere un account.

    Fai il login e torna a questa pagina, oppure registrati alla nostra community.

    Approfondimenti

    Nessuna risorsa collegata