Arquitetura Mobile

Arquitetura Mobile – Parte 3

Fala pessoal!

Depois das festas de fim de ano, férias e novamente muito trabalho, vamos retomar os nossos artigos sobre o desenvolvimento da nossa pequena aplicação Mobile.
Para dar sequência a este artigo é importante que você tenha lido os artigos anteriores:
Arquitetura Mobile – Parte 1
Arquitetura Mobile – Parte 2

Vamos relembrar alguns pontos importantes:

Url do repositóriohttps://github.com/Studyxnet/receitasx

Solução: Vamos desenvolver um aplicativo de receitas que se comunica com serviços. O desenvolvimento será feito no Xamarin Studio ou Visual Studio com o maior foco em Xamarin.Forms e conceitos arquiteturais. Não serão utilizados conceitos relacionados à nuvem e todos os serviços disponibilizados para a aplicação serão criados. Não é objetivo destes artigos a criaçao do cadastros de receitas através do dispositivo e também de uma interface Web, ficando a cargo do leitor a extensão dos conceitos e conhecimentos. Quando for necessário o cadastro de dados para o nosso aplicativo, será ensinado uma maneira de efetuar tal ação na camada de serviços.

 

Arquitetura
Arquitetura

A imagem acima representa a arquitetura da aplicação. Cada “caixinha” tem grande importância em nossa aplicação e, portanto, vamos começar com a que possui menos dependências. A partir deste momento vamos tratar as “caixinhas” como camada. A camada que vamos utilizar neste post é chamada de Domain.

Domain (camada de domínio)

Dado que o nosso software de receitas tem como objetivo atender a necessidades de usuários que gostam de cozinhar, um modelo de domínio pode ser descrito como:

…ele é uma abstração rigorosamente organizada e seletiva daquele conhecimento… (Domain Driven Design – Eric Evans

Vale a pena a leitura do livro acima para se aprofundar mais no assunto.

Mas existem muitos conceitos voltados para o Domain. Para a nossa camada, o domain,  representa o contexto do nosso problema – no caso um repositório de receitas e, portanto, vai conter as classes que representam as entidades importantes em nosso contexto de problema.

Teremos as seguintes classes:

  • Categoria – representa um agrupador para receitas
  • Receita – representa uma receita na íntegra
  • Ingrediente – representa um ingrediente de uma receita
  • Usuário – representa um usuário da apliação

Para facilitar a criação, observe o seguinte diagrama abaixo:

Diagrama da camada de domínio
Diagrama da camada de domínio

Agora, mãos a obra, basta criar cada classe no projeto/pasta(namespace) representados acima.

Para adicionar uma pasta, execute os seguintes passos:

  • Clique com o botão direito no projeto ReceitasX.Domain
  • Selecione a Add…
  • Clique na opção New Folder

Para adicionar classes, execute os seguintes passos:

  • Clique com o botão direito na pasta Entities(criada anteriormente)
  • Selecione a Add…
  • Clique na opção Class

Código dos objetos de domínio

De posse das classes criadas temos os seguintes códigos:

As classes são simples e não apresentam nenhum comportamento. São apenas entidades anêmicas (só possuem o intuito características ou propriedades). Como o intuito não é disseminar todo o conceito de orientação a objetos e principalmente alguma relação com DDD- Domain Driven Design, a utilização deste conceito vai nos ajudar no essencial, a organização em camadas e também o foco no desenvolvimento com o Xamarin.Forms. É claro que o leitor pode ficar a vontade para alterar a solução conforme sua necessidade, como por exemplo, a utilização de uma classe EntidadeBase onde esta terá uma única propriedade chamada Id e todas as outras classes herdarão desta fazendo com que não seja necessário reimplementar tal atributo em todas as classes.

A ideia de utilização de uma classe exclusiva para os ingredientes é somente como forma de melhorar a modelagem e trazer algumas situações interessantes em nosso desenvolvimento.

O atributo Serializable que está anotando as classes, de uma forma simples, serve para que as nossas classes possam ser trafegadas através dos serviços que criaremos. Explicaremos isso mais adiante, por hora, consulte o link para obter mais detalhes: https://msdn.microsoft.com/en-us/library/4abbf6k0(v=vs.110).aspx

Considerações Finais

Fizemos um grande trabalho hoje! Pode parecer uma tarefa simples ter criado o nosso domínio mas veremos que com uma boa organização e modelagem fará com que tenhamos condições de desenvolver Apps interessantes e de muita robustez, já que os conceitos apresentados podem ser utilizados em projetos reais.

Para o próximo artigo, vamos tratar do assunto relacionado à ligação da base de dados com o nosso aplicativo através da camada de Repositório e, para isso, utilizaremos o Entity Framework – Code First e faremos o mapeamento das classes.

Arquitetura Mobile – Parte 3
4.33 (86.67%) 3 votos

Albert Tanure

Arquiteto de Software com atuação na área de desenvolvimento a 10 anos. Gosto muito de desenvolver, aprender, gadgets e tenho grande disposição para ensinar e compartilhar conhecimento. Atuante na comunidade Xamarin como XSP e comunidade Microsoft como MTAC.

4 comentários em “Arquitetura Mobile – Parte 3

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: