WebCasts sobre Windows 8

WebCasts sobre Windows 8 – Vamos aprender e desenvolver Windows Store Apps.

Windows 8

Titulo Data Horário Descrição Inscreva-se
Apps 4 Win: Você pode e deve fazer uma App! 09/10/2012 12:00 Veja neste webcast uma breve explicação sobre Windows Store Apps. Inscrever
Apps 4 Win: Você pode e deve fazer uma App! 09/10/2012 22:00 Veja neste webcast uma breve explicação sobre Windows Store Apps. Inscrever
Apps 4 Win: Prepare seu ambiente! Instalar o Windows 8 é o primeiro passo! 11/10/2012 12:00 Veja neste webcast como preparar o seu ambiente de TI para começar o desenvolvimento de uma Windows Store App. Inscrever
Apps 4 Win: Prepare seu ambiente! Instalar o Windows 8 é o primeiro passo! 11/10/2012 22:00 Veja neste webcast como preparar o seu ambiente de TI para começar o desenvolvimento de uma Windows Store App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 1! Descubra como é fácil! 15/10/2012 12:00 Veja neste webcast como começar o desenvolvimento de sua App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 1! Descubra como é fácil! 15/10/2012 22:00 Veja neste webcast como começar o desenvolvimento de sua App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 2! Continue seu trabalho! 16/10/2012 12:00 Veja neste webcast como desenvolver sua Windows Store App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 2! Continue seu trabalho! 16/10/2012 22:00 Veja neste webcast como desenvolver sua Windows Store App. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 3! Concluindo sua App! 18/10/2012 12:00 Veja neste webcast como terminar sua App e deixá-la pronta para submissão na Windows Store. Inscrever
Apps 4 Win: Desenvolvendo sua app parte 3! Concluindo sua App! 18/10/2012 22:00 Veja neste webcast como terminar sua App e deixá-la pronta para submissão na Windows Store. Inscrever
Apps 4 Win: Você na Windows Store! 22/10/2012 12:00 Veja neste webcast como funciona o processo de submissão de Apps na Windows Store. Inscrever
Apps 4 Win: Você na Windows Store! 22/10/2012 22:00 Veja neste webcast como funciona o processo de submissão de Apps na Windows Store. Inscrever
Apps 4 Win: Sua App, finalmente, disponível para o mundo! 23/10/2012 12:00 Veja neste webcast como finalizar a submissão da sua App na Windows Store. Inscrever
Apps 4 Win: Sua App, finalmente, disponível para o mundo! 23/10/2012 22:00 Veja neste webcast como finalizar a submissão da sua App na Windows Store. Inscrever

Bons estudos pessoal 🙂

Desenvolvendo aplicativos para Windows 8, Windows Phone e Windows Azure.

Desenvolvendo aplicativos para Windows 8, Windows Phone e Windows Azure.

Olá Pessoal, a Microsoft lançou a versão brasileira de um portal que auxilia no desenvolvimento para Windows 8, Windows Phone e Windows Azure.

O site concentra informações para que você possa aprender, desenvolver e publicar suas aplicações para essas novas plataformas.

Dê uma olhada e boa programação a todos 🙂
http://www.microsoft.com/brasil/apps/ 

Fonte:

Até a próxima!

Palestra LightSwitch – Visual Studio Summit 2012

Olá Pessoal,

Como mencionei aqui algumas vezes, apresentei no evento Visual Studio Summit 2012 uma palestra sobre LightSwitch e hoje publico a gravação da palestra e o projeto que desenvolvi durante a apresentação para quem quiser fazer alguns testes.

Não sou especialista em palestras ainda, mas espero que gostem 🙂

O código fonte do projeto está aqui:
ProjetoLightSwitch.zip

A fonte utilizada para consultar o catálogo do Netflix foi:
http://odata.netflix.com/v2/Catalog/ 

Os vídeos de todas as palestras:
http://www.baboo.com.br/2012/10/videos-do-visual-studio-summit-2012/ 

Agradecimentos:

  • Ramon Durães – Pela oportunidade de apresentar a palestra.
  • Baboo – Pela colaboração com fotos e filmagens.
  • Rodrigo Carvalho – Pela realização do Evento na Microsoft

Agradeço a todos também que de alguma forma contribuíram para tornar este evento memorável da forma que ocorreu.

Até a próxima.

C# – Para Iniciantes – Parte 6 – Syntactic Sugar

