naratteu/EmptyBlazorServer-Monaco at webapp (github.com)
꽤 오래전부터 웹기술을 활용해 응용프로그램을 만드는게 유행이다.
다만 nw니 일렉트론이니 블레이저 하이브리드니 써도 결국 cefsharp이니 webview2니 별도의 내장브라우저가 따로 필요하다는 문제가 있다.
나는 그런 거대한 의존성을 곧이곧대로 받아들일수가 없다.
예전에 써먹어봤던것중에, golang에 lorca라는 망한 라이브러리가 있었는데, 얘는 독특하게도 웹뷰를 쓰는게 아니라
이미 설치된 크롬 브라우저를 찾아내어 웹브라우저그자체가 앱인것처럼 표현되게 해준다.
lorca도 nodejs의 carlo라는 프로젝트에 영감을 얻은거라는데, 지금에 와서 둘다 망한 이유가
로컬에서의 백엔드-프론트간 긴밀하고 최적화된 통신을 위해 전용의, 혹은 적합하지 못한 프로토콜을 사용해야했기때문으로 보인다.
하지만 SignalR을 쓰는 블레이저 서버가 출동한다면? 30줄도 안되는 코드만 추가함으로써 완전 앱처럼 돌아가는 웹을 꾸며낼수 있었다.
서버와 웹브라우저가 마치 동일한 프로세스인것처럼 통제하는것에 한계가 있긴 하고,
브라우저를 대충 갖다쓰는것이니 동작에 대한 보증이나 어디서부터 문제인지 추적이 어렵긴 하겠지만, 그것보단 당장 배포할 용량적어서 좋다.
ASP.NET Core 9.0의 새로운 기능 | Microsoft Learn
닷넷9에서 SignalR이 Aot를 지원하려 한다니, 기어이 블레이저서버까지 Aot를 지원하게 된다면
한 50메가 이하의 단독 응용프로그램하나로 크로스플랫폼 블레이저 웹앱을 구성하는것도 가능하게되지 않을지 기대해본다.
https://github.com/webui-dev
: 내가원하는 프레임웍인거같은데 C#만없다. 계획은있는듯