Transcript Introduction to the Web and .NET Mark Sapossnek CS 594
Introduction to the Web and .NET
Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University
Prerequisites
Basic computer skills Experience using the World Wide Web Experience developing object-oriented software
Learning Objectives
Overview of Web and Internet technologies Review of existing Web programming technologies Introduction to the .NET development platform
Agenda
Internet Technologies
Programming Languages and Paradigms Programming the Web .NET Overview
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 ...
Internet Technologies
WWW Architecture Client Request:
http://www.msn.com/default.asp
Network PC/Mac/Unix + Browser TCP/IP Server Response:
…
Web Server
Internet Technologies
WWW 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
Internet Technologies
Web 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
Internet Technologies
Web 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:
robustness. Facilitates scalability and
Internet Technologies
Hypertext 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
and other pages to images, documents, Not extensible Derived from Standard Generalized Markup Language (SGML) HTML 3.2, 4.01, XHTML 1.0
Internet Technologies
HTML 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
Internet Technologies
Hypertext 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
Internet Technologies
HTTP Request Method File HTTP version Headers GET /default.asp HTTP/1.0
Accept: image/gif, image/x-bitmap, image/jpeg, */* Accept-Language: en User-Agent: Mozilla/1.22 (compatible; MSIE 2.0; Windows 95) Connection: Keep-Alive If-Modified-Since: Sunday, 17-Apr-96 04:32:58 GMT Blank line Data – none for GET
Internet Technologies
HTTP Response HTTP version Status code Reason phrase Headers HTTP/1.0 200 OK Date: Sun, 21 Apr 1996 02:20:42 GMT Server: Microsoft-Internet-Information-Server/5.0 Connection: keep-alive Content-Type: text/html Last-Modified: Thu, 18 Apr 1996 17:39:05 GMT Content-Length: 2543 Some data... blah, blah, blah Data
Internet Technologies
HTTP Server Status Codes Code
200 201 301 302 400 401 403 404 500
Description
OK Created Moved Permanently Moved Temporarily Bad Request – not understood Unauthorized Forbidden – not authorized Not Found Internal Server Error
Internet Technologies
HTTP
HTTP is a stateless protocol Each HTTP request is independent of previous and subsequent requests HTTP 1.1 introduced keep-alive applications are designed for efficiency Statelessness has a big impact on how scalable
Internet Technologies
Cookies
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
Internet Technologies
HTTPS
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)
Internet Technologies
URIs, 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
Internet Technologies
Multipurpose 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
Internet Technologies
MIME
Specifies character sets, e.g. ASCII Supports multi-part messages Originally designed for email, but also used in other places, such as HTTP
Internet Technologies
Browsers
Client-side application Requests HTML from Web server and renders it Popular browsers: Netscape Internet Explorer Opera others Also known as a User Agent
Internet Technologies
Clients & Servers
Client and Server computers both have: CPU Memory I/O Disks Network Bus Multi-tasking operating system Applications
Internet Technologies
Clients & 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)
Internet Technologies
Proxy 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
Internet Technologies
Networks
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
Internet Technologies
Networks
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
Internet Technologies
Networks
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
Internet Technologies
Networks
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
Internet Technologies
Networks OSI Model Layers Application Layer Presentation Layer Session Layer Transport Layer Network Layer Data Link Layer Physical Layer TCP/IP Protocol Architecture Layers Application Layer Host-to-Host Transport Layer Internet Layer Network Interface Layer Telnet FTP SMTP DNS RIP SNMP HTTP ARP Ethernet TCP Token Ring IP TCP/IP Protocol Suite Frame Relay UDP IGMP ICMP ATM
Internet Technologies
Network Protocol Stack HTTP TCP IP Ethernet HTTP TCP IP Ethernet
Internet Technologies
Networks - 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
Internet Technologies
Networks - 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
Internet Technologies
Networks - 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)
Internet Technologies
Networks Domain Name System (DNS)
Provides user-friendly domain names, e.g. www.msn.com Hierarchical name space with limited root names .com
.net
.gov
.edu
.org
.mil
.jp
.de
DNS servers map domain names to IP addresses
Internet Technologies
Extensible 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
Agenda
Internet Technologies
Programming Languages and Paradigms
Programming the Web .NET Overview
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
Programming Paradigms
Unstructured programming Structured programming Object-oriented programming Component-based programming Event-based programming
Programming Paradigms
Unstructured Programming
See “Go To Statement Considered Harmful” at http://www.acm.org/classics/oct95/
Programming Paradigms
Structured Programming
Sequence Conditional if then else switch Looping for i from 1 to n do while do until Functions Exceptions
Programming Paradigms
Object-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
Programming Paradigms
Object-Oriented Programming
Key object-oriented concepts Identity Encapsulation Data + behavior Information hiding (abstraction) Classes vs. instances Polymorphism Interfaces Delegation, aggregation Inheritance Patterns
Programming Paradigms
Component-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
Programming Paradigms
Component-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
Programming Paradigms
Event-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.
Agenda
Internet Technologies Programming Languages and Paradigms
Programming the Web
.NET Overview
Programming the Web
Client-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
Programming the Web
Client-Side Technologies
DHTML/JavaScript COM ActiveX controls COM components Remote Data Services (RDS) Java Plug-ins Helpers Remote Scripting
Programming the Web
Dynamic 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
Programming the Web
DHTML
The DHTML Document Object Model (DOM)
window event navigator history document location screen frames all location children forms selection body text password file radio checkbox button submit reset textarea select option links
Programming the Web
ActiveX
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
Programming the Web
Java 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
Programming the Web
Server-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
Programming the Web
Server-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
Programming the Web
Server-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
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
Programming the Web
ASP HTTP request (form data, HTTP header data) HTTP response HTML, XML ASP page (static HTML, server-side logic)
Agenda
Internet Technologies Programming Languages and Paradigms Programming the Web
.NET Overview
.NET Overview
Introduction to .NET
Web Services The .NET Framework Common Language Runtime Windows Forms Web Forms ADO.NET
Languages
Introduction to .NET
What is .NET?
A vision of how information technology will evolve A platform that supports the vision A business model of software as a service
Introduction to .NET
What 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
Introduction to .NET
What is .NET?
A platform The .NET Framework Visual Studio.NET
}
The focus of this course
.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 .NET
What is .NET?
A business model Software as a service Subscription-based services Application hosting, e.g. bCentral
Introduction to .NET
The .NET Platform Clients Applications Protocols: HTTP, HTML, XML, SOAP, UDDI Web Form Web Service .NET Framework Windows Tools: Visual Studio.NET, Notepad Your Internal Web Service .NET Foundation Web Services Third-Party Web Services .NET Enterprise Servers
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, …
Web Services
Evolution of the Web HTML, XML HTML HTML Generation 1 Static HTML Generation 2 Web Applications Generation 3 Web Services HTML, XML
The .NET Framework
What Is the .NET Framework?
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 Framework
The .NET Framework and Visual Studio.NET
VB C++ C# JScript … Common Language Specification ASP.NET: Web Services and Web Forms Windows Forms ADO.NET: Data and XML .NET Framework Base Classes Common Language Runtime
The .NET Framework
.NET Framework Classes Services Description Discovery Protocols System.Web
UI HtmlControls WebControls Caching Configuration Security SessionState OLEDB Design System.Data
Collections Configuration Diagnostics Globalization SQL SQLTypes IO Net Reflection Resources Form System.Windows.Forms
MessageBox Button ListControl System.Drawing
Drawing2D Imaging Printing Text XSLT XPath System.Xml
Serialization System Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
Common Language Runtime
Goals
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
Common Language Runtime
Compilation Source Code C++, C#, VB or any .NET language Compiler csc.exe or vbc.exe
Assembly DLL or EXE
Common Language Runtime
Assemblies
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 Runtime
Assemblies
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
Source code MSIL
Common Language Runtime
Execution Model VB Compiler Assembly C# Compiler Assembly C++ Compiler Assembly Common Language Runtime JIT Compiler Ngen Native code Managed Code CLR Services Managed Managed Code Operating System Services Unmanaged Code
Common Language Runtime
Services
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.)
Common Language Runtime
Multiple Language Support
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 Runtime
Applications
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
Common Language Runtime
Security
Evidence-based security (authentication) Based on user identity and code identity Configurable policies Imperative and declarative interfaces
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
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
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)
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
ADO.NET
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)
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
Languages
Visual Basic.NET
Modernizes and simplifies Visual Basic Inheritance Threading Exception handling Support for late binding Uses .NET Framework classes
Conclusion
Internet Technologies Programming Languages and Paradigms Programming the Web .NET Overview
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/partb ook/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
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