Olá pessoal, já ouviram falar de Syntactic Sugar ?

Syntactic Sugar, também usado como Syntax Sugar, é um termo utilizado para quando uma linguagem de programação oferece uma forma mais fácil de ser lida e escrita.

Usar syntactic sugar refere-se a escrever um código de forma alternativa ao modo tradicional, com a finalidade de escrever menos código e torná-lo mais expressivo.

O que acontece é que nem sempre conhecemos todos os modos de se escrever em uma linguagem e podemos nos deparar com um código “estranho”.

Vou abordar dois exemplos de Syntactic Sugar em C#.

Primeiro exemplo:

O que está acontecendo aqui?

    int? numero = null;
    numero = 12;

Colocar um “?” no final de um tipo significa dizer que ele é um “Nullable Type”.

Nullable Type são instâncias de System.Nullable<T> struct. Ou seja, um int por exemplo pode receber valores entre -2147483648 a 2147483647 mas nunca um “null”, um int? além de receber valores entre -2147483648 a 2147483647 também pode receber “null”.

Em algum determinado momento sua variável do tipo int poderia receber um dado nulo “null”, por exemplo, ao receber valores de uma tabela de um banco de dados onde a coluna estivesse vazia “null”.

Se você fizer isso terá um erro:

    int numero = null;
    numero = 12;

    //Cannot convert null to 'int' because it is a non-nullable value type

Usar “?” para descrever um “Nullable Type” é uma forma reduzida, pois originalmente é feito assim:

    System.Nullable<int> numero = null;
    numero = 12;

Legal, agora já aprendemos o que é um “Nullable Type” e como declarar um tipo desse de forma reduzida.

Segundo exemplo:

O que está acontecendo aqui?

    string NomePrincipal = null;
    string NomeAlternativo = "Eduardo";

    string Nome = NomePrincipal ?? NomeAlternativo;

Afinal o que são estes dois pontos de interrogação? (??)

O código acima é para testar se a variável NomePrincipal não é nula (null) e se caso for, então atribuir a variável NomeAlternativo para a variável Nome.

Este é mais um exemplo de syntactic sugar no C#, menos código escrito e mais simples de entender. O que está acontecendo no código acima poderia ser escrito assim:

    string NomePrincipal = null;
    string NomeAlternativo = "Eduardo";

    string Nome = NomePrincipal != null ? NomePrincipal : NomeAlternativo;

Agora deu para entender?
No exemplo acima utilizamos um operador ternário. O operador ternário já é uma forma de escrever menos código, porém não é syntactic sugar.

Note que o primeiro exemplo de código exibido não é um operador ternário, apenas foi escrito de uma forma “abreviada” (isto é syntactic sugar).

    string Nome = NomePrincipal ?? NomeAlternativo;

Note também que usar o “??” é valido apenas para testar se um valor é “null”, não pode ser aplicado para outros tipos de validações.

Veja como ficaria se estivéssemos escrevendo da forma mais básica:

    string NomePrincipal = null;
    string NomeAlternativo = "Eduardo";

    string Nome;

    if (NomePrincipal != null)
    {
        Nome = NomePrincipal;
    }
    else
    {
        Nome = NomeAlternativo;
    }

Muito mais código, maior o tempo para ler e compreender.

Vamos aumentar as possibilidades? Veja só:

    string NomePrincipal = null;
    string NomeAlternativo = null;
    string NomeQualquer = null;

    string Nome = NomePrincipal ?? NomeAlternativo ?? NomeQualquer ?? "Sem Nome";

    // Resultado: Nome = "Sem Nome"

Podemos usar quantos “??” quisermos em nosso código, experimente escrever isso da forma mais básica, seria chato né? 🙂

Usar os benefícios do syntactic sugar é legal, facilita nosso entendimento ao ler e agiliza na hora de escrever reduzindo o tempo de codificação.

Referências:

Se você gostou compartilhe esse artigo, se tiver dúvidas ou quiser contribuir com algo faça um comentário.

Até a próxima.

Visual Studio 2012 Product Guide

Olá pessoal,

Estarei menos assíduo nas postagens até setembro, pois estou preparando o conteúdo da palestra do Visual Studio Summit 2012.

Por falar nisso gostaria de ter um visão completa sobre o produto?

Estou disponibilizando o link para download do Visual Studio 2012 Product Guide, conteúdo oficial Microsoft, vale a pena a leitura.

