Le nom complet d’OWIN est Open Web Interface for .NET. Si l’on analyse uniquement le nom, on peut obtenir cette information : OWIN est une interface web ouverte pour la plateforme .NET. Alors, qui est l’interface entre l’interface web ? C’est l’interface entre l’application web et le serveur web, et OWIN est l’interface entre l’application web .NET et le serveur web. Pourquoi avez-vous besoin d’une telle interface ? Parce que. NET fonctionne sur un serveur web, et l’application web .NET doit recevoir la requête de l’utilisateur via le serveur web et envoyer le contenu de réponse à l’utilisateur via le serveur web. Sans une telle interface, l’application web .NET dépendrait du serveur web spécifique qu’elle exécute, par exemple ASP.NET l’application dépendrait de l’IIS. Avec cette interface, ASP.NET’application n’a besoin que de s’appuyer sur cette interface abstraite et ne se soucie pas du serveur web qu’elle exécute. Par conséquent, le rôle d’OWIN est de découpler en introduisant un ensemble d’interfaces abstraites. NET et serveur web, démontrant une fois de plus l’importance des interfaces. En développement logiciel, chaque découplage est un grand pas en avant. 【Compréhension approfondie】 OWIN est une abstraction du ASP.NET Runtime. ASP.NET 5.0 est une implémentation d’OWIN. Les diagrammes suivants peuvent être compris de manière plus intuitive :
Connaissant quelques bases de la théorie, développons-la en pratique.
OWIN Auto-Hébergeur ASP.NET API Web 2 Tout d’abord, nous créons un projet console vide :
Ensuite, installer Microsoft.AspNet.WebApi.OwinSelfHost via Nuget
Nous pouvons aussi ouvrir la console NuGet : Voici la commande : Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
Ensuite, nous ajoutons une classe de démarrage OWIN nommée Startup comme suit :
Écrivez du code au démarrage comme suit :
Écrivons un contrôleur WebAPI avec le code suivant :
Enfin, nous lançons OWIN et ajoutons le code suivant dans Program.cs :
Lance le programme console et accède à l’adresse que nous venons de définir :
http://localhost:8080/api/Account
|