Primeiro contato com o VS2008 - LINQ

Finalmente tive tempo de instalar e testar o Visual Studio 2008 e realmente adorei as suas novidades, dentre elas a LINQ (Language Integrated Query), não irei detalhar aqui os conceitos dessa linguagem, para maiores detalhe sobre LINQ e outras tecnologias de desenvolvimento da plataforma Microsoft acesse o blog do MVP Ramon Durães.

Outra dica é o e-book (Introducing Microsoft LINQ) que a Microsoft está disponibilizando para download gratuito, para saber mais acesse http://www.microsoft.com/learning/vstudio/2008/default.mspx.

Antes de iniciar tenho que informar que a sintaxe utilizada na LINQ é parecida com a linguagem SQL de forma a tornar mais fácil o acesso aos dados. Outro detalhe é a escrita que é feita na ordem inversa da habitual escrita de um comando SQL, isso por causa de um recurso chamado Intellisense que facilita o acesso aos dados.

Vamos ao exemplo, irei demonstrar é um simples exemplo da utilização de LINQ para fazer ordenação e consultas a um List<String> onde adicionei alguns nomes aleatoriamente.

Primeiramente vamos criar um novo projeto no VS2008 do tipo Console Application usando a linguagem C#, em seguida iremos criar e carregar os dados na lista que irei chamar de cliente.

// criando lista de strings.
List<String> clientes = new List<string>();

// adicionando elementos a lista.
clientes.Add("Tadeu Torquato");
clientes.Add("Alex Kondera");
clientes.Add("Ramon Durães");
clientes.Add("Diego Alvarez");
clientes.Add("Rafael Ferreira");
clientes.Add("Tiago Santos");
clientes.Add("Frederico Pimentel");
clientes.Add("Luana Santos");

Criada nossa lista de clientes vamos mostrar como ela pode ser exibida sem a utilização de nenhum tratamento, apenas os itens um abaixo do outro.

// mostrar conteúdo da lista da mesma maneira
// como foi adicionados os itens.
foreach (var rs in clientes)
{
    Console.Out.WriteLine(rs);
}

Podemos observar que os nomes estão na mesma ordem a qual foi adicionada à lista.

image

Vamos substituir o ultimo trecho pela sintaxe abaixo:

// declaramos abaixo uma variável chamada query
// que está recebendo o conteúdo da consulta
// que está sendo realizada com o uso do
// recurso da LINQ.
var
query = from c in clientes orderby c ascending select c;

// mostrar conteúdo da consulta realizada acima
foreach (var rs in query)
{
   
Console.Out.WriteLine(rs);
}

O resultado agora é a lista ordenada.

image

Vamos agora substituir o código anterior por um novo onde iremos fazer uma consulta a lista para trazer apenas os nomes que iniciem com a letra “T”.

// declaramos abaixo uma variável chamada query
// que está recebendo o conteúdo da consulta
// que está sendo realizada com o uso do
// recurso da LINQ.
var query = from c in clientes where c.Contains("T") select c;

// mostrar conteúdo da consulta realizada acima
foreach (var rs in query)
{
   
Console.Out.WriteLine(rs);
}

E abaixo o resultado da consulta.

image

Bem pessoal fácil e simples utilizar LINQ.

Abraço.

Posted by tadeutorquato with no comments
Filed under: ,

Novo MSP

Olá pessoal,

Venho informar a todos que com muito orgulho acabo de ser nomeado MSP – Microsoft Student Partners, a partir de agora integro o grupo aqui de Salvador-BA que já é formado por Alex Kondera, Diego Alvarez, Frederico Pimentel, Rafael Ferreira e Tiago Santos.

Mas o que é ser um MSP? , vou colocar abaixo o texto explicativo fornecido pela Microsoft.

“Um MSP (Microsoft Student Partners) é aquele que faz o elo entre as instituições acadêmicas e a Microsoft. Ser um MSP é ser referência de conhecimento entre docentes e discentes sobre as tecnologias Microsoft.

O Programa permite a oportunidade de construir uma rede de contatos e de amigos, possibilitando a troca de experiências pessoais e profissionais para a vida toda!”

Pois é isso ai pessoal, vamos aos trabalhos....

Abraço.

Posted by tadeutorquato with no comments
Filed under: ,

Estrutura de Repetição FOR

Olá a todos, estive afastado um pouco devido às atividades da faculdade, mas retomei agora a minha rotina no blog. 

Hoje irei ilustrar o funcionamento da estrutura de repetição for” e para isso fiz uma aplicação do tipo “Windows Application”. É uma aplicação bem simples, onde é possível incluir em um listbox os nomes que forem digitados no textbox e ao clicar no button cópiar, o conteúdo do listbox1 é adicionado o listbox2 utilizando para percorrer o listbox1 a estrutura de repetição “for”.

Primeiro passo é cria uma aplicação “Windows Application”, como mostra na figura abaixo: 

Segundo passo é desenhar o formulário como mostra na figura 1, colocando os componentes necessários para a aplicação, fazendo alguns ajustes em suas propriedades para ficar como mostra na figura 2

figura 1 figura 2

 

As propriedades de cada componente devem ser alteradas conforme tabela abaixo: 

Componente 

Propriedades 

Valor 

label1 

Name  

Text 

lblAluno 

Aluno: 

textbox1 

Name 

txtAluno 

listbox1 

Name 

lstAlunos 

listbox2 

Name 

lstCopia 

button1 

Name 

Text 

btnIncluir 

Incluir 

button2 

Name 

Text 

Image 

btnTransferir 

 

Importe uma imagem  

 

Próximo passo agora codificar os componentes, que a partir de agora irei chamar pelo seu respectivo Name. Vamos dar duplo clique no btnIncluir e colar o código abaixo: 

            // testa se o textbox txtAluno está preenchido. 

            if (txtAluno.Text != ""

           

                // adciona o conteúdo do txtAluno ao listbox lstAlunos. 

                lstAlunos.Items.Add(txtAluno.Text); 

                // limpa o conteúdo do txtAluno. 

                txtAluno.Clear(); 

                // retorna o foco para o objeto txtAluno. 

                txtAluno.Focus(); 

           


Em seguida iremos dar duplo clique no btnTransferir e colar o código abaixo: 

            // percorre a lista de alunos lstAlunos até o final. 

            for (int i = 0; i < lstAlunos.Items.Count; i++) 

           

                // adiciona ao lstCopia o conteúdo da lista de alunos 

                // de acordo com o index passado 'i' que é incrementado 

                // cada vez que passa pelo for. 

                lstCopia.Items.Add(lstAlunos.Items[i].ToString()); 

           


A sintax do for é a mesma utilizada no C e no Java
 for (int i = 0; i < length; i++). 
 
Se tudo ficou exatamente como foi descrito acima compile a aplicação e teste, escreva no txtAluno um nome e clique no botão Incluir, ficará como mostra a figura abaixo: 

 

Em seguida clique no botão Transferir , ao clicar o conteúdo do lstAluno passará para o lstCopia



Melhorando o procedimento de incluir, vamos editar o evento KeyUp do txtAluno para quando for pressionado o botão ENTER acione o evento Click do btnIncluir, para isso cole o código abaixo no evento KeyUp do txtAluno

            // testa para verificr se foi pressionado a tecla 'Enter'. 

            if (e.KeyCode == Keys.Return) 

           

                // caso seja pressionado 'Enter', faz chamada ao evento 

                // do botão incluir 'btnIncluir_Click' que recebe o objeto 

                // executor do evendo 'sender' e null como 'EventArgs' 

                btnIncluir_Click(sender, null); 

            } 

 

Código fonte da aplicação em C# clique aqui

Abraço a todos e até aproxima.

 

Posted by tadeutorquato with no comments
Filed under: , ,

Retornando Informações do Computador

