C#을 사용하여 이전 MVC 프로젝트를 빌드 할 때 OWIN 라이브러리에 대한 많은 참조가 있음을 발견했습니다. 그러나 VS2015 SP3에서 .NET Core 웹 응용 프로그램을 만들 때 참조가없는 것 같습니다.ASP.NET 코어는 여전히 OWIN을 사용합니까?
이 라이브러리는 폐기 되었습니까?
C#을 사용하여 이전 MVC 프로젝트를 빌드 할 때 OWIN 라이브러리에 대한 많은 참조가 있음을 발견했습니다. 그러나 VS2015 SP3에서 .NET Core 웹 응용 프로그램을 만들 때 참조가없는 것 같습니다.ASP.NET 코어는 여전히 OWIN을 사용합니까?
이 라이브러리는 폐기 되었습니까?
OWIN은 라이브러리가 아니며, specification입니다. 문서에서
OWIN은 .NET 웹 서버와 웹 응용 프로그램 간의 표준 인터페이스를 정의합니다.
OWIN의 "큰 아이디어"는 모두가 사용할 공통 인터페이스에 동의 할 수 있으면 실행중인 서버에서 응용 프로그램을 분리 할 수 있다는 것입니다. 실제로 OWIN 호환 서버는 모든 OWIN 호환 응용 프로그램을 실행할 수 있습니다. 이는 과거에 우리가 맺어 온 긴밀한 결합 (응용 프로그램은 IIS에서만 실행될 수 있으며 그 것입니다)보다 개선 된 것입니다.
많은 OWIN 사양은 다양한 속성의 이름을 설명하는 데 사용됩니다. OWIN 호환 서버는 들어오는 요청을 owin.RequestBody
및 owin.ResponseBody
같은 키가 들어있는 Dictionary<string, object>
으로 변환합니다. 요청이 전달 된 응용 프로그램 또는 미들웨어가 해당 키를 읽는 방법을 알고 있으면 요청을 처리 할 수 있습니다. 그게 다야! 이
혼란의 일반적인 소스 OWIN 라이브러리 (OWIN 및 Microsoft.Owin을 같은)이다. 이러한 라이브러리는 OWIN 인터페이스의 형식에 안전한 구현이거나 OWIN 호환 구성 요소와의 상호 작용을보다 쉽게 만드는 도우미입니다.
@Murray와 @Tseng은 ASP.NET 코어가 OWIN에서 빌드되지 않았지만 OWIN과 호환된다는 것을 지적했습니다. 또는 ASP.NET 핵심 (Kestrel, WebListener, IIS)이 실행되는 서버은 OWIN과 호환됩니다. ASP.NET 코어는 저수준 요청 ("OWIN 수준")에 대한 추상화이며 컨트롤러 및 서버 렌더링 페이지와 같은 요소를 쉽게 만들 수 있습니다.
ASP.NET 코어 은 OWIN 호환이므로 모든 OWIN 호환 미들웨어를 쉽게 연결할 수 있습니다.
app.UseOwin(pipeline =>
{
pipeline(next => OwinHello);
// where OwinHello is a compatible middleware function
});
는 ASP.NET 코어 파이프 라인에 OWIN 미들웨어를 추가하는 추가 예제 documentation를 참조하십시오 Microsoft.AspNetCore.Owin
패키지는 UseOwin
방법을 제공합니다.
ASP.NET Core에서 OWIN 환경 사전에 액세스 할 수 있습니까? – Fred
@Fred 예, 'HttpContext.Items' 속성을 통해. –
하지만'HttpContext.Items'는'Dictionary
예, OWIN은 여전히 기본 지원 표준입니다. .Net 코어는 웹 앱을 구축하는 데 필요한 기본 기능을 제공합니다. Nuget에서 OWIN 패키지를 가져옵니다. https://docs.asp.net/en/latest/fundamentals/owin.html –
@MurrayFoxcroft : 정확하지 않습니다. .NET Core 및 ASP.NET Core는 ** OWIN을 기반으로하지 않습니다 **. 그러나 그들은 OWIN Middleware의 플러그인을 지원합니다. – Tseng
@Tseng, 실제로 그것이 내가 말한 이유입니다. –