Il nome completo di OWIN è Open Web Interface for .NET. Se analizziamo solo dal nome, possiamo ottenere queste informazioni: OWIN è un'interfaccia web aperta per la piattaforma .NET. Quindi, chi è l'interfaccia tra l'interfaccia web? È l'interfaccia tra l'applicazione web e il server web, e OWIN è l'interfaccia tra l'applicazione web .NET e il server web. Perché hai bisogno di un'interfaccia del genere? Perché. L'applicazione web NET gira su un server web, e l'applicazione web .NET deve ricevere la richiesta dell'utente tramite il server web e inviare il contenuto di risposta all'utente tramite il server web. Senza tale interfaccia, l'applicazione web .NET dipenderebbe dal server web specifico che sta eseguendo, ad esempio ASP.NET l'applicazione dipenderebbe da IIS. Con questa interfaccia, ASP.NET'applicazione deve solo fare affidamento su questa interfaccia astratta e non si preoccupa del server web che sta eseguendo. Pertanto, il ruolo di OWIN è quello di disaccoppiare introducendo un insieme di interfacce astratte. NET web application e server web, dimostrando ancora una volta l'importanza delle interfacce. Nello sviluppo software, ogni disaccoppiamento è un grande passo avanti. 【Ulteriore comprensione】 OWIN è un'astrazione del ASP.NET Runtime. ASP.NET 5.0 è un'implementazione di OWIN. I seguenti diagrammi possono essere compresi in modo più intuitivo:
Conoscendo un po' di teoria di base, sviluppiamola nella pratica.
OWIN Auto-Host ASP.NET Web API 2 Per prima cosa, creiamo un progetto console vuoto:
Poi installa Microsoft.AspNet.WebApi.OwinSelfHost tramite Nuget
Possiamo anche aprire la console NuGet: Entra in scena il comando: Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
Poi aggiungiamo una classe di startup OWIN chiamata Startup come segue:
Scrivi codice all'avvio come segue:
Scriviamo un controller WebAPI con il seguente codice:
Infine iniziamo OWIN e aggiungiamo il seguente codice in Program.cs:
Avvia il programma console e accedi all'indirizzo che abbiamo appena impostato:
http://localhost:8080/api/Account
|