Olá, ainda na série de estudos em C#.Net, necessitei solicitar algumas informações do computador como nome da máquina, domínio atual, versão do sistema operacional, usando para isso a classe Environment que faz parte do namespace System, aproveitando também para estudar o funcionamento da estrutura de decisão “switch”.

A aplicação consiste em mostrar no console algumas informações da máquina, para isso é solicitado ao usuário que informe o que deseja que seja mostrado, através do numero correspondente a opção desejada. Vamos analisar abaixo o código dessa aplicação.

No trecho abaixo foi declarada apenas uma variável para que fosse possível armazenar a opção escolhida pelo usuário, para isso utilizei uma variável de tipo int.

int iOpcao; // tipo inteiro


O próximo trecho serve para mostrar ao usuário as opções e solicitar que escolha uma das opções armazenando o que foi desejado pelo usuário na variável
iOpcao”.

// Opções

Console.WriteLine("[1] - nome atual do usuário e seu ID.");

Console.WriteLine("[2] - Versão atual do CLR.");

Console.WriteLine("[3] - Domínio do usuário atual.");

Console.WriteLine("[4] - Versão do Sistema Operacional.");

Console.WriteLine("[5] - Diretório do sistema.");

Console.WriteLine("[6] - Nome da máquina.");

Console.WriteLine("[7] - Pega os drives lógicos do computador.");

Console.WriteLine("[8] - Sai do processo atual");


// Solicita e recupera a operação desejada

Console.Write("Favor escolha uma das opções: ");

iOpcao = int.Parse(Console.ReadLine());

O trecho a seguir utilizando a esturura de decisão “switch” para ler da variável iOpcao” o que o usuário selecionou e executando a opção desejada de acordo com o numero informado.

// Ler a opção desejada pelo usuário

switch (iOpcao)

{

case 1: // sentença de instruções para opção 1

          Console.WriteLine(Environment.UserName);

          break;

      case 2: // sentença de instruções para opção 2

          Console.WriteLine(Environment.Version);

          break;

      case 3: // sentença de instruções para opção 3

          Console.WriteLine(Environment.UserDomainName);

          break;

      case 4: // sentença de instruções para opção 4

          Console.WriteLine(Environment.OSVersion);

          break;

      case 5: // sentença de instruções para opção 5

          Console.WriteLine(Environment.SystemDirectory);

          break;

      case 6: // sentença de instruções para opção 6

          Console.WriteLine(Environment.MachineName);

          break;

      case 7: // sentença de instruções para opção 7

          Console.WriteLine(Environment.GetLogicalDrives()[0]);

          break;

      case 8: // sentença de instruções para opção 8

          Environment.Exit(0);

          break;

      default: // sentença de instruções para opção diferente das anteriores

          Console.WriteLine("Nenhuma opcao selecionada.");

          break;

}

A esturura de decisão “switch” é parece com uma seqüência de “IF”, quando a clausula “case” encontra a sentença igual ao valor informado a em “switch (iOpcao) é executada a sentença de instruções associada à opção.
Observe que para cada
“case” tem que existir um “break”, isso se faz necessário para que o fluxo não prossiga. Faça um teste sem o a instrução “break”.

Um outro ponto importante é a linha contendo a instrução “default”, ela se faz necessário caso não seja selecionada nenhuma das opções suportadas pelos “case”.
Observando as instruções que serão executadas, dependendo da escolha do usuário, vamos ver abaixo o que cada uma dessas linhas retorna.


Environment
.UserName - Nome atual do usuário e seu ID.


Environment
.Version  - Versão atual do CLR.


Environment
.UserDomainName – Dóminio do usuário atual.


Environment
.OSVersion – Versão do sistema operacional.


Environment
.SystemDirectory – Diretório do sistema.


Environment
.MachineName – Nome da máquina.


Environment
.GetLogicalDrives() – Pega os drives lógicos do computador.


Environment
.Exit(0) – Sai do processo atual.

Código completo em C#

static void Main(string[] args)

