Katana와 OWIN을 간단한 단어와 사용법으로 설명하는 방법은 무엇입니까?


337

OWIN 및 Katana 프로젝트에 대한 많은 기사를 읽었지만 전체 그림을 얻을 수는 없습니다.

ASP.NET을 사용하는 일반 웹 개발자의 경우 :

  1. 정확히 OWIN이란 무엇이며 어떤 문제를 해결합니까 (단순한 단어로). IIS와의 관계는 무엇입니까?
  2. OWIN은 IIS를 대체합니까? 그렇지 않다면 어떤 상황에서 OWIN이 가장 적합합니까?
  3. OWIN이 일상 업무 프로젝트에서 어떻게 도움이 될 수 있습니까?
  4. 자가 개선 프로젝트에서 OWIN이 어떻게 도움이 될 수 있습니까?

글 머리 기호가 정확하지 않다는 점을 고려하여 허용되는 답변을 변경하는 것을 고려할 수 있습니다.
Admir Tuzović

3
ASP.net에 대한 저의 책은 OWIN을 통해 Identity 및 UserManager 클래스를 구현할 것을 제안하며 실제로 요점을 알지 못합니다. 그것은 나를 완전히 혼란스럽게했다 ...
누가

답변:


409

위의 의견과 관련하여 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에 성공적으로 적용했습니다.

  • 웹 API
  • 신호 R

ASP.NET MVC와 Web Forms는 여전히 System.Web을 통해서만 독점적으로 실행되고 있으며 장기적으로는 이들을 분리 할 계획이 있습니다.

반면에 IIS는 웹 서버를위한 훌륭하고 리소스가 많은 호스트입니다. IIS를 사용하는 전체 ASP.NET 성능 문제는 뿌리 깊은 부분 System.Web에만 있습니다. 최근까지 웹 서버 호스팅 방법을 결정할 때 두 가지 옵션이 있습니다.

  • IIS
  • 셀프 호스트

따라서 성능을 원한다면 자체 호스트 옵션을 사용하십시오. 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 발표


2
@ebramtharwat 1 년 후, 그것은 헬리오스처럼 보이지 않습니다
Andrew Savinykh 2016 년

1
Katana v3이 마지막 주요 릴리스 일 가능성이 높으므로 Katana를 대체하는 데 어떤 프레임 워크가 사용됩니까?
Vincent

2
Katana의 기능은 ASP.NET 5에 통합되었습니다. Katana는 이전 버전과의 호환성을 위해 계속 존재할 것입니다.
Admir Tuzović

2
@ AdmirTuzović : 좋은 대답입니다. 2016 년 5 월 이후에 추가 할 업데이트가 더 있습니까?
Igby Largeman

2
후속 편집과 함께 초기 답변은 전환을 잘 설명합니다. 노력해 주셔서 감사합니다.
Sang Suantak

71

OWIN을 직접 정의해야하는 경우 : "Ruby 및 Node.js 웹 개발 커뮤니티에서 제공하는 최고의 아이디어는 .NET에 온 것입니다."

그러나 이것은 ASP.NET 개발자에게는 도움이되지 않습니다. 내 자신의 정의는 다음과 같은 내용이 될 것입니다.

OWIN 은 .NET 웹 서버와 웹 응용 프로그램 간의 표준 인터페이스를 정의합니다. OWIN 인터페이스의 목표는 서버와 응용 프로그램을 분리하는 것입니다. 제기 한 질문에 대답해야하는 경우 다음과 같습니다.

  1. OWIN은 인터페이스 사양입니다. IIS에서 웹 응용 프로그램을 분리합니다.

  2. 기성품 구성 요소 (Katana가 사용하는 구성 요소)를 사용하는 경우 응용 프로그램 기능 중 일부는 이전 ASP.NET에 비해 구현하기가 훨씬 쉽습니다. 타사 ID 공급자 (Facebook, Twitter)를 사용한 인증이 이에 해당합니다.

  3. OWIN은 기본적으로 웹 개발 커뮤니티에서 입증 된 모범 사례 모음입니다. 확장성에 매우 개방적인 웹 앱을 구현하는 방법을 보여줍니다. 각 웹 개발자는 항상 최신 기술을 사용해야하므로 .NET뿐만 아니라 전체 웹 개발 커뮤니티에 최신 정보를 제공 할 수 있습니다. OWIN을 배우면 Express for node.js 또는 Rack for Ruby와 같은 다른 웹 개발 프레임 워크를 배우는 것이 훨씬 쉽습니다. 사용 방법이 비슷하기 때문입니다.

1
물론 도움으로이 문서의 힘이 OWIN 해결 역사적 문제의 아이디어를 얻을 / 카타나 : asp.net/aspnet/overview/owin-and-katana/... . 즉, OWIN 호스트에서이 프레임 워크 만 지원됩니다 : owin.org/#projects . 앱이 이러한 애플리케이션 프레임 워크를 사용하는 경우 OWIN에서 호스팅 할 수 있습니다.
Praburaj

owinhost.exe를 사용할 때 브라우저에서 응답 지점까지 브라우저에서 수신 요청 순서를 게시 할 수 있습니다. 이 주제에서 문서를 찾을 수 없습니다.
사라 바난

