How I may help
LinkedIn Profile Email me!


Reload this page Active Server Pages Development Tools

Here are my notes and resources I have found useful when doing ASP programming. Let me know what you find helpful or missing.

webpage article To improve String Handling Performance in ASP James Musson in this March 2003 article compares the performance of issuing several Response.Writes (the quickest) versus string concantenation (the slowest). He also proposes an efficient StringBuilder method.

 

Topics this page:

  • History
  • ASP Packages
  • ASP & Front Page
  • How ASP Works
  • Error Handling
  • Flat File Operations
  • Opening & Closing Databases
  • Doing a Recordset
  • Server Variables
  • Your comments???
  •  

    Site Map List all pages on this site 
    About this site About this site 
    Go to first topic Go to Bottom of this page


    Set screen History of Active Server Pages (ASP's)

      ASP was first announced by Microsoft in November, 1996 (code named "Denali") and introduced March 97 to manage HTTP 1.0 as a part of Microsoft's Internet Information Server version 3 (code name “Gibraltar”).

      ASP 2.0 came with IIS 4.0 installed from the NT4 Option Pack as Personal Web Server (PWS) and also on CD 2 of Visual Studio 6. PWS can also be installed on Windows 95 from the setup.exe in Add-ons\pws folder from the Win 98 CD after the 986KB Feb 98 WinSock2 Upgrade for Windows 95.

      ASP 3.0 comes with IIS 5.0 shipped with Windows 2000. It introduces the Server.Transfer method (which redirects without a trip back to the client) and the Server.Execute method (which, unlike includeson this page, parses code conditionally).

      IIS 5.1 is installed with Windows XP Professional (not the XP Home version).

      ASP.NET (pronounced "dot net") has a whole new architecture — the .NET Frameworkanother page on this site ASP.NET does not run on PWS, only IIS server. Unlike ASP, languages cannot intermix on a page.

      ASP.NET 2.0 introduces controls such as <asp:Login

     

      Sites where ASP is known to add interactivity to web pages:

    • Dell.com sells $10 million of computers PER DAY.
    • BarnesAndNoble.com (bn.com) booksellers.
    • NASDAQ.
    • Nordstrom
    • Merrill-Lynch

      The Microsoft Solution for Windows-based Hosting

      dotnetnuke (DNN) is a one-stop shop for hosting of open-source collaboration suites. Some prefer the XMod module (particularly the Calendar widget). Add-one controls from Infragistics. Michael Washington's tutorials. Beginning DotNetNuke 4.0 Website Creation in C# 2005 with Visual Web Developer 2005 Express: From Novice to Professionalby Nick Symmonds Professional DotNetNuke 4: Open Source Web Application Framework for ASP.NET 2.0 (Programmer to Programmer) By the architects: Shaun Walker, Joe Brinkman, Bruce Hopkins, Scott McCulloch, Chris Paterra, Patrick J. Santry, Scott Willhite, Dan Caron Professional DotNetNuke ASP.NET Portals by Shaun Walker Beginning DotNetNuke Skinning and Design by Andrew Hay and Shaun Walker

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen ASP Packages

    Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen ASP vs. Front Page Together

      ASP takes Microsoft Front Page controls to another level of functionality.

    • Each IS/IPA must install on their servers software to support Microsoft Front Page Extensions and Active Server Pages.

    • Avoid using FrontPage 97 or FrontPage 98 when working with ASP files. The Personal Web Server which comes with FP does not run Active Server Pages. If you try to execute an ASP file with it installed, you will see your ASP code printed on the screen exactly as you typed it.

      During installation, FP muscles itself in as the default application to be invoked when you double-click on file names ending with ".asp". To change this in Windows Explorer, hold the shift key down while right clicking on an .asp file, then select Open With... and choose a new application, such as Wordpad, Notepad, or an HTML editor like Allaire's HomeSite that doesn't change coding.

    • On a stand-alone PC, before installing FP, dial up your ISP to get TCP/IP in memory. FrontPage 98 and PWS98 (PWS4), need 32bit TCP/IP to be "running". To avoid a common annoyance of the computer dialing automatically whenever it starts, reconfigure Internet Explorer and go to View, Connect and choose "I connect to the Internet via the LAN" rather than "through a Modem". This satisfies PWS and you just have to make sure you actually DO connect to your ISP if you want to surf the web or check your email.

    • When installing NTOP, if you choose to install the HTML Internet Manager, you will be able to create and manage virtual directories from a browser on another machine.

     

      gotdotnet Workspaces is an online collaborative development environment where .NET developers can create, host and manage projects throughout the project lifecycle.

    Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen ASP Coding

      When a client's Web/Internet browser clients requests a URL with an .asp file instead of an .htm, the ASP Interpreter (ASP.DLL) is invoked. MS .NET services also recognize .aspx files for processing only by ASP.NET servers. Caution! Unlike .htm files, the full http:// reference must be used to invoke ASP files through a web application server because the whole point of using ASP files is to dynamically generate Javascript and HTML code rather than serving up static .htm files.

      The ASP interpreter acts on blocks of code between delimiter tags <% and %>

      The first line of an ASP file specifies the syntax to be expected by the interpreter:

      <%@Language=VBScript%>
      This is the default. Specify Language=JScript to use Javascript syntax between delimiter tags <% and %>
      <%@Language=Javascript runat="server"%>

      Caution! Non-default code scripts (such as JScript within VBScript file) run on the server are (on IIS 4.0) executed before default script code.

      An example of how an ASP.NET page begins:

      <%@ Page Language="vb" AutoEventWireup="false" Codebehind="Webform1.aspx.vb" Inherits="MyApp.WebForm1" %>

      The Page Language must be "vb" because to create this, in Microsoft Visual Studio 2004, open a new Visual Basic Project and select template ASP.NET Web Application. Resources for several projects are grouped into a Visual Studio Solution.

      ASP.NET header <% Explicit="true" takes the place of <% Option Explicit %>

      My sample "MySolution" has these resources:

      • References
      • AssemblyInfo.vb
      • Global.asax
      • Styles.css
      • Web.config

      • MyProj.vsdisco
      • WebForm1.aspx

    Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Data Flow

      IIS returns to the calling client browser variables from Intrinsic Objects such as the user's browser type, URL, screen resolution, etc. tool ASP Server Variables for this machine/session

      Instead of Response.Write use this shortcut with the equal sign:

        <%=oRS("PeopleNameLast") %>

      Instead of specifying just the variable name, professional ASP programmers usually encase the field in a function to format the field's values, such as using the oRS() function to retrieve the value of a database field or the ToCurrency() function to format numbers using the client's local currency symbols and separators.

      In contrast, JSP pages

        <% if( request.getMethod().equalsIgnoreCase("POST"))
        {%>
          User id:<%=request.getParameter("frmField1")%>
        <%}%>

    Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen HTML FORM ACTION GET vs. PUT

      To retrieve a variable named "X" in a form sent with METHOD="GET", use QueryString("X"). This variable name appears after the http: URL after ?. Each variable is separated by an ampersand (&).

      To retrieve a variable named "X" in a form sent with METHOD="PUT", use Request.Form("X"). For example, the code to redisplay a radio button variable by an ASP program that sends to itself:

      <% if Request.Form("X") = "on" then "selected" %>

      Instead of these native commands, professional ASP programmers use a custom function (typically from a common library) to consistently process values. For example, I run data to be stored in SQL databases through the ToSQL() function, which converts single quotes into double quotes. I use the ToHTML() function to format special characters to HTML encoding.

      NOTE: In the Ruby language, this information is obtained by coding params[:id].

    Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen ASP Document Object Model

    • The Request object supplies information from a client visitor (Form, QueryString, ServerVariables, Cookies, ClientCertificate). Its TotalBytes property provides how much data is transferred each time.
    • The Response object contains methods for building a response to the client (End, Redirect, AddHeader, Write, BinaryWrite, Clear, Flush) and the Cookies collection. Its properties are Buffer, Charset, Expires, ExpiresAbsolute, CacheControl, ContentType, Pics rating, Status line text. IIS5 added AppendToLog.
    • ObjectContext method SetAbort triggers the OnTransactionAbort event. SetComplete transactions triggers the OnTransactionCommit event.
    • The ASPError object (new since IIS5) exposes properties of the last error when Server.GetLastError is called, such as the Category and shorter Description or longer ASPDescription of the error Source and which Line and Column in the File causing the error.
    • The Server object also has methods to do HTMLEncode, URLEncode, and MapPath. Its ScriptTimeout property manages its lifetime.
    • Application methods Lock and UnLock control availability of objects in its Contents and StaticObjects collections. Variables available to all users are defined with Application_OnStart and _OnEnd events.
    • The Session object holds the CodePage, LCID, SessionId, and Timeout properties pertaining to a particular visitor. Like the Application object, Contents and StaticObjects collections for each user session are managed with Abandon and Contents.Remove methods. Variables available to each session is defined with Session_OnStart and _OnEnd events.

      objRecordset.Fields("DATE") = Now()
      objRecordset.Fields("HTTP_USER_AGENT") = Request.ServerVariables("HTTP_USER_AGENT")
      objRecordset.Fields("HTTP_REFERER") = Request.ServerVariables("HTTP_REFERER")
      objRecordset.Fields("QUERY_STRING") = Request.ServerVariables("QUERY_STRING")
      objRecordset.Fields("REMOTE_ADDR") = Request.ServerVariables("REMOTE_ADDR")
      objRecordset.Fields("REMOTE_HOST") = Request.ServerVariables("REMOTE_HOST")
      objRecordset.Fields("SERVER_PORT") = Request.ServerVariables("SERVER_PORT")
      objRecordset.Fields("URL") = Request.ServerVariables("URL")
      

      CGI coding

      print "QUERY_STRING ", $ENV{'REMOTE_ADDR'}, "\n";
      

      DOM

    Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen ASP Object Model

     

      The global.asa file contains initialization code for the user's session and the application.

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Includes

      Use "include" preprocessor directives to dynamically add code from another file whenever it's invoked. The adovbs.inc is in most ASP pages to define common literals.

      Including other files makes it easier to keep common elements such as menu bars, copyright statements, etc. consistent across in all pages of a website by using a single source file for the contents. This is typically used to enforce login before users can access a page:

      <!--#includesecuritylevel1required.asp"-->
      ' Define VBScript Constants:
      <!-- #include file="common.asp" -->

      If the file is not in the folder, specify instead

      <!-- #include virtual="../lib/edits.asp" -->

    • server.execute conditionally executes a dynamically generated string naming an asp script to be executed. Control is returned after that is executed.

      Server.Execute("Lookup.asp")

    • To abort ASP processing and send the page to the client:

      Response.End

    • To ...

      Response.Flush

    • To forward user to another URL:

      Response.Redirect "http://www.dilbert.com"

      Caution! A common mistake is to leave out "http://".

      server.transfer new to Windows 2000 unlike redirect, does not return to the browser but switches to a different page/site.

      For ASP Developers:   Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Error Handling

      webpage article Click to create ASP error

      Click "Submit" without entering any data on and see a sample error page:

        Microsoft OLE DB Provider for ODBC Drivers error '80004005'

        [Microsoft][ODBC Microsoft Access Driver] Field 'tblAdoAdd.FirstName' cannot be a zero-length string.

      Add this under the </HTML> in ASP pages to trap time-outs:

      <%
      Sub OnTranactionAbort()
          response.clear
          Response.Write "Script timed out."
      end sub
      %>

     

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Flow Control

        Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Flat File Operations

      To operate on individual files (such as .mdb), ADO uses built-in methods of the File System Object of the ADO (Active Database Objects) interface.

      To create (instantiate) a object called objFSO

      Dim objFSO
      set objFSO=Server.CreateObject("Scripting.FileSystemObject")
      	
      To delete prior output file (if one exists):

      If objFSO.FileExists(Server.MapPath("myfile")) Then
         objFSO.DeleteFile Server.MapPath("myfile")
      End IF
      Set objFSO = Nothing
      	

     

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Opening and Closing Databases

      1. Create (instantiate) an ADO Connection (cnn) object:

      Dim cnnXXX
      set cnnXXX=Server.CreateObject("ADODB.Connection")
      2. Open a database using a Connection Stringanother page on this site

      cnnXXX.ConnectionString = strConn
      cnnXXX.Open

      3. Create (instantiate) a Recordset (rst) to hold the output:

      Dim rstXXX
      Set rstXXX = Server.CreateObject("ADODB.Recordset")
      rstXXX.CursorLocation=3
      rstXXX.CacheSize=10

      4. Define a SQL dynamic queryanother page on this site string, (which ends with a semicolon):

      Dim strSQL
      strSQL = "SELECT * FROM People;"

      5. Execute the SQL query through the connection and into the recordset:

      Set rstXXX = cnnXXX.Execute( strSQL )

      6. Do stuff with the data

      7. Finally, close the object and set it to nothing:

      cmmXXX.Close
      set cnnXXX=Nothing
     

      The ConnectionString property identifies the data source to be used for retrieving and storing the information manipulated by the data control. It includes information OLE DB provider used to communicate with the data source.

      The RecordSource property identifies the information managed by the data control. This could relate to all of the information in a single table, some of the information from a single table, or information stored in multiple tables in the data source.

      webpage article Young Alex Haneng offers clear explanations

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Doing Stuff With a Recordset

      You can perform insert, update, delete, or selection of data on a database.

      To save the file to XML format:

      rstXML.Save Server.MapPath("db_xml.xml"), adPersistXML

      Using a Forward-Only Cursor on an ADO Database To use the oRS object's default method to return the value of a column named PeopleNameLast from the first row:

      oRS.MoveFirst
      Response.Write oRS("PeopleNameLast")

      You can also use method MoveLast for the last row or MoveNext. Note that cursors to simple recordsets cannot move backward (using MovePrevious) through the database.

     

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Set screen Resources

     

      Go to Top of this page.
    Previous topic this page
    Next topic this page

    Portions ©Copyright 1996-2007 Wilson Mar. All rights reserved. | Privacy Policy |

    Related:

  • IIS Configuration
  • Web Development Tools
  • Perl
  • Application Development
  • Web Projects
  • Javascript Coding

  • How I may help

    Send a message with your email client program


    Your rating of this page:
    Low High




    Your first name:

    Your family name:

    Your location (city, country):

    Your Email address: 



      Top of Page Go to top of page

    Thank you!