When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles [1.x] [2.0]
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips
Search

Sections:
Book Reviews
Sample Chapters
Commonly Asked Message Board Questions
Headlines from ASPWire.com
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
Web Hosts
XML Info
Information:
Advertise
Feedback
Author an Article
Technology Jobs

















internet.com
IT
Developer
Internet News
Small Business
Personal Technology
International

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers
ASP ASP.NET ASP FAQs Message Board Feedback ASP Jobs
Print this page.

Windows Systems Administrator
Jupitermedia
US-CT-Darien

Justtechjobs.com Post A Job | Post A Resume

Published: Sunday, November 01, 1998

WebDaily: Your daily source for Web Technology Tips and Tricks!


*****************************************************************
Using Business Objects in your Web Application
*****************************************************************

* This article discusses the use of the business objects in your ASP pages using VisualBASIC.

Microsoft recommends a three-tiered approach when developing web applications. The first tier is the backend, or an ODBC-compliant data source. Most often this data source is a SQL Server or an Access database, but it can be an AS/400, or an Informix or Oracle database. The middle-tier is the business objects, DLLs written in VisualBASIC or Visual C++ which provides a level of abstraction between the front end (or highest tier) and the backend. The final tier is the front end, which are the ASP and HTML pages we've all written.

This article will discuss briefly the advantages of using business objects and will contain an example of how to create and implement a VisualBASIC business object in your web application.

Business objects, as aforementioned, provide a level of abstraction between your ASP pages and database. If you write your ASP pages with direct calls to the database in them, you are asking for a maintenance nightmare if the project is a large one. Imagine that you have 200 ASP pages, each page making at least one call to the database, retrieving data or modifying data. Now, let's say that management has called for a change in the table structure, and it is your job to pick through all 200 ASP pages, making the needed changes to the queries! This would be a maintenance nightmare! Imagine all of your ASPs have code similar to the following:

<%
' Connect to the database...
Dim SQL, rs
SQL = "SELECT Name FROM Customer WHERE CusotmerID = 1"
Set rs = Conn.Execute(SQL)
%>

And say that management wants the Customer table to delete the Name column and replace it with a LastName and FirstName column. You would have to find all intances which were similar to the code example above and alter the query!

By using business objects, you would only need to go alter the source in one place. The use of a business object (let's call it WebApp.CustomerInfo), would result in ASP code like thisL

<%
Dim myCustomer
Set myCustomer = Server.CreateObject("WebApp.CustomerInfo")
myCustomer.Init(1)

Response.Write myCustomer.GetName()
%>

In theory, you shouldn't have to alter a single ASP file, just the business objects interface with the database, which is happening in only one location.

Another benefit of business objects are that they are precompiled, as opposed to your ASP pages which must be interpretted each time a page is requested.

Now, let's discuss how to make ourselves a business object. First, fire up VisualBASIC 5.0 or 6.0, and create a new ActiveX DLL. Set the name of your project to WebApp, and add a class module to your project, naming it CustomerInfo. Now, be sure to go to References in the Project menu and select the ADO library. Now, we are ready to write our function, GetName.

In your class CustomerInfo, just write the following code:

Function GetName(CustomerID as Integer) as String
Dim conConnection as ADODB.Connection
Dim rstRecordset as ADODB.Recordset

Set conConnection = New ADODB.Connection
conConnection.Open "... connection string or DSN ..."

Dim strSQL as String
strSQL = "SELECT FirstName + ' ' + LastName FROM " & _
"Customer WHERE CustomerID = " & CustomerID

Set rstRecordset = conConnection.Execute(strSQL)

GetName = rstRecordset(0)
End Function

Now, go to the File menu and build your ActiveX DLL. You should now have a DLL file. Copy this file to WINNT\SYSTEM32 (or WINDOWS\SYSTEM) and at the command line type:

regsvr32 filename.dll

This will register your DLL in the registry (you should be registering this object on the server, it will do no good to just register it on your workstation!). Now the ASP code using the business object should work!

It is recommended that another level of abstraction be implemented, that business objects don't make direct queries to the database, but rather call stored procedures (if you are using SQL).

Hopefully you've seen the importance of business objects in large projects, and possibly could implement one if needed. Business objects are annoying to develop when still debugging your web application (due to the frequent recompilations needed (along with having to stop IISADMIN to delete the old DLL file and replace it with the new one)), but once you have your project completed, it is *MUCH* easier to maintain the application!

Happy Programming!


*****************************************************************
*****************************************************************
To subscribe to WebDaily, point your browser to:
http://www.4GuysFromRolla.com/webtech/webdaily
*****************************************************************
*****************************************************************

Please forward this information to a friend, including the subscription URL! Happy Programming!


Windows Internet Technology | ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article



JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: Will Hyper-V Make VMware This Decade's Netscape?
Microsoft Article: 7.0, Microsoft's Lucky Version?
Microsoft Article: Hyper-V--The Killer Feature in Windows Server 2008
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Windows Server 2008
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES