Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIP EaD PROJETO INTEGRADO MULTIDISCIPLINAR VIII CURSOS SUPERIORES DE TECNOLOGIA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS AFive Solutions Desenvolvimento de Mecanismo de Acesso a Banco de dados com Protótipos em ASP.Net e Android UNIP Polos Chácara Santo Antônio, Fortaleza 2, Indianápolis, Jundiaí e Sorocaba. 2020 UNIP EaD PROJETO INTEGRADO MULTIDISCIPLINAR VIII CURSOS SUPERIORES DE TECNOLOGIA ANÁLISE E DESENVOLVIMENTO DE SISTEMAS AFive Solutions Desenvolvimento de Mecanismo de Acesso a Banco de dados com Protótipos em ASP.Net e Android FRANCISCO NATANAEL DA SILVA RA: 1901260 MANOEL FELIPE JOSINO DA SILVA RA: 1903127 RUÂNIO AMOÊDO SILVA RA: 1910390 WAGNER CARNEIRO JUNIOR RA: 1925829 LEONARDO PEREIRA TELES RA: 1943790 ENIO EVANGELISTA DA SILVA RA: 1966282 ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 4º SEMESTRE UNIP Polos Chácara Santo Antônio, Fortaleza 2, Indianápolis, Jundiaí e Sorocaba. 2020 RESUMO Neste último projeto multidisciplinar iremos mesclar os conhecimentos adquiridos nas disciplinas cursadas no oitavo bimestre do curso de Análise e Desenvolvimento de Sistemas. Serão difundidos os conceitos absorvidos nas disciplinas Programação Orientada a Objetos II, Desenvolvimento de Sistemas para Internet e Tópicos Especiais de Programação Orientada a Objetos. Nele, criaremos um mecanismo de acesso ao banco de dados MySQL utilizando a linguagem de programação C#, junto com dois protótipos de interface com o usuário, uma em ASP.Net e outra em Android. Também abordaremos o conceito de Classes e Objetos, utilizando a arquitetura MVC (Model View Controller) onde cada camada terá sua respectiva responsabilidade dentro do projeto. Palavras-chave: MVC. ASP. Android. ABSTRACT In this last multidisciplinary project we will merge the knowledge acquired in the disciplines taken in the eighth quarter of the Systems Analysis and Development course. The concepts absorbed in the subjects Object Oriented Programming II, Systems Development for the Internet and Special Topics in Object Oriented Programming will be disseminated. In it, we will create a mechanism to access the MySQL database using the C # programming language, along with two prototypes of the user interface, one in ASP.Net and the other in Android. We will also approach the concept of Classes and Objects, using the MVC architecture (Model View Controller) where each layer will have its respective responsibility within the project. Keywords: MVC. ASP. Android. SUMÁRIO INTRODUÇÃO 6 CAPÍTULO 01 – PROJETO 7 1.1 - Especificação do Projeto 7 1.2 – Linguagem 7 1.3 – Arquitetura 7 1.3.1 – Camada Model 8 1.3.2 – Camada Controller 9 1.3.3 – Camada View 11 1.3.4 – Camada DAL 12 1.4 – Banco de dados 14 CAPÍTULO 02 – Protótipo ASP.Net 16 2.1 – Linguagem ASP.Net 16 2.2 – Adicionando um novo Projeto View 16 2.2.1 – Construção da Página 17 CAPÍTULO 03 – Protótipo Android 19 3.1 – Linguagem Java e o Android Studio 19 3.2 – A MainActivity e o XML 19 3.3 – Emulação 20 CONCLUSÃO 22 REFERENCIAS BIBLIOGRÁFICAS 23 6 INTRODUÇÃO Toda aplicação possui internamente um mecanismo que permite que o usuário final manipule os dados que lhe são necessários para gerir um determinado ambiente. Esse mecanismo é responsável por realizar as funcionalidades básicas de um banco de dados, comumente chamado de CRUD (Create, Read, Upate and Delete). Existem diversas formas de se implementar essa funcionalidade, utilizando ou não arquiteturas, separando ou não as classes. No nosso projeto, iremos desenvolver essa aplicação utilizando o conceito de Orientação a Objeto seguindo a arquitetura MVC, onde cada camada terá uma responsabilidade específica, como apenas acessar o banco de dados, ou apenas possuir as regras de negócio ou simplesmente representar um objeto físico no mundo real. 7 CAPÍTULO 01 – PROJETO 1.1 - Especificação do Projeto O projeto deverá possuir um mecanismo de acesso a um banco de dados relacional onde seja possível realizar as operações CRUD (Create, Read, Update and Delete) e deverá permitir que interfaces diversas consumam esse projeto. 1.2 – Linguagem Utilizaremos a linguagem de programação C#, fortemente tipada e multiparadigma, que permite o desenvolvimento utilizando o conceito de programação orientada a objetos além de permitir o desenvolvimento entre camadas. 1.3 – Arquitetura O projeto será implementado utilizando a arquitetura MVC (Model View Controller), este tipo de padrão de arquitetura ou Design Partner permite que o sistema seja desenvolvido em camadas separadas que por sua vez, possuam responsabilidades diferentes. Estrutura do Projeto utilizando o padrão MVC Fonte: Equipe AFive Solutions, 2020 8 1.3.1 – Camada Model A camada Model (ou modelo) é responsável por representar o objeto do mundo real. Ela deve possuir todos os objetos contidos no projeto e que por sua vez, devem possuir suas respectivas propriedades. Estrutura da Camada Model Fonte: Equipe AFive Solutions, 2020 1.3.1.1 – Objeto Pessoa Cada classe contém o escopo do objeto que o abstrai do mundo real, é responsável por encapsular os comportamentos e propriedades e é baseado nela que um objeto é criado em tempo de execução. A classe principal do nosso projeto é a classe Pessoa, ela possui propriedades próprias como Nome e CPF, e também propriedades baseadas em outras classes como Endereço e uma lista de Telefones. Objeto Pessoa Fonte: Equipe AFive Solutions, 2020 9 1.3.2 – Camada Controller Como mencionado anteriormente, baseado na arquitetura MVC, se faz necessário a criação de uma camada chamada Controller. Todo objeto contido na classe Model deve possuir um classe dentro dessa camada, seguindo o padrão com o nome da classe seguido da palavra Controller. Cada classe contida nessa camada é responsável por receber um objeto, realizar as validações necessárias e estabelecer a comunicação com a camada de acesso ao banco de dados. Estrutura da camada Controller Fonte: Equipe AFive Solutions, 2020 Uma camada controller pode ou não possuir Propriedades, porém elas sempre possuirão métodos, sejam eles de validação das propriedades do próprio objeto ou validação das regras de negócio, além de enviar e receber informações do banco de dados ou apenas um método construtor. 1.3.2.1 – Classe PessoaController No nosso projeto, uma das classes controladoras é a PessoaController, abaixo temos a estrutura do método Gravar, esse método recebe um objeto Pessoa como parâmetro, inicia um bloco Try a fim de capturar um possível erro durante a execução e prepara uma instrução SQL que será enviada a camada de acesso ao banco de dados. 10 Caso não haja nenhum erro, seja ele de manipulação ou execução no banco de dados, será retornado um valor booleano verdadeiro, informando para a camada que a solicitou que a execução foi realizada com sucesso. Classe PessoaController Fonte: Equipe AFive Solutions, 2020 1.3.2.2 – Instanciando uma classe Controller Para instanciar a classe PessoaController, se faz necessário que o objeto Pessoa já tenha sido instanciado previamente e assim passá-lo como parâmetro no método construtor da classe. 11 Exemplo de instanciação da classe PessoaController Fonte: Equipe AFive Solutions, 2020 1.3.3 – Camada View Dentro da arquitetura MVC, assim como em outros Designer Partners que envolvem a separação em camadas, a view é a camada que permite a interação do usuário com a aplicação. Por definição, essa camada não deve possuir nenhum tipo de validação ou regra de negócio, tudo deve ser feito pelas camadas internas, sejam ela a Model ou a Controller,dependendo do padrão utilizado. Seguindo esse conceito, um projeto MVC pode ter uma ou mais camadas do tipo View, a diferença é a linguagem e plataforma em que essa camada será executada, e, por conta de toda a estrutura lógica separada nas demais camadas não se faz necessário nenhuma implementação extra quanto à validação ou gravação desses objetos no banco de dados. 12 Projeto com 3 camadas do tipo View Fonte: Equipe AFive Solutions, 2020 1.3.4 – Camada DAL A camada DAL (Data Access Layer), também conhecida com DAO (Data Access Object), é responsável por comunicar-se diretamente com o banco de dados, apenas ela possui os mecanismos necessários para realizar este acesso. No nosso projeto, utilizaremos apenas uma classe chamada Connection e ela possuirá objetos estáticos referentes a conexão com o banco de dados como os objetos MySQLConnection, MySQLCommand, MySQLDataAdpter e assim por diante, além dos métodos Connect, Execute e Disconnect. Classe Connection Fonte: Equipe AFive Solutions, 2020 O método Execute, é responsável por receber uma ou várias instruções SQL, iniciar uma nova conexão com banco de dados, preparar os objetos de transação, 13 preencher os comandos e executar. Caso haja algum erro durante a execução desse bloco, por conta da utilização do objeto Transaction será realizado um RollBack, desfazendo assim as alterações realizadas na sessão atual, caso tudo ocorra sem problema, será executado um Commit, efetivando assim as alterações no banco de dados. Método Execute da classe Connection Fonte: Equipe AFive Solutions, 2020 Além disso, independente do sucesso ou não da execução do comando, como boa prática, se faz necessário a chamada do método Disconnect, que fecha a conexão com o banco e destrói todos os objetos criados a fim de liberar memória e evitar que a sessão fique aberta no banco de dados. 14 Método Disconnect da classe Connection Fonte: Equipe AFive Solutions, 2020 Temos também um método chamado GetDataTable, esse método é responsável por preencher um objeto do tipo DataTable que ao ser requisitado recebendo como parâmetro uma instrução sql retornará uma tabela contendo os registros solicitados ao banco de dados. Método GetDataTable da classe Connection Fonte: Equipe AFive Solutions, 2020 1.4 – Banco de dados Para esse projeto, utilizaremos uma instancia do banco de dados MySQL, especificamente na versão 8.0.21, nele criamos um banco de dados chamado dbUnip 15 contendo as tabelas Cidade, Estado, Pessoa, PessoaEndereco, PessoaTelefone e TipoTelefone. Instancia MySQL e suas tabelas Fonte: Equipe AFive Solutions, 2020 16 CAPÍTULO 02 – Protótipo ASP.Net 2.1 – Linguagem ASP.Net Uma das camadas View do projeto foi construída em ASP.Net, sucessora do ASP, multi-plataforma com ferramentas e bibliotecas específicas para construção de aplicações WEB. 2.2 – Adicionando um novo Projeto View No desenvolvimento dessa camada, ainda utilizando a solução criada no Visual Studio, criamos um novo projeto chamado View_WEB e incluímos um novo Item do tipo WebForm chamado frmCadPessoa.aspx. Janela Novo Item Web – Visual Studio Fonte: Equipe AFive Solutions, 2020 17 2.2.1 – Construção da Página Assim como em qualquer outro framework de desenvolvimento Web, o ASP.Net estende os objetos criados na linguagem de marcação HTML, possuindo propriedades ,tags e objetos exclusivos da linguagem como <asp:Repeatlayout> <asp:ListItem> ClientViewMode. Uma página pode ser tranquilamente escrita como um arquivo externo ao ASP.Net, usando HTML, CSS e JavaScript e depois apenas implementar os métodos internos da camada de negócio. Parte do script HTML da página Cadastro de Pessoa Fonte: Equipe AFive Solutions, 2020 18 Após ser compilado, o projeto será executado utilizando o servidor LocalHost exibindo os campos que foram criados no HTML, é importante comentar que toda a formação foi incluída direto no Head da página utilizando a tag Style, nela, todos os comandos CSS foram adicionados a fim de estilizar a página. Página Cadastro de Pessoa em ASP.Net Fonte: Equipe AFive Solutions, 2020 19 CAPÍTULO 03 – Protótipo Android 3.1 – Linguagem Java e o Android Studio Outra camada View desenvolvida para nossa aplicação é a cadmada Android, essa por sua vez foi implementada usando a linguagem Java dentro da IDE Android Studio, que é um ambiente de desenvolvimento Modbile focado nas linguagens Java e Kotlin e permite a criação de layouts utilizando comandos Drag and Drop (arrastar e soltar). IDE Android Studio Fonte: Equipe AFive Solutions, 2020 3.2 – A MainActivity e o XML Quando se cria um layout de qualquer janela no Android Studio, por trás existe um arquivo com de mesmo nome porém com a extensão XML, é ela que na verdade dispõe e formata todos os controles na página. 20 Parte do código XML do projeto Android Fonte: Equipe AFive Solutions, 2020 3.3 – Emulação Após a criação da aplicação, o Android Studio disponibiliza diversas formas de visualizar o resultado do que foi desenhado, uma dessas opções é criar um emulador. Durante a criação desse emulador o usuário tem a possibilidade de simular uma diversa gama de sistemas operacionais, tamanhos de tela, quantidade de memória entre outras, possibilitando testar a aplicação em diversos cenários. 21 Projeto Android emulado Fonte: Equipe AFive Solutions, 2020 22 CONCLUSÃO Neste projeto conseguimos desenvolver os conhecimentos adquiridos nas disciplinas Programação Orientada a Objetos II, Desenvolvimento de Sistemas para Internet e Tópicos Especiais de Programação Orientada a Objetos entendendo que todas elas foram correlacionadas na elaboração da solução e da implantação de uma aplicação Web e Android. Todo o conhecimento adquirido durante as pesquisas e desenvolvimento do projeto nos fez perceber que os assuntos, até então desconhecidos, passaram a fazer parte do nosso cotidiano de uma forma mais perceptível. Com isso, conseguimos demonstrar em uma abordagem técnica a melhor estratégia e estrutura a ser utilizada no desenvolvimento de um Projeto MVC contendo camadas de negócio, modelagem, acesso a banco e interface com o usuário. Para finalizar, gostaríamos de aproveitar e agradecer a todo o corpo docente da UNIP que nos propiciou a aquisição de uma gama imensa de conhecimento que certamente nos tornarão humanos mais capacitados. 23 REFERENCIAS BIBLIOGRÁFICAS ANDROID STUDIO. Página inicial. Disponível em: <https://developer.android.com/studio>. Acesso em: 14 de nov. de 2020. ARAUJO, E. C. Orientação a Objetos em C#. São Paulo: Casa do Código, 2017. MICROSOFT ASP.NET. Página inicial. Disponível em: <https://dotnet.microsoft.com/apps/aspnet >. Acesso em: 12 de nov. de 2020.
Compartilhar