SlideShare uma empresa Scribd logo
1 de 31
Visual Studio 2010 e C# 4.0 Carlos dos Santos cds@cds-software.com.br Blog: www.carloscds.net Twitter: @cdssoftware Microsoft MVP C# CDS Informática Ltda.  Microsoft Gold Certified Partner  Microsoft Visual Studio Team System Inner Circle Partner
Agenda Um pouco de história... Novidades do Visual Studio 2010 ObjetosTipadosDinamicamente ParâmetrosOpcionais e Nomeados Programação Paralela Entity Framework 4 WPF Silverlight
Um pouco de história… SP1 3.5 3.0 .NET 1.0 .NET 1.1 .NET 2.0 .NET 4 200213 de Fevereiro 2003 3 de Abril 2008 CTP 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4
O que é a plataforma .Net WPF Win Forms DLR ASP.NET WCF E muito mais! LINQ Base Class Libraries CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder
Quais são as novidades? Breakpoint Grouping Visual Enhancements Dynamic Data Tooling WPF-based Editor Breakpoint Labeling Call Hierarchy Improved WPF Tooling Historical Debugging Inline Call Tree Quick Search Concurrency Profiler Breakpoint Import/Export Document Map Margin Parallel Stacks Window Improved Multi-Monitor Parallel Tasks Window Extensible Test Runner Generate From Usage Highlight References Click-Once Enchacements for Office Web Deploy SharePoint Tooling Minidump Debugging JQueryIntellisense 64-bit Mixed-Mode HTML Snippets Web.config Transformation Code Contracts Parallel Extensions BigInteger Variance Annotations Tuples DLR SortedSet F# Memory Mapped Files Registry Improvements ,[object Object]
Resource Managed Improvements
Compression Improvements
PLINQ
Parallel Task
Velocity
WCF4
WF4
WPF4
ADO.NET Data Services 1.5
ASP.NET Ajax 4.0
ASP.NET MVC
ASP.NET WebForms 4.0
CLR4
C# 4.0
VB10
MEF
Entity Framework 4.0
MEF,[object Object]
Entendendo o Dynamic Tipossão “estaticamentetipadoscomodinâmicos” Tipo dinâmicos são System.Object (cuidado com boxing e unboxing) Tipos dinâmicos se propagam nas chamadas Tipo dinâmicos não possuem checagem em tempo de compilação e nem Intelisence
Como o Dynamic funciona: CLR COM Binder Expression Tree IronPython Binder Exe Compile Run Bind call C# Runtime Binder Dynamic Call Delegate DLR Cache …
ObjetosTipadosDinamicamente Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); TypecalcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, newobject[] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); Estaticamentetipadocomodinâmico dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Invocaçãodinâmica de método Conversãodinâmica
ObjetosTipadosDinamicamente Tipoem tempo de compilação:dynamic Tipoem tempo de execução:System.Int32 dynamic x = 1; dynamic y = "Hello"; dynamic z = newList<int> { 1, 2, 3 }; Quandooperandossãodynamic… ,[object Object]
Em tempo de execução, ostipossãosubtituídos
 O tipoestáticoresultantedaoperação é dynamic,[object Object]
ObjetosTipadosDinamicamente demo
ParâmetrosOpcionais e Nomeados Método principal publicStreamReaderOpenTextFile(     string path,     Encodingencoding, booldetectEncoding, intbufferSize); Overloads secundários publicStreamReaderOpenTextFile(     string path,     Encodingencoding, booldetectEncoding); publicStreamReaderOpenTextFile(     string path,     Encodingencoding); publicStreamReaderOpenTextFile(     string path); Chama o método principal com valores default

Mais conteúdo relacionado

Destaque

Apostila de sql server 2008
Apostila de sql server 2008Apostila de sql server 2008
Apostila de sql server 2008marcos0512
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioGeovani Ferreira Gonçalves
 
A Tributação do Comércio Electrónico
A Tributação do Comércio ElectrónicoA Tributação do Comércio Electrónico
A Tributação do Comércio ElectrónicoJL Saldanha Sanches
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIComunidade NetPonto
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosFelipe J. R. Vieira
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de umlaudiclerio
 
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)ETEC Monsenhor Antonio Magliano
 
Livro banco de_dados_volume_02
Livro banco de_dados_volume_02Livro banco de_dados_volume_02
Livro banco de_dados_volume_02CLEAN LOURENÇO
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosPortal_do_Estudante_SD
 
Biblioteca FEAUSP: tutorial bases de dados (maio 2015)
Biblioteca FEAUSP: tutorial bases de dados (maio 2015)Biblioteca FEAUSP: tutorial bases de dados (maio 2015)
Biblioteca FEAUSP: tutorial bases de dados (maio 2015)Biblioteca FEAUSP
 
Segurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de SegurançaSegurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de SegurançaGilberto Sudre
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLRildo (@rildosan) Santos
 

Destaque (18)

Apostila de sql server 2008
Apostila de sql server 2008Apostila de sql server 2008
Apostila de sql server 2008
 
Asp.net e c#
Asp.net e c#Asp.net e c#
Asp.net e c#
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Desenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual StudioDesenvolvimento de Aplicações com Visual Studio
Desenvolvimento de Aplicações com Visual Studio
 
A Tributação do Comércio Electrónico
A Tributação do Comércio ElectrónicoA Tributação do Comércio Electrónico
A Tributação do Comércio Electrónico
 
Uma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web APIUma Introdução a ASP.NET Web API
Uma Introdução a ASP.NET Web API
 
API - Interface de Programação de Aplicativos
API - Interface de Programação de AplicativosAPI - Interface de Programação de Aplicativos
API - Interface de Programação de Aplicativos
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
Visual Basic 2010 - Uma Aplicação com Banco de Dados (Controle de Despesas)
 
Tutorial proxy
Tutorial proxyTutorial proxy
Tutorial proxy
 
Livro banco de_dados_volume_02
Livro banco de_dados_volume_02Livro banco de_dados_volume_02
Livro banco de_dados_volume_02
 
Arquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidosArquitectura e modelos de sistemas distribuidos
Arquitectura e modelos de sistemas distribuidos
 
Biblioteca FEAUSP: tutorial bases de dados (maio 2015)
Biblioteca FEAUSP: tutorial bases de dados (maio 2015)Biblioteca FEAUSP: tutorial bases de dados (maio 2015)
Biblioteca FEAUSP: tutorial bases de dados (maio 2015)
 
Segurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de SegurançaSegurança da Informação e Políticas de Segurança
Segurança da Informação e Políticas de Segurança
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Aula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da InformaçãoAula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da Informação
 
Desenhando Componentes de Software com UML
Desenhando Componentes de Software com UMLDesenhando Componentes de Software com UML
Desenhando Componentes de Software com UML
 

Semelhante a Visual Studio 2010 e C# 4

Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4CDS
 
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresNovidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresComunidade NetPonto
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkLuciano Condé
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoMarcius Brandão
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NETPedro Alves Jr.
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Ramon Durães
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...Rogério Moraes de Carvalho
 
Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4Rogério Moraes de Carvalho
 
C#4 – O que há de novo
C#4 – O que há de novoC#4 – O que há de novo
C#4 – O que há de novoGiovanni Bassi
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemRogério Moraes de Carvalho
 
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF CoreExplorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF CoreRogério Moraes de Carvalho
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Laís Vidal
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 

Semelhante a Visual Studio 2010 e C# 4 (20)

Novidades do .Net 4.0
Novidades do .Net 4.0Novidades do .Net 4.0
Novidades do .Net 4.0
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 
Novidades do CSharp 4.0
Novidades do CSharp 4.0Novidades do CSharp 4.0
Novidades do CSharp 4.0
 
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry PiresNovidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
Novidades do CSharp 4.0 - C. Augusto Proiete & Henrry Pires
 
Deep Dive sobre Entity Framework
Deep Dive sobre Entity FrameworkDeep Dive sobre Entity Framework
Deep Dive sobre Entity Framework
 
Framework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da DissertacaoFramework Entities - Apresentação da Defesa da Dissertacao
Framework Entities - Apresentação da Defesa da Dissertacao
 
Conhecendo a Plataforma .NET
Conhecendo a Plataforma .NETConhecendo a Plataforma .NET
Conhecendo a Plataforma .NET
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
Introdução ao ASP.NET 3.5 - Campus Party Brasil 2009
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
 
Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4Microsoft Community Launch 2010: .NET Framework 4
Microsoft Community Launch 2010: .NET Framework 4
 
C#4 – O que há de novo
C#4 – O que há de novoC#4 – O que há de novo
C#4 – O que há de novo
 
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvemASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
 
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF CoreExplorando o novo .NET multiplataforma:ASP.NET Core, .NET Core e EF Core
Explorando o novo .NET multiplataforma: ASP.NET Core, .NET Core e EF Core
 
Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012Aula 1 -_ambiente_visual_studio_2012
Aula 1 -_ambiente_visual_studio_2012
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
C# 4.0
C# 4.0C# 4.0
C# 4.0
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 

Mais de CDS

Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de MemóriaCDS
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps PipelineCDS
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions SpanishCDS
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaCDS
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio CodeCDS
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas PráticasCDS
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure FunctionsCDS
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSCDS
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#CDS
 
C# 7
C# 7C# 7
C# 7CDS
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão GeralCDS
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PICDS
 