Visual-Studio-2012-Product-Guide.pdf

Até mais!

Exame para Certificação Microsoft Grátis.

Olá pessoal, boas novas – Exame para Certificação Microsoft Grátis.

A Microsoft liberou alguns PromoCodes para a realização de exames de certificação, tratam-se dos Beta Exam Process, ou seja, os novo exames de certificação que em breve serão lançados.

A categoria é Visual Studio 2012, segue abaixo a lista dos exames:

Exame
PromoCode
Expiração
71-481 – Essentials of Developing Windows Metro style Apps using HTML5 and JavaScript
FYT481
20/Agosto
71-482 – Advanced Metro style App Development using HTML5 and JavaScript
GXZ482
17/Agosto
71-483 – Programming in C#
JOK483
21/Agosto
71-484 – Essentials of Developing Windows Metro style Apps using C#
FTT484
05/Setembro
71-485 – Advanced Metro style App Development using C#
FTT485
07/Setembro
71-486 – Developing ASP.NET 4.5 MVC Web Applications
WWW486
17/Agosto
71-487 – Developing Windows Azure and Web Services
WWW487
04/Setembro

Os Exames Beta são um pouco diferentes, pois o resultado não sai na hora como um exame de certificação tradicional, normalmente a Microsoft divulga seu resultado em no máximo 30 dias.

Se passar no exame, ou seja, atingir 700 pontos ou mais, não é necessário realizar novamente o exame tradicional a certificação é dada pelos Exames Beta também.

Mais informações sobre Exames Beta em:
http://www.microsoft.com/learning/pt/br/certification/exam-dev.aspx#tab2 

É uma ótima oportunidade de colocar os novos conhecimentos em dia, dá tempo de estudar e fazer as provas.

Para agendar sua prova vá até o site http://www.register.prometric.com/ e escolha o centro de teste mais próximo a você. No momento do pagamento não precisa preencher os dados do cartão de crédito, basta clicar no botão Voucher / PromoCode e informar o código da prova escolhida.

A prova tem que ser agendada antes da data de expiração e a quantidade de exames é limitada, então corra e agende já o seu 🙂

Conselho:

  • Não marque a prova apenas para testar seu conhecimento. Estude! Como os exames são limitados dê a oportunidade de quem estudou realizar a prova.

Se você quer saber em primeira mão quando estas provas são liberadas acesse regularmente o site http://borntolearn.mslearn.net/

Boa sorte pessoal e espero que obtenham as novas certificações.

Vamos ao Visual Studio Summit 2012 ?

Olá pessoal, Vamos ao Visual Studio Summit 2012 ?

Estou divulgando este evento qual terei muito prazer de ir como palestrante e espectador.

O evento será em São Paulo no dia 22 de Setembro na Sede da Microsoft Brasil.

A grade está recheada de assuntos interessantíssimos, vale muito a pena, as inscrições acabaram rapidamente mas ainda há uma fila de espera, então quem quiser ir ainda dá tempo de tentar uma vaga!
http://www.visualstudiosummit.com.br

Farei uma palestra de 30 minutos sobre a tecnologia LightSwitch, se você quiser saber mais sobre procure sobre os horários na grade:
http://www.visualstudiosummit.com.br/palestras

Aproveito aqui para pedir a todos que já fizeram sua inscrição e infelizmente não poderão comparecer que cancelem seu convite no site: https://msevents.microsoft.com/CUI/MyMSEvents.aspx

Ajude a Divulgar!

Visite o site e clique em curtir no botão facebook na página principal. Um simples clique que faz muita diferença para todos que estão trabalhando duramente na construção desse evento.

Você tem um blog?
Escreva um post sobre o evento.
Você tem twitter?
Escreva um post com a HashTag #VSSummit

Gostaria de agradecer ao organizador do evento Ramon Durães pela oportunidade de palestrar ao lado de profissionais que tanto admiro.

Nos vemos lá, até mais!

C# – Para Iniciantes – Parte 5 – Properties

Olá pessoal, Falaremos hoje sobre C# Properties.

Uma propriedade (Property) é um membro de uma classe que fornece um mecanismo flexível para ler, gravar ou calcular o valor de um dado em particular.
As propriedades permitem que uma classe exponha de uma maneira pública a obtenção e definição destes valores.

Por ex. Temos a classe Carro, uma propriedade de carro é sua cor, ou seja, Cor é um atributo (propriedade) de Carro.

