Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan...
-
Upload
beverly-moore -
Category
Documents
-
view
228 -
download
3
Transcript of Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan...
![Page 1: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/1.jpg)
Introduction to the Weband .NET
Mark Sapossnek
CS 594
Computer Science Department
Metropolitan College
Boston University
![Page 2: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/2.jpg)
Prerequisites
Basic computer skills Experience using the World Wide Web Experience developing object-oriented software
![Page 3: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/3.jpg)
Learning Objectives
Overview of Web and Internet technologies Review of existing Web programming
technologies Introduction to the .NET development platform
![Page 4: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/4.jpg)
Agenda
Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
![Page 5: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/5.jpg)
Internet Technologies The World Wide Web
A way to access and share information Technical papers, marketing materials, recipes, ...
A huge network of computers: the Internet Graphical, not just textual Information is linked to other information Application development platform
Shop from home Provide self-help applications for customers and
partners ...
![Page 6: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/6.jpg)
Internet TechnologiesWWW Architecture
Web Server
PC/Mac/Unix + Browser
Client
Server
Request:http://www.msn.com/default.asp
Response:<html>…</html>
Network TCP/IP
![Page 7: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/7.jpg)
Internet TechnologiesWWW Architecture
Client/Server, Request/Response architecture You request a Web page
e.g. http://www.msn.com/default.asp HTTP request
The Web server responds with data in the form of a Web page HTTP response Web page is expressed as HTML
Pages are identified as a Uniform Resource Locator (URL) Protocol: http Web server: www.msn.com Web page: default.asp Can also provide parameters: ?name=Leon
![Page 8: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/8.jpg)
Internet TechnologiesWeb Standards
Internet Engineering Task Force (IETF) http://www.ietf.org/ Founded 1986 Request For Comments (RFC) at http://www.ietf.org/rfc.html
World Wide Web Consortium (W3C) http://www.w3.org Founded 1994 by Tim Berners-Lee Publishes technical reports and recommendations
![Page 9: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/9.jpg)
Internet TechnologiesWeb Design Principles
Interoperability: Web languages and protocols must be compatible with one another independent of hardware and software.
Evolution: The Web must be able to accommodate future technologies. Encourages simplicity, modularity and extensibility.
Decentralization: Facilitates scalability and robustness.
![Page 10: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/10.jpg)
Internet TechnologiesHypertext Markup Language (HTML)
The markup language used to represent Web pages for viewing by people Designed to display data, not store/transfer data
Rendered and viewed in a Web browser Can contain links to images, documents,
and other pages Not extensible Derived from Standard Generalized Markup
Language (SGML) HTML 3.2, 4.01, XHTML 1.0
![Page 11: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/11.jpg)
Internet TechnologiesHTML Forms
Enables you to create interactive user interface elements Buttons Text boxes Drop down lists Check boxes
User fills out the form and submits it Form data is sent to the Web server via HTTP
when the form is submitted
![Page 12: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/12.jpg)
Internet TechnologiesHypertext Transport Protocol (HTTP)
The top-level protocol used to request and return data E.g. HTML pages, GIFs, JPEGs, Microsoft Word
documents, Adobe PDF documents, etc.
Request/Response protocol Methods: GET, POST, HEAD, … HTTP 1.0: simple HTTP 1.1: more complex
![Page 13: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/13.jpg)
GET /default.asp HTTP/1.0Accept: image/gif, image/x-bitmap, image/jpeg, */*Accept-Language: enUser-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)Connection: Keep-AliveIf-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT
Internet TechnologiesHTTP Request
Method File HTTP version Headers
Data – none for GET
Blank line
![Page 14: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/14.jpg)
HTTP/1.0 200 OKDate: Sun, 21 Apr 1996 02:20:42 GMTServer: Microsoft-Internet-Information-Server/5.0 Connection: keep-aliveContent-Type: text/htmlLast-Modified: Thu, 18 Apr 1996 17:39:05 GMTContent-Length: 2543 <HTML> Some data... blah, blah, blah </HTML>
Internet TechnologiesHTTP Response
HTTP version Status code Reason phrase Headers
Data
![Page 15: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/15.jpg)
Internet TechnologiesHTTP Server Status Codes
Code Description200 OK
201 Created
301 Moved Permanently
302 Moved Temporarily
400 Bad Request – not understood
401 Unauthorized
403 Forbidden – not authorized
404 Not Found
500 Internal Server Error
![Page 16: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/16.jpg)
Internet TechnologiesHTTP
HTTP is a stateless protocol Each HTTP request is independent of previous
and subsequent requests HTTP 1.1 introduced keep-alive for efficiency Statelessness has a big impact on how scalable
applications are designed
![Page 17: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/17.jpg)
Internet TechnologiesCookies
A mechanism to store a small amount of information (up to 4KB) on the client
A cookie is associated with a specific web site Cookie is sent in HTTP header Cookie is sent with each HTTP request Can last for only one session (until browser is
closed) or can persist across sessions Can expire some time in the future
![Page 18: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/18.jpg)
Internet TechnologiesHTTPS
A secure version of HTTP Allows client and server to exchange data with
confidence that the data was neither modified nor intercepted
Uses Secure Sockets Layer (SSL)/Transport Layer Security (TLS)
![Page 19: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/19.jpg)
Internet TechnologiesURIs, URLs and URNs
Uniform Resource Identifier (URI = URL or URN) Generic term for all textual names/addresses
Uniform Resource Locator (URL) The set of URI schemes that have explicit instructions
on how to access the resource over the Internet, e.g. http, ftp, gopher
Uniform Resource Name (URN) 1) A URI that has an institutional commitment to
availability, etc.2) A particular scheme intended to identify resources
e.g. urn:schemas:httpmail:subject
![Page 20: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/20.jpg)
Internet TechnologiesMultipurpose Internet Mail Extensions (MIME)
Defines types of data/documents text/plain text/html image/gif image/jpeg audio/x-pn-realaudio audio/x-ms-wma video/x-ms-asf application/octet-stream
![Page 21: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/21.jpg)
Internet TechnologiesMIME
Specifies character sets, e.g. ASCII Supports multi-part messages Originally designed for email, but also used in
other places, such as HTTP
![Page 22: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/22.jpg)
Internet TechnologiesBrowsers
Client-side application Requests HTML from Web server and renders it Popular browsers:
Netscape Internet Explorer Opera others
Also known as a User Agent
![Page 23: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/23.jpg)
Internet TechnologiesClients & Servers
Client and Server computers both have: CPU Memory I/O
Disks Network
Bus Multi-tasking operating system Applications
![Page 24: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/24.jpg)
Internet TechnologiesClients & Servers
Clients Generally supports a single user Optimized for responsiveness to user User interface, graphics
Servers Supports multiple users Optimized for throughput More: CPUs (SMP), memory, disks (SANs), I/O Provide services (e.g. Web, file, print, database,
e-mail, fax, transaction, telnet, directory)
![Page 25: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/25.jpg)
Internet TechnologiesProxy Servers & Firewalls
Proxy Server A server that sits between a client (running a browser)
and the Internet Improves performance by caching commonly used
Web pages Can filter requests to prevent users from accessing
certain Web sites Firewall
A server that sits between a network and the Internet to prevent unauthorized access to the network from the Internet
![Page 26: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/26.jpg)
Internet TechnologiesNetworks
Network = an interconnected collection of independent computers
Why have networks? Resource sharing Reliability Cost savings Communication
Web technologies add: New business models: e-commerce, advertising Entertainment Applications without a client-side install
![Page 27: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/27.jpg)
Internet TechnologiesNetworks
Network scope internet: a collection of connected networks Internet: a specific world-wide network based on
TCP/IP, used to connect companies, universities, governments, organizations and individuals. Originated as ARPANET, funded by the US DoD.
intranet: a network based on Internet technologies that is internal to a company or organization
extranet: a network based on Internet technologies that connects one company or organization to another
![Page 28: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/28.jpg)
Internet TechnologiesNetworks
Network technology is largely determined by scale: Local Area Network (LAN): Span up to a few
kilometers. Bus vs. ring topologies Wide Area Networks (WAN): Can span a country or
continent. WANs use routers as intermediate nodes to connect transmission lines
![Page 29: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/29.jpg)
Internet TechnologiesNetworks
Network technology Broadcasting
Packets of data are sent from one machine and received by all computers on the network
Multicast: packets are received by a subset of the machines on a network
Point-to-point Packets have to be routed from one machine to another;
there many be many paths In general, geographically localized networks use
broadcasting, while disperse networks use point-to-point
![Page 30: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/30.jpg)
Internet TechnologiesNetworks
ApplicationLayer
PresentationLayer
SessionLayer
TransportLayer
NetworkLayer
Data LinkLayer
PhysicalLayer
InternetLayer
ApplicationLayer
Telnet FTP SMTP DNS RIP SNMP HTTP
IP
Host-to-HostTransport
LayerTCP UDP
TokenRing
Ethernet ATMFrameRelay
NetworkInterface
Layer
OSI Model Layers
TCP/IP Protocol
Architecture Layers
TCP/IP Protocol Suite
ARPICMPIGMP
![Page 31: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/31.jpg)
Internet TechnologiesNetwork Protocol Stack
HTTP
TCP
IP
Ethernet
HTTP
TCP
IP
Ethernet
![Page 32: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/32.jpg)
Internet TechnologiesNetworks - Internet Layer
Internet Protocol (IP) Responsible for getting packets from source to
destination across multiple hops Not reliable IP address: 32 bit value usually written in dotted
decimal notation as four 8-bit numbers (0 to 255); e.g. 130.50.12.4
![Page 33: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/33.jpg)
Internet TechnologiesNetworks - Transport Layer
Provides efficient, reliable and cost-effective service
Uses the Sockets programming model Ports identify application
Well-known ports identify standard services (e.g. HTTP uses port 80, SMTP uses port 25)
Transmission Control Protocol (TCP) Provides reliable, connection-oriented byte stream
UDP Connectionless, unreliable
![Page 34: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/34.jpg)
Internet TechnologiesNetworks - Application Layer
Telnet: Remote sessions File Transfer Protocol (FTP) Network News Transfer Protocol (NNTP) Simple Network Management Protocol (SNMP) Simple Mail Transfer Protocol (SMTP) Post Office Protocol (POP3) Interactive Mail Access Protocol (IMAP)
![Page 35: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/35.jpg)
Internet TechnologiesNetworks - Domain Name System (DNS)
Provides user-friendly domain names, e.g. www.msn.com
Hierarchical name space with limited root names
DNS servers map domain names to IP addresses
.com .net .gov .edu
.org .mil .jp .de
![Page 36: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/36.jpg)
Internet TechnologiesExtensible Markup Language (XML)
Represents hierarchical data A meta-language: a language for defining
other languages Extensible Useful for data exchange and transformation Simplified version of SGML
![Page 37: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/37.jpg)
Agenda
Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
![Page 38: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/38.jpg)
Programming Languages
Machine code Assembly language High-level languages
Fortran, LISP, Cobol C, Pascal, Basic, Smalltalk C++, Eiffel Java, C#
Scripting languages Shell scripts, Perl, TCL, Python, JavaScript, VBScript
![Page 39: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/39.jpg)
Programming Paradigms
Unstructured programming Structured programming Object-oriented programming Component-based programming Event-based programming
![Page 40: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/40.jpg)
Programming ParadigmsUnstructured Programming
See “Go To Statement Considered Harmful” at http://www.acm.org/classics/oct95/
![Page 41: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/41.jpg)
Programming ParadigmsStructured Programming
Sequence Conditional
if then else switch
Looping for i from 1 to n do while do until
Functions Exceptions
![Page 42: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/42.jpg)
Programming ParadigmsObject-Oriented Programming
Objects have data and behavior Data: members, fields, variables, slots, properties Behavior: methods, functions, procedures
Using objects is easy First instantiate the type of object desired Then call its methods and get/set its properties
Designing new types of objects can be hard Design goals often conflict: simplicity, functionality,
reuse, performance
![Page 43: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/43.jpg)
Programming ParadigmsObject-Oriented Programming
Key object-oriented concepts Identity Encapsulation
Data + behavior Information hiding (abstraction)
Classes vs. instances Polymorphism Interfaces Delegation, aggregation Inheritance Patterns
![Page 44: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/44.jpg)
Programming ParadigmsComponent-Based Programming
Components Independent modules of reuse and deployment Coarser-grained than objects
(objects are language-level constructs) Includes multiple classes Often language-independent
In the general case, the component writer and the component user don’t know each other, don’t work for the same company, and don’t use the same language
![Page 45: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/45.jpg)
Programming ParadigmsComponent-Based Programming
Component Object Model (COM) Initial Microsoft standard for components Specifies a protocol for instantiating and using
components in-process, across processes or across machine boundaries
Basis for ActiveX, OLE, and many other technologies Can be created in Visual Basic, C++, .NET, …
Java Beans Java standard for components Not language-independent
![Page 46: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/46.jpg)
Programming ParadigmsEvent-Based Programming
When something of interest occurs, an event is raised and application-specific code is executed
Events provide a way for you to hook in your own code into the operation of another system
Event = callback User interfaces are all about events
onClick, onMouseOver, onMouseMove… Events can also be based upon time or
interactions with the network, operating system, other applications, etc.
![Page 47: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/47.jpg)
Agenda
Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
![Page 48: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/48.jpg)
Programming the WebClient-Side Code
What is client-side code? Software that is downloaded from Web server to
browser and then executes on the client Why client-side code?
Better scalability: less work done on server Better performance/user experience Create UI constructs not inherent in HTML
Drop-down and pull-out menus Tabbed dialogs
Cool effects, e.g. animation Data validation
![Page 49: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/49.jpg)
Programming the WebClient-Side Technologies
DHTML/JavaScript COM
ActiveX controls COM components Remote Data Services (RDS)
Java Plug-ins Helpers Remote Scripting
![Page 50: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/50.jpg)
Programming the WebDynamic HTML (DHTML)
Script that is embedded within an HTML page Usually written in JavaScript (ECMAScript,
JScript) for portability Internet Explorer also supports VBScript and other
scripting languages
Each HTML element becomes an object that has associated events (e.g. onClick)
Script provides code to respond to browser events
![Page 51: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/51.jpg)
Programming the WebDHTML
The DHTML Document Object Model (DOM)
window
history document location screen
all location children selectionforms body links
text buttonradio textarea select
password
file
checkbox submit
resetoption
navigator framesevent
![Page 52: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/52.jpg)
Programming the WebActiveX
Based on COM Native only to Internet Explorer
Supported in Netscape with a plug-in
Good when you know your users (e.g. intranet) or can specify which browser to use
Small, efficient code
![Page 53: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/53.jpg)
Programming the WebJava Applets
Based on Java bytecode Held great promise as a portable, pain-free way
to download client-side code: “Write once, run anywhere”
Fairly safe: code runs in a “sandbox” Compatibility and performance issues have
prevented common usage
![Page 54: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/54.jpg)
Programming the WebServer-Side Code
What is server-side code? Software that runs on the server, not the client Receives input from
URL parameters HTML form data Cookies HTTP headers
Can access server-side databases, e-mail servers, files, mainframes, etc.
Dynamically builds a custom HTML response for a client
![Page 55: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/55.jpg)
Programming the WebServer-Side Code
Why server-side code? Accessibility
You can reach the Internet from any browser, any device, any time, anywhere
Manageability Does not require distribution of application code Easy to change code
Security Source code is not exposed Once user is authenticated, can only allow certain actions
Scalability Web-based 3-tier architecture can scale out
![Page 56: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/56.jpg)
Programming the WebServer-Side Technologies
Common Gateway Interface (CGI) Internet Server API (ISAPI) Netscape Server API (NSAPI) Active Server Pages (ASP) Java Server Pages (JSP) Personal Home Page (PHP) Cold Fusion (CFM) ASP.NET
![Page 57: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/57.jpg)
Programming the Web Active Server Pages (ASP)
Technology to easily create server-side applications
ASP pages are written in a scripting language, usually VBScript or JScript
An ASP page contains a sequence of static HTML interspersed with server-side code
ASP script commonly accesses and updates data in a database
![Page 58: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/58.jpg)
Programming the WebASP
HTTP request(form data, HTTP
header data)
HTTP responseHTML, XML
ASP page(static HTML, server-side logic)
![Page 59: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/59.jpg)
Agenda
Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
![Page 60: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/60.jpg)
.NET Overview
Introduction to .NET Web Services The .NET Framework Common Language Runtime Windows Forms Web Forms ADO.NET Languages
![Page 61: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/61.jpg)
Introduction to .NETWhat is .NET?
A vision of how information technology will evolve
A platform that supports the vision A business model of software as a service
![Page 62: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/62.jpg)
Introduction to .NETWhat is .NET?
A vision Web sites will be joined by Web services New smart devices will join the PC User interfaces will become more adaptable
and customizable Enabled by Web standards
![Page 63: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/63.jpg)
A platform The .NET Framework Visual Studio.NET .NET Enterprise Servers
Database, Messaging, Integration, Commerce, Proxy, Security, Mobility, Orchestration, Content Management
.NET Building Block Services Passport .NET My Services (“Hailstorm”)
Goal: make it incredibly easy to build powerful Web applications and Web services
Introduction to .NETWhat is .NET?
} The focus of this course
![Page 64: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/64.jpg)
A business model Software as a service Subscription-based services Application hosting, e.g. bCentral
Introduction to .NETWhat is .NET?
![Page 65: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/65.jpg)
Introduction to .NETThe .NET Platform
Web Form
.NET Framework
Windows
Web Service
.NET FoundationWeb Services
Your InternalWeb Service
Third-PartyWeb Services
.NET EnterpriseServers
Clients Applications
Protocols: HTTP,HTML, XML, SOAP, UDDI
Tools:Visual Studio.NET,
Notepad
![Page 66: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/66.jpg)
Web Services
A programmable application component accessible via standard Web protocols
The center of the .NET architecture Exposes functionality over the Web Built on existing and emerging standards
HTTP, XML, SOAP, UDDI, WSDL, …
![Page 67: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/67.jpg)
Web ServicesEvolution of the Web
Generation 1Static HTML
HTML
Generation 2Web Applications
HTML
HTML, XML
HTML, XML
Generation 3Web Services
![Page 68: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/68.jpg)
A set of technologies for developing and using components to create: Web Forms Web Services Windows Applications
Supports the software lifecycle Development Debugging Deployment Maintenance
The .NET FrameworkWhat Is the .NET Framework?
![Page 69: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/69.jpg)
Common Language Specification
Common Language Runtime
VB C++ C#
ASP.NET: Web Servicesand Web Forms
JScript …
WindowsForms
.NET Framework Base Classes
ADO.NET: Data and XML
Visu
al Stu
dio
.NE
T
The .NET FrameworkThe .NET Framework and Visual Studio.NET
![Page 70: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/70.jpg)
System.Data
DesignOLEDB
SQLTypesSQL
System
GlobalizationDiagnostics
ConfigurationCollections
ResourcesReflection
NetIO
ThreadingText
ServiceProcessSecurity Runtime
InteropServicesRemotingSerialization
System.Xml
XPathXSLT Serialization
System.Web
Configuration SessionStateCaching Security
ServicesDescriptionDiscoveryProtocols
UIHtmlControls
WebControlsSystem.Drawing
ImagingDrawing2D
TextPrinting
The .NET Framework.NET Framework Classes
System.Windows.FormsForm Button
MessageBox ListControl
![Page 71: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/71.jpg)
Common Language RuntimeGoals
Development services Deep cross-language interoperability Increased productivity
Deployment services Simple, reliable deployment Fewer versioning problems – NO MORE ‘DLL HELL’
Run-time services Performance Scalability Availability
Reliability Security Safety
![Page 72: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/72.jpg)
Source CodeSource Code
C++, C#, VB or any .NET language
csc.exe or vbc.exe
Compiler
AssemblyAssembly
DLL or EXE
Common Language RuntimeCompilation
![Page 73: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/73.jpg)
Assembly Logical unit of deployment Contains Manifest, Metadata, MSIL and resources
Manifest Metadata about the components in an assembly
(version, types, dependencies, etc.)
Type Metadata Completely describes all types defined in
an assembly: properties, methods, arguments, return values, attributes, base classes, …
Common Language RuntimeAssemblies
![Page 74: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/74.jpg)
Common Language RuntimeAssemblies
Microsoft Intermediate Language (MSIL, IL) All languages compile to IL (managed code) IL is always compiled to native code before
being executed
Resources E.g. .bmp, .jpg
![Page 75: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/75.jpg)
Common Language RuntimeExecution Model
CLR
VBSource code
Compiler
C++C#
Assembly AssemblyAssembly
Operating System Services
MSIL
Common Language Runtime JIT Compiler
Compiler Compiler
Nativecode
ManagedCode
ManagedCode
ManagedCode
UnmanagedCode
CLR Services
Ngen
![Page 76: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/76.jpg)
Common Language RuntimeServices
Code management Conversion of MSIL to
native code Loading and execution of
managed code Creation and
management of metadata Verification of type safety Insertion and execution of
security checks Memory management
and isolation
Handling exceptions across languages
Interoperation between .NET Framework objects and COM objects and Win32 DLLs
Automation of object layout for late binding
Developer services (profiling, debugging, etc.)
![Page 77: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/77.jpg)
Common Type System (CTS) A superset of the data types used by most modern
programming languages Common Language Specification (CLS)
A subset of CTS that allows code written in different languages to interoperate
What languages? Microsoft: C++, Visual Basic, C#, JScript Third-Party: Cobol, Eiffel, Smalltalk, Scheme, Oberon,
Haskell, Java, Python, Perl, …
Common Language RuntimeMultiple Language Support
![Page 78: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/78.jpg)
Common Language RuntimeApplications
An application consists of one or more assemblies How does one assembly bind to another?
Based upon metadata and policy Local (preferred) Assembly Global Cache
Multiple versions of an assembly may exist on the same machine Easier software deployment, updates and removal Multiple versions of an assembly can even be used by
the same application
![Page 79: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/79.jpg)
Common Language RuntimeSecurity
Evidence-based security (authentication) Based on user identity and code identity Configurable policies Imperative and declarative interfaces
![Page 80: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/80.jpg)
Windows Forms
Framework for building rich clients
Built upon .NET Framework, languages
Rapid Application Development (RAD)
Visual inheritance Anchoring and docking Rich set of controls Extensible controls
Data-aware Easily hooked into
Web Services ActiveX support Licensing support Printing support Advanced graphics
![Page 81: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/81.jpg)
Web Forms
Built with ASP.NET Logical evolution of ASP Similar development model: edit the page and go
Requires less code New programming model
Event-driven/server-side controls Rich controls (e.g. data grid, validation) Data binding Controls generate browser-specific code Simplified handling of page state
![Page 82: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/82.jpg)
Web Forms
Allows separation of UI and business logic Uses .NET languages
Not just scripting
Easy to use components XCOPY/FTP deployment Simple configuration (XML-based)
![Page 83: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/83.jpg)
Web Forms
Caching (pages, fragments, custom) Scalable session state management Tracing support ASP.NET is extensible
No ISAPI / ASP dichotomy
Automatic process rollover Forms-based authentication
![Page 84: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/84.jpg)
Similar to ADO, but better factored Language-neutral data access Supports two styles of data access
Disconnected Forward-only, read-only access
Supports data binding DataSet: a collection of tables Can view and process data relationally (tables) or
hierarchically (XML)
ADO.NET
![Page 85: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/85.jpg)
Languages C#
New language created for .NET Safe, productive evolution of C++ Key concepts:
Component-oriented Everything is an object Robust and durable code Preserving your investment
Submitted to ECMA for standardization Uses .NET Framework classes
![Page 86: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/86.jpg)
Languages Visual Basic.NET
Modernizes and simplifies Visual Basic Inheritance Threading Exception handling
Support for late binding Uses .NET Framework classes
![Page 87: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/87.jpg)
Conclusion
Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
![Page 88: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/88.jpg)
More Resources
HTTP http://msdn.microsoft.com/library/periodic/period96/protocol.htm HTTP Essentials, Stephen Thomas, 2001, Wiley,
ISBN 0471-39823-3 Cookies
http://msdn.microsoft.com/library/default.asp?URL=/library/partbook/instantj/cookies.htm
MIME http://www.ufaq.org/navcom/mime_tutorial.html http://www.irvine.com/~mime/
Networks http://msdn.microsoft.com/library/periodic/period99/ntp99b3.htm
![Page 89: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University.](https://reader036.fdocuments.net/reader036/viewer/2022062309/56649de65503460f94ade6bb/html5/thumbnails/89.jpg)
More Resources
XML http://msdn.microsoft.com/xml/default.asp http://www.w3.org/XML/ Essential XML, Don Box, Aaron Skonnard, John Lam, Addison
Wesley, 2000, ISBN 0-201-70914-7
.NET http://www.microsoft.com/net/ http://msdn.microsoft.com/net/ http://www.gotdotnet.com msnews.microsoft.com news server
microsoft.public.dotnet.general newsgroup