Archive for September 2016

Microsoft Open Source

Na última quinta-feira (22/09) estive em Ilha Solteira/SP na Unesp falando sobre Microsoft Open Source para o pessoal de Engenharia Elétrica. Valeu pessoal, a papo foi muito legal.

Nâo sei se todos sabem, mas existe muito código fonte sendo compartilhado pela Microsoft no GitHub, veja: https://github.com/microsoft. Mais interessante ainda é abrir um Linux dentro do Windows 10, quem diria! Eu fiz um outro post sobre isto.

Recentemente também a Microsoft ficou em primeiro lugar no ranking de empresas que colaboram no GitHub:

image

E para você que ainda está incrédulo, aqui estão os PPTs da minha palestra. E as fotos da minha visita aqui no facebook.

Abraços e até a próxima,
Carlos dos Santos.

C# 7.0–Tuples

Olá pessoal,

Há algum tempo atrás eu publiquei um post falando sobre Tuples em C#, que é um recurso bem interessante para retorno de múltiplos valores, principalmente quando você não quer criar uma classe somente para isto.

Agora com o C# 7.0 (ainda em preview) as Tuplas ganharam novos recurso que facilitam ainda mais a sua utilização, agora podemos dar nomes aos elementos, faclitando ainda mais o nosso código.

Para executarmos os exemplos você vai precisar baixar o Visual Studio “15” Preview 4. Atenção: se você ja tiver uma versão anterior deste Visual Studio, precisará removê-la antes de instalar o Preview 4.

O preview 4 é uma nova IDE, com novos recursos e um novo modelo de instalação, veja:

image

Você pode escolher o que achar interessante e depois clicar em “Install”. Esta instalação nos dá uma idéia do que esrá por vir, um modelo bem mais intuitivo de setup.

Depois de instalado o Visual Studio “15” Preview, vamos criar um projeto Console:

image

Inicialmente vou mostrar como estâo as tuplas hoje. Para isto vou criar um método que retorna vários parâmetros:

   1: class Program

   2: {

   3:    static void Main(string[] args)

   4:    {

   5:       var ret = BuscaNomeLimite(1);

   6:       Console.WriteLine($"Nome: {ret.Item1} - Limite: {ret.Item2}");

   7:    }

   8:  

   9:    static Tuple<string,decimal> BuscaNomeLimite(int ID)

  10:    {

  11:       return new Tuple<string, decimal>("Carlos",1000);

  12:    }

  13: }

Isto já facilita muito o desenvolvimento, principalmente quando você não quer criar uma classe para fazer isto, mas ao mesmo tempo gera um código um tanto confuso, pois os parâmetros sâo nomeados como Item1, Item2, etc.

Agora vamos ao C# 7 e ver como isto melhorou, e muito!!! Entâo vamos fazer um upgrade no nosso método usando a sintaxe nova, mas como ainda estamos em Preview, é necessário instalar o pacote System.ValueTuple usando o Nuget. Para isto clique com o botão direto no seu projeto e selecione “Manage Nuget Packages”, depois marque a opção “Include prerelease” e depois digite “tuple” na caixa de pesquisa:

image

Clique no botão Install e siga os passos! Pronto, agora vamos melhorar nosso código:

   1: static void Main(string[] args)

   2: {

   3:    var ret = BuscaNomeLimite(1);

   4:    Console.WriteLine($"Nome: {ret.nome} - Limite: {ret.limite}");

   5: }

   6:  

   7: static (string nome, decimal limite) BuscaNomeLimite(int ID)

   8: {

   9:    return ("Carlos", 1000);

  10: }

Veja que com a nova sintaxe, você pode nomear os campos da Tupla, ou seja, pode usar nomes mais intuitivos e a sintaxe é bem simples. Basicamente você coloca os nomes e tipos entre parênteses, no mesmo local onde antes estava a Tuple<>:

image

E no retorno você coloca os valores, também entre parênteses, na mesma sequência da definição do médodo:

image

Você pode também nomear os parâmetros no retorno, para isto basta colocar o nome do parâmetro e dois pontos, seguido do valor de retorno:

image

Tuplas são um recurso muito legal do C#, e agora, com a nomeção dos campos, seu código vai ficar ainda mais simples de ser entendido!

Abraços e até a próxima!

Carlos dos Santos.