Posts tagged ‘msdn;c#’

Visual Studio 2015 e C# 6–Algumas Novidades

Olá, como todos já devem saber a Microsoft liberou na última quarta-feira (12/11) a versão Public Preview do Visual Studio 2015 e também uma versão free agora chamada de Visual Studio 2013 Community. Junto com o Visual Studio 2015 temos agora o novo C# 6. Neste post vou falar sobre algumas das novidades da IDE e também do C# 6.

Novidades da IDE:

Code Fixer: identifica problemas no código e mostrar possíveis soluções:

image

Ao encontrar um possível problema no código, é mostrada uma pequena “lâmpada amarela” que ao ser clicada mostra os fixers disponíveis. O mais interessante é que você tem um preview do seu código com a aplição do Fixer:

image

Após isto é só escolher o fixer que mais lhe agrada e aplicá-lo. Nem precis dizer que isto aumenta exponencialmente a sua produtvidade!!!

InLine Rename: renomeia o seu código e mostrando o que será modificado em destaque

image

Ao clicar com o botão direito do mouse sobre o nome “Funcao” e escolher Rename, todas os locais já são identificados e o rename é feito diretamente no editor, digitando sobre o nome em destaque e tem mais, você pode renomear até o que em comentários, basta configurar a janela abaixo, que aparece no canto direito do seu editor.

image

Novo Gerenciador de Pacotes NuGet:

Você já deve utilizar o NuGet para instalaer componentes em seus projetos, eu mesmo já demonstrei isto em vários outros posts aqui no blog. Mas agora é possível gerenciar e instalar os pacotes através de uma nova janela bem mais simples, que você abre clicando com o botão direito do mouse em Referentes na sua Solution:

image

Isto abre a nova janela o NuGet:

image

Esta janela tem uma grande novidade que é permitir você escolher a versão do pacote que quer instalar. Mas você ainda pode continuar instalando seus pacotes pelo gerenciador de linha de comando.

Novidades do C# 6:

Formatando Strings:

Hoje para formatarmos uma string, utilizamos String.Format():

var X = 10; 

var Y = 20;

var str0 = string.Format("Valor de X: {0} e Y: {1}", X,Y);

Mas com o C# 6, podemos fazer isto desta forma:

var X = 10; 
var Y = 20; 

var str1 = "Valor de X: \{X} e Y: \{Y}";

Aqui nos simplesente montamos a string e no local onde queremos os valores, nós os colocamos precedidos de uma barra invertida e dentro de colchetes.

Usando operadores nulos (?.):

É muito comum durante o desenvolvimento você verificar se algum tipo objeto não é nulo, para assim chamar algum método ou valor. Normalmente faríamos assim:

var conexao = new SqlConnection("data source=(local); initial catalog=northwind; integrated security=true"); 
var cmd = new SqlCommand("select CompanyName from customers where CustomerID='AAAA'", conexao); 
conexao.Open(); 

var retorno = cmd.ExecuteScalar(); 
if(retorno != null) 
{    
     var dados = retorno.ToString(); 
} 
conexao.Close(); 
 

Agora podemos fazer assim:

dados = retorno?.ToString(); 
 

Isto informa ao compilador que é para ele executar o ToString() somente se a variável retorno for diferente de null. Simples não!!!

Exception Filters:

Você certamente trata os erros em sua aplicaçao através de Try…Catch…Finally, algo como o código abaixo:

try 
{
}
catch (SqlException ex)
{
}
finally 
{ 
} 

Agora imagine que você queira que a excecão SqlException disparasse somente se houvesse uma condição para isto acontecer:

try 
{ 
} 
catch (SqlException ex) if(ex.Server == "MeuServidorLocal") 
{ 
} 
finally 
{ 
} 

No nosso exemplo, a exceção só dispara se o nome do servidor for “MeuServidorLocal”

Novo compilador Roslyn (.Net Compiler Platform)

Esta é sem dúvida alguma a maior de todas as novidades, pois muito do quev acabei de escrever acima só é possível graças ao novo compilador. No meu post anterior eu falei brevemente sobre o novo compilador e também sobre um projeto Open Source da qual eu estou fazendo parte.

