Aplicação MVC com Class Library

Documentos relacionados
Aplicação ASP.NET MVC Cliente de Aplicação Web API (com Class Library)

Aplicação ASP.NET MVC Cliente de Aplicação Web API

Criação de uma aplicação Web ASP.NET MVC 4

Connection String usada por uma Class Library

Aplicação Web Zend Framework 2 Cliente de Aplicação Asp.Net Web API

Laboratório 3 Controllers

Criação de uma aplicação Web ASP.NET MVC usando Code First

Publicar uma aplicação ASP.NET Core com base de dados SqlServer no Azure usando Visual Studio e um perfil para publicação (publish profile)

PROJETOS EXEMPLO DE ASP.NET MVC

Many-to-many. Mapear no Context Na classe Context.cs, dentro do método OnModelCreating, adicionar o trecho

Resumo Aplicação MVC Contoso University

Aula07 Forms Authentication

Bem vindos ao Curso de ASP.NET MVC 3 Razor e C#

Criação de uma aplicação Web ASP.NET MVC5 usando Code First

Integração por Web Services

Login Google. Copie a SSL URL, que no meu caso é

Web Services Novembro de 2011

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 4 PROF. EMILIO PARMEGIANI

QBalança Biblioteca de comunicação com balanças

DISTRIBUINDO SUA APLICAÇÃO

DISTRIBUINDO SUA APLICAÇÃO

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

Microsoft Visual Studio Community 2013

1. Base de Dados criada automaticamente pelo Entity Framework. 2. Correspondência entre classes da aplicação Asp.Net e tabelas da base de dados

Tutorial de Aplicação Simples usando Web Forms e MySQL. Luiz Eduardo Guarino de Vasconcelos

Objectivos: Criar um programa de instalação do projecto desenvolvido

Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Introdução à Engenharia ENG1000

Guia e Utilização do Visual Studio.NET 2003

Visual Studio+SQL Server Express LocalDB ANTONIO LUIS

Login. Criar uma pasta Repositories na raiz do projeto. Criar uma classe Funcoes.cs dentro da pasta Repositories.

Aula 06 Usando controles em ASP.NET

ASP.NET Web Services. José Antônio da Cunha IFRN

Sistemas de Informação e Bases de Dados

Guia de procedimentos para construir um programa java no IDE Sun One Studio 4 update 1, Community Edition

Login. Criar um novo website File > New > WebSite Framework 4.5 Visual C# ASP.NET Empty Web Site Nome do projeto: WebLogin

2 Criar uma Enterprise Application que num módulo EJB irá conter um ou vários Beans.

COMPUTAÇÃO E PROGRAMAÇÃO

orm


Criando uma aplicação Web em C# usando o NHibernate

Aplicação MVC + Entity + MySQL

Construindo Aplicações com ASP.NET MVC 2.0 Aula 01 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

VALIDAÇÃO DE DADOS COM O PADRÃO MVC

A interface do Microsoft Visual Studio 2005

WebAPI. Comente o bloco system.data e entityframework (caso existam) no web.config

curso de ASP.NET MVC

Construindo Aplicações com ASP.NET MVC 2.0 Aula 02 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas

Selecione o WPF Application dentro de Templates > Visual C# > Windows

Aula 06 Classe Net.Mail

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

PROGRAMAÇÃO ORIENTADA A OBJETOS I. Prof. Me. Hélio Esperidião

Construindo uma ASP.Net MVC 4 Web Application usando Bootstrap no front-end

Introdução ao C# com o Microsoft Visual Studio Community 2015

Visual Studio.NET - C# Parte 2 Windows Forms e Web Services

LAB 18: ASP.NET e Web Services

Login Facebook. Continuação do passo-a-passo Login Google

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos realizar os passos abaixo.

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

Disciplina: INF Programação I. 1 a aula prática Introdução ao ambiente do Microsoft Visual Studio 2010

HERANÇA NO BANCO DE DADOS COM ENTITY FRAMEWORK RESUMO

Linguagem de Programação II Importando Classes/Pacotes

Para baixá-lo entre no site : Selecione a aba Downloads ; Clique no link: Microsoft Visual C# Express 2010; Por meio desse

Programação para Dispositivos Móveis

Boas práticas com Orientação a Objetos. Paulo Silveira

Consulta de endereço através do Cep

Criar uma aplicação JPA2 com EclipseLink e H2

Exercícios de fixação: Listas


DESENVOLVIMENTO DE SOFTWARE PARA INTERNET LABORATÓRIO 1 PROF. EMILIO PARMEGIANI

05 Como utilizar POO no ambiente gráfico do C#?

Aplicativos Web Com Asp.Net MVC em C# e Entity Framework Code First