{

     int iOpcao; // tipo inteiro

 

     // Opções

     Console.WriteLine("[1] - nome atual do usuário e seu ID.");

     Console.WriteLine("[2] - Versão atual do CLR.");

     Console.WriteLine("[3] - Domínio do usuário atual.");

     Console.WriteLine("[4] - Versão do Sistema Operacional.");

     Console.WriteLine("[5] - Diretório do sistema.");

     Console.WriteLine("[6] - Nome da máquina.");

     Console.WriteLine("[7] - Pega os drives lógicos do computador.");

     Console.WriteLine("[8] - Sai do processo atual");

 

     // Solicita e recupera a operação desejada

     Console.Write("Favor escolha uma das opções: ");

     iOpcao = int.Parse(Console.ReadLine());

                   

     // Ler a opção desejada pelo usuário

     switch (iOpcao)

     {

            case 1: // sentença de instruções para opção 1

               Console.WriteLine(Environment.UserName);

               break;

           case 2: // sentença de instruções para opção 2

               Console.WriteLine(Environment.Version);

               break;

           case 3: // sentença de instruções para opção 3

               Console.WriteLine(Environment.UserDomainName);

               break;

           case 4: // sentença de instruções para opção 4

               Console.WriteLine(Environment.OSVersion);

               break;

           case 5: // sentença de instruções para opção 5

               Console.WriteLine(Environment.SystemDirectory);

               break;

           case 6: // sentença de instruções para opção 6

               Console.WriteLine(Environment.MachineName);

               break;

           case 7: // sentença de instruções para opção 7

               Console.WriteLine(Environment.GetLogicalDrives()[0]);

               break;

           case 8: // sentença de instruções para opção 8

               Environment.Exit(0);

               break;

           default: // sentença de instruções para opção diferente das anteriores

               Console.WriteLine("Nenhuma opcao selecionada.");

               break;

     }

}

  

Retornando Informações do Computador em C# 

Retornando Informações do Computador em VB.Net

 

Abraço e até a próxima.

Posted by tadeutorquato with no comments
Filed under: , ,

Promessa é divida e eu pago...

Pessoal,

Como havia prometido do poste anterior, estou disponibilizando os códigos fontes dos aplicativos feitos até agora em C#.Net no link abaixo, lembrando que ainda está faltando os códigos feitos em VB.Net. 

 

Fontes dos aplicativos clique aqui

Posted by tadeutorquato with no comments
Filed under: ,

Calculadora Simples (Console)

Olá, dando continuidade aos meus estudos em C#, resolvi fazer uma calculadora simples para testar com seria o funcionamento da estrutura de decisão “if else if” e o funcionamento das operações matemáticas simples, mas que são bastante utilizadas no dia a dia. 

A aplicação consiste em mostrar no console as possíveis operações matemáticas somar, subtrair, multiplicar, dividir e resto da divisão, logo após exibir a lista de opções, será solicitado ao usuário que escolha a operação desejada, através dos símbolos que as representam, que são respectivamente +, -, *, /, %, em seguida será solicitado que seja informado o primeiro valor e o segundo valor para que seja efetuada a operação mostrando no console a operação e o seu resultado. Vamos analisar abaixo o código dessa aplicação. 

No trecho abaixo foram declaradas as variáveis necessárias, observe que foram utilizados apenas dois tipos de variáveis, sendo uma variável string e três long, onde a variável sOperacao” será utilizada para armazenar a operação escolhida, a variável “lResultado” será utiliazada para armazenar o resultado da operação e as variáveis “lPrimeiroValor, lSegundoValor” serão utilizadas para armazenar os valores que o usuário informar. 

string sOperacao; // tipo string 

long lResultado, lPrimeiroValor, lSegundoValor; // tipo long 

 

// inicializando as variáveis 

sOperacao = ""

lResultado = 0; 

lPrimeiroValor = 0; 

lSegundoValor = 0; 

O próximo trecho serve para mostrar ao usuário as operações e solicitar que escolha uma das operações armazenando a operação na variável sOperacao”

