Duende IdentityServer를 사용해서 구현하고 있네요.
Identity를 전부 Scaffold 하지 않아서,
Areas/Identity/Pages/Shared/_LoginPartial.cshtml 만 있습니다.
저에게 신기한 점은, Blazor Server와 다르게 _Host.cshtml이 없는 부분이겠네요. ASPNet.Core의 엔트리 지점을 설정하지 않는 것과 같은 맥락일까요? Client단에다 스스로 보여줄 부분만 render 하면 될테니까요.
반면에, 이번 8.0 에서는?
일단 제일 큰 변화로,
Identity 관련 페이지가 전부 scaffold 된 MVC 기반 페이지 에서 razor Component로 교체되었습니다.
사실 크게 보면, razor파일과 razor.cs파일이 하나로 합쳐진 걸로 보셔도 되지 않을까? 라는 생각도 들지만, blazor와 razorpages는 문법만 같고 작동 방식은 미묘하게 다르다고 알고 있었기 때문에.
blazor 친화적으로 바뀌었으니 어쩌면 이제야 제대로 된 게 아닐까 하는 생각이 듭니다.
또 서드파티(가 맞겠죠?)로 대체되던 wasm용 Identity도 제 자리를 찾은 느낌이구요.
물론 이 부분은 ServerMode에서도 거의 비슷하게 구성되니, 확인 해보셔도 좋을 것 같아요.
이 쪽은 Client단의 Authorize 예제용 페이지입니다.
위 포스트와 반대로, [RenderModeInteractiveWebAssembly] 를 사용하고 있네요.
[RenderModeInteractiveAuto] 를 사용하면 하이브리드 모드가 됩니다.
기본값이 RenderModeInteractiveAuto(prerender:true) 이기 때문에,
최초 로드시에는 Server에서 render 된 부분을 받고, 완료되면 WASM으로 작동합니다.
아, 질문드린 방법이 그게 맞았군요. 다행히 예상 가능한 범위에서 질문드린 것 같습니다.
제가 이것 저것 마저 더 해보겠습니다.
++
혹시나 하는 기대감에 말씀 드린 거였는데, 역시나 @BigSquare 님의 말씀이 당연하다는 듯이 결과가 나왔네요.
이번 새 템플릿은 Interactive WASM이기때문에 Server-Client로만 쓰는 것 같네요.
오히려 Server App에 가까운 모습이 맞는 것 같습니다.
배포를 해 봐도 당연하다는 듯이 바이너리가 튀어나오구요.
안 그래도 “index.html이 나오지 않아요! 짱 신기해요”
까지가 위에 작성하던 포스트의 메인 주제 였는데,
헉, 세상에나… 이미 제 맥락을 파악하고 훅 들어오시는… 역시 고수의 눈썰미시군요…
.net8의 blazor web app의 경우 asp.net core 호스팅 위에서 돌아갑니다. blazor server를 베이스로 깔고 wasm이 옵션으로 돌아가는 느낌이랄까요… 그래서 그런지 기존 .net7 의 blazor server/wasm과는 달리 404에러(page not found)에 대한 처리도 달리진것 같습니다. 기존에는 blazor 내에서 페이지이동(navigation manger)을 하든 브라우져 주소표시줄에서 직접 주소를 입력하든 page를 찾을 수 없을때 router 컴포넌트의 notfound 섹션으로 바로 이동하였는데, .net8의 web app의 경우 브라우저 주소표시줄에 직접 주소를 입력할 경우 바로 404에러가 반환됩니다.
아, 덕분에 약간 더 퍼즐이 맞춰진 느낌이 들었습니다.
정리해주셔서 너무 고맙습니다 ㅎㅎㅎ
그래서 내부 페이지의 notfound 섹션이 없어졌나보네요.
DevExpress Blazor Component를 사용 할 때 Blazor Enable WASM Feature라고 해서
Server에 해당 기능을 넣는 선택 항목이 있었는데, 마치 그것과 비슷하다는 느낌을 받았습니다.
wasm을 이용해 server app을 보완하는 느낌이랄까요?
그래서 사실상 이걸 뭐라고 하면 좋을까요? 생각나는건 Hybrid인데,
그 단어는 이미 쓰고 있네요 ㅎㅎㅎㅎ
제 개인적인 생각으로는 blazor web app이 blazor server를 대체하는 방향으로 나아가지 않을까 합니다.
wasm의 경우 관련파일을 다운로드만 받는다면 독립실행이 가능한 형태라서 굳이 aps.net core 호스팅이 아니더라도 CDN이나 다른 웹서버시스템을 이용하여 호스팅이 가능하니까요…
저도 그게 궁금합니다. 저만의 착각일지는 모르겠으나
Blazor에서 wasm / server라는 선택지를 남겨두고, wasm을 좀 발전시켜 나가는 것으로 보였는데…
Blazor의 방향이 바뀐건지… 아니면 그 의도대로 wasm을 발전시키고 있는건지 (hybrid가 탄생했으니까)