Curso de ASP .NET Core MVC - Criando um Site do Zero
4.6 (325 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
939 students enrolled

Curso de ASP .NET Core MVC - Criando um Site do Zero

Criando um site para venda de lanches
4.6 (325 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
939 students enrolled
Created by Macoratti .
Last updated 7/2020
Portuguese
Current price: $13.99 Original price: $19.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 7.5 hours on-demand video
  • 1 article
  • 8 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Ao final do curso os alunos terão os conhecimentos necessários sobre ASP .NET Core MVC e Entity Framework Core para criar web sites dinâmicos com acesso a dados
Course content
Expand all 67 lectures 07:33:38
+ Introdução
1 lecture 04:38

- Objetivo do curso
- Ferramentas usadas
- Pré-requisitos necessários
- Dúvidas ? Como proceder

Preview 04:38
+ Projeto ASP .NET Core MVC - Site para Venda de Lanches
8 lectures 46:34

- Apresentação da aplicação : Venda de Lanches online
- Principais Funcionalidades
- Página de lanches, carrinho de compras, área de adminstração


 

Preview 06:45

- Ambiente Windows 
- Ambiente Linux e MacOs
- Visual Studio 2017 Community
- SQL Server
- SQL Server Management Studio 

Preview 04:15
Ajuste da aula de ambiente para a versão ASP .NET Core 3.1
02:27

- Criando o projeto no VS 2017 Community
- Template Web Application (Model-View-Controller)
- Estrutura do projeto 

Criando o Projeto ASP .NET Core MVC
06:45

O arquivo Imagens_Lanches31.zip refere-se às imagens usadas na pasta images na nova versão do projeto

Ajuste da aula de projeto para ASP .NET Core 3.1
03:47

- O padrão MVC : Model , View, Controller
- Controladores e métodos Action e URL
- Fluxo de atendimento de requisições
- Entendendo como funciona o MVC 

Apresentando o padrão MVC - Model, View e Controller
09:02

- Startup : ConfigureServices e Configure - Serviço MVC
- Verificando o ambiente de trabalho
- Rota padrão :  Método Configure do arquivo Startup
- Arquivo de _Layout e projeto 

Funcionamento do projeto do site para venda de lanches
09:51
Ajuste da aula da estrutura do projeto
03:42
+ Modelo de Dominio - Entity Framework Core
11 lectures 01:09:34

-  Modelo de domínio : Lanche e Categoria
-  Usando a Abordagem Code-First
-  Entity FrameworkCore 2.0   

Criando o modelo de domínio
08:34

- Apresentando o EF Core
- Ferramente ORM - Mapeamento objeto relacional
- DbContext e DbSet e LINQ
- DataBaseFirst e Code First   

Entity Framework Core
06:46

- Referencia aos pacotes do EF Core via Nuget
- Definindo a classe de Contexto : DbContext
- Definindo as entidades com DbSet
- Registrar contexto como serviço : Startup
- Definindo a string de conexão no arquivo appsettings.json 

Configurando o Entity Framework Core
10:26
Ajuste da Aula de Configuração do EF Core
04:56

- Validando o modelo com Atributos Data Annotations
- Principais atributos :
- Required, Display, StringLenght, DataType   

Data Annotations
02:52
Ajuste da Aula Data Annotations para versão 3.1
00:36

- Gerenciando o versionamento do banco de dados
- add-migration - gerando o script da migração
- update-database - aplicando o script e atualizando o banco de dados
- Criando o banco de dados e as tabelas Lanches e Categorias
- Ajustando o esquema usando DataAnnotations 

Usando EF Core Migrations
09:28

- Populando as tabelas com dados via  Migrations
- Criando uma migração: Os métodos Up() e Down()
- Usando o método MigrationBuilder.Sql() para definir comandos SQL   

- Arquivo Lanches_MigracacaoPopularDB.txt contendo o código usado para popular as tabelas

Populando o banco de dados com Migrations
08:36

protected override void Up(MigrationBuilder migrationBuilder)
{

            //categorias
            migrationBuilder.Sql("INSERT INTO Categorias(CategoriaNome,Descricao) VALUES('Normal','Lanche feito com ingredientes normais')");

            migrationBuilder.Sql("INSERT INTO Categorias(CategoriaNome,Descricao) VALUES('Natural','Lanche feito com ingredientes integrais e naturais')");


            //lanches
            migrationBuilder.Sql("INSERT INTO Lanches(CategoriaId,DescricaoCurta,DescricaoDetalhada,EmEstoque,ImagemThumbnailUrl,ImagemUrl,IsLanchePreferido,Nome,Preco) VALUES((SELECT CategoriaId FROM Categorias Where CategoriaNome='Normal'),'Pão, hambúrger, ovo, presunto, queijo e batata palha','Delicioso pão de hambúrger com ovo frito; presunto e queijo de primeira qualidade acompanhado com batata palha',1, 'http://www.macoratti.net/Imagens/lanches/cheesesalada1.jpg','http://www.macoratti.net/Imagens/lanches/cheesesalada1.jpg', 0 ,'Cheese Salada', 12.50)");

            migrationBuilder.Sql("INSERT INTO Lanches(CategoriaId,DescricaoCurta,DescricaoDetalhada,EmEstoque,ImagemThumbnailUrl,ImagemUrl,IsLanchePreferido,Nome,Preco) VALUES((SELECT CategoriaId FROM Categorias Where CategoriaNome='Normal'),'Pão, presunto, mussarela e tomate','Delicioso pão francês quentinho na chapa com presunto e mussarela bem servidos com tomate preparado com carinho.',1,'http://www.macoratti.net/Imagens/lanches/mistoquente4.jpg','http://www.macoratti.net/Imagens/lanches/mistoquente4.jpg',0,'Misto Quente', 8.00)");

            migrationBuilder.Sql("INSERT INTO Lanches(CategoriaId,DescricaoCurta,DescricaoDetalhada,EmEstoque,ImagemThumbnailUrl,ImagemUrl,IsLanchePreferido,Nome,Preco) VALUES((SELECT CategoriaId FROM Categorias Where CategoriaNome='Normal'),'Pão, hambúrger, presunto, mussarela e batalha palha','Pão de hambúrger especial com hambúrger de nossa preparação e presunto e mussarela; acompanha batata palha.',1,'http://www.macoratti.net/Imagens/lanches/cheeseburger1.jpg','http://www.macoratti.net/Imagens/lanches/cheeseburger1.jpg',1,'Cheese Burger', 11.00)");

            migrationBuilder.Sql("INSERT INTO Lanches(CategoriaId,DescricaoCurta,DescricaoDetalhada,EmEstoque,ImagemThumbnailUrl,ImagemUrl,IsLanchePreferido,Nome,Preco) VALUES((SELECT CategoriaId FROM Categorias Where CategoriaNome='Natural'),'Pão Integral, queijo branco, peito de peru, cenoura, alface, iogurte','Pão integral natural com queijo branco, peito de peru e cenoura ralada com alface picado e iorgurte natural.',1,'http://www.macoratti.net/Imagens/lanches/lanchenatural.jpg','http://www.macoratti.net/Imagens/lanches/lanchenatural.jpg',0,'Lanche Natural Peito Peru', 15.00)");

   }

       protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.Sql("DELETE FROM Categorias");
            migrationBuilder.Sql("DELETE FROM Lanches");
        }
    }