PRDS C#.Net Alexandre L. Silva

Criação de um Web Services em.net

Análise e Projeto Orientados a Objetos

ADO1. Visual Studio 2008 New Web Site: ADO1 em C:\Utilizadors\Fernando\ \ARQSI\TP6

POO Programação Orientada a Objetos

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

Continuação... Criando a Interface e adiante

Criar uma solução com um link Serviços RIA entre os projetos

Trabalhando com MDI e Menus

Lists. Aproveitando o projeto WebLogin, vamos ver como implementar alguns componentes de lista (DropDownList, RadioButtonList e CheckBoxList).

NOTA: Neste tutorial foi utilizado o Visual Studio 2010 para criar o Projeto Web no qual iremos aplicar os temas e os skins.

Autenticação e Autorização numa Aplicação Web API através de uma aplicação Cliente ASP.NET MVC

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

Classe PHP Client. A classe Zend\Http\Client fornece uma interface para realizar pedidos HTTP.

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

Projeto webservicejax

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Sistemas Empresariais Integrados

Notas sobre Aplicação MVC Contoso University: Parte 4. Uso de Atributos para controlar Formatação, Validação e Mapeamento na Base de Dados

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Universidade da Beira Interior. Sistemas Distribuídos /2016 Curso: Engª Informática. Folha JAX-RS: Java API for RESTful Web Services

COMO CRIAR UM APLICATIVO UNIVERSAL WINDOWS PLATFORM CONSUMINDO WEB SERVICE ASP.NET WEB API

Curso: Desenvolvendo Jogos 2d Com C# E Microsoft XNA. Fazer desaparecer da tela do jogo a espaçonave inimiga quando um tiro acertá-la.

Técnicas Modernas em Compiladores

Login. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos

Tutorial sobre criação de regras de negócio para Android. Igor Rafael Santos da Silva

Programação Orientada por Objectos 2007/08

Transcrição:

Aplicação MVC com Class Library Vamos considerar uma Class Library com o modelo de dados e com acesso à base de dados através do Entity Framework. Uma Class Library nunca funciona sozinha. Vamos usá-la a partir de uma Aplicação Web MVC 5. O que executámos é a aplicação web, e é o ficheiro de configuração desta aplicação que é usado. A connection string deve estar no ficheiro web.config do projecto da aplicação web. A Class Library (que referenciamos do projecto aplicação web) deve ler a connection string do ficheiro web.config da aplicação web. Em geral, uma class library pode ser usada por diferentes programas, cada um usando diferentes configurações. Isto implica que a configuração deve residir na aplicação executável, e não na class library. Vamos criar os seguintes programas: 1) Uma solução para conter vários projectos. 2) Uma Class Library com o modelo de dados e acesso à base de dados através do Entity Framework. 3) Uma Aplicação Web, MVC5, com uma Referência para a Class Library. Em 2) não há necessidade de connection string. Em 3) a connection string deve estar no ficheiro Web.config da Aplicação Web. 1. Criar a Solução Visual Studio 2015 > File > New Project > Templates: abrir Other Project Types > Visual Studio Solutions > Blank Solution Name: Empregados 2. Criar a Class Library Class Library ligada à base de dados através do Entity Framework Bt. dir. do rato em cima do nome da solução: Add > New Project > Visual C# > Class Library Name: DataAccessLibrary OK 2.1 Adicionar Entity Framework à Class Library Bt. dir. do rato em cima do nome da Class Library: DataAccessLibrary > Manage Nuget Packages > (Online) > Entity Framework > Install Downloading Entity Framework Accept

Adicionado Entity Framework à Class Library Close Aparece o ficheiro de configuração App.config e também packages.config. 2.2 Criar uma pasta Models para as classes do modelo DataAccessLibrary > botão direito do rato: Add > New Folder > Models Models > botão direito do rato: Add > Class > Name: Empregado.cs Add public class Empregado public int EmpregadoId get; set; public string Nome get; set; public string Departamento get; set; 2.3 Criar uma pasta DAL para as classes de acesso à base de dados DataAccessLibrary > botão direito do rato: Add > New Folder > DAL DAL > botão direito do rato: Add > Class > Name: EmpregadosDbContext.cs Add public class EmpregadosDbContext : DbContext public EmpregadosDbContext() : base("defaultconnection") public DbSet<Empregado> Empregados get; set; DAL > botão direito do rato: Add > interface > Name: IEmpregadoRepository.cs Add public interface IEmpregadoRepository List<Empregado> GetData(); Empregado GetData(int id); Empregado GetData(string departamento); Empregado Create(Empregado emp); bool Update(int id, Empregado emp); bool Delete(int id); DAL > botão direito do rato: Add > class > Name: EmpregadoRepository.cs Add public class EmpregadoRepository : IEmpregadoRepository public EmpregadosDbContext context; public EmpregadoRepository() context = new EmpregadosDbContext(); public Empregado Create(Empregado emp) context.empregados.add(emp); context.savechanges(); return emp;

