Back-End

28 abr, 2016

Xamarin.Forms – Criando uma aplicação com acesso a dados (SQLite) para Android usando o VS 2015 e C# – Parte 02

Publicidade

No artigo de hoje, vou mostrar como criar uma aplicação multiplataforma que pode ser usada no Windows Phone, Android e iOS, usando o Xamarin.Forms com acesso ao banco de dados SQLite usando o Visual Studio e a linguagem C#.

Vamos continuar a primeira parte deste artigo, definindo agora a nossa camada de acesso a dados que será responsável por acessar e gerenciar as informações do nosso banco de dados SQLite.

Estamos usando o Xamarin.Forms, no qual podemos compartilhar o código da UI com as plataformas iOS, Android e Windows Phone:

xam_1

Definindo a camada de acesso a dados no projeto Portable

A camada de acesso de dados de aplicativos móveis é um pouco diferente das dos projetos web e assemelha-se mais à dos aplicativos para desktop. Geralmente usamos uma abordagem adotando os padrões MVVM, MVC para realizar operações CRUD básicas.

Lembre-se de que, em um dispositivo móvel, as páginas com dados vinculados tipicamente alimentam um banco de dados local no dispositivo, que sincroniza com um servidor de dados remoto usando serviços da web.

Dessa forma, vamos criar uma classe bem simples para realizar as operações CRUD em nossa aplicação. Na verdade, nesse exemplo iremos ver apenas a inclusão de dados.

Selecione o projeto compartilhado – Cadastro – e no menu Tools clique em Add Class.

Informe o nome AcessoBD.cs e inclua o código abaixo nesse arquivo:

using System;
using SQLite.Net;
using System.IO;
using Xamarin.Forms;
using System.Linq;
using System.Collections.Generic;

namespace Cadastro
{
    public class AcessoDB : IDisposable
    {
        private SQLiteConnection conexaoSQLite;

        public AcessoDB()
        {
            var config = DependencyService.Get<IConfig>();
            conexaoSQLite = new SQLiteConnection(config.Plataforma, Path.Combine(config.DiretorioSQLite, "Cadastro.db3"));
            conexaoSQLite.CreateTable<Cliente>();
        }

        public void InserirCliente(Cliente cliente)
        {
            conexaoSQLite.Insert(cliente);
        }

        public void AtualizarCliente(Cliente cliente)
        {
            conexaoSQLite.Update(cliente);
        }

        public void DeletarCliente(Cliente cliente)
        {
            conexaoSQLite.Delete(cliente);
        }

        public Cliente GetCliente(int codigo)
        {
            return conexaoSQLite.Table<Cliente>().FirstOrDefault(c => c.Id == codigo);
        }

        public List<Cliente> GetClientes()
        {
            return conexaoSQLite.Table<Cliente>().OrderBy(c => c.Nome).ToList();
        }

        public void Dispose()
        {
            conexaoSQLite.Dispose();
        }
    }
}

Nesse código, definimos os seguintes métodos:

  • InserirCliente – Inclui um objeto Cliente no banco de dados;
  • AtualizarCliente – Atualiza um objeto Cliente;
  • DeletarCliente – Exclui um objeto Cliente do banco de dados;
  • GetCliente – Obtém um cliente pelo seu código;
  • GetClientes -Retorna todos os clientes ordenados pelo nome;
  • Dispose – Libera os recursos usados.

No construtor da classe, usamos o DependencyService para encontrar a implementação da plataforma correta, permitindo que o código compartilhado acesse a funcionalidade nativa que nosso exemplo é o caminho do banco de dados na plataforma Android.

xam_2

A seguir, criamos o banco de dados Cadastro.db3 e depois criamos a tabela Clientes.

Nos métodos implementados na classe AcessoDB(), usamos os métodos Insert, Update, Delete e table<Cliente> para realizar as operações CRUD.

Na próxima parte do artigo, vamos criar a nossa interface com o usuário usando código XAML e C#.