Ajuste da aula Populando o banco de dados para nova versão
02:21

- O conceito do padrão Repository : Desacoplando a camada de acesso a dados
- Centralizando as consultas em um Repositório
- Vantagens do padrão Repository 

Apresentando o padrão Repository
03:54

- Definindo as interfaces ICategoriaRepository e ILancheRepository
- Implementando o repositórios : CategoriaRepository e LancheRepository
- Registrar os serviços do repostórios para realizar a injeção de dependência
- services.AddTransient<Interface,implementação>   

Implementando o padrão Repository
11:05
+ Controllers e Views
21 lectures 02:12:36

- As convenções usadas com o Controller. Como criar um Controller
- Criando um controlador : LanchesController
- Referenciando os repositórios no Controlador
- Retornando uma lista de lanches
- Usando ViewBag e ViewData
- Criando uma view razor List.cshtml usando o Scaffolding

Criando o Controlador e a View para exibir lanches
11:10

- Ajustando o código da View List.cshtml
- Definindo um model na View: @model
- Definindo o código Razor para exibir dados dos lanches

Ajustando o código da view List
04:48

- _ViewStart - definindo o arquivo de layout usado no projeto
- _ViewImports - definindo os namespaces e as taghelpers
-  Bootstrap - Aplicando estilos e melhorando a aparência da aplicação

