Visual Studio 2010 and .NET Framework 4 Training Workshop

abashedwhimsicalSoftware and s/w Development

Nov 2, 2013 (3 years and 7 months ago)

76 views

Visual
Studio 2010

and

.NET Framework 4


Training Workshop

What’s New In

.NET Framework 4

Name

Title

Organization

Email

A Look Back…

.NET 1.0

.NET 1.1

.NET 2.0

3.0

3.5

.NET 4

2002

2003

2008 CTP!

2005
-
08

CLR 1.0

CLR 1.1

CLR 2.0

CLR 4

SP1

What Is The .NET Framework?

Base Class Libraries

The CLR

JIT &
NGEN

Garbage
Collector

Security
Model

Exception
Handling

Loader &
Binder

WPF

Win
Forms

DLR

ASP.NET

WCF

And
more!

LINQ

Base Class Library Improvements

Numerics

BigInteger
, Complex


Data Structures

Tuple

SortedSet
<T>,
ISet
<T>


I/O

Memory
-
Mapped File

Unified Cancellation Model

The goal of CLR 4

Working Better Together…




Faster…




With Fewer Bugs…

In
-
Proc
SxS

Native/Managed
Interop

DLR Integration

Managed Extensibility Framework

Threading

Parallel Extensions

Garbage Collection

Profiling

Code Contracts

Debugging

Corrupted

State Exceptions

The goal of CLR 4

Working Better Together…




Faster…




With Fewer Bugs…

In
-
Proc
SxS

DLR Integration

Parallel Extensions

Garbage Collection

Profiling

Code Contracts

Debugging

Corrupted

State Exceptions

Managed Extensibility Framework

Threading

Native/Managed
Interop

Design By Contract

Code Contracts

introduce a way to
specify
contractual information

that is not represented by a
method or type’s signature alone.

What is a Contract?

A
contract

is…



an
exchange of promises

between
two or more parties
to do, or
refrain from doing, an act

which is
enforceable in a court of law.

-

Wikipedia

Why Contracts?

There
upset about that
?
But

its

the
best gift in the
hole
world.


They’re

upset about that? But

it’s

the
best gift in the
whole

world.

Why Contracts?

Just because something compiles,
doesn’t mean it works…

A Contract contains…

Pre
-
conditions

-

must be true before


public Rational(
int

numerator,
int

denominator)

{

Contract.Requires
(denominator > 0);




}


Post
-
conditions

-
must
be true after


public string
GetPassword
()

{

Contract.Ensures
(
Contract.Result
<string>() != null);





return password;

}


A Contract contains…

Invariants

-

must always be true


[
ContractInvariantMethod
]

protected void
ObjectInvariant
()

{

Contract.Invariant
(denominator > 0);

}

Code Contracts

Type Equivalence

Interop

Assemblies translate between
managed code
and
COM


For each interface,
struct
,
enum
,

delegate, and member, contains a

managed equivalent with marshalling data

Primary
Interop

Assemblies
cause
many pain points…

However!

Go Away, PIA!

1.
Compilers
embed

the portions of the
interop

assemblies that the add
-
ins
actually use


2.
Runtime
ensures
the embedded
definitions of these types are
considered equivalent


No
-
PIA

Existing Side
-
By
-
Side (
SxS
)

.NET 2.0

2.0
add
-
in

3.0

3.5

Host Process (i.e. Outlook)

3.0
add
-
in

3.5
add
-
in

1.1
add
-
in

.NET 1.1

In
-
Process Side
-
By
-
Side (
SxS
)

.NET 2.0

.NET 4.0

2.0
add
-
in

3.0

3.5

Host Process (i.e. Outlook)

3.0
add
-
in

3.5
add
-
in

4.0
add
-
in

The goal of CLR 4.0

Working Better Together…




Faster…




With Fewer Bugs…

In
-
Proc
SxS

Native/Managed
Interop

DLR Integration

Managed Extensibility Framework

Threading

Parallel Extensions

Garbage Collection

Profiling

Code Contracts

Debugging

Corrupted

State Exceptions