Nesta aula iremos aprender como colocar um sistema em produção de forma simples utilizando Github e Azure.
Vamos criar uma aplicação para fazer o deploy em produção.
Criaremos uma pasta e dentro desta pasta, criaremos o projeto.
mkdir deploy_azure
cd deploy_azure
Iremos criar a aplicação MVC para fazer o deploy.
dotnet new mvc
Vamos executar o projeto.
dotnet run
Faremos uma alteração na view do projeto
@{
ViewData["Title"] = "Home Page";
}
< div class="text-center">
< h1 class="display-4">Olá para você que quer colocar um sistema em produção com C#.>
Acesse o < a href="https://www.torneseumprogramador.com.br">www.torneseumprogramador.com.br< /a>.
< /div>
Criremos um repositório no github com o nome deploy_azure_aula_youtube.
vamos criar um arquivo na raiz do projeto chamado .gitignore.
Vamos acessar o site gitiginore.io para que ele gere alguns arquivos que serão ignorados no github.Para isso, podemos digitar: macOS vscode VisualStudio VisualStudioCode DotnetCore
iremos copiar o conteúdo do arquivo gerado no site acima , dentro do arquivo .gitignore.
Executaremos os comandos:
Ao criar a conta na Azure, vamos criar um AppServices
Ao clicar em go Resource
Será criada a string de conexão que deve ser copiada no projeto Dotnet core.
No arquivo appsettings.json, criaremos uma variável ConnectionStrings e copiaremos a string de conexão.
"ConnectionStrings": {
"DefaultConnection": "Server=tcp:aulayoutube.database.windows.net,1433;Initial catalog=deploy-aula-youtube;Persist Security Info=False;User ID=aulayoutube8b8e!"
}
Vamos criar um Modelo de dados do EntityFramework com a estrutura de pastas abaixo:
Criaremos o modelo de Clientes:
using Microsoft.EntityFrameworkCore;
namespace WebTddBdd.Models
{
public class Cliente
{
[Table("Clientes")]
public int Id { get;set };
public string Nome { get;set };
public string CPF { get;set };
}
public void Save(){
var context = new DBContextWeb();
context.Clientes.Add(this);
context.SaveChanges();
}
public static DbSet< Cliente>All(){
return new DBContextWeb().CLientes;
}
public static void DestroyAll()
{
var dbContext = new DBContextWeb();
dbContext.Database.ExecuteSqlRaw("delete from clientes");
}
}
No arquivo DbContextWeb.cs:
using Microsoft.EntityFrameworkCore;
namespace WebTddBdd.Models
{
public class DBContextWeb: DbContext
{
public DBContextWeb(DBContextOptions options) : base(options)
{
}
public DBContextWeb(){}
public DbSet< Cliente> Clientes(){ get; set; }
protect override void onConfiguring(DbContextOptionsBuilder optionsBuilder)
{
JToken jAppSettings = JToken.Parse(File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "appsettings.json")));
optionsBuilder.UseSqlServer(jAppSettings["ConnectionStrings"]["DefaultConnection"].ToString());
}
}
}
Iremos instalar o EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Iremos instalar o EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
Iremos instalar o EntityFrameworkCore.Tools
dotnet add package Microsoft.EntityFrameworkCore.Tools
Vamos gerar as migrations:
dotnet ef migrations add InitialCreate
No site da Azure, em Firewall settings, vamos liberar o endereço IP para que possamos acessar a base de dados local:
Iremos atualizar o database:
dotnet ef database update
Na Controller->HomeController, vamos obter os clientes na Action Index:
public IActionResult Index()
{
ViewBag.clientes = new DbContextWeb().Clientes.ToList()
return View();
}
Na pasta Views->Home, arquivo Index.cshtml, iremos mostrar a lista de clientes:
@{
ViewData["Title"] = "Home Page";
}
< div class="text-center">
< h1 class="display-4">Olá para você que quer colocar um sistema em produção com C#.>
< p>Acesse o < a href="https://www.torneseumprogramador.com.br">www.torneseumprogramador.com.br< /a>.
< /div>
Lista de clientes
@foreach (WebTddBdd.Models.Cliente cliente in ViewBag.clientes)
{
-
Id: @cliente.Id< /br>
Nome: @cliente.Nome< /br>
CPF: @cliente.CPF< /br>
}
Vamos enviar o código para o GitHub que fará o deploy na Azure. Lembrando que a string de conexão não deve ser enviada para o GitHub. Foi feito somente para fins didáticos.
git add .
git commit -am "com banco de dados"
git push
No site da Microsoft Azure, em Deployment Center vamos verificar que o deploy foi concluído.
Acessando a página da aplicação: deploy-azure-aula-youtube.azurewebsites.net, serão mostrados os clientes que foram cadastrados.
Nesta aula iremos aprender como colocar um sistema em produção de forma simples utilizando Github e Azure.
Vamos criar uma aplicação para fazer o deploy em produção.
Criaremos uma pasta e dentro desta pasta, criaremos o projeto.
mkdir deploy_azure
cd deploy_azure
Iremos criar a aplicação MVC para fazer o deploy.
dotnet new mvc
Vamos executar o projeto.
dotnet run
Faremos uma alteração na view do projeto
@{
ViewData["Title"] = "Home Page";
}
< div class="text-center">
< h1 class="display-4">Olá para você que quer colocar um sistema em produção com C#.>
Acesse o < a href="https://www.torneseumprogramador.com.br">www.torneseumprogramador.com.br< /a>.
< /div>
Criremos um repositório no github com o nome deploy_azure_aula_youtube.
vamos criar um arquivo na raiz do projeto chamado .gitignore.
Vamos acessar o site gitiginore.io para que ele gere alguns arquivos que serão ignorados no github.Para isso, podemos digitar: macOS vscode VisualStudio VisualStudioCode DotnetCore
iremos copiar o conteúdo do arquivo gerado no site acima , dentro do arquivo .gitignore.
Executaremos os comandos:
Ao criar a conta na Azure, vamos criar um AppServices
Ao clicar em go Resource
Será criada a string de conexão que deve ser copiada no projeto Dotnet core.
No arquivo appsettings.json, criaremos uma variável ConnectionStrings e copiaremos a string de conexão.
"ConnectionStrings": {
"DefaultConnection": "Server=tcp:aulayoutube.database.windows.net,1433;Initial catalog=deploy-aula-youtube;Persist Security Info=False;User ID=aulayoutube8b8e!"
}
Vamos criar um Modelo de dados do EntityFramework com a estrutura de pastas abaixo:
Criaremos o modelo de Clientes:
using Microsoft.EntityFrameworkCore;
namespace WebTddBdd.Models
{
public class Cliente
{
[Table("Clientes")]
public int Id { get;set };
public string Nome { get;set };
public string CPF { get;set };
}
public void Save(){
var context = new DBContextWeb();
context.Clientes.Add(this);
context.SaveChanges();
}
public static DbSet< Cliente>All(){
return new DBContextWeb().CLientes;
}
public static void DestroyAll()
{
var dbContext = new DBContextWeb();
dbContext.Database.ExecuteSqlRaw("delete from clientes");
}
}
No arquivo DbContextWeb.cs:
using Microsoft.EntityFrameworkCore;
namespace WebTddBdd.Models
{
public class DBContextWeb: DbContext
{
public DBContextWeb(DBContextOptions options) : base(options)
{
}
public DBContextWeb(){}
public DbSet< Cliente> Clientes(){ get; set; }
protect override void onConfiguring(DbContextOptionsBuilder optionsBuilder)
{
JToken jAppSettings = JToken.Parse(File.ReadAllText(Path.Combine(Environment.CurrentDirectory, "appsettings.json")));
optionsBuilder.UseSqlServer(jAppSettings["ConnectionStrings"]["DefaultConnection"].ToString());
}
}
}
Iremos instalar o EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Iremos instalar o EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
Iremos instalar o EntityFrameworkCore.Tools
dotnet add package Microsoft.EntityFrameworkCore.Tools
Vamos gerar as migrations:
dotnet ef migrations add InitialCreate
No site da Azure, em Firewall settings, vamos liberar o endereço IP para que possamos acessar a base de dados local:
Iremos atualizar o database:
dotnet ef database update
Na Controller->HomeController, vamos obter os clientes na Action Index:
public IActionResult Index()
{
ViewBag.clientes = new DbContextWeb().Clientes.ToList()
return View();
}
Na pasta Views->Home, arquivo Index.cshtml, iremos mostrar a lista de clientes:
@{
ViewData["Title"] = "Home Page";
}
< div class="text-center">
< h1 class="display-4">Olá para você que quer colocar um sistema em produção com C#.>
< p>Acesse o < a href="https://www.torneseumprogramador.com.br">www.torneseumprogramador.com.br< /a>.
< /div>
Lista de clientes
@foreach (WebTddBdd.Models.Cliente cliente in ViewBag.clientes)
{
-
Id: @cliente.Id< /br>
Nome: @cliente.Nome< /br>
CPF: @cliente.CPF< /br>
}
Vamos enviar o código para o GitHub que fará o deploy na Azure. Lembrando que a string de conexão não deve ser enviada para o GitHub. Foi feito somente para fins didáticos.
git add .
git commit -am "com banco de dados"
git push
No site da Microsoft Azure, em Deployment Center vamos verificar que o deploy foi concluído.
Acessando a página da aplicação: deploy-azure-aula-youtube.azurewebsites.net, serão mostrados os clientes que foram cadastrados.