Console.WriteLine("Calculadora Simples"); 

Console.WriteLine(""); 

Console.WriteLine("Soma [+]"); 

Console.WriteLine("Subtração [-]"); 

Console.WriteLine("Multiplicação [*]"); 

Console.WriteLine("Divisão [/]"); 

Console.WriteLine("Resto da Divisão [%]"); 

Console.WriteLine(""); 


// solicita e recupera a operação desejada 

Console.Write("Favor informe a operação desejada: "); 

sOperacao = Console.ReadLine(); 

O trecho a seguir solicita os valores e armazenas nas suas respectivas variáveis.  

// solicita e recupera o primeiro valor 

Console.Write("Favor informe o primeiro valor: "); 

lPrimeiroValor = int.Parse(Console.ReadLine()); 


// solicita e recupera o segundo valor 

Console.Write("Favor informe o segundo valor: "); 

lSegundoValor = int.Parse(Console.ReadLine()); 


O próximo passo agora é testar usando a estrutura de decisão
“if else if”, qual a operação escolhida pelo usuário e efetuar essa operação armazenando o resultado na variável “lResultado”

          if (sOperacao == "+") // se somar 

           

                lResultado = lPrimeiroValor + lSegundoValor; 

           

            else if (sOperacao == "-") // se subitrair 

           

                lResultado = lPrimeiroValor - lSegundoValor; 

           

            else if (sOperacao == "*") // se multiplicar 

           

                lResultado = lPrimeiroValor * lSegundoValor; 

           

            else if (sOperacao == "/") // se dividir 

           

                lResultado = lPrimeiroValor / lSegundoValor; 

           

            else if (sOperacao == "%") // se resto da divisão 

           

                lResultado = lPrimeiroValor % lSegundoValor; 

            } 


Bem, de posse do resultado da operação que o usuário escolheu fazer, o próximo passo é exibir a operação realizada seguida do seu resultado. 

Console.WriteLine("{0} {1} {2} = {3}", lPrimeiroValor, sOperacao, lSegundoValor, lResultado); 

Alguns devem está se perguntando, o que é isso no {0} {1} {2} = {3}? 

São modificadores, ou seja, quando for executado o programa, esse modificares serão substituídos pelos seus respectivos parâmetros, que no caso são as variáveis: lPrimeiroValor, sOperacao, lSegundoValor, lResultado”. Daria o mesmo resultado se fosse feito da seguinte forma: 

Console.WriteLine(lPrimeiroValor + " " + sOperacao + " " + lSegundoValor + " = " + lResultado);

Código completo em C# 

       static void Main(string[] args) 

        

            string sOperacao; 

            long lResultado, lPrimeiroValor, lSegundoValor; 


           
sOperacao = ""

            lResultado = 0; 

            lPrimeiroValor = 0; 

            lSegundoValor = 0; 


           
Console.WriteLine("Calculadora Simples"); 

            Console.WriteLine(""); 

            Console.WriteLine("Soma [+]"); 

            Console.WriteLine("Subtração [-]"); 

            Console.WriteLine("Multiplicação [*]"); 

            Console.WriteLine("Divisão [/]"); 

            Console.WriteLine("Resto da Divisão [%]"); 

            Console.WriteLine(""); 


           
// solicita e recupera a operação desejada 

            Console.Write("Favor informe a operação desejada: "); 

            sOperacao = Console.ReadLine(); 


           
// solicita e recupera o primeiro valor 

            Console.Write("Favor informe o primeiro valor: "); 

            lPrimeiroValor = int.Parse(Console.ReadLine()); 


           
// solicita e recupera o segundo valor 

            Console.Write("Favor informe o segundo valor: "); 

            lSegundoValor = int.Parse(Console.ReadLine()); 


           
if (sOperacao == "+") // se for somar 

           

                lResultado = lPrimeiroValor + lSegundoValor; 

           

            else if (sOperacao == "-"

           

                lResultado = lPrimeiroValor - lSegundoValor; 

           

            else if (sOperacao == "*"