asp.net - 장점 - what can i do with.net core




나는 길을 잃었다. ASP.NET MVC 5는 어떻게 되었습니까? (2)

Microsoft는 지난 2 년 동안 .NET Core / DNX, ASP.NET Core, .NET Standard 및 나머지 부분에 대한 혼란을 극복해야합니다.

(그리고 저는 DevDiv의 전직 FTE SE로서 그것을 말하고 있습니다 ...)

  • ASP.NET 일명 "System.Web"은 이제 죽었습니다. WebForms가 죽었습니다 (만세!)
  • 2008 년에 출시 된 ASP.NET MVCASP.NET의 최상위에 구축되었지만 모든 WebForms 인프라를 우회했습니다.
    • ASP.NET MVC 에는 ASP.NETASP.NET 웹 API (및 ASP.NET 코어 )와 별도로 고유 한 버전이 있습니다. 당신은 ASP.NET MVC 5 의 문서에 링크했습니다. 이것은 ASP.NET 5와는 다릅니다 .
  • 2012 년에 시작된 ASP.NET 웹 APIASP.NET MVC 의 형제이지만 ASP.NET의 최상위 계층을 구축했지만 그와 많이 공유하지 않는 자체 클래스 라이브러리 ( System.Web.Http )를 가졌습니다. ASP.NET MVC ( System.Web.Mvc ). 같은 프로젝트에서 ASP.NET 웹 API 서비스와 ASP.NET MVC 웹 응용 프로그램을 결합하려고 시도하는 것이 고통 스럽습니다.
  • ASP.NET MVC 5 는 2014 년 ASP.NET MVC 4에 대한 업데이트로 출시되었습니다. ASP.NET 5 와 관련이 없습니다.
  • ASP.NET MVC 6 는 출시되지 않았습니다. 그것은 ASP.NET 5 로 변환되어 ASP.NET Core 가되었습니다. 이 프로젝트의 목표는 ASP.NET MVC와 ASP.NET 웹 API를 하나의 단일 플랫폼으로 결합하는 것이 었습니다.
  • ASP.NET Core 는 ASP.NET MVC 5의 향상된 디자인으로 2016 년에 시작되었지만 System.Web.dll 또는 (현재의 레거시) IIS 종속성 (예 : 이전 요청 파이프 라인, IHttpHandlerIHttpModule 더 이상 존재하지 않음)에 대한 종속성없이 시작되었습니다. ).
    • ASP.NET Core 의 클래스 라이브러리의 루트 네임 스페이스는 System.Web 아닌 System.Web 입니다. 이것은 나를위한 혼란의 원인이었습니다. 즉, ASP.NET MVCASP.NET WebAPI 에서 ASP.NET Core 로의 프로젝트 업그레이드가 컨트롤러 및 미들웨어의 기본 아키텍처가 동일 함에도 불구하고 중요하지 않습니다.

