2. The .NET Framework
What is Microsoft .NET?
A programming model: CLR + Classes
XML Web services
Server and Client software and tools
3. 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
4. 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
5. 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
6. 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.
8. 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
9. 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.
11. 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
12. 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
20. 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();
21. 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
24. 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
25. 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.
26. 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
27. 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