Microsoft Community Launch 2010: .NET Framework 4

Post on 07-Nov-2014

5.263 views 0 download

Tags:

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.

Transcript of 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

rogeriom@gmx.netrogeriom@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

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: rogeriom@gmx.net Twitter: @rogeriomc

.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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

ASP.NET Web Forms 4 – Chart Control

© 2010, Rogério Moraes de Carvalho E-mail: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

WPF 4 – DataGrid

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

© 2010, Rogério Moraes de Carvalho E-mail: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

Dynamic Language Runtime (DLR)

Common Language RuntimeCommon Language Runtime

C#C#VBVB

RubyRubyPythonPython

© 2010, Rogério Moraes de Carvalho E-mail: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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

rogeriom@gmx.netrogeriom@gmx.net

@rogeriomc@rogeriomc

© 2010, Rogério Moraes de Carvalho E-mail: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc

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: rogeriom@gmx.net Twitter: @rogeriomc