Fujiy

Blog sobre .NET, C#, ASP.NET entre outras tecnologias de desenvolvimento de software

O que há de novo no C# 7.0 - Variáveis Out

8/28/2016 1:39:36 PM By Felipe Pessoto

Até o C# 6.0, chamar um método que utiliza parâmetros out não é tão fluido, pois você precisa declarar as variáveis antes de chamar o método, e nem é possível usar o var já que normalmente não se inicializa variáveis que são argumentos do método out.

Então você precisa verificar quais os tipos das variaveis utilizadas nos parametros out, voltar e declarar antes do método:

public void OutVariablesExample60()
{
    int myX;//var myX doesn't work
    int myY;

    if(MethodOut(out myX, out myY))
    {
        Console.WriteLine(myX);
    }
}

No C# 7.0 esta experiência será melhorada, ao chamar o método você pode declarar as variáveis de forma inline. Com isso o compilador sabe os tipos delas, permitindo inclusive o uso do var:

public void OutVariablesExample70()
{
    if (MethodOut(out int myX, out var myY))
    {
        Console.WriteLine(myX);
    }
}

As variáveis declaradas estarão no escopo do bloco onde o método é chamado. No Preview 4 o compilador ainda restinge o escopo para o statement onde a variável foi declarada, por isso só funciona como no exemplo acima, onde temos um bloco IF. Esta restrição será removida até a versão final.

Sempre que novas funcionalidades são acrescentadas acho interessante verificar como o código IL é gerado para saber como foi feita a implementação. Neste caso é bem simples, o novo código gera uma versão identica ao exemplo em C# 6.0.

Livro - Desenvolvimento efetivo na plataforma Microsoft

5/6/2016 7:47:38 PM By Felipe Pessoto

Com muita alegria que divulgo o lançamento do livro, escrito pelo time de Modern Apps. Todos os dias aprendo algo novo com eles e neste livro é compartilhado a experiência em DevOps, .NET, IIS e Microsoft Azure, após vivenciar diversos casos críticos nas maiores companhias do mundo.

 

Desenvolvimento efetivo na plataforma Microsoft

Como desenvolver e suportar software que funciona

 

 

Sumário

Os Engenheiros de Suporte Microsoft em Modern Apps têm a oportunidade de trabalhar com sistemas críticos nas maiores companhias do mundo dos mais diversos segmentos. Ao longo dos anos, estes profissionais qualificaram-se no desenvolvimento e suporte baseando-se nas recomendações dos produtos e em boas práticas vivenciadas nas experiências de campo. Trabalhando lado a lado com os clientes, compartilhando conhecimento com milhares de times de desenvolvimento e auxiliando cada pessoa e cada organização a atingir todo o seu potencial.

Com foco em DevOps, .NET Framework, IIS (Internet Information Services) e Microsoft Azure, desenvolvedores e arquitetos estarão aptos a aperfeiçoar a qualidade e disponibilidade de seu software, aumentar seu nível de maturidade em desenvolvimento, economizar tempo e reduzir custos.

 

Mais informações: https://www.casadocodigo.com.br/products/livro-plataforma-microsoft

MS: Architecting Microsoft Azure Solutions - 70-534

7/25/2015 3:31:07 PM By Felipe Pessoto

MS: Developing Microsoft Azure Solutions - 70-532

7/25/2015 3:24:29 PM By Felipe Pessoto

GitHub e Two Factor Authentication no Visual Studio

5/3/2015 4:12:13 PM By Felipe Pessoto

Se você ainda não está usando o Visual Studio 2015 RC, que vem com uma extensão do GitHub, vai ter problemas ao sincronizar seu repositório com o GitHub após ativar o Two Factor Authentication.

Para quem ainda não viu a nova extensão pro VS2015:

Atualmente, quem usa o VS2013, vai se deparar um com erro 401, e a tela de login.

Clique em Sync

Será exibida a tela de login.

Não adianta colocar seu login e senha. Pois agora o Two Factor Authentication está ativo.

Como o Visual Studio não suporta essa funcionalidade, você vai precisar criar um Token no site do GitHub. O que é bem simples, acesse o link https://github.com/settings/tokens e clique em "Generate new token"

As opções padrões são suficientes:

Guarde o token gerado

Ele deve ser usado no login do login, a senha deve ficar em branco:

Com isso você vai conseguir sincronizar com sucesso: