55
.NET Framework .NET Framework 4 4 Rogério Moraes de Carvalho Rogério Moraes de Carvalho Consultor e Instrutor de Consultor e Instrutor de Tecnologias da Informação Tecnologias da Informação rogeriomoraescarvalho.spaces.l rogeriomoraescarvalho.spaces.l ive.com ive.com [email protected] [email protected] @rogeriomc @rogeriomc Community Launch 2010 Community Launch 2010 no Distrito Federal no Distrito Federal #CLDF #CLDF 20 de março de 2010 20 de março de 2010

Microsoft Community Launch 2010: .NET Framework 4

Embed Size (px)

DESCRIPTION

Palestra sobre as novidades de diversas tecnologias do .NET Framework 4. Evolução da plataforma, .NET Framework 4, C# 4, Visual Basic 2010, ASP.NET Web Forms 4, ASP.NET AJAX 4, ASP.NET MVC 2, WPF 4, MEF, ADO.NET Entity Framework 4, WCF Data Services, WCF 4, WF 4, TPL, PLINQ, DLR, Interop, Compatibilidade e CLR 4.

Citation preview

Page 1: Microsoft Community Launch 2010: .NET Framework 4

.NET Framework 4.NET Framework 4

Rogério Moraes de CarvalhoRogério Moraes de CarvalhoConsultor e Instrutor de Tecnologias da InformaçãoConsultor e Instrutor de Tecnologias da Informação

rogeriomoraescarvalho.spaces.live.comrogeriomoraescarvalho.spaces.live.com

[email protected]@gmx.net

@rogeriomc@rogeriomc

Community Launch 2010 Community Launch 2010 no Distrito Federal #CLDFno Distrito Federal #CLDF20 de março de 201020 de março de 2010

Page 2: Microsoft Community Launch 2010: .NET Framework 4

Evolução da plataforma .NET

.NET 1.0.NET 1.0 .NET 1.1.NET 1.1 .NET 2.0.NET 2.0

3.03.03.53.5

.NET 4.NET 4

2002 2003 2008 CTP2005-08

CLR 1.0CLR 1.0 CLR 1.1CLR 1.1 CLR 2.0CLR 2.0 CLR 4CLR 4

SP1SP1

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 3: Microsoft Community Launch 2010: .NET Framework 4

.NET Framework 4

Base Class LibrariesBase Class Libraries

CLR (Common Language Runtime)JIT & NGENJIT & NGEN

Garbage CollectorGarbage Collector

Security Model

Security Model

Exception HandlingException Handling

Loader & Binder

Loader & Binder

WFWFWindows Forms

Windows Forms DLRDLR

ASP.NET(Web

Forms, MVC)

ASP.NET(Web

Forms, MVC)

WCFWCF ……WPFWPF

ADO.NET(Entity

Framework, LINQ to SQL,

...)

ADO.NET(Entity

Framework, LINQ to SQL,

...)

WCSWCS

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 4: Microsoft Community Launch 2010: .NET Framework 4

Alguns cenários em .NET 4.0

Aplicações DesktopAplicações Desktop

WPF 4MEF

Aplicações WebAplicações Web

ASP.NET Web Forms 4ASP.NET AJAX 4ASP.NET MVC 2

ServiçosServiços

WCF 4

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 5: Microsoft Community Launch 2010: .NET Framework 4

Alguns cenários em .NET 4.0

Computação Computação paralelaparalela

Task Parallel Library (TPL)Parallel LINQ (PLINQ)

Acesso a dadosAcesso a dados

Entity Framework 4WCF Data Services

Ambiente de execuçãoAmbiente de execução

DLR IntegrationType Equivalence

In-Process SxS

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 6: Microsoft Community Launch 2010: .NET Framework 4

Linguagem C# 4.0

Suporte dinâmico

Nomes e argumentos opcionais

Covariância e contravariânciaCovariância permite usar um tipo mais derivado

do especificado num parâmetro genérico e contravariância permite usar um tipo menos derivado

dynamic calc = ObterCalculadora();dynamic calc = ObterCalculadora();

public void EscreverInfoLog(string mensagem, DateTime instante = DateTime.Now)

{…}

public void EscreverInfoLog(string mensagem, DateTime instante = DateTime.Now)

{…}

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 7: Microsoft Community Launch 2010: .NET Framework 4

Linguagem Visual Basic 2010

Propriedades implementadas automaticamente

Inicializadores de coleção

Continuador de linha implícito

Public Property Nome As StringPublic Property Nome As String