public bool Delete(int id) var emp = context.empregados.find(id); if (emp!= null) context.empregados.remove(emp); context.savechanges(); return true; else return false; public List<Empregado> GetData() var empregados = context.empregados.tolist(); return empregados; public Empregado GetData(int id) return context.empregados.find(id); public List<Empregado> GetData(string departamento) var empregados = context.empregados.where(e => e.departamento == departamento); return empregados.tolist(); public bool Update(int id, Empregado emp) var empregado = context.empregados.find(id); if (emp!= null) empregado.nome = emp.nome; empregado.departamento = emp.departamento; context.savechanges(); return true; else return false; 2.4 Compilar para criar a dll Bt. dir. do rato em cima do nome da class library: DataAccessLibrary > Build Cria a dll Empregados/DataAccessLibrary/bin/DataAccessLibrary.dll 3. Criar uma Aplicação Web MVC5 Esta aplicação Web usa uma referência para a Class Library. Bt. dir. do rato em cima do nome da solução:

Add > New Project > Visual C# Web > Asp.Net Web Application Name: WebApplication1 OK Template: MVC OK 3.1 Adicionar referência para a Class Library Bt. dir. do rato em cima do nome do projeto da aplicação web: WebApplication1 > Add > Reference > Solution > DataAccessLibrary Marcar DataAccessLibrary OK Em Solution Explorer abrir o item References e verificar que existe DataAccessLibrary. 3.2 Build da Aplicação Bt. dir. do rato em cima do nome do projeto da aplicação web: Build Necessário para em seguida o scaffolding poder usar as classes do modelo e do contexto de dados definidas na Class Library. 3.3 Scaffolding para criar Controladores e Vistas Controllers > botão direito do rato: Add > Controller > Add Scaffold: MVC 5 Controller with views, using Entity Framework > Add Model class: Data context class: Controller name: Empregado (DataAccessLibrary.Models) EmpregadosDbContext (DataAccessLibrary.DAL) EmpregadosController Add 3.4 Executar a aplicação WebApplication1 > Set as StartUp Project Debug > Start Debugging Na barra de endereços do browser acrescentar /Empregados localhost:xxxx/empregados 3.5 Alterar o código da classe EmpregadosController para usar o Repositório public class EmpregadosController : Controller // private EmpregadosDbContext db = new EmpregadosDbContext(); private IEmpregadoRepository repo = new EmpregadoRepository(); // GET: Empregados public ActionResult Index() // return View(db.Empregados.ToList()); return View(repo.GetData());

// GET: Empregados/Details/5 public ActionResult Details(int? id) if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); // Empregado empregado = db.empregados.find(id); Empregado empregado = repo.getdata((int)id); if (empregado == null) return HttpNotFound(); // GET: Empregados/Create public ActionResult Create() return View(); // POST: Empregados/Create [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create( [Bind(Include = "EmpregadoId,Nome,Departamento")] Empregado empregado) if (ModelState.IsValid) //db.empregados.add(empregado); //db.savechanges(); repo.create(empregado); return RedirectToAction("Index"); // GET: Empregados/Edit/5 public ActionResult Edit(int? id) if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); // Empregado empregado = db.empregados.find(id); Empregado empregado = repo.getdata((int)id); if (empregado == null) return HttpNotFound(); // POST: Empregados/Edit/5 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit( [Bind(Include = "EmpregadoId,Nome,Departamento")] Empregado empregado) if (ModelState.IsValid)

//db.entry(empregado).state = EntityState.Modified; //db.savechanges(); repo.update(empregado.empregadoid, empregado); return RedirectToAction("Index"); // GET: Empregados/Delete/5 public ActionResult Delete(int? id) if (id == null) return new HttpStatusCodeResult(HttpStatusCode.BadRequest); // Empregado empregado = db.empregados.find(id); Empregado empregado = repo.getdata((int)id); if (empregado == null) return HttpNotFound(); // POST: Empregados/Delete/5 [HttpPost, ActionName("Delete")] [ValidateAntiForgeryToken] public ActionResult DeleteConfirmed(int id) //Empregado empregado = db.empregados.find(id); //db.empregados.remove(empregado); //db.savechanges(); repo.delete(id); return RedirectToAction("Index"); //protected override void Dispose(bool disposing) // // if (disposing) // // db.dispose(); // // base.dispose(disposing); //