C# 6.0 - Interopmix 2015
-
Author
renato-groff -
Category
Software
-
view
285 -
download
1
Embed Size (px)
Transcript of C# 6.0 - Interopmix 2015
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!