31
Visual Studio 2010 e C# 4.0 Carlos dos Santos [email protected] 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

Visual Studio 2010 e C# 4

  • Upload
    cds

  • View
    1.936

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Visual Studio 2010 e C# 4

Visual Studio 2010 e C# 4.0

Carlos dos [email protected]

Blog: www.carloscds.netTwitter: @cdssoftware

Microsoft MVP C#CDS Informática Ltda.

Microsoft Gold Certified Partner Microsoft Visual Studio Team System Inner Circle Partner

Page 2: Visual Studio 2010 e C# 4

*Agenda

*Um pouco de história...

*Novidades do Visual Studio 2010

*Objetos Tipados Dinamicamente

*Parâmetros Opcionais e Nomeados

*Programação Paralela

*Entity Framework 4

*WPF

*Silverlight

Page 3: Visual Studio 2010 e C# 4

.NET 1.0 .NET 1.1 .NET 2.0

3.0

3.5

.NET 4

200213 de Fevereiro

20033 de Abril

2008 CTP2005-08

CLR 1.0 CLR 1.1 CLR 2.0 CLR 4

SP1

*Um pouco de história…

Page 4: Visual Studio 2010 e C# 4

*O que é a plataforma .Net

Base Class Libraries

CLRJIT & NGEN

Garbage Collector

Security Model

Exception Handling

Loader & Binder

WPF Win Forms DLR ASP.NET WCF E muito

mais!LINQ

Page 5: Visual Studio 2010 e C# 4

*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• JQuery Intellisense• 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

• Globalization data updated to unicode 5.1• 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

Page 6: Visual Studio 2010 e C# 4

PythonBinder

RubyBinder

COMBinder

JavaScript

Binder

ObjectBinder

*Programação Dinâmica .NET

Dynamic Language Runtime

Expression TreesDynamic Dispatch

Call Site Caching

IronPython

IronRuby C# VB.NET Outros…

Page 7: Visual Studio 2010 e C# 4

* Entendendo o Dynamic

*Tipos são “estaticamente tipados como dinâ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

Page 8: Visual Studio 2010 e C# 4

*Como o Dynamic funciona:

CLR

ExeCompile

RunBind call

Expression Tree

Dynamic Call

Delegate

DLR Cac

he

COM Binder

IronPython Binder

C# Runtime Binder

Page 9: Visual Studio 2010 e C# 4

*Objetos Tipados Dinamicamente

Calculator calc = GetCalculator();int sum = calc.Add(10, 20);

object calc = GetCalculator();Type calcType = calc.GetType();object res = calcType.InvokeMember("Add", BindingFlags.InvokeMethod, null, new object[] { 10, 20 });int sum = Convert.ToInt32(res);

ScriptObject calc = GetCalculator();object res = calc.Invoke("Add", 10, 20);int sum = Convert.ToInt32(res);

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

Estaticamente tipado como

dinâmico

Invocação dinâmica de

método

Conversão dinâmica

Page 10: Visual Studio 2010 e C# 4

*Objetos Tipados Dinamicamente

dynamic x = 1;dynamic y = "Hello";dynamic z = new List<int> { 1, 2, 3 };

Tipo em tempo de compilação:

dynamic

Tipo em tempo de execução:

System.Int32

Quando operandos são dynamic…• Seleção do membro adiado para tempo de execução• Em tempo de execução, os tipos são subtituídos• O tipo estático resultante da operação é dynamic

Page 11: Visual Studio 2010 e C# 4

public static class Math{ public static decimal Abs(decimal value); public static double Abs(double value); public static float Abs(float value); public static int Abs(int value); public static long Abs(long value); public static sbyte Abs(sbyte value); public static short Abs(short value); ...}

double x = 1.75;double y = Math.Abs(x);

dynamic x = 1.75;dynamic y = Math.Abs(x);

*Objetos Tipados Dinamicamente

Método escolhido em tempo de compilação:

double Abs(double x)

Método escolhido em tempo de

execução: double Abs(double

x)

dynamic x = 2;dynamic y = Math.Abs(x);

Método escolhido em tempo de

execução: int Abs(int x)

Page 12: Visual Studio 2010 e C# 4

12

*Objetos Tipados Dinamicamente

demo

Page 13: Visual Studio 2010 e C# 4

*Parâmetros Opcionais e Nomeados

public StreamReader OpenTextFile( string path, Encoding encoding, bool detectEncoding, int bufferSize);

public StreamReader OpenTextFile( string path, Encoding encoding, bool detectEncoding);

public StreamReader OpenTextFile( string path, Encoding encoding);

public StreamReader OpenTextFile( string path);

Método principal

Overloads secundários

Chama o método principal com

valores default

Page 14: Visual Studio 2010 e C# 4

*Parâmetros Opcionais e Nomeados

public StreamReader OpenTextFile( string path, Encoding encoding, bool detectEncoding, int bufferSize);

public StreamReader OpenTextFile( string path, Encoding encoding = null, bool detectEncoding = true, int bufferSize = 1024);

Parâmetros opcionais

OpenTextFile("foo.txt", Encoding.UTF8);OpenTextFile("foo.txt", Encoding.UTF8, bufferSize: 4096);

Argumento nomeado

OpenTextFile( bufferSize: 4096, path: "foo.txt", detectEncoding: false);

Argumentos nomeados devem

vir por último

Argumentos não-opcionais DEVEM ser especificados

Argumentos avaliados na ordem

escrita

Argumentos nomeados podem

aparecer em qualquer ordem

Page 15: Visual Studio 2010 e C# 4

*Programação Paralela

*Aproveitar a capacidade dos processadores com vários nú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

Page 16: Visual Studio 2010 e C# 4

16

*Programação Paralela

demo

Page 17: Visual Studio 2010 e C# 4

*Programação Orientada a Teste (TDD)

*Escreva os testes antes do código

*Aprovar, Refactorizar

*Ajuda do Intellisense

*Geração do Código da Classe

*Geração dos Metodos

Page 18: Visual Studio 2010 e C# 4

18

*Test Driven Development

demo

Page 19: Visual Studio 2010 e C# 4

*Entity Framework 4

SQL Provider Oracle Provider ...

Entity Provider

Modelo Conceitual

Modelo Físico

Mapeamento

ADO.NET API ORM API

Connection

Command

DataReader

ObjectContext

ObjectQuery

Page 20: Visual Studio 2010 e C# 4

*ADO.NET x Entity Framework

ADO.Net

Entity Framework

Page 21: Visual Studio 2010 e C# 4

*Entity Framework 4.0

*Ferramenta de designer melhorada (VS2010)

*Mais controle e flexibilidade;

*POCO (Plan Old CLR Objects - persistence Ignorance);

*Desenvolvimento N-Tier (em camadas);

*Lazy Loading (dados carregados por demanda);

Page 22: Visual Studio 2010 e C# 4

22

*Entity Framework 4

demo

Page 23: Visual Studio 2010 e C# 4

*WPF *Desenvolva aplicações com visual incrível

*Total liberdade para o designer

*Integração entre o designer e o desenvolvedor

*Ferramentas específicas para o designer: Expression Blend

*Visual criado usando XAML

Page 24: Visual Studio 2010 e C# 4

24

*WPF

demo

Page 25: Visual Studio 2010 e C# 4

*Silverlight*Aplicações web com visual incrível

*Poder do XAML aplicado a web

*Smooth Streaming – alta qualidade nos vídeos (http://www.iis.net/media/experiencesmoothstreaming)

*Aceleração via GPU (usa processamento local do usuário)

*Instalação no client (out of browser)

*Obtenha feedback do cliente sem escrever a aplicação (Sketch Flow)

Page 26: Visual Studio 2010 e C# 4

26

*Silverlight

demo

Page 27: Visual Studio 2010 e C# 4

*Produtividade

Entendendo

Navegando

Testando Depurando

Modificando

Escrevendo

Analyze relationships and structure

Quick information

Symbol navigation

File navigation

Code generation

Consume first development

Refactor code

Organize code

Stepping behavior

LINQ debugging

Unit testing

TDD

Page 28: Visual Studio 2010 e C# 4

*O que mais?

*Managed Extensibility Framework?

*WPF / Silverlight

*ADO.NET Data Services

*Azure

*Domain Specific Language

*Visual Studio Team System

Page 29: Visual Studio 2010 e C# 4

*Links Úteis

C# 4.0 Samples and Whitepaper

http://code.msdn.microsoft.com/csharpfutureVisual C# Developer Center

http://csharp.net

SharpCode

http://www.sharpcode.com.br

Meu Blog

http://www.carloscds.net

Page 30: Visual Studio 2010 e C# 4

*Quer usar a plataforma .Net ?

• Temos consultoria especializada em treinamento para equipes de desenvolvimento;

• Migração de Delphi para C#;• Migração de PHP para Asp.Net;• Migraçao de WebServices para WCF;• Implementação de Visual Studio Team System;• Desenvolvimento Asp.Net, Silverlight,

Windows Mobile;

www.cds-software.com.br

Page 31: Visual Studio 2010 e C# 4

Perguntas ?

Carlos dos [email protected]

www.carloscds.net

@cdssoftware