.NET - Criando uma aplicação OWIN com hospedagem no IIS - II


 Neste artigo vou mostrar como criar uma aplicação OWIN e como hospedar a aplicação no IIS.

Já vimos na primeira parte do artigo que a especificação OWIN define uma abstração entre servidores Web e aplicativos da Web.

Ao separar o servidor da Web do aplicativo, o OWIN facilita a criação de middleware para o desenvolvimento de aplicações Web na plataforma .NET.

Além disso, o OWIN facilita a portabilidade de aplicativos Web para outros hosts, por exemplo, a auto-hospedagem em um serviço do Windows ou em outro processo.

Criando uma aplicação ASP .NET e usando os pacotes Katana Nuget podemos criar e executar nossa aplicação baseado em Owin de 3 maneiras diferentes:

  1. Self-Host (em nosso próprio programa / windows services)
  2. OwinHost.exe (ferramenta de linha de comando)
  3. Microsoft.Owin.Host.SystemWeb (servidor Owin para o pipeline tradicional do Asp.Net no IIS)

Além disso temos que a estrutura do OWIN é composta por:

Neste artigo vamos criar uma aplicação OWIN e hospedar o OWIN no IIS. Essa opção oferece a flexibilidade e composibilidade de um pipeline OWIN junto com o conjunto de recursos maduros do IIS. Usando essa opção, o aplicativo OWIN é executado no pipeline de solicitação da ASP.NET.

Recursos usados:

Criando a aplicação OWIN no VS 2017

Abra o VS 2017 Community e crie um projeto Web usando o template ASP .NET Web Application(.NET Framework) usando o nome AspNet_OwinApp;

A seguir selecione o template Empty, sem autenticação, e clique em OK:

Temos assim uma aplicação ASP .NET vazia. Vamos incluir alguns pacotes para torná-la uma aplicação OWIN.

Adicionando os Pacotes NuGet

Vamos então incluir o pacote Nuget Microsoft.Owin.Host.SystemWeb

No menu Tools, selecione Library Package Manager e selecione Package Manager Console.

Na janela do Console do Gerenciador de Pacotes, digite o seguinte comando:  Install-Package Microsoft.Owin.Host.SystemWeb

Agora vamos incluir a classe Startup.cs no projeto para poder definir algumas configurações iniciais em nossa aplicação.

Criando a classe Startup

No menu Project clique em Add Class e selecione o template OWIN Startup Class informando o nome Startup e clicando no botão Add:

Inclua o código abaixo no arquivo Startup :

using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(AspNet_OwinApp.Startup))]
namespace AspNet_OwinApp
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.Run(context =>
            {
                context.Response.ContentType = "text/plain";
                return context.Response.WriteAsync("Olá, Sou uma Owin App...");
            });
        }
    }
}

Neste código adicionamos o middleware ao pipeline OWIN, implementado como uma função que recebe uma instância do Microsoft.Owin.IOwinContext.

Quando o servidor recebe uma solicitação HTTP, o pipeline OWIN chama o middleware. O middleware define o tipo de conteúdo para a resposta e grava o corpo da resposta

Observe que a estrutura do nosso projeto web é a mais enxuta possível :

Executando o projeto teremos o resultado abaixo:

Temos assim uma aplicação OWIN hospedada no IIS.

Na hospedagem usando o IIS, ele atual como um servidor HTTP e como um processo que hospeda o serviço.

Podemos também usar a Self-Host ou auto-hospedagem usando um processo personalizado. Neste caso nossa aplicação vai criar o processo e usar a classe HttpListner como um servidor HTTP.

Na próxima parte do artigo veremos como criar uma aplicação Console Self-hosted baseada em OWIN.

"Vinde a mim, todos os que estais cansados e oprimidos, e eu vos aliviarei."(disse Jesus)
Mateus 11:28

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti