티스토리 뷰
Mac, iOS, Android, Linux, Windows 등등..
우리는 수 많은 OS가 존재하는 세상에서 살고 있다.
당연하게도, 내가 만든 Appliccation이 최대한 다양한 환경에서 돌아갈 수 있었으면 좋겠다.
Flutter, Xamarin, MAUI, Electron, ReactNative 등등..
멀티 플랫폼을 지원하게 하기위한 기술들이 쏟아져 나오고 있다.
지금은 바야흐로 대 멀티 플랫폼의 시대.
수 많은 선택지 중 Blazor + Electron.NET을 이용해보기로 하였다.
(이미 Blazor를 이용한 웹앱을 만들어 본 경험이 있기 때문)
[ 사전 준비 ]
1. Blazor 웹앱을 만드는 방법은 공식문서에 다양한 튜토리얼이 있으므로, 그 과정은 생략함.
2. Blazor WebAssembly, Blazor Server 어떠한 프로젝트도 상관 없으나, 여기서는 Blazor Server 앱을 사용함.
3. Node와 .NET5 이상이 설치되어 있어야 함.
[ 시작 ]
1. 내 Blazor 프로젝트에 Electron.NET을 Nuget에서 설치.
2. Program.cs에 Electron 관련 코드 추가
using ElectronNET.API;
public static IHostBuilder CreateHostBuilder(string[] args)
{
var builder = Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
// Electron
webBuilder.UseElectron(args);
webBuilder.UseStartup<Startup>();
});
return builder;
}
3. Startup.cs에 Electron 관련 코드 추가
using ElectronNET.API;
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
...
...
...
// Electron
if (HybridSupport.IsElectronActive)
{
CreateWindow();
}
}
// Electron
private async void CreateWindow()
{
var window = await Electron.WindowManager.CreateWindowAsync();
window.OnReadyToShow += () =>
{
window.Show();
};
window.OnClosed += () => {
Electron.App.Quit();
};
window.SetTitle("Blazor for Electron");
}
4. PowerShell을 이용한 ElectronNET.CLI 설치
dotnet tool install ElectronNET.CLI -g
5. VisualStudio에서 Terminal 추가
6. Terminal에서 ElectronNET.CLI 커맨드 입력
// 커맨드 위치를 솔루션 폴더에서 프로젝트 폴더로 이동
cd 프로젝트명
// 최초 한 번만 실행
electronize init
// Electron 실행
electronize start
7. 실행 화면
8. 변경된 부분 살펴보기
1) 디버깅 시작 옵션에 Electron.NET App이 추가 되었음
2) 프로젝트 속성 > 디버그 속성에 Electron.NET App이 추가 되었음
- 1)번과 동일한 내용이나, 우리가 Terminal에서 입력한 커맨드가 디버그 옵션으로 셋팅되어 있는걸 볼 수 있다.
9. Enjoy your Electron App !!
'C#' 카테고리의 다른 글
C#: ASP.NET Core IIS Express에서 내부 아이피로 접근 (0) | 2024.12.03 |
---|---|
C#: CLR, JIT, Assembly 등 기본 개념 (0) | 2023.08.27 |
C#: Blazor Server에 Google OAuth 연동 (12) | 2021.12.21 |
C#: Blazor IIS 배포 후 Route 이슈 (2) | 2021.12.13 |
C#: Blazor 전역 로그인 체크 (0) | 2021.12.01 |
- Total
- Today
- Yesterday