MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0

Preview:

DESCRIPTION

 

Citation preview

MS Day EPITA

Visual Studio 2010 et.NET Framework 4

Thomas ContéArchitecteMicrosoft

Présentations

−Thomas Conté−EPITA promo 95 (SR)−Architecte DPE chez

Microsoft

− http://fr.linkedin.com/in/tomconte− http://twitter.com/tomconte− http://blogs.msdn.com/b/thomasconte/− http://www.facebook.com/#!/

thomas.conte− http://blogs.msdn.com/b/tconte/− http://dotpunk.wordpress.com/− http://www.conté.com/

Un peu d’histoire…

.NET Framework 1.0

− First public beta at PDC 2000− RTM: early 2002

− Introduced the world to “managed code”− GC, JIT− C#− Coherent Framework− XSP….ASP+…ASP.NET!− WinForms

.NET Framework 1.1

− RTM Early 2003− “managed code” mainstream

− Ships in Windows Server 2003− Rounds out features

.NET Framework 2.0

− RTM Late 2005− ASP.NET for the Masses

− Application Building Blocks− Parts, Authentication, Role

Management, etc− Visual Web Developer

− Client Development− ClickOnce!

.NET Framework 3.0− RTM end of 2006− Windows Presentation

Foundation− Vector Graphics, Media

and UI− Enters the age of UX

− Windows Communication Foundation− Unified messaging model

− Windows Workflow Foundation− Coordinating work with

durable applications

.NET Framework 3.5

− RTM End of 2007− Linq− ASP.NET AJAX− WCF/WF

− REST Services− Workflow Services

− Client− Sync− Client app services

.NET Framework 3.5 "SP1"

− RTM Mid 2008− ASP.NET Dynamic Data− ADO.NET

− Entity Framework− Data Services (Astoria)

− WCF− AtomPub ServiceDocuments

− Client− Client Profile− Performance

− Working set and startup time

.NET Framework Current "Layer Cake"

.NET Framework 2.0 + SP1

Windows Presentation Foundation

Windows Communication

Foundation

Windows Workflow

Foundation

Windows CardSpace

.NET Framework 3.0 + SP1

.NET Framework 3.5

LINQWF & WCF

EnhancementsAdd-in

FrameworkAdditional

Enhancements

.NET Framework 3.5 + SP1

Dynamic DataEntity

Framework Data Services

Un peu d’histoire…

.NET 1.0 .NET 1.1 .NET 2.0

3.0

3.5

.NET 4

2002 2003 2008 CTP2005-08

CLR 1.0 CLR 1.1 CLR 2.0 CLR 4

SP1

Applications Client

WPF 4MEF

Applications Web

Web Forms 4AJAX 4

Client/Server

WCF 4

Les Bases…Parallel Computing

Task Parallel LibraryParallel LINQ

Data Access

Entity Framework 4Data Services 1.5

Runtime

DLR IntegrationType EquivalenceIn-Process SxS

Web Forms 4 - Client ID

1) User Control (No ID)

2) User Control (“HeaderForm”)

Control Hierarchy3) Drop Down List (“States”)

Resulting Client IDs:1) ctl002) ctl00_HeaderForm3) ctl00_HeaderForm_States

Web Forms 4 - Routing

Request:Products/Bikes

ASP.NET Routing

Route:Product/{name} -> Product.aspx

WebForms Page

File Name:Product.aspx

Route Values:Name = “Bikes”

Response

ASP.NET Web Forms 4Client Id / Routing

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. Unknown

Client ApplicationsWPF 4 DataGrid / MEF

Entity Framework 4

− Model-First

− POCO

− Lazy Loading

− Foreign Keys

ADO.NET Data Services 1.5

− Server Enhancements− Row count− Server-side paging− Friendly feeds− BLOB streams

− Client Enhancements− Row Count− WPF/SL data binding

ADO.NET Data ServicesRow Count and

Server-Side Paging

Parallel Computing InitiativeAvant:

Horloges plus rapides

Maintenant:Plus de coeurs

Fini de rigoler!

The Parallel Computing Initiative

Letting the brightest developers solve business problems, not concurrency problems.

”Concurrency for the masses”

Parallel Computing with .NET 4

1. Task Parallel Library (TPL)

2. Parallel LINQ (PLINQ)

3. Coordination Data Structures (CDS)

4. 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 ComputingParallel LINQ (PLINQ)

Common Language Runtime

Statically-Typed

C#VB

RubyPython

Dynamically-Typed

Why the DLR?

Common Language Runtime

Statically-Typed

C#VB

RubyPython

Dynamically-Typed

Dynamic Language Runtime

Why the DLR?

PythonBinder

RubyBinder

COMBinder

JScriptBinder

ObjectBinder

.NET Dynamic Programming

Dynamic Language Runtime

Expression TreesDynamic Dispatch

Call Site Caching

IronPython

IronRuby C# VB.NET Others…

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

DLR Integration

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 4Type Equivalence

.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 CompatibilityHang 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

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

Visual Studio 2010 Training Kit− Download at

http://tinyurl.com/vs2010trainingkit

Windows Phone 7

Silverlight

Rapid creation of visually stunning

apps

Modern application UI framework &

runtime

METRO themed UI controls, defined in XAML

XAML, C#, HTML & JavaScript

Rich media support

500,000 developers spanning Windows and Web

Developer tools

The simplest way to build business applications

for the desktop and cloud.

http://www.microsoft.com/visualstudio/en-us/lightswitch

Data

Screens

+ =Business

Applications

ETUDIANTS.MS Les initiatives de Microsoft pour les étudiants

SUR LE WEBBons plans / Réductions spéciales étudiants Windows 7 à 35€ Office 2010 à 69€ Souris et Clavier Arc XBOX (et bientôt Kinect) Plus de 20 logiciels en

téléchargement gratuit : OneNote, Project, …

Toutes les infos pour trouver le job ou stage de vos rêves Plus de 150 offres de stages

et apprentissages en Vente, Technique et Marketing

Offres d’emploi du programme MACH pour jeunes diplômés

Conseils de la RH Témoignages de

Microsoftees et fiches métierToutes les ressources pour

monter vos projets Démo des projets étudiants sur pc, web,

mobile et dans le cloud Conseils et outils pour démarrer vos projets Découverte des projets de Microsoft Research

Gagnez un voyage à New York grâce au concours Imagine Cup Concours international 5 catégories : Digital Media,

Software Design, Game Design, IT Challenge, Embedded Development

Plus de 100 000€ à gagner

POUR NE RIEN MANQUER…

http://www.facebook.com/AfterClassMicrosoft

http://twitter.com/EtudiantsMS

La newsletter etudiants.ms

Recommended