A Whirlwind Tour of the Microsoft. NET Framework 4

gayheadtibburInternet and Web Development

Feb 5, 2013 (4 years and 5 months ago)

306 views

Scott Hanselman

Principal Program Manager

Microsoft

DTL303

Send
#
scottha

is cool

#
scottha

is not cool

How am I doing?

Send
#
scottha

hello

Let me know

you’re here!

This session on Twitter

What This Is


What This Is NOT


If I’m Lucky


A Look Back


.NET 1.0

.NET 1.1

.NET 2.0

3.0

3.5

.NET 4

2002

2003

2009 CTP

2005
-
08

CLR 1.0

CLR 1.1

CLR 2.0

CLR 4

SP1

Web Forms 4
-

Client ID

Web Forms 4
-

Client ID

ASP.NET Web Forms 4


Client Id / Routing

Scott
Hanselman

Principal Program Manager

Microsoft

AJAX 4
-

Client Templates

Server
-
Side (
WebForms
):

<
ItemTemplate
>


<
li
>
<%#
Eval
("Name") %>
</
li
>

</
ItemTemplate
>

Client
-
Side

<
ul

class="
sys
-
template
">


<
li
>
{{ Name }}
</
li
>

</
ul
>


AJAX 4
-

DataContext

ASMX

WCF

ADO.NET

Data

Services

ASP.NET MVC

JsonResult

Etc.

1. Request

2. JSON Data

Data

Context

3. Modify

Data

4. Save Data

*
DataContext

includes change tracking automatically

ASP.NET AJAX 4


Client Templates /
DataContext

Scott
Hanselman

Principal Program Manager

Microsoft


WPF 4

Data Grid

Ribbon

Multi
-
Touch

Windows 7 Enhancements


Managed Extensibility Framework?


The
Managed Extensibility Framework
(MEF)
is a
new library

in the .NET Framework that
enables greater reuse of applications and
components. Using MEF, .NET applications can
make the shift from being statically compiled
to
dynamically composed


Open/Closed Principle

Software entities should be

open for extension
,

but
closed for modification
.


Known

vs.
Un
known

Client Applications


WPF 4
DataGrid

/ MEF

Scott
Hanselman

Principal Program Manager

Microsoft


The Parallel Computing Initiative

Letting the
brightest developers

solve
business

problems,

not concurrency

problems.

“Concurrency

for the masses”

Parallel Computing with .NET 4

Task Parallel Library (TPL)

Parallel LINQ (PLINQ)

Coordination Data Structures (CDS)

System.Threading Improvements

Parallel LINQ


Parallel LINQ (PLINQ) enables developers to
easily

leverage

manycore

with a
minimal
impact
to existing LINQ programming model

var

q = from p in people




where
p.Name

==
queryInfo.Name

&&


p.State

==
queryInfo.State

&&


p.Year

>=
yearStart

&&


p.Year

<=
yearEnd



orderby

p.Year

ascending




select p;

.
AsParallel
()

Parallel Computing


Parallel LINQ (PLINQ
)

Scott
Hanselman

Principal Program Manager

Microsoft

Common Language Runtime

Statically
-
Typed

C#

VB

Ruby

Python

Dynamically
-
Typed

Why the DLR?

Common Language Runtime

Statically
-
Typed

C#

VB

Ruby

Python

Dynamically
-
Typed

Dynamic Language Runtime

Why the DLR?

Python

Binder

Ruby

Binder

COM

Binder

Runtime

Binder

Runtime

Binder

.NET Dynamic Programming

Dynamic Language Runtime

Expression Trees

Dynamic Dispatch

Call Site Caching

Iron

Python

IronRuby

C#

VB.NET

Others…

DLR Integration

Scott
Hanselman

Principal Program Manager

Microsoft

Dynamically Typed Objects

Calculator

calc =
GetCalculator
();

int

sum =
calc.Add
(10, 20);

object

calc =
GetCalculator
();

Type

calcType

=
calc.GetType
();

object

res =
calcType.InvokeMember
(
"Add"
,


BindingFlags.InvokeMethod
,
null
,


new

object
[] { 10, 20 });

int

sum = Convert.ToInt32(res);

ScriptObject

calc =
GetCalculator
();

object

res =
calc.Invoke
(
"Add"
, 10, 20);

int

sum =
Convert
.ToInt32(res);

dynamic

calc =
GetCalculator
();

int

sum =
calc.Add
(10, 20);

Statically

typed to be
dynamic

Dynamic method
invocation

Dynamic
conversion

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

However!


Primary
Interop

Assemblies
cause

many pain points…

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


CLR 4


Type Equivalence

Scott
Hanselman

Principal Program Manager

Microsoft



.NET Framework Compatibility


.NET 4.0 is a highly compatible release

.NET 4.0 does not auto

roll forward

You must add a configuration file with a specific
switch to get 3.5 apps to run on 4.0

.NET Framework Compatibility

Hang on… if 4.0 is compatible,

why not run 3.5 apps automatically
on 4.0?

The BEST thing is always to prefer
running on the version of the
framework you built against

Contact
netfxcf@microsoft.com

and
submit your app for testing!

CLR 2
-

Existing Side
-
By
-
Side

Host Process (i.e. Outlook)

.NET 2.0

2.0
add
-
in

3.0

3.5

3.0
add
-
in

3.5
add
-
in

1.1
add
-
in

.NET 1.1

CLR 4
-

In
-
Process Side
-
By
-
Side

.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

CLR 4 In
-
Process Side
-
By
-
Side

Scott
Hanselman

Principal Program Manager

Microsoft

Related Content

Breakout Sessions

WUX201


ASP.NET Web Forms 4

WUX315


ASP.NET AJAX 4

DTL06
-
INT


Parallel Computing

DTL328


Managed Extensibility Framework

WUX204


WPF 4

SOA401


WorkFlow

4

DTL401


Entity Framework 4

www.microsoft.com/teched


Sessions On
-
Demand & Community

http://microsoft.com/technet


Resources for IT Professionals

http://microsoft.com/msdn


Resources for Developers

www.microsoft.com/learning


Microsoft Certification & Training Resources

Resources

Required Slide

Speakers,

TechEd 2009 is not
producing

a DVD. Please
announce that

attendees can
access
session

recordings at TechEd
Online.

www.microsoft.com/learning

Microsoft Certification and Training
R
esources

Track Resources




Visit the DPR TLC for a chance to win a copy of Visual Studio Team Suite. Daily drawing
occurs every day in the TLC at 4:15pm. Stop by for a raffle ticket.




http://www.microsoft.com/visualstudio

http://www.microsoft.com/visualstudio/en
-
us/products/teamsystem/default.mspx


Please visit us in the TLC blue
area.


Complete an
evaluation on
CommNet

and
enter to win!

Required Slide

©
2009 Microsoft
Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademar
ks
and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the
dat
e of this presentation. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any informatio
n p
rovided after the date of this presentation.
MICROSOFT
MAKES NO WARRANTIES, EXPRESS,
IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Required Slide