CSharp6.0[1]

Programando o futuro usando C# 6.0 1


Fala galera, tudo beleza?!!

No dia 26/02/2015 aconteceu o Webinar Programando o futuro usando o C# 6.0. Se você não pôde assistir, ou nem sabia que ia acontecer, no final desse artigo você poderá conferir o vídeo completo.

O que foi apresentado

Nos primeiros 30~40 minutos nós conversamos sobre as várias possibilidades de onde é possível usar C#, desde o programa desktop convencional até em hardwares como Raspberry Pi 2 para usarmos em IoT.

C# e seu novo compilador

Falamos sobre o novo compilador do C#, Roslyn, e quais as vantagens que ele trouxe se tornando open source e sendo escrito em C#. E comentamos sobre alguns projetos que já usam o Roslyn para fazer coisas muito legais. Segue abaixo:

ScriptCS

ScriptCS é o projeto, que torna possível de forma extremamente fácil escrever e executar C# em um simples editor de texto ou até mesmo no console(cmd). Segue a demo que fiquei devendo sobre o assunto ScriptCS – C# como script.

Omnisharp

O Omnisharp traz um recurso fantástico, ter uma grande experiência de desenvolvimento .NET em outros editores de texto. Agora que o ASP.NET 5 vai possibilitar o desenvolvimento cross-platform, seria muito legal ter alguns recursos que o Visual Studio tem nas outras plataformas, como por exemplo IntelliSense, e o Omnisharp, através do Roslyn, traz isso para nós.

Segue a apresentação deles em seu próprio site:

OmniSharp is a family of Open Source projects, each with one goal – To enable great .NET development in YOUR editor of choice.
It’s fun to say Cross Platform .NET. But is it reasonable for someone to develop .NET without Visual Studio and Windows?
Is it fun to do .NET on a Mac in Sublime? Ubuntu and Emacs? Windows and Atom? You can use your editor PLUS get to use great features like Intellisense (not just Autocomplete), Add Reference, Format Document, and lots more. Develop anywhere, deploy anywhere (and to Azure!)

Traduzindo

OmniSharp é uma família de projetos de código aberto com um objetivo, prover uma ótima experiência de desenvolvimento .NET no editor de SUA escolha.
É engraçado dizer Multiplataforma .NET. Mas isso é aceitável para alguém que desenvolve .NET sem Visual Studio e Windows?
É engraçado programador .NET em um Mac no Sublime? Ubunto e Emacs? Windows e Atom? Você pode usar seu editor com maravilhosos recursos como Intellisense(não um simples Autocomplete), Add Reference, Format Document, e muito mais. Desenvolva em qualquer lugar, publique em qualquer lugar(e no Azure!).

DuoCode

Outro projeto com uma proposta audaciosa, DuoCode possibilita que você troque JavaScript e use suas habilidades com C# 6.0 para desenvolver aplicações HTML5 usando documentos fortementente tipados, definições de classe de toda a biblioteca DOM(incluindo definições de HTML, CSS, SVG e WebGL). No site deles tem um exemplo de uma aplicação web na qual quando você abre o Developer Tools do IE, Chrome ou Firefox, você pode debuggar o código em C#, isso é lindo!!!! Clique aqui para acessar o exemplo.

Confira na imagem abaixo


Debugando C# no browser

C# e seus recursos com Demos

  1. Mostramos uma demo usando Xamarin com uma App para Android
  2. Falamos sobre desempenho na conversão de tipos Box / Unboxing
  3. Mostramos uma demo sobre perca de perfomace usando concatenação de string e que usando o StringBuilder a perfomance é drasticamente melhorada.
  4. Mostramos o recurso String interpolation
  5. Mostramos como trabalhar com processamento paralelo em C# de forma super fácil
  6. Mostramos como usar async, await para ter um código assíncrono com aparência de um código síncrono, e quais as vantagens desse tipo de código.
  7. Mostramos uma demo explicando que Try/Cach/Finally não é Dispose, além de explicar os cuidados que deve ter para não perder o stacktrace.
  8. Mostramos uma demo de que no C# 6 será possivel usar await em catch e finaly
  9. Mostramos o recurso Exception filter do C# 6
  10. Mostramos os Extension Methods(Métodos de extensão)
  11. Mostramos Getter-only auto properties do C# 6
  12. Mostramos Initializers for properties / Index do C# 6
  13. Mostramos Using static classes do C# 6
  14. Mostramos Expression-bodied methods / properties do C# 6
  15. Mostramos Null progragation do C# 6
  16. Mostramos Nameof operator do C# 6
  17. Falamos sobre Portable Class (Cross-Platform Development)
  18. Mostramos também a diferença de performace quando usando Generics / Datatable vs colection / Diferença de listas.
  19. No final ainda apresentei como ficou a conversão de um código escrito de forma imperativa para a forma funcional.

Vídeo completo


sobre Alberto Monteiro

Desenvolvedor no Grupo Fortes, cuja principal área de conhecimento são em tecnologias Microsoft, como Windows Forms / Services, WPF, ASP.NET(MVC/WEB API), Windows Phone, EF. Gosta de sopa de letrinhas(SOLID, DDD, TDD, BDD, IoC, SoC, UoW), possui aplicações de Windows Phone publicadas no marketplace, já contribuiu no jQuery UI. Atualmente trabalha com ASP.NET MVC / Web API, Windows Azure, Amazon AWS, jQuery/UI, Knockout, EF, Ninject, AutoMapper, Restfulie, SignalR, KendoUI.