Download presentation
Presentation is loading. Please wait.
Published byJulie Powers Modified over 9 years ago
1
Lap Around the.NET Framework 4 NameTitleCompany
2
A Look Back….NET 1.0.NET 1.1.NET 2.0 3.0 3.5.NET 4 200220032008 CTP2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4 SP1
3
The.NET Framework Base Class Libraries The CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder WPF Win Forms DLR ASP.NE T WCF And more! LINQ
4
Client Applications WPF 4 MEF Web Applications Web Forms 4 AJAX 4 Client/Server WCF 4
5
The Building Blocks… Parallel Computing Task Parallel Library Parallel LINQ Data Access Entity Framework 4 Data Services 1.5 Runtime DLR Integration Type Equivalence In-Process SxS
6
Web Forms 4 - Client ID 1) User Control (No ID) 2) User Control (“HeaderForm”) Control Hierarchy 3) Drop Down List (“States”) Resulting Client IDs: 1)ctl00 2)ctl00_HeaderForm 3)ctl00_HeaderForm_States
7
Web Forms 4 - Routing Request: Products/Bikes Request: Products/Bikes ASP.NET Routing Route: Product/{name} -> Product.aspx ASP.NET Routing Route: Product/{name} -> Product.aspx WebForms Page File Name: Product.aspx Route Values: Name = “Bikes” WebForms Page File Name: Product.aspx Route Values: Name = “Bikes” Response
8
ASP.NET WEB FORMS 4 CLIENT ID / ROUTING
9
AJAX 4 - Client Templates Server-Side (WebForms): Client-Side {{ Name }}
10
AJAX 4 - DataContext * DataContext includes change tracking automatically ASMX WCF ADO.NET Data Services ADO.NET Data Services ASP.NET MVC JsonResult ASP.NET MVC JsonResult Etc. 1. Request 2. JSON Data Data Context Data Context 3. Modify Data 4. Save Data
11
ASP.NET AJAX 4 CLIENT TEMPLATES / DATACONTEXT
12
WPF 4 Data Grid Ribbon Multi-Touch Windows 7 Enhancements
13
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
14
Open/Closed Principle Software entities should be open for extension, but closed for modification.
15
Known vs. Unknown
16
CLIENT APPLICATIONS WPF 4 DATAGRID / MEF
17
Entity Framework 4 Model-First POCO Lazy Loading Foreign Keys
18
A lot of new for WF/WCF 4 XAML-only workflows are the new default Unified model between WF, WCF, and WPF Extended base activity library Simplified WF programming model Support for arguments, variables, expressions Major improvements to WCF integration Runtime and designer improvements Service discovery for WCF Hosting & management via "Dublin“
19
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
20
ADO.NET DATA SERVICES ROW COUNT AND SERVER- SIDE PAGING
21
The Parallel Computing Initiative Letting the brightest developers solve business problems, not concurrency problems. “Concurrency for the masses”
22
Parallel Computing with.NET 4 1.Task Parallel Library (TPL) 2.Parallel LINQ (PLINQ) 3.Coordination Data Structures (CDS) 4.System.Threading Improvements
23
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; 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;
24
PARALLEL COMPUTING PARALLEL LINQ (PLINQ)
25
Why the DLR? Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed
26
Why the DLR? Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed Dynamic Language Runtime
27
.NET Dynamic Programming Python Binder Ruby Binder COM Binder JScript Binder Object Binder Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching IronPython IronRuby C# VB.NET Others…
28
Dynamically Typed Objects Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); 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); 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); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Statically typed to be dynamic Dynamic method invocation Dynamic conversion
29
DLR INTEGRATION
30
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
31
However! Primary Interop Assemblies cause many pain points…
32
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
33
CLR 4 TYPE EQUIVALENCE
34
.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
35
.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!netfxcf@microsoft.com
36
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
37
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
38
CLR 4 IN-PROCESS SIDE-BY-SIDE
39
QUESTIONS?
40
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks 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 date 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 information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.