Introduction to .Net framework
BY-Teach4u.in
The .NET Framework
What is Microsoft .NET?A programming model: CLR + ClassesXML Web servicesServer and Client software and tools
Common Language Runtime (CLR)It’s a VM (Java-like) on which any
(supported) language can run.Why a VM?
Memory ProtectionCross-languageSupport for strong-typing across languages
(the data are typed)Thread support
JIT compilation in the VM
Languages in CLRLanguage of choice is C# (“C-sharp”) a Java-like
languageNo inner classesBetter type checking
Other languages will run on CLR, but only within the CLR constraintsVisual Basic, JScript are full fledged CLR languagesFor example, only C++ that is VM-safe will runThat subset looks much like C#
Under CLR, all languages get object features Inheritance used extensivelyEvery language gets constructors
Languages compile to MSILLanguages compile to MSIL (Microsoft
Intermediate Language)Can you say “bytecodes”?
MSIL is shipped in portable executable (PE) unitsCan 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 unitEach 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 LibraryData classes support persistent data
management and include SQL classes. XML classes enable XML data manipulation
and XML searching and translations.Windows Forms support development of
Windows GUI applications across CLRWeb Forms include classes that enable you to
rapidly develop web GUI applications.
System.ObjectPublic methods:
EqualsGetHashCodeGetTypeToString
Overriding inherited behaviors is common
Web, Windows, WhateverPart of the idea is to smooth transitions
between Windows and WebWeb interfaces become easier for Windows
developersWindows apps become .NET Web-based apps
Data <-> XML, EverywhereAll CLR data can be
serialized to XMLAll XML can be expanded
into CLR dataThus, 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-ba4c- acee78fe3f7d" > <name>Don Box</name> <niceStuffForDon/> </ns:don>
Second Example Instance<ns:don xmlns:ns="uuid:048b2fa1-d557-473f-ba4c-acee78fe3f7d" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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 DataXmlReader reader = new XmlTextReader("http://foo.com/don.xsd");
XmlSchema schema = XmlSchema.Load(reader, null);schema.Compile(null); // turn xml into objectsreader.Close();
ALL Interprocess Communication via SOAPALL Interprocess communication (across
network or on same machine) is through SOAPSimple Object Access ProtocolIt’s a way of exchanging data and even calling
other methods/threads, all via XML and plain old HTTP requests
Example SOAP RequestPOST /StockQuote HTTP/1.1Host: www.stockquoteserver.comContent-Type: text/xml; charset="utf-8"Content-Length: nnnnSOAPAction: "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 ResponseHTTP/1.1 200 OKContent-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.NETASP =>
Active Server PagesPut 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 lessonsVM’s are important
Even Microsoft thinks soDistributed apps are important, but to do so
requires standard protocolsWays of serializing dataWays of doing RPC
Limitations of the .NET FrameworkWhat if you’re not on the network?
Maybe that’s not an issue?Mapping between XML and any object is
hardAny object is controlled by compiler.
XML can be written by anybody with a text editor.
There’s a whole bunch of class support for modified serializers and compilers