2
포인트 1과 포인트 2는 오해의 소지가 있습니다. OWIN은 자체적으로 아무것도 대체 할 수 없습니다. 포인트 4와 마찬가지로, 지금까지 Microsoft의 Katana 및 Helios 참조 구현을 사용하여 구현이 필요한 사양 일뿐입니다.
Mani Gandham

.NET 오는 루비와 Node.js를 웹 dev에 지역 사회에서 가장 좋은 아이디어는 ... 할 수 u는 그 \의 일부를 목록을 PLS
Lakshay

1
미들웨어. 호스팅 환경에서 응용 프로그램을 분리하면 해당 플러그를 연결할 수 있습니다.
Slavo

59

나는 실용적인 관점에서 그것을 다루려고 노력할 것이다.

Katana는 Microsoft에서 OWIN을 구현하기위한 프로젝트 이름 입니다.

정확히 OWIN이란 무엇이며 어떤 문제를 해결합니까 (단순한 단어로). IIS와의 관계는 무엇입니까? OWIN ( Open Web Interface for .NET )은 표준 ( OWIN Specification )이고 Katana는 .NET 라이브러리이므로 여기서 얻을있습니다 . OWIN과 Katana는 웹에서 다소 동의어가되었습니다.
OWIN 이전의 유일한 옵션은 OWIN에서만 가능 IIS했으며 다른 응용 프로그램 (엔트 포인트가있는)을 웹 서버로 사용할 수 있습니다.

OWIN은 IIS를 대체합니까? 그렇지 않다면 어떤 상황에서 OWIN이 가장 적합합니까?
아니, IIS를 대체하지 않습니다, 당신은 OWIN를 사용하여 IIS 수 있다 Microsoft.Owin.Host.SystemWebnuget가 그것에 대해 . IIS에서 처리되는 방식을 최적화 / 변경하거나 Windows Forms 응용 프로그램에서 사용자 지정 웹 서버를 만들려는 경우에 가장 적합합니다.

일상 업무에서 OWIN이 어떻게 도움이 될 수 있습니까?
웹 서버를 더 이상 IIS (Windows)에서 실행할 필요가 없기 때문에 서버 운영 비용을 줄일 수 있습니다 (Windows 서버는 Unix 기반 서버보다 비싸며 Linux의 모노 아래 콘솔 응용 프로그램에서 실행할 수 있음).

자가 개선 프로젝트에서 OWIN이 어떻게 도움이 될 수 있습니까?
학습 Microsoft.Owin(및 기타 관련 OWIN 라이브러리)은 클라이언트와 웹 서버 간의 HTTP 통신 작동 방식에 대한 지식을 향상시킵니다.

Katana와 OWIN이 무엇인지 더 알고 싶다면 잘 읽어보십시오.


6
접선 차선을 통하지 않고 게시 된 질문에 직접 답변 해 주셔서 감사합니다.
Dav

호스팅을 위해 항상 Microsoft IIS 가능 서버를 사용한다면 어떨까요? 새로운 WebApi2 템플릿에서는 OWIN이 기본값으로 나타납니다. IIS에서만 / 항상 호스트 할 계획이라면이를 참조로 제거해야합니까?
TechTurtle

@TechTurtle Hi Tech, 별도의 질문으로 게시하는 것이 좋습니다.
Matas Vaitkevicius 18시 52 분

매우 명확한 설명. 유용한 정보에 감사드립니다
Uttam

9

OWIN이란 무엇입니까?

OWIN은 Open Web Interface for .NET의 약자입니다. OWIN은 ASP.NET MVC와 같은 웹 개발 프레임 워크가 웹 서버와 상호 작용하는 방법을 설명하는 사양입니다. OWIN의 목표는 추상화 계층을 도입하여 웹 응용 프로그램을 웹 서버에서 분리하는 것입니다. 이러한 추상화를 통해 OWIN을 지원하는 모든 웹 서버에서 동일한 응용 프로그램을 실행할 수 있습니다. 또한 추상화 계층이 애플리케이션을 호스팅하기위한 경량 인프라를 제공 할 수 있기 때문에 전체 시스템을 단순화합니다. IIS는 웹 응용 프로그램에 다양한 기능을 제공합니다. 그러나 웹 응용 프로그램에 이러한 기능이 모두 필요한 것은 아닙니다. 최소한의 HTTP 처리 기능 만 있으면 충분할 수 있습니다. OWIN 호환 호스트는 이러한 응용 프로그램에 이러한 호스팅 환경을 제공 할 수 있습니다. 게다가, 요청 처리 중에 사용되는 모듈의 파이프 라인을 정의 할 수 있습니다. OWIN 파이프 라인은 요청이 통과하는 OWIN 호환 구성 요소의 체인입니다.

카타나 란?

Katana는 OWIN 사양을 사용하여 구축 한 Microsoft의 구성 요소 집합입니다. 이러한 구성 요소 중 일부에는 Web API, ASP.NET Identity 및 SignalR이 포함됩니다.

위는 CodeGuru에서 추출한 것입니다. 기사 : http://www.codeguru.com/csharp/.net/net_asp/overview-of-owin-and-katana.htm

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.