단일실행파일과 이미설치된 브라우저에 대한 의존성만으로 작동합니다.
최근 NativeAot 관련글이 많이보이길래 공유해바요
단일실행파일과 이미설치된 브라우저에 대한 의존성만으로 작동합니다.
최근 NativeAot 관련글이 많이보이길래 공유해바요
코드 공유 감사드립니다.
스벨트에 익숙하지 않아서 그런가, 실행 구조가 명확하게 이해되지 않는 부분이 있어 질문 드립니다.
제가 파악하기로는, Server 앱이 실행되면,
고 보여집니다.
질문.
코드에 비평이 아니고, 좀 더 잘 이해하기 위해 드리는 질문이라, 답변해주시면 감사하겠습니다.
재밌네요. 초소형 서버에 프론트엔드까지 있으니 활용 방안이 더 있을 것 같습니다.
저는 근데 퍼블리시하면 14메가로 나오네요.
제가 이해하기로는 진행이 다음과 같습니다.
wwwroot
폴더에 생성합니다.그래서 개발할 경우에는 NodeJS가 필요하지만, 실행할 때는 필요없는 것 같네요.
질문1: 네, 적당히 해설드리자면
MinimalAPI
서버 뿐만 아니라 WebUI
라이브러리의 자체적인 서버도 구동되며 프론트엔드와 연결되있어야 합니다. webui.js
는 WebUI
서버에서 제너레이션되는 스크립트이며 이를 <head>
에 추가하는것만으로 연동이 성사되는구조입니다. Program.cs
상의 매핑은 스벨트로 생성한 정적페이지에서 임의포트를 명시하지 않고 webui.js
에 접근하기위한 편의적 리다이렉트 입니다.질문2: @hjnn 님 해석이 맞습니다.
스벨트 자체는 이 Minimal Destop WebApp
을 구성하는데 있어 필수불가결한 요소는 아니나, 아직 블레이저서버가 NativeAot
빌드를 지원하지 못하는관계로 배포 용량을 극단적으로 낮추면서도 최대한 Razor
문법과 비슷한 웹프레임워크를 도입한것입니다. 저도 잘 몰라서 인제 써보려고 합니다
가장 주목하셔야할 부분은 이 템플릿이 런타임에서 실행되기위해서 내장 웹 엔진은 커녕 webveiw2
조차 요구하지 않는다는점입니다. 대부분의 사용자가 이미 설치해뒀을 모던 브라우저만 있으면 충분합니다.
제가 빌드한 경우는 publish
후 실행파일을 UPX 로 압축시킴으로써 5메가대 까지 끌어내린것인데요, 이 부분을 따로 적용하는것은 특별히 어렵지 않을것이며. 상황에따라, 혹은 개발자가 깎아내기에 따라 여러가지 다른 용량최적화가 도입될 여지가 있기때문에 템플릿상의 배포 흐름에 통합되있지는 않습니다.