Title: Introduction to ASP.NET
1Introduction to ASP.NET
- 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
2What 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
3Common Language Runtime Type System
- Compilers use the runtime type system to produce
type compatible components
Components
C
VB
C
Compilers
Runtime Environment
Common Type System
4Robust And Secure
- Native code compilation
- MSIL
- No interpreter
- Install-time or run-time IL to native compilation
- Code correctness and type-safety
- 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)
5.NET Execution Model
VB
VC
...
Script
IL
NativeCode
Common Language Runtime
Standard JITCompiler
NativeCode
6Common 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
7Framework Overview
VB
C
C
Visual Studio.NET
JScript
Common Language Specification
Web Forms (ASP.NET)
Win Forms
Data and XML
Base Class Library
Common Language Runtime
8.NET Framework Architecture
System.WinForms
System.Web
Web Services
Web Forms
Controls
Drawing
ASP.NET Application Services
Windows Application Services
System Base Framework
ADO.NET
XML
SQL
Threading
IO
Net
Security
ServiceProcess
Common Language Runtime
Metadata
Type System
Execution
9Namespace
- 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.HTMLCo
ntrol - ASP.NET Server Controls System.Web.UI.Control.Web
Control
10Importing Namespaces
- Visual Studio .NET adds references to your
projects commonly used namespaces by default - You can import the namespaces into your page
using the _at_Import directive - The following is the syntax for importing a .NET
namespace - lt_at_ Import NamespaceName gt
- Below is a sample of how you would import the
ASP.NET Page class - lt_at_ Imports System.Web.UI.Page gt
11Some 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.webcontrols Classes and definitions to create server controls
12ASP.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)
13ASP.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
14WebForms
- 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
15Server 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 ltinput type"text"gt
- HTML Server control
- ltinput type"text" runat"server"/gt
- ltinput typeradio runatserver valueYes/gt
Yes - Server-side programs can interact with the
control before it is rendered as a plain HTML
control and sent to the browser
16ASP.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
- ltaspButton id"ShowBtn" runat"server"
Text"Show the message." /gt
17HTML 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"
18User 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 self-contained code,
headers, menus, and footers - User controls replace the functionality of ASP
server-side include pages - They are identified with the file extension .asmx
19Other 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
20Server Controls within Visual Studio .NET
- 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
21The Code Behind
- Server programs are written in a separate file
known as the code behind the page - By separating the programming logic and
presentation layer, the application becomes
easier to maintain - Only Server controls can interact with the code
behind the page - Written in any ASP.NET compatible language such
as Visual Basic .NET, C, Perl, or Java - Filename is the same as the WebForm filename
- Add a file extension that identifies the language
- Visual Basic .NET use .vb (mypage.aspx.vb)
- C use .cs (mypage.aspx.cs)
22Code Behind file
- The location of the code behind the page is
determined via a property that is set on the
first line in the page using the _at_Page directive - lt_at_ Page Language"vb" Codebehind"WebForm1.vb"
InheritsMyFirstApp.WebForm1"gt - The _at_Page directive allows you to set the default
properties for the entire page such as the
default language - The CodeBehind property identifies the path and
filename of the code behind file - The Inherits property indicates that the code
behind the page inherits the page class - This page class contains the compiled code for
this page
23Compiling the Page Class
- The compiled code behind the page is the class
definition for the page - A class is a named logical grouping of code
- The class definition contains the functions,
methods, and properties that belong to that class - In Visual Studio .NET the process of compiling a
class is called building - When you build the application, you compile the
code into an executable file - Visual Studio .NET compiles the code behind the
page into an executable file and places the file
in the bin directory
24Page Class Events
- The Page Class consists of a variety of methods,
functions, and properties that can be accessed
within the code behind the page - The first time a page is requested by a client, a
series of page events occurs - The first page event is the Page_Init event which
initializes the page control hierarchy - The Page_Load event loads any server controls
into memory and occurs every time the page is
executed
25Page class events
- Page_init
- Page_load
- Server_Controls
- Page_prerender
- Page_Unload
26Web Services
- Web Services also provide a means to expose .NET
functionality on the web but Web Services expose
functionality via XML and SOAP (cf function
calls over the web)
27Web Services
- If your business partner is Course Technology and
you want to query that companys product catalog
from your Web site, you could - Post a link
- Scrape a Web site (use a program to view a Web
site and capture the source code) - Provide a Web Service to their catalog
application - Web Services are used to create
business-to-business applications - Web Services allow you to expose part or all of
your programs over the Internet. The Web Service
source file has the extension .asmx - A public registry known as UDDI contains
registered public Web Services. Third party Web
Services are available at http//www.xmethods.com
28Web application project files
AssemblyInfo.vb Info about the compiled project file stored in /bin and named project.dll
Global.asax Event handler commands visible to all web forms in a project
Global.asax.resx Define application resources such as text strings, images. Can change without recompiling project.
Global.asax.vb Asp.net code for application events eg session.start
Project.sln Stores links to all project files
Project.suo VS.NET IDE configuration info for the proj.
Project.vbproj Configuration and build settings for project files.
29Web application project files cont.
Project.vbproj.webinfo URL to project web server
Project.vsdisco Enables search for web services
Styles.css Project style sheet
Web.config Project and folder configuration information
Webform.aspx Web form .aspx fileHtml
Webform.aspx.resx Resources in corresponding web form
Webform.aspx.vb Code written for the form (code behind)
Bin\project.dll Compiled project output file (assembly)
Bin\project.pdb Debugging information used by developer
30The lab environment.
- Each machine is set up to be an IIS server
http//localhost1900/.. - You create your web projects with Visual
Studio.Net. VS.NET will create a subdirectory in
c/inetpub/wwwroot for your project. You must
copy this subdirectory when moving to another
machine or home. - URL
- http//localhost1900/MyfirstApp/homepage.aspx
- Alternative to VS.Net is webmatrix
31ASP.NET Vs PHP
Feature PHP ASP.NET
HTML Yes Yes
CSS Yes Yes
php Templates Yes UserControls
ServerControls (buttons,grids etc) No Yes
Javascript Yes Yes Validation controls
Database Conn Yes Yes
Cookies Sessions Yes Yes
VIEWSTATE No Yes
POSTBACK No Yes