Introduction to ASP.NET • Some references: • Beginning ASP.NET using VB.NET; Wrox; 2002 chpt 2. • Kalata, K, Introduction to ASP.NET – 2002, chpt 1. • Esposito, D. Programming Microsoft ASP.NET, chpt 1. • Morrison, M. and Morrison, J. Database driven web sites (2nd edn). Chpt 6. • VS.NET on line documentation + Quickstart tutorials • What is ASP.NET and how is different from ASP – ASP: server side technology for creating dynamic web pages using scripting languages eg vb script. – ASP.NET: server side technology for creating dynamic web pages using Fully Fledged programming languages supported by .NET – VB.NET: our chosen language for writing ASP.NET pages
What is .NET? • •
A Microsoft strategy and new technology for delivering software services to the desktop and to the web Components include: – MS Intermediate Language; all code is complied into a more
– – – –
• • •
abstract, trimmed version before execution. All .NET languages are compiled to MSIL – the common language of .NET The CLR- common language runtime; responsible for executing MSIL code; interfaces to Windows and IIS A rich set of libraries (Framework Class Libraries) available to all .NET languages The .NET languages such as C#, VB.NET etc that conform to CLR ASP.NET is how the Framework is exposed to the web, using IIS to manage simple pages of code so that they can be complied into full .NET programs. These generate HTML for the browser.
Built on open protocols (XML, SOAP) Future for development of MS & non-MS based systems. Also heading towards the “Internet Operating System”
Common Language Runtime Type System Compilers use the runtime type system to produce type compatible components Components
C#
VB
C++
Common Type System
Compilers
Runtime Environment
Robust And Secure •
Native code compilation
•
Code correctness and type-safety
•
MSIL No interpreter Install-time or run-time IL to native compilation
IL can be verified to guarantee type-safety No unsafe casts, no uninitialized variables, no out-of-bounds array indexing
Evidence-based security
Policy grants permissions based on evidence (signatures, origin)
.NET Execution Model VB
Native Code
VC
...
Script
IL
Common Language Runtime Standard JIT Compiler
Native Code
Common Language Runtime • Lightweight Just-in-time compiler: – MSIL to Native machine language; Can be ported to numerous platforms
• The compiled code is transformed into an intermediate language called the Microsoft Intermediate Language (MSIL or IL) • An integer in Visual Basic .NET or an int in C# are converted to the same .NET data type, which is Int32 • The IL that is created is the same for all languages • The assembly is the compiled .NET program • The assembly contains the IL along with additional information called metadata • Metadata contains information about the assembly • Use the IL Disassembler (ildasm.exe) to view the IL within an assembly
Framework Overview VB
C++
C#
JScript
‌
Common Language Specification
Win Forms
Data and XML Base Class Library Common Language Runtime
Visual Studio.NET
Web Forms (ASP.NET)
.NET Framework Architecture
System.WinForms
System.Web Web Services
Web Forms
ASP.NET Application Services
Controls
Drawing
Windows Application Services
System Base Framework ADO.NET
XML
SQL
Threading
IO
Net
Security
ServiceProcess
Common Language Runtime Type System
Metadata
Execution
Namespace • The base class libraries are organized into logical groupings of code called namespaces • A namespace is a hierarchical way to identify resources in .NET • The System object is at the top of the namespace hierarchy, and all objects inherit from it – ASP.NET: System.Web namespace – WebForms: System.Web.UI namespace – HTML Server Controls: System.Web.UI.Control.HTMLControl – ASP.NET Server Controls: System.Web.UI.Control.WebControl
Importing Namespaces • Visual Studio .NET adds references to your projects’ commonly used namespaces by default • You can import the namespaces into your page using the @Import directive • The following is the syntax for importing a .NET namespace <%@ Import NamespaceName %>
• Below is a sample of how you would import the ASP.NET Page class <%@ Imports System.Web.UI.Page %>
Some ASP.NET namespaces System
Defines fundamental data types eg system.string
System.Collections
Definitions and classes for creating various collections
System.IO
File reading & writing operations
System.Web
Support browser/server communication
System.Web.UI
Creates the Page object whenever an .aspx page is requested
System.Web.UI.web Classes and definitions to create controls server controls
ASP.NET – class browser • ASP.NET provides a means of exposing the .NET Framework and its functionality to the WWW • Contains a number of pre-built types that take input from .NET types and represents them in a form for the web (such as HTML) • Class browser (over 9000 classes; lists the namespaces): http://interdev.csse.monash .edu.au/quickstart/aspplus/samples/ classbrowser/vb/classbrowser.aspx
ASP.NET • The latest version of ASP is known as ASP.NET • Visual Studio .NET is a developer application used to create ASP.NET Web applications • There are two main types of Web resources created with ASP.NET applications – WebForms are ASP.NET pages within an ASP.NET application – Web Services are ASP.NET Web pages that contain publicly exposed code so that other applications can interact with them – Web Services are identified with the file extension .asmx
WebForms • The ASP.NET WebForm is separated into two logical areas: – The HTML template – A collection of code behind the WebForm
• The HTML template – Contains the design layout, content, and the controls – Creates the user interface, or presentation layer – Instructs the browser how to format the Web page – Is created using a combination of HTML controls, HTML Server controls, Mobile Controls, and ASP.NET controls
Server Controls • HTML Server controls are similar to the HTML controls, except they are processed by the server • Add runat = "server" to the HTML control to transform it into an HTML Server control • HTML control: <input type="text"> • HTML Server control: <input type="text" runat="server"/> <input type=”radio” runat=”server” value=”Yes”/> Yes
• Server-side programs can interact with the control before it is rendered as a plain HTML control and sent to the browser
ASP.NET Controls • ASP.NET form controls will create the HTML code • ASP.NET Server controls are organized as: – – – –
ASP.NET Form Controls Data Validation Controls User Controls Mobile Controls
• ASP.NET controls are usually identified with the prefix asp: followed by the name of the control • ASP.NET button: <asp:Button id="ShowBtn" runat="server" Text="Show the message." />
HTML Server Vs ASP.NET Server, Controls • ASP.NET form controls can interact with client-side events such as when the user clicks on a button – When the event occurs, ASP.NET can trigger a script to run on the server
• ASP.NET form controls also have different properties than their HTML server control counterparts – HTML Server label control • Message1.InnerHTML = "Product 1"
– ASP server label control • Message2.Text = "Product 2"
User Controls
• User controls are external files that can be included within another WebForm • User controls allow you to reuse code across multiple files • For example, you can create a user control that displays the a navigation bar • You can use this control on the home page; they are often used for creating selfcontained code, headers, menus, and footers • User controls replace the functionality of ASP server-side include pages • They are identified with the file extension
Other ASP.NET Server Controls • Data validation controls – A series of controls that validate form data without extensive JavaScript programming
• Mobile controls – A series of controls that provide form functionality within wireless and mobile devices
• Literal controls – Page content that is not assigned to a specific HTML control such as a combination of HTML tags and text to the browser
Server Controls within Visual Studio .NET â&#x20AC;˘ In Visual Studio .NET most of the ASP.NET Server controls are located on the Web Forms tab in the toolbox Server controls with Visual Studio.NET