Começando com ASP.NET 5

Primeiramente, feliz natal para todos! Agora vamos ao que interessa! Como muitos devem saber, o asp.net 5 ainda está em desenvolvimento, porém ele já em release candidate. Podemos conferir as previsões para novas versões no github:

Milestone Release week
Beta6 27 Jul 2015
Beta7 2 Sep 2015
Beta8 15 Oct 2015
RC1 Nov 2015
RC2 Feb 2016
1.0.0 Q1* 2016

Mas como já estamos em Release Candidate, muitos bugs já foram corrigidos, as coisas já estão bem parecidas como serão em sua versão final e nada mais justo do que começarmos a ver as diferenças de suas versões anteriores, o que podemos aprender de novo, etc.

Para começarmos, precisamos preparar o ambiente. Eu utilizarei o Visual Studio Code como editor de texto e o yeoman para criar os projetos. Caso você tenha interesse, pode seguir esse post para aprender como instalar o yeoman e as suas dependências. E claro, o mais importante, precisamos do ASP.NET 5 instalado. Caso você ainda não tenha instalado, basta baixá-lo em get.asp.net. Antes de criarmos o nosso projeto, vamos dar uma olhada em algumas coisas que não estávamos acostumados em versões anteriores. Uma das coisas que obtemos ao instalar o asp.net 5, é o dnvm (.NET Version Manager). Não vou entrar a fundo no .net version manager, mas podemos brincar um pouco antes de prosseguirmos. Entre no cmd e digite:

dnvm list

dnvm list

A lista apresentada são todos os runtimes do .net que temos instalado. Note que essa lista corresponde ao conteúdo da pasta runtimes, que está localizado dentro de c:\users\seu_usuario\.dnx

dir dnx runtimes

Uma das coisas bacanas que temos no dnvm, é que podemos baixar através dele tanto versões estáveis quanto instáveis. Quando vamos instalar ou atualizar um runtime, se adicionarmos -u ou -unstable, baixaremos a última versão disponível em ambiente de desenvolvimento do MyGet do time de desenvolvimento da ms. Caso você não utilize -u, você baixará uma versão estável do nuget.

Vamos instalar uma outra versão que eu não tenha instalado, para conferirmos como podemos instalar novos runtimes de maneira rápida e simples. Vamos instalar uma versão mais antiga para ver como isso ficou bem fácil. Vou instalar a versão beta8 para o runtime coreclr e a arquitetura x64. Para isso, basta utilizarmos o comando:

dnvm install 1.0.0-beta8 -r coreclr -arch x64

dnvm install

Note que depois de instalarmos a versão 1.0.0-beta8, se rodarmos novamente o comando dnvm list, vermos que a nova versão foi instalada e agora está em uso:

dnvm after install

Como nesse caso não faz muito sentido utilizarmos uma versão mais antiga, para voltar a utilizar a versão que eu estava usando anteriormente (1.0.0-rc2-16351), basta utilizarmos o comando:

dnvm use 1.0.0-rc2-16351 -arch x86 -r clr

dnvm use

Para confirmarmos que estamos utilizando a versão que informamos através do dnvm, basta rodarmos o comando:

dnx --version

Para confirmarmos que é essa versão que está em uso:

dnx version

Caso você queira alterar o runtime de maneira persistente, ou seja, não apenas para a sua sessão atual no cmd, basta passar -p quando for alterar uma versão.

Antes de começarmos com o projeto em asp.net 5 e entity framework 7, vamos criar um projetinho simples, um hello world para vermos como as coisas andam mais simples. Vamos utilizar apenas o cmd (no meu caso, estou utilizando o cmder) e o visual studio code. Vá para o cmd, crie um diretório chamado helloworld e dois arquivos:

helloworld

Agora vamos criar dois arquivos, um deles é um arquivo json, e o outro um arquivo cs.

project.json

{
    "frameworks": {
        "dnx451": {}
    }
}

program.cs

using System;

public class Program 
{
    public void Main() 
    {
        Console.WriteLine("Hello world :D");
    }    
}

vsconde helloworld

Agora a única coisa que precisamos é rodar o comando:

dnx run

Dentro da pasta do projeto e pronto, temos um console application sem visual studio, sem csproj, sem app.config. E o melhor, podemos criar um projeto desses praticamente mais rápido do que esperar o próprio visual studio abrir.

dnx run

Agora vamos para o projeto! Vamos começar criando o nosso projeto utilizando o yeoman:

yo aspnet

Basta utilizar o comando:

  • yo aspnet

E escolher Empty Application. Após escolher o template do projeto, você poderá dar um nome para o seu projeto. No meu caso, eu dei o nome de finance, já que neste exemplo criarei um sistema básico de gerenciamento de contas pessoais, etc.

Caso você possua o visual studio code em seu path, basta entrar na pasta do seu projeto e digitar:

code .

Para abrir o vs code com o seu projeto. Note que quando criamos o nosso projeto, nenhuma dll que precisamos é adicionada ao projeto. Precisamos utilizar o comando:

dnu restore

Para baixarmos todas as dependências do projeto. Podemos fazer isso tanto do cmd quanto do vs code. Para rodarmos a partir do vs code, basta apertar F1.

dnu restore)

Nessa altura, nós temos dois arquivos que nos importam, sendo eles:

  • project.json
  • Startup.cs

Vamos dar uma olhada em Startup.cs:

using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Http;
using Microsoft.Extensions.DependencyInjection;

namespace finance
{
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
        }

        public void Configure(IApplicationBuilder app)
        {
            app.UseIISPlatformHandler();

            app.Run(async (context) =>
            {
                await context.Response.WriteAsync("Hello World!");
            });
        }

        public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
    }
}

Note que temos três métodos. Vamos limpá-los, pois nessa altura não vamos precisar de basicamente nada deles. O arquivo vai ficar da seguinte maneira:

using Microsoft.AspNet.Builder;

namespace finance
{
    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
        }

        public static void Main(string[] args) => Microsoft.AspNet.Hosting.WebApplication.Run<Startup>(args);
    }
}

Agora vamos dar uma olhada no arquivo project.json:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "tooling": {
    "defaultNamespace": "finance"
  },

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

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}

Neste momento, vamos fazer duas alterações no arquivo: A primeira é que vamos informar a porta que estaremos ouvindo, e a segunda é remover a dependência “Microsoft.AspNet.IISPlatformHandler”: “1.0.0-rc1-final”, já que não precisamos mais dela depois de a termos removido do nosso Startup. Agora, o nosso project.json está assim:

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },
  "tooling": {
    "defaultNamespace": "finance"
  },

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

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:8000"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ]
}

Nesta altura, o mais importante para a gente é a seguinte linha em project.json:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:8000"
  },

Trata-se de um comando que utilizaremos através do dnx, que neste caso se chama web e iniciará o nosso projeto na porta 8000. Agora basta rodarmos o o comando:

dnx web

Para termos o nosso projeto rodando na porta 8000:

dnx web

Note que se entrarmos no endereço http://localhost:8000, teremos basicamente uma tela em branco. Isso porque nós ainda não temos nada em nosso projeto. Não temos controllers, não estamos sequer utilizando o Mvc. Como este post acabou ficando um tanto grande já, deixarei para o próximo post assuntos como middleware, adicionar o mvc e como as coisas estão ficando.

Por hoje é só 😉 Abraço

Anúncios

Um comentário sobre “Começando com ASP.NET 5

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