Free your Mind - Primeiros passos com .Net

Por Emerson Facunte

Salve DotNetianos!

Eu os saúdo pela coragem e determinação no ciclo constante de aprendizado.

Nesta série de artigos desenvolveremos simples aplicações utilizando as ferramentas da família Express e o VS 2005.

Para facilitar o aprendizado, desenvolveremos o mesmo projeto em diferentes modelos (Console, Windows Forms, Web Application, WebServices, Mobile Applications)

Overview do projeto

O projeto é simples. O usuário deverá informar a sua idade e aplicação apresenta o número de dias já vividos, ou seja, idade multiplicada por 365.

Nesta página

Console
Windows Forms
Web Application
Web Services
Mobile Application

Console

Vamos desenvolver nossa primeira aplicação no Modelo Console.

[Visual Studio 2005]

Selecione as opções File/New...Project, em seguida, selecione a opção Console Application (figura 1).

Informe o nome da aplicação: consoleIdade.

[C# Express]

Selecione as opções File/New...Project, em seguida, selecione a opção Console Application (figura 2).

Informe o nome da aplicação: consoleIdadeExpress.

Cc518044.DotNetFreeyourMind_p101(pt-br,MSDN.10).png
Figura 1 - Selecionando o tipo de aplicação

Cc518044.DotNetFreeyourMind_p102(pt-br,MSDN.10).png
Figura 2 - Selecionando o tipo de aplicação no Visual C# 2005 Express

No editor de código, insira o código que segue.

static void Main(string[] args)
        {
            int Idade;
            
            Console.Write("Informe sua idade:");
            Idade = Int16.Parse(Console.ReadLine());
            Console.Write("Voce ja viveu aproximadamente ");
            Console.Write(Idade * 365);
            Console.Write(" dias");
            Console.Read();
        }

Pronto, nossa primeira aplicação já pode ser executada.

Aperte a tecla F5 para executar a aplicação.

Cc518044.DotNetFreeyourMind_p103(pt-br,MSDN.10).png
Figura 3 - Aplicação em execução

Na segunda parte do artigo desenvolveremos uma aplicação do tipo Windows Forms.

Windows Forms

Vamos desenvolver nossa segunda aplicação no Modelo Windows Forms Application.

[Visual Studio 2005]

Selecione as opções File/New...Project, em seguida, selecione a opção Windows Application (figura 1).

Informe o nome da aplicação: windowsIdade.

[C# Express]

Selecione as opções File/New...Project, em seguida, selecione a opção Console Applicaton (figura 2).

Informe o nome da aplicação: windowsIdadeExpress.

Cc518044.DotNetFreeyourMind_p201(pt-br,MSDN.10).png
Figura 1 - Selecionando o tipo de aplicação no VS 2005

Cc518044.DotNetFreeyourMind_p202(pt-br,MSDN.10).png
Figura 2 - Selecionando o tipo de aplicação no Visual C# Express

Repare que agora foi criado um formulário.

Vamos inserir os objetos necessários para a nossa aplicação.

Os objetos estão disponíveis na ToolBox (figura 3). Selecione a seção Windows Forms e insira os objetos que seguem:

Cc518044.DotNetFreeyourMind_p203(pt-br,MSDN.10).png
Figura 3 - ToolBox

Label
   Propriedade Text = Informe a sua Idade

textBox

Button
   Propriedade Text = calcula

A figura 4 ilustra a disposição dos objetos.

Cc518044.DotNetFreeyourMind_p204(pt-br,MSDN.10).png
Figura 4 - Disposição dos objetos

Neste ponto iremos codificar o botão calcula. Dê um duplo-clique no objeto button1 e insira o código que segue.

int Idade = Int16.Parse(textBox1.Text) * 365;
MessageBox.Show("Você já viveu aproximadamente" + Idade.ToString() + " dias.");

Ok. Agora podemos executar a aplicação. Aperte a tecla F5.

A figura 5 ilustra o resultado de nossa aplicação, após informação do usuário.

Cc518044.DotNetFreeyourMind_p205(pt-br,MSDN.10).png
Figura 5 - Mensagem da aplicação

Na terceira parte do artigo desenvolveremos uma aplicação do tipo Web Application.

Web Application

Vamos desenvolver nossa terceira aplicação no Modelo Web Application.

[Visual Studio 2005]

Selecione as opções File/New...Web Site, em seguida, selecione a opção Asp.Net Web Site (figura 1).

Informe o nome da aplicação: webIdade.

[MSVWD 2005 Express]

Selecione as opções File/New...Web Site, em seguida, selecione a opção Visual C#/Asp.Net WebSite (figura 2).

Informe o nome da aplicação: webIdadeExpress.

Cc518044.DotNetFreeyourMind_p301(pt-br,MSDN.10).png
Figura 1 - Selecionando o tipo de aplicação no VS 2005

Cc518044.DotNetFreeyourMind_p302(pt-br,MSDN.10).png
Figura 2 - Selecionando o tipo de aplicação no MSVWD 2005 Express

Repare que agora foi criada uma página ASPX.

Selecione a seção Design (Figura 3) para inserirmos os objetos necessários para a nossa aplicação.

Cc518044.DotNetFreeyourMind_p303(pt-br,MSDN.10).png
Figura 3 - Selecionando a seção Design no MSVWD

Objetos

Label
   Propriedade Text = Informe a sua Idade

textBox

Button
   Propriedade Text = calcula

Label
   Propriedade Text = Informação
   Propriedade ID = lblIdade

A figura 4 ilustra a disposição dos objetos.

Cc518044.DotNetFreeyourMind_p304(pt-br,MSDN.10).png
Figura 4 - Formulário da Aplicação

Neste ponto iremos codificar o botão calcula. Dê um duplo-clique no objeto button1 e insira o código que segue.

   int Idade = Int16.Parse(TextBox1.Text) * 365;
   lblIdade.Text = "Você já viveu aproximadamente" + Idade.ToString() + " dias.";

Execute a aplicação teclando Ctrl-F5 (sem depuração).

A figura 5 ilustra a aplicação em execução.

Cc518044.DotNetFreeyourMind_p305(pt-br,MSDN.10).png
Figura 5 - Aplicação em execução

Na quarta parte do artigo desenvolveremos uma aplicação do tipo WebServices.

Web Services

Para explicar de maneira adequada o significado da tecnologia WebServices, é interessante fazer uma breve introdução aos problemas atuais no mundo da tecnologia. Com o grande avanço de sistemas operacionais, bancos de dados, hardware, software, enfim, todo o tipo de tecnologia que envolve o mundo dos negócios, surgiu a necessidade de compartilhamento de informações entre parceiros comerciais, governo e sociedade e até mesmo entre departamentos de uma empresa. Acontece que interligar diferentes plataformas, bancos de dados, operações, entre outros conceitos, é uma tarefa muito complicada e trabalhosa.

É justamente neste cenário que surgiu a tecnologia WebServices, para impulsionar os sistemas legados e facilitar a integração de parceiros comerciais.

Para concluir o conceito de WebServices, vamos imaginar um cenário mais simples, onde precisamos integrar informações de departamentos e filiais, que foram desenvolvidos em plataformas diferentes. Um bom exemplo para isso são as instituições financeiras que estão adquirindo outros bancos em todo o mundo, e que utilizam conceitos e plataformas diferentes de trabalho.

A figura 1 ilustra o Banco Facunte, adquirindo outros dois bancos com diferentes tecnologias.

Cc518044.DotNetFreeyourMind_p401(pt-br,MSDN.10).gif
Figura 1 Banco com diferentes plataformas

Tecnologias do nosso cenário exemplo

Banco

S.O.

Banco Dados

Terminais

Facunte

Windows 2000

SQL Server

Windows XP

Tio Patinhas

NT

Access

Windows 98

Easy Money

Unix

Oracle

Terminais Linux

Integrar informações de diferentes plataformas não é novidade e como já foi mencionado, é possível, mas muito trabalhoso. A proposta da tecnologia WebServices, neste cenário, é o de facilitar a troca de informações, fazendo o Banco Facunte entender e tratar as informações dos Bancos Tio Patinhas e Easy Money, independente do banco de dados, sistema operacional ou outro fator não citado.

Com algumas linhas de programação e um bom planejamento, as informações essenciais serão interligadas facilmente. Meus amigos, isso é WebServices!

Em resumo, WebServices, é um padrão não-proprietário, que possibilita o processamento distribuído em sistemas heterogêneos.

Cenários

Vejamos alguns cenários.

CPF Restrições de Crédito

Empresas que oferecem serviços e informações sobre restrições de crédito poderão desenvolver WebServices para fornecer tais informações diretamente nas aplicações de seus clientes. O mais interessante é que a cobrança será automática, pois cada cliente terá uma chave criptografada e a empresa poderá cobrar por número de acessos.

Rastreamento de Cargas

Empresas como FedEx e DHL já fornecem seus próprios WebServices. Correios, empresas de logística e transporte, poderão desenvolver WebServices para rastrear as cargas e encomendas enviadas. Além disso, poderão fornecer informações de estimativa de chegada dinâmica, ou seja, imagine uma carga que teve um acréscimo na previsão de chegada, devido a uma greve no porto, ou até mesmo um problema no trajeto; com isso a informação poderá ser fornecida dinamicamente ao cliente, onde o mesmo tomará as devidas providências, como um adiamento de reunião ou de produção.

Identificação de Veículos

Os DETRANs de todo o país poderiam desenvolver WebServices, com inúmeros objetivos. O mais importante seria a identificação prévia do veículo, onde despachantes, compradores e vendedores de veículos, guardas e operadores de trânsito, saberiam imediatamente informações do veículo em questão. Através de Palmtops ou celulares, guardas de trânsito poderiam controlar com mais facilidade as multas em veículos infratores. Fabricantes de veículos poderiam checar com maior facilidade informações sobre um grupo de chassis, para um possível recall, preparando uma estratégia junto à sua equipe de mecânicos para um melhor atendimento por região.

Cotação de Ações

As operadoras de ações poderiam desenvolver WebServices, afim de fornecer informações diretamente nas aplicações de seus clientes, onde os mesmos poderiam concluir negócios mais facilmente, e armazenando a informação diretamente em seu próprio banco de dados.

Cotação de Moedas

Já existem diversos WebServices catalogados oferecendo o serviço de cotação de moedas. Os mais avançados oferecem funções para conversão, onde a aplicação fornece as moedas e valores e o WebService retorna o resultado. Existem outros que fazem atualização monetária baseada em múltiplas moedas. Isso é muito interessante em países como o nosso, que já trocou de moeda uma dezena de vezes.

TEF (Transferência Eletrônica de Fundos)

Este é um assunto muito delicado, pois envolve segurança. A tecnologia de WebServices está amadurecendo nesta questão, tanto que o SPB (Sistema de Pagamentos Brasileiro) está utilizando a tecnologia para o transporte de algumas informações. O pacote trafega numa rede muito segura, e altamente criptografada, evitando ações de hackers mal-intencionados. Mesmo assim é uma sugestão muito interessante, que facilita o trâmite de informações entre instituições.

Controle de Estoque

Tenho certeza que será muito bem utilizado e aplicado este tipo de WebService. Poderemos desenvolver WebServices que serão utilizados por nossos clientes, vendedores e também fornecedores. Os clientes utilizarão para fazer cotações e fechamento de pedidos através de suas próprias aplicações. Os vendedores, tanto externos como internos, utilizarão para consultar o saldo no estoque e efetuar os seus pedidos. Já os fornecedores poderão enviar orçamentos para produtos que estão chegando no nível de estoque mínimo, assim como os próprios compradores da empresa.

CEPs

Os Correios, uma das empresas mais respeitadas do país, poderiam desenvolver um WebService, oferecendo as informações de sua base de dados on-line, diretamente na aplicação do cliente. O objetivo não é apenas consultar e corrigir informações sobre o CEP; pode-se ampliar o serviço para o cálculo de envio de encomendas, e os prazos estipulados.

RG

Um dos assuntos polêmicos em nosso país. Cada Estado tem sua forma de estabelecer regras para os números de R.Gs. Será que um dia iremos acordar e cada cidadão brasileiro terá sua identificação própria, sem duplicidades? Isso só será possível através de uma integração entre os municípios de todo o país. Quando isso for possível, o Governo poderá oferecer WebServices com os mais variados objetivos. Um bom exemplo para isso, seria o Censo. Sem dúvida nenhuma teríamos um Censo com um percentual próximo de 100 e com muita rapidez.

CNAB

Quem aí já passou pelo suado processo de montagem de arquivos no "padrão" (eu disse padrão?) CNAB? Cada banco tem um formato de arquivo, um número diferente de propriedades a serem preenchidas, headers psicodélicos e linhas de registros com informações absurdas e repetitivas. Criando um WebService, padrão (aqui sim, seria um padrão), os clientes poderiam transmitir e receber informações de cobrança com uma facilidade enorme. O mais interessante disso tudo acontece quando o cliente opta por outra instituição para fazer a sua cobrança e não precisa alterar nenhuma linha de programação, apenas algumas propriedades, como por exemplo, o código da instituição financeira.

Cotações - Compras

Poderemos disponibilizar WebServices para nossos fornecedores, com o objetivo de realizar cotações e fechamento de pedidos em real-time. Neste caso, o WebServices, apenas faria o trâmite de informações entre a nossa necessidade de reposição, e a cotação dos fornecedores. Outra camada, ou até mesmo o programa principal, realizaria o fechamento do pedido, baseado na melhor cotação, e transmitiria ao fornecedor a aprovação do pedido.

WebServices Application

Vamos desenvolver nossa quarta aplicação no Modelo WebServices.

[Visual Studio 2005]

Selecione as opções File/New...Web Site, em seguida, selecione a opção Asp.Net Web Services (figura 1).

Informe o nome da aplicação: wsIdade.

[MSVWD 2005 Express]

Selecione as opções File/New...Web Site, em seguida, selecione a opção Visual C#/Asp.Net WebServices (figura 2).

Informe o nome da aplicação: wsIdadeExpress.

Cc518044.DotNetFreeyourMind_p402(pt-br,MSDN.10).png
Figura 1 - Selecionando o tipo de aplicação no VS 2005

Cc518044.DotNetFreeyourMind_p403(pt-br,MSDN.10).png
Figura 2 - Selecionando o tipo de aplicação no MSVWD 2005 Express

Neste ponto iremos codificar a aplicação. Insira o código que segue na cláusula [WebMethod].

public string QuantosDias(int Idade) {
 int Dias = Idade * 365;
 return "Você já viveu aproximadamente" + Dias.ToString() + " dias.";
   }   

A marcação [WebMethod] indica que a publicação a seguir será um método no padrão XML Web Service.

Para cada método a ser implementado, devemos fazer esta marcação [WebMethod].

Execute a aplicação teclando Ctrl-F5 (sem depuração).

A figura 3 ilustra a aplicação em execução.

Clique na função QuantosDias, informe sua idade (figura 4) e veja o resultado (figura 5).

Cc518044.DotNetFreeyourMind_p405(pt-br,MSDN.10).jpg
Figura 3 - Aplicação em execução

Cc518044.DotNetFreeyourMind_p406(pt-br,MSDN.10).jpg
Figura 4 - Informando a idade

Cc518044.DotNetFreeyourMind_p406(pt-br,MSDN.10).png
Figura 5 - Resultado da aplicação

Simples, não é?

Esta informação poderá ser utilizado em qualquer aplicação que suporte o consumo de WebServices.

Na quinta e última parte do artigo desenvolveremos uma aplicação para PocketPC.

Mobile Application

Vamos desenvolver nossa quinta aplicação no Modelo SmartDevice - PocketPC.

[Visual Studio 2005]

Selecione as opções File/New...Project, em seguida, selecione a opção SmartDevice Pocket PC Application 2003 (figura 1).

Informe o nome da aplicação: pocketIdade.

Cc518044.DotNetFreeyourMind_p501(pt-br,MSDN.10).jpg
Figura 1 - Selecionando o tipo da aplicação no VS 2005-03-07

Repare que agora foi criado um formulário (figura 2) com a aparência de um Pocket.

Cc518044.DotNetFreeyourMind_p502(pt-br,MSDN.10).jpg
Figura 2 - Formulário

Vamos inserir os objetos necessários para a nossa aplicação.

Label
   Propriedade Text = Informe a sua Idade

textBox

Button
   Propriedade Text = calcula

A figura 3 ilustra a disposição dos objetos.

Cc518044.DotNetFreeyourMind_p503(pt-br,MSDN.10).jpg
Figura 3 - Disposição dos objetos

int Idade = Int16.Parse(textBox1.Text) * 365;
MessageBox.Show("Você já viveu aproximadamente" + Idade.ToString() + " dias.");

Ok. Agora podemos executar a aplicação. Aperte a tecla F5.

No próximo passo, selecione o Device Pocket PC 2003 SE Emulator para testes (Figura 4).

Cc518044.DotNetFreeyourMind_p504(pt-br,MSDN.10).jpg
Figura 4 - Selecionando o Device para testes

Aperte o botão deploy e aguarde até que a aplicação seja executada no emulador.

A figura 5 ilustra a aplicação em execução.

DotNetianos, concluímos nossa pequena batalha.

Muita luz e enorme sucesso à todos.

Facunte

Autor
Facunte é co-Owner Framework.Net Microsoft, evangelista de aplicações e-business, publicou 6 livros e mais de 80 artigos, ministrou palestra para cerca de 10.000 pessoas em todo o país (Borcon, TechWeek-SP-POA-RJ, .Net 2005 RoadShow), membro-fundador do DUG-BR, lider do grupo Go.Net, consultor sênior do grupo DevMedia e Arquiteto de Software do Grupo Saraiva. Nos tempos livres curte programação MSX, Cinema, Basquete e uma boa pista de dança!

http://br.thespoke.net/MyBlog/borlandman/MyBlog.aspx