0% found this document useful (0 votes)
43 views

What Is: - A Programming Model: CLR + Classes - XML Web Services - Server and Client Software and Tools

The .NET Framework allows programs to be written in multiple languages and executed in a common runtime environment. It includes a virtual machine, common language runtime, and class libraries. Programs compile to Microsoft Intermediate Language (MSIL) and are executed within assemblies. The framework supports web services, XML integration, and distributed applications through SOAP-based web service calls.

Uploaded by

Deepa Darshini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

What Is: - A Programming Model: CLR + Classes - XML Web Services - Server and Client Software and Tools

The .NET Framework allows programs to be written in multiple languages and executed in a common runtime environment. It includes a virtual machine, common language runtime, and class libraries. Programs compile to Microsoft Intermediate Language (MSIL) and are executed within assemblies. The framework supports web services, XML integration, and distributed applications through SOAP-based web service calls.

Uploaded by

Deepa Darshini
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 26

The .

NET Framework
What is
Microsoft .NET?
A programming
model: CLR +
Classes
XML Web services
Server and Client
software and tools

Common Language Runtime (CLR)


Its a VM (Java-like) on which any (supported)
language can run.
Why a VM?
Memory Protection
Cross-language
Support for strong-typing across languages (the data
are typed)
Thread support

JIT compilation in the VM

Languages in CLR
Language of choice is C# (C-sharp) a Java-like language
No inner classes
Better type checking

Other languages will run on CLR, but only within the CLR
constraints
Visual Basic, JScript are full fledged CLR languages
For example, only C++ that is VM-safe will run
That subset looks much like C#

Under CLR, all languages get object features


Inheritance used extensively
Every language gets constructors

Languages compile to MSIL


Languages compile to MSIL (Microsoft
Intermediate Language)
Can you say bytecodes?

MSIL is shipped in portable executable


(PE) units
Can you say .class files or applets?

An application is made up of assemblies

Assemblies
In general, a static
assembly can consist of
four elements:
The assembly manifest,
which contains assembly
metadata.
Type metadata.
Microsoft intermediate
language (MSIL) code
that implements the
types.
A set of resources.

Assemblies can be spread across


.NET

Assemblies are the security unit


Each assembly has a set of corresponding
grants
Each grant allows certain permissions
DnsPermission, Environment, FileDialog, FileIO,
IsolatedStorage, Reflection, Registry, Security, UI,
WebPermission, SocketPermission

The set of grants establishes a security


policy

Class Library
Data classes support persistent
management and include SQL classes.

data

XML classes enable XML data manipulation


and XML searching and translations.

Windows Forms support development of


Windows GUI applications across CLR
Web Forms include classes that enable you
to rapidly develop web GUI applications.

System.Object
Public methods:

Equals
GetHashCode
GetType
ToString

Overriding inherited behaviors is common

Web, Windows, Whatever


Part of the idea is to smooth transitions
between Windows and Web
Web interfaces become easier for Windows
developers
Windows apps become .NET Web-based
apps

Data <-> XML, Everywhere


All CLR data can be
serialized to XML
All XML can be expanded
into CLR data
Thus, anything can be
shipped around on the Web
Typing through XML
Schema

XML Schema

<xsd:complexType name="Person">
<xsd:sequence>
<xsd:choice>
<xsd:element name="name" type="xsd:string"
xsi:nillable="true" />
<xsd:element name="id" type="xsd:string" />
</xsd:choice>
<xsd:any processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AgedPerson">
<xsd:complexContent mixed="false">
<xsd:extension base="target:Person">
<xsd:choice>
<xsd:element name="age" type="xsd:double" />
<xsd:element name="timeOnEarth" type="xsd:double" />
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="don" type="target:Person" />

Example Instance
<ns:don
xmlns:ns="uuid:048b2fa1-d557-473f-ba4cacee78fe3f7d"
>
<name>Don Box</name>
<niceStuffForDon/>
</ns:don>

Second Example Instance


<ns:don
xmlns:ns="uuid:048b2fa1-d557-473f-ba4cacee78fe3f7d"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:type="ns:AgedPerson"
>
<name>Don Box</name>
<niceStuffForDon/>
<age>26</age>
</ns:don>

A Simpler Schema
<element name="Book">
<complexType>
<element name="author" type="xsd:string"/>
<element name="preface" type="xsd:string"/>
<element name="intro" type="xsd:string"/>
</complexType>
</e:Book>

Another Example Instance


<e:Book>
<author>Henry Ford</author>
<preface>Prefatory text</preface>
<intro>This is a book.</intro>
</e:Book>

XML Schema Defined Types

Class Library Data Hierarchy

Reading in XML Data


XmlReader reader
= new
XmlTextReader("http://foo.com/don.xsd");
XmlSchema schema = XmlSchema.Load(reader, null);
schema.Compile(null); // turn xml into objects
reader.Close();

ALL Interprocess Communication


via SOAP
ALL Interprocess communication (across
network or on same machine) is through
SOAP
Simple Object Access Protocol
Its a way of exchanging data and even calling
other methods/threads, all via XML and plain
old HTTP requests

Example SOAP Request


POST /StockQuote HTTP/1.1
Host: www.stockquoteserver.com
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
SOAPAction: "Some-URI"
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Example SOAP Response


HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: nnnn
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="Some-URI">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

ASP.NET
ASP =>
Active Server Pages
Put most of the
computation in the server

Very simple model to


use
ADO.NET is the
database connection part

Calling Web Services


Any class can be converted into an XML Web Service with just a
few lines of code, and can be called by any SOAP client.

Take-away lessons
VMs are important
Even Microsoft thinks so

Distributed apps are important, but to do so


requires standard protocols
Ways of serializing data
Ways of doing RPC

Limitations of the .NET Framework


What if youre not on the network?
Maybe thats not an issue?

Mapping between XML and any object is hard


Any object is controlled by compiler.
XML can be written by anybody with a text
editor.
Theres a whole bunch of class support for
modified serializers and compilers

You might also like