posinformatique.aspnetcore.server.aspnet은 .NET 프레임 워크를 기반으로 ASP .NET Non-Core (WebForms 및 MVC) 인프라에서 ASP .NET Core Web API를 호스트하는 라이브러리입니다.


posinformatique.aspnetcore.server.aspnet 은 ASP .NET 비 코어 인프라에서 구성된 경로에 따라 실행되는 ASP .NET 비 코어 IHttpHandler 입니다. posinformatique.aspnetcore.server.aspnet IHttpHandler 내부 구현이 호출되면 HTTP 쿼리는 전용 IIS, Console 또는 Kestrel 호스트에서 호스팅 된 경우 동일한 동작으로 쿼리를 실행하는 ASP .NET Core 인프라로 전송됩니다.
posinformatique.aspnetcore.server.aspnet 은 Nuget 공식 웹 사이트에서 직접 제공됩니다. 다음 Nuget 명령 줄을 사용하여 Visual Studio 프로젝트에 라이브러리를 다운로드하여 설치하려면
Install-Package PosInformatique.AspNetCore.Server.AspNet
새로운 ASP .NET 웹 양식/MVC 비 코어 프로젝트에서 다음 NUGET 명령을 사용하여 ASP .NET Core 2.X 인프라를 설치하십시오.
Install-Package Microsoft.AspNetCore
Install-Package Microsoft.AspNetCore.Mvc
ASP .NET WebForms 또는 MVC 비 코어 프로젝트에 posinformatique.aspnetCore.server.aspnet 패키지를 추가 한 후 HttpApplication 클래스의 Application_Start 내부에서 Classic WebHost.CreateDefaultBuilder() ( Startup Class, 추가 서비스를 사용하여 ASP .NET Core IWebHost 인스턴스를 시작하고 시작합니다. 대신 Kestrel 또는 IIS를 선택하여 ASP .NET Core 응용 프로그램을 호스팅하려면 UseAspNet() 메소드를 통해 ASP .NET 비 코어 인프라에서 ASP .NET Core 응용 프로그램을 호스팅하십시오.
UseAspNet() ASP .NET 비 코어 대신 ASP .NET Core 인프라에 의해 가로 채고 프로세스 할 기본 경로를 정의해야합니다.
이는 Global.asax.cs 코드의 예입니다.이 코드의 예는 ASP .NET 코어 애플리케이션을 시작하고 /api 및 /swagger URL에서 시작하는 모든 요청을 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 ( ) ;
}
} 추가 서비스를 등록하여 Startup 클래스와 평소와 같이 ASP .NET Core 응용 프로그램을 구성 할 수 있습니다. 이것은 Swagger UI를 사용하여 문서를 추가하기 위해 ASP .NET Core MVC 인프라와 SwashBuckle.aspnetCore 확장자를 등록하는 Startup 클래스의 예입니다.
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" ) ;
} ) ;
}
} 컨트롤러 구현 내부의 ASP .NET 코어의 구성 요소와 서비스 만 사용하려면 설명해야합니다. 컨트롤러 구현에서 ASP .NET 비 코어의 구성 요소 또는 서비스에 액세스하지 마십시오. 예를 들어, 컨트롤러 코드 내부의 ASP .NET Core HttpContext 에 액세스하고 ASP .NET 비 코어 HttpContext 사용하지 마십시오.

이전 아키텍처 도면에서 볼 수 있듯이 컨트롤러 코드에서 ASP .NET Core API에만 사용해야합니다. ASP .NET 비 코어 인프라 API에 액세스 할 수 있습니다.
ASP .NET Core 3.X는 .NET Core 3.0 런타임을 기반으로하기 때문에 (ASP .NET Core 2.X와는 이전과 같이 .NET 표준 2.0이 아닌)이 라이브러리는 ASP .NET 비 코어 인프라에서 ASP .NET Core 3.X Web API를 호스트하는 데 사용할 수 없습니다 .
현재 posinformatique.aspnetcore.server.aspnet 은 RAW ASP .NET Core Infrastructure 및 Web API 컨트롤러 구현에서만 작동 할 수 있습니다. Visual Studio 프로젝트는 ASP .NET 비 코어 웹 컴파일러를 사용하기 때문에이 라이브러리를 MVC Razor보기와 함께 사용할 수 없습니다 .
주저하지 말고 내 코드를 복제하고 몇 가지 변경 사항을 제출하는 것을 주저하지 마십시오. 오픈 소스 프로젝트이므로 모든 사람 이이 라이브러리를 향상시킬 수 있습니다 ... 그런데, 나는 프랑스어입니다 ... 그래서 내 영어가 실제로 유창하지 않다고 말할 것입니다 ... 그래서 내 리소스 문자열이나 문서를 수정하는 것을 망설이지 마십시오 ... Merci!
ASP .NET Core Web에 개발 된 API가 포함 된 ASP .NET WebForms 응용 프로그램에 대한이 라이브러리에 대한 피드백을 테스트 해 주신 Dilitrust Company에게 감사의 말씀을 전합니다.