Uma propriedade pode obter um valor de uma classe e também pode defini-lo, sendo assim temos propriedades Read/Write ou apenas Readonly. 
Um exemplo:


// Essa é sua variável interna (privada)
private string _cor;

// Essa é sua propriedade pública.
public string Cor
{
  get { return _cor; }
  set { _cor = value; }
}

Notaram que ao ler o valor (get) a propriedade retorna o valor da variável interna e ao gravar (set) a variável interna é alterada para um novo valor.


// Fazendo Get
string CorCarro = Carro.Cor;

// Fazendo Set
Carro.Cor = "Preto";

E se a propriedade for Readonly?


// Essa é sua variável interna (privada)
private string _cor;

// Essa é sua propriedade pública.
public string Cor
{
  get { return _cor; }
}

Viram? Internamente não implementa o recurso do Set, ou seja, apenas podemos ler o estado, sem alterá-lo.

Agora que já está entendido, mais novidade:
Desde o C# 3.0 (Já estamos no 5.0) foi incluído o recurso de Automatic Properties (Propriedades Automáticas), ou seja, não necessitamos mais declarar o Get nem o Set, aquela variável interna de controle também não (é gerenciado automático).

Então como fica?


// Essa é sua propriedade Read/Write.
public string Cor { get; set; }

// Essa é sua propriedade Readonly.
public string Cor { get; }

Menos código, mais agilidade 🙂

Tem mais uma novidade, através do Visual Studio (2008 ou superior) podemos escrever rapidamente muitas propriedades utilizando o atalho “prop”

É muito simples, Apenas digite prop e dê Tab duas vezes.
Abaixo um vídeo que produzi para ilustrar:

É isso ai pessoal, esse artigo abordou de forma simples sobre as properties, na abordagem sobre classes falaremos mais 🙂

No caso de dúvidas utilizem os comentários.

C# – Para Iniciantes – Parte 4 – Operadores Ternários

Olá Pessoal, O que são Operadores Ternários e como utilizá-los?

O operador ternário é bem simples, serve para validar uma condição (if / else) dada a condição retorna um true ou false.

Mas por que chama-se operador ternário?
Vamos lá:

Temos três tipos de operadores

  • Relacionais (==, !=, >,  <,  >=,  <=)
  • Lógicos (&&, ||, !)
  • Ternários.

Os operadores ternários são formados por três operandos (por isso chama-se ternário), e são separados pelos sinais ? e conforme estrutura abaixo:

condicao ? valor_se_verdadeiro : valor_se_falso

A condição é testada, caso verdadeira é retornado o valor_se_verdadeiro, caso a condição seja falsa é retornado o valor_se_falso.

    int valor1 = 10;
    int valor2 = 15;

    bool resultado = valor1 == valor2 ? true : false;

    // O Resultado foi: False.

Se não existisse o operador ternário como seria escrita essa validação?

    int valor1 = 10;
    int valor2 = 15;

    bool resultado;

    if (valor1 == valor2)
    {
        resultado = true;
    }
    else
    {
        resultado = false;
    }

    // O Resultado foi: False.

É uma economia de linhas de código e tanto não acham? 😉

Ahhh, um amigo meu de Visual Basic disse que em VB se faz com “IIf”.
Calma lá! muito cuidado com o IIf no VB, apesar dele fazer o mesmo trabalho ele não é um operador ternário, é uma função. O VB não possui esse operador.

Cuidado por que? Como trata-se de uma função, independente da sua condição os dois valores (true ou false) serão testados, ou seja, se for passado um tipo inválido teremos um erro em tempo de execução. Evitem o IIf do VB.

Como o papo aqui é C#, espero que tenham gostado, como puderam ver é muito fácil usar o operador ternário, acontece no começo de esquecer a sintaxe, nesse caso voltem aqui para relembrar 🙂

Até a próxima.

C# – Para Iniciantes – Parte 3 – Expressão Lambda

Olá Pessoal, Como utilizar uma Expressão Lambda?

De início elas podem assustar um pouco quem não as conhecem, mas basta entender o conceito para transformá-las em grandes aliadas no desenvolvimento de código bonito 😉

As expressões lambda foram introduzidas no .Net para dar suporte as consultas LINQ.

