ASP .NET
Core 3.1 - Projeto Funcionários Web
![]() |
Neste artigo mostramos como criar uma aplicação ASP .NET Core MVC com EF Core ambos na versão 3.1 para realizar o CRUD básico. |
|
Vamos criar um projeto ASP .NET Core MVC com EF Core para realizar o CRUD básico usando o Scaffold e assim ter um projeto de partida ASP .NET Core MVC.
![]() |
Nossa aplicação ASP .NET Core MVC vai gerenciar informações de funcionários, e para isso, vamos definir uma classe Funcionario que será o nosso modelo de domínio; vamos usar também uma enumeração Departamento para criar os departamentos onde os funcionários estão lotados.
recursos usados:
Criando o projeto inicial no VS 2019
Abra o VS 2019 Community e crie um novo projeto via menu File-> New Project;
Selecione o template ASP .NET Core Web Application, e, Informe o nome da solução IdentityTotal (ou outro nome a seu gosto) e o nome do projeto FuncionariosWeb.
A seguir selecione .NET Core e ASP .NET Core 3.1 e marque o template Web Application e as configurações conforme figura abaixo:
Observe que não vamos definir agora a autenticação em nosso projeto vamos fazer isso depois.
Depois que o projeto foi criado, precisamos adicionar a referência aos seguintes pacotes:
Noata: Para instalar use o comando Install-Package <nome> -version 3.1.3
Esses pacotes são necessários para realizarmos o acesso ao banco de dados SQL Server e aplicarmos o Migrations ao modelo de domínio e assim gerar o banco de dados e as tabelas.
Definindo o modelo de domínio
Na pasta Models do projeto crie a classe Funcionario e a enumeração Departamento:
using System.ComponentModel.DataAnnotations;
namespace FuncionariosWeb.Models
{
public class Funcionario
{
public int FuncionarioId { get; set; }
[Required, MaxLength(80, ErrorMessage = "Nome não pode exceder 80 caracteres")]
public string Nome { get; set; }
[RegularExpression(@"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$",
ErrorMessage = "Email com formato inválido")]
[Required]
public string Email { get; set; }
public Departamento? Departamento { get; set; }
}
}
|
Enumeração Departamento:
namespace FuncionariosWeb.Models
{
public enum Departamento
{
TI,
RH,
Contabilidade,
Marketing,
Vendas
}
}
|
Criando o contexto e registrando como um serviço e aplicando o Migrations
Agora crie uma pasta Context no projeto e nesta pasta crie o arquivo AppDbContext:
using FuncionariosWeb.Models;
using Microsoft.EntityFrameworkCore;
namespace FuncionariosWeb.Context
{
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options)
{ }
public DbSet<Funcionario> Funcionarios { get; set; }
}
}
|
No método ConfigureServices do arquivo Startup registre o serviço do contexto:
...
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<AppDbContext>(
options => options.
UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddControllersWithViews();
}
...
|
E no arquivo appsettings.json inclua a string de conexão com o banco de dados usando sua instância local:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=Macoratti;Initial Catalog=FuncionariosDBWeb;Integrated Security=True"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
|
Para criar o banco de dados e a tabela com as configurações definidas abra uma janela do Package Manager Console e digite o comando:
add-migration Inicial
Isso vai gerar o script de migração na pasta Migrations que será criada no projeto. Não havendo nenhum erro então emita o comando :
update-database
Isso vai criar o banco de dados e as tabelas no SQL Server.
Nota: Para alimentar a tabela com dados você pode usar a classe de Contexto - AppDbContext e definir a sobrescrita do método OnModelCreating :
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Funcionario>().HasData(
new Funcionario
{
FuncionarioId = 1,
Nome = "Macoratti",
Departamento = Departamento.TI,
Email = "macoratti@yahoo.com"
});
}
|
Criando o controlador
Agora vamos criar o controlador para gerenciar as informações dos funcionários e fazer o CRUD.
Clique com o botão direito do mouse sobre a pasta Controllers e a seguir clique em Add->Controller;
A seguir escolha a opção MVC Controller with views, using Entity Framework e clique em Add;
Na janela a seguir informe o modelo Funcionario, o data context AppDbContext e informe o nome FuncionariosController e clique em Add:
Ao final será criado o controlador e as views.
Ajustando a view _Layout.cshtml para ter um link para exibir o acessso aos funcionários temos:
..
<div
class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> |
Agora é só alegria...
Executando o projeto teremos:
Pronto, já temos nossa aplicação ASP .NET Core MVC.
Pegue o projeto completo aqui: IdentityTotal.zip (sem as referências)
Referências:
ASP .NET Core - Implementando a segurança com ... - Macoratti
ASP.NET Core MVC - Criando um Dashboard ... - Macoratti.net
C# - Gerando QRCode - Macoratti
ASP .NET - Gerando QRCode com a API do Google