asp tutorials, asp.net tutorials, sample code, and Microsoft news from 15Seconds
Data Access  |   Troubleshooting  |   Security  |   Performance  |   ADSI  |   Upload  |   Email  |   Control Building  |   Component Building  |   Forms  |   XML  |   Web Services  |   ASP.NET  |   .NET Features  |   .NET 2.0  |   App Development  |   App Architecture  |   IIS  |   Wireless
 
Pioneering Active Server
 Power Search





Active News
15 Seconds Weekly Newsletter
• Complete Coverage
• Site Updates
• Upcoming Features

More Free Newsletters
Reference
News
Articles
Archive
Writers
Code Samples
Components
Tools
FAQ
Feedback
Books
Links
DL Archives
Community
Messageboard
List Servers
Mailing List
WebHosts
Consultants
Tech Jobs
15 Seconds
Home
Site Map
Press
Legal
Privacy Policy
internet.commerce














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

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers

HardwareCentral
Compare products, prices, and stores at Hardware Central!

Developing ASP+ Pages Using JScript.NET
By Raja Mani
Rating: 3.5 out of 5
Rate this article


  • email this article to a colleague
  • suggest an article

    Introduction

    Although Jscript has mostly been used to develop client-side scripts, it's increasingly also being used for server-side programming. Since JScript supports object-oriented programming and exception handling, it is a candidate for server-side development.

    We all know that ASP+ pages can be developed using any of the .NET Runtime-compliant languages like C# (pronounced C-Sharp), Visual Basic (VB) .NET, JScript.NET, etc. There are plenty of sample programs that demonstrate writing ASP+ pages using C# and VB. Surprisingly, there are not many examples that demonstrate an ASP+ page written in JScript.NET. Even the .NET preview SDK documentation talks about the older version of JScript, 5.5.

    The lack of documentation and sample programs are the main reasons why I started to explore developing ASP+ pages using JScript.NET. I started writing simple ASP+ pages using JScript.NET, and they seem to work just fine. Once you understand the syntax of the new features in JScript.NET, it is very easy to write anything from a Web form to Web service using JScript.NET. In this article we will look at how to do the following:

    1. 1. Write a simple ASP+ page with server-side event handlers.
    2. 2. Perform the programmatic creation of an ASP+ page.

    Prerequisites

    To run this article's sample code, you need to install the following on your machine:

    • Windows 2000 (Professional/Server)
    • .NET Technology Preview SDK

    Introduction to JScript.NET

    JScript.NET is an evolution of JScript and has new features that facilitate developing robust server-side applications. Before studying how to code ASP+ pages, let's look at some of the important features in JScript.NET

    1. Compiled language
    2. Data-type inferencing
    3. Better object-orientation support

    Compiled Language

    JScript.NET is a truly compiled language compared to its predecessor, JScript 5.5, which is interpreted. The compilation of the code improves the performance of your applications. Just like other .NET languages, the source code is compiled to the intermediate language (IL) and then is executed by the .NET Runtime.

    Data-Type Inferencing

    JScript.NET compiler has the type-inferencing ability that is used to determine the type of the variable. The only data type that was supported in JScript 5.5 was Object. Object is a super type that can hold values of any data type.

    Be certain to use the same variable to store data of different data types. For example, if you use a variable to store strings, do not use it to store floating-point numbers. Remember that JScript.NET can't infer types of global variables. Always declare local variables explicitly using "var."

    The new addition to JScript.NET is type annotations. Type annotations help the compiler detect type mismatch errors. For example, to declare an integer variable, use the following syntax:

    
    	var iVar : int;
    
    

    JScript supports the data types int, float, double, Boolean, number, string, long, object, and array. You can specify data types for local variables, member variables of a class, and parameters of functions using the type-annotation syntax.

    Better Object-Orientation Support

    Unlike in JScript 5.5, where we used to rely on a function that acts like a class, you can declare classes explicitly in JScript.NET using the keyword "class" as follows:

    
    class MyClass
    {
    	// member variables
    	// methods
    };
    
    

    JScript.NET supports inheritance. As a result, you can build new classes by inheriting from existing classes. The following example shows how to inherit a class from an existing class:

    
    
    class DerivedClass extends BaseClass
    {
    	// member variables
    	// methods
    };
    
    
    

    A Simple ASP+ Page

    Developing an ASP+ using JScript.NET is almost similar to developing a page using any .NET language, except for the changes in language syntax. Continuing the tradition of programming languages, let us write an ASP+ page that will display a welcome message. The source code is given below:

    
    
    <%@ Page Language="JScript" %>
    
    <html>
      <head>
    	<script language="JScript" runat="server" >
    	function Page_Load(o : Object, e : EventArgs )
    	{
    		lbl.Text = "Click the Button below to see a welcome
    message...";
    	}
    	function Show(o : Object, e : EventArgs)
    	{
    		lblMessage.Text = "Welcome to ASP+";
    	}
    	</script>
    
      </head>
      <body style="font-family:Verdana; font-size:10pt;
    font-color:blue;">
       <center>
      <H3>Demonstration of an ASP+ page written in
    JScript.NET</H3>
        <form method="post" action="JHelloWorld.aspx" runat="server">
          <p><asp:Label id=lbl Runat="server"/>
          <p><asp:Button id=cmdClick Runat="server" Text="Hello
    World"
    onClick="Show" />
          <p><asp:Label id=lblMessage Runat="server"/>
        </form>
      </center>
      </body>
    
    </html>
    
    
    

    The first line of the code is a Page Directive, which indicates the page compiler that the page is written using JScript. In ASP+ pages, you can neatly compartmentalize your code into the server-side event handlers. The execution of the page is not linear, but event driven.

    The entire ASP+ page is just a .NET class derived from the .NET framework "Page" class. The prefix "Page_" denotes that they are event handlers of the Page object. Two events that are worth learning are Page_Load and Page_Unload. The Page_Load event fires before rendering the page to the browser. You can write the initialization code in this event handler. The Page_Unload event fires after the page is rendered. This is an ideal place to write the clean-up code.

    An ASP+ page is built using the HTML and/or Web controls. Web controls are server-side controls that will generate HTML back to the browser. The object model of the Web control is consistent and its properties need not necessarily map with the HTML attributes. Usually, the programming logic of any ASP+ page resides in the event handlers of the control events.

    The event handlers are tied up to the control events in the declaration of the controls. In the example shown above, the event handler "Show()" is associated with the click event of the button in its declaration tag.

    
    <p><asp:Button id=cmdClick Runat="server" Text="Hello World"
    onClick="Show" />
    
    

    Programmatic Creation of an ASP+ Page

    Again, a page consists of HTML and Web controls with their event handlers. The HTML and Web controls can either be declared using the tags during the page design or created dynamically on the fly. For every control, there is a corresponding .NET class you can use to create and manipulate. There are lots of HTML tags and it's impossible to provide one HTML control for each tag. So, ASP+ has a control named HtmlGenericControl that is the super control you can use for any of the HTML tags that do not have a corresponding HTML Control class.

    You can construct a control, initialize its properties, and then add it to another control or the Page object. The page is a container that has all these controls stored in a hierarchy. The following code demonstrates the creation of an ASP+ page.

    
    
    <%@ Page language="JScript" %>
    
    <script language="JScript" runat="server">
    
    function Page_Load(sender : Object , e : EventArgs )
    {
    	var row : int = 0;
    	// Construct HTML, BODY, H3 Elements and add them to the page
    	var html : HtmlGenericControl = new HtmlGenericControl("html");
    	var body : HtmlGenericControl = new HtmlGenericControl("body");
    
    	this.Controls.Add(html);
    	html.Controls.Add(body);
    
    	var h3 : HtmlGenericControl = new HtmlGenericControl ("h3");
    	h3.InnerText = "Dynamically Created ASP+ Page using JScript.NET";
    	body.Controls.Add(h3);
    
    	// Construct the Form element
    	var TableForm : HtmlForm = new HtmlForm();
    	TableForm.Name = "TableForm";
    
    	var t : HtmlTable  = new HtmlTable();
    	t.CellPadding = 5;
    	t.CellSpacing = 0;
    	t.Border = 1;
    	t.BorderColor = "black";
    	var i : int = 0;
    	var j : int = 0;
    	for(i = 0;i<10;i++)
    	{
    		var r : HtmlTableRow  = new HtmlTableRow();
    		// change the background color for alternating rows
    		if(i%2 == 0)
    			r.BgColor = "LightSkyBlue";
    
    		for(j = 0;j<4;j++)
    		{
    			var c : HtmlTableCell = new HtmlTableCell();
    			c.Controls.Add(new LiteralControl("row " +
    i.toString() + ", " +
    				j.toString()));
    			r.Cells.Add(c);
    		}
    		t.Rows.Add(r);
    	}
    
    	TableForm.Controls.Add(t);
    	body.Controls.Add(TableForm);
    }
    
    </script>
    
    

    The first two lines create an HtmlGenericControl for the tags HTML and Body. The HTML control is added to the Page object. Notice the use of the keyword "this." The keyword "this" represents the object for which the handler is written. In this case, "this" refers to the Page object.

    The HtmlGenericControl that represents the Body tag is added to the HtmlGenericControl for HTML tag. The Form element that acts as the container for the other controls in the page is then created. The Html Table with the rows and columns is created and added to the Form control. Finally the Form itself is added to the Body.

    The items are added in this order because the order determines the placement of opening and closing tags. For example, if we added both the HTML and Body controls to the Page object as shown below:

    
    
    		this.Controls.Add(html);
    		this.Controls.Add(body);
    
    

    The output HTML would be as follows:

    
    
    	<html></html>
    	<body></body>
    
    

    So care must be taken while adding the controls to the page. We need to decide the hierarchy and add the controls to the appropriate parent control.

    Conclusion

    This article is written to provide an insight into the development of ASP+ pages using JScript.NET. Gone are those days when we only used VBScript and JScript for developing server-side applications.

    This article is not intended to be a complete tutorial on JScript.NET. To learn more about JScript.NET, refer to the article "Introducing JScript.NET" (http://msdn.microsoft.com/workshop/languages/clinic/scripting07142000.asp), published at the Microsoft MSDN Web site. Not only can you program ASP+ pages using C#, VB, JScript.NET, but there are lots of third-party vendors who are developing or augmenting their languages to support .NET Runtime, and you have the choice of using any of them.

    Happy programming with .NET.

    About the Author

    Raja Mani is a Microsoft Certified Solution Developer working as a software consultant in San Jose, California. He has been programming in C/C++ since 1990. His areas of expertise include Visual C++, Visual Basic, ASP, XML, and SQL Server. Currently he's investing his time and effort into exploring the new Microsoft .NET Framework. He is developing prototype implementations of Web applications using ASP+, ADO+, C#, and VB .NET. He can be reached at myraja@hotmail.com.

  • Rate This Article
    Not HelpfulMost Helpful
    1 2 3 4 5
    Other Articles
    Aug 7, 2002 - Using MySQL in the Win32 Environment
    Developers who don't want to spend a lot of money on SQL Server and who want a database that's more robust than Access may find MySQL to be a pleasant alternative. This introductory article covers the bare essentials for getting MySQL installed and running in the Win32 environment.
    [Read This Article]  [Top]
    Jul 17, 2002 - Software Development: Steps To Better Ensure Success
    There is never a guarantee of project success when endeavoring to build a sophisticated application. However, there are established steps to follow that will ensure a clear, concise scope, support for the team involved, and a solid opportunity for successful deployment.
    [Read This Article]  [Top]
    Jul 15, 2002 - Securing SQL Server for Web Applications
    If your SQL Server is exposed to the Internet, then hackers are probing it. This article shows how to secure a SQL Server database that's being used with a Web application
    [Read This Article]  [Top]
    Jul 1, 2002 - Protecting Your Web Application Against Dangerous Requests
    Enrico Di Cesare provides a solution for hiding and securing querystring values that pass through a url.
    [Read This Article]  [Top]
    Apr 2, 2002 - Object-Oriented Programming for VBScripters
    Feel intimidated by .NET? This article by Rob Chartier is designed to ease any level VBScripter (ASP) into .NET by clarifying some OOP concepts.
    [Read This Article]  [Top]
    Mar 27, 2002 - A Best Practice for Using ADO Objects
    A few members of the 15 Seconds discussion list talk about the proper way to use methods in order to prevent ADO object errors.
    [Read This Article]  [Top]
    Jan 2, 2002 - The ASP.NET Page Life Cycle
    Solomon Shaffer explores the life cycle of an ASP.NET page from initialization to unloading. He also explains the various methods to override ASP.NET server-side events.
    [Read This Article]  [Top]
    Dec 19, 2001 - Application Architecture: An N-Tier Approach - Part 2
    Rob Chartier creates a simple portable and reusable address book in .NET to demonstrate the power of N-tier application architecture. Complete source code included!
    [Read This Article]  [Top]
    Oct 23, 2001 - Application Architecture: An N-Tier Approach - Part 1
    Learn about N-tier application architecture and realize that developing with multiple layers produces a flexible and reusable application for distribution to any number of client interfaces.
    [Read This Article]  [Top]
    Oct 23, 2001 - Application Architecture: An N-Tier Approach - Part 1
    Learn about N-tier application architecture and realize that developing with multiple layers produces a flexible and reusable application for distribution to any number of client interfaces.
    [Read This Article]  [Top]
    Mailing List
    Want to receive email when the next article is published? Just Click Here to sign up.

    Support the Active Server Industry

    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

    Whitepapers and eBooks

    Intel Whitepaper: Comparing Two- and Four-Socket Platforms for Server Virtualization
    IBM Solutions Brief: Go Green With IBM System xTM And Intel
    HP eBook: Simplifying SQL Server Management
    IBM Contest: Are You the Next Superstar? Join the "Search for the XML Superstar" Contest to Find Out
    Microsoft PDF: Top 10 Reasons to Move to Server Virtualization with Hyper-V
    Microsoft PDF: Six Reasons Why Microsoft's Hyper-V Will Overtake Vmware
    Microsoft Step-by-Step Guide: Hyper-V and Failover Clustering
    Intel PDF: Quad-Core Impacts More Than the Data Center
    Intel PDF: Virtualization Delivers Data Center Efficiency
    Go Parallel Article: PDC 2008 in Review
    Microsoft PDF: Top 11 Reasons to Upgrade to Windows Server 2008
    Avaya Article: Communication-Enabled Mashups: Empowering Both Business Owners and IT
    Intel Whitepaper: Building a Real-World Model to Assess Virtualization Platforms
      PDF: Intel Centrino Duo Processor Technology with Intel Core2 Duo Processor
    Microsoft Article: Build and Run Virtual Machines with Hyper-V Server 2008
    Go Parallel Article: Q&A with a TBB Junkie
    IBM Whitepaper: Innovative Collaboration to Advance Your Business
    Internet.com eBook: Real Life Rails
    IBM eBook: The Pros and Cons of Outsourcing
    Internet.com eBook: Best Practices for Developing a Web Site
    IBM CXO Whitepaper: The 2008 Global CEO Study "The Enterprise of the Future"
    Avaya Article: Call Control XML in Action - A CCXML Auto Attendant
    IBM CXO Whitepaper: Unlocking the DNA of the Adaptable Workforce--The Global Human Capital Study 2008
    Adobe Acrobat Connect Pro: Web Conferencing and eLearning Whitepapers
    HP eBook: Guide to Storage Networking
    MORE WHITEPAPERS, EBOOKS, AND ARTICLES