Dim primos As New List(Of Integer) From {2, 3, 5, 7, 11}Dim primos As New List(Of Integer) From {2, 3, 5, 7, 11}

Dim processos = From proc In Process.GetProcesses() Where proc.MainWindowTitle.Contains("Visual Studio") Select proc.ProcessName, proc.Id, proc.MainWindowTitle

Dim processos = From proc In Process.GetProcesses() Where proc.MainWindowTitle.Contains("Visual Studio") Select proc.ProcessName, proc.Id, proc.MainWindowTitle

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 8: Microsoft Community Launch 2010: .NET Framework 4

Linguagem Visual Basic 2010

Suporte a expressões Lambda em subrotinas

Suporte a tipos dinâmicos

Covariância e contravariânciaCovariância permite usar um tipo mais derivado do

especificado num parâmetro genérico e contravariância permite usar um tipo menos derivado

Dim escreverLinha = Sub(x) Console.WriteLine(x)Dim escreverLinha = Sub(x) Console.WriteLine(x)

Public Class ArquivoSomenteLeitura Inherits DynamicObjectPublic Class ArquivoSomenteLeitura Inherits DynamicObject

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 9: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET Web Forms 4 – Web.config limpo

.NET 3.0, 3.5, 3.5 SP1Mesmo ambiente de execução do .NET 2.0 (CLR 2)O machine.config não foi atualizado para evitar

sobrescrita de configurações personalizadasAs funcionalidades pós .NET 2.0 (ASP.NET AJAX, ASP.NET

Dynamic Data, ...) tinham que ficar no Web.config local

.NET 4.0 Inclui um novo ambiente de execução (CLR 4)Existe um novo machine.config

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 10: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET Web Forms 4 – Linha selecionada

Persistência da linha selecionada nos controles de dados GridView e ListViewNas versões anteriores ao ASP.NET 4, a linha

selecionada era baseada no índice da páginaPor exemplo, se a quarta linha fosse selecionada na

página 1, ao navegar para a página 2 a quarta linha desta estaria selecionada

No ASP.NET 4, os controles GridView e ListView têm a propriedade EnablePersistedSelectiontrue: seleção baseada no valor da(s) chave(s)

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 11: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET Web Forms 4 – Client ID1) Página mestra (não possui ID)

2) Página de conteúdo (ID: "ContentPlaceHolderPrincipal")

3) DropDownList (ID: "DropDownListUF")

ctl00_ContentPlaceHolderPrincipal_DropDownListUFClientID:

Maior controle do ID cliente no ASP.NET Web Forms 4 ClientIDMode: AutoID, Static, Predictable, Inherit (padrão)

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 12: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET Web Forms 4 – RoteamentoRequisição:Produtos/Softwares

Roteamento ASP.NETRota:

Produtos/{Categoria} -> Produtos.aspx

Roteamento ASP.NETRota:

Produtos/{Categoria} -> Produtos.aspx

Página Web FormsNome do arquivo:

Produtos.aspxValor de roteamento:

Categoria= "Softwares"

Página Web FormsNome do arquivo:

Produtos.aspxValor de roteamento:

Categoria= "Softwares"

Resposta

Programaticamente:Page.RouteData.Values["Categoria"]Declarativamente em controles de fonte de dados:<asp:RouteParameter Name="Categoria" RouteKey="Categoria"/>

Programaticamente:Page.RouteData.Values["Categoria"]Declarativamente em controles de fonte de dados:<asp:RouteParameter Name="Categoria" RouteKey="Categoria"/>

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 13: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET Web Forms 4 – Chart Control

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 14: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET AJAX 4 – Client Templates

Do lado do servidor (ASP.NET Web Forms) <ItemTemplate> <li><%# Eval("Nome") %></li> </ItemTemplate>

Do lado do cliente (ASP.NET AJAX 4) <ul class="sys-template"> <li>{{Nome}}</li> </ul>

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 15: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET AJAX 4 - DataContext

ASMX

WCF

WCFData Services

ASP.NET MVCJsonResult

Etc.

1. Requisição

2. Dados JSONDataContext

3. Modificação dos dados 4. Salva os dados

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 16: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET MVC 2

Templated HelpersHtml.DisplayForSimilar a como os field templates trabalham no

ASP.NET Dynamic DataÁreas

Permite organizar grandes projetos em múltiplas pequenas seções

Suporte a controladores assíncronos

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 17: Microsoft Community Launch 2010: .NET Framework 4

ASP.NET MVC 2

