Novidades do VS 2015: os templates ASP.NET 5 Class Library e Console Application - TI Selvagem
→ 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
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
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
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
namespace TesteVS2015NovosTemplates.ClassLibrary
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(
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 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
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 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 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 TesteVS2015NovosTemplates.ClassLibrary;
namespace TesteVS2015NovosTemplates.ConsoleApp
temperatura = 212;
$"{temperatura} graus Fahrenheit = " +
$"{ConversorTemperatura.FahrenheitToCelsius(temperatura)} graus Celsius");
$"{temperatura} graus Celsius = " +
$"{ConversorTemperatura.CelsiusToFahrenheit(temperatura)} graus Fahrenheit");
temperatura = 273.15;
$"{temperatura} graus Kelvin = " +
$"{ConversorTemperatura.KelvinToCelsius(temperatura)} graus Celsius");
temperatura = 100;
$"{ConversorTemperatura.CelsiusToKelvin(temperatura)} graus Kelvin");
Executando a Console Application aqui descrita, aparecerá uma tela como a que consta na Imagem 11.
Imagem 11. Executando a Console Application de testes
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.