Sonarqube
SonarqubeSonarqube
SonarqubeCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015CDS
 

Mais de CDS (20)

Web App Container
Web App ContainerWeb App Container
Web App Container
 
Gerenciamento de Memória
Gerenciamento de MemóriaGerenciamento de Memória
Gerenciamento de Memória
 
Azure DevOps Pipeline
Azure DevOps PipelineAzure DevOps Pipeline
Azure DevOps Pipeline
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
C Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de MemóriaC Sharp - Gerenciamento de Memória
C Sharp - Gerenciamento de Memória
 
Visual Studio Code
Visual Studio CodeVisual Studio Code
Visual Studio Code
 
GitHub Boas Práticas
GitHub Boas PráticasGitHub Boas Práticas
GitHub Boas Práticas
 
MVPConf - Azure Functions
MVPConf - Azure FunctionsMVPConf - Azure Functions
MVPConf - Azure Functions
 
Microsoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMSMicrosoft Operations Management Suite - OMS
Microsoft Operations Management Suite - OMS
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#Criando infraestrutura de Azure com Fluebn API e C#
Criando infraestrutura de Azure com Fluebn API e C#
 
C# 7
C# 7C# 7
C# 7
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
.Net Core - Visão Geral
.Net Core - Visão Geral.Net Core - Visão Geral
.Net Core - Visão Geral
 
Raspberry PI
Raspberry PIRaspberry PI
Raspberry PI
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015Palestra Roslyn - TechEd 2015
Palestra Roslyn - TechEd 2015
 