Suporte para DefaultValueAttribute em parâmetros de métodos de ação

Suporte a vinculação de dados binários com Model Binders

Html.ValidationSummary Helper Method pode apresentar erros em nível de modelo

Biblioteca para validação do lado do cliente...

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 18: Microsoft Community Launch 2010: .NET Framework 4

WPF 4 – DataGrid

DataGrid (100% compatível com o Silverlight)Controle que apresenta dados tabulados

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 19: Microsoft Community Launch 2010: .NET Framework 4

WPF 4 – Calendar

Calendar (100% compatível com o Silverlight)Controle que permite ao usuário selecionar uma

ou mais datas numa apresentação visual

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 20: Microsoft Community Launch 2010: .NET Framework 4

WPF 4 – DatePicker

DatePicker (100% compatível com o Silverlight)Controle que permite ao usuário selecionar uma

data num quadro de combinação

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 21: Microsoft Community Launch 2010: .NET Framework 4

WPF 4 – Suporte a toque e manipulação

Suporte a toque e manipulaçãoO WPF 4 permite que aplicações respondam a

toquesUsando um ou mais dedos em

um dispositivo sensível a toquesPermite realizar diversas

operações em elementos natela, como: Movimentar Redimensionar Girar

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 22: Microsoft Community Launch 2010: .NET Framework 4

WPF 4 – Outras novidades

Diversas outras novidadesAvanços relacionados com gráficos e animaçãoAvanços relacionados com textosDiversas mudanças e avanços relacionados com

BindingNovos recursos para XAML Browser Applications

(XBAPs)Suporte a novos recursos do Windows 7 ...

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 23: Microsoft Community Launch 2010: .NET Framework 4

Managed Extensibility Framework (MEF)

O que é o MEF?Uma nova biblioteca no .NET Framework 4 que

permite grande reuso de aplicações e componentes

As aplicações podem avançar da compilação estática para a composição dinâmica

Princípio aberto/fechado de POOEntidades de software devem ser abertos para

extensão, mas fechados para modificação

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 24: Microsoft Community Launch 2010: .NET Framework 4

ADO.NET Entity Framework 4

Suporte à modelagem em primeiro lugarPermite a criar o modelo conceitual primeiro e,

então, criar o esquema do banco de dados que suporta o modelo

Objetos independentes da persistênciaPermite usar Plain Old CLR Objects (POCOs), assim

como objetos existentes de domínio

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 25: Microsoft Community Launch 2010: .NET Framework 4

ADO.NET Entity Framework 4

Carregamento tardio (Lazy Loading)Permite que objetos relacionados sejam

carregados automaticamente da fonte de dados ao acessar a propriedade de navegação

Chaves estrangeiras no modelo conceitualPermite criar modelos conceituais em que colunas

de chave estrangeira no banco de dados correspondem a propriedades escalares da fonte de dados

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 26: Microsoft Community Launch 2010: .NET Framework 4

ADO.NET Entity Framework 4

Outras novidades do Entity Framework 4Suporte a tipos complexos no EDM DesignerServiços de nomenclatura (singular e plural)Testabilidade com IObjectSet<T>Novos métodos para desenvolvimento de

aplicações em N camadasO controle EntityDataSource suporta o controle

QueryExtender para criação de filtros de dados ...

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 27: Microsoft Community Launch 2010: .NET Framework 4

WCF Data Services no .NET 4

O que é o WCF Data Services?Permite a criação e o consumo de serviços de

dados baseados em REST (Representational State Transfer) para a Web

Anteriormente conhecido como ADO.NET Data Services Inicialmente, era conhecido pelo codinome Astoria ainda

na fase de desenvolvimento Introduzido no .NET Framework 3.5 SP1Houve uma atualização

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 28: Microsoft Community Launch 2010: .NET Framework 4

WCF Data Services no .NET 4

Avanços do lado do servidorPaginação do lado do servidor

Agora, um serviço de dados pode ser configurado para retornar os recursos requisitados como um conjunto de respostas paginadas

Contagem de linhasUm novo segmento de caminho $count permite receber

somente o número total de recursos retornados por uma URI http://dominio/Northwind.svc/Customers('ALFKI')/Orders/$count

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 29: Microsoft Community Launch 2010: .NET Framework 4

WCF Data Services no .NET 4

Avanços do lado do servidorProjeções de consultas

Resultados de consultas podem ser modificados para incluir somente um subconjunto de propriedades com uso da nova opção de consulta $select http://dominio/Northwind.svc/Orders(10643)?