Os arquivos _ViewStart e _ViewImports e o BootStrap
06:48

- Apresentando o conceito de ViewModel
- Separando a lógica da View em uma ViewModel
- Benefícios em usar a ViewModel

ViewModel - Conceito
02:32

- Criando a ViewModel : LancheListViewModel
- Definindo a lógica da View em LancheListViewModel
- Ajustando o controlador para usar a View Model criada e exibir os lanches 

Implementando o padrão ViewModel
05:38

- Partial View - view renderizada em outra view
- Encapsular a lógica usada nas views
- Permite reutilizar o código de uma view em outras views
- As partials Views não possuem layout
- Invocando partial views : @Html.Partial("NomeView", model), RenderPartial 

Apresentando Partial Views
04:26

- Criando uma partial view para exibir lanches
- Criando a partial View _LanchesResumo na pasta Shared
- Renderizando a partial view na View List.chstml

Implementando Partial Views
03:43
Ajusta da aula Implementando Partial Views para nova versão
02:06

- Implementar a classe CarrinhoCompraItens
- Definir o DbSet<> na classe de contexto AppDbContext
- Usar o Migrations para atualizar o esquema do banco de dados
- Criar a tabela CarrinhoCompraItens usando Migrations


Carrinho de Compras
05:56

- Apresentando Session : conceitos
- Usando Session : Microsoft.AspNetCore.Session
- Configurando a Sessão
- Definir cache de memória : MemoryCache
- Usar a Session : AddSession()
- Ativar o middleware :  services.UseSession()

Session e o estado da aplicação
04:59

- Criando a classe CarrinhoCompra
- Métodos do Carrinho:  incluir lanche, remover lanche, obter carrinho, limpar carrinho
- Definir serviço para obter carrinho da Session : IHttpContextAcessor
- Registrando um serviço para obter o carrinho da sessão

Implementando o Carrinho de Compras
12:44

- Criar o controller CarrinhoCompraController
- Definir métodos Action para:  Apresentar o carrinho, incluir e  remover itens do carrinho
- Definir a View Index para apresentar o carrinho 

Implementando o controller do Carrinho de Compras
11:05

- Aproveitando o código do controlador HomeController
- Ajustando o código da Action Index para obter os lanches preferidos
- Criando a view model HomeViewModel para usar como model na View Index
- Criando uma partial view para exibir o carousel com imagens de lanches
- Criar a View Index para exibir os lanches preferidos


Criando a página inicial - Lanches Preferidos
10:37

- ViewComponents : conceitos
- Como funcionam as ViewsComponents
- Como criar e usar uma ViewComponent

Apresentando as ViewComponents
04:08

- Criar uma View Component para exibir a quantidade de itens do carrinho
- Criar a pasta Components e a classe CarrinhoCompraResumo
- Definir o código do método Invoke()
- Criar a View Default.cshtml

Implementando uma ViewComponent
08:10

- TagHelpers : Conceitos
- Como funciona e como usar
- Principais taghelpers : asp-for, asp-controller, asp-action

Apresentando as TagHelpers
05:21

- Criando uma TagHelper para enviar exibir um link para enviar email
- Criar pasta TagHelpers
- Criar classe EmailTagHelper
- Sobrescrever o método Process

Criando uma TagHelper
05:56