우리는 .NET Core (일명 dnx )를 가지고 있습니다. - .NET Core 는 명시 적으로 이식 가능하고 Linux 및 macOS에서 실행되는 CLR 및 BCL의 새 버전입니다. 그것의 클래스 라이브러리는 Windows-exclusive 인 full-fat .NET Framework에 비해 약간의 빈약 한 것입니다.

  • "코어"는 .NET 코어와 함께 작동하는 현재 세대의 .NET 플랫폼에 대한 새로운 Microsoft "핫 이름"입니다 (즉, Windows 의존성이없고 이식성이 있음). (Active Desktop, Active Channels, ActiMates, Active Directory, ActiveSync 등과 같이 COM 또는 ActiveX를 사용하는 경우 Microsoft가 1990 년대에 "Active"를 사용하는 방식과 마찬가지입니다.
  • 또한 Entity Framework Core 는 여전히 Entity Framework 6에서 많은 기능이 부족합니다. 기본적으로 다시 작성되기 때문에입니다.하지만 결국에는 패리티에 도달하게됩니다.

그래서 모든 것을 더 잘 만들기 위해 Microsoft는 기본적으로 Portable Class Library 개념을 재부팅하는 .NET Standard 를 도입했습니다. Visual Studio 프로젝트는 특정 구현 대신 공통 기능의 알려진 하위 집합을 대상으로합니다. (나는 그들이 다시 2001 생각하고있어 1.0 에서 시작하는 대신 .NET 프레임 워크와 일치하도록 4에서 버전 번호 매기기를 시작하기를 바랍니다.) - 중요한 부분은 ASP.NET 핵심 대상입니다. .NET 표준 .NET Core 대신 ASP.NET Core가 Windows 에서 .NET Framework를 기반 으로 실행될뿐만 아니라 .NET Core에서도 실행됩니다.

요약하자면:

  • ASP.NET MVC 5ASP.NET Web API 2 와 함께 출시 된 ASP.NET MVC 4의 단종 제품이었습니다. 실제로 ASP.NET 4 (예 : .NET 4.x 버전의 System.Web.dll )에서 실행되었습니다. 플랫폼 ASP.NET MVC 는 이제 폐기되었습니다.
  • ASP.NET 5 는 EOL 및 ASP.NET 코어 로 브랜드 변경되었으며 "ASP.NET MVC 5"기능이 내장되어 있습니다.
  • ASP.NET Core 1ASP.NET Core 2 는 .NET Core (크로스 플랫폼) 또는 .NET Framework (Windows)에서 실행될 수 있습니다.
  • ASP.NET Core 3은 이제 .NET Core 3.0 에서만 실행됩니다.

모두 (연대순으로) :

  • ASP.NET 1 - 2001. 포함 된 WebForms . .NET Framework 1.0 및 1.1에서 실행됩니다. System.Web.dll .
  • ASP.NET 2.0 - 2005. 포함 된 WebForms . .NET Framework 2.0에서 실행됩니다. System.Web.dll .
  • ASP.NET MVC 1ASP.NET MVC 2 - 2008-2009. ASP.NET 2.0을 기반으로합니다. System.Web.Mvc.dll .
  • ASP.NET 4.0 - 2010. 포함 된 WebForms . .NET Framework 4.0에서 실행됩니다. ASP.NET 3.0 이 없었습니다. System.Web.dll .
  • ASP.NET MVC 3ASP.NET MVC 4 - 2010-2013. Ran은 ASP.NET 4.0 위에 있습니다. System.Web.Mvc.dll .
  • ASP.NET Web API 1 - 2012. ASP.NET 4.0의 상위에 위치합니다. System.Web.Http.dll .
  • ASP.NET MVC 5 - 2013. ASP.NET MVC에 대한 또 다른 업데이트. Ran은 ASP.NET 4.0을 기반으로 하지만 OWIN에서 System.Web.dll 없이 독립적으로 실행할 수도 있습니다.
  • ASP.NET 웹 API 2 - 2013. 형제와 ASP.NET MVC 5 . OWIN에서 ASP.NET 4.0 없이 실행할 수도 있습니다.
  • ASP.NET MVC 6 - 2014-2015. 릴리스 후보 버전에 도달 한 후 중단되었으며 ASP.NET Core 1 의 MVC 및 웹 API 구성 요소 인 2016 년에 ASP.NET Core MVC 1.0 으로 재부팅되었습니다.
  • ASP.NET 5 - 2014. 여기에서 설명한 ASP.NET의 주요 재부팅. 주요 변경 사항에는 MVC, 웹 페이지 및 웹 API 병합 및 WebForms 제거가 포함되었습니다. ASP.NET 5는 Release Candidate 상태에 도달했으나 ASP.NET Core 로 변경되었습니다. ASP.NET 6 은 한번도 없었습니다.
  • ASP.NET Core 1 - 2016. .NET Framework 4.5 또는 .NET Core 1.0 에서 실행됩니다.
  • .NET Core - 2016. 포터블 및 최소한의 .NET 런타임 및 클래스 라이브러리.
  • .NET 표준 - 2017. 모든 .NET 구현 (.NET Framework 4.5 이상, .NET Core 2.0 이상, Xamarin 등)에 존재할 수있는 공통 기능 집합을 대상으로하는 프로그램입니다.
  • ASP.NET Core 2 - 2017-2018 : 현재 우리가 있습니다. .NET Framework 4.6.1 또는 .NET Core 2.0 에서 실행됩니다. (2018 년 말 현재 ASP.NET Core 2.1이 있음).
  • ASP.NET 코어 3 - 2018 년 10 월 말에 Microsoft는 ASP.NET Core 3.0이 곧 출시 될 .NET Core 3.0에서만 실행될 것이라고 발표했습니다 (.NET Framework 4.7.x에서는 더 이상 실행되지 않습니다). 이것은 지원되지 않는 종속성으로 인해 .NET Framework 4.7.x에서 실행되는 응용 프로그램의 경우 ASP.NET Core 2.x에서 ASP.NET Core 3.x 로의 업그레이드 경로가 없음을 의미하므로 논쟁의 여지가 있습니다. .NET Core는 아직 .NET 표준 3.0이 없을 것입니다.

나는 여러 프로젝트에서 일하며 머리를 숙이고 있었고, 분명히 마이크로 소프트는 큰 변화를 일으키고있어 혼란 스러웠다. 작년에 Visual Studio 2017을 설치하고 새 프로젝트를 만들었고 갑자기 .NET Framework, .NET Standard 및 .NET Core를 선택할 때 ASP.NET 코어가 처음으로 내 레이더에 나타났습니다. 그래서 저는 그것들을 조금 들여다 보았고 후자의 두 가지가 어떤면에서는 전체 프레임 워크의 축약 된 버전이라는 것을 알았습니다. 이 글은 Scott Hanselman이 읽었습니다. ASP.NET 5는 죽었습니다. ASP.NET Core 1.0과 .NET Core 1.0을 소개합니다. ASP.NET Core 에서 나를 멀어지게 만들었습니다. ASP.NET과 ASP.NET Core 중에서 선택하십시오 . . 제 테이크 어웨이는 "핵심은 새로운 것입니다. 전체 프레임 워크를 계속 사용하는 것이 좋습니다." 그래서 .NET Framework 4.6.2와 Microsoft.AspNet.Mvc 5.2.3을 사용하여 새로운 ASP.NET MVC 사이트를 만들었습니다.

이 프로젝트를 생성 한 이후로 MVC와 Entity Framework에서 버그가있는 것처럼 보였습니다. 웹에서 유일한 언급은 코어에있는 것처럼 보이고 수정 된 것으로 간주됩니다.

자, 오늘, 나는 System.Web.Mvc.Controller와 System.Web.Mvc.JsonResult에 대한 문서를 찾으려고 노력하고 있으며, 핵심 문서를 제외하고는 없어졌습니다. 나는 마침내 더 이상 유지되지 않는다고 말하는 곳에서 그것을 마침내 파 냈는가?

나는 이것을 코어에 대해 많이 이해하고 "좋아, 왜 내가 신경 써야하니? 내가하고있는 일을 계속하고 끝나면 다시 확인해 볼거야." 하지만 지금은 4.6.2가 더 이상 지원되지 않는 것 같습니다. 누군가 무슨 일이 일어 났는지 설명 할 수 있습니까? NET 4.6.2 / MVC 5.2.3 프로젝트가 작성되기 전에 이제는 쓸모 없습니까? 그렇지 않다면 왜 문서가 폐기되고 숨겨 졌습니까? 내 의존성 중 일부가 코어와 호환되거나 호환되지 않을 수도 있습니다.


이 대답은 ASP.NET MVC 5에만 초점을 맞추고 가능한 한 작은 ASP.NET 코어에 집중하려고합니다.

제품 수명주기

마이크로 소프트는 여전히이를 지원하고 있으며, 발표 된 수명은 아직 끝나지 않았다.

https://www.asp.net/support

프레임 워크 / 제품 폐기

ASP.NET MVC 4 Jan 4, 2019

ASP.NET MVC 5

그래서 원한다면 계속 사용하십시오. VB6 및 기존 ASP 사용자는 여전히 Microsoft에서 지원하고 있음을 기억하십시오.

제품 수명주기에 대한 Microsoft 설명서를 확인하는 경우 .NET Framework 4.5.2 이상이 계속 지원됩니다.

유지

그러나 개발 리소스가 거의 모든 ASP.NET 코어에 있기 때문에 ASP.NET MVC 5가 유지 관리 모드에 있다는 것을 알아야합니다.

너,

  • 예측할 수없는 NuGet.org의 패치 릴리스.

관련 NuGet 패키지를 모니터링하는 경우 최근에 Microsoft에서 보안 취약점을 수정하는 등의 업데이트가 있음을 알아야합니다.

  • 문서를 잠근.

Microsoft Docs에서 본 통지문은 실제로 "우리는 더 이상이 컨텐츠를 정기적으로 업데이트하지 않습니다."라는 첫 번째 문장을 강조합니다. ASP.NET MVC 5는 견고하므로 새로운 자료를 더 이상 추가하지 않아야하므로 완벽하게 이해할 수 있습니다.

  • 매우 제한된 버그 수정 및 새로운 기능.

당신은 "프로젝트를 생성 한 이래 MVC와 Entity Framework에서 버그가있는 것처럼 보였습니다. 웹상에서 유일한 언급은 코어에있는 것처럼 보이고 이것이 고정되어 있다고 생각되는 유일한 곳이라는 것을 알았습니다. . "

글쎄, 그것은 정말로 당신이 말하는 "버그"에 달려 있습니다. 앞에서 설명한 것처럼 보안 관련 문제는 여전히 패치되고 있지만 해결 방법이나 기능 제한이있는 버그는 수정 될 가능성이 가장 적습니다. 이것은 오픈 소스 프로젝트이므로, 정말로 원한다면, 최후의 수단으로 스스로 문제를 해결할 수 있습니다.

새로운 기능 측면에서 Microsoft는 종속성 삽입, 새로운 구성 시스템과 같은 ASP.NET 코어의 일부 기능을 백 포트하여 어느 정도 마이그레이션을 단순화합니다. 그러나 많이 기대하지 마라.

이주

가능한 경우 ASP.NET Core 로의 마이그레이션을 고려하십시오.





asp.net-core-mvc