P>

imagem.JPG

Clique aqui para ler todos os artigos desta edição

 

Integrando aplicações Mobile e Windows em uma lanchonete

 

Nesse artigo desenvolveremos um sistema integrado usando as tecnologias Windows Forms, Web Services e Mobile. O objetivo é desenvolver uma aplicação para lanchonete integrando as principais áreas: atendimento, cozinha e caixa, evitando erros e demora no atendimento.

 

Cenário

Para desenvolver a aplicação, nossa infra-estrutura deverá contar com dois desktops (estações de trabalho), um ou mais Pocket(s) com Windows Pocket PC 2003 ou superior, wi-fi e um servidor com Windows 2003 Server.

Também vamos precisar de um roteador wi-fi, que servirá para conectar os Pockets ao servidor. Como esse artigo será focado nas aplicações, não falaremos sobre a configuração dos desktops e tão pouco do servidor.

 

Solução

Estarei desenvolvendo uma solução, onde será integrada uma aplicação Mobile (atendente) com duas aplicações Windows (caixa e cozinha). Para isso, utilizarei Web Services e um banco de dados único.

Dessa forma quando um atendente adicionar um pedido, em segundos a aplicação da cozinha poderá visualizar o mesmo para ser feito, assim como, no momento que o cliente solicitar o fechamento de sua conta, o caixa terá acesso a todos os pedidos entregues, para assim fazer o fechamento da conta.

 

Iniciando o projeto

A primeira parte do sistema a ser criada é o banco de dados, não vou entrar em detalhes sobre a configuração do mesmo, pois não é o foco desse artigo. Poderá ser usado o SQL Server 2000 ou 2005, inclusive a versão Express Edition.

 

Nota: Com os testes realizados com a versão Express do SQL Server 2005, ocorreram problemas no momento da criação do banco dentro do Visual Studio. Aconselho a usar a ferramenta Management Studio Express para manipular o banco de dados.

 

A modelagem do banco de dados deverá ser idêntica à mostrada na Figura 1.

 

image001.png

Figura 1. Modelagem do banco de dados.

 

Banco de dados: Deverá conter três tabelas, pois será um sistema simples de controle de pedidos. Os campos id das tabelas deverão ser identity = yes e chave primária, como mostra o diagrama (Figura 1).

O campo status na tabela tb_mesas indica se a mesa já pagou a conta. O campo status na tabela tb_pedidos indica se o pedido foi gerado (0), está pronto (1) ou foi pago (2).

 

Criando os Web Services

Como será uma aplicação integrada, estaremos utilizando Web Services para que as aplicações possam estar sempre atualizadas, lembrando que esse acesso será via wi-fi (rede sem fio). Vamos iniciar a criação dos Web Services, portanto vamos criar o projeto.

Para isso, abra o Visual Studio 2005 e escolha o menu File>New>Web Site. Na janela (Figura 2), escolha a opção ASP.NET Web Service nomeando-o como “WebServiceLanc”.

 

image003.png

Figura 2. Criando uma aplicação Web Services.

Como padrão, o Visual Studio 2005 cria um Web Service chamado Service.asmx, exclua-o assim como, na pasta AppCode, exclua o Service.cs. Clique com o botão direito no projeto e selecione Add New Item, escolha a opção Web Service e altere o nome para “wsMesa.asmx” (Figura 3).

Repita o procedimento mais duas vezes nomeando-os para “wsPedido.asmx” e “wsProduto.asmx”.

 

image005.png

Figura 3. Criação do Web Service wsMesa.asmx.

Após realizar os procedimentos, clique com o botão direito no projeto e selecione Add New Item. Escolha a opção Web Configuration File e crie o arquivo Web.config. No Web.config adicione a string de conexão para que possamos conectar ao banco de dados.

O arquivo Web.config  terá um código semelhante ao seguinte:

 

<connectionStrings>

    <add name="ConLanchonete"

    connectionString="Data Source=SERVIDOR\SQLEXPRESS;

      Initial Catalog=DATABASE.MDF"

connectionStrings>

 

Implementando o código nos Web Services

Na Listagem 1 temos a implementação do wsMesa.cs, localizado na pasta AppCode.

 

Listagem 1. Código do wsMesa.

using System;

using System.Web;

using System.Data;

using System.Data.SqlClient;

using System.Collections;

using System.Configuration;

using System.Web.Services;

using System.Web.Services.Protocols;

 

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo =

  WsiProfiles.BasicProfile1_1)]

public class wsMesa : System.Web.Services.WebService {

    private SqlConnection Conn = new SqlConnection(

      ConfigurationManager.ConnectionStrings[

      "ConLanchonete"].ToString());

    public wsMesa ()

    {

    }

    [WebMethod]

    public void AbreMesa(int mesa)

    {

        Conn.Open();

        string query =

          "Update tb_mesas set status = 1 where id = "+

          mesa.ToString();

        SqlCommand Command = new SqlCommand(query,

          Conn);

        Command.ExecuteNonQuery();

    }

    [WebMethod]

    public void FechaMesa(int mesa)

    {

        Conn.Open();

        string query =

          "Update tb_mesas set status = 0 where id = "+

          mesa.ToString();

        SqlCommand Command = new SqlCommand(query,

          Conn);

        Command.ExecuteNonQuery();

    }

    [WebMethod]

    public DataSet ListaMesas ()

    {

        Conn.Open();

        string query = "Select * from tb_mesas";

        SqlCommand Command = new SqlCommand(query, ...

Quer ler esse conteúdo completo? Tenha acesso completo