Novidades do VS 2015: os templates ASP.NET 5 Class Library e Console Application

A chegada do ASP.NET 5 mostra que o .NET Framework está passando por uma considerável reformulação. Procurando flexibilizar o a implementação dos mais variados tipos de projetos de software, bem como levando em conta as principais tecnológicas atuais, esta nova plataforma Web se destaca por recursos como:

→ Um novo runtime multiplaforma;

→ Um modelo de programação Web unificado e otimizado (o namespace System.Web deixou de existir), visando tornar mais simples a implementação de aplicações MVC e Web API;

→ Mudanças no processo de compilação, com a possibilidade inclusive de se efetuarem alterações no código a partir do Visual Studio em tempo de execução (sem que isto implique na necessidade de recompilação de todo o projeto considerado);

→ O ASP.NET 5 é agora um projeto open source, com seu código-fonte estando hospedado no GitHub;

→ Ênfase no desenvolvimento para cloud computing, com recursos que buscam facilitar a implementação e implantação de soluções voltadas a estes ambientes.

Como era de se esperar, o Visual Studio 2015 oferece total suporte a construção de aplicações baseadas no ASP.NET 5. Contudo, além de um novo template para a implementação de soluções Web, foram disponibilizados ainda dois novos tipos de projetos (Imagem 1):

→ ASP.NET 5 Class Library;

→ ASP.NET 5 Console Application.

Imagem 1. Novos templates no Visual Studio 2015 CTP 5

Imagem 1. Novos templates no Visual Studio 2015 CTP 5

Embora o nome “ASP.NET 5” sugira um vínculo direto com desenvolvimento Web, estes dois novos templates correspondem em termos gerais às Class Libraries e Console Applications convencionais. O objetivo deste artigo é detalhar as mudanças na estrutura destes novos tipos de projetos, os quais se utilizam em grande parte dos mesmos recursos empregados pelo ASP.NET 5.

Implementando uma ASP.NET 5 Class Library

O primeiro passo para a implementação de uma ASP.NET 5 Class Library será a geração de uma nova Solution chamada “TesteVS2015NovosTemplates” (Imagem 2).

Imagem 2. Criando a Solution para testes

Imagem 2. Criando a Solution para testes

OBSERVAÇÃO: os projetos criados neste artigo foram implementados a partir do Visual Studio 2015 CTP 5.

Em seguida deverá ser criado um novo projeto do tipo “ASP.NET 5 Class Library”, o qual terá por nome “TesteVS2015NovosTemplates.ClassLibrary” (Imagem 3).

Imagem 3. Criando uma nova ASP.NET 5 Class Library

Imagem 3. Criando uma nova ASP.NET 5 Class Library

Será implementada nesta biblioteca uma classe chamada ConversorTemperatura. Como indicado na Listagem 1, este tipo contará com métodos que possibilitarão a conversão entre temperaturas em graus Celsius e seus valores correspondentes nas escalas Fahrenheit e Kelvin.

Listagem 1: Classe ConversorTemperatura

using System;

namespace TesteVS2015NovosTemplates.ClassLibrary
{
    public static class ConversorTemperatura
    {
        public static double CelsiusToFahrenheit(
            double grausCelsius)
        {
            return ((9.0 / 5.0) * grausCelsius) + 32;
        }

        public static double FahrenheitToCelsius(
            double grausFahrenheit)
        {
            return (5.0 / 9.0) * (grausFahrenheit - 32);
        }

        public static double CelsiusToKelvin(
            double grausCelsius)
        {
            return grausCelsius + 273.15;
        }

        public static double KelvinToCelsius(
            double grausKelvin)
        {
            return grausKelvin - 273.15;
        }
    }
}

A Imagem 4 apresenta a estrutura do projeto TesteVS2015NovosTemplates.ClassLibrary, ao passo que na Imagem 5 é possível observar o equivalente para uma Class Library criada no Visual Studio 2013.

Imagem 4. Estrutura do projeto TesteVS2015NovosTemplates.ClassLibrary

Imagem 4. Estrutura do projeto TesteVS2015NovosTemplates.ClassLibrary

Imagem 5. Estrutura de uma Class Library criada no Visual Studio 2013

Imagem 5. Estrutura de uma Class Library criada no Visual Studio 2013

Analisando as diferenças entre estes dois projetos, é possível observar os seguintes pontos:

→ As referências “ASP.NET 5.0” e “ASP.NET Core 5.0” substituíram as bibliotecas utilizadas em versões anteriores do Visual Studio;

→ O uso de XML em arquivos de configurações (como no caso do App.config) deu lugar ao padrão JSON (o arquivo project.json é um bom exemplo disto).

