SETEMBRO, 2010 | SÃO PAULO
João Paulo Clementi (JP)www.jpclementi.comMicrosoft Brasil
Renato HaddadMVP, MCT, MCTS, [email protected] www.renatohaddad.comhttp://weblogs.asp.net/renatohaddad
Dicas, truques do Visual Studio 2010 e novas funcionalidades do Visual Basic e C#
CÓDIGO DA SESSÃO: DEV 203
4
AgendaVS 2010, Visual Basic e C#
Visual Studio 2010 e suas novidades da IDENovidades das linguagens e recursos do VB e C#Linguagem Paralela
5
Novidades da IDE
6
Lista de NovidadesBreakpoint LabelingBreakpoint SearchingBreakpoint Import/ExportDynamic Data ToolingWPF Tree VisualizerCall HierarchyImproved WPF ToolingHistorical DebuggingMini-Dump DebuggingQuick SearchBetter Multi-Monitor SupportHighlight References
Parallel Stacks WindowParallel Tasks WindowDocument Map MarginGenerate from UsageConcurrency ProfilerExtensible Test RunnerMVC ToolingWeb DeployJQuery IntelliSenseSharePoint ToolingHTML SnippetsWeb.config TransformationClickOnce Enhancements for Microsoft Office
7
Muitas funcionalidades novasFoco em funcionalidades específicas
Pertinente para a maioria dos desenvolvedores
Funcionalidades avançadas em outro momento…
8
Faces do Visual Studio 2010
Visual Studio como um Editor
Visual Studio como uma Plataforma
9
… Como um EditorUm foco aprimorado em…
Escrever o código Entender o códigoNavegar o código Publicar o código
Shell reescrita utilizando WPFAdiciona muitas outras funcionalidades
10
… Como uma Plataforma
Visual Studio 2010 suporta uma galeria de extensões
Estimulando um mercado de terceiros
11
Linguagens VB e C# 2010Funcionalidades VB C#
Auto-implemented Properties
Collection Initializers
Array Literals
Statement Lambdas
Implicit Line Continuation N/A
Named/Optional Parameters
Latebinding support (dynamic)
Omit ref em chamadas COM
Indexed Properties
Interop com Linguagens Dinamicas
Co/contravariance
PIA deployment not needed
Novo no VS 2010Existentes no VS 2008
12
Recursos da IDE VB & C# 2010Feature VB C#
Generate From Usage: Generate Method
Type colorization
Background Squiggles: Top Level Analysis
IntelliSense: Builder UI
IntelliSense: Prefix Filtering Completion List
Generate From Usage: Generate Type, Constructor, Property, FieldIntelliSense: Consume First Mode
IntelliSense: Substring & Camel-Case Match
Navigate To
Highlight References
Call Hierarchy
Novo no VS 2010Existentes no VS 2008
13
Melhorias gerais – Front EndStart page
Reescrita utilizando XAML: fácil de customizarLista de projetos recentes - Maior controle Novos projetos: Multi-targeting
Novo suporte para Silverlight, MFC, F#, AzureSuporte estendido para Office 2010 e SharePoint
Extension managerGaleria para extensões do Visual Studio
14
Melhorias na interface do usuárioZoomDocking WindowsGenerate from UsageHighlighting ReferencesNavigate To / Quick SearchIntelliSense Consume-First ModeBox SelectionBusca na caixa de diálogo “Add New Item”
15
Novas funcionalidades somentepara o C#
Call HierarchyOrganização dos “using statements”
16
ZoomCtrl+Mouse WheelNovas funcionalidades que aumentam o tamanho do seu códigoÚtil para apresentações e demonstrações
17
Docking WindowsNovos visuais para “docking”Windows podem ser “docked” em qualquer lugarMelhor utilização de múltiplos monitoresWindow -> Reset Windows Layout
18
Gerando através do uso(Generate from usage)
Automaticamente cria “stub code” de códigos que você já digitouPossibilita com que você utilize classes e membros antes de defini-losCTRL + .
19
Highlighting ReferencesDestaque automático de símbolosFunciona com declarações, referencias e muitos outros símbolosFacilita encontrarmos onde os símbolos estão sendo utilizados
20
Navigate To/Quick SearchCtrl + ,Disponibiliza suporte para “procura-enquanto-você-digita” por arquivos, tipos e membrosPossibilita procura rápidaCtrl+- retorna
21
Box SelectionNo VS 2008, era possível pressionar ALT para selecionar uma região retangularAgora com funcionalidades adicionais:
Inserção de texto: Escreva em uma seleção para inserir o mesmo texto em todas as linhasColar conteúdo de um “box selection” em outroCaixas com largura zero
Fazer uma seleção vertical com largura zero para inserir novo texto ou colar conteúdo
22
IntelliSense Consume-First ModeIntelliSense disponibiliza dois modos de complementar uma sentença
Completion modeSuggestion mode
Útil quando utilizando classes e membros antes de serem definidosO editor mostra o símbolo que você escreve ao invés de uma entrada da lista
Use Ctrl+Alt+Spacebar para alternarNo “Suggestion mode”, código insere o que você escreve
Enquanto você não apertar tab, que insere o texto selecionado independente do modo que você está
23
Busca no “Add New Item”Caixa de diálogo “Add New Item” inclui mecanismo de busca
Digite qualquer parte do nome do templateBusca faz o resto
24
Melhorias de debuggingPode adicionar labels nos breakpointsTodos os breakpoints são “searchable”Pode importar/exportar breakpoints
25
Floating Data TipsDicas flutuam na janela do códigoAs “dicas flutuantes” continuam visíveis até o fim da sessão de debug
26
Melhorias de Debugging eDiagnósticos
BreakpointFloating Data Tips
27
Call HierarchyCtrl+Alt+K (ou Ctrl+K, T)Ver chamadas para, e que se originam do método
28
Organizando UsingsRight-click no Using statementPode deletar os que não estão sendo utilizados, ordenar ou os dois
29
Novidades das linguagens e recursos do VB e C#
30
Somente para VB
Novidades do VB, já existentes no C# 3 ou não aplicável no C# 4
Quebra de linha implícitaAuto-implementar propriedadesInicializar coleçõesArray LiteralsSub LambdasLambdas em várias linhas
31
Quebra de Linha ImplícitaO caracter “_” no Visual Basic indica uma quebra de linha lógica para o mesmo códigoVisual Basic 10 remove esta quebra para alguns comandosMas não em tudo foi removido, e sim para a maioria
32
Quebra de Linha ImplícitaQuando aplicável:
Após um atributoApós uma vírgulaApós um ponto (para invocar um método ou propriedadeApós um operador binárioApós uma expressão LINQApós o (, {, ou <%=Antes do ), }, ou %>
33
Auto-Implementa PropriedadesPara simples propriedades onde o get/set retornam um simples valorVisual Basic cria campor private com o mesmo nome da propriedade usando o prefixo “_”
Exemplo: propriedade Nome, o campo será _Nome
Visual Basic cria o getter e o setter Para isto não pode ter propriedades como somente leitura/escrita
34
Inicializador de ColeçãoSuporte a inicialização de coleção com valores padrãoUsa as palavras chaves From e with {} para a lista
Lista pode ser em cascataUso de dicionário, por exemplo
Simples chamadas ao método Add da classe, passando as informações
Se não há o método Add, crie seu próprio método através dos métodos de extensão
35
Array LiteralsSuporta uma sintaxe compacta para a declaração de array
Tipos inferidos pelo compiladorBem útil quando você precisar usar valores padrão para um array, e quer permitir ao compilador definir o seu tipo de array
36
Multi Linhas para Sub e LambdasNo Visual Studio 2008, expressões lambda poderiam ter somente uma simples expressão que retorna um valor, no Visual Basic
Uma função, por exemploNo Visual Studio 2010, expressões lambda pode ser uma Sub (ou uma Function)
Também contém múltiplos statementsSuporta método anônimos no Visual Basic
37
Somente para C#
Suporte a linguagem dinâmicaParâmetros opcionais e nomeadosTipos dinâmicosSuporte a COM Interop
38
Parâmetros Nomeados e Opcionais
A pedido de para suportar linguagens dinâmicas
E melhorar o suporte a COM interopC# 4 suporta ambos parâmetros nomeados e opcionaisPara indicar um parâmetro opcional, forneça o valor padrão
Quando chamado, pode fornecer um valor ou usar o padrãoNão permite contagem com vírgula
39
Parâmetros Nomeados e Opcionais
Qualquer argumento pode ser passado pelo nome ou posição
Resolvem os problemas de contagem de vírgulasO que acontece se você fornecer o primeiro e o último parâmetro de uma lista de 10?
Geralmente, use dois parâmetros nomeados
40
Tipos DinâmicosDynamic permite você escrever um método, um perador ou indexar uma chamada
Acesso as propriedades e camposInvocar objetos (object)
Requerido para suportar linguagens dinâmicasAjuda com COM Interop
41
Suporte COM InteropMuitos métodos COM aceitam e retornam tipos diferentes representando um Object na PIANa maioria das vezes o desenvolvedor sabe o tipo de retorno
Mas deverá fazer um Cast no retornoTipos dinâmicos podem ser fáceis
42
Ref ParametersMuitos métodos COM contém uma referência de parâmetrosNo passado, desenvolvedor C# precisava criar uma variável local para cada parêmetro por referência
E então passar cada valor por referênciaAgora o compilador C# permite passar o parâmetro por valor
O compilador cria variáveis temporárias e descarta depoisNão se preocupe com REF, as chamadas dos métodos continuam como referência
43
Novidades do VB e C#
44
Linguagem Paralela
45
FuncionalidadesThreads no Visual Studio 2008
Difícil de codificar e debugarTemos tipos públicos e APIs para tarefas paralelas
Mais produtividade aos desenvolvedoresSimplifica o processo de tarefas paralelas e concorrência
Só faz sentido usar Paralelelismo com múltiplos processadores
46
Classe estática “Parallel”Quando as rotinas são independentes…
… elas podem ser paralelizadas
StatementA()StatementB()StatementC()
Parallel.Invoke( StatementA(), StatementB(), StatementC())
47
Classe Static Parallel
Use a classe Parallel para métodos:InvokeForForEachPLINQ (use AsParallel)
48
Conclusão
Visual Studio 2010 e suas novidades da IDENovidades das linguagens e recursos do VB e C#Linguagem Paralela
49
Conteúdo relacionado
DEV402 | Desenvolvimento com C# no mundo moderno13/09 Horário: 15:30 - 16:45
DEV401 | Novos recursos do Microsoft Visual Basic 201013/09 Horário: 17:15 - 18:30
DEV302 | Como e onde devo utilizar o MEFData: 15/09 Horário: 10:45 - 12:00
DEV303 | Paralelismo no .Net 4.0: Patterns, dicas e truques15/09 Horário: 15:30 - 16:45
50
51
RecursosVisual Studio – http://msdn.microsoft.com/pt-br/vstudio/Soma’s Blog – http://blogs.msdn.com/b/somasegar/ MSDN Data Developer Center – http://msdn.com/data ADO.NET Team Blog – http://blogs.msdn.com/adonet WCF Data Services Team Blog – http://blogs.msdn.com/astoriateam EF Design Blog – http://blogs.msdn.com/efdesign
© 2008 Microsoft Corporation. Todos os direitos reservados. Microsoft, Windows, Windows Vista e outros nomes de produtos são ou podem ser marcas registradas e/ou marcas comerciais nos EUA e/ou outros países.Este documento é meramente informativo e representa a visão atual da Microsoft Corporation a partir da data desta apresentação. Como a Microsoft deve atender a condições de mercado em constante alteração, este
documento não deve ser interpretado como um compromisso por parte da Microsoft, e a Microsoft não pode garantir a precisão de qualquer informação fornecida após a data desta apresentação. A MICROSOFT NÃO DÁ QUALQUER GARANTIA, SEJA ELA EXPRESSA, IMPLÍCITA OU ESTATUTÁRIA, REFERENTE ÀS INFORMAÇÕES DESTA APRESENTAÇÃO.
Por favor preencha a avaliação