developer tip

net461이 유일한 프레임 워크로 설정된 ASP.NET Core 웹 애플리케이션 (.NET Core) 사용과 (.NET Framework) 템플릿 사용의 차이점

copycodes 2020. 12. 9. 08:22
반응형

net461이 유일한 프레임 워크로 설정된 ASP.NET Core 웹 애플리케이션 (.NET Core) 사용과 (.NET Framework) 템플릿 사용의 차이점


.NET Core RC2의 출시와 함께 Microsoft는이를 만들었으므로 이제 3 개의 웹 애플리케이션 템플릿이 있습니다.

  • ASP.NET 웹 응용 프로그램 (.NET Framework) — 이전
  • ASP.NET Core 웹 애플리케이션 (.NET Framework)-새로운 Windows에서만 호스팅됩니다.
  • ASP.NET Core 웹 애플리케이션 (.NET Core)-Linux, OSX, Windows

새로운 Core 웹 애플리케이션 템플릿을 사용하려고하지만 Linux, OSX, Windows를 대상으로하지 않고 ASP.NET Core 웹 애플리케이션 (.NET Framework)이 제게 완벽한 것 같습니다. 시간이 좀 걸렸지 만이 프로젝트 유형에서 작동하는 클래스 라이브러리를 추가하려면 클래스 라이브러리 (.NET Core)를 추가하고 프레임 워크 섹션을 웹 애플리케이션과 일치하도록 net461로만 변경해야한다는 것을 배웠습니다.

"frameworks": {
    "net461": { }
}

내 질문:

ASP.NET Core 웹 애플리케이션 (.NET Core)을 만드는 것과 net461을 유일한 대상 프레임 워크로 만드는 project.json의 차이점은 무엇입니까?

기본적으로 net461 만 포함하는 ASP.NET Core 웹 애플리케이션 (.NET Framework) 프로젝트를 만들기 만하면됩니다.

프로젝트가 게시되는 방식 등 내가 알지 못하는 다른 차이점이 있습니까?


ASP.NET Core 웹 애플리케이션 (.NET Core)을 만드는 것과 project.json에서 .NET461을 유일한 대상 프레임 워크로 만드는 것의 차이점은 무엇입니까?

ASP.NET Core Web Application( .NET Framework) 프로젝트 를 만드는 것과 같습니다 . 둘 사이에 프로젝트의 유형에 의해 결정됩니다 .csproj파일을 당신은 당신에 변경 .csproj대상에서 .NET Core을 대상으로 .NET Framework. 이전 릴리스 / 베타 버전에서는 ASP.NET Core두 프레임 워크를 파일에 포함 할 수 있었지만 (더 많은 .NET 개발자에게 익숙한 .NET Core 2.0 project.json의 단순화 된 .csproj파일 로 대체 됨 ) 하나에 만 게시 할 수있었습니다.

기본적으로 .NET461 만 포함하는 ASP.NET Core 웹 애플리케이션 (.NET Framework) 프로젝트를 만드는 것입니다.

프로젝트가 게시되는 방식과 같이 내가 알지 못하는 다른 차이점이 있습니까? .NET Framework를 대상으로하고 .NET Core를 대상으로하지 않는 경우 앱은 크로스 플랫폼이 될 수 없으며 앱은 Linux가 아닌 Windows에서만 실행할 수 있습니다. 맥.

별도의 ASP.NET Core웹 응용 프로그램 ( .NET Core)과 ASP.NET Core웹 응용 프로그램 ( .NET Framework)이있는 이유는 후자를 사용하면 Windows에 종속 된 기능, 패키지 또는 타사 라이브러리를 사용할 수 있고 동일 .NET Framework하거나 그 이상의 버전을 설치해야하기 때문입니다. 기계.

전자는 .NET Framework요구 사항이 없지만 앱이 교차 플랫폼이 될 수 있도록 허용하며 앱을 게시 할 때 설치 요구 사항을 .NET Core우회하는 방식으로 모든 종속 dll 파일을 게시 디렉터리에 게시 .NET Framework합니다.

또한 .NET CoreWindows 특정 기능 또는 패키지를 대상으로 지정 하고 사용하는 것처럼 컴파일에 영향을 미치며 컴파일 오류가 발생합니다.

