Active Server Pages Submitted to Dr. Virginia F. Kleist Submitted by Soundar Nadarajan Contents: Background & History ASP Vs HTML ASP Vs JSP Overview Examples Development Environment Advantages and Disadvantages Utility in ecommerce Usage in Projects Future Trends References Background & History ASP was "born" in November 1996 when Microsoft announced its design of an Active Platform. The Active Platform reflects Microsoft's ideas about how a desktop computer and a server computer should communicate. It consists of two parts: the Active Desktop and the Active Server. The Active Desktop refers to the client side, or the user's side, where HTML files are displayed on a web browser. The Active Server refers to the server-side component. This consists of pages that can be interpreted by the server, hence the term Active Server Pages. ASP Vs HTML ASP files combine HTML, scripts, and ASP code to enable a much higher degree of interactivity than is possible with plain HTML. With ASP, programmers working on Windows NT can tailor the way pages are displayed based on outside information.A different image could be displayed each day of the week, or information could be displayed based on a user's age. This process, which is called condition branching, allows ASP to make decisions about what to display based on certain criteria. HTML, on the other hand, has no way to make this type of decision. It's a display language. In the real world, you'll probably want to interact with users through a web storefront or personalize their experience by offering tailored content. For this, branching or the ability to make decisions is needed. The Differences between Active Server Pages and Conventional HTML: HTML is static. The user types in a Web address and the browser sends a request for the Web page to a Web server. The Web server receives the request and retrieves the appropriate HTML file from a disk or memory and transmits it back to the browser. The user's Web browser translates the HTML file and the results are displayed in the browser window. The results are static as long as the underlying HTML page is unchanged. Static Web pages are used when information is not expected to change much over time. Static Web pages are ideal for home pages or sites where content is not going to be modified frequently. In order to make changes to static Web pages, one must edit the HTML file. ASP is dynamic. Both work in the same way. One major difference with ASP is that it is dynamic. In ASP, scripting code runs on the server and produces HTML output, which is then sent to the browser for display. When a browser requests an ASP file from the Web server, the ASP interpreter reads through the ASP file, executes any of the ASP commands in it and sends the resulting HTML to the browser. This means that the same ASP page might produce HTML that appears in the browser differently each time it is requested. An ASP file can contain any combination of HTML and script. Since ASP pages produce standard HTML, they require no specific browser. Difference between JSP and ASP : The Java 2 Enterprise Edition (J2EE) architecture looked like the best way to develop multi-tiered applications. Java Server Pages (JSP) and servlets had many advantages over the Active Server Pages (ASP) and Common Object Model (COM+) platforms. Microsoft .Net is providing a similar platform but with more functionality, and it quite possibly could have the foundation for being cross-platform at some stage. According to Sun, JSP is better than ASP for the following reasons: It has platform and server independence, it has extensible JSP tags and ASP is interpreted. ASP .Net changes all of this. Java is superior for it is a cross-platform environment. Drawbacks: Java is slow by design. With Java, every time you run your program it goes through the Java Virtual Machine, an interpreter, which then converts the Java byte codes to native code. Microsoft may end up having support for platform independence with the way programs are compiled with Microsoft .Net. When a program is compiled with .Net, it is compiled into a DLL or EXE in Microsoft Intermediate Language (MSIL) format, a processor independent assembly language. MSIL does not contain any dependencies on any particular operating system or architecture. The first time this EXE is executed, it uses Just In Time (JIT) compilation to convert the MSIL into native code. So the first time you run it, it may be slower, but subsequent executions will be faster. This has the potential for adaptation to a cross-platform situation, but Microsoft hasn't made any promises of that yet. Now, if Microsoft will ever actually convert .Net to work on other platforms, but they are putting the support in there for it. Of tags and scripts ASP 3.0 does not have extensible tags, an advantage that JSP has held over ASP for quite some time. Now with ASP .Net, extensible tags are available. Through the use of Web Forms, ASP .Net is able to do data binding, form validation and more without the developer having to write any script at all. Developers even have the ability to write their own custom Web Form controls to suit their own needs. ASP was an interpreted language, whereas JSP pages are compiled into servlets the first time the JSP page is accessed. What Sun neglects to mention is that the servlet is still interpreted with the Java Virtual Machine. With ASP .Net, pages will now be precompiled to MSIL and then use JIT compiling, just like JSP. The difference is .Net gets compiled once into native code, and servlets are interpreted every time they are executed. In the long run,the result in .Net code will be more efficient. Microsoft's .Net may not be perfect. Since it still is in beta, it may change quite a bit before it is actually released. However, it is a great alternative. In the past, using COM and the Microsoft Transaction Server (MTS) was a nightmare for developers and using J2EE was slower than death. For a long time, the J2EE platform was superior to ASP and COM+. With .Net coming soon, Sun should be looking for new ways to improve its platform and remain competitive. Otherwise, it may be losing future developers. Overview ASP is a server-side scripting environment that you can use to create and run dynamic, interactive, high-performance Web server applications. What Are Active Server Pages? Active Server Pages (ASPs) are Web pages that contain server-side scripts in addition to the usual mixture of text and HTML (Hypertext Markup Language) tags. Server-side scripts are special commands you put in Web pages that are processed before the pages are sent from your Personal Web Server to the Web browser of someone who's visiting your Web site. When you type a URL in the Address box or click a link on a Web page, you're asking a Web server on a computer somewhere to send a file to the Web browser (sometimes called a "client") on your computer. If that file is a normal HTML file, it looks exactly the same when your Web browser receives it as it did before the Web server sent it. After receiving the file, your Web browser displays its contents as a combination of text, images, and sounds. In the case of an Active Server Page, the process is similar, except there's an extra processing step that takes place just before the Web server sends the file. Before the Web server sends the Active Server Page to the Web browser, it runs all server-side scripts contained in the page. Some of these scripts display the current date, time, and other information. Others process information the user has just typed into a form, such as a page in the Web site's guest book. To distinguish them from normal HTML pages, Active Server Pages are given the ".asp" extension. What Can You Do with Active Server Pages? There are many things you can do with Active Server Pages. You can display date, time, and other information in different ways. You can make a survey form and ask people who visit your site to fill it out, send emails, save the information to a file, etc What Do Active Server Pages Look Like? To the Web browser that receives it, an Active Server Page looks just like a normal HTML page. If a visitor to your Web site views the source code of an Active Server Page, that's what they see: a normal HTML page. However, the file located in the server looks very different. In addition to text and HTML tags, you also see server-side scripts. This is what the Active Server Page looks like to the Web server before it is processed and sent in response to a request. What Do Server-Side Scripts Look Like? Server-side scripts look a lot like HTML tags. However, instead of starting and ending with lesser-than ( < ) and greater-than ( > ) brackets, they typically start with <% and end with %>. The <% is called an opening tag, and the %> is called a closing tag. In between these tags are the server-side scripts. You can insert server-side scripts anywhere in your Web page--even inside HTML tags. Important Underlying Object Model Concepts The ASP object model employs Microsoft's concept of classes, collections, and properties. Collections hierarchically organize groups of variables or properties associated with a class. Multiple collections may be associated with each class of object. You can create neither your own classes nor collections in VBScript. Finally, the current ASP development environment does not include an IDE or debugger. The Request Object The request object provides any information passed through an HTTP request and is primarily used for reading information such as CGI variables, parameters passed through the GET and POST methods, cookies, and client certificates. The HTTP_USER_AGENT variable, for example, is found in the request object's ServerVariables collection. The code szBrowserName = Request.ServerVariables("HTTP_USER_AGENT”) stores the value of HTTP_USER_AGENT in the szBrowserName variable. The Response Object The response object is used to create output that is returned to the user. Because it is used primarily for writing information, more methods are associated with it. The sample code demonstrates using the Response and Request objects. It includes both a simple HTML form and an ASP program file that processes and displays the form's output; the form calls itself recursively. The Application Object An application is a group of related files stored in an IIS virtual directory and shared by all application users. It is instantiated when the first user requests an ASP file in the application's directory structure after the Web server has been started. Applications end when the server shuts down. You can write code to respond to application start and end events, and also attach your own variables to the application object, making them accessible to all application users. Query results, for example, can be stored at a global level that any user can access. The Session Object The session object is similar to the application object, but belongs to a single user. It is instantiated for each application user when either: a user who doesn't already have a session requests an ASP file, an ASP program stores a value in the session object, or a user requests a page containing an object scoped at the session level. Sessions end when the user doesn't read or refresh a page in an application for a specified amount of time. Sessions can also be explicitly terminated with the Session.Abandon method. Like the application object, the session object is very powerful. It maintains the state of the application as a user moves throughout the application's pages. The session is maintained by a unique SessionID, stored in the user's browser. Drawback: it relies on cookies, and can't be used with browsers that don't support them. That leaves you instead with URL query strings, hidden form fields, database records. ActiveX Server Components Unlike the session, application, response, and request objects, ActiveX server components (which act like objects) must be explicitly instantiated in your ASP programs. The syntax for instantiating other objects is: <% Set MyObject=Server.CreateObject ("OBJECTNAME") %>. You then use the instance of the object, MyObject, in the rest of your program. OBJECTNAME is replaced with the name of an object or component. For eg: MSWC.BrowserType. Components and Objects Components and objects are the tools used to communicate with the server's environment and system. A component can contain one or more objects. An object can have one or more methods and one or more properties. By creating an instance of an object, you can use its methods to perform tasks. Changing an object's properties will cause its methods to perform tasks differently. Several objects are built into ASP, some are built into VBScript, and some are built into the server's system. Other components can be created to further customize an application. Object or component Function Source Request Object Handles info coming from the browser Built into ASP Response Handles info sent back to the browser Built into ASP Server Object Provides access to some basic server services Built into ASP Application Object Maintains info for the life of an app. Built into ASP Session Object Maintains info for the life of a session Built into ASP Text Object Manipulates text files VBScript Scripting Object Error Object Provides for error analysis VBScript Scripting Object Dictionary Object Creates a lookup reference VBScript Scripting Object File System Object Provide access to file system VBScript Scripting Object Content Linking Imparts an order to the pages on a site Server Component Browser Capabilities Specifies what a user's browser can do Server Component Ad Rotator Rotates several ads in a spot on the page Server Component Voting Collects information from a user poll Server Component Active Database Provides communication with a database Server Component Embedding ASP into your HTML document: ASP commands embedded in HTML code are executed on the server side rather than being sent to the requesting browser for execution. <%@ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <META NAME="GENERATOR" Content="Microsoft Visual InterDev 1.0"> <META HTTP-EQUIV="Content-Type" content="text/html; charset=iso-8859-1"& <TITLE>My first ASP Page</TITLE> </HEAD> <BODY> <The time is now <%Response.Write Now%> </BODY> </HTML> This is an example of a simple ASP file. Note the two <%...%> code fragments in the above text. This syntax indicates ASP commands that are interpreted at the server instead of being passed to the client. The first line tells the ASP engine to process the script using the VBScript interpreter. The second line of code, <%Response.Write Now%>, instructs the ASP engine to output the current date and time to the client's browser. Active Server Pages – Objects: The seven built-in objects are: · Application · ASPError · ObjectContext · Request · Response · Server · Session Component Object Model (COM) created a standard communication mechanism between components. The most important new feature of version 3.0 is the addition of a seventh, intrinsic object called ASPError which should greatly simplify error handling. Other new features include the addition of three new methods to the Server object, and two new methods to both the Application object and the Session object. Example A basic format of the ASP tag is as below. <html> <head> <title>Date,Time, and Display</title> </head> <body> WELCOME TO SO & SO ‘s ACTIVE SERVER PAGES !!! The time is <%= Time %> Today's date is <%= Date %> <% Dim intH intH = Hour(Now) If intH < 6 Then Response.Write "Do you know what time it is? " ElseIf intH < 12 Then Response.Write "Good morning! How are you? " ElseIf intH < 17 Then Response.Write "Good afternoon! How are you? " Else Response.Write "Good evening! How are you? " End If %> YOUR BROWSER TYPE IS <%= Request.ServerVariables("HTTP_USER_AGENT") %> </body> </html> Simple ASP Coding When a browser sends a request to the server for an ASP page, the server interprets the ASP before it is sent out. Your page could have text that says "good morning" when a client visits your site before noon, text that says " good afternoon" to another client who first visits your site after noon, and "good evening" to the client who visits your site after the workday is over. In other words, your page is being created on the fly: it could be different each time the client sees your page. When writing an ASP, it is differentiate between ASP code and HTML by identifying <% %> or by the script tag : <script LANGUAGE="VBScript" runat="server"> </script> which are known as delimiter tags. Simply place your code between the delimiters. By default, ASP assumes the use of VBScript. Other scripting engines such as JavaScript can be used. Let's look at a few examples of simple ASP coding. To display the time you would insert <%= Time %> into your HTML page. Display the time: <%=Time %> Your browser should display the current time. Date and Time are VBScript functions. Displaying the date follows the same convention <%=date %>. We can even produce the actual day by using a slightly more complex If Then or Select Case structure. Below is an example of displaying the current day of the week by using the If Then or Select Case structure. <html> <head> <title>Date and Time</title> </head> <body> <% Dim dtmCurrent, intWeekDay, strWeekDay dtmCurrent = Date intWeekDay = WeekDay(dtmCurrent) Select Case intWeekDay Case 1 strWeekDay = "Sunday" Case 2 strWeekDay = "Monday" Case 3 strWeekDay = "Tuesday" Case 4 strWeekDay = "Wednesday" Case 5 strWeekDay = "Thursday" Case 6 strWeekDay = "Friday" Case 7 strWeekDay = "Saturday" Case Else strWeekDay = "Something obviously went wrong!" End Select %> Today is <%=strWeekDay %> </body> </html> In general, <%=expression %> sends the value of the expression to the browser or by using the syntax: Response.Write("your statement here") For example: <% Response.Write("Hello" & "<BR>") Response.Write("Hi There") %> produces the output "Hello" followed by "Hi There" on the next line. The server is interpreting all statements between the <% %> delimiter tags before the client sees the page. Response.write tells the server to write its arguments directly to the HTML page being created. Therefore, response.write("Hello" & "<BR>") places Hello <BR> in the HTML file. This, of course, produces a line break after the "Hello" when the HTML is displayed in the browser. Although <BR> is a tag recognized in HTML as a line break, ASP does not recognize <BR>. HTML is interpreted by the browser and ASP is, as stated earlier, interpreted by the server. Response is one of seven intrinsic ASP objects. There are numerous other scripting languages available besides VBScript. We can specify which script language to use by <% @ LANGUAGE=script language %> For example: <% @LANGUAGE=JavaScript %> <% mydate = new Date( ) %> Display the date and time: <%=mydate %> Development Environment The ASP Application-Development Framework The ASP application-development framework includes a number of objects the request object, the response object, the application object, the session object and the server object . These objects have properties, events and methods through which programmatically control the application. The request object is used primarily to manage data relating to HTTP requests. The response object is used to control the HTML output, which is returned to the user. The session object is used to manage session-level data for individual users. The application object is used to manage a multiuser Web-based application. The server object is a bit different. It enables you to instantiate ActiveX server components. In typical ASP applications, server-side ActiveX components provide a lot of the functionality. Microsoft provides several ActiveX server components that can be used in ASP applications. The database-access component, the browser-capabilities component, and the file-access component are of the greatest utilitarian value. Microsoft also provides a content-linking component (that helps manage user navigation through a Web application) and an ad-rotator component (which enables you to alternate the display of images, typically used for advertisements, according to your specifications). There is also a flourishing market for third-party components. And of course, you can create your own components as well, though this is a job for seasoned VB and C++ developers. The ASP object model employs Microsoft's concept of classes, collections, and properties Collections hierarchically organize groups of variables or properties associated with a class. Multiple collections may be associated with each class of object. The current ASP development environment does not include an IDE or debugger. Advantages and disadvantages Earlier most Web sites were created with HTML and simply displayed static pages. A few of the more adventurous programmers would use C or Perl to design a dynamic Web site utilizing the CGI technology. However, these techniques were plagued with security concerns and did not scale well to large sites. Dynamic sites remained relatively few in number and were time consuming and expensive to create.The introduction of the scripting languages, which could be embedded inside HTML code, opened new doors for dynamic site development. Active Server Pages (ASP), which managed to arrive just in time for the explosive growth of the World Wide Web, was a next logical step for Web-based application development. Active Server Pages proved to be an exciting, new technology that extended standard HTML by adding built-in objects, server-side scripts, access to databases, and ActiveX components. The ASP scripting environment is compliant with the Component Object Model (COM). COM created a standard communication mechanism between components. This step allowed non-vendor components, to share their properties, methods and events with other components in a process called OLE automation. Non-vendor components greatly extend the functionality of ASP applications. The true power of ASP is the ease and rapidity with which developers can create and implement dynamic Web sites. ASP employs a scripting environment and VBScript is the default scripting language of choice. However, you can use other languages (such as JScript and Perl) as long as they have a scripting engine that is compatible with the ActiveX scripting standard. ASP is not limited with Microsoft's Internet Information Server (IIS) and this has enhanced the popularity of ASP. For example, Chili!Soft is a proven industry leader in providing ASP engines for use with Web servers from FastTrack, Lotus, Netscape, O'Reilly, and many others. And Halcyon Software offers a brilliant Javabased implementation of the Microsoft ASP framework, allowing developers to deploy ASP applications on any platform. Added functionality: ASP version 3.0. Version 3.0 was released along with Internet Information Server (IIS) version 5.0 as part of the highly anticipated Microsoft Windows 2000. The addition of a seventh, intrinsic object called ASPEerror which should greatly simplify error handling as made ASP easy. Other new features include the addition of three new methods to the Server object, and two new methods to both the Application object and the Session object. Active Server Pages has ultimately proven to be of significant value to developers and fueled a revolution in the development of Web-based applications. The future of ASP will continue to be very interesting with the upcoming ASP-plus, which is now referred to as ASP.NET. It allows the use of the Visual Basic, C#, and Visual C++ languages with ASP. Disadvantages: Potential Drawbacks ASP is a powerful tool for dynamic web content, but like other solutions, it does have some drawbacks. ASP is only available for Windows (NT and 95). It has traditionally required that you be running a Microsoft web server (generally Internet Information Server), though that may change with a product called ChiliASP, which is marketed as ASP for other servers. ASP also uses cookies, which means people using the Lynx browser can't access pages. ASP does have competition, mainly from a product called Cold Fusion. Cold Fusion, made by Allaire, will also let you talk to databases such as an Access file or SQL Server. However, Cold Fusion's tags can be very confusing and difficult to debug, and some people report memory leaks. In a nutshell Pros: Quick Cons: Does not scale. Does not live through reboots because it lives in RAM. Utility in ecommerce ASP can be used for this: Store and get information from a database from the Internet. Make your webpages more interactive for your visitors. A golden example of this is for example, show the current date and time at your page when anyone visits it. Make your pages more personal, by letting the visitor choose the Fonts and size he wants on the page. Store information about a visitor which can be used every time that visitor comes back. And because of that remind him about something or show him his personal settings for your page. Make games, Guest books, Advertisements, Create and read cookie information etc. Usage in Projects The big corporations like Microsoft, Dell are already using ASP in their web strategies. In the future with release Microsoft. NET, ASP Plus is going to have a big wave in the IT industry. Future Trends Actively Serving the World: The Future of ASP As ASP becomes more popular, its dependence on Windows can only be seen as limiting. But this is about to change. XML can be used for more purposes than HTML coders may have ever imagined. Microsoft have not wasted any time integrating it within their applications. IE 5 has been able to parse XML from its inception (just point your IE 5 browser to an XML file and it will display it all nice and color tagged), and talks that Microsoft's future .NET platform will make use of XML even more than any tool does today. Both ASP+, ADO+, among others, will use XML to define and present data. The message from Microsoft is quite simple: if you are comfortable with XML today, you will soon be ready to develop applications in the revolutionary platform called Microsoft .NET. If ASP+ and XML are destined for each other, it seems likely that Active Server Pages will also become more popular as a web framework. At least, this is what various software companies hoping to crack the ecommerce economy believe, resulting in a flux of third-party tools to let you run ASPs on operating systems other than Windows. Microsoft's introduction of ASP paralleled application development in general taking a server-side, thin client focus. Hence, a cross-platform ASP product made very good sense. ChiliSoft was the first to introduce such a server in 1997. One of the more recent incarnations is Instant ASP, produced by Halcyon Software with same promise of running ASPs on any platform of the programmer's liking. About the alternatives to ASP frameworks like cold fusion, most companies agree that not only is ASP easiest to use, it comes free with the OS and supports many development tools. Economic Factors For most software companies, improvements in tools like ASP and XML reflect much larger economic trends. Consistent growth over the last five years in the gross domestic product (GDP) a number averaging 4% per annum — is usually linked to two important development factors: outsourcing and technology. Here productivity becomes coincident with the single trend of generating more goods and services with less effort and at lower costs. ASP fits well in this economy. Tools like ASP and XML, these companies maintain, will be key to the growth of the global economy over the next decade. Reference http://msdn.microsoft.com/workshop/server/asp/aspatoz.asp http://www.webmonkey.com http://www.programmingtutorials.com http://www.devcentral.com http://www.ahref.com http://www.activeserverpages.com http://www.15seconds.com http://webknowhow.net http://www.zdnet.com http://dmoz.org http://www.submitside.com http://www.tutorialhound.com http://www.webtechniques.com http://www.planet-source-code.com http://www.advantage.co.nz http://4guysfromrolla.aspin.com http://www.devguru.com http://www.AspFree.com http://www.4guysfromRolla.com http://www.CoverYourAsp.com http://www.aspalliance.com http://www.aspin.com http://www.haneng.com http://www.findtutorials.com http://www.aspsamples.com http://asp.papiez.com