Visual Studio 2010 e C# 4

  • 1. Visual Studio 2010 e C# 4.0 Carlos dos Santos cds@cds-software.com.br Blog: www.carloscds.net Twitter: @cdssoftware Microsoft MVP C# CDS Informática Ltda. Microsoft Gold Certified Partner Microsoft Visual Studio Team System Inner Circle Partner
  • 2. Agenda Um pouco de história... Novidades do Visual Studio 2010 ObjetosTipadosDinamicamente ParâmetrosOpcionais e Nomeados Programação Paralela Entity Framework 4 WPF Silverlight
  • 3. Um pouco de história… SP1 3.5 3.0 .NET 1.0 .NET 1.1 .NET 2.0 .NET 4 200213 de Fevereiro 2003 3 de Abril 2008 CTP 2005-08 CLR 1.0 CLR 1.1 CLR 2.0 CLR 4
  • 4. O que é a plataforma .Net WPF Win Forms DLR ASP.NET WCF E muito mais! LINQ Base Class Libraries CLR JIT & NGEN Garbage Collector Security Model Exception Handling Loader & Binder
  • 5.
  • 11. WCF4
  • 12. WF4
  • 13. WPF4
  • 18. CLR4
  • 20. VB10
  • 21. MEF
  • 23.
  • 24. Entendendo o Dynamic Tipossão “estaticamentetipadoscomodinâmicos” Tipo dinâmicos são System.Object (cuidado com boxing e unboxing) Tipos dinâmicos se propagam nas chamadas Tipo dinâmicos não possuem checagem em tempo de compilação e nem Intelisence
  • 25. Como o Dynamic funciona: CLR COM Binder Expression Tree IronPython Binder Exe Compile Run Bind call C# Runtime Binder Dynamic Call Delegate DLR Cache …
  • 26. ObjetosTipadosDinamicamente Calculator calc = GetCalculator(); int sum = calc.Add(10, 20); object calc = GetCalculator(); TypecalcType = calc.GetType(); object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, newobject[] { 10, 20 }); int sum = Convert.ToInt32(res); ScriptObject calc = GetCalculator(); object res = calc.Invoke("Add", 10, 20); int sum = Convert.ToInt32(res); Estaticamentetipadocomodinâmico dynamic calc = GetCalculator(); int sum = calc.Add(10, 20); Invocaçãodinâmica de método Conversãodinâmica
  • 27.
  • 28. Em tempo de execução, ostipossãosubtituídos
  • 29.
  • 31. ParâmetrosOpcionais e Nomeados Método principal publicStreamReaderOpenTextFile( string path, Encodingencoding, booldetectEncoding, intbufferSize); Overloads secundários publicStreamReaderOpenTextFile( string path, Encodingencoding, booldetectEncoding); publicStreamReaderOpenTextFile( string path, Encodingencoding); publicStreamReaderOpenTextFile( string path); Chama o método principal com valores default
  • 32. ParâmetrosOpcionais e Nomeados Parâmetrosopcionais publicStreamReaderOpenTextFile( string path, Encodingencoding, booldetectEncoding, intbufferSize); publicStreamReaderOpenTextFile( string path, Encodingencoding = null, booldetectEncoding = true, intbufferSize = 1024); Argumentonomeado OpenTextFile("foo.txt", Encoding.UTF8); OpenTextFile("foo.txt", Encoding.UTF8, bufferSize: 4096); Argumentosavaliadosnaordemescrita Argumentosnomeadospodemapareceremqualquerordem Argumentosnomeadosdevemvirporúltimo OpenTextFile( bufferSize: 4096, path: "foo.txt", detectEncoding: false); Argumentosnão-opcionais DEVEM ser especificados
  • 33. Programação Paralela Aproveitar a capacidade dos processadores com váriosnúcleos Suporte do .Net Framework 4.0: Parallel For / ForEach Task Parallel Library (TPL) System.Threading System.Treading.Task Parallel Linq (PLINQ) Estururas de dados em: System.Collections.Concurrent
  • 35. Programação Orientada a Teste (TDD) Escrevaos testes antes do código Aprovar, Refactorizar Ajuda do Intellisense Geração do Código da Classe Geração dos Metodos
  • 37. Entity Framework 4 ADO.NET API ORM API Entity Provider Connection ObjectContext Command ObjectQuery ModeloConceitual DataReader Mapeamento ModeloFísico SQL Provider Oracle Provider ...
  • 38. ADO.NET x Entity Framework Entity Framework ADO.Net
  • 39. Entity Framework 4.0 Ferramenta de designer melhorada (VS2010) Maiscontrole e flexibilidade; POCO (Plan Old CLR Objects - persistence Ignorance); Desenvolvimento N-Tier (emcamadas); Lazy Loading (dados carregadospordemanda);
  • 41. WPF Desenvolvaaplicações com visual incrível Total liberdadepara o designer Integração entre o designer e o desenvolvedor Ferramentasespecíficaspara o designer: Expression Blend Visual criadousando XAML
  • 43. Silverlight Aplicações web com visual incrível Poder do XAML aplicado a web Smooth Streaming – altaqualidadenosvídeos(http://www.iis.net/media/experiencesmoothstreaming) Aceleração via GPU (usaprocessamento local do usuário) Instalação no client (out of browser) Obtenha feedback do cliente sem escrever a aplicação (Sketch Flow)
  • 45.
  • 46. Consume first development
  • 48.
  • 51.
  • 54.
  • 55. Links Úteis C# 4.0 Samples and Whitepaper http://code.msdn.microsoft.com/csharpfuture Visual C# Developer Center http://csharp.net SharpCode http://www.sharpcode.com.br Meu Blog http://www.carloscds.net
  • 56.
  • 58. Migração de PHP para Asp.Net;
  • 60. Implementação de Visual Studio Team System;
  • 61. Desenvolvimento Asp.Net, Silverlight, Windows Mobile; www.cds-software.com.br
  • 62. Perguntas ? Carlos dos Santos cds@cds-software.com.br www.carloscds.net @cdssoftware

Notas do Editor

  1. A primeira versão foi lançada em 2002, para Windows 98, Me, NT 4.0, 2000, and XP;A versão 1.1foi a primeiragrandeatualização da plataforma, lançadaemconjunto com o Visual Studio 2003, e jáfazendo parte do Windows Server 2003. Inúmerasmodificações, inclusive lançamento de umaversãoparadispositivospequenos, o .NET Compact Framework.A versão 2.0 foilançadaem 2005/2006, junto com SQL Server 2005, Biztalk 2006, etc. - Novo CLR - Generics - Temas, skins, webparts - classes parciais, métodosanonimos, etcA versão 3.0 funcionamaiscomoumaatualização, semgrandesmudançasarquiteturais, utilziando o CLR passado. (novembro 2006) - WPF - WCF - WF - Windows CardspaceVersão 3.5: Novembro de 2007 - LINQ - Métodos de extensão - ASP.NET AJAX juntoSP1 do 3.5: Agosto 2008 - Entity Framework - ADO.NET Data Services - ASP.NET MVC4.0: Anuncio em setembro 2008Public Beta em maio 2009ParallelLinguagens DinâmicasCode ContractsOsloFevereiro de 2010: RC
  2. Expression trees – árvores de expressões Dynamic Dispatch – resolução de métodos em tempo de execução, utiliza cache de chamadas se houberSite Caching – cache das chamadas
  3. Diferença entre dynamic e varVar é conhecido em tempo de compilaçãoDynamic é como o tipo object, resolvido somente em runtimeCuidado com uso excessivo de dynamic – ele cauxa box e unboxing, ou seja muito overhead no processador
  4. If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  5. Mostrar Debug Windows Parallel – break point
  6. If you would like to host your demo on the Virtual Server, please use the myVPC demo slide, not this slide.
  7. Mostrar Debug Windows Parallel – break point
  8. Mostrar Debug Windows Parallel – break point
  9. Mostrar Debug Windows Parallel – break point