SlideShare a Scribd company logo
ASP.NET Architecture
Table of Contents
1. Introduction to ASP.NET
 History of ASP.NET
 ASP.NET Benefits
2. ASP.NET Architecture Overview
 Separation of Presentation from Logic
3. ASP.NET Base Components
 Web Forms
 Web Controls
2
Table of Contents (2)
4. ASP.NET Execution Model
 Application Life Cycle
 Page Life Cycle
5. Internet Information Server (IIS 5.1/6.0/7.0)
6. Creating ASP.NET forms
7. Code-behind
8. Directives
3
Introduction to ASP.NET
History of ASP.NET
ï‚ź At the beginning of Internet (up to 1997)
 CGI, ISAPI – C, C++
ï‚ź Classic ASP (1997-2002)
 Based onVB Script, COM, ADO
ï‚ź ASP.NET 1.0 / 1.1 (2002-2005)
 The First .NET based Web Development API
ï‚ź ASP.NET 2.0 (2005-2007) – based on .NET 2.0
ï‚ź ASP.NET 3.5 (2007-2009) – LINQ to SQL
ï‚ź ASP.NET 4.0 (2010)
5
ASP.NET Benefits
ï‚ź Separate presentation from code
ï‚ź Object-oriented approach
ï‚ź Component-based development
ï‚ź Event-driven architecture
ï‚ź Code compilation
ï‚ź Extensible architecture
ï‚ź Built-in state management
ï‚ź Many others (data binding, validation, master
pages, etc.)
6
ASP.NET Overview
ASP.NET Execution
ï‚ź ASP.NET applications are executed via a sequence
of HTTP requests and HTTP responses
 Client Web browser request ASPX pages
 TheWeb server executes the ASPX page and
produce XHTML + CSS + JavaScript
8
ASP.NET Architecture
Windows Server
Internet Information Server (IIS) ISAPI Filters (aspnet_isapi.dll)
ASP.NET runtime (aspnet_wp.dll / w3wp.dll)
XML-based
configuration
HttpApplication Cache
HttpModules
Session state Authentication 

HttpHandlers
ASP.NET pages ASP.NETWeb services 

Html Controls AJAX
Web controls User controls 

ASP.NET: How it Works?
ï‚ź Traditional Web pages (static HTML)
 Consist of static HTML, images, styles, etc.
 Execute code on the client side
 Simple operations
ï‚ź ASP.NET Web Forms
 Execute code on the server side
 Database access
 Dynamic pages
 Higher security level
10
SeparateVisualization
from Business Logic
ï‚ź Traditional Web development keep HTML and
programming code in one file (PHP, ASP, 
)
 Hard to read, understand and maintain
 Hard to test and debug
