DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Hannes Preishuber Artikel Drucken
        
mit VB COM DLLs ASP Objekte nutzen

Vielleicht haben Sie sich schon mal mit den geheimnissen von COm auseinander gesetzt. Spätestens, wenn es Sie stört, das den Quellcode Ihrer ASP Anwendung jeder sehen und weiterverwenden kann, brauchen Sie eine Möglichkeit diesen Quelltext zu verstecken.
Eine Möglichkeit ist die verschlüsselung. Dies soll aber hier nicht behandelt werden, da der Einsatzbereich auch sehr beschränkt ist.
Viel interessanter ist es die geschäftslogik in einen Komponenete zu packen. Man spricht auch von mehrschichtiger Entwicklung. Auf die Vorteile und Anwendung will ich in einem anderen Artikel eingehen.
Da wir alle faule Coder sind und mit wenig Aufwand viel erreichen wollen, nehme ich in diesem Artikel VB 6.0 um eine COM.DLL zu erzeugen.

Der interessante Part beginnt, wenn Sie in Visual Basic z.B. auf das Response Objekt zugreifen wollen, um direkt HTML Code auszugeben.

Zunächst müssen Sie ihrem Vb Projekt einen Verweis auf die Library hinzufügen. Dies ist die ASP.DLL, kann aber aus der Objektliste über
Microsoft Active Server Pages Object Library

Dann erstelle ich eine Klasse HTTPOUT. Dieser Klasse füge ich meine Funktionen/Methoden hinzu. So verwende ich die PrintLine Funktion mit einem Parameter.

Wichtig ist in der COM DLL die Funktion OnStartPage. Damit holen Sie sich einen Verweis auf das Response Object des IIS. Um das Objekt überall verwenden zu können, definieren Sie noch global eine Variable, die hier myresp heisst.

Dim Myresp As Response

Public Sub OnStartPage(MyScriptingContext As ScriptingContext)
    Set Myresp = MyScriptingContext.Response
End Sub

 

Public Sub PrintLine(Value As String)
  Myresp.Write (Value)
  Myresp.Write ("<br>")
  
End Sub

Da die COM DLL auf das Response Objekt zugreift, brauche ich zum Testen eine ASP Seite. Diese lege ich in einem virtuellen Verzeichnis an.

Eine kleine Hürde gibts noch zu überwinden. Da ich die Komponente nicht jedesmal kompilieren will, muss ich das Debuggen aus VB anstossen.
Dazu trage ich in den Projekteigenschaften unter dem Reiter Debuggen die ASP Seite ein, die gestartet werden soll. Der Start erfolgt dann über VB (F5).

<%@ Language=VBScript %>
<%' diese seite dient zum testen eines COm Objektes
  ' die Ausgabe wird durch die COM DLL realsiert
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
set aus= Server.CreateObject("COMTEST.HTTPOUT")
for i= 1 to 5
    aus.printline("Das ist eine Zeile mit nr:" & cstr(i) )
next

%>
</BODY>
</HTML>

Natürlich können Sie auch auf alle anderen Objekte zugreifen. So können Sie den Inhalt eines Formualrfeldes über das Request Objekt auslesen und in VB weiterverarbeiten.
Ein weiterer Fall ist, das Sie den Stream eines Uploades am Server über das Request Objekt abfangen können und diesen in eine Datei speichern. So können Sie selbst Ihre eigene Upload Komponente realisieren.

 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 19.03.2001
  Gültig bis: 18.04.2001
1 Ratings
Bewertung: 100,0%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG