[c#] ASP.NET 5 클래스 라이브러리 프로젝트를 만드는 이유는 무엇입니까?

“ASP.NET 5 클래스 라이브러리”(vNext) C # 프로젝트가 ASP.NET과 어떤 관련이 있는지 알아 보려고합니다. 일반 C # “클래스 라이브러리”프로젝트가 아닌이 템플릿으로 프로젝트를 만드는 이유는 무엇입니까?

.csproj 파일 등이 아닌 project.json 파일과 같은 새로운 기능이 마음에 들지만 프로젝트가 ASP.NET 또는 IIS 등과 관련이없는 경우 “ASP.NET”클래스 라이브러리를 만드는 것이 옳지 않은 것 같습니다. 그것은 단지 비즈니스 로직 계층을위한 프로젝트 일뿐입니다. 새로운 WebApi ASP.NET 웹 사이트는 결국이 프로젝트를 참조 할 것이지만 현재로서는 관련이 없습니다.

이름이 잘못 되었나요? “vNext 클래스 라이브러리”라고 부르고 웹 앱처럼 보이는 아이콘을 사용하지 않아야합니까?



답변

ASP.NET 5 클래스 라이브러리 프로젝트를 만드는 이유는 무엇입니까?

클래스 라이브러리 프로젝트 ( .csproj)에 비해 ASP.NET 5 클래스 라이브러리 프로젝트 ( .kproj) 의 많은 이점이 있습니다 .

  1. ASP.NET 5 클래스 라이브러리는 쉽게 여러 대상에 크로스 컴파일 프로젝트 지원 aspnet50, aspnetcore50, net45, 및 기타 다양한 휴대용 클래스 라이브러리의 변화를. 여기에는 Intellisense에 대한 풍부한 Visual Studio 지원이 포함되어 어떤 API를 어떤 대상에 사용할 수 있는지 알려줍니다.
  2. NuGet 패키지는 자동으로 생성되며, 이는 클래스 라이브러리와 관련하여 매우 일반적인 작업입니다.
  3. 파일 시스템이 변경 될 때 자동으로 솔루션 탐색기를 새로 고치는 것과 같은 경우 생산성이 향상됩니다. * .csproj 파일에서 충돌하는 변경 사항을 병합하려고 할 때 소스 제어에서 충돌이 줄어 듭니다.
  4. 플랫폼 간 컴파일 가능 (부분적으로 MSBuild에 의존하지 않기 때문에)

* .kproj 프로젝트에서 * .csproj 프로젝트를 참조 할 수 있지만 (이는 Visual Studio 2015의 새로운 미리보기를 통해 훨씬 쉬워졌습니다), 항상 몇 가지 수동 단계를 통해 가능했습니다.

이름에 “ASP.NET”이있는 이유는 무엇입니까?

이름에 관한 한, 곧 언급 될 역사의 유물입니다. 새로운 프로젝트 유형은 ASP.NET 5 응용 프로그램보다 훨씬 유용합니다. Visual Studio의 향후 미리보기에서 새 이름을 볼 수 있습니다.

  • .NET 콘솔 애플리케이션 (교차 플랫폼)
  • .NET 클래스 라이브러리 (교차 플랫폼)

2015 년 5 월 13 일 업데이트

Visual Studio 2015 RC 릴리스를 통해 업데이트 된 프로젝트 템플릿 이름을 볼 수 있습니다.

  • 클래스 라이브러리 (패키지)
  • 콘솔 애플리케이션 (패키지)

이들은 project.json파일과 .NET 실행 환경 (DNX)을 사용하여 프로젝트를 빌드, 실행 및 패키징 (NuGet 패키지로)합니다.

이러한 프로젝트 템플릿은 “웹”노드 아래의 새 프로젝트 대화 상자에 계속 표시되지만 이제 기본 “Visual C #”노드에도 표시됩니다.

VS2015 RC 클래스 라이브러리 / 콘솔 앱 템플릿


답변

이것은 흥미로운 관찰입니다. 현재 템플릿은 ASP.NET 5 런타임과 호환되는 클래스 라이브러리를 생성합니다. 일반 C # 클래스 라이브러리에서는 얻을 수 없습니다.

이 디자인 질문을 추적하기 위해 다음 문제를 제출했습니다-https: //github.com/aspnet/Home/issues/281


답변

내가 이해하는 한 가지 이점은 ASP.NET 5 클래스 라이브러리 프로젝트의 최종 제품이 .dll 어셈블리가 아니라 NuGet 패키지라는 것입니다.

Visual Studio 2015에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 “게시 …”옵션을 선택하여 NuGet 패키지를 생성 할 수 있습니다. 또는 명령 줄에서 “KPM 팩”을 사용할 수 있습니다.

또한 라이브러리에서 플랫폼 간 .NET을 실행할 수 있도록 ASP.NET 5 Core 런타임을 사용할 수 있습니다.


답변