$select=OrderID,OrderDate

Streaming de recursos bináriosPermite recuperar e salvar dado BLOB (Binary Large

OBject) independente da entidade a que ele pertence

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 30: Microsoft Community Launch 2010: .NET Framework 4

WCF Data Services no .NET 4

Avanços do lado do clienteVinculação de dados (Data Binding)

A nova classe DataServiceCollection<T> fornece um mecanismo simplificado de data binding para controles WPF e Silverlight

Contagem de linhasA biblioteca cliente do WCF Data Services foi atualizada

para permitir o acesso à informação de contagem numa resposta de consulta

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 31: Microsoft Community Launch 2010: .NET Framework 4

Windows Communication Foundation 4

Integração com System.Web.RoutingSuporte para WS-DiscoveryManipulação de erros HTTP RESTCaching declarativo em serviços WCF RESTPágina de ajuda para serviço WCF REST...

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 32: Microsoft Community Launch 2010: .NET Framework 4

Windows Workflow Foundation 4

Novo controle FlowchartPoderoso novo controle de fluxo de atividades que

permite modelar laços e estruturas de decisãoNovas atividades de controle de fluxo

DoWhile, Pick, TryCatch, ForEach, Switch e ParallelForEach

Atividades para manipular membros de dados Assign e AddToCollection

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 33: Microsoft Community Launch 2010: .NET Framework 4

Computação paralela com .NET 4

A iniciativa da computação paralelaPermitir que desenvolvedores resolvam problemas

de negócios e não problemas de concorrênciaTask Parallel Library (TPL)

Biblioteca para simplificar o acréscimo de paralelismo e concorrência em aplicações

Parallel LINQ (PLINQ) Implementação paralela do LINQ to Objects

Melhorias no System.Threading

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 34: Microsoft Community Launch 2010: .NET Framework 4

Parallel LINQ (PLINQ)

Permite que desenvolvedores usem diversos processadores/núcleos (cores) com um mínimo de impacto no modelo de programação LINQ existentevar q = from p in people.AsParallel()        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.AsParallel()        where p.Name == queryInfo.Name && p.State == queryInfo.State && p.Year >= yearStart && p.Year <= yearEnd        orderby p.Year ascending        select p;

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 35: Microsoft Community Launch 2010: .NET Framework 4

Dynamic Language Runtime (DLR)

Common Language RuntimeCommon Language Runtime

C#C#VBVB

RubyRubyPythonPython

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 36: Microsoft Community Launch 2010: .NET Framework 4

Dynamic Language Runtime (DLR)

Common Language RuntimeCommon Language Runtime

C#C#VBVB

RubyRubyPythonPython

Dynamic Language RuntimeDynamic Language Runtime

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 37: Microsoft Community Launch 2010: .NET Framework 4

Programação dinâmica com .NET

PythonBinderPythonBinder

RubyBinderRuby

BinderCOM

BinderCOM

BinderJScriptBinderJScriptBinder

ObjectBinderObjectBinder

Dynamic Language RuntimeDynamic Language Runtime

Expression TreesExpression TreesExpression TreesExpression Trees Dynamic DispatchDynamic DispatchDynamic DispatchDynamic Dispatch Call Site CachingCall Site CachingCall Site CachingCall Site Caching

IronPythonIronPython IronRubyIronRuby C#C# VB.NETVB.NET Others…Others…

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 38: Microsoft Community Launch 2010: .NET Framework 4

Objetos tipados dinamicamente

object calc = ObterCalculadora();Type tipoCalc = calc.GetType();object res = tipoCalc.InvokeMember("Adicionar", BindingFlags.InvokeMethod, null, new object[] { 10, 20 });int soma = Convert.ToInt32(res);

object calc = ObterCalculadora();Type tipoCalc = calc.GetType();object res = tipoCalc.InvokeMember("Adicionar", BindingFlags.InvokeMethod, null, new object[] { 10, 20 });int soma = Convert.ToInt32(res);

ScriptObject calc = ObterCalculadora();object res = calc.Invoke("Adicionar", 10, 20);int soma = Convert.ToInt32(res);

ScriptObject calc = ObterCalculadora();object res = calc.Invoke("Adicionar", 10, 20);int soma = Convert.ToInt32(res);

dynamic calc = ObterCalculadora();int sum = calc.Add(10, 20);

dynamic calc = ObterCalculadora();int sum = calc.Add(10, 20);

Tipado estaticamente para

ser dinâmico

Tipado estaticamente para

ser dinâmico

Invocação dinâmica do método

