89
Introduction to the Web and .NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University

Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University

Embed Size (px)

Citation preview

Page 1: Introduction to the Web and.NET Mark Sapossnek CS 594 Computer Science Department Metropolitan College Boston University

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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