Começando com ASP.NET 5 – Adicionando o mvc, dependências e middlewares

ASP.NET-5-Middleware-Pipeline-and-Startup-Class

A ideia inicial era escrever apenas um post falando sobre o asp.net 5, e fazer uma aplicação simples tentando mostrar as diferenças para as versões anteriores. Como acabou ficando muito grande, decidi quebrar em pequenos posts. Você pode conferir no post anterior como preparar o ambiente, algumas coisas que mudaram, como criar um projeto, etc. Como eu comecei com um template vazio, vamos implementando aos poucos o que precisamos. Vamos começar adicionando as dependências do Mvc. Adicionar uma referência ficou bem fácil. Basta ir no arquivo project.json e adicioná-la dentro de dependencies

"dependencies": {
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final"
  }

Agora podemos adicionar o método ConfigureServices dentro de Startup.cs com o seguinte código:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
}


E depois adicionar a rota padrão, como estávamos acostumados, dentro do método Configure:

public void Configure(IApplicationBuilder app)
{
    app.UseMvc(routes =>
    {
            routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}");
    });
}

Note que ao utilizarmos o IServiceCollection, precisamos adicionar mais uma referência no project.json:

  "dependencies": {
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final"
  }

Agora podemos criar nosso Controller HomeController.cs e a nossa view Index.cshtml:

  • Controllers/HomeController.cs
using Microsoft.AspNet.Mvc;

namespace finance.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }
    }
}
  • Views/Home/Index.cshtml
olá

Agora como alteramos as nossas dependências, vamos rodar o comando dnu restore e depois dnx web para rodar o nosso projeto. Pronto, agora ao entrar em http://localhost:8000/, você deverá ver o conteúdo de nossa view, da mesma maneira que era antigamente.

Note que tudo continua como antigamente. Configuramos a nossa rota padrão para Home/Index, a convenção de localização de views dentro de Views/{controller}/{action} continua, etc. O que muda principalmente aqui é justamente a seguinte linha:

app.UseMvc();

Ao adicionarmos essa linha, estamos adicionando um Middleware em nosso pipeline. Ou seja, estamos adicionando um componente que será executado durante o nosso request. Este conceito é bem importante e está na base do asp.net 5. Inclusive a ordem em que adicionamos os nossos middlewares é bem importante. Caso queira fazer um teste, adicione o seguinte trecho de código antes do app.UseMvc() e entre novamente em http://localhost:8000/:

app.Run(async context =>
{
    await context.Response.WriteAsync("eu venho antes do mvc :o");
});

Agora coloque-o depois do app.UseMvc() e teste novamente. Isso acontece por conta de como as coisas estão acontecendo por de baixo dos panos. Confira a imagem a seguir:

asp.net 5 middlewares

Você pode conferir mais sobre middlewares em: docs.asp.net/en/latest/fundamentals/middleware.html

Bom, por hoje é só 😉

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s