É isto aí pessoal, a idéia deste primeiro post sobre o Visual Studio 2015 e C# 6 é só para você sentirem o que está vindo por aí! Leiam, estudem, aproveitem!!!

Um grande abraço e até a próxima,

Carlos dos Santos

C# Roslyn e Projeto Open Source–CodeCracker

Esta semana a Microsoft anunciou o novo Visual Studio 2015 e junto com ele o C# 6 com seu novo compilador, anteriormente conhecido como Roslyn e agora oficialmente chamado de .Net Compiler Platform.

Com o Roslyn possível termos acesso a estrutura do compilador, sua árvore sintática e também mudar o seu comportamento através de componentes chamados Analyzers.

Na semana passada, quando eu estava na sede da Microsoft em Redmond/USA, participei de um hackaton com o time do compilador Roslyn, onde eu e diversos outros MVPs tivemos a oportunidade de escrever alguns analyzers juntamente com o time do Roslyn e durante este mesmo evento surgiu a idéia de criarmos um projeto Open Source contendo diversos analyzers, totalmente aberto e free, disponível para toda a comunidade de desenvolvedores, nascia então o projeto CodeCracker, naquele momento criamos o time inicial, composto por mim, Giovanni Bassi e o Elemar Junior, todos MVPs de C#. Subimos então os primeiros analyzers e agora estamos trabalhando nest projeto.

Como o projeto é Open Source está no GitHub, todo desenvolvedor que tiver interessde em participar, codificar junto com a gente, basta entrar em contato que adicionamos ao projeto, afinal queremos criar muitos analyzers e fixes!!!

Falando um pouco do que são os analyzers, vou explicar mostrando como eles funcionam, sendo assim, imagine então que você pode condicionar o compilador a validar o código fonte e apontar possíveis melhorias, ja fazendo as correções necessárias, tudo isto no editor de código fonte.

Vamos então a um pequeno exemplo de código:

image

Este é um típico código onde o desenvolvedor não fez o tratamento da exceção. Agora com um dos Analyzers, o compilador já sugere uma correção:

image

E ao clicar na opção para corrigir, o código já é modificado:

image

Esta é a idéia dos analyzers e fixers que estamos construindo no projeto. Se você achou útil, pode começar a utilizar agora mesmo a versão alfa através do Nuget abaixo:

Se você achou demais a idéia e quer escrever analyzers, fale com a gente e participe do projeto open source!

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

Dapper–Um Micro ORM muito interessante

Olá pessoal,

Eu utilizo muito EntityFramework nos projetos da empresa, pois trabalhar com classes e objetos é muito mais simples do que utulizar acessio a dados tradicionais. Mas recentemente comecei a utilizar o Dapper, que pode ser chamado de um micro ORM, pois ele possui algumas funcionalidades bem pontuais para trabalharmos com acesso a dados.

Então vamos pensar em um cenário onde você precisa consultar um banco de dados qualquer, e colocar o resultado desta consulta em um objeto. Você logo pensaria em criar uma classe, fazer um mapeamento para um contexto, etc. Sim, este seria o caminho normal para um ORM, mas não para o Dapper.

O Dapper trabalha com extension methods para a sua conexão, ou seja, você irá inicialmente criar uma conexão para o seu banco de dados, como se fosse utilizar ADO.Net, por exemplo: SqlConnection, OracleConnection, MySqlConnection, etc. No caso do Dapper, você também é o responsável por abrir e fechar a sua conexão.

Como ele trabalha com métodos de extensão sobre a conexão, o que temos a fazer é instalar o Dapper via NuGet, criar a nossa conexão e começar a utilizar.

Para começaramos a utilizar, vamos criar um projeto console no Visual Studio:

SNAGHTML115102b5

