c# 6.0 - interopmix 2015

Download C# 6.0 - Interopmix 2015

Post on 21-Jan-2017

283 views

Category:

Software

1 download

Embed Size (px)

TRANSCRIPT

Universal Windows Platform

C# 6.0NOVOS RECURSOS

Renato GroffeMicrosoft Technical Audience Contributor (MTAC), MCP, MCTS, OCA, ITIL, COBIT Mais de 15 anos de experincia na rea de TecnologiaPs-graduao em Engenharia de Software nfase em SOAMBA em Business IntelligenceGraduao em Sistemas de InformaoArticulista e Palestrante (Devmedia, .NET Magazine, Canal .NET, TechNet Wiki, .NET Coders, TI Selvagem)Tcnico em Processamento de DadosContatosFacebook: https://www.facebook.com/renatogroffCanal .NET: https://www.facebook.com/canaldotnetLinkedIn: http://br.linkedin.com/in/renatogroffe

Agenda

Visual Studio 2015, C# 6.0 e mais...

Alguns recursos da nova verso do Visual Studio

Novos recursos do C# 6.0

Visual Studio 2015, C# 6.0 e mais...

Visual Studio e o novo .NETLanamento das verses de avaliao do Visual Studio 14 em 2014

A IDE posteriormente foi renomada para Visual Studio 2015, contando com diversas melhorias lanamento em Julho/2015 da verso RTM

C# 6.0 nova verso da linguagem, tambm com melhorias visando simplificar o desenvolvimento

.NET Framework 4.6, com novo compilador (Roslyn)

Boa parte da plataforma .NET agora open source, estando hospedada no GitHubO namespace System.Web deixou de existirForte nfase em cloud computing, JSON e utilizao do NuGet

O novo .NET Framework

Alguns recursos da nova verso do Visual Studio

Um novo tipo de atalhoSmbolo de uma lmpada (Light Bulb) Quick Actions Removendo using desnecessrios (exemplo):

Debug de expresses lambdaO Visual Studio 2015 finalmente suporta esta funcionalidade:

A nova verso do utilitrio NuGetInterface nova inteiramente reformulada

A interface tambm deixou de ser um formulrio modal

Possibilidade de seleo da verso de um package a partir de um combo

Funcionalidade para consolidar as diferentes verses de um package dentro de uma mesma soluo

Resoluo automtica de conflitos envolvendo diferentes verses de uma mesma referncia

A nova verso do utilitrio NuGetNova interface:

Novos recursos do C# 6.0

Using Static O que ?

Declarao do tipo que ser utilizado no incio de um arquivo .cs (atravs de uma instruo using static)

Forma simples para invocao de mtodos estticos

Cdigo mais enxuto

Using Static Exemplo

Using Static O que ?

Declarao do tipo que ser utilizado no incio de um arquivo .cs (atravs de uma instruo using static)

Forma simples para invocao de mtodos estticos

Cdigo mais enxuto

Auto-Property Initializers O que so?Especificao de valores default para propriedades em verses anteriores do C#:

No construtor de uma classe (exceto propriedades somente leitura)

Na declarao de atributos associados a propriedades

Auto-Property Initializers O que so?Exemplo em verses anteriores do C#:

Auto-Property Initializers O que so?

Inicializao de propriedades (mesmo aquelas somente leitura) no prprio ponto em que so declaradas

Dispensa o uso de atributos privados, como acontecia anteriormente

Auto-Property Initializers Exemplo

Inicializao de propriedades somente leitura a partir de um construtor

Alm do mecanismo Auto-Property Initializer, agora tambm possvel a atribuio de valores a propriedades read-only no construtor de uma classe

Este recurso pode ser til no preenchimento de propriedades com base em parmetros informados a um construtor

Inicializao de propriedades somente leitura a partir de um construtorExemplo em C# 6.0:

Expression-bodied Members O que so?

Expresses lambda:

