Upload
pramod-chavan
View
372
Download
2
Tags:
Embed Size (px)
Citation preview
Visual Studio 2010and
.NET Framework 4
Training Workshop
Visual Studio 2010and
.NET Framework 4
Training Workshop
What’s New In.NET Framework 4
What’s New In.NET Framework 4
NameTitleOrganizationEmail
A Look Back…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?What Is The .NET Framework?
Base Class Libraries
The CLRJIT & NGEN
Garbage Collector
Security Model
Exception Handling
Loader & Binder
WPFWin
FormsDLR
ASP.NET
WCFAnd
more!LINQ
Base Class Library Improvements
Base Class Library Improvements
NumericsBigInteger, Complex
Data StructuresTupleSortedSet<T>, ISet<T>
I/OMemory-Mapped FileUnified Cancellation Model
The goal of CLR 4The goal of CLR 4
Working Better Together…
Faster…
With Fewer Bugs…
In-Proc SxS
Native/Managed InteropDLR Integration
Managed Extensibility Framework
Threading Parallel Extensions
Garbage Collection Profiling
Code Contracts DebuggingCorrupted State Exceptions
The goal of CLR 4The goal of CLR 4
Working Better Together…
Faster…
With Fewer Bugs…
In-Proc SxS
DLR Integration
Parallel Extensions
Garbage Collection Profiling
Code Contracts DebuggingCorrupted State Exceptions
Managed Extensibility Framework
Threading
Native/Managed Interop
Design By ContractDesign 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?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?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?Why Contracts?
Just because something compiles, doesn’t mean it works…
A Contract contains…A Contract contains…
Pre-conditions - must be true beforepublic Rational(int numerator, int denominator){Contract.Requires(denominator > 0); …}
Post-conditions -must be true afterpublic string GetPassword(){Contract.Ensures(Contract.Result<string>() != null); … return password;}
A Contract contains…A Contract contains…
Invariants - must always be true[ContractInvariantMethod]protected void ObjectInvariant(){Contract.Invariant(denominator > 0);}
Code ContractsCode Contracts
Type EquivalenceType 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!However!
Go Away, PIA!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-PIANo-PIA
Existing Side-By-Side (SxS)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)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.0The goal of CLR 4.0
Working Better Together…
Faster…
With Fewer Bugs…
In-Proc SxS
Native/Managed InteropDLR Integration
Managed Extensibility Framework
Threading Parallel Extensions
Garbage Collection Profiling
Code Contracts DebuggingCorrupted State Exceptions