Invocação dinâmica do método

Coversão dinâmicaCoversão dinâmica

Calculadora calc = ObterCalculadora();int soma = calc.Adicionar(10, 20);

Calculadora calc = ObterCalculadora();int soma = calc.Adicionar(10, 20);

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 39: Microsoft Community Launch 2010: .NET Framework 4

Interop Assemblies

Interop Assemblies traduzem entre código gerenciado e COM Para cada interface, estrutura, enumeração,

delegate e membro COM existe um equivalente gerenciado .NET com dados de conversão (marshalling) que tornam a comunicação possível

Primary Interop Assemblies (PIAs) Interop Assembly assinado pelo criador do tipo

COM original

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 40: Microsoft Community Launch 2010: .NET Framework 4

Problema com Interop Assemblies

Interop Assemblies podem causar alguns problemas...É comum a comunicação entre add-ins do OfficePortanto, eles devem usar os mesmos tipos

Estes tipos devem estar no mesmo assembly, devido ao modelo usado pelo sistema de tipos do CLR

Se o .NET Framework estiver instalado na máquina, então o PIA do Office (~20 MB) pode ser instalado no GAC

Se o .NET Framework não estiver instalado na máquina, o add-in tem que ser distribuído com o PIA do Office

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 41: Microsoft Community Launch 2010: .NET Framework 4

PIA é dispensável no .NET Framework 4.0

Tipos Interop incorporadosCompiladores podem incorporar as partes do

interop assembly que o add-in realmente usaEquivalência de tipos

O ambiente de execução (CLR) certifica que as definições destes tipos são consideradas equivalentes

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 42: Microsoft Community Launch 2010: .NET Framework 4

Compatibilidade no .NET Framework 4.0

O .NET Framework 4.0 é altamente compatível com assemblies de versões anteriores

O .NET Framework 4.0 não executa assemblies de versões anterioes automaticamenteÉ necessário compilar o assembly para o .NET 4.0Ou usar o elemento <supportedRuntime>

no arquivo de configuração do assembly<configuration><startup> <supportedRuntime version="v3.5"/></startup></configuration>

<configuration><startup> <supportedRuntime version="v3.5"/></startup></configuration>

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 43: Microsoft Community Launch 2010: .NET Framework 4

Compatibilidade no .NET Framework 4.0

“Se o .NET 4.0 é altamente compatível, por que não executar assemblies .NET 3.5 automaticamente na versão 4.0?”“A MELHOR coisa é sempre dar preferência pela

execução na versão do framework para o qual o assembly foi compilado”

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 44: Microsoft Community Launch 2010: .NET Framework 4

CLR 2 – Existência lado a lado

Processo hospedeiro (Exemplo: Excel)Processo hospedeiro (Exemplo: Excel)

.NET 2.0.NET 2.0

2.0 add-in

2.0 add-in

3.03.0

3.53.5

3.0 add-in

3.0 add-in

3.5 add-in

3.5 add-in

1.1 add-in

1.1 add-in

.NET 1.1.NET 1.1

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 45: Microsoft Community Launch 2010: .NET Framework 4

CLR 4 – In-Process Side by Side

.NET 2.0.NET 2.0.NET 4.0.NET 4.0

2.0 add-in

2.0 add-in

3.03.0

3.53.5

Processo hospedeiro (Exemplo: Excel)Processo hospedeiro (Exemplo: Excel)

3.0 add-in

3.0 add-in

3.5 add-in

3.5 add-in

4.0 add-in

4.0 add-in

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 46: Microsoft Community Launch 2010: .NET Framework 4

Rogério Moraes de CarvalhoRogério Moraes de CarvalhoConsultor e Instrutor de Tecnologias da InformaçãoConsultor e Instrutor de Tecnologias da Informação

rogeriomoraescarvalho.spaces.live.comrogeriomoraescarvalho.spaces.live.com

[email protected]@gmx.net

@rogeriomc@rogeriomc

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 47: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

What's New in Visual C# 2010 http://msdn.microsoft.com/en-us/library/bb383815(VS.100).aspx

What's New in Visual Basic 2010 http://msdn.microsoft.com/en-us/library/we86c8x2(VS.100).aspx

Clean Web.Config Files (VS 2010 and .NET 4.0 Series) http://weblogs.asp.net/scottgu/archive/2009/08/25/clean-web-config-fil

es-vs-2010-and-net-4-0-series.aspx Persisting Row Selection in Data Controls

http://www.asp.net/LEARN/whitepapers/aspnet4/default.aspx#_TOC3_6

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 48: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

