위의 의견과 관련하여 OWIN은 프레임 워크가 아닙니다. OWIN은 웹 서버와 웹 응용 프로그램을 분리하여 이전에 지원되지 않은 환경으로 ASP.NET 응용 프로그램을 이동할 수 있도록하는 방법에 대한 사양입니다.
OWIN 이전에는 ASP.NET 응용 프로그램을 빌드 할 때 System.Web
어셈블리에 대한 의존성이 높기 때문에 본질적으로 IIS에 바인딩되었습니다 .
System.Web
는 ASP (비 .NET 버전) 이후로 존재 해 왔으며 내부에는 필요하지 않은 많은 항목 (예 : Web Forms 또는 URL 권한 부여)이 포함되어 있습니다. 기본적으로 모든 요청에서 모두 실행되므로 리소스를 소비하고 ASP .NET 응용 프로그램은 일반적으로 Node.js와 같은 응용 프로그램보다 훨씬 느립니다.
OWIN 자체에는 도구, 라이브러리 또는 다른 도구가 없습니다. 단지 사양 일뿐입니다.
반면 Katana는 현재 ASP.NET 프레임 워크와 OWIN 사양을 연결하기 위해 개발 된 완전히 개발 된 프레임 워크입니다. 현재 Katana는 다음 ASP.NET 프레임 워크를 OWIN에 성공적으로 적용했습니다.
ASP.NET MVC와 Web Forms는 여전히 System.Web을 통해서만 독점적으로 실행되고 있으며 장기적으로는 이들을 분리 할 계획이 있습니다.
반면에 IIS는 웹 서버를위한 훌륭하고 리소스가 많은 호스트입니다. IIS를 사용하는 전체 ASP.NET 성능 문제는 뿌리 깊은 부분 System.Web
에만 있습니다. 최근까지 웹 서버 호스팅 방법을 결정할 때 두 가지 옵션이 있습니다.
따라서 성능을 원한다면 자체 호스트 옵션을 사용하십시오. IIS가 제공하는 기본 기능을 많이 원한다면 IIS를 사용하지만 성능은 떨어집니다.
이제 세 번째 옵션 인 Helios (현재 코드 이름) 라는 Microsoft 라이브러리가 있습니다.이 라이브러리 System.Web
를 사용하면 불필요한 라이브러리 나 모듈없이 IIS를보다 "깨끗한"방식으로 사용할 수 있습니다. Helios는 현재 시험판 버전으로 Microsoft 제품을 완전히 지원하기 위해 더 많은 커뮤니티 의견을 기다리고 있습니다.
이 설명이 당신을 위해 더 나은 설명을 바랍니다.
편집 (2014 년 9 월) :
ASP.NET vNext가 개발 중이므로 Katana는 서서히 은퇴하고 있습니다. 버전 3.0은 독립형 프레임 워크로서 Katana의 마지막 주요 릴리스 일 것입니다.
그러나 Katana에 도입 된 모든 개념은 ASP.NET vNext에 통합되어 프로그래밍 모델이 거의 동일합니다. David Fowler (ASP.NET vNext의 아키텍처)가 작성한 포럼 게시물 에서 인용 :
vNext는 Katana의 후속 버전입니다 (그래서 유사하게 보입니다). Katana는 System.Web에서 벗어나 웹 스택을위한 더 많은 모듈 식 구성 요소로의 시작이었습니다. vNext를 그 작업의 연속으로 볼 수 있지만 훨씬 더 나아가고 있습니다 (새로운 CLR, 새로운 프로젝트 시스템, 새로운 http 추상화).
Katana에 현재 존재하는 모든 것이 vNext로 전환됩니다.
편집 (2015 년 2 월) :
ASP.NET vNext는 이제 ASP.NET 5로 알려져 있으며 .NET Core 5 위에 구축 될 예정입니다. .NET Core 5는 ASP.NET 5 및 .NET Native의 목표를 지원하도록 설계된 경량 버전의 .NET Framework 버전입니다. . 그러나 ASP.NET 5는 .NET Framework 4.6에서도 지원되며 .NET Core 5와 함께 제공 될 예정입니다. ASP.NET 5와 .NET Core 5는 모두 MIT에 따라 라이센스가 부여되며 커뮤니티에 기여할 것입니다.
편집 (2015 년 5 월) :
또한 ASP.NET 웹 API 브랜드는 중단되지만이 기술은 새로운 ASP.NET MVC 6의 기반이 될 것입니다. 이전 ASP.NET MVC 버전은에 정의 된 인터페이스 인 IHttpHandler를 구현하여 구축되었습니다 System.Web
. ASP.NET MVC 6은 이러한 종속성을 제거하여 다양한 플랫폼과 웹 서버로 이식 가능합니다.
편집 (2016 년 5 월) :
ASP.NET 5는 곧 출시 될 예정인 Release Candidate 2부터 공식적으로 ASP.NET Core로 이름이 변경됩니다. Entity Framework 7에도 동일하게 적용되며 Entity Framework Core로 이름이 변경됩니다. 공식 발표 및 그 이유에 대한 자세한 내용은 Scott Hanselman의 블로그 게시물에서 확인할 수 있습니다. ASP.NET 5는 죽었 습니다-ASP.NET
Core 1.0 및 .NET Core 1.0 소개
편집 (2016 년 5 월) :
Release Candidate 2가 출시됨에 따라 ASP.NET Core는 향후 웹 앱이 들어오는 HTTP 요청을 처리하기 위해 실제로 .NET Core 콘솔 앱으로 설정되도록 수정되었습니다 . 이 개념은 ASP.NET Core를 마이크로 서비스 아키텍처 지원 및 Azure Service Fabric을 통한 구현과 함께 Microsoft가 취한 접근 방식과 더욱 일치시킵니다. 자세한 내용은 공식 블로그 게시물 :
ASP.NET Core RC2 발표