ï‚ź ASP.NET splits the Web pages into two parts:
 .aspx file containing HTML for visualization
 "Code behind" files (.cs for C#) containing
presentation logic for particular page
11
SeparateVisualization
from Business Logic (2)
ï‚ź Class generated from the
.aspx file does not derives
directly from Page class
ï‚ź Derives from class defined
in the "code behind", where
it is easy to add methods,
event handlers, etc.
ï‚ź Using "code behind"
separates the presentation
logic from UI visualization
12
System.Web.UI.Page
TestForm.aspx.cs
TestForm.aspx
Your First ASP.NET
Application – Sumator
ï‚ź Steps to create a simple ASP.NET Web
application:
1. StartVisual Studio
2. Create “New Web Site”
3. Add two text fields, a button and a label
4. Handle Button.Click and implement logic
to calculate the sum of the values in the
text fields
5. Display the results in the label
13
ASP.NET Sumator
Live Demo
ASP.NET Base Components
ASP.NET Base Components
ï‚ź Web Forms – deliver ASP.NET user interface
ï‚ź Web Control – the smallest part we can use in
our Web application (e.g. text box)
ï‚ź "Code behind" – contains the server-side code
ï‚ź Web.config – contains ASP.NET application
configuration
ï‚ź Machine.config – contains configuration for
all applications on the ASP.NET server
ï‚ź Global.asax – class containing application
level event handlers
16
ASP.NET Web Controls
ï‚ź ASP.NET Web controls are the smallest
component part
ï‚ź Deliver fast and easy component-oriented
development process
ï‚ź HTML abstraction, but finally everything is
HTML
17
<form runat="server" ID="frmMain">
<asp:button runat="server" ID="btn"
Text="Click me!" OnClick="btn_Click" />
</form>
Web.config
ï‚ź Main settings and configuration file for ASP.NET
ï‚ź Text based XML document
ï‚ź Defines:
 Connection strings to any DB used by app
 The default language for child pages
 Whether debugging is allowed
18
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
</system.web>
</configuration>
Minimal Web.config
should look like this
Machine.config
ï‚ź Text based XML document
ï‚ź Contains settings that apply to an entire
computer
19
Global.asax
ï‚ź Also known as ASP.NET application file
ï‚ź Located in the Web application root folder
ï‚ź Exposes application and session level events
 Application_Start
 Application_End
 Session_Start
 Session_End
 

20
Look InsideWeb.config,
Machine.config, Global.asax
Live Demo
ASP.NET Execution Model
ASP.NET Execution Model
ï‚ź First call to particular page
23
ASP.NET Execution Model (2)
ï‚ź Any other call after the first
24
ASP.NET Application Lifecycle
1. IIS receives the HTTP request
2. IIS using ISAPI sends the request to
aspnet_wp.exe
3. ASP.NET receives request for the first time
4. Basic ASP.NET objects are created for every
request (e.g. Request, Response, etc.)
5. Request is associated with the
HttpApplication object
6. HttpApplication process the request
25
ASP.NET Lifecycle Events
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
26
ASP.NET Lifecycle Events (2)
ï‚ź PreInit
 Create or recreate controls, set the master page or theme
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
27
ASP.NET Lifecycle Events (3)
ï‚ź PreInit
ï‚ź Init
 All controls are initialized
 Use it to set some control properties
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
28
ASP.NET Lifecycle Events (4)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
 Use it when you need all the control initialization done
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
29
ASP.NET Lifecycle Events (5)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
 Some processing before Load event
 After this the Page object loads the view-state
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
30
ASP.NET Lifecycle Events (6)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
 Here we do common processing (e.g. bind controls)
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
31
ASP.NET Lifecycle Events (7)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
 Executed after data binding
 Make some final changes over controls
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
32
ASP.NET Lifecycle Events (8)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
 Happens right before the page content is rendered
ï‚ź SaveStateComplete
ï‚ź Unload
33
ASP.NET Lifecycle Events (9)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
 Any changes over the page content are ignored
ï‚ź Unload
34
ASP.NET Lifecycle Events (10)
ï‚ź PreInit
ï‚ź Init
ï‚ź InitComplete
ï‚ź PreLoad
ï‚ź Load
ï‚ź LoadComplete
ï‚ź PreRender
ï‚ź PreRenderComplete
ï‚ź SaveStateComplete
ï‚ź Unload
 Page is unloaded from memory
35
ASP.NET Application
Lifecycle
Live Demo
Internet Information Server
(IIS 5.1 / 6.0 / 7.0)
IIS 5.1 / 6.0
ï‚ź IIS 5.1
 Comes withWindows XP
 Only 10 simultaneous connections
 A single web site
ï‚ź IIS 6.0
 Comes with Windows Server 2003 and
Windows XP Professional x64 edition
 IPv6 support
 Faster and more secure
38
IIS / 7.0
ï‚ź IIS 7.0
 Comes with WindowsVista and Windows
Server 2008
 No connection limit
 Restricts performance based on active
concurrent requests
39
Internet Information Server
ï‚ź IIS is a traditional HTTP server
 Can process static and dynamic content
(through the ISAPI interface)
ï‚ź Handles ASP.NET requests through ISAPI
extension for .NET Framework
ï‚ź aspnet_wp.exe (w3wp.exe in Server 2003)
ï‚ź ISAPI filter (Internet Server Application
Program Interface)
 aspnet_isapi.dll
40
Creating ASP.NET Forms
What is a Web Form
ï‚ź ASP.NET Web Form is a programmable Web
page (.aspx file)
ï‚ź Acts as a user interface (UI) of an ASP.NET
application
ï‚ź Consists of HTML, code and controls which are
executed on a web server
ï‚ź The user sees the result in the form of HTML
generated by the web server
ï‚ź The code and controls which describe the web
form don’t leave the server
43
Creating a Web Form
ï‚ź The functionality of the Web form is defined
by using three layers of attributes
44
<%@ Page Language="c#"
Codebehind="TestWebForm.aspx.cs"
Inherits="MyFirstWebApplication.WebForm"%>
<html>
<head><title>My First WebForm</title></head>
<body>
<form id="TestForm" method="post">
<asp:Button ...></asp:Button>
</form>
</body>
</html>
Creating a Web Form (2)
ï‚ź Page attributes define global functionality
45
<%@ Page Language="c#"
Codebehind="TestWebForm.aspx.cs"
Inherits="MyFirstWebApplication.WebForm"%>
<html>
<head><title>My First WebForm</title></head>
<body>
<form id="TestForm" method="post">
<asp:Button ...></aspButton>
</form>
</body>
</html>
Creating a Web Form (3)
ï‚ź body tags define the appearance of a web page
46
<%@ Page Language="c#"
Codebehind="TestWebForm.aspx.cs"
Inherits="MyFirstWebApplication.WebForm"%>
<html>
<head><title>My First WebForm</title></head>
<body>
<form id="TestForm" method="post">
<asp:Button ...></aspButton>
</form>
</body>
</html>
Creating a Web Form (4)
ï‚ź form attributes define how the groups of
controls are going to be processed
47
<%@ Page Language="c#"
Codebehind="TestWebForm.aspx.cs"
Inherits="MyFirstWebApplication.WebForm"%>
<html>
<head><title>My First WebForm</title></head>
<body>
<form id="TestForm" method="post">
<asp:Button ...></aspButton>
</form>
</body>
</html>
The <form>Tag
ï‚ź Defines how the controls are going to be
processed
ï‚ź In a Web form there can be several <form>
tags
 Only one server-side <form> tag
48
HTML version
<form>
</form>
<form>
</form>
<form>
</form>
ASP.NET version (only 1)
<form runat="server">
</form>
<form>
</form>
<form>
</form>
<form> Attributes
ï‚ź id – form identifier
ï‚ź method - specifies the method of sending
information back to the server
 GET – in the URL
 POST – within the body of the HTTP request
ï‚ź runat - tells the parser that the tag is not an
HTML element but an ASP.NET server control
49
Example: WebFormTest.aspx
50
<%@ Page language="c#" Codebehind="WebFormTest.aspx.cs"
AutoEventWireup="false" Inherits="WebFormTest.WebForm" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
Transitional//EN">
<html><head>
<title>WebFormTest</title>
<meta name="GENERATOR" Content="Microsoft Visual
Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript"
content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</head><body MS_POSITIONING="GridLayout">
<form id="FormTest" method="post" runat="server">
'HTML and controls go here
</form>
</body></html>
Creating ASP.NET Forms
Live Demo
Coding Methods
Writing Code
ï‚ź Writing code in an ASP.NETWeb form is done
in three ways:
 Mixed code method
 The code is in the same file as the web content,
mixed with the HTML code
 This method is not recommended as the source
code is hard to read and maintain
 Inline code method
 Code-behind method
53
Writing Code (2)
ï‚ź Writing code in an ASP.NET web form is done
in three ways:
 Mixed code method
 Inline code method
 The code is separated in a SCRIPT section in the
same file
 Code-behind method
54
Writing Code (3)
ï‚ź Writing code in an ASP.NET web form is done
in three ways:
 Mixed code method
 Inline code method
 Code-behind method
 The code is in the code-behind page – a separate
file from the HTML content
 When usingVisual Studio .NET this is the default
method
55
Example: Inline Code Method
56
<html>
<asp:Button id="btn" runat="server"/>
...
</html>
<script Language="c#" runat="server">
private void btn_Click(object sender,
System.EventArgs e)
{
...
}
</script>
Code-Behind
Code-behind Model
ï‚ź A separate compiled file containing the
program logic of the page
ï‚ź Each web page has its own code-behind page
ï‚ź Has the same name as the web page to which
it is attached
 The file extension is .aspx.cs
ï‚ź The two files are built into one when the
application is started
58
How Does Code-behind Work?
ï‚ź To associate an .aspx page to its code-behind
class the @Page directive is used
ï‚ź VS.NET adds three attributes to the @Page
directive:
 Inherits – allows the .aspx page to derive
from the code-behind class
 Codebehind – used internally byVisual Studio
.NET to associate the files
 Src – contains the name of the code-behind
page
 Used if the application is not precompiled
59
@Page Directive – Example
60
<%@ Page Language="c#"
Inherits="MyProject.WebFormTest"
Codebehind="WebFormTest.aspx.cs"
Src="WebFormTest.aspx.cs" %>
JIT Compilation
ï‚ź The Code-behind page can be either
precompiled or just-in-time (JIT) Compiled
ï‚ź JIT compilation
 A compilation at first request
 Set by the Src attribute of the @Page directive
 VS.NET doesn’t add it by default
61
Precompilation
ï‚ź Precompilation
 Avoids the delay at first request
 Simplifies the deployment of the web
application
 The source code of the code-behind class is not
necessary
62
Directives
Directives
ï‚ź Provide control over many options affecting the
compilation and execution of the web form
ï‚ź Important directives:
 @Page – main directive of the page
 @Import – imports a namespace into the
 @Assembly – attaches an assembly to the form
when it is compiled
 @OutputCache – controls the ability of the forms
to use cache
 @Register – registers a user control to be used
in a web form
64
The @Page Directive
ï‚ź Defines a form specific (.aspx file) attributes
used by the parser and the compiler of
ASP.NET
ï‚ź Important attributes:
 AutoEventWireup
 Culture – a culture used when the page is
generated
 UICulture – a culture used for the visualization
of data
65
The @Page Directive (2)
ï‚ź Important attributes:
 Debug – whether the page is compiled with
debug symbols in it
 EnableSessionState – whether a session is
supported
 EnableViewState – whether to use "view
state“ or not
 ErrorPage – a page to which to redirect in case
of unhandled exception
66
The @Page Directive (3)
ï‚ź Important attributes:
 Language – states the program language used
to script the page
 Codebehind – points to the code-behind file
where the page logics is stored
 Smart-Navigation – improves user experience
over post backs
 Persists element focus and scroll position
 Avoids flickers
 Supported by IE 5.5 or later
 Shouldn’t use it - problematic
67
Using the @Page Directive
Live Demo
ASP.NET Architecture
Questions?
Homework
1. Create aWebPage
PageLoad event:TodayLabel.Text = DateTime.Now.ToLongDateString()
Khi click LoginButton :
1. Náșżu NameTextBox.Text == “admin” vĂ  PasswordTextbox.Text == “password”
thì StatusLabel.Text = “Hi Admin”
2. Náșżu khĂŽng thĂŹ StatusLabel.Text = “Login Error”
70
Today: [TodayLabel]
Name : [NameTextBox]
Password: [PasswordTextBox]
[LoginButton]
[StatusLabel]

More Related Content

What's hot (20)

PPTX
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
PPT
Concepts of Asp.Net
vidyamittal
 
PPT
MicrosoftĂŻÂżÂœ .NET and MicrosoftĂŻÂżÂœ Office 2003
Rishi Kothari
 
PDF
Asp.netrole
mani bhushan
 
PPT
Be project ppt asp.net
Sanket Jagare
 
PPTX
ASP.NET Presentation
dimuthu22
 
PPT
Asp net
MohitKumar1985
 
PPTX
4. features of .net
Pramod Rathore
 
PPTX
Chapter 1
application developer
 
PPTX
Asp .net folders and web.config
baabtra.com - No. 1 supplier of quality freshers
 
PDF
Introduction to asp.net
SHADAB ALI
 
PPT
Visual studio
anupathak17jul
 
PPT
Introduction To Dotnet
SAMIR BHOGAYTA
 
PPT
Developing an ASP.NET Web Application
Rishi Kothari
 
PPT
Migrating To Visual Studio 2008 & .Net Framework 3.5
Clint Edmonson
 
PDF
Dot net syllabus book
Papitha Velumani
 
PPTX
Developing an aspnet web application
Rahul Bansal
 
PPTX
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Quek Lilian
 
Asp.net presentation by gajanand bohra
Gajanand Bohra
 
Concepts of Asp.Net
vidyamittal
 
MicrosoftĂŻÂżÂœ .NET and MicrosoftĂŻÂżÂœ Office 2003
Rishi Kothari
 
Asp.netrole
mani bhushan
 
Be project ppt asp.net
Sanket Jagare
 
ASP.NET Presentation
dimuthu22
 
Asp net
MohitKumar1985
 
4. features of .net
Pramod Rathore
 
Asp .net folders and web.config
baabtra.com - No. 1 supplier of quality freshers
 
Introduction to asp.net
SHADAB ALI
 
Visual studio
anupathak17jul
 
Introduction To Dotnet
SAMIR BHOGAYTA
 
Developing an ASP.NET Web Application
Rishi Kothari
 
Migrating To Visual Studio 2008 & .Net Framework 3.5
Clint Edmonson
 
Dot net syllabus book
Papitha Velumani
 
Developing an aspnet web application
Rahul Bansal
 
Creating Dynamic Web Application Using ASP.Net 3 5_MVP Alezandra Buencamino N...
Quek Lilian
 

Similar to Aspnet architecture (20)

PPT
Asp dot net long
Amelina Ahmeti
 
PPTX
Asp.net
vijilakshmi51
 
ZIP
ASP.Net Presentation Part1
Neeraj Mathur
 
PPTX
Asp Net (FT Preasen Revankar)
Fafadia Tech
 
PPT
ASP_NET_Architecture_Interfgfgfgnals1.ppt
simplyamrita2011
 
PPTX
Web forms in ASP.net
Madhuri Kavade
 
PDF
Asp dot net final (2)
Amelina Ahmeti
 
PPT
Asp
yuvaraj72
 
PPTX
Introduction to asp.net
shan km
 
PPT
Asp.net tips
actacademy
 
PDF
Integrating ASP.NET AJAX with SharePoint
Rob Windsor
 
PDF
ASP.NET - Web Programming
baabtra.com - No. 1 supplier of quality freshers
 
PPT
Asp dot net final (1)
amelinaahmeti
 
PPT
Asp dot net final (1)
Amelina Ahmeti
 
PPT
Asp dot net final (1)
amelinaahmeti
 
PDF
C sharp and asp.net interview questions
Akhil Mittal
 
DOCX
C# Unit5 Notes
Sudarshan Dhondaley
 
DOCX
As pnet
Abhishek Kesharwani
 
PPTX
Walther Ajax4
rsnarayanan
 
PPTX
ASP.NET 4.0
XeDotNet
 
Asp dot net long
Amelina Ahmeti
 
Asp.net
vijilakshmi51
 
ASP.Net Presentation Part1
Neeraj Mathur
 
Asp Net (FT Preasen Revankar)
Fafadia Tech
 
ASP_NET_Architecture_Interfgfgfgnals1.ppt
simplyamrita2011
 
Web forms in ASP.net
Madhuri Kavade
 
Asp dot net final (2)
Amelina Ahmeti
 
Asp
yuvaraj72
 
Introduction to asp.net
shan km
 
Asp.net tips
actacademy
 
Integrating ASP.NET AJAX with SharePoint
Rob Windsor
 
Asp dot net final (1)
amelinaahmeti
 
Asp dot net final (1)
Amelina Ahmeti
 
Asp dot net final (1)
amelinaahmeti
 
C sharp and asp.net interview questions
Akhil Mittal
 
C# Unit5 Notes
Sudarshan Dhondaley
 
Walther Ajax4
rsnarayanan
 
ASP.NET 4.0
XeDotNet
 
Ad

Recently uploaded (20)

PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PPTX
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
PPTX
Top Managed Service Providers in Los Angeles
Captain IT
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PPTX
✹Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✹
SanjeetMishra29
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Français Patch Tuesday - Juillet
Ivanti
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
Top Managed Service Providers in Los Angeles
Captain IT
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Rethinking Security Operations - SOC Evolution Journey.pdf
Haris Chughtai
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
✹Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✹
SanjeetMishra29
 
Ad

Aspnet architecture

  • 2. Table of Contents 1. Introduction to ASP.NET  History of ASP.NET  ASP.NET Benefits 2. ASP.NET Architecture Overview  Separation of Presentation from Logic 3. ASP.NET Base Components  Web Forms  Web Controls 2
  • 3. Table of Contents (2) 4. ASP.NET Execution Model  Application Life Cycle  Page Life Cycle 5. Internet Information Server (IIS 5.1/6.0/7.0) 6. Creating ASP.NET forms 7. Code-behind 8. Directives 3
  • 5. History of ASP.NET ï‚ź At the beginning of Internet (up to 1997)  CGI, ISAPI – C, C++ ï‚ź Classic ASP (1997-2002)  Based onVB Script, COM, ADO ï‚ź ASP.NET 1.0 / 1.1 (2002-2005)  The First .NET based Web Development API ï‚ź ASP.NET 2.0 (2005-2007) – based on .NET 2.0 ï‚ź ASP.NET 3.5 (2007-2009) – LINQ to SQL ï‚ź ASP.NET 4.0 (2010) 5
  • 6. ASP.NET Benefits ï‚ź Separate presentation from code ï‚ź Object-oriented approach ï‚ź Component-based development ï‚ź Event-driven architecture ï‚ź Code compilation ï‚ź Extensible architecture ï‚ź Built-in state management ï‚ź Many others (data binding, validation, master pages, etc.) 6
  • 8. ASP.NET Execution ï‚ź ASP.NET applications are executed via a sequence of HTTP requests and HTTP responses  Client Web browser request ASPX pages  TheWeb server executes the ASPX page and produce XHTML + CSS + JavaScript 8
  • 9. ASP.NET Architecture Windows Server Internet Information Server (IIS) ISAPI Filters (aspnet_isapi.dll) ASP.NET runtime (aspnet_wp.dll / w3wp.dll) XML-based configuration HttpApplication Cache HttpModules Session state Authentication 
 HttpHandlers ASP.NET pages ASP.NETWeb services 
 Html Controls AJAX Web controls User controls 

  • 10. ASP.NET: How it Works? ï‚ź Traditional Web pages (static HTML)  Consist of static HTML, images, styles, etc.  Execute code on the client side  Simple operations ï‚ź ASP.NET Web Forms  Execute code on the server side  Database access  Dynamic pages  Higher security level 10
  • 11. SeparateVisualization from Business Logic ï‚ź Traditional Web development keep HTML and programming code in one file (PHP, ASP, 
)  Hard to read, understand and maintain  Hard to test and debug ï‚ź ASP.NET splits the Web pages into two parts:  .aspx file containing HTML for visualization  "Code behind" files (.cs for C#) containing presentation logic for particular page 11
  • 12. SeparateVisualization from Business Logic (2) ï‚ź Class generated from the .aspx file does not derives directly from Page class ï‚ź Derives from class defined in the "code behind", where it is easy to add methods, event handlers, etc. ï‚ź Using "code behind" separates the presentation logic from UI visualization 12 System.Web.UI.Page TestForm.aspx.cs TestForm.aspx
  • 13. Your First ASP.NET Application – Sumator ï‚ź Steps to create a simple ASP.NET Web application: 1. StartVisual Studio 2. Create “New Web Site” 3. Add two text fields, a button and a label 4. Handle Button.Click and implement logic to calculate the sum of the values in the text fields 5. Display the results in the label 13
  • 16. ASP.NET Base Components ï‚ź Web Forms – deliver ASP.NET user interface ï‚ź Web Control – the smallest part we can use in our Web application (e.g. text box) ï‚ź "Code behind" – contains the server-side code ï‚ź Web.config – contains ASP.NET application configuration ï‚ź Machine.config – contains configuration for all applications on the ASP.NET server ï‚ź Global.asax – class containing application level event handlers 16
  • 17. ASP.NET Web Controls ï‚ź ASP.NET Web controls are the smallest component part ï‚ź Deliver fast and easy component-oriented development process ï‚ź HTML abstraction, but finally everything is HTML 17 <form runat="server" ID="frmMain"> <asp:button runat="server" ID="btn" Text="Click me!" OnClick="btn_Click" /> </form>
  • 18. Web.config ï‚ź Main settings and configuration file for ASP.NET ï‚ź Text based XML document ï‚ź Defines:  Connection strings to any DB used by app  The default language for child pages  Whether debugging is allowed 18 <?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> </system.web> </configuration> Minimal Web.config should look like this
  • 19. Machine.config ï‚ź Text based XML document ï‚ź Contains settings that apply to an entire computer 19
  • 20. Global.asax ï‚ź Also known as ASP.NET application file ï‚ź Located in the Web application root folder ï‚ź Exposes application and session level events  Application_Start  Application_End  Session_Start  Session_End  
 20
  • 23. ASP.NET Execution Model ï‚ź First call to particular page 23
  • 24. ASP.NET Execution Model (2) ï‚ź Any other call after the first 24
  • 25. ASP.NET Application Lifecycle 1. IIS receives the HTTP request 2. IIS using ISAPI sends the request to aspnet_wp.exe 3. ASP.NET receives request for the first time 4. Basic ASP.NET objects are created for every request (e.g. Request, Response, etc.) 5. Request is associated with the HttpApplication object 6. HttpApplication process the request 25
  • 26. ASP.NET Lifecycle Events ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 26
  • 27. ASP.NET Lifecycle Events (2) ï‚ź PreInit  Create or recreate controls, set the master page or theme ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 27
  • 28. ASP.NET Lifecycle Events (3) ï‚ź PreInit ï‚ź Init  All controls are initialized  Use it to set some control properties ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 28
  • 29. ASP.NET Lifecycle Events (4) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete  Use it when you need all the control initialization done ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 29
  • 30. ASP.NET Lifecycle Events (5) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad  Some processing before Load event  After this the Page object loads the view-state ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 30
  • 31. ASP.NET Lifecycle Events (6) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load  Here we do common processing (e.g. bind controls) ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 31
  • 32. ASP.NET Lifecycle Events (7) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender  Executed after data binding  Make some final changes over controls ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload 32
  • 33. ASP.NET Lifecycle Events (8) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete  Happens right before the page content is rendered ï‚ź SaveStateComplete ï‚ź Unload 33
  • 34. ASP.NET Lifecycle Events (9) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete  Any changes over the page content are ignored ï‚ź Unload 34
  • 35. ASP.NET Lifecycle Events (10) ï‚ź PreInit ï‚ź Init ï‚ź InitComplete ï‚ź PreLoad ï‚ź Load ï‚ź LoadComplete ï‚ź PreRender ï‚ź PreRenderComplete ï‚ź SaveStateComplete ï‚ź Unload  Page is unloaded from memory 35
  • 38. IIS 5.1 / 6.0 ï‚ź IIS 5.1  Comes withWindows XP  Only 10 simultaneous connections  A single web site ï‚ź IIS 6.0  Comes with Windows Server 2003 and Windows XP Professional x64 edition  IPv6 support  Faster and more secure 38
  • 39. IIS / 7.0 ï‚ź IIS 7.0  Comes with WindowsVista and Windows Server 2008  No connection limit  Restricts performance based on active concurrent requests 39
  • 40. Internet Information Server ï‚ź IIS is a traditional HTTP server  Can process static and dynamic content (through the ISAPI interface) ï‚ź Handles ASP.NET requests through ISAPI extension for .NET Framework ï‚ź aspnet_wp.exe (w3wp.exe in Server 2003) ï‚ź ISAPI filter (Internet Server Application Program Interface)  aspnet_isapi.dll 40
  • 42. What is a Web Form ï‚ź ASP.NET Web Form is a programmable Web page (.aspx file) ï‚ź Acts as a user interface (UI) of an ASP.NET application ï‚ź Consists of HTML, code and controls which are executed on a web server ï‚ź The user sees the result in the form of HTML generated by the web server ï‚ź The code and controls which describe the web form don’t leave the server 43
  • 43. Creating a Web Form ï‚ź The functionality of the Web form is defined by using three layers of attributes 44 <%@ Page Language="c#" Codebehind="TestWebForm.aspx.cs" Inherits="MyFirstWebApplication.WebForm"%> <html> <head><title>My First WebForm</title></head> <body> <form id="TestForm" method="post"> <asp:Button ...></asp:Button> </form> </body> </html>
  • 44. Creating a Web Form (2) ï‚ź Page attributes define global functionality 45 <%@ Page Language="c#" Codebehind="TestWebForm.aspx.cs" Inherits="MyFirstWebApplication.WebForm"%> <html> <head><title>My First WebForm</title></head> <body> <form id="TestForm" method="post"> <asp:Button ...></aspButton> </form> </body> </html>
  • 45. Creating a Web Form (3) ï‚ź body tags define the appearance of a web page 46 <%@ Page Language="c#" Codebehind="TestWebForm.aspx.cs" Inherits="MyFirstWebApplication.WebForm"%> <html> <head><title>My First WebForm</title></head> <body> <form id="TestForm" method="post"> <asp:Button ...></aspButton> </form> </body> </html>
  • 46. Creating a Web Form (4) ï‚ź form attributes define how the groups of controls are going to be processed 47 <%@ Page Language="c#" Codebehind="TestWebForm.aspx.cs" Inherits="MyFirstWebApplication.WebForm"%> <html> <head><title>My First WebForm</title></head> <body> <form id="TestForm" method="post"> <asp:Button ...></aspButton> </form> </body> </html>
  • 47. The <form>Tag ï‚ź Defines how the controls are going to be processed ï‚ź In a Web form there can be several <form> tags  Only one server-side <form> tag 48 HTML version <form>
</form> <form>
</form> <form>
</form> ASP.NET version (only 1) <form runat="server">
</form> <form>
</form> <form>
</form>
  • 48. <form> Attributes ï‚ź id – form identifier ï‚ź method - specifies the method of sending information back to the server  GET – in the URL  POST – within the body of the HTTP request ï‚ź runat - tells the parser that the tag is not an HTML element but an ASP.NET server control 49
  • 49. Example: WebFormTest.aspx 50 <%@ Page language="c#" Codebehind="WebFormTest.aspx.cs" AutoEventWireup="false" Inherits="WebFormTest.WebForm" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head> <title>WebFormTest</title> <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0"> <meta name="CODE_LANGUAGE" Content="C#"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </head><body MS_POSITIONING="GridLayout"> <form id="FormTest" method="post" runat="server"> 'HTML and controls go here </form> </body></html>
  • 52. Writing Code ï‚ź Writing code in an ASP.NETWeb form is done in three ways:  Mixed code method  The code is in the same file as the web content, mixed with the HTML code  This method is not recommended as the source code is hard to read and maintain  Inline code method  Code-behind method 53
  • 53. Writing Code (2) ï‚ź Writing code in an ASP.NET web form is done in three ways:  Mixed code method  Inline code method  The code is separated in a SCRIPT section in the same file  Code-behind method 54
  • 54. Writing Code (3) ï‚ź Writing code in an ASP.NET web form is done in three ways:  Mixed code method  Inline code method  Code-behind method  The code is in the code-behind page – a separate file from the HTML content  When usingVisual Studio .NET this is the default method 55
  • 55. Example: Inline Code Method 56 <html> <asp:Button id="btn" runat="server"/> ... </html> <script Language="c#" runat="server"> private void btn_Click(object sender, System.EventArgs e) { ... } </script>
  • 57. Code-behind Model ï‚ź A separate compiled file containing the program logic of the page ï‚ź Each web page has its own code-behind page ï‚ź Has the same name as the web page to which it is attached  The file extension is .aspx.cs ï‚ź The two files are built into one when the application is started 58
  • 58. How Does Code-behind Work? ï‚ź To associate an .aspx page to its code-behind class the @Page directive is used ï‚ź VS.NET adds three attributes to the @Page directive:  Inherits – allows the .aspx page to derive from the code-behind class  Codebehind – used internally byVisual Studio .NET to associate the files  Src – contains the name of the code-behind page  Used if the application is not precompiled 59
  • 59. @Page Directive – Example 60 <%@ Page Language="c#" Inherits="MyProject.WebFormTest" Codebehind="WebFormTest.aspx.cs" Src="WebFormTest.aspx.cs" %>
  • 60. JIT Compilation ï‚ź The Code-behind page can be either precompiled or just-in-time (JIT) Compiled ï‚ź JIT compilation  A compilation at first request  Set by the Src attribute of the @Page directive  VS.NET doesn’t add it by default 61
  • 61. Precompilation ï‚ź Precompilation  Avoids the delay at first request  Simplifies the deployment of the web application  The source code of the code-behind class is not necessary 62
  • 63. Directives ï‚ź Provide control over many options affecting the compilation and execution of the web form ï‚ź Important directives:  @Page – main directive of the page  @Import – imports a namespace into the  @Assembly – attaches an assembly to the form when it is compiled  @OutputCache – controls the ability of the forms to use cache  @Register – registers a user control to be used in a web form 64
  • 64. The @Page Directive ï‚ź Defines a form specific (.aspx file) attributes used by the parser and the compiler of ASP.NET ï‚ź Important attributes:  AutoEventWireup  Culture – a culture used when the page is generated  UICulture – a culture used for the visualization of data 65
  • 65. The @Page Directive (2) ï‚ź Important attributes:  Debug – whether the page is compiled with debug symbols in it  EnableSessionState – whether a session is supported  EnableViewState – whether to use "view state“ or not  ErrorPage – a page to which to redirect in case of unhandled exception 66
  • 66. The @Page Directive (3) ï‚ź Important attributes:  Language – states the program language used to script the page  Codebehind – points to the code-behind file where the page logics is stored  Smart-Navigation – improves user experience over post backs  Persists element focus and scroll position  Avoids flickers  Supported by IE 5.5 or later  Shouldn’t use it - problematic 67
  • 67. Using the @Page Directive Live Demo
  • 69. Homework 1. Create aWebPage PageLoad event:TodayLabel.Text = DateTime.Now.ToLongDateString() Khi click LoginButton : 1. Náșżu NameTextBox.Text == “admin” vĂ  PasswordTextbox.Text == “password” thĂŹ StatusLabel.Text = “Hi Admin” 2. Náșżu khĂŽng thĂŹ StatusLabel.Text = “Login Error” 70 Today: [TodayLabel] Name : [NameTextBox] Password: [PasswordTextBox] [LoginButton] [StatusLabel]

Editor's Notes

  • #2: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #3: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #5: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #8: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #10: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #11: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #12: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #13: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #15: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #16: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #17: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #18: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #19: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #20: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #21: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #22: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #23: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #24: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #25: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #26: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #27: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #28: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #29: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #30: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #31: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #32: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #33: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #34: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #35: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #36: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #38: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #39: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #41: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #42: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #43: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #44: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #45: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #46: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #47: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #48: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #49: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #50: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #51: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #52: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #53: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #54: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #55: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #56: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #57: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #58: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #59: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #60: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #61: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #62: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #63: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #64: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #65: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #66: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #67: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #68: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #69: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*
  • #71: (c) 2008 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.*