Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNIVERSIDADE PAULISTA – UNIP EaD Projeto Integrado Multidisciplinar Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Leticia Daniele Simões – RA 2140799 Renato Douglas e Silva Souza - RA 2021549 Codificação em C# do mecanismo de acesso a um trecho de banco de dados de uma aplicação de Teleatendimento Médico para consultas via app/web SÃO PAULO 2022 Leticia Daniele Simões – RA 2140799 Renato Douglas e Silva Souza - RA 2021549 Codificação em C# do mecanismo de acesso a um trecho de banco de dados de uma aplicação de Teleatendimento Médico para consultas via app/web Projeto Integrado Multidisciplinar em Análise e Desenvolvimento de Projetos Projeto Integrado Multidisciplinar para obtenção do título de tecnólogo em (nome do curso), apresentado à Universidade Paulista – UNIP EaD. Orientador (a): Profa. Dra. Sandra Bozolan SÃO PAULO 2022 RESUMO A S&STECH, startup de desenvolvimento para soluções tecnológicas, foi contratada para dar continuidade no projeto de Aplicativo de Teleatendimento médico para consulta. O contrato é para cumprir com a entrega de uma codificação em C# do mecanismo de acesso a um trecho de banco de dados dessa aplicação, bem como assim como os protótipos de interface gráfica com o usuário em ASP .Net e Android. Para tanto a equipe de trabalho da S&STECH irá usar os conhecimentos baseados no paradigma de Desenvolvimento Orientado a Objeto, aliado a ferramentais contidos no Framework ASP.NET core. Será escolhido o padrão MVC para desenvolver a aplicação, bem como a conexão ao banco de dados. Há ainda de salientar que será necessário aplicar conhecimento de desenvolvimento em web, pois será manipulado texto de marcação para configuração dos layouts. ABSTRACT A S&STECH, startup de desenvolvimento para soluções tecnológicas, foi contratada para dar continuidades no projeto de Aplicativo de Teleatendimento médico para consulta. O contrato é para cumprir com a entrega de uma codificação em C# do mecanismo de acesso a um trecho de banco de dados dessa aplicação, bem como assim como os protótipos de interface gráfica com o usuário em ASP .Net e Android. Para tanto a equipe de trabalho da S&STECH irá usar os conhecimentos baseados no paradigma de Desenvolvimento Orientado a Objeto, aliado a ferramentais contidos no Framework ASP.NET core. Será escolhido o padrão MVC para desenvolver a aplicação, bem como a conexão ao banco de dados. Há ainda de enfatizar que será necessário aplicar conhecimento de desenvolvimento em web, pois será manipulado texto de marcação para configuração dos layouts. SUMÁRIO 1. INTRODUÇÃO .................................................................................................... 6 2. DESENVOLVIMENTO PARA WEB .................................................................... 7 2.1. Aplicação Web ............................................................................... 7 2.2. HiperTexto e marcação (HTML) ..................................................... 7 2.3. Cascating Style Sheets (CSS)........................................................ 7 2.4. Plataforma ASP.NET ...................................................................... 8 2.5. Xamarin .......................................................................................... 8 2.6. Server (MDN, 2022) Scripting ........................................................ 9 2.7. Banco de Dados ............................................................................. 9 2.8. Gerenciamento do controle de acesso ........................................... 9 2.9. Validação das informações recebidas .......................................... 10 2.10. Gerenciamento dos ataques sofridos ......................................... 10 3. PROTOTIPAGEM ............................................................................................. 11 3.1. Protótipo de interface gráfica com o usuário em ASP .Net .......... 11 3.2. Protótipo de interface gráfica com o usuário em Android ............. 15 4. BANCO DE DADOS ......................................................................................... 17 5. DIAGRMA DE CLASSES DO SISTEMA ........................................................... 22 6. CODIFICAÇÃO .................................................... Erro! Indicador não definido. REFERÊNCIAS ....................................................................................................... 32 6 1. INTRODUÇÃO A evolução tecnológica possibilitou a automatização de rotinas, facilitando assim o trabalho, seja ele em pequenas, médias e grandes empresas. Assim, as aplicações Web ganham espaço no cotidiano de todos na sociedade, tornando-se indispensável para execução das atividades, sejam simples (agendamento de compromisso em agenda) ou mais complexas (desenvolvimento de outras aplicações). Esse cenário aponta para um crescimento contínuo do desenvolvimento de software para atender as demandas tanto comerciais quanto pessoais. Uma demonstração do crescimento da área de desenvolvimento de software é registada no relatório do Ministério da Ciência, Tecnologia e Inovações (MCTI), que menciona a Indústria de Software e Serviços de TIC (ISSTIC) “no Brasil registrou uma produção estimada em US$ 53,3 bilhões em 2021, valor que responde por 82,8% do total dos serviços produzidos pelo setor de TIC”. (BRASIL, 2022) Neste contexto a S&STECH é uma Startup em ascensão, que foi criada em 2022 com foco em desenvolver soluções para o setor de saúde com base na tecnologia e assim satisfazer a demanda de sistema para Prevenção, Diagnósticos e Tratamento de agravos à saúde. E, conta com técnicas de gerenciamento adequado para os negócios, para uma entrega de valor aos seus clientes, atendendo plenamente as demandas captadas. A S&STECH com intuito de implementar o Sistema de teleatendimento médico para consulta de pacientes via app/web, tem a meta de codificar em C# o mecanismo de acesso a um trecho de banco de dados, do referido Sistema, assim como os protótipos de interface gráfica com o usuário utilizando a plataforma ASP .Net e Android da Microsoft. Para o alcance da meta supracitada a equipe irá utilizar os conhecimentos adquiridos em disciplinas como: Programação Orientada a Objetos II, Desenvolvimento de Software para a Internet e Tópicos Especiais de Programação Orientada a Objetos. Assim, com a execução dessa implementação, a equipe será capaz de fomentar o hábito de executar atividades envolvendo múltiplas disciplinas, bem como desenvolver a capacidade de identificar necessidades e propor soluções técnicas. 7 2. DESENVOLVIMENTO PARA WEB O projeto de uma aplicação para uso na internet, seja dispositivos móveis ou não, requer o envolvimento de vários conceitos, que serão abordados a seguir. Vale ressaltar que a necessidade de aplicações web seguras, para o fluxo de dados envolvidos, que não são somente baseadas em protocolo HTTPS, associado a uma funcionalidade de login. Para garantia da segurança é preciso o uso diversas práticas e técnicas, sendo que no geral elas seguem a três pilares: Gerenciamento do controle de acesso, Validação das informações recebidas e Gerenciamento dos ataques sofridos. (RFERREIRA, 2019) 2.1. Aplicação Web A expressão aplicação Web é utilizado para descrever o software em ambiente Web, que pode ser desde uma simples página até um Web site completo. Aplicação Web ainda pode ser uma implementação lógica de negócio e cujo uso altera o estado do negócio, bem como um sistema de informática que utiliza uma arquitetura com base no protocolo http (FILHO, 2003; PRESSMAN, 2002) 2.2. HiperTexto e marcação (HTML) Uma das principais tecnologiana produção de aplicativos web é o HyperText Markup Language, mais conhecido como HTML, em sua tradução Linguagem de Marcação de HiperTexto, cuja finalidade é ser uma linguagem de publicação de conteúdo, como imagens, áudios ou vídeos na web. As marcações em HTML é definidas por Tags, que são marcas ou etiquetas que podem descrever de maneira isolada cada elemento dentro do texto, ou seja, mostram a estrutura do documento. Desde a sua versão inicial (em 1991) o HTML já atualizou diversas vezes, sendo que a versão atual é o HTML 5.0. (MARINHO, 2022) 2.3. Cascating Style Sheets (CSS) Outra das principais tecnologia para aplicativos web foi proposto em Outubro de 1994, por Hakon Lie, e tem como finalidade formatar as informações entregue pelo HTML. Em 1995 foi o CSS1 foi desenvolvida pela W3C (World Wide Web Consortium), e entre 1997 e 1999 ganhou muito destaque. Em suma, o CSS é uma linguagem que 8 altera a aparência, layout, de páginas para Web. O CSS pode alterar margens, linhas, alturas e larguras de células de tabelas. Salienta-se que um único CSS pode controlar vários documentos html e é uma linguagem de rápido aprendizado. (OLIVEIRA, 2007) 2.4. Plataforma ASP.NET ASP.NET é uma plataforma criada pela Microsoft utilizadas para aplicações Web. É baseada na Framework.Net que consiste em uma máquina virtual, capaz de ser executada em qualquer Sistema Operacional, pois esta plataforma suporta qualquer linguagem de programação (C#, C++, JAVA, Delphi for Asp.net, entre outras). Esta caracteriza multiplataforma é semelhante a existente com a Máquina Virtual JAVA. Com o ASP.NET o código passa por dois processos de compilação, sendo uma em tempo de execução e outra em tempo de projeto. A linguagem usada nesse processo é a Microsoft Intermediate Language (MSIL), e temos como extensão para a linguagem da web o aspx. (BATTISTI, 2011) 2.5. Xamarin É tanto uma plataforma de software livre para a criação de aplicativo quanto o nome de uma empresa que, em 2016, foi adquirida pela Microsoft. Essa plataforma apresenta alto desempenho para iOS, Android e Windows com .NET em C#. O Xamarin funciona como uma camada de abstração que gerencia a comunicação de código compartilhado com o código de plataforma subjacente. (JOHNSON, BUCK, ARYA, BRITCH, & DUNN, 2022) Na Figura 1 tem-se a arquitetura geral de um aplicativo Xamarin multiplataforma. Observa-se que Xamarin permite criar uma interface do usuário Figura 1 - Arquitetura Geral de um aplicativo Xamarin Fonte: https://learn.microsoft.com/ 9 nativa em cada plataforma e escreva lógica de negócios, em C#, que é compartilhada entre plataformas. Na maioria dos casos, 80% do código do aplicativo são compartilháveis usando o Xamarin. (JOHNSON, BUCK, ARYA, BRITCH, & DUNN, 2022) 2.6. Server (MDN, 2022) Scripting É uma técnica usada no desenvolvimento da web que envolve o script de um servidor da web que fornece uma resposta personalizada à requisição de cada usuário (cliente) a um site. Outra opção é fornecer páginas da Web estáticas pelo próprio servidor da Web. Os scripts podem ser escritos em uma das várias linguagens de script do lado do servidor disponíveis (PHT, C#, Java). O script do lado do servidor difere do script do lado do cliente porque os scripts incorporados, como o JavaScript, são executados do lado do cliente em um navegador da Web, mas as duas técnicos costumam ser colocadas juntas. (MDN, 2022) 2.7. Banco de Dados Um banco de dados é uma coleção organizada de informações (ou dados) estruturadas, geralmente armazenadas eletronicamente em um sistema de computador. Os bancos de dados geralmente são gerenciados por um sistema de gerenciamento de banco de dados (DBMS). Juntos, os dados, o sistema de gerenciamento de banco de dados e seus aplicativos associados são chamados de sistema de banco de dados, muitas vezes chamado simplesmente de banco de dados. Dados dos tipos mais comuns de bancos de dados em operação atualmente Estruturados em linhas e colunas de uma série de tabelas para melhorar a eficiência do processamento e consulta de dados. Os dados podem ser facilmente acessados, gerenciados, modificados, atualizados, controlados e organizados. A maioria dos bancos de dados usa SQL (Structured Query Language) para escrever e consultar dados. (ORACLE, 2014) 2.8. Gerenciamento do controle de acesso O Gerenciamento de controle de acesso foca em limitar o acesso aos dados, por meio de duas técnicas autenticação e autorização. A primeira visa garantir a 10 identidade do usuário, por meio de login e senha. A segunda consiste em verificar se o usuário tem ou não permissão de acesso a um dado ou funcionalidade que ele está requerendo. (RFERREIRA, 2019) 2.9. Validação das informações recebidas A validação das informações recebidas está relacionada às informações oriundas do usuário, verificando se as mesmas são seguras ou não. Para isso são utilizadas duas técnicas: validação semântica e sanitização. (RFERREIRA, 2019) • Validação semântica: valida as informações do ponto de vista logico, como por exemplo validar se uma informação que deveria ser string se realmente é ou foi modificada maliciosamente. • Sanitização: faz retirada de trechos considerados maliciosos, presentes no código fornecido, por meio de filtragem. 2.10. Gerenciamento dos ataques sofridos Está relacionado com os possíveis ataques que uma aplicação pode sofrer. Para tal são utilizados os seguintes mecanismos: tratamento de erros, geração de logs e alertas de segurança. Considerando-se que erros podem sempre ocorrer, é primordial que se codifique tratamento de erros, e que para o usuário seja exibido apenas a janela padrão de erros, sem muitas informações, pois estas podem ser fonte para os hackers iniciarem um ataque mais robusto. É boa prática geral logs dos erros com informações detalhadas dos erros para que a identificação da mesma seja fácil e rápida. E claro, ao se falar de alerta de segurança é essencial que sejam criados os alertas de segurança direcionados aos administradores para que fiquem tomem as devidas providências em tempo real. (RFERREIRA, 2019) 11 3. PROTOTIPAGEM DE INTERFACE GRÁFICA A prototipagem tem como objetivo auxiliar na especificação e validação dos requisitos elencados junto ao cliente, permitindo elaborar e testar interfaces com os usuários de maneira visual e interativa, além de possibilitar a identificação de problemas quanto à usabilidade e inteligibilidade do sistema a ser produzido. (PAULA FILHO, 2019) Aqui serão elaborados protótipos para o Sistema de teleatendimento médico para consulta de pacientes via app/web elaborado no PIM VII, onde já foi elencados e validados os requisitos com usuários, não cabendo nesse momento fazer o detalhamento do processo de elicitação de requisitos. A seguir apresentam-se os protótipos de interface gráfica tanto para usuário ASP, quanto para o usuário Android. 3.1. Protótipo de interface gráfica com o usuário em ASP .Net Baseado na elicitação dos requisitos um protótipo de layout web (Figura 3 - Script do Layout Inicial) foi criado para assim ser criticado pelo contratante da S&STECH Fonte: Autoria Própria, 2022 Para construção do layout foi usado Framework ASP.NET core no Visual Studio 2019. Foi seguido o padrão MVC(Model-View-Controller). Este Layout é uma adaptação da View de geração do ASP.NET core. Abaixo segue o script desse layout, Figura 2 - Página inicia da aplicação 12 bem como as páginas de Listagem, Cadastro, Editar, Deletar e Pesquisar, cada qual com seus respectivos scripts. (Figura 4, Figura 5,Figura 6,Figura 7) Figura 3 - Script do Layout Inicial Fonte: Autoria Própria, 2022 Fonte: Autoria Própria, 2022 Figura 4 - Listagem de Agendamento 13 Figura 5 - Script do Layout de Listagem Fonte: Autoria Própria, 2022Figura 6 - Layout de Edição Fonte: Autoria Própria, 2022 14 Figura 7 - Script do Layout de Edição Fonte: Autoria Própria, 2022 15 3.2. Protótipo de interface gráfica com o usuário em Android Apresenta a codificação do layout par Android. Figura 8 Scrpit para Layout Android Fonte: Autoria Própria 16 Figura 9 - Script para Layout Android continuação Fonte: Autoria Própria, 2022 Figura 10 Script para Layout Android Fone: Autoria Própria, 2022 17 4. BANCO DE DADOS Para a codificação da conexão da aplicação com o Banco de Dados, foi feito abordagem do padrão Code First. A escolha por esse padrão foi feita, pela possibilidade da equipe, com base no plano da regra de negócio definida, codificar o banco de dados sequencialmente à definição das classes, o que permite um tempo de entrega menor do produto. (HARLLEY, 2020) Nessa abordagem, após criar o aplicativo na Framework ASP.NET core, cria- se a(s) classe(s) que servirão de modelo para o Banco de dados. (Figura 11) Figura 11 - Criação da Aplicação no Padrão MVC e suas respectivas classes Fonte: Autoria Própria, 2022 Em seguida é criado um artefato denominado contexto que possui duas instâncias DbContext e DbSet, usados para acesso ao banco de dados. (WENZEL, 2022) (Figura 12) 18 Figura 12 - Criação do Contexto Fonte: Autoria Própria, 2022 Após cariar o Contexto é feito o uso da connection string na classe appsettings.json. Figura 13 Uso da connection String na Classe appsettings.json Fonte: Autoria Própria, 2022 19 Uma implementação na classe Startup.cs, é feita para criar uma instância do Contexto. No caso específico do trabalho, foi escolhido MySql, assim feito uso do Pacote Pomelo.EntityFrameworkCore.MySql. Figura 14 - Instanciamento do connectionString na Classe Startup.cs Fonte: Autoria Própria, 2022 Após esse processo, como forma de incrementar o esquema de banco de dados é feito uso de um recurso chamado de Migration do Entity.Framework do ASP.NET core. Esse recurso faz com que o modelo de dados do aplicativo tenha sincronismo com o próprio aplicativo. Nesse momento é usado dois comandos o Add-Migration + um nome, para criação do Migration, e posteriormente é feito o suo do comando Updtate-Database para persistência do banco de dados.(Figura 15, Figura 16) Figura 15 - Uso do Add-Migration Fonte: Autoria Própria, 2022 20 Figura 16 - Update-Database - criação do banco de dados Fonte: Autoria Própria, 2022 Nas Figura 17 e Figura 18 estão as representações do banco de dados criado no MySql: Figura 17 Banco de dados do controle de Agendamento Fonte: Autoria Própria, 2022 21 Figura 18 Banco de dados de todas as classes da aplicação Fonte: Autoria Própria, 2022 22 5. DIAGRMA DE CLASSES DO SISTEMA O diagrama de classe, tanto das entidades quanto da representação do banco de dados, da aplicação está representado abaixo, a mesma será seguida para codificação. (Figura 19) Figura 19 Diagrama de classes Fonte: Autoria Própria, 2022 Figura 20 Representação do banco de dados Fonte: Autoria Própria, 2022 23 6. APLICAÇÃO COM O MÉTODO CRUD A aplicação foi desenvolvido com não apenas com a funcionalidade de acesso ao banco de dados, mas também com a possiblidade de Criar, Ler, Atualizar e Deletar dados, essas funções forma o mnemônico CRUD que em suma é: C: Create – Criar um novo registro. R: Read – Ler um registro, ou uma lista de registros. U: Update – Atualizar um registro. D: Delete – Excluir um registro. Como observado na Figura 4, todas as funcionalidades estão presente no Layout de apresentação Ressalta-se que a elaboração do projeto foi pautada no padrão de arquitetura MVC, que é uma siglas do termos Model (Modelo), View (visão) e Controller. (Figura 21) Figura 21 Demonstração das pastas MVC para construção do projeto Fonte: Autoria Própria, 2022 24 Na camada Modelo tem-se as classes que são gerenciadas por essa camada, afim de que os dados tenha comportamento adequado para as regras de negócios. Para essa aplicação na camada modelo podemos encontrar 4 classes: Pessoa. Endereço, Telefone e Tipo de Telefones. Todas com algum tipo de relação umas com as outras.(Figura 22) Figura 22 Composição da camada Modelo Fonte: Autoria Própria, 2022 25 Abaixo o detalhamento das 4 classes: Figura 23 Classe Endereço Fonte: Autoria Própria, 2022 26 Figura 24 Classe Pessoa Fonte: Autoria Própria, 2022 Figura 25 Classe TipodeTelefone Fonte:Autoria Própria, 2022 27 Figura 26 Classe Telefone Fonte: Autoria Própria, 2022 A camada Controller é responsável por tratar as requisições enviadas pelo View com respostas fornecidas pelo Model. Na camada Controller temos a classe PessoasController.cs que é responsável pelo conjunto de funcionalidades que irão afetar as classes presentes do domínio de negócio presente na Camada Model. Em PessoasControlle.cs temos a implementação do CRUD 28 Figura 27 PessoasController - Index e Details Fonte: Autoria Própria, 2022 29 Figura 28 - PessoasController - Create e Edit Fonte: Autoria Própria, 2022 30 Figura 29 PessoasController: Delete e FindbyCpf Fonte: Autoria Própria, 2022 A camada View já foi anteriormente apresentada em conjunto com os Layouts, pois esta camada é responsável pelas informações visuais. 31 7. CONCLUSÃO A trajetória na elaboração dos script para conexão ao banco de dados mostrou que há muito o que aprender. Foi observado o quanto é produtível quando se detém o conhecimento de padronização de arquitetura de desenvolvimento de software, como o MVC e Code First. O trabalho também foi de grande valia no que diz respeito a possibilitar contato com manipulação de banco de dados e, assim pôde-se aprender um pouco mais sobre a matéria. Não se pode esquecer que foi um grande desafio, juntar todos os conhecimentos para chegar um produto, mostrando o quanto é valioso esta sempre atualizado e atento as novidades tecnológicas. Por tanto a S&STECH tem em mente que fez o melhor para produzir algo de valor, bem como conseguiu adquirir mais experiência no ramo do desenvolvimento. 32 REFERÊNCIAS BATTISTI, J. (2011). ASP.NET Uma Revolução na Construção de Sites e Aplicações Web. Santa Cruz do Sul: Júlio Battisti - Livros e Cursos LTDA. BRASIL. (19 de Julho de 2022). Relatório do MCTI aponta que indústria de Software e Serviços de TIC cresceu 6,5% no Brasil em 2021. (gov.br, Ed.) Acesso em 18 de Novembro de 2022, disponível em gov.br: https://www.gov.br/mcti/pt-br/acompanhe- o-mcti/noticias/2022/07/relatorio-do-mcti-aponta-que-industria-de-software-e- servicos-de-tic-cresceu-6-5-no-brasil-em- 2021#:~:text=A%20Ind%C3%BAstria%20de%20Software%20e,ao%20observado%2 0no%20ano%20anterior. FILHO, W. d. (2003). Engenharia de Software. RIo de Janeiro: LCT. HARLLEY, K. (20 de Outubro de 2020). Zup. Acesso em 05 de Novembro de 2022, disponível em zup.com: https://www.zup.com.br/blog/desenvolvimento-de-apis- design-first-e-code- first#:~:text=Na%20abordagem%20Code%20first%2C%20e,e%20a%20Documenta %C3%A7%C3%A3o%20de%20API. JOHNSON, J., BUCK, A., ARYA, H., BRITCH, D., & DUNN, C. (21 de setembro de 2022). O que é o Xamarin? Redmond, Washington, Estados Unidos. Fonte: microsoft.com. MARINHO, S. L. (2022). Desenvolvimento de Software para Internt. São Paulo: Sol. MDN, C. (06 de novembro de 2022). Fonte: mozilla.org: https://developer.mozilla.org/pt-BR/docs/Learn/Server-side/First_steps/Introduction OLIVEIRA, Y. (10 de junho de 2007). O Futuro Do CSS(CSS3) E Um Pouco Da Sua História. Natal,Rio Grande do Norte. Acesso em 18 de novembro de 2022, disponível em https://webnatal.wordpress.com/2007/06/10/o-futuro-do-csscss3-e-um-pouco-da- sua-historia/ 33 ORACLE. (31 de 07 de 2014). O que é um Banco de Dados? Santo Amaro, São Paulo, Brasil. Acesso em 22 de Novembro de 2022, disponível em https://www.oracle.com/br/database/what-is- database/#:~:text=Banco%20de%20Dados%3F- ,Banco%20de%20dados%20definido,banco%20de%20dados%20(DBMS). PAULA FILHO, W. d. (2019). Engenharia de Software, LTC (4ª ed., Vol. 2). Rio de Janeiro: LTC. PRESSMAN, R. S. (2002). Engenharia de Software. Rio de Janeiro: McGraw. RFERREIRA. (20 de março de 2019). Os 3 pilares do desenvolvimento seguro de aplicações Web. São Paulo, São Paulo, Brasil. Acesso em 18 de novembro de 2022, disponível em https://www.alura.com.br/artigos/os-3-pilares-do-desenvolvimento- seguro-de-aplicacoes- web?gclid=Cj0KCQiA99ybBhD9ARIsALvZavUOVtwzvRB6KMGrVIrsYMEnRwRNFA4 vooRRgshX1UGSiHkFQYTyyEkaAuagEALw_wcB WENZEL, M. (28 de Setembro de 2022). Microsoft. (Microsoft) Acesso em 10 de Novembro de 2022, disponível em Microsoft.com.
Compartilhar