Disponveis desde o C# 3.0

Parte integrante da extenso LINQ (Language-Integrated Query)

Um tipo de funo annima que busca simplificar e tornar mais enxuto o cdigo

Expression-bodied Members O que so?

Implementao de elementos a partir de expresses lambda

Expression-bodied Property (para propriedades somente leitura)

Expression-bodied Function

Expression-bodied Members PropriedadesAgora tambm:Antes:

Expression-bodied Members MtodosAgora tambm:Antes:

Exception Filters O que so?Diferentes checagens envolvendo um mesmo tipo de exceo foravam ao uso de vrios ifs, em verses anteriores do C#:

Exception Filters O que so?Exception Filters so um recurso do C# 6.0 que possibilita o uso de condies na prpria clusula catch (resultando em um cdigo mais elegante):

String Interpolation O que ?Manipulao de strings desde as primeiras verses do .NET Framework:Simples concatenao (tende a tornar o cdigo mais poludo no caso de sequncias grandes de texto)

Uso de placeholders (ndices numricos delimitados por chaves), em conjunto com mtodos como Format da classe String ou ainda, Write e WriteLine na classe Console

Embora os placeholders representem a melhor alternativa, a incluso de novos parmetros em strings j existentes um processo suscetvel a erros

String Interpolation O que ?Exemplo de uso de placeholders:

String Interpolation O que ?Possibilidade de utilizar diretamente expresses ao invs de placeholders numa string (o que no significa que seja necessrio se valer de concatenao)

As strings que fazem uso deste mecanismo devem ser iniciadas por $ (dlar)

As expresses devem estar delimitadas por chaves

Dispensa o uso de mtodos como o Format da classe String

O prprio IntelliSense j suporta tambm este mecanismo

String Interpolation Exemplo

Null-conditional operator O que ?NullReferenceExceptionDesatenoServio deixado pela metade

Necessidade de checagens, validando se referncias esto ou no preenchidas

Muitas verificaes ao longo de um sistema

Null-conditional operator O que ?Verses anteriores do C#:

Null-conditional operator O que ?Smbolo ? acompanhando refernciasVariveisPropriedadesAtributos de classesMtodos que produzem algum retorno

Substitui o uso de ifs

Null-conditional operator Exemplo

Null-conditional operator DelegatesUtilizar o mtodo Invoke:

Chamadas assncronas em blocos catch e finallyC# 5.0 => novo modelo para processamento assncronoPalavras-chave async e await

Namespace System.Threading.Tasks, com classes como Task e Parallel

Grande utilidade na implementao de aplicaes visuais, sobretudo aquelas voltadas a dispositivos mveis

LimitaesImpossibilidade de chamadas assncronas em blocos catch e finally

Chamadas assncronas em blocos catch e finally - Exemplo

O operador nameof O que ?

Permite a obteno de nomes de variveis e parmetros (para possvel utilizao na gravao de registros de log)

Dispensa o uso de strings, as quais poderiam ficar com contedo invlido caso os elementos a que se referem fossem renomeados

Recurso disponvel atravs da palavra-chave nameof

O operador nameof Exemplo

Inicializao de instncias do tipo DictionaryAntes do C# 6.0 a inicializao de instncias baseadas no tipo Dictionary poderia ser feita de duas maneiras:

Atravs do mtodo Add, logo aps a gerao da instncia

Pares de chave-valor separados por { e }, durante a instanciao do objeto

Inicializao de instncias do tipo Dictionaryou

Inicializao de instncias do tipo DictionaryCom o C# 6.0 possvel uma terceira sintaxe, baseada no uso de colchetes:

C# 6.0 RefernciasGuia de Sobrevivncia: C# 6.0http://social.technet.microsoft.com/wiki/pt-br/contents/articles/32498.guia-de-sobrevivencia-c-6-0.aspx

New Language Features in C# 6https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6

Perguntas?

Obrigado!