SlideShare une entreprise Scribd logo
1  sur  44
Novidades do .NET Framework 4 e C# 4.0 “ Keep it simple”
Quem sou? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Contatos ,[object Object],[object Object],[object Object],[object Object]
Novidades não faltam ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object]
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
The .NET Framework WPF Win Forms DLR ASP.NET WCF And more! LINQ Base Class Libraries The CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder
Code Contract ,[object Object],[object Object],[object Object]
Code Contract ,[object Object]
Code Contract
Code Contract
Managed Extensibility Framework? ,[object Object]
The Problem… Original Software Development Software Maintenance
Open/Closed Principle ,[object Object]
[object Object]
 
The Parallel Computing Initiative ,[object Object],[object Object]
Parallel Computing with .NET 4 ,[object Object],[object Object],[object Object],[object Object]
Parallel LINQ ,[object Object],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;
Parallel Static Class
Parallel Static Class
Threading Task
Why the DLR? 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
.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…
Dynamically Typed Objects Calculator  calc = GetCalculator(); int  sum = calc.Add(10, 20); object  calc = GetCalculator(); Type  calcType = calc.GetType(); object  res = calcType.InvokeMember( &quot;Add&quot; , BindingFlags.InvokeMethod,  null , new   object [] { 10, 20 }); int  sum = Convert.ToInt32(res); ScriptObject  calc = GetCalculator(); object  res = calc.Invoke( &quot;Add&quot; , 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
.NET Framework Compatibility
.NET Framework Compatibility ,[object Object],[object Object],[object Object]
.NET Framework Compatibility ,[object Object],[object Object],[object Object]
CLR 2 - Existing Side-By-Side Host Process (i.e. Outlook) 1.1 add-in .NET 1.1 .NET 2.0 2.0 add-in 3.0 3.5 3.0 add-in 3.5 add-in
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
NOVIDADES DO C# 4.0
The Evolution of C# C# 1.0 C# 2.0 C# 3.0 Managed Code Generics LINQ C# 4.0 Dynamic
New C# 4.0 Features ,[object Object]
New C# 4.0 Features ,[object Object]
Covariance
Contravariance
Dinamismo em C#
Tipo dynamic ,[object Object],[object Object]
ExpandoObject ,[object Object]
DynamicObject ,[object Object]
Contatos ,[object Object],[object Object],[object Object],[object Object]
Dúvidas?
Obrigado!!!

Contenu connexe

Tendances

ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
Aberla
 
Compiler.design.in.c.docs
Compiler.design.in.c.docsCompiler.design.in.c.docs
Compiler.design.in.c.docs
Abid Syed
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
rahulsahay19
 
OpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source SoftwareOpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source Software
Alexandro Colorado
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 

Tendances (20)

GraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMSGraphQL APIs is with eZ Platform, a Symfony CMS
GraphQL APIs is with eZ Platform, a Symfony CMS
 
What's coming in c# 9.0
What's coming in c# 9.0What's coming in c# 9.0
What's coming in c# 9.0
 
What's Coming in C# 9.0
What's Coming in C# 9.0What's Coming in C# 9.0
What's Coming in C# 9.0
 
Codename: Roslyn
Codename: RoslynCodename: Roslyn
Codename: Roslyn
 
Domain Specific Languages and C++ Code Generation
Domain Specific Languages and C++ Code GenerationDomain Specific Languages and C++ Code Generation
Domain Specific Languages and C++ Code Generation
 
Onivim 2: Re-architecting for Performance
Onivim 2: Re-architecting for PerformanceOnivim 2: Re-architecting for Performance
Onivim 2: Re-architecting for Performance
 
How to Choose a Programming Language
How to Choose a Programming LanguageHow to Choose a Programming Language
How to Choose a Programming Language
 
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
ESEconf2011 - Freixa Vidal Roger: "Oracle's Java Strategy"
 
Compiler.design.in.c.docs
Compiler.design.in.c.docsCompiler.design.in.c.docs
Compiler.design.in.c.docs
 
Florentin Picioroaga - C++ by choice
Florentin Picioroaga - C++ by choiceFlorentin Picioroaga - C++ by choice
Florentin Picioroaga - C++ by choice
 
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
10/29 Austin Ansible MeetUp - AnsibleFest Talk & Extending Ansible
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Hidden Dragons of CGO
Hidden Dragons of CGOHidden Dragons of CGO
Hidden Dragons of CGO
 
Obop 210 lecture 2 python documentation
Obop 210 lecture 2 python documentationObop 210 lecture 2 python documentation
Obop 210 lecture 2 python documentation
 
Automatic image moderation in classifieds
Automatic image moderation in classifiedsAutomatic image moderation in classifieds
Automatic image moderation in classifieds
 
Comparison between python and c++
Comparison between python and c++Comparison between python and c++
Comparison between python and c++
 
Benefits of Extensions
Benefits of ExtensionsBenefits of Extensions
Benefits of Extensions
 
OpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source SoftwareOpenOffice++: Improving the Quality of Open Source Software
OpenOffice++: Improving the Quality of Open Source Software
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
Instant Upgrades with Rector [PHP Day @ Verona, Italy, 2019 05]
Instant Upgrades with Rector [PHP Day @ Verona, Italy, 2019 05]Instant Upgrades with Rector [PHP Day @ Verona, Italy, 2019 05]
Instant Upgrades with Rector [PHP Day @ Verona, Italy, 2019 05]
 

Similaire à [CLPE] Novidades do .net Framework 4.0

Lap around .net 4
Lap around .net 4Lap around .net 4
Lap around .net 4
Abdul Khan
 
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
Thomas Conté
 
Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010
Satish Verma
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi
Spiffy
 

Similaire à [CLPE] Novidades do .net Framework 4.0 (20)

Lap around .net 4
Lap around .net 4Lap around .net 4
Lap around .net 4
 
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
 
Visual Studio .NET2010
Visual Studio .NET2010Visual Studio .NET2010
Visual Studio .NET2010
 
.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi.NET 4 Demystified - Sandeep Joshi
.NET 4 Demystified - Sandeep Joshi
 
What’s New and Hot in .NET 4.0
What’s New and Hot in .NET 4.0What’s New and Hot in .NET 4.0
What’s New and Hot in .NET 4.0
 
Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0Overview of VS2010 and .NET 4.0
Overview of VS2010 and .NET 4.0
 
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for DevelopersMSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
MSDN Presents: Visual Studio 2010, .NET 4, SharePoint 2010 for Developers
 
Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010Entity Framework 4 In Microsoft Visual Studio 2010
Entity Framework 4 In Microsoft Visual Studio 2010
 
Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
Overview Of Parallel Development - Ericnel
Overview Of Parallel Development -  EricnelOverview Of Parallel Development -  Ericnel
Overview Of Parallel Development - Ericnel
 
.net Framework
.net Framework.net Framework
.net Framework
 
Mark Rendle ".NET Is Dead. Long Live .NET!"
Mark Rendle ".NET Is Dead. Long Live .NET!"Mark Rendle ".NET Is Dead. Long Live .NET!"
Mark Rendle ".NET Is Dead. Long Live .NET!"
 
Revealing C# 5
Revealing C# 5Revealing C# 5
Revealing C# 5
 
Porting Projects to .NET 5
Porting Projects to .NET 5Porting Projects to .NET 5
Porting Projects to .NET 5
 
Part i
Part iPart i
Part i
 
C# advanced topics and future - C#5
C# advanced topics and future - C#5C# advanced topics and future - C#5
C# advanced topics and future - C#5
 
Bn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot netBn1001 demo ppt advance dot net
Bn1001 demo ppt advance dot net
 
.Net overview
.Net overview.Net overview
.Net overview
 
Accelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flexAccelerating Software Development with NetApp's P4flex
Accelerating Software Development with NetApp's P4flex
 
Platform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - FinalPlatform as a Runtime - PaaR QCON 2024 - Final
Platform as a Runtime - PaaR QCON 2024 - Final
 

Plus de Felipe Pimentel

Windows Phone 7 para um público não TI
Windows Phone 7 para um público não TIWindows Phone 7 para um público não TI
Windows Phone 7 para um público não TI
Felipe Pimentel
 
Proposta planos digaonde
Proposta planos digaondeProposta planos digaonde
Proposta planos digaonde
Felipe Pimentel
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011
Felipe Pimentel
 
Parceria DotNetArchitects PE com TWM
Parceria DotNetArchitects PE com  TWM Parceria DotNetArchitects PE com  TWM
Parceria DotNetArchitects PE com TWM
Felipe Pimentel
 
[CLPE] Visual Studio 2010
[CLPE] Visual Studio 2010[CLPE] Visual Studio 2010
[CLPE] Visual Studio 2010
Felipe Pimentel
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2
Felipe Pimentel
 
[CLPE] Novidades do Asp.net 4
[CLPE] Novidades do Asp.net 4[CLPE] Novidades do Asp.net 4
[CLPE] Novidades do Asp.net 4
Felipe Pimentel
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
Felipe Pimentel
 
[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4
Felipe Pimentel
 
TDD (Test Driven Development)
TDD (Test Driven Development)TDD (Test Driven Development)
TDD (Test Driven Development)
Felipe Pimentel
 

Plus de Felipe Pimentel (16)

Windows Phone 7 para um público não TI
Windows Phone 7 para um público não TIWindows Phone 7 para um público não TI
Windows Phone 7 para um público não TI
 
Desenvolvendo com Silverlight para WP7 Mango [Update]
Desenvolvendo com Silverlight para WP7 Mango [Update]Desenvolvendo com Silverlight para WP7 Mango [Update]
Desenvolvendo com Silverlight para WP7 Mango [Update]
 
Maratona Windows Phone 7
Maratona Windows Phone 7Maratona Windows Phone 7
Maratona Windows Phone 7
 
Proposta planos digaonde
Proposta planos digaondeProposta planos digaonde
Proposta planos digaonde
 
Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011 Silverlight no MIC Summer 2011
Silverlight no MIC Summer 2011
 
Mvc 3 & razor
Mvc 3 & razorMvc 3 & razor
Mvc 3 & razor
 
MVVM
MVVMMVVM
MVVM
 
Parceria DotNetArchitects PE com TWM
Parceria DotNetArchitects PE com  TWM Parceria DotNetArchitects PE com  TWM
Parceria DotNetArchitects PE com TWM
 
[CLPE] Visual Studio 2010
[CLPE] Visual Studio 2010[CLPE] Visual Studio 2010
[CLPE] Visual Studio 2010
 
[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2[CLPE] Novidades do Asp.net mvc 2
[CLPE] Novidades do Asp.net mvc 2
 
[CLPE] Novidades do Asp.net 4
[CLPE] Novidades do Asp.net 4[CLPE] Novidades do Asp.net 4
[CLPE] Novidades do Asp.net 4
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4[CLPE] Novidades do Entity Framework 4
[CLPE] Novidades do Entity Framework 4
 
ASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVCASP.NET WebForms x ASP.NET MVC
ASP.NET WebForms x ASP.NET MVC
 
Windows Phone 7
Windows Phone 7Windows Phone 7
Windows Phone 7
 
TDD (Test Driven Development)
TDD (Test Driven Development)TDD (Test Driven Development)
TDD (Test Driven Development)
 

[CLPE] Novidades do .net Framework 4.0

  • 1. Novidades do .NET Framework 4 e C# 4.0 “ Keep it simple”
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. 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
  • 7. The .NET Framework WPF Win Forms DLR ASP.NET WCF And more! LINQ Base Class Libraries The CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder
  • 8.
  • 9.
  • 12.
  • 13. The Problem… Original Software Development Software Maintenance
  • 14.
  • 15.
  • 16.  
  • 17.
  • 18.
  • 19.
  • 23. Why the DLR? Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed
  • 24. Why the DLR? Common Language Runtime Statically-Typed C# VB Ruby Python Dynamically-Typed Dynamic Language Runtime
  • 25. .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…
  • 26. Dynamically Typed Objects Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); Type calcType = calc.GetType(); object res = calcType.InvokeMember( &quot;Add&quot; , BindingFlags.InvokeMethod, null , new object [] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke( &quot;Add&quot; , 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
  • 28.
  • 29.
  • 30. CLR 2 - Existing Side-By-Side Host Process (i.e. Outlook) 1.1 add-in .NET 1.1 .NET 2.0 2.0 add-in 3.0 3.5 3.0 add-in 3.5 add-in
  • 31. 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
  • 33. The Evolution of C# C# 1.0 C# 2.0 C# 3.0 Managed Code Generics LINQ C# 4.0 Dynamic
  • 34.
  • 35.
  • 39.
  • 40.
  • 41.
  • 42.