“LINQ – Language Integrated Query, foi introduzido no framework 3.5 para realizar consultas diretas a base de dados ou documentos XML, coleções de objetos e qualquer outra estrutura de dados. Sua sintaxe é parecida com a linguagem SQL”

As expressões lambda se comportam como um tipo de delegate (falaremos dele em breve). Entendemos que a expressão lambda é uma espécie de função, porém sem nome, elas realizam cálculos, filtros, e retornam um valor (ou uma coleção de valores).

Para criar uma expressão lambda é necessário fazer uso do operador lambda “=>” que podemos entender como “Vai para”.

Uma expressão lambda sempre consiste de duas partes (esquerda e direita) separadas pelo  “=>”. A parte à esquerda do “=>” contém uma lista de argumentos (de tipo não necessariamente definido, pois os tipos podem ser automáticamente indicados pelo compilador). O lado direito contém as instruções.

Esta é uma expressão lambda (linha 2):

    int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
    int oddNumbers = numbers.Count(n => n % 2 == 1);

O que está sendo feito?
Note que foi criado um Array de inteiros e atribuído a ele alguns elementos numéricos.
A expressão lambda está retornando os elementos do Array que são impares.

Como? Vamos ler da seguinte forma:
Está sendo retornado um array com apenas os números que satisfazerem a expressão   “n % 2 == 1”, nesse caso foram 5 dos 10 elementos numéricos.

Para quem não sabe x % y significa x módulo y, ou seja, o resto da divisão de x por y, qualquer número impar dividido por 2 resta 1, é assim que validamos números impares.

No final o método count totalizou os impares do array que foi retornado da expressão lamba.

Achou difícil? Vamos tentar esta:

    // O var é uma forma de declarar uma variável que irá assumir o tipo do dado que lhe for atribuido.
    var SelecoesMundiais = new ArrayList(new string[] {"USA", "Africa", "Mexico", "Brasil" });

    // Primeira forma de fazer um filtro usando WHERE
    var MelhorSelecao =
            from string p in SelecoesMundiais
            where p == "Brasil"
            select p;

    // Segunda forma de fazer um filtro usando WHERE
    var MelhorSelecao2 = SelecoesMundiais.Cast<string>().Where(p => p == "Brasil");

    // Aqui estamos fazendo a mesma coisa sem utilizar expressão lambda
    List<string> MelhorSelecao3 = new List<string>();

    foreach (var Selecao in SelecoesMundiais)
    {
        if (Selecao == "Brasil")
        {
            MelhorSelecao3.Add(Selecao.ToString());
        }
    }

Precisamos assumir que é mais fácil (e prático) usar expressões lambda 🙂
O último exemplo usando ForEach atende também, mas a quantidade de variáveis e de linhas de código é maior.

Segue mais um exemplo, a ideia desse código é receber uma lista com nomes duplicados, filtrar de forma que não se repitam e converter o nome para UPPER CASE.
Repare que esta sendo chamada uma função externa dentro de uma expressão lambda:

    List<string> ListaNomesDistintos = new List<string>();

    List<string> ListaNomes = new List<string>();

    // Adicionando nomes à lista
    ListaNomes.Add("Eduardo");
    ListaNomes.Add("Enzo");
    ListaNomes.Add("Edna");
    ListaNomes.Add("Juliana");
    ListaNomes.Add("Eduardo");
    ListaNomes.Add("Enzo");

    // Atribuindo para nova lista o retorno dos dados tratados pelo Distinct.
    // O Distinct no LINQ assim como no SQL é responsável por eliminar duplicações de informação.
    ListaNomesDistintos = ListaNomes.Distinct().ToList();

    // Utilizando o ForEach genérico com uma expressão lambda.
    // Basicamente está pegando cada elemento e jogando dentro da função TransformaUpperCase.
    ListaNomesDistintos.ForEach(n => TransformaUpperCase(n));

    // Aqui você pode verificar que os nomes não estão duplicados e foram transformados em UPPERCASE.
    public void TransformaUpperCase(string nome)
    {
        MessageBox.Show(nome.ToUpper());
    }

Com esse exemplo podemos entender o quanto podemos explorar a capacidade das expressões lambda.

Esse post é apenas uma pequena amostra dos recursos, recomendo a vocês que deixem as expressões lambda fazerem parte de seus códigos, as vantagens são diversas.
Pretendo mostrar a utilização de expressão lambda em cenários mais complexos em um próximo post.

Utilizem os comentários para tirar dúvidas 🙂

Referências: