PosInformatique.aspnetcore.server.aspnet es una biblioteca para alojar la API web de ASP .NET Core en ASP .NET .NET No Core (WebForms y MVC) Infraestructura basada en el marco .NET.


PosInformatique.aspnetcore.server.aspnet es un IHttpHandler no core de ASP .NET que se ejecuta dependiendo de las rutas configuradas en la infraestructura no coreal ASP .NET. Cuando se llama a la implementación interna de PosInformatique.aspnetcore.server.aspnet IHttpHandler , la consulta HTTP se envía a la infraestructura central ASP .NET que ejecuta la consulta con el mismo comportamiento si se alojó en un IIS dedicado, consolos o host de cernícel.
PosInformatique.aspnetcore.server.aspnet está disponible directamente en el sitio web oficial de NUGET. Para descargar e instalar la biblioteca en su proyecto Visual Studio utilizando la siguiente línea de comandos Nuget
Install-Package PosInformatique.AspNetCore.Server.AspNet
En un nuevo proyecto ASP .NET Web Forms/MVC No Core Instale la infraestructura ASP .NET Core 2.x utilizando el siguiente comando NUGET:
Install-Package Microsoft.AspNetCore
Install-Package Microsoft.AspNetCore.Mvc
Después de agregar el paquete PosInformatique.aspnetcore.server.aspnet en su ASP .NET WebForms o el proyecto MVC no corre, dentro de la Application_Start de sus acumulaciones de clase HttpApplication e iniciar una instancia ASP .NET Core IWebHost utilizando el clásico WebHost.CreateDefaultBuilder() y la clase Startup relacionada (clase de inicio relacionada, ...).).).).).).).).).).).).).).).).).).).).).).). En su lugar, para elegir Kestrel o IIS para alojar su aplicación ASP .NET Core, llame al método UseAspNet() para alojar su aplicación ASP .NET Core en la infraestructura ASP .NET no corre.
UseAspNet() requiere define las rutas base que serán interceptadas y procesar por la infraestructura de núcleo ASP .NET en lugar de ASP .NET no core.
Este es un ejemplo de un código Global.asax.cs detrás del cual se construye, inicie una aplicación ASP .NET Core y redireccione toda la solicitud que comienza por /api y /swagger URL a la aplicación ASP .NET Core:
public class Global : System . Web . HttpApplication
{
protected void Application_Start ( object sender , EventArgs e )
{
WebHost . CreateDefaultBuilder ( )
. UseAspNet ( options =>
{
options . Routes . Add ( "api" ) ;
options . Routes . Add ( "swagger" ) ;
} )
. UseStartup < Startup > ( )
. Start ( ) ;
}
} Puede configurar su aplicación ASP .NET Core como de costumbre con la clase Startup registrando servicios adicionales. Este es un ejemplo de una clase Startup que registra la infraestructura MVC ASP .NET Core y las extensiones SwashBuckle.aspnetCore para agregar la documentación utilizando la interfaz de usuario de Swagger.
public class Startup
{
public Startup ( IConfiguration configuration )
{
Configuration = configuration ;
}
public IConfiguration Configuration { get ; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices ( IServiceCollection services )
{
services . AddMvc ( ) ;
services . AddSwaggerGen ( c =>
{
c . SwaggerDoc ( "v1" , new Info { Title = "My API" , Version = "v1" } ) ;
// Set the comments path for the Swagger JSON and UI.
var xmlFile = $ " { Assembly . GetExecutingAssembly ( ) . GetName ( ) . Name } .xml" ;
var xmlPath = Path . Combine ( AppContext . BaseDirectory , "bin" , xmlFile ) ;
c . IncludeXmlComments ( xmlPath ) ;
} ) ;
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure ( IApplicationBuilder app , IHostingEnvironment env )
{
if ( env . IsDevelopment ( ) )
{
app . UseDeveloperExceptionPage ( ) ;
}
app . UseMvc ( routes =>
{
routes . MapRoute (
name : "default" ,
template : "{controller=Home}/{action=Index}/{id?}" ) ;
} ) ;
// Enable middleware to serve generated Swagger as a JSON endpoint.
app . UseSwagger ( ) ;
// Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.),
// specifying the Swagger JSON endpoint.
app . UseSwaggerUI ( c =>
{
c . SwaggerEndpoint ( "/swagger/v1/swagger.json" , "My API V1" ) ;
} ) ;
}
} Debe tener que tener en cuenta solo los componentes y el servicio del Core .NET ASP dentro de su implementación de controladores. Evite acceder a los componentes o servicios de ASP .NET No Core desde sus implementaciones de controladores. Por ejemplo, asegúrese de acceder al ASP .NET Core HttpContext dentro de su código de controladores y no use el ASP .NET no core HttpContext .

Como se muestra en el dibujo de arquitectura anterior, en su código de controladores debe usar solo para la API Core ASP .NET, incluso puede acceder a la API de infraestructura no coreal ASP .NET.
Debido a que ASP .NET Core 3.x se basa solo en el tiempo de ejecución .NET Core 3.0 (y no en el Estándar 2.0 .NET 2.0 como antes con la ASP .NET Core 2.x), esta biblioteca no se puede usar para alojar la ASP .NET Core 3.x API web en la infraestructura no coreal ASP .NET.
Actualmente, PosInformatique.aspnetcore.server.aspnet solo puede funcionar con la infraestructura Core ASP RAW ASP y para las implementaciones de controladores de API web. No es posible usar esta biblioteca con las vistas de Razor MVC, porque el proyecto Visual Studio usa el compilador web ASP .NET no corre.
No dude en clonar mi código y enviar algunos cambios ... es un proyecto de código abierto, por lo que todos pueden mejorar esta biblioteca ... Por cierto, soy francés ... así que tal vez comentes que mi inglés no es realmente fluido ... así que no dudes en arreglar mis cadenas de recursos o mi documentación ... ¡Merci!
Quiero agradecer a la compañía Dilitrust para probar y me dio sus comentarios sobre esta biblioteca por sus aplicaciones ASP .NET WebForms que incrustó la API desarrollada en ASP .NET Core Web.