Overview of the Microsoft .
NET
Framework and the Evolution of
the Services Oriented Architecture
Kumar Gaurav
Gaurav.rvce@gmail.com
.NET Framework
Design Goals
Unify programming models
Dramatically simplify development
Provide robust execution environment
Support multiple programming
languages
Natively support XML Web Services
Inside the .NET Framework
Based on Standards
Approved by
VB C++ C# J# … ECMA
Common Language Specification Open Language
Visual Studio .NET
Specification
Web Forms
XML Web
services XML, SOAP-
Windows Forms based
Data and XML
Base Class Library XML-based
data access
CLR
Approved by
CLI ECMA
Unify Programming Models
Consistent API availability regardless of
language and programming model
.NET Framework
RAD, Subclassing, Stateless,
Composition, Power, Code embedded
Delegation Expressiveness in HTML pages
VB Forms MFC/ATL ASP
Windows API
The Common Language Runtime
Internals
Base Class Library Support
Thread Support COM Marshaler
Type Checker Exception Manager
Security Engine Debug Engine
IL to Native Code Garbage
Compilers Manager Collector
Class Loader
Hello World
using System;
class Hello
{
public static void Main()
{
Console.WriteLine("Hello, World!");
}
}
The Common Language Runtime
Compilation and Execution
Compilation
Source Language Code
Code Compiler MSIL
Metadata
Before
installation or
the first time
Execution each method is
called
Native JIT
Code Compiler
Differences between COM and .NET
Models
Feature COM .NET
Coding model Interface-based Object-based
Identifying components GUIDs Strong-named assemblies
Error handling HRESULTs Exceptions
Compatibility Binary standard Common type system
Type information Type library Metadata
Object lifetimes Managed by client Managed by runtime
Querying capabilities QueryInterface .NET reflection
Versioning Manual Built into .NET
Deployment vs. Build
Components
Fully Integrated
Development
Environment
Free Command
Line Build Tools .NET Framework SDK
Free Runtime Common Language Runtime,
Redistributable Framework Class Library
(Dotnetfx.exe)
Application Architecture
Security
Users
Communication
Operational Management
UI Components
UI Process Components
Service Interfaces
Business Business Business
Workflows Components Entities
Data Access
Components Service Agents
Data Services
Sources
User Interface Choices…
Windows Desktop UI
Can take many forms:
"Full-blown" desktop/tablet PC user
interfaces built with Windows Forms
Embedded HTML
Application plug-ins
Windows Forms have a new deployment
model that combines the rich UI of
desktop app with the ease of
deployment of a web application…
WinForms Auto Deployment
Client Web Server
HTTP
Windows
Forms App.
Assembly.LoadFrom( “http://server/form2.dll”
Form3 newForm = new Form3(); );
Assembly Cache 1.2
1.2
? Form2
Form2 Form3 Form3
v.1.2
Smart Client Deployment
Benefits
Application Isolation (side-by-side
execution)
No more problems associated with DLLs,
registry entries, etc.
Web Deployment
Applications can be automatically updated
simply by providing newer versions of
assemblies on the web server
Smart Clients
Pros
Very rich user interface
Can take advantage of local processing power and
resources
Can be built for both online and offline use
New Web Deployment Model mitigates many
deployment issues
Code- and Evidence-based Security provide
flexible and powerful security model
Familiar application development model
Con
Requires .NET Framework to be installed on client
machine
Internet Browser UI
Pros
No deployment to the client
.NET Framework not required on the client
machine
Suitable for world-wide Internet
deployment
Cons
Online-only mode of operation
Not as sophisticated a UI as a smart client
Some applications require work to adapt to
a web interface
Mobile Device UI
Increasingly popular and important
Web User Interfaces
HTML, cHTML, xHTML, WML/WAP
Microsoft Mobile Internet Toolkit lets
developers build ASP.NET solutions that
easily target over 200 devices with one
code base
Smart Device User Interfaces
.NET Compact Framework can be
embedded in PocketPCs and Smartphones
for sophisticated client UI