You are on page 1of 33

SynapseIndia Feedback on

.NET Framework Evolution

.NET Framework
Design Goals
Dramatically simplifies development and

deployment
Unifies programming models
Provides robust and secure execution
environment
Supports multiple programming languages

Framework, Languages,
And Tools
VB

C++

C#

JScript

J#

Common Language Specification


Windows
Forms

ADO.NET and XML


Base Class Library
Common Language Runtime
Operating System

Visual Studio.NET

ASP.NET
Web Forms Web Services
Mobile Internet Toolkit

demo
One Lap Around .NET

Demo: One Lap Around .NET


Create a simple Web Service
Test it in Internet Explorer
Add data logic to it
Build a smart client for it
Show seamless and safe deployment of the

smart client

Framework, Languages, And Tools


VB

C++

C#

JScript

J#

Common Language Specification


Windows
Forms

ADO.NET and XML


Base Class Library
Common Language Runtime
Operating System

Visual Studio.NET

ASP.NET
Web Forms Web Services
Mobile Internet Toolkit

The .NET Evolution


Applicatio
n

Code and
data
structures

Before COM, applications were


completely separate entities
with little or no integration

The .NET Evolution

COM provides a way for


components to integrate;
However, each
component must provide
the plumbing and
objects cannot
directly interact

The .NET Evolution

With the .NET Framework


common language runtime,
components are built on a
common substrate; No
plumbing is needed and
objects can directly interact

Compilation And Execution


Compilation
Source
Code

Language
Compiler

Native
Code

JIT
Compiler
Execution

Code (IL)

Assembly
Metadata

At installation or the
first time each
method is called

Simplify Development
Completely eliminates COM plumbing
No more
Registration
GUIDs

=>self described apps

.IDL files
HRESULTs

=>hierarchical namespaces

IUnknown

=>structured exceptions

AddRef/Release
CoCreateInstance

=>unified object model


=>common root object
=>garbage collector
=>new operator

Simplify Development
Common Type System
Common instance and type definition

Enables clean OO programming


Classes and interfaces
Constructors, properties, methods, events
Cross language inheritance

Built-in interoperability
With COM
With native (Win32 style) DLLs

Everything Is An Object
Traditional views of primitive types
C++, Java: Theyre magic
Smalltalk, Lisp: Theyre full-blown objects

.NET Framework solution: Value types


unifies with no performance cost
Deep simplicity throughout system

Improved extensibility and reusability


New primitive types: Decimal, SQL
Collections, etc., work for all types

Everything Is An Object
Boxing
Allocates box, copies value into it

Unboxing
Checks type of box, copies value out
Dim
Dim
Dim

i
o
j

As
As
As
i

Integer = 123
Object = i
Integer = CInt(o)
123

System.Int32

o
j

int i = 123;
object o = i;
int j = (int)o;

123

123

Robust Environment
Automatic lifetime management
All objects are garbage collected

Exception handling
Error handling first class and mandatory

Type-safety
No buffer overruns, No unsafe casts, Uninitialized

variables

Secure Environment
Security designed-in
Code access security enforcement
Security based on the identity of code
Administratively configurable via policy

ASP.NET integrated authentication

of user

Windows identity, Passport, forms-based,

Cryptography library with XML

DSIG support

Digital signature for XML (www.w3.org/signature)

Simplify Deployment And


Management
Zero-impact install
Applications and components can be shared or

private
Side-by-side execution
Multiple versions of the same component can co-

exist on a system
Assemblies
Contain dependency information

Framework, Languages, And Tools


VB

C++

C#

JScript

J#

Common Language Specification


Windows
Forms

ADO.NET and XML


Base Class Library
Common Language Runtime
Operating System

Visual Studio.NET

ASP.NET
Web Forms Web Services
Mobile Internet Toolkit

Unify
Programming
Models
Consistent API availability regardless of
language and programming model

.NET Framework
RAD,
Composition,
Delegation