- Redefinir a view List e retornar lanches por categoria
- Alterando o método List do controlador LancheController e incluindo a categoria
- Criando uma rota e incluindo as categorias como parâmetro na rota
- Usando MapRoute : name , url e default
- Criando a rota no arquivo Configure da classe Startup

Rotas - Definindo uma nova rota na aplicação
09:31
Ajuste da aula Rotas para a nova versão
01:11

- Criando uma ViewComponent para exibir no menu Lanches as opções para listar os lanches por categoria
- Criar classe CategoriaMenu na pasta Components
- Criar View Default na pasta Shared/Components/CategoriaMenu
- Usar a ViewComponent no arquivo _Layout

Criando um ViewComponent para exibir novos itens de Menu
04:57

- Criando um link na exibição dos lanches para ver detalhes do lanche
- Definir botão para incluir lanche no carrinho de compras
- Ajustar a partial _LancheResumo
- Criar método Details no controller LancheController para obter detalhes do lanche
- Criar a View Details para exibir detalhes do lanche

Exibindo detalhes de um Lanche
06:50
+ Pedidos : Ajustando o Modelo - Migrations
6 lectures 45:52

- Criando novas classe de domínio para gerenciar pedidos
- Criar as classe Pedido e PedidoDetalhe
- Definir o mapeamento na classe de contexto AppDbContext
- Atualizar o esquema do banco de dados usando Migrations

Expandindo o modelo de domínio - Pedidos
10:03

- Criando a interface IPedidoRepository
- Implementando a interface na classe PedidoRepository
- Registrar o serviço no método ConfigureServices

Criando o repositório para os pedidos
04:32

- Incluindo na barra de navegação a busca de lanches por nome
- Definir um formulário com input text no arquivo _Layout
- Criar o método Action Search no controlador LancheController
- Retornando o resultado na view List

Procurando Lanches - Search
05:23

- Criando o controlador PedidoController
- Referenciar os repositórios PedidoRepository e CarrinhoCompra
- Criar o método Action Checkhou (GET e POST)
- Criar a view Checktout :  formulário de confirmação do pedido
- Criar o método Action CheckoutCompleto

Criando o controlador PedidoController
10:29

Alternativa para exibir os detalhes do pedido do cliente na página de conclusão do Checkout

Exibindo detatlhes do Pedido em CheckoutCompleto
07:53

Exibindo detalhes dos lanches na página de conclusão do pedido CheckoutCompleto.cshtml

Exibindo detalhes dos Lanches do pedido na página CheckoutCompleto
07:32
+ Autenticacao e Autorizacao - Identity
6 lectures 38:58

- Conceitos de autenticação e autorização
- Template de projeto para implementar a autenticação
- A implementação da autenticação do template do VS 2017
- Os controladores, ViewModels e Views criadas pelo template
- A migração criada para criar o banco de dados e as tabelas

Autenticação e Autorização
04:30

- Configurando a aplicação para usar o Identity
- Apresentando o Identity da ASP .NET Core MVC
- Pacotes necessários para usar o Identity
- Alterando a classe de contexto para herdar de IdentityDbContext
- Configurar os serviços : services.AddIdentity<>();
- Ativar o middleware :  app.UseAuthentication();

Usando o Identity
07:11

- Criar o controlador AccountController
- Referenciar : UserManager<T> e SignInManager<T>
- Criar a view model LoginViewModel
- Criar o método Action Login(GET e POST)

Implementando o Login
07:54

- Criar o método Action Register(GET e POST)
- Usar o filtro ValidateAntiForgeryToken
- Explicando como funciona o ValidateAntiForgeryToken
- Criar o método Action Logout(HttpPost)

Implementando o Registro
05:05

- Criar a view Login.chstml
- Criar a view Register.chstml
- Criar a view Logout.chstml
- Criar a partial view _LoginPartial na pasta Shared
- Ajustar o código do arquivo _Layout

Criando as Views Login e Register
07:32

- Usando o atributo Authorize : conceitos
- Verificar a autenticação via código :  IsAuthenticated
- Verificar a autenticação usando o atributo Authorize
- O atributo AllowAnonymous :  permitindo o acesso anônimo

