Download ITY276 presentation 3 - University of Worcester

yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Compiler wikipedia , lookup

Dependency injection wikipedia , lookup

Go (programming language) wikipedia , lookup

Library (computing) wikipedia , lookup

Comment (computer programming) wikipedia , lookup

Program optimization wikipedia , lookup

Team Foundation Server wikipedia , lookup

One-pass compiler wikipedia , lookup

.NET Framework wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Interpreter (computing) wikipedia , lookup

E-Business Technologies
Richard Henson
University of Worcester
October 2012
Week 2 – Early Web Applications,
ActiveX controls, and .net
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
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
How do Browsers cope with
source code?
Designed to use interpretation on HTML
 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)
responds to the client's request by sending
the results of the request back to the client
Request and responses
client requests information
server processes the request, sends a response back to
the client
Send Request
Read Results
Process Request
Send Back Results
Internet Communications
Based on principles of client/server
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
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
4. clearly defined locations for gathering input data
at client-end, for server scripts, and for
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
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
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
Introduction to Server-scripting
The following apply to ALL types of
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
» Cold Fusion .cf
» Preprocessor Hypertext processing .php
Microsoft’s first attempt
at server scripting…
In 1996, Microsoft introduced active server pages
 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 (
New environment known as the .net
 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
 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, 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
 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
Mechanism of Loading
Assemblies for processing
“AppDomain” sets up a security
boundary in memory for each
 Code (.exe, or .dll) loaded into process
 JIT compilation ensures “flat out
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
Each AppDomain uses a pipeline of objects to handle
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 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 components:
2. Event Handlers
HTTP is stateless (no data retention)
 no multi-step processes possible
 e.g. HTML form contents disappear once form
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 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
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”!”
 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
 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
More recently “code behind” files
» 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
All managed within the .net run-time
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
Running controls & C# with
Semi-compiled into “intermediate language”
(MSIL) for .net framework and saved
together as an “assembly”
 intermediate code executes very quickly when
Now you try it…