Agora vamos instalar o Dapper utilizando NuGet (Tools/NuGet Packager Manager/Packager Manager Console:

PM> install-package Dapper

Agora vamos escrever um código simples para um Select no banco de dados. No nosso exemplo vou utilizar o banco de dados NorthWind da Microsoft. Vou então fazer um select simples na tabela Customer:

 
using System; 
using System.Collections.Generic; 
using System.Data.SqlClient; 
using System.Linq; 
using System.Text; 
using Dapper;  

namespace ExemploDapper 
{     
     class Program
     {
         static void Main(string[] args)
         {
             SqlConnection conexao = new SqlConnection("data source=(local); initial catalog=northwind; integrated security=true;");
             conexao.Open();
             var dados = conexao.Query("select * from customers");
             foreach (dynamic linha in dados)
             {
                 Console.WriteLine("{0} - {1}", linha.CustomerID, linha.CompanyName);
             }
             conexao.Close();
         }
     }
 }

Veja que para utilizarmos o Dapper, depois de adicionado com o NuGet, basta colocar o “using Dapper” para que o método de extensão Query() apareça na nossa conexão. E para realizar a consulta, basta informarmos o comando SQL e depois pegarmos o resultado. No exemplo acima, não utilizei uma classe como retorno e neste caso o Dapper retorna uma lista que podemos acessar com dynamic.

Vamos agora adicionar uma classe Customer ao nosso projeto, de acordo com o código abaixo:

using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExemploDapper
{
    class Customer
    {
        public string CustomerID { get; set; }
        public string CompanyName { get; set; }
        public string City { get; set; }
    }
}

Neste exemplo estou adicionando somente alguns campos da classe. Agora vamos modificar nossa consulta utilizando a classe Customer:

var dados1 = conexao.Query<Customer>("select customerID, companyName, City from customers");
foreach (var linha in dados1)
{
     Console.WriteLine("{0} - {1}", linha.CompanyName, linha.City);
}

Vamos agora incrementar nossa consulta adicionando um filtro:

var dados2 = conexao.Query<Customer>("select CustomerID, CompanyName, City from customers where City = @City", new { City = "London" });

foreach (var linha in dados2)
{
   Console.WriteLine("{0} - {1}", linha.CompanyName, linha.City);
}

Veja como é bem simples, basta você criar o comando Select com o parâmetro e depois passar um objeto anônimo com os valores.

Vamos agora fazer uma inclusão na tabela Categories do banco NorthWind, veja como é simples:

conexao.Query("insert into Categories(CategoryName) values(@CategoryName)",new {CategoryName = "Teste"});

A idéia é a mesma da consulta com parâmetros, você insere os parâmetros e passa um objeto com os valores.

Ao final de tudo isto, talvez você esteja se perguntando qual a vantagem de utilizar o Dapper ? A resposta é simples: performance.

Veja a tabela abaixo, comparando a velocidade de consulta:

image

Ou seja, para consultas em massa, o Dapper é mais rápido!

Ops! Isto significa que devo abandonar meu ORM e utilizar somente o Dapper, claro que a resposta é NÃO! O que você pode fazer é complementar a sua aplicação utilizando o Dapper para inclusões de dados em massa por exemplo, onde ele é mais rápido.

Neste post eu procurei fornecer uma visão geral e também uma alternativa de ORM que você pode utilizar em sua aplicação. Se você quer se aprodundar um pouco mais no Dapper, recomendo visitar a página oficial do projeto no Github.

Um grande abraço e até a próxima!

Carlos dos Santos.

Entity Framework 4.3 lançado!

Pessoal,

A Microsoft acaba de lancar a versão 4.3 do Entity Framework CodeFirst, agora com todas as novidades que vinham sendo trabalhadas nos betas, consolidadas nesta versão.

Um dos pontos mais trabalhados foi o Migrations, que permite que você atualize o banco de dados, seja de desenvolvimento ou produção, simplesmente através das mudanças em suas classes POCO.

Muitas novidades ainda estão por vir na versão que deverá sair logo após o lançamento do novo Visual Studio, pois muitas das mudanças anunciadas para o Entity Framework, como por exempo suporte a enums, necessita de mudanças também no .Net Framework.

Confira as novidades nos links:
http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx
http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-code-based-migrations-walkthrough.aspx
http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-automatic-migrations-walkthrough.aspx

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

Nova versão do Debugger Canvas

Pessoal, eu fiz um post sobre o Debugger Canvas há um tempo atrás. Agora foi lançada a versã 1.1, que conta com diversas melhorias, como por exemplo: ligar/desligar o canvas durante o debug, edição de código dentro do canvas, entre outros.

Após baixar e instalar o Debugger Canvas, você pode configurar a ativar as opções no menu Tools/Options/Debugger do Visual Studio:
image

Depois é só executar o seu código:
image

A diferença é aque você pode alternar entre o Debugger Canvas e o Debugger convencional, através da opção “Debugger Canvas” do menu Debug.

Quando você não conhece bem o código, o Debugger Canvas é uma excelente alternativa para você entender como os métodos são chamados, visto que conforme você vai navegando pelo Debug, as caixas com os códigos vão aparecendo e suas ligações também:
image

Valeu pessoal e até a próxima.
Carlos dos Santos.

TechEd 2011–Palestra Entity Framework

Pessoal,

Este ano tive o prazer de ser palestrante no maior evento de tecnologia Microsoft do Brasil, o TechEd 2011. Confesso que fiquei muito ansioso e também nervoso, pois a responsabilidade em um evento destes é muito grande, e sempre procuramos fazer o melhor. Fiquei muito feliz que a sala ficou praticamente lotada e mais feliz ainda porquê vários amigos foram me prestigiar, então muito obrigado aos amigos Renato Haddad, Fernando Cerqueira, Israel Aece e Bruno Sonnino.

Espero que o evento tenha sido excelente para todos, não só pelo conteúdo técnico, que foi de altíssimo nível, mas também pela oportunidade de fazer contato com novas pessoas, fazer network.

Vejam as fotos da minha palestra:

IMG_6017IMG_6021IMG_6023IMG_6024IMG_6027IMG_6031IMG_6033IMG_6038IMG_6048IMG_6052IMG_6044IMG_6049

O código fonte da palestra pode ser baixado aqui.

Abraços,
Carlos dos Santos.

Brazilian Translation Wiki 2011 Community Participant Award

Pessoal,

Acabei de receber um reconhecimento da Microsoft que me deixou muito contente. Já é o segundo prémio do Translation Wiki que recebo por participar dos trabalhos de moderação da MSDN Library (http://msdn.microsoft.com/pt-br/library), onde basicamento corrigimos os textos traduzidos automaticamente e também os textos da comunidade.

Costumo dizer que é um trabalho interessante e que ajuda também a aumentar meus conhecimentos, pois frequentemente estou acessando os mais variados assuntos.

Vejam abaixo o belíssimo troféu que recebi, juntamente com uma carta de agradecimentos assinada pelo Somasegar (Senior Vice President a Developer Division) e um Microsoft Arc Mouse.

DSC05926

Abraços,
Carlos.

MSDN Library em Português (MSDN WIKI)

Pessoal,

A MSDN Library é um importante recurso para todos os desenvolvedores da plataforma Microsoft .Net e somo muito gratos por tê-la em portugês (PT-BR), pois nem todos tem o domínio do inglês, principalmente enquanto iniciante em desenvolvimento de software.

Mas você já pensou em contribuir com a biblioteca, deixando-a melhor ainda ? Você pode se tornar um contribuidor do MSDN, sugerindo novos termos para a tradução, o que deixaria a biblioteca ainda mais com a cara do Brasil.

Acesse agora mesmo e começe analisar os textos, com certeza você ainda vai precisar acessar a MSDN Library para pesquisar algo e seria muito bom se você encontrasse exatamente o que você precisa. E ainda você pode ser reconhecido pela comunidade e pela Microsoft.

Acesse agora mesmo e qualquer dúvida, entre em contato!

Abraços,
Carlos dos Santos.

Visual Studio 2010 Service Pack 1

Pessoal,

Já está disponível o SP1 do Visual Studio 2010 com diversas melhorias, como suporte a Silverlight 4, HTML 5, teste de performace para Silverlight, IIS Express, suporte a Razor, melhorias no editor XAML, entre diversas correções de problemas (veja lista completa do SP1 aqui).

Está também disponível o SP1 do Team Foundation Server com diversas melhorias, o link para download é o mesmo do VS2010 (veja lista completa do SP1 aqui).

Para você ver mair informações e baixar o SP1 do Visual Studio e do TFS, acesse este link.

É isto aí, espero que vocês baixem e curtam os novos services packs.

Abraços,
Carlos dos Santos.

Curso Gratuito de Visual Studio 2010

Pessoal,

Para quem achar interessante, existe um treinamento gratuito de Visual Studio 2010, que pode ser acessado neste site aqui.

O treinamento está em Inglês mas é muito bom.

[]s,

Carlos.