Baixe o app para aproveitar ainda mais
Prévia do material em texto
7 20 UNIVERSIDADE PAULISTA – UNIP EAD PIM VIII – Projeto Integrado Multidisciplinar Curso Superior em TECNOLOGIA Consulta e Acesso PESSOA_DAO: EM C# para Web e Mobile Polo Piraju 2021 UNIVERSIDADE PAULISTA – UNIP EAD PIM VIII – Projeto Integrado Multidisciplinar Curso Superior em TECNOLOGIA Consulta e Acesso PESSOA_DAO: EM C# para Web e Mobile Nome: Mateus Henrique Bernabé R.A:0566540 Analise e Desenvolvimento de Sistemas 3º Semestre Polo Piraju 2021 Resumo Esta obra caracteriza-se pela confecção de um manual capaz de dissertar sobre a criação de um sistema de controle em C# do mecanismo de acesso a um trecho de banco de dados, assim como os protótipos de interface gráfica com o usuário em ASP .Net e Android. aqui trata a respeito das melhores maneiras de adequar custos, engenharia de software, economia de mercado, telas de interface e possibilidades de uso da “Linguagem Orientada à Objeto” para a implementação ao cliente final de um projeto do sistema até o fim do software completo, em uma intranet abastecida por um servidor interno modo mainframe capaz de realizar acesso apenas por um grupo autorizado, para a preservação completa do patrimônio. Este expõe essa situação, detalha e explica da melhor forma como percebemos, cada vez mais, que a execução dos pontos do programa representa uma abertura para a melhoria dos métodos utilizados na avaliação de resultados. Palavras-chave: Sistema. Engenharia de Software. Monitoria. Economia. Controle. Controle de Estoque. Abstract This work is characterized by the creation of a manual capable of dissertation on the creation of a control system in C# for the access mechanism to a database snippet, as well as the graphical user interface prototypes in ASP .Net and Android, in this it deals with the best ways to adapt costs, software engineering, market economy, interface screens and possibilities of using the "Object-Oriented Language" for the implementation of a system project to the end of the complete software, on an intranet powered by an internal server in mainframe mode capable of accessing only an authorized group, for the complete preservation of assets. This one exposes this situation, details and explains in the best way that we perceive, more and more, that the execution of the points of the program represents an opening for the improvement of the methods used in the evaluation of results. Keywords: System. Software Engineering. Monitoring. Economy. Control. Inventory control. SUMÁRIO 1. Introdução 7 2. Requisitos do Sistema 8 3. Codificação 10 4. Layout. 16 4.1. Layout ASP.net 16 4.2. Layout Android 19 5. Conclusão 26 6. Referências 27 1. Introdução A equipe foi contratada e irá desenvolver os seguintes aspectos: · Mecanismo de acesso ao banco de dados em linguagem C#. Esse mecanismo será o responsável por oferecer acesso a um trecho do banco de dados por parte do resto do sistema. Sempre que um trecho do sistema precisar acessar esse trecho do banco de dados, deverá fazê-lo por meio desse mecanismo desenvolvido por sua equipe; · Desenvolver interface gráfica com o usuário em ASP .Net que permita o usuário interagir com os dados modelados por esse trecho do banco de dados · Cria um protótipo de interface gráfica com o usuário em Android que permita que o usuário interaja com os dados modelados por esse trecho do banco de dados. 2. Requisitos do Sistema O modelo do trecho do banco de dados que será usado pela equipe nesse projeto está representado pelo seguinte Diagrama Entidade-Relacionamento (DER): Figura 1: Diagrama Entidade-Relacionamento do trecho do banco de dados sob responsabilidade da equipe Fonte: Manual PIM VII UNIP O mecanismo de acesso ao banco de dados que sua equipe deve desenvolver, siga o diagrama de classes a seguir. Esse diagrama apresenta quatro entidades: Pessoa, Endereço, Telefone e Tipo Telefone que mapeiam as principais tabelas do banco de dados, exceto a tabela associativa PESSOA_TELEFONE, a qual é uma tabela associativa e não é relevante para o sistema, apenas para o mecanismo de persistência do banco de dados. Mesmo assim, essa tabela deve ser manipulada pelo mecanismo de acesso. Figura 2: Diagrama de Classes do mecanismo de acesso ao trecho do banco de dados Fonte: Manual PIM VII UNIP Já a classe PessoaDAO é a classe responsável por implementar o mecanismo de acesso ao trecho do banco de dados. Essa classe oferece quatro métodos de escopo de classe (estáticos) que permitem que outras partes do sistema executem operações sobre o banco de dados (operações CRUD). Os dados do banco de dados devem fluir para dentro e para fora da classe PessoaDAO apenas por meio de instâncias das classes de entidade (Pessoa, Endereço, Telefone e TipoTelefone) ou por meio de parâmetros de tipo primitivo (como CPF do tipo long). 3. Codificação Classe Pessoa Fonte: Autor using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PESSOA_PIM.Models { public class Pessoa { public int Id { get; set; } public string Nome { get; set; } public long CPF { get; set; } public DateTime CreatedDate { get; set; } = DateTime.Now; public endereco.Endereco Endereco { get; set;} = Endereco.Logradouro; public telefone.Telefone Telefone { get; set; } } } Classe Tipo Telefone Fonte: Autor using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace tipo_telefone { public class Tipo_Telefone { public int Id { get; set; } public string TIPO { get; set; } } } Classe Telefone Fonte: Autor using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace telefone { public class Telefone { public int Id { get; set; } public int Numero { get; set; } public int DDD { get; set; } public tipo_telefone.Tipo_Telefone Tipo_Telefone { get; set; } } Classe Endereço Fonte: Autor using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace endereco { public class Endereco { public int Id { get; set; } public string Logradouro { get; set; } public int CEP { get; set; } public int Numero { get; set; } public string Bairro { get; set; } public string Cidade { get; set; } public string Estado { get; set; } } } Classe PessoaDAO Fonte: Autor using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PESSOADAO__PIM { public class pessoa_dao { public Boolean Incluir { PESSOA_PIM.pessoa Nome } public Boolean Consulte { PESSOA_PIM.pessoa CPF } public Boolean Excluir { PESSOA_PIM.pessoa select.case } public Boolean Alterar { Pessoa_PIM.pessoa select.case } { StringBuilder sb = new StringBuilder(); sb.Append .append ("Nome") .append("CPF") .append("Endereço") .append("Telefone") try { using(SqlConnection conn = new SqlCOnnection(FUNCOES.conexaoBD.RetornaCONEXAOBD()) { SqlCommand cmd = new SqlCommand(sb.ToString(), conn); cmd.Parameters.AddwithValue("@ID", id.ID).Value.ToString(); cmd.Parameters.AddwithValue("@Nome", id.nome); cmd.Parameters.AddwithValue("@CPF", id.CPF); cmd.Parameters.AddwithValue("@Endereço", id.Endereco); cmd.Parameters.AddwithValue("@Telefone", id.Telefone); conn.Open(); return Convert.ToInt32(cmd.ExecuteNonQuery());} } } } 4. Layout. 4.1. Layout ASP.net ASPX LAYOUT Fonte: Autor Codificação <Window x:Class="Layout.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WpfApp1" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Grid> <Button x:Name="Cadastro" Content="Cadastro" HorizontalAlignment="Center" Height="53" Margin="0,23,0,0" VerticalAlignment="Top" Width="192" Click="Cadastro_Click"/> <TextBox x:Name="Pessoa" HorizontalAlignment="Left" Margin="30,23,0,0" TextWrapping="Wrap" Text="Pessoa" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_TextChanged"/> <TextBox x:Name="CPF" HorizontalAlignment="Left" Margin="30,58,0,0" TextWrapping="Wrap" Text="CPF" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy_TextChanged"/> <TextBox x:Name="Logradouro" HorizontalAlignment="Left" Margin="30,129,0,0" TextWrapping="Wrap" Text="Logradouro" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy1_TextChanged"/> <TextBox x:Name="tipo__tel" HorizontalAlignment="Left" Margin="30,335,0,0" TextWrapping="Wrap" Text="Tipo Telefone" VerticalAlignment="Top" Width="236"/> <RadioButton x:Name="Endereco" Content="Adicionar Outro Endereço" HorizontalAlignment="Left" Margin="30,93,0,0" VerticalAlignment="Top" Checked="RadioButton_Checked"/> <RadioButton x:Name="new__tel_num" Content="Adicionar outro Telefone" HorizontalAlignment="Left" Margin="30,303,0,0" VerticalAlignment="Top"/> <TextBox x:Name="ddd" HorizontalAlignment="Left" Margin="30,360,0,0" TextWrapping="Wrap" Text="DDD" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy3_TextChanged"/> <TextBox x:Name="numero__tel" HorizontalAlignment="Left" Margin="30,385,0,0" TextWrapping="Wrap" Text="Numero" VerticalAlignment="Top" Width="236"/> <TextBox x:Name="numero" HorizontalAlignment="Left" Margin="30,156,0,0" TextWrapping="Wrap" Text="Numero" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy1_TextChanged"/> <TextBox x:Name="CEP" HorizontalAlignment="Left" Margin="30,182,0,0" TextWrapping="Wrap" Text="CEP" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy1_TextChanged"/> <TextBox x:Name="bairro" HorizontalAlignment="Left" Margin="30,0,0,0" TextWrapping="Wrap" Text="Bairro" VerticalAlignment="Center" Width="236" TextChanged="Pessoa_Copy1_TextChanged"/> <Button x:Name="consultar" Content="Consultar" HorizontalAlignment="Center" Height="53" Margin="0,113,0,0" VerticalAlignment="Top" Width="192" Click="Cadastro_Click"/> <Button x:Name="alterar" Content="Alterar" HorizontalAlignment="Center" Height="53" Margin="0,199,0,0" VerticalAlignment="Top" Width="192" Click="Cadastro_Click"/> <Button x:Name="excluir" Content="Excluir" HorizontalAlignment="Center" Height="53" Margin="0,294,0,0" VerticalAlignment="Top" Width="192" Click="Cadastro_Click"/> <ListBox x:Name="lista__db" HorizontalAlignment="Left" Height="368" Margin="530,32,0,0" VerticalAlignment="Top" Width="244" d:ItemsSource="{d:SampleData ItemCount=5}" SelectionChanged="ListBox_SelectionChanged"/> <TextBox x:Name="Cidade" HorizontalAlignment="Left" Margin="30,230,0,0" TextWrapping="Wrap" Text="Cidade" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy1_TextChanged"/> <TextBox x:Name="estado" HorizontalAlignment="Left" Margin="30,255,0,0" TextWrapping="Wrap" Text="Estado" VerticalAlignment="Top" Width="236" TextChanged="Pessoa_Copy1_TextChanged"/> </Grid> </Window> 4.2. Layout Android LAYOUT ACTIVITY Fonte: Autor Fonte: Autor Fonte: Autor XML ACTIVITIES <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/Pessoa_pim" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/Pessoa_pim" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="28dp" android:layout_marginTop="24dp" android:text="Pessoa" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/pessoa_pim2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="24dp" android:layout_marginTop="344dp" android:text="Tipo Telefone" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/endereco" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="216dp" android:text="Endereço" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="32dp" /> <TextView android:id="@+id/telefone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="28dp" android:text="Telefone" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="151dp" /> <TextView android:id="@+id/CPF" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CPF" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="80dp" /> <TextView android:id="@+id/numero" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Numero" tools:layout_editor_absoluteX="216dp" tools:layout_editor_absoluteY="132dp" /> <TextView android:id="@+id/numero__tel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Numero" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="286dp" /> <TextView android:id="@+id/DDD" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="DDD" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="234dp" /> <TextView android:id="@+id/CEP" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="CEP" tools:layout_editor_absoluteX="216dp" tools:layout_editor_absoluteY="200dp" /> <Button android:id="@+id/cadastrardao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cadastrar" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="395dp" /> <Button android:id="@+id/alteradao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Alterar" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.57" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="395dp" /> <Button android:id="@+id/excluirdao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Excluir" tools:layout_editor_absoluteX="178dp" tools:layout_editor_absoluteY="444dp" /> <Button android:id="@+id/consultadao" android:layout_width="wrap_content"android:layout_height="wrap_content" android:text="Consultar" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.096" app:layout_constraintStart_toStartOf="parent" tools:layout_editor_absoluteY="444dp" /> <ScrollView android:id="@+id/Listaconsulta" android:layout_width="409dp" android:layout_height="238dp" tools:layout_editor_absoluteX="1dp" tools:layout_editor_absoluteY="492dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" /> </ScrollView> <TextView android:id="@+id/Nome" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="NOME" tools:layout_editor_absoluteX="32dp" tools:layout_editor_absoluteY="51dp" /> <TextView android:id="@+id/nome2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Descreva Telefone, Celular, Fax..." tools:layout_editor_absoluteX="24dp" tools:layout_editor_absoluteY="363dp" /> <TextView android:id="@+id/Logradouro" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Logradouro" tools:layout_editor_absoluteX="216dp" tools:layout_editor_absoluteY="106dp" /> <TextView android:id="@+id/bairro2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Bairro" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.456" tools:layout_editor_absoluteX="216dp" /> <TextView android:id="@+id/Cidade" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Cidade" tools:layout_editor_absoluteX="216dp" tools:layout_editor_absoluteY="300dp" /> <TextView android:id="@+id/Estado" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Estado" tools:layout_editor_absoluteX="216dp" tools:layout_editor_absoluteY="267dp" /> <RadioButton android:id="@+id/novoendereco" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Novo Endereço" tools:layout_editor_absoluteX="216dp" tools:layout_editor_absoluteY="51dp" /> <RadioButton android:id="@+id/telnew" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Novo Telefone" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="179dp" /> <EditText android:id="@+id/editTextNumber" android:layout_width="131dp" android:layout_height="33dp" android:ems="10" android:inputType="number" tools:layout_editor_absoluteX="32dp" tools:layout_editor_absoluteY="99dp" /> <EditText android:id="@+id/editTextNumber2" android:layout_width="131dp" android:layout_height="33dp" android:ems="10" android:inputType="number" tools:layout_editor_absoluteX="212dp" tools:layout_editor_absoluteY="159dp" /> <EditText android:id="@+id/editTextNumber4" android:layout_width="131dp" android:layout_height="33dp" android:ems="10" android:inputType="number" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="253dp" /> <EditText android:id="@+id/editTextNumber5" android:layout_width="131dp" android:layout_height="33dp" android:ems="10" android:inputType="number" tools:layout_editor_absoluteX="28dp" tools:layout_editor_absoluteY="305dp" /> <EditText android:id="@+id/editTextNumber3" android:layout_width="131dp" android:layout_height="33dp" android:ems="10" android:inputType="number" tools:layout_editor_absoluteX="212dp" tools:layout_editor_absoluteY="220dp" /> </androidx.constraintlayout.widget.ConstraintLayout> 5. Conclusão Através do documento de requisitos, foi possível entender, por uma breve descrição, o problema a ser resolvido com a análise de requisitos para desenvolver o sistema de controle. Em seguida foram apresentados todos os requisitos funcionais do sistema, isto é, todos os serviços que o controle deve oferecer aos seus usuários, segundo a definição do cliente. Depois disso (apresenta-se os requisitos funcionais e os requisitos não funcionais, que irão definir restrições de como o sistema irá funcionar baseado em seus requisitos funcionais. O Diagrama de Caso de Uso e seus detalhamentos deram uma visão geral do funcionamento do Software bem como os atores que estão relacionados a cada funcionalidade do Sistema por conseguinte o Digrama de Classe fornece uma visão geral sobre o software que será desenvolvido. Após essa análise do sistema a ser desenvolvido, demonstra-se a codificação das classes a serem implementadas com exemplos de programação em Visual Studio 2022, Android Studio em C#, CSS e XML, aplica-se um layout responsivo, tanto para uso WEB quanto mobile, para adaptação completa em qualquer tipo de tela, incrementando as necessidades de aplicação dos botões que listará o usuário pelo CPF ou nome no sistema e então após selecionar será possível editar, excluir ou criar um novo, finalizando assim a implementação de todos os métodos necessários que a empresa encontrou necessidade de aplicar, no mais, basta averiguar os códigos apresentados. 6. Referências PRESSMAN, Roger S.; LOWE, David Brian. Engenharia Web. LTC, 2009 ANDERSON, R.; HANSELMAN, S. Intro to ASP.NET MVC 4 with Visual Studio (Beta). Microsoft Corporation, 2012. Disponível em: http://ligman.me/N1KICh acesso em 03/02/2014 PRESSMAN., and Roger S.. Engenharia de Software. ArtMed, 2011. KALBACH., and James. Design de Navegação Web: Otimizando a Experiência do Usuário. Bookman, 2009 Complementar Harold, Elliotte R. Refatorando HTML. Bookman, 2010. BROCKSCHMIDT, K. Programming Windows 8 Apps with HTML, CSS, and JavaScript. Microsoft Press. Washington, 2012. Disponível em: http://ligman.me/SwpKBz acesso em 03/02/2014. Manara, MILETTO, Evandro, and BERTAGNOLLI, Silvia de Castro. Desenvolvimento de Software II: Introdução ao Desenvolvimento Web com HTML, CSS, JavaScript e PHP. Bookman, 2014. SANDERS., and Bill. Smashing HTML5: Técnicas para a Nova Geração da Web. Bookman, 2012. DEITEL, PAUL J.; DEITEL, HARVEY M. Ajax, Rich Internet Applications e Desenvolvimento Web para Programadores. São Paulo Pearson, 2008. LARMAN, C. Utilizando UML e Padrões - Uma Introdução Á Análise e ao Projeto Orientados a Objetos e Desenvolvimento Iterativo. Bookman, 2011. GAMMA, E. Padrões de Projetos: Soluções Reutilizáveis de Software Orientado a Objetos. Bookman, 2011. BECK, K. Padrões de Implementação: Um Catálogo de Padrões Indispensável para o Dia a Dia do Programador. Bookman, 2013. Complementar KERIEVSKY, J. Refatoração para padrões. Bookman, 2008. FURGERI, S. Java 7 - Ensino Didático. 2.ed. Erica, 2012. GOODRICH, M. T. Estruturas de Dados & Algoritmos em Java. 5.ed. Bookman, 2013. HORSTMANN, C. Padrões e projetos orientados a objetos, 2.ed. Bookman, 2007. J., DEITEL, Paul, DEITEL, Harvey M., DEITEL, Abbey, and MORGANO, Michael. Android para programadores: Uma Abordagem Baseada em Aplicativos. Bookman, 2013. Herbert, SCHILDT, and SKRIEN, Dale. Programação com Java: Uma Introdução Abrangente. AMGH, 2013. Sites utilizados google.com youtube.com
Compartilhar