Escolar Documentos
Profissional Documentos
Cultura Documentos
São Paulo – SP
2023
Bruna Regina Nunes dos Santos RA: 0606942
Diogo Cavalcanti Dos Santos RA: 0601375
Gabriel Maia de Andrade RA: 0608185
Paula Helena Câmara RA: 0605092
Natã Rodrigues Frois RA: 0601016
São Paulo - SP
2023
UNIVERSIDADE PAULISTA – UNIP EAD
Folha De Aprovação
Bruna Regina Nunes dos Santos RA: 0606942
Diogo Cavalcanti Dos Santos RA: 0601375
Gabriel Maia de Andrade RA: 0608185
Paula Helena Câmara RA: 0605092
Natã Rodrigues Frois RA: 0601016
Aprovado em:
BANCA EXAMINADORA
BANCA EXAMINADORA
BANCA EXAMINADORA
São Paulo - SP
2023
RESUMO
ABSTRACT
Based on the content of the subjects Object-Oriented Programming II, Software
Development for the Internet and Special Topics in Object-Oriented Programming, this
project addresses the creation of a digital solution to develop a database access mechanism
using C#. Our team will improve a system already in progress, focusing on creating a
structure to access information from the database. This includes the development of graphical
interface prototypes in ASP.NET for user interaction and in Android.This system will provide
an efficient and user-friendly experience, making buying and selling different products a
simple and quick task for sellers and buyers.
KEYWORDS: DEVELOPMENT, C#, DATABASE.
Sumário
1 Introdução..............................................................................................................................6
2 Tópicos Especiais De Programação Orientada A Objetos.................................................7
4.3 Desenvolvimento...............................................................................................................20
4.4 Testagem.............................................................................................................................20
5 Conclusão..............................................................................................................................24
6 Referências............................................................................................................................25
6
1 Introdução
Código Fonte:
packagebr.unip.sqlitecrud;
importandroidx.appcompat.app.AlertDialog;
importandroidx.appcompat.app.AppCompatActivity;
import android.database.Cursor; import
android.os.Bundle;import
android.view.Menu; import
android.view.MenuItem; import
android.view.View;import
android.widget.Button; import
android.widget.EditText; import
android.widget.Toast;
publicclassMainActivityextendsAppCompatActivity{ DatabaseHelpe
r myDb;
EditText editlogradouro, editnumero,editcep,editbairro,editcidade,editestado,editid; Button btnsalvar;
Buttonbtnviewall;
Buttonbtnupdate; Button
btndelete;
@Override
protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate
(savedInstanceState); setContentView (R.layout.activity_main);
myDb=newDatabaseHelper(this);
editlogradouro=(EditText)findViewById(R.id.editText_logradouro); editnumero =
(EditText) findViewById (R.id.editText_numero); editcep = (EditText) findViewById
(R.id.editText_cep);
editbairro = (EditText) findViewById (R.id.editText_bairro);
editcidade=(EditText)findViewById(R.id.editText_cidade);
editestado=(EditText)findViewById(R.id.editText_estado); editid =
(EditText) findViewById (R.id.editText_id);
btnsalvar = (Button) findViewById (R.id.button_salvar); btnviewall =
(Button) findViewById (R.id.button_view);
btnupdate=(Button)findViewById(R.id.button_update); btndelete =
(Button) findViewById (R.id.button_del); Salvar ();
Viewall(); UpdateData();
DeleteData();
Código Fonte:
11
packagebr.unip.sqlitecrud;
importandroidx.appcompat.app.AlertDialog;
importandroidx.appcompat.app.AppCompatActivity;
publicclassMainActivityextendsAppCompatActivity{ DatabaseHelpe
r myDb;
EditText editlogradouro, editnumero,editcep,editbairro,editcidade,editestado,editid; Button btnsalvar;
Buttonbtnviewall;
Buttonbtnupdate; Button
btndelete;
@Override
protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate
(savedInstanceState); setContentView (R.layout.activity_main);
myDb=newDatabaseHelper(this);
editlogradouro=(EditText)findViewById(R.id.editText_logradouro); editnumero =
(EditText) findViewById (R.id.editText_numero); editcep = (EditText) findViewById
(R.id.editText_cep);
editbairro = (EditText) findViewById (R.id.editText_bairro);
editcidade=(EditText)findViewById(R.id.editText_cidade);
editestado=(EditText)findViewById(R.id.editText_estado); editid =
(EditText) findViewById (R.id.editText_id);
btnsalvar = (Button) findViewById (R.id.button_salvar); btnviewall =
(Button) findViewById (R.id.button_view);
btnupdate=(Button)findViewById(R.id.button_update); btndelete =
(Button) findViewById (R.id.button_del); Salvar ();
Viewall(); UpdateData();
DeleteData();
}
public void DeleteData(){ btndelete.setOnClickListener (
newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
IntegerdeleteRows=myDb.deleteData(editid.getText().toString()); if(deleteRows > 0)
Toast.makeText(MainActivity.this,"Deletadocom
Sucesso",Toast.LENGTH_SHORT).show();
else
Toast.makeText(MainActivity.this,"Errona
Deleção",Toast.LENGTH_SHORT).show ();
}
}
);
}
public void UpdateData(){ btnupdate.setOnClickListener
(
newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
booleanisUpdate=myDb.updateData(editid.getText().toString (),editlogradouro.getText ().toString
12
}
public void showMessage(String title,String Message)
{ AlertDialog.Builderbuilder=newAlertDialog.Builder(this); builder.setCancelable
(true);
builder.setTitle (title); builder.setMessage
(Message); builder.show ();
}
relações entre essas entidades, como a entre Cliente e Carrinho, o diagrama traduz requisitos
de negócios em estruturas tangíveis, facilitando a comunicação da equipe. A inclusão opcional
de classes como Endereço e Categoria oferece uma modelagem mais refinada. O Diagrama de
Classes não apenas guia a estrutura, mas também auxilia em decisões de design, garantindo
coesão e simplicidade na manipulação de dados ao longo do ciclo de vida do projeto. Em
suma, é uma ferramenta essencial para criar um sistema robusto e eficaz no contexto de um
Marketplace.
3.2 Diagrama de Classes (Entidades)
}
Classe PRODUTO
namespace WebApplicationCRUD.Models
{
public class Produto
{
public int Id { get; set; }
public string Descricao { get; set; }
public decimal Preco { get; set; }
public string Imagem { get; set; }
public string Status { get; set; }
public Vendedor Vendedor { get; set; }
16
}
Classe VENDEDOR
namespace WebApplicationCRUD.Models
{
public class Vendedor
{
public string RazaoSocial { get; set; }
public string NomeFantasia { get; set; }
public string Cnpj { get; set; }
public string Email { get; set; }
public string Senha { get; set; }
public decimal Comissao { get; set; }
public Endereco Endereco { get; set; }
}
}
Classe CARRINHO
namespace WebApplicationCRUD.Models
{
public class Carrinho
{
public int Id { get; set; }
public DateTime DataPedido { get; set; }
public decimal ValorTotal { get; set; }
public int StatusPedido { get; set; }
public Cliente Cliente { get; set; }
public List<Produto> Produtos { get; set; }
}
}
CarrinhoRepository (CRUD) – Com os métodos implementados
namespace WebApplicationCRUD.Controllers
{
public class CarrinhoRepositoryController : Controller
{
private readonly Contexto _context;
// GET: CarrinhoRepository
public async Task<IActionResult> Index()
{
return _context.CarrinhoRepository != null ?
View(await _context.CarrinhoRepository.ToListAsync()) :
Problem("Entity set 'Contexto.CarrinhoRepository' is null.");
// GET: CarrinhoRepository/Details/5
public async Task<IActionResult> Details(int? id)
{
if (id == null || _context.CarrinhoRepository == null)
{
return NotFound();
}
17
return View(carrinhoRepository);
}
// GET: CarrinhoRepository/Create
public IActionResult Create()
{
return View();
}
// POST: CarrinhoRepository/Create
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Nome")] CarrinhoRepository carrinhoRepository)
{
if (ModelState.IsValid)
{
_context.Add(carrinhoRepository);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(carrinhoRepository);
}
// GET: CarrinhoRepository/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null || _context.CarrinhoRepository == null)
{
return NotFound();
}
// POST: CarrinhoRepository/Edit/5
// To protect from overposting attacks, enable the specific properties you want to bind to.
// For more details, see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Nome")] CarrinhoRepository carrinhoRepository)
{
if (id != carrinhoRepository.Id)
{
return NotFound();
}
if (ModelState.IsValid)
18
{
try
{
_context.Update(carrinhoRepository);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!CarrinhoRepositoryExists(carrinhoRepository.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(carrinhoRepository);
}
// GET: CarrinhoRepository/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null || _context.CarrinhoRepository == null)
{
return NotFound();
}
return View(carrinhoRepository);
}
// POST: CarrinhoRepository/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
if (_context.CarrinhoRepository == null)
{
return Problem("Entity set 'Contexto.CarrinhoRepository' is null.");
}
var carrinhoRepository = await _context.CarrinhoRepository.FindAsync(id);
if (carrinhoRepository != null)
{
_context.CarrinhoRepository.Remove(carrinhoRepository);
}
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
}
}
necessidades do cliente. Quando surja alguma dúvida referente ao projeto, todos poderão
consultar. E qualquer passo ou alteração precisam ser documentadas.
4.3 Desenvolvimento
Durante essa etapa, será desenvolvido o código do software, além da utilização de
alguma metodologia
4.4 Testagem
Ao final de todos esses passos, é necessário começar a fase de testes, que é quando o
código é testado internamente, para verificar se há algum erro antes de entregar o projeto final
ao cliente. E sempre que possível, utilizar backups de segurança, além disso, sempre possuir
uma cópia de segurança salva e constantemente atualizada.
4.5 Protótipo de Interface Gráfica em ASP .Net
Na disciplina de Desenvolvimento de Software para Internet, a equipe focou na
criação de um protótipo de interface gráfica em ASP .Net utilizando o Visual Studio. O
objetivo era oferecer ao usuário funcionalidades CRUD para os dados relacionados ao trecho
de banco de dados sob a responsabilidade do CarrinhoRepository. Um formulário foi
desenvolvido para proporcionar uma experiência interativa e amigável aos usuários.
4.6 Capturas de Tela e Código ASP .Net
O Projeto incluiu capturas de tela das interfaces gráficas, obtidas diretamente do
Visual Studio ou de um navegador de internet. Além disso, o código ASP .Net do layout dos
formulários foi incorporado, demonstrando a estrutura e a lógica por trás da interface criada.
Nesse processo, a equipe buscou garantir não apenas a funcionalidade técnica, mas também
uma experiência de usuário eficiente e agradável. A combinação entre o mecanismo de acesso
ao banco de dados e o protótipo de interface gráfica em ASP .Net representa um avanço
significativo na implementação do sistema de Marketplace online, alinhando-se aos padrões
de qualidade estabelecidos pelas disciplinas envolvidas no projeto.
21
Figu
ra 7: Autoria próprio autor
5 Conclusão
Este Projeto Integrador Multidisciplinar 8, teve como objetivo o desenvolvimento do
aluno nas disciplinas de Tópicos Especiais de Programação, Desenvolvimento de Software
para a Internet e Programação Orientada a Objetos 2 as três disciplinas se entrelaçaram para
criar um marketplace voltado para smartphones que proporcionou uma experiencia
educacional rica e abrangente. A disciplina de Tópicos Especiais de Programação permitiu a
exploração de conceitos de interface gráfica utilizando a Ferramenta Android Studio e o
código XML além de desenvolver activities além das funcionalidades CRUD para os dados
relacionados ao banco de dados. Ao mesmo tempo, a disciplina de Desenvolvimento de
Software para a Internet trouxe uma perspectiva prática com ênfase em elaborar o protótipo
de interface gráfica em ASP.Net usando o Visual Studio. As interfaces gráficas ofereceram ao
usuário as funcionalidades CRUD para os dados relacionados no trecho de banco de dados
sob seus cuidados. Foi criado os formulários para isso além das capturas de tela e suas
interfaces gráficas junto com o código Aspx do layout dos formulários do protótipo. A
experiência prática adquirida nessa disciplina foi crucial para enfrentar os desafios específicos
relacionados à criação de software destinado à Internet. Por fim, a Programação Orientada a
Objetos 2 consolidou e expandiu os conhecimentos sobre esse paradigma de programação,
pois foi realizado os códigos das classes das entidades, além do código da classe
CarrinhoRepository a lógica dos métodos da classe CarrinhoRepository a fim de acessar o
banco de dados. A abordagem orientada a objetos em C# não apenas contribuiu para a
eficiência do código, mas também facilitou a colaboração entre membros da equipe,
promovendo um desenvolvimento mais ágil e colaborativo. Este Projeto Integrador
Multidisciplinar teve também o propósito de demonstrar algumas das etapas cruciais no
desenvolvimento de software além de questões técnicas envolvidas em cada área, afim de
informar o leitor de maneira mais simples e direta ,há outras questões envolvidas em
desenvolver esse produto de software no formato de marketplace ,essas questões são mais
abrangentes e não caberiam no formato padrão apresentado, em tempo sugiro ao leitor utilizar
um olhar compreensivo pois é importante considerar a dedicação e empenho aplicados nesse
projeto , para apresentar um trabalho correto e de qualidade.
25
6 Referências
LIMA, EDWIN. C# e .NET para desenvolvedores. Eugênio Reis, Rio de Janeiro: Campus,
2002.
Desenvolvimento de Softwares: O que é, Como Funciona e Dicas. 10 de maio 2019, 17:03.
Disponível em: <https://fia.com.br/blog/desenvolvimento-de-softwares/> Acesso em
06/11/2023 às 20:08.
JUNIOR, P. Quais as etapas do Desenvolvimento de Softwares? Conheça agora.
Disponível em: <https://polijunior.com.br/blog/etapas-do-desenvolvimento-de-softwares/>
Acesso em 06/11/2023 às 20:27.
KAMIENSKI, C, A. Introdução ao Paradigma de Orientação à Objetos. João Pessoa,
julho de 1996.
SOUZA, D, I. Entenda o que é XML e quais as utilidades dessa linguagem de marcação.
13 de dezembro de 2018. Disponível em: <https://rockcontent.com/br/blog/o-que-e-xml/>
Acesso em 06/11/2023 às 21:30.