1 / 26

The .NET Framework

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). It’s a VM (Java-like) on which any (supported) language can run. Why a VM? Memory Protection Cross-language

naomid
Download Presentation

The .NET Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Common Language Runtime (CLR) • It’s 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

  3. 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

  4. 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

  5. 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.

  6. Assemblies can be spread across .NET

  7. 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

  8. Class Library • Data 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 CLR • Web Forms include classes that enable you to rapidly develop web GUI applications.

  9. System.Object • Public methods: • Equals • GetHashCode • GetType • ToString • Overriding inherited behaviors is common

  10. 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

  11. 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

  12. 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" />

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

  14. 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>

  15. 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>

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

  17. XML Schema Defined Types

  18. Class Library Data Hierarchy

  19. 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();

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

  21. 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>

  22. 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>

  23. 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

  24. 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. 

  25. Take-away lessons • VM’s 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

  26. Limitations of the .NET Framework • What if you’re not on the network? • Maybe that’s 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. • There’s a whole bunch of class support for modified serializers and compilers

More Related