VB Forms

Subclassing,
Power,
Expressiveness

MFC/ATL

Windows API

Stateless,
Code embedded
in HTML pages

ASP

How Much Simpler?


Windows API
HWND hwndMain = CreateWindowEx(
0, "MainWClass", "Main Window",
WS_OVERLAPPEDWINDOW | WS_HSCROLL | WS_VSCROLL,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
(HWND)NULL, (HMENU)NULL, hInstance, NULL);
ShowWindow(hwndMain, SW_SHOWDEFAULT);
UpdateWindow(hwndMain);

.NET Framework
Dim form As New Form()
form.Text = "Main Window"
form.Show()

Factored And Extensible


The Framework is not a black box
Any .NET class is available for you to extend

through inheritance
Gives developers much more head room

Plug and Play components andsubsystems

The .NET Framework Library


ASP.NET
Web Forms Web Services
Mobile Internet Toolkit

Windows
Forms

ADO.NET and XML


Base Class Library

The .NET Framework Library


System.Web
Services
Description

UI
HtmlControls

Discovery

WebControls

System.Windows.Forms
Design

Protocols

ComponentModel

System.Drawing

Caching

Security

Drawing2D

Printing

Configuration

SessionState

Imaging

Text

System.Data

System.Xml

OleDb

SqlClient

XSLT

Common

SQLTypes

XPath

Serialization

System
Collections

IO

Security

Runtime
InteropServices

Configuration

Net

ServiceProcess

Diagnostics

Reflection

Text

Remoting

Globalization

Resources

Threading

Serialization

Base Framework
System
Collections

Security

Configuration

ServiceProcess

Diagnostics

Text

Globalization

Threading

IO

Runtime
InteropServices

Net
Reflection

Remoting

Resources

Serialization

Data And XML


System.Data
OleDb

SQLClient

Common

SQLTypes

System.Xml
XSLT
XPath

Serialization

ASP.NET
System.Web
Services
Description

UI
HtmlControls

Discovery

WebControls

Protocols
Caching

Security

Configuration

SessionState

Windows Forms
System.Windows.Forms
Design

ComponentModel

System.Drawing
Drawing2D

Printing

Imaging

Text

Framework, Languages, And Tools


VB

C++

C#

JScript

J#

Common Language Specification


Windows
Forms

ADO.NET and XML


Base Class Library
Common Language Runtime
Operating System

Visual Studio.NET

ASP.NET
Web Forms Web Services
Mobile Internet Toolkit

Languages
The .NET Platform is language neutral
All .NET languages are first class players
You can leverage your existing skills
Common language specification
Set of features guaranteed to be in all languages

We are providing
Visual Basic, C++, C#, J#, JScript
Third-parties are building
APL, COBOL, Delphi, Pascal, Eiffel, Haskell, ML,

Oberon, Perl, Python, Scheme, Smalltalk

Standardization
A subset of the .NET Framework and C#

submitted to ECMA
Adopted as International standards in

Dec. 2001
In the ISO fast-track process now
Co-sponsored with Intel, Hewlett-Packard
Common language infrastructure
Based on common language runtime and base

framework
Layered into increasing levels
of functionality

Additional Resources
Learn about Web development with .NET
DEV334: Introduction to Web Forms
Learn about client development with .NET
DEV350: Building Smart Client Applications

Learn about Network class libraries


DEV342: The .NET Framework Net Class Libraries
Get the Deep Technical Drill Down
DEV366: .NET Framework Under the Hood

Learn how to Architect an application


DEV310: Architecting Enterprise Applications with
Visual Studio .NET
DEV358: Architecting N-Tier .NET Applications
DEV402: Design Choices for Implementing Distributed
Applications in .NET

Summary
The .NET Framework
Dramatically simplifies development and

deployment
Unifies programming models
Provides robust and secure execution
environment
Supports multiple programming languages

Discussion

You might also like