Control.ClientIDMode Property http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid

mode(VS.100).aspx URL Routing with ASP.NET 4 Web Forms (VS 2010 and .NET 4.0

Series) http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-as

p-net-4-web-forms-vs-2010-and-net-4-0-series.aspx Built-in Charting Controls (VS 2010 and .NET 4 Series)

http://weblogs.asp.net/scottgu/archive/2010/02/07/built-in-charting-controls-vs-2010-and-net-4-series.aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 49: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

Samples Environment for Microsoft Chart Controls http://code.msdn.microsoft.com/mschart/Release/ProjectReleases.aspx?

ReleaseId=1591 How to use the ASP.NET Chart control within an ASP.NET MVC

application http://www.codecapers.com/post/Build-a-Dashboard-With-Microsoft-Ch

art-Controls.aspx Client Data Access

http://www.asp.net/LEARN/whitepapers/aspnet4/default.aspx#_TOC2_3 Client DataContext and AdoNetDataContext Classes

http://www.asp.net/LEARN/whitepapers/aspnet4/default.aspx#_TOC2_4

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 50: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

What’s New in ASP.NET MVC 2 http://www.asp.net/learn/whitepapers/what-is-new-in-aspnet-mvc/

WPF 4 DataGrid Class http://msdn.microsoft.com/en-us/library/system.windows.controls.datag

rid(VS.100).aspx WPF 4 Calendar Class

http://msdn.microsoft.com/en-us/library/system.windows.controls.calendar(VS.100).aspx

WPF 4 DatePicker Class http://msdn.microsoft.com/en-us/library/system.windows.controls.date

picker(VS.100).aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 51: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

Walkthrough: Creating Your First Touch Application (WPF 4) http://msdn.microsoft.com/en-us/library/ee649090(VS.100).aspx

What's New in WPF Version 4 http://msdn.microsoft.com/en-us/library/bb613588(VS.100).aspx

Managed Extensibility Framework Overview http://msdn.microsoft.com/en-us/library/dd460648(VS.100).aspx

What's New in ADO.NET – ADO.NET Entity Framework 4?http://msdn.microsoft.com/en-us/library/ex6y04yf(VS.100).aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 52: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

What's New in WCF Data Services http://msdn.microsoft.com/en-us/library/ee373845(VS.100).aspx

What's New in Windows Communication Foundation http://msdn.microsoft.com/en-us/library/dd456789(VS.100).aspx

What's New in Windows Workflow Foundation http://msdn.microsoft.com/en-us/library/dd489410(VS.100).aspx

Task Parallel Library (TPL) http://msdn.microsoft.com/en-us/library/dd460717(VS.100).aspx

Parallel LINQ (PLINQ) http://msdn.microsoft.com/en-us/library/dd460688(VS.100).aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 53: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

Dynamic Language Runtime (DLR) http://msdn.microsoft.com/en-us/library/dd233052(VS.100).aspx

Using Type dynamic (C# Programming Guide) http://msdn.microsoft.com/en-us/library/dd264736(VS.100).aspx

dynamic (C# Reference) http://msdn.microsoft.com/en-us/library/dd264741(VS.100).aspx

Working with Dynamic Objects (Visual Basic) http://msdn.microsoft.com/en-us/library/dd537660(VS.100).aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 54: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

How to: Generate Interop Assemblies from Type Libraries http://msdn.microsoft.com/en-us/library/697w37zd.aspx

Primary Interop Assemblies (PIAs) http://msdn.microsoft.com/en-us/library/aa302338.aspx

Type Equivalence and Embedded Interop Types http://msdn.microsoft.com/en-us/library/dd997297(VS.100).aspx

Application Compatibility and Deployment http://msdn.microsoft.com/en-us/library/ms171868(VS.100).aspx

<supportedRuntime> Element http://msdn.microsoft.com/en-us/library/w4atty68(VS.100).aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc

Page 55: Microsoft Community Launch 2010: .NET Framework 4

Onde obter informações adicionais?

In-Process Side by Side (In-Process SxS) http://blogs.msdn.com/clrteam/archive/2009/06/03/in-process-side-

by-side-part1.aspx http://blogs.msdn.com/clrteam/archive/2009/06/07/in-process-side-

by-side-part-2-common-in-proc-sxs-scenarios.aspx http://msdn.microsoft.com/en-us/magazine/ee819091.aspx

© 2010, Rogério Moraes de Carvalho E-mail: [email protected] Twitter: @rogeriomc