Implementando a Autorização
06:46
+ Área de Administração
7 lectures 52:45

- Apresentando Areas : conceitos
- Quando usar Areas
- Características das Areas
- Exemplo de estrutura de um projeto com Areas
- O atributo [Area("")] usado nos controllers
- Criando a rota usando areaRout: {area:exists}

Apresentando Areas
06:42

- Criando um pasta Areas no projeto
- Definindo a área Admin
- Criar a pasta Controllers,  Views e Shared
- Criando o controlador AdminController e a view Index
- Criar os arquivos _ViewImports e _ViewStart na pasta Views
- Definindo a rota no arquio Startup
- Definindo um novo arquivo _Layout usado na área Admin

Usando Areas : criando uma área de Administração
08:47

- Criando os controladores para gerenciar pedidos, lanches e categorias
- Usando o Scaffolding para gerar os controladores e as views
- Criando o controlador AdminCategoriasController e suas Views
- Criando o controlador AdminLanchesController e suas Views
- Criando o controlador AdminPedidosController e suas Views
- Fazendo os ajustes nas views e a tradução dos textos

Área de administração : gerenciando pedidos, lanches e categorias
08:20

- Identificação e apresentação dos problemas

Ajuste no código do projeto para melhorar a Segurança - I
07:52

- Criar roles : Admin e Member
- Criar usuário com perfil Admin para acessar a área de administração
- Implementar a autorização nos controllers da área Admin para o perfil Admin - [Authorize(Roles ="Admin")]
- Exibir link - Admin - somente para usuário Admin : User.IsInRole("Admin")

Ajuste no código do projeto para melhorar a segurança - II
12:07
Ajusta da Aula para a versão da ASP .NET Core 3.1
02:16

- Exibir carrinho de compras somente para usuário autenticado : User.Identity.IsAuthenticated
- Definir roteamento para página de acesso negado
- Criar o método Action AccessDenied e a respectiva View

Ajuste no código do projeto para melhorar a segurança - III
06:41
+ Projeto ASP .NET Core MVC 2.0 - Download
1 lecture 00:04

Projeto do Site para Venda de Lanches

Download do Projeto da versão ASP .NET Core 2.0
00:04
+ Projeto Venda de Lanches - Versão 3.1
2 lectures 18:47
Apresentação do roteiro para migrar para a versão 3.1 da ASP .NET Core
11:31
Apresentação do projeto e da aplicação Venda de Lanches versão 3.1
07:16
+ Novas Funcionalidades - Paginação, Filtro de dados, Detalhes do Pedido
4 lectures 43:50

Roteiro para implementação da paginação e filtro de dados no projeto de Lanches da versão ASP .NET Core 3.1 para Lanches e Pedidos usando a biblioteca ReflectionIT.Mvc.Paging  4.0.0

Roteiro para Implementação da Paginação e Filtro
07:09

Implementação da paginação e filtro de dados no projeto de Lanches da versão ASP .NET Core 3.1 para Lanches e Pedidos no VS 2019 usando o pacote : ReflectionIT.Mvc.Paging 4.0.0

Implementação da Paginação e Filtro de dados
07:52

Implementando a funcionalidade para exibir os detalhes do pedido na página de Pedidos da área de administração


Exibindo Detalhes do Pedido na área de Administração
13:59
Relatório de Pedidos por período
14:50
Requirements
  • Conceitos básicos da Linguagem C#, conceitos de HTML e JavaScript
Description

Este curso apresenta os principais conceitos da ASP .NET Core MVC aplicados na criação de um site para vendas de lanches funcional. Você vai criar do zero um site web dinâmico e aprender diversos conceitos relacionados ao desenvolvimento web usando a tecnologia ASP .NET Core MVC e o Entity Framework Core.

Com os conceitos aprendidos você estará apto a criar seus próprios sites usando os principais recursos da ASP .NET Core MVC a tecnologia mais moderna e atual da Microsoft para desenvolvimento web.

Who this course is for:
  • Iniciantes que desejam desenvolver aplicações dinâmicas para web usando a tecnologia ASP .NET Core MVC