I want to create a three-tier application that has a browser front end and a Visual Basic middle-tier. How do I access my VB code from ASP? Should I compile my code as a DLL or as an EXE?
First, create your VB app as an ActiveX DLL. Give it a proper project name (say MyServer). By default, VB will create a blank project containing a single class module. Rename that class module to a suitable class name (say MyClass). Place subroutines and functions within the class module. For those functions and subroutines that you want to expose to your ASP application, make sure you label them "Public", as in "Public Sub MySub" and "Public Function MyFunction", and so forth.
When you have finished, compile the DLL. Test the DLL first with a separate standard EXE VB application to make sure your code is working. Then copy the DLL to the machine where your ASP files are (your Web server). You may need to "install" rather than just copy the file if the necessary run-time support files are not present on the Web server. On that machine, register your DLL by using the "REGSVR32.EXE" file, usually found in your winnt\system32 directory. Within your ASP page, first, create an object from your DLL (component), then invoke its subroutine (method) or function and finally close the object:
Dim objMyObject, strValue
set objMyObject = Server.CreateObject("MyServer.MyClass")
objMyObject.MySub ' <-- invoking a method
strValue = objMyObject.MyFunction() ' <-- calling function
set objMyObject = Nothing.
The names MyServer, MyClass, MySub, and MyFunctions are only shown as an example. Do not use generic names like that; rather, use meaningful names based on what your component doesfor example, Account, Customer, Product, and so forth.