Como usar base de dados SQLite em Windows 10 Universal Apps

Âmbito

Este artigo tem como objetivo mostrar como usar uma base de dados SQLite em Windows 10 Universal Apps, mais especificamente ligação à base de dados, obtenção e persistência de dados.

Introdução

Hoje em dia qualquer aplicação tem como requisito o uso de base de dados para armazenar os dados, desta forma existem várias soluções relacionais ou não, para o efeito. Uma solução muito usada nas aplicações móveis é o uso de base de dados SQLite, uma vez que é uma solução simples e fácil de usar. Em Windows 10 Universal Apps é possível usar base de dados SQLite, que atualmente se encontra numa versão preview, e que pode sofrer alterações até sair a versão final.

É sabido que a Entity Framework 7 irá suportar o Windows 10 Universal apps, no entanto este artigo não irá usar esta solução e será usada a biblioteca SQLite.Net-PCL, uma vez que é atualmente uma das bibliotecas mais simples de usar, e cujo código fonte está disponível no GitHub.

Nota: Este artigo foi escrito usando a versão Windows 10 Technical Preview Build 10240

Versão do Windows 10
Figura 1: Versão do Windows 10

e a Technical Preview Tools version 10.0.10069.

Versão do Technical Preview Tools
Figura 2: Versão do Technical Preview Tools

Descrição

Comecemos por criar uma Windows 10 Universal app, como podemos ver na figura 3:

Criação de Windows 10 Universal App
Figura 3: Criação de Windows 10 Universal App

Cujo resultado será

Solução de uma aplicação Windows 10 Universal
Figura 4: Solução de uma aplicação Windows 10 Universal

Para os mais novatos em Windows 10 Universal apps é preciso ter atenção que deixamos de desenvolver aplicações para cada plataforma, e passamos a ter uma única aplicação que irá correr nas várias plataformas, por esta razão passamos a ter apenas um projeto na solução. Para dar suporte a funcionalidades específicas de cada plataforma passamos a ter disponíveis as extensões, que só irão estar disponível na respetiva plataforma para o qual foram fornecida.

Modelo de dados

Uma vez que temos o projeto criado, agora devemos criar o modelo de dados que define os dados a persistir pela aplicação na base de dados SQLite. Desta forma, para ajudar a construir o exemplo iremos usar um dos datasets fornecido pelo http://www.cityofboston.gov/, mais especificamente o dataset https://data.cityofboston.gov/resource/4swk-wcg8.json.

Sendo assim, iremos ter uma classe chamada BostonEmployee, que é definida por

public class BostonEmployee
    {
        public string Name { get; set }

        public string Title { get; set; }

        [JsonProperty(PropertyName = "department_name")]
        public string DepartmentName { get; set; }

        public double Regular { get; set; }

        [JsonProperty(PropertyName = "total_earnings")]
        public string TotalEarnings { get; set; }

        public double Value { get; set; }

        public string Zip { get; set; }

        public string Detail { get; set; }

        public string Injured { get; set; }

        public string Other { get; set; }

        public string Retro { get; set; }

        public string Overtime { get; set; }

        public string Quinn { get; set; }
    }

Nota: É requisito instalar o NuGet Json.net (Figura 5) uma vez que é alterado o nome das propriedades em relação ao json recebido, de forma a se ter uma leitura mais legível.

Instalação do NuGet Json.Net
Figura 5: Instalação do NuGet Json.Net

O consumo dos dados será um pedido HTTP, muito simples, como podemos ver de seguida:

public class WebServiceManager
    {
        public async Task GetBostonEmployeesEarnings()
        {
            string url = "https://data.cityofboston.gov/resource/4swk-wcg8.json";
            
            var client = new HttpClient();
            var request = new HttpRequestMessage(HttpMethod.Get, new Uri(url));

            // Send the registration request.
            var response = await client.SendAsync(request);
            var message = await response.Content.ReadAsStringAsync();
            var employees = JsonConvert.DeserializeObject(message);
            return employees;
        }
    }

Usando SQLite

Instalação

Para podermos usar base de dados SQLite é necessário instalar o vsix fornecido no site oficial da SQLite: http://sqlite.org/download.html, atualmente em versão preview (Figura 6) e adicionar as respetivas referências (Figura 7 e 8):

Obtenção do SQLIte para UAP (sqlite-uap-201504202353.vsix)
Figura 6: Obtenção do SQLIte para UAP (sqlite-uap-201504202353.vsix)
Adicionar referências
Figura 7: Adicionar referências
Referências da aplicação
Figura 8: Referências da aplicação

Portanto, neste momento temos o SQLite instalado e as referências foram adicionadas ao projeto, falta agora instalar o NuGet SQLite.Net-PCL (Figura 9), que é uma biblioteca que irá facilitar a criação e conexão à base de dados, assim como na gestão de dados. Este NuGet irá adicionar as seguintes referências:

  • Net
  • Net.Platform.WinRT
Instalação do NuGet SQLite.Net-PCL
Figura 9: Instalação do NuGet SQLite.Net-PCL

Publicado na edição 50 (PDF) da Revista PROGRAMAR.