.NET 7 미리보기 버전의 하위호환성에 대해 질문드립니다.

C# 초급 강좌를 수강중인 초보자입니다.
강좌 수강의 목적은 기존에 회사에서 개발한 앱이 .NET Framework에서 개발되어 있고, 추후에 이 앱의 유지보수 및 추가 기능 개발을 위함입니다.

강사님께서는 무조건 최신버전을 사용하라고 강조하시면서 .NET 7.0 prewiew 버전과 VS 2022 preview버전을 설치하여 사용중입니다.
한가지 걱정인 것은 .NET Framework에서 개발한 기존 앱을 .NET 7.0으로 마이그레이션하는데 전혀 문제가 없는건가요? 기존 코드를 그대로 가져와서 사용해도 상관없는 건가요?

강사님은 하위호환이 다 된다시는데…뭔가 이부분에서 신뢰가 안가서…
검색해보니 .NET core와 .NET Framework (로 개발한 앱) 간의 호환에 이슈가 있는 듯 한데 .NET 5.0부터는 .NET core, .NET Framework랑은 또 다른 것 같기도 하고…잘 모르겠네요. 너무 초보적인 질문일수도 있지만 선배님들의 답변 부탁드립니다.

좋아요 3

뭐 강사님이니까 어느정도 주관과 소신이 있으시겠습니다만은…제 의견은 좀 다릅니다.

현업에선 최신기술을 바로바로 사용하지 못할 확률이 아주아주아주 높습니다.
따라서 .NET 7이 Preview지만 정식 Release가 되어도 사용하지 못할 확률이 높습니다.

어느 도메인에서 일하시는 지는 모르겠지만 일반적인 소프트웨어 분야면 .NET Core 3.0 이후의 상위버전으로의 마이그레이션은 어렵지는 않습니다.

다만 말씀하신대로 .NET Framework와 .NET Core는 약간씩의 차이가 있습니다.
대표적인 차이점은 .NET Core는 .NET Framework의 Windows OS 종속적인 부분이 대부분 제거 되었다고 알고 있습니다.

일반적인 수준에서는 강사님 말처럼 마이그레이션에 크게 문제없지만 해보면 또 다르긴 합니다.

2019년에 .NET Core 3.0과 .NET Framework 4.8이 나왔고, .NET Framework는 이 4.8을 끝으로 개발 및 유지보수가 종료되었습니다.

이후 .NET Core 4.0의 출시에서 이미 .NET Framework 버전이 4.x 버전으로 4버전 대가 Major 버전이므로, .NET Core는 3.0이 아니라 .NET 5.0으로 출시하게 됩니다.

.NET 5.0은 .NET Core 3의 상위 버전이고 .NET Core 5.0 이라고 부르시는 분들도 있으시지만 .NET 5가 맞습니다.

어떤 것들이 변경되었는지는 검색을 통해 자세히 알아보실 수 있을 것 같습니다.

Windows Forms나 WPF를 사용하신다면 .NET Framework에서의 마이그레이션이 크게 어렵지 않으실 것인데, ASP.NET MVC 5와 ASP.NET Core 는 클래스 이름과 Startup.cs의 구성 같은 것들이 꽤 많이 다릅니다.

참고하시기 바랍니다.

※ 아, 혹시 DevExpress 같은 서드파티를 이용하고 계시다면 마이그레이션 하실 때 또 다른 어려움이 생길 수 있습니다.

좋아요 5

.NET Framework와 .NET (적어도 6 이상) 사이는 사상의 차이가 큽니다. 전자는 Windows Desktop와 Windows Server에 초점을 맞춘 기술이고, 후자는 크로스플랫폼을 기본으로 합니다. 그래서 얼핏 보기에는 유사한 점이 많지만, 실제로 마이그레이션을 하면 결과물의 모양도 다르고, 동작 방식도 크게 다릅니다.

아마 강사님께서 말씀하신 하위 호환은 "제한적이고 보편적인 영역"에 국한하여 말씀하신 것이라고 생각합니다. 실제로는, Microsoft 공식 문서에도 나와있듯 이 주제만을 다루는 거대한 토픽이 따로 있으며, 이 토픽에서조차도 모든 내용을 다 커버하지 못할 정도로 두 기술 사이는 차이가 큽니다.

비슷한 이유로, Mono가 크로스플랫폼이니 .NET Core 계열로 넘어갈 수 있지 않느냐는 질문도 많이 있습니다만, 이 역시 그렇지 못합니다. 반대로, .NET Framework와 Mono 사이는 전환이 용이하지 않느냐는 질문에도 그렇지 않다는 답이 적절합니다.

좋아요 5

강사님은 최신 C# 기술을 습득하자는 취지에서 이야기 하신 듯 합니다. 실제로 .NET Framework에서도 상위 C# 문법을 프로젝트 설정으로 사용할 수 있습니다.

하지만 질문자님이 학습을 하는 이유는 C# 언어 측면이 아니라 .NET Framework을 .NET으로 마이그레이션 해야 하는 관점이므로 위의 댓글 주신 분들의 글을 참조하시는게 맞겠습니다.

좋아요 3

답변 감사드립니다^^

좋아요 1

답변 감사드립니다^^
감안해서 수강해야 겠네요;;

좋아요 1

답변 감사드립니다^^
.NET Framework에서도 상위 C# 문법을 프로젝트 설정으로 사용할 수 있다니 한번 시도해봐야겠네요~

좋아요 1