Implementando uma ASP.NET 5 Console Application

Dando andamento à demonstração proposta por este artigo, o próximo passo será adicionar à solução de testes uma nova “ASP.NET 5 Console Application”. O nome deste projeto será “TesteVS2015NovosTemplates.ConsoleApp” (Imagem 6).

Imagem 6. Criando uma nova ASP.NET 5 Console Application

Imagem 6. Criando uma nova ASP.NET 5 Console Application

A aplicação TesteVS2015NovosTemplates.ConsoleApp deverá referenciar a biblioteca gerada na seção anterior. Adicionar para isto uma referência ao projeto TesteVS2015NovosTemplates.ClassLibrary, conforme indicado nas Imagens 7 e 8.

Imagem 7. Adicionando uma referência ao projeto TesteVS2015NovosTemplates.ConsoleApp

Imagem 7. Adicionando uma referência ao projeto TesteVS2015NovosTemplates.ConsoleApp

Imagem 8. Incluindo o projeto TesteVS2015NovosTemplates.ClassLibrary na Console Application de testes

Imagem 8. Incluindo o projeto TesteVS2015NovosTemplates.ClassLibrary na Console Application de testes

Já na Imagem 9 está a estrutura da Console Application após estes últimos ajustes. Comparando com uma aplicação correspondente criada por meio do Visual Studio 2013 (Imagem 10), será possível notar que as mesmas modificações que aconteceram nas Class Libraries também estão presentes neste novo tipo de projeto.

Imagem 9. Estrutura do projeto TesteVS2015NovosTemplates.ConsoleApp

Imagem 9. Estrutura do projeto TesteVS2015NovosTemplates.ConsoleApp

Imagem 10. Estrutura de uma Console Application criada no Visual Studio 2013

Imagem 10. Estrutura de uma Console Application criada no Visual Studio 2013

Por fim, na Listagem 2 está a definição da classe Program (que faz parte do projeto TesteVS2015NovosTemplates.ConsoleApp). Esta última faz uso do tipo ConversorTemperatura, cuja implementação foi detalhada na seção anterior:

→ Os diferentes métodos declarados em ConversorTemperatura estão sendo invocados para efeitos de testes, com os valores correspondentes sendo exibidos em tela via método WriteLine da classe Console;

→ Um novo recurso do C# 6.0 conhecido como String Interpolation também está sendo utilizado, de forma a simplificar a geração das strings que serão repassadas como parâmetros à operação WriteLine.

Listagem 2: Classe Program

using System;
using TesteVS2015NovosTemplates.ClassLibrary;

namespace TesteVS2015NovosTemplates.ConsoleApp
{
    public class Program
    {
        public void Main(string[] args)
        {
            double temperatura;

            temperatura = 212;
            Console.WriteLine(
                $"{temperatura} graus Fahrenheit = " +
                $"{ConversorTemperatura.FahrenheitToCelsius(temperatura)} graus Celsius");

            temperatura = 0;
            Console.WriteLine(
                $"{temperatura} graus Celsius = " +
                $"{ConversorTemperatura.CelsiusToFahrenheit(temperatura)} graus Fahrenheit");

            temperatura = 273.15;
            Console.WriteLine(
                $"{temperatura} graus Kelvin = " +
                $"{ConversorTemperatura.KelvinToCelsius(temperatura)} graus Celsius");

            temperatura = 100;
            Console.WriteLine(
                $"{temperatura} graus Celsius = " +
                $"{ConversorTemperatura.CelsiusToKelvin(temperatura)} graus Kelvin");

            Console.ReadLine();
        }
    }
}

Executando a Console Application aqui descrita, aparecerá uma tela como a que consta na Imagem 11.

Imagem 11. Executando a Console Application de testes

Imagem 11. Executando a Console Application de testes

Conclusão

A ideia por trás deste post foi demonstrar em linhas gerais dois dos novos templates que integram o Visual Studio 2015. Embora a implementação de classes e outras construções nestes tipos de projetos não mude em relação às versões anteriores, o grande benefício em se optar pelos mesmos está no caráter multiplataforma e nas otimizações disponibilizadas pelo ASP.NET 5. É Importante destacar ainda a possibilidade de que tais templates sejam renomeados em releases futuros do Visual Studio.

Espero que o conteúdo apresentado tenha sido útil.

Até uma próxima oportunidade!

Renato Groffe – Consultor em TI, MCTS
http://rgroffe.wordpress.com/

Referências

ASP.NET 5 Overview
http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview

Visual Studio 2015 CTP 5
http://www.visualstudio.com/en-us/news/vs2015-vs.aspx

Comentarios

comentarios