여태까지 WebForm위주로 개발을 했습니다.
닷넷 MVC WEBAPI 도 해봤고요.
이제 닷넷 Core 도 해보고 싶은데, 어떤 스터디 시작해야 할까요?
여기 글들 몇개보니 Blazor도 쓰긴하는데, 이게 필수는 아닌거죠?
대부분 razor로 개발하나요?
초보라고 생각하고, 자세히 설명해주시면 감사하겠습니다 ^^
좋은 하루되세요~
여태까지 WebForm위주로 개발을 했습니다.
닷넷 MVC WEBAPI 도 해봤고요.
이제 닷넷 Core 도 해보고 싶은데, 어떤 스터디 시작해야 할까요?
여기 글들 몇개보니 Blazor도 쓰긴하는데, 이게 필수는 아닌거죠?
대부분 razor로 개발하나요?
초보라고 생각하고, 자세히 설명해주시면 감사하겠습니다 ^^
좋은 하루되세요~
안타깝게도 ASP.NET Web Form은 Modern .NET 환경에서는 사용이 불가합니다. 그래서 이에 대한 대안으로 Blazor가 적절할 수 있는데, ASP.NET Web Form 시절에 컴포넌트를 공급하던 많은 업체들이 Blazor 쪽으로도 포트폴리오를 확장한지 좀 되었기도 하고, ASP.NET Web Form의 이벤트 모델에 근접한 메커니즘을 Blazor가 제공하는 점도 있습니다.
만약 ASP.NET Web Form에 상응하는 프레임워크를 찾으신다면, 그 관점에서보면 Blazor로 전환하는 것이 필수적인 일이 될 수 있습니다. 아니면, 좀 더 진중하게 아키텍처를 리팩토링하거나 재설계하고자 하신다면 ASP.NET MVC + Razor View로 전환하는 것을 고려하실 수도 있겠습니다.
말씀하신대로 ASP.NET의 뷰 렌더링 언어는 ASP.NET MVC 도입 이래로 쭉 Razor Page를 사용하는 것을 기본으로 채택하고 있고 현재도 그렇습니다. 그러나 ASP.NET Minimal API 같은 새로운 아키텍처가 소개되면서, 뷰 엔진을 끌어다 쓰는 것 말고 다른 대안 (예: T4나 Scribd 같은 텍스트 템플릿 엔진)을 쓰는 것도 이제 무척 자연스럽습니다.
ASP.NET Web Form을 대신해서 웹 기술을 좀 더 적극적으로 스터디할 준비가 되셨다면 흥미롭게 보실만한 기술들이 많이 있을 겁니다.
ps. 앞에서 Modern .NET이라고 이야기한 부분을 좀 더 말씀드리면 이렇습니다. .NET Core라는 이름이 .NET Core 1.x ~ 3.x까지 실제 제품 이름으로 쓰였지만, .NET 5 이후로는 .NET Core라는 이름을 쓰지 않습니다. 그럼에도, 기술적으로는 .NET Core 계통의 런타임이라 편의상 .NET Core라고 부르는 경우도 많이 있고, Microsoft는 정작 .NET Framework라는 제품 이름이 있는 상황에서도 .NET이라는 이름을 고수하고 있어, 개인적으로는 Modern .NET 이라는 표현을 선호합니다. ㅎㅎ
전통적인 방식의 웹을 이해하기엔 MVC에 razor 페이지 쓰는게 낫더라고요. 자료도 많고요.
Blazor도 어차피 razor 신택스라서 넘어가는데 문제없을 거예요. 그보다는 Blazor 프레임워크 그 자체를 이해하는게 쉽진 않아요. 소켓통신기반으로 SSR, Server, WASM 다 섞어 쓰다보면 생각과 달라지는게 많네요.
Minimal API 는 내부적으로만 쓰는 간단한 거 만들 때 쓰시길 추천하고 간결하게 API 엔드포인트 코딩하기 좋다는거, AOT 지원 말곤 뭐 별다를건 없어요. 얼마든지 확장이야 가능하지만 이기능 저기능 붙이고 엔드포인트 늘어나다보면 결국 MVC기반 Web API 쓰는 것보다 되려 코딩이 더 복잡해 지더라고요
Blazor를 고려하고 있지 않다고 하시면…
ASP.NET Core 웹앱
보통 MVC를 많이쓰니까
ASP.NET Core 웹앱 (Model-View-Controller)
여기에 WEB API를 따로 쓰고싶다?
ASP.NET Core 웹 API
이정도가 있을거 같습니다.
선택사항이긴 한데, DB가 Mssql이라면 Entityframework도 고려해볼만 하다고 생각합니다.
크게 달라지는 부분은 없습니다.
모던 닷넷에 편리한 새로운 문법들이 많이 존재하는데, VS 를 쓰신다면, 인텔리센스가 새로운 문법을 제시할 것이라 그때 그때 적응하면 될 것 같습니다.
다만, 예전 닷넷과 모던 닷넷 사이에 라이브러리 차이가 있습니다.
예전 닷넷 전용 라이브러리는 당연히 못 씁기 때문에, 동일한 기능을 제공하는 다른 패키지를 찾아야 합니다.
아마 이 부분이 가장 큰 변화일 것입니다.
예전 닷넷앱은 윈도우 PC라면 그냥 설치가 가능하지만, 모던 닷넷은 대상 PC 에 닷넷 프레임워크가 설치되어 있어야 합니다.
자바와 동일한 방식이죠.
윈도우, 리눅스, (비싸서 엄두는 안나겠지만) 맥에 배포가 가능하다는 점이 장점입니다.
기본적으로 플랫폼 타겟팅 빌드를 할 필요는 없지만, 필요한 경우 할 수도 있습니다.
AspNetCore 로 바꿔도 MVC와 Web Api 는 거의 동일합니다.
MVC 하실 때, 다뤘던 Razor 문법은 몇 가지 달라진 키워드가 있어도 뼈대는 그대로, 웹앱(Razor Page)이나 Blazor 에 사용할 수 있습니다.
또한 몇 가지 추가된 워크로드가 있는데, 대표적으로 Blazor 와 Minimal Api 입니다.
참고로, Blazor 는 많은 옵션을 줍니다. (너무 많아서 문제일 정도입니다)
MVC/웹페이지 방식으로 할 수도 있고, 순수한 프론트 엔드 프레임워크로도 사용할 수도 있고, 그 중간 형태로 사용할 수도 있습니다.
복잡한 내용이 머리 아프시다면, 인터렉티브 모드를 설정하지 않은 Blazor SSR 모드와 Blazor Webassembly Standalone (프론트엔드 앱, 웹 API 필요)중 하나만 선택하는 게 쉽게 가는 방법입니다.
만약, 후자를 선택하면 더 많은 확장성을 누릴 수 있습니다.
WPF, 윈폼, 마우이 등, 닷넷의 데스크 탑, 또는 모바일 앱 프레임워크에도 그대로 적용할 수 있고, 여기에 더해, 아래와 같은 외부 프레임워크까지 선택할 수 있습니다.
Photino: Native, Cross-Platform Web UI Desktop Apps (tryphotino.io)
코드 하나 써 넣고 모바입부터 웹앱 까지 손 쉽게 만들 수 있게 되는 것이죠.
asp.net core으로 옮겨올 때 다음 책들을 읽었습니다.
오! 감사합니다
오! 깔끔한 정리 감사드립니다 ㅎㅎ
친절한 설명 감사드려요 ^^
Blazor 프레임워크
요 놈이 관건이였군요~
감사드립니다 ^^
도전해보겠습니다!
감사드려요~