Visual Studio 2013 프로젝트의 새로운 Startup.cs 파일은 무엇입니까?
방금 Visual Studio 2013을 설치하고 MVC 웹 응용 프로그램 프로젝트를 만들고 Startup.cs라는 프로젝트 템플릿에서 새 파일을 발견했습니다.
이것은 무엇이며, Global.asax.cs와 어떻게 다른지, 그리고 이것을 사용하는 데 좋은 모범 사례가 있습니까?
모든 OWIN 응용 프로그램에는 응용 프로그램 파이프 라인에 대한 구성 요소를 지정하는 시작 클래스가 있습니다.
새 Visual Studio 프로젝트를 시작하면 그 안에 OWIN의 일부가 표시됩니다. OWIN은 협력을위한 프레임 워크 및 서버용 API를 정의하는 사양입니다. OWIN의 요점은 서버와 응용 프로그램을 분리하는 것입니다. 예를 들어, ASP.NET Identity는 OWIN 보안을 사용하고 SignalR 자체 호스팅은 OWIN 호스팅을 사용합니다. 예는 모두 OWIN을 사용하므로 모두 "Startup.cs"파일에 정의 된 시작 클래스가 있어야합니다.
ASP.NET 응용 프로그램 파일 인 Global.asax는 ASP.NET 또는 HttpModules에서 발생한 응용 프로그램 수준 이벤트에 응답하기위한 코드가 포함 된 선택적 파일입니다.
상세 사항은:
OWIN
http://www.asp.net/aspnet/overview/owin-and-katana
Global.asax
http://msdn.microsoft.com/en-us/library/1xaas8a2(v=vs.71).aspx
다음 기사에서 OWIN 이유에 대한 더 많은 아이디어를 찾을 수 있습니다.
http://www.asp.net/aspnet/overview/owin-and-katana/an-overview-of-project-katana
파일이 SignalR과 관련된 것 같습니다. VS 2013 릴리스 노트 인용 :
OWIN에 구축
SignalR 2.0은 OWIN (.NET 용 개방형 웹 인터페이스)에 완전히 구축되었습니다. 이러한 변경으로 인해 웹 호스팅 및 자체 호스팅 SignalR 애플리케이션간에 SignalR의 설정 프로세스가 훨씬 더 일관 적이지만 여러 API 변경이 필요했습니다.
MapHub 및 MapConnection은 이제 MapSignalR입니다.
OWIN 표준과의 호환성을 위해 이러한 메서드는 MapSignalR로 이름이 변경되었습니다. 매개 변수없이 호출 된 MapSignalR은 모든 허브를 매핑합니다 (MapHubs가 버전 1.x에서하는 것처럼). 개별 PersistentConnection 객체를 매핑하려면 연결 유형을 유형 매개 변수로 지정하고 연결에 대한 URL 확장자를 첫 번째 인수로 지정합니다.
MapSignalR 메서드는 Owin 시작 클래스에서 호출됩니다. Visual Studio 2013에는 Owin 시작 클래스에 대한 새 템플릿이 포함되어 있습니다. 이 템플릿을 사용하려면 다음을 수행하십시오.
- 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
- 추가, 새 항목 ...을 선택합니다.
- Owin Startup 클래스를 선택하십시오. 새 클래스의 이름을 Startup.cs로 지정합니다.
웹 응용 프로그램에서 MapSignalR 메서드를 포함하는 Owin 시작 클래스는 아래와 같이 Web.Config 파일의 응용 프로그램 설정 노드에있는 항목을 사용하여 Owin의 시작 프로세스에 추가됩니다.
자체 호스팅 애플리케이션에서 Startup 클래스는 WebApp.Start 메소드의 유형 매개 변수로 전달됩니다.
Startup 클래스는 Katana / OWIN이 파이프 라인을 초기화하기 위해 찾는 규칙입니다. 앱이 시작되면 사용할 구성 요소를 설정하기 위해 Configuration 함수 내부의 코드가 실행됩니다. MVC 5 템플릿에서는 OWIN 위에 모두 구축 된 인증 미들웨어를 연결하는 데 사용됩니다.
OWIN에서 종속성 주입을 사용하려면 GitHub에서이 프로젝트를 확인하십시오. DotNetDoodle.Owin.Dependencies
'development' 카테고리의 다른 글
원시 포인터에서 shared_ptr 만들기 (0) | 2021.01.08 |
---|---|
UISearchBar CGContext 오류 (0) | 2021.01.08 |
Jenkins 파이프 라인에서 실패한 단계에 대한 재시도 옵션을 구현하려면 어떻게해야합니까? (0) | 2021.01.08 |
ClickOnce에 대한 대안은 무엇입니까? (0) | 2021.01.08 |
WebKitFormBoundary 뒤의 임의의 문자열은 무엇을 의미합니까? (0) | 2021.01.08 |