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랑은 또 다른 것 같기도 하고…잘 모르겠네요. 너무 초보적인 질문일수도 있지만 선배님들의 답변 부탁드립니다.
.NET Framework와 .NET (적어도 6 이상) 사이는 사상의 차이가 큽니다. 전자는 Windows Desktop와 Windows Server에 초점을 맞춘 기술이고, 후자는 크로스플랫폼을 기본으로 합니다. 그래서 얼핏 보기에는 유사한 점이 많지만, 실제로 마이그레이션을 하면 결과물의 모양도 다르고, 동작 방식도 크게 다릅니다.
아마 강사님께서 말씀하신 하위 호환은 "제한적이고 보편적인 영역"에 국한하여 말씀하신 것이라고 생각합니다. 실제로는, Microsoft 공식 문서에도 나와있듯 이 주제만을 다루는 거대한 토픽이 따로 있으며, 이 토픽에서조차도 모든 내용을 다 커버하지 못할 정도로 두 기술 사이는 차이가 큽니다.
비슷한 이유로, Mono가 크로스플랫폼이니 .NET Core 계열로 넘어갈 수 있지 않느냐는 질문도 많이 있습니다만, 이 역시 그렇지 못합니다. 반대로, .NET Framework와 Mono 사이는 전환이 용이하지 않느냐는 질문에도 그렇지 않다는 답이 적절합니다.