Lap around .net 4
-
Upload
abdul-khan -
Category
Education
-
view
692 -
download
0
description
Transcript of Lap around .net 4
A Tour of .NET 4Scott Hanselman
Principal Program Manager [email protected] @shanselman on Twitter
Cost Cuttingin VS 2010
Layoffs.
Layoffs.
Layoffs.
Layoffs.
Layoffs.
A Look Back…
.NET 1.0 .NET 1.1 .NET 2.0
3.0
3.5
.NET 4
2002 2003 2010 RTM2005-08
CLR 1.0 CLR 1.1 CLR 2.0 CLR 4
SP1
<configuration> <system.web> <compilation debug="true” targetFramework="4.0" /> </system.web></configuration>
Web Forms 4 - Client ID
Web Forms 4 - Client ID
Clean HTML
Ability to specify client IDs on controlsImproves client script and CSS supportClientIdMode = Static, Predictable, Auto, Inherit
CSS rendering supportRemove the need to use CSS adaptersDefer to CSS and bypass existing style propertiesSupport non-table-based HTML rendering
ViewState improvementsDisable at app/page level, enable per control
Core ASP.NET Improvements
Cache ExtensibilityEnable disk based cachingIntegrate with new “Velocity” distributed cache
Automatically Pre-Start ApplicationsEnable applications to precache/load data
Perf Monitoring on a per-application basisSyntax for automatically HTML encoding
<%: Message %>
Deployment
End to end packaging and deploying of web applications Enables customized configurations
Supports databases, SSL certs, custom registry entries, file ACLs, etcWorks great with hosted environments
ASP.NET Web Forms 4Client Id / Routing
demo
Microsoft AJAX CDN
Free CDN hosting of AJAX library scriptsASP.NET AJAX 4jQuery and jQuery Validation
<script src=“http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js” type="text/javascript“ />
Built-in support with <asp:scriptmanager>
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.NETData Services
ASP.NET MVCJsonResult
Etc.
1. Request
2. JSON DataData
Context
3. Modify Data 4. Save Data
* DataContext includes change tracking automatically
ASP.NET AJAX 4Client Templates/ Odata
demo
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.
Client ApplicationsWPF 4 DataGrid / MEF
demo
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 and PFX
demo
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
RuntimeBinder
RuntimeBinder
.NET Dynamic Programming
Dynamic Language Runtime
Expression Trees Dynamic Dispatch Call Site Caching
IronPython IronRuby C# VB.NET Others…
DLR IntegrationDynamic for all!
demo
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
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
CLR 4Type Equivalence
demo
.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
CLR 2 - Existing Side-By-Side
Host Process (i.e. Outlook)
.NET 2.0
2.0 add-in
3.03.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.03.5
Host Process (i.e. Outlook)
3.0 add-in
3.5 add-in
4.0 add-in
CLR 4In-Process Side-By-Side
demo
© 2009 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.