.csproj중 하나를 타겟팅하도록 조정하여 둘 사이를 쉽게 전환 할 수 있습니다 .

마이크로 소프트 문서

다음과 같은 경우 서버 애플리케이션에 .NET Core를 사용해야합니다.

  • 크로스 플랫폼 요구 사항이 있습니다.

  • 마이크로 서비스를 목표로하고 있습니다.

  • Docker 컨테이너를 사용하고 있습니다.

  • 고성능 및 확장 가능한 시스템이 필요합니다.

  • 응용 프로그램별로 .NET 버전이 나란히 있어야합니다.

다음과 같은 경우 서버 응용 프로그램에 .NET Framework를 사용해야합니다.

  • 응용 프로그램에서 현재 .NET Framework를 사용합니다 (마이그레이션 대신 확장하는 것이 좋습니다).
  • 타사 .NET 라이브러리 또는 .NET Core에 사용할 수없는 NuGet 패키지를 사용해야합니다.
  • .NET Core에 사용할 수없는 .NET 기술을 사용해야합니다.
  • .NET Core를 지원하지 않는 플랫폼을 사용해야합니다.

업데이트 (2018/10/30)

되었습니다 발표 것을 ASP.Net Core 3의 발매일이있는 2019 Q1을 만 지원 .NET CoreNOT .NET Framework

이달 초 .NET 블로그에 발표 된대로 .NET Framework는 .NET Framework의 인플레 이스 업데이트 특성과 제한하려는 욕구로 인해 앞으로 .NET Core에 제공되는 새로운 플랫폼 및 언어 기능을 더 적게 받게됩니다. 기존 응용 프로그램을 손상시킬 수있는 변경 사항 ASP.NET Core가 앞으로 .NET Core에 대한 개선 사항을 완전히 활용할 수 있도록 ASP.NET Core는 3.0부터 .NET Core에서만 실행됩니다. 앞으로는 ASP.NET Core를 .NET Core의 일부로 간단히 생각할 수 있습니다.

현재 .NET Framework에서 ASP.NET Core를 사용하는 고객은 2.1 LTS 릴리스를 사용하여 완전히 지원되는 방식으로 계속 사용할 수 있습니다. 2.1에 대한 지원 및 서비스는 .NET 지원 정책에 따라 최소 2021 년 8 월 21 일 (LTS 릴리스로 선언 된 후 3 년)까지 계속됩니다.


먼저 다른 프레임 워크를 대상으로하는 ASP.NET Core 웹 애플리케이션을 만들 때 project.json 파일의 차이점을 확인하세요.

프레임 워크가 다른 asp.net 코어의 차이점

질문에 따라 ASP.NET Core 웹 애플리케이션 (.NET Core) project.json의 프레임 워크를 보유 net461하고 저장 하기 만하면 패키지가 복원되고 다음 오류가 발생합니다.

여기에 이미지 설명 입력

Microsoft.NETCore.App 종속성을 제거하고 파일을 저장하면 종속성이 다시 복원되고 오류가 발생하지 않습니다.

첫 번째 이미지를 발견하면 마침내 .NET Framework를 사용하는 ASP.NET Core 웹 애플리케이션이되었습니다.


나도 처음에는 혼란 스러웠다. 가장 큰 차이점은 ASP.NET 웹 응용 프로그램 (.NET Framework)이 우리가 사용해온 일반적인 asp.net이라는 것입니다. 그것은 App_Start 폴더 web.config, Global.asax 등을 포함합니다. (MVC5처럼, 당신은 아이디어를 얻습니다 ..).

ASP.NET Core 웹 애플리케이션 (.NET Framework)은 핵심 프레임 워크 (MVC6)입니다. (System.Web에 의존하지 않음). 완전히 새로운 project.json .. startup.cs 및 program.cs 등 ... .net 프레임 워크의 모든 기존 라이브러리도 지원합니다.


.net 코어를 사용하면 Linux 또는 Mac OS에서 웹 페이지 애플리케이션을 실행할 수 있지만 .net은 Windows에만 적합합니다. 즉, 이식성이 떨어집니다.

참고 URL : https://stackoverflow.com/questions/37452041/difference-between-using-the-asp-net-core-web-application-net-core-with-net46

반응형