ITY276 presentation 3 - University of Worcester
Download
Report
Transcript ITY276 presentation 3 - University of Worcester
COMP3241
E-Business Technologies
Richard Henson
University of Worcester
October 2012
Week 2 – Early Web Applications,
ActiveX controls, and .net
Objectives:
Compare and contrast embedded code for
client-only applications & server scripting
Explain how client-side VBScript evolved into
run-time ActiveX, which itself evolved into
secure server-script
Use a client-server .net development
environment for development and testing of
.net master pages and code behind
Interpreted and Compiled
Languages
Programming (source) code must be
converted into “machine code” before it can
be understood and acted on by the CPU
This can be done in two ways:
convert whole program (using a compiler) and
save it in a file
leave program as it is, and convert it (using an
interpreter) one line at a time when it is needed
Compiled code generally occupies much more
space than source code
so of more limited use on the Internet (esp. early
days)...
How do Browsers cope with
source code?
Designed to use interpretation on HTML
code
reads one line of HTML key words and their
parameters and uses HTML interpreter to convert
(or interpret) that line into CPU instructions
reads & interprets next line… and so on…
CPU does further processing and sends
commands to the video card which creates the
visual display
Embedded programming code
in HTML Files
Still .html and executed on the Browser
Browser needs to have interpreter for that
programming language e.g.
» VB Script
» Java Script
For the Browser to call the right
interpreter, an appropriate declaration
statement needs to be included in the
<HTML> start line
Request and responses
Organisation of application processing
across a client-server network…
Client:
requests services or information from
another computer (e.g. the server)
Server:
responds to the client's request by sending
the results of the request back to the client
computer
Request and responses
client requests information
server processes the request, sends a response back to
the client
CLIENT
Client
Program
SERVER
REQUEST
RESPONSE
Send Request
Read Results
Server
Program
Process Request
Send Back Results
Internet Communications
Based on principles of client/server
networking
EITHER Internet computer can “play” the
role of client or the role of server
e.g.(1) A user in one university sends an
email to a user in another university:
» “A” client sends email to “B” server
(2) When a reply comes back…
» “B” client sends email to “A” server
Client-Server web applications
& Server Scripts
Client-server web applications usually
require:
1. a web server, for interpreting or compiling then
processing the scripts
2. a server-end database to provide and store data
3. physical & logical connections between serverscripts, client-end input forms and server-end
database
4. clearly defined locations for gathering input data
at client-end, for server scripts, and for
database(s)
Writing Server Scripts
NOT saved as .html!
Server code can be embedded directly into
HTML code…
Command is needed to inform the web server
» (1) that non-HTML code is about to be used
» (2) when next code reverts to HTML
With .asp scripts… (no longer used)
the command to start the script was <%
to end the script… %>
With .php scripts…
<?php starts the script
?> ends the script
Server Scripts and “Localhost”
No matter which scripting type is used, the
code can be tested locally on a computer
running a web server that can understand that
type of script
how? use “localhost” in the URL at the Browser end
(localhost = path to the server scripting root folder)
A typical URL for testing such a script locally
could then be (depending on script type):
http://localhost/scriptname.aspx
http://localhost/scriptname.php
Web Dynamic
Client-Server Model (1)
Server-Side Processing
in a typical web-based
client-server application:
1. HTML form on web
browser collects data at
the client end
2. HTTP enables the form
data to be sent to a web
server
Web Dynamic
Client-Server Model (2)
3. web server
processes the form
data according to
instructions on a
server script called
at the client end
4. output from
processing stored
temporarily on web
server
Web Dynamic
Client-Server model (3)
5. server script sends
output back to browser
with HTML code to create
a structure to display the
data (e.g. HTML table)
6. This gets even more
complex when a database,
and database
programming, are also
involved at the server
end…
Introduction to Server-scripting
The following apply to ALL types of
scripting…
real programming code is essential
» note: HTML is a FORMATTING language, NOT a
programming language
both client and server ends need to have
links to programming code:
» client end…embedded within a HTML page
» server end… could be embedded or separate
Languages used for
Server Scripting
Much has been tried since HTML became interactive
in the early 1990s:
Can use an existing language in a completely separate file,
which is already compiled and ready to go:
» the original approach: .cgi
» any language could in theory be used
» in practice “C” was usually favoured
Can use an existing language embedded in a HTML file
» The Microsoft .asp approach, using embedded VB source code
» The Sun .jsp approach, using embedded Java (Script) source
Can utilise/invent a scripting language that is “HTML-like”
and easily embeds with HTML
» PERL
» Cold Fusion .cf
» Preprocessor Hypertext processing .php
Microsoft’s first attempt
at server scripting…
In 1996, Microsoft introduced active server pages
(asp)
hugely successful
soon became more popular than .cgi
However, in spite of the great success of asp, big
problems were emerging…
by 2000, hackers were attacking Microsoft servers and
finding many security holes in IIS
» Microsoft only coped by offering hotfixes
further problem: used VB source code
» if server not secure, code could be copied or compromised
» Scripts could not be truly “object oriented”
ASP becomes ASP.NET
Microsoft’s new approach to server scripting
for the new millennium…
building on asp principles
new system that used “intermediate language”,
rather than source code on the server
much more difficult to hack
Security problems with VB…
out with the old (asp)
in with the new (asp.net)
New environment known as the .net
framework
many developers accustomed to VB/.asp
took awhile to catch on!
Development of .NET
framework for Server Scripting
BASIC and VB very much a part of Microsoft’s strategy, until
circa 1999/2000…
use of raw source code became a security issue
Gates realised that e-business and e-commerce would never be
reliable without using secure (and therefore compiled) code
Microsoft rejected their previous strategy which used source VB
code and an interpreter program within IIS
What to replace VB source code with?
applied source VB -> ActiveX run-time principles server-side
Server equivalent of ActiveX controls could now be used/developed
Result: .net Framework & ASP.NET:
VB evolved into the more object oriented (and complied) VB.NET
.net framework provided the basis for
» .net server-side controls
» the ubiquitous use of compiled languages
Advantages of ASP.NET scripts
compared to ASP
Compiled, not interpreted
Web Controls use xml-type tags
Can be written using a variety of programming
languages
language declared at beginning of file
fully object-oriented and many controls written to respond to
on-screen “events”
Which Source Code Language?
Source code for .net development can be
written in any language that can be
translated into IL
VB.NET builds on existing practice from asp
But… C# has proved to be most popular with
developers, many of whom had previously used
“C” and C++
» why use VB.net, when you can use a more powerful,
compiled, and object-oriented language like C?
Components of the evolving
.net framework
Common Language Infrastructure (CLI) at
the server end (i.e. IIS)
“managed execution” framework for scripts
runs Intel x86 IL code
» common Language run-time (CLR) for executing controls
» ready to run; development language irrelevant
/app_code folder for deployed “assemblies” or
“controls” containing executable code, and
databases
web.config file
» store of configuration info e.g. a path to database file
from v2 onwards the following additional folders:
» app_browsers, app_themes, app_localresources,
app_globalresources, app_webreferences
How the .net environment
manages an application
“Assemblies” from .aspx files added to
/App_Code (usually .dll files created by
compiling the assembly components)
CLI executes IL assemblies as CLR (runtime)
makes sure script execution is “controlled” and
kept within boundaries
» an earlier version of IIS used to “leak” memory until the
system needed rebooting
usually loaded implicitly when a .net application is
run
Mechanism of Loading
Assemblies for processing
“AppDomain” sets up a security
boundary in memory for each
application
Code (.exe, or .dll) loaded into process
“spaceperfo”
JIT compilation ensures “flat out
performance”
cf Wallace & Grommit – latter lays out the
track as the train is about to pass along it
HTTP processing
.net architecture designed “with failure in mind”
overall control with http.sys
if memory usage gets too large, .net pulled down and
restarted…
Each AppDomain uses a pipeline of objects to handle
requests
Httpapplication – oversees flow
Httpcontext – tracks “per request” state
Modules – generic “pluggable services
Handlers – http requests
Covers most (all?) eventualities and makes sure
requests are correctly dealt with – no muddling of
threads (!)
Very Useful ASP.net components:
1. Web Controls
Reusable classes used to render parts
of a page
Similar to Windows “forms”
New control created for each request
» view state/Event tracking handled automatically
A typical web page may have a
hierarchical structure of web controls to
makes them easily manageable
Very Useful ASP.net components:
2. Event Handlers
HTTP is stateless (no data retention)
no multi-step processes possible
e.g. HTML form contents disappear once form
submitted
Web Controls provide scope for handling
events, when triggered (or raised)
e.g. Page_Load, OnClick
“PostBack architecture”
» allows web forms data to reappear on the screen
Very Useful ASP.net components:
3. Master Pages
Master Page
Created as a .master file
defines template for other pages
» cf PowerPoint slide master
Contains top <html>, <body>, <form> tags
“Page” command (top of page) utilises master:
» either “static” or “dynamic”
“Page_init” process renders components
Very Useful ASP.net
components: 4. Themes
Allow common styles to be applied across a
series of pages
Developers can still use .CSS files
fully supported by the master file and page
“themes” concepts
.net Development and RAD tools
By now, you may be thinking…
“Help! I can’t program in “C”!”
DON’T BE SCARED!
the syntax of object-oriented C# is similar to Java
RAD tools such as Dreamweaver (earlier versions) and
Visual Web Developer (VWD) provide a range of web
controls already written in C#
Extension Managers enable other controls to be added to
the RAD environment
VWD also help with general file/folder management
such as putting controls/assemblies into the right
folder
i.e. /app_code
Managing C# Code, HTML
code, and web controls
Each has its own syntax!
earlier versions of .net had all three types
together!
More recently “code behind” files
encouraged
» Standard HTML & web control file saved as .aspx
» associated C# code saved as a .cs file
declared through “Page” command
Running .aspx, .cs, etc. pages
toghether
All managed within the .net run-time
environment
normally at server-end using IIS
Visual Studio allows use of a cut-down
version of IIS at client end for testing
developer doesn’t need to do anything
more, provided that files all in the right
folders…
Running controls & C# with
ASP.NET
Semi-compiled into “intermediate language”
(MSIL) for .net framework and saved
together as an “assembly”
intermediate code executes very quickly when
required…
Now you try it…
\