Skip to main content

Command Palette

Search for a command to run...

.NET Foundation 프로젝트 소개(4): Avalonia

Published
2 min read
.NET Foundation 프로젝트 소개(4): Avalonia

여러분의 시간을 아낄 수 있는 .NET Foundation에서 후원하는 유용한 프로젝트를 소개하는 시간입니다.

오늘 소개하는 프로젝트는 Avalonia 인데요, Avalonia UI Framework 는 XAML 스타일의 유연한 스타일링 시스템을 제공하고 Windows (.NET Framework, .NET) 및 Linux(Xorg를 통한) 및 macOS와 같은 광범위한 운영 체제를 지원하는 크로스 플랫폼 XAML 기반 UI 프레임워크입니다.

image.png

MAUI는 모바일 환경에 집중한다면, Avalonia는 크로스플렛폼 데스크탑 애플리케이션을 만든는데 좀 더 특화되어 있습니다.

Avalonia 특징

  • WPF와 유사한 XAML 스타일로 개발을 바로 시작할 수 있습니다!
  • 윈도우 및 리눅스, iOS에서 동작 (라즈베리파이에서도 동작합니다!)
  • 이제 Avalonia는 현업에서 사용할 수 있을 정도로 안정화 되었습니다.
  • 활발한 커뮤니티에 의해 성장하고 있습니다.

Avalonia XAML 컨트롤 갤러리

  • Microsoft Store https://www.microsoft.com/store/productId/9PGHN6QNJ3RP

Avalonia 간단하게 체험하기

Avalonia 프로젝트 템플릿 설치

만약 Visual Studio 2022를 사용하신다면 Avalonia은 아직 확장기능 설치를 제공하지 않습니다. 다음 처럼 dotnet을 이용해 프로젝트 템플릿을 설치할 수 있습니다.

$ dotnet new -i Avalonia.Templates
다음 템플릿 패키지가 설치됩니다.
   Avalonia.Templates

성공:Avalonia.Templates::0.10.10이(가) 다음 템플릿을 설치했습니다.
템플릿 이름                        약식 이름                      언어       태그
----------------------------  -------------------------  -------  ---------------------------
Avalonia .NET Core App        avalonia.app               [C#],F#  ui/xaml/avalonia/avaloniaui
Avalonia .NET Core MVVM App   avalonia.mvvm              [C#],F#  ui/xaml/avalonia/avaloniaui
Avalonia Resource Dictionary  avalonia.resource                   ui/xaml/avalonia/avaloniaui
Avalonia Styles               avalonia.styles                     ui/xaml/avalonia/avaloniaui
Avalonia TemplatedControl     avalonia.templatedcontrol  [C#]     ui/xaml/avalonia/avaloniaui
Avalonia UserControl          avalonia.usercontrol       [C#],F#  ui/xaml/avalonia/avaloniaui
Avalonia Window               avalonia.window            [C#],F#  ui/xaml/avalonia/avaloniaui

Avalonia 프로젝트 템플릿을 이용해 실행

새 프로젝트 만들기에서 Avalonia .NET Core App (AvaloniaUI)를 선택하면 기폰 프로젝트가 생성됩니다.

image|690x430

image|690x455

WPF와 유사한 구조로 프로젝트가 만들어졌음을 확인할 수 있는데요, 실행해 볼 수 있습니다.

image|690x453

WSL을 통해 실행

Avalonia는 크로스플랫폼 UI Framework입니다. 리눅스에서도 그대로 동작하는데요, WSL이 설치되어 있고 WSLg이 동작할 수 있는 환경이라면 특별한 작업 없이 바로 WSL로 실행해볼 수 있습니다!

WSL 프로파일을 선택한 후 실행하면, image|280x218

다음처럼 WSL에서 실행되는 Avalonia 애플리케이션을 볼 수 있습니다!

image|649x500

22 views

More from this blog

개발, 테스트, 운영에서의 도커 활용

핵심 원칙: "한 번 빌드하고, 어디서든 실행한다 (Build once, run anywhere)" 도커의 가장 큰 장점은 환경 일관성입니다. 동일한 도커 이미지를 사용하여 개발, 테스트, 운영 환경을 구성함으로써 "제 PC에서는 됐는데..." 하는 문제를 최소화할 수 있습니다. 1. 개발 단계 (Development) 목표: 빠른 코드 변경 반영, 쉬운 디버깅, 실제 운영 환경과 유사한 환경 구성. Docker 사용 방안: Dockerf...

May 9, 20256 min read15

[EF Core] 데이터 삭제 시 소프트 삭제 적용

DB에서 데이터를 삭제하면 일반적으로 복구할 수 없습니다. 또한 관계에 따라 영구 삭제 자체가 어려울 수도 있습니다. 그래서 데이터를 영구 삭제하는 대신 IsDeleted 속성을 true로 주고 IsDeleted 속성을 필터링해서 조회하는 방법을 사용하기도 합니다. 이를 소프트 삭제라고 합니다. 그런데 EF에서 알아서 데이터 삭제 시 소프트 삭제를 하고 쿼리시 IsDeleted 속성을 체크해서 삭제한 데이터를 제외한 데이터만 쿼리하게 하는 ...

Mar 18, 20243 min read19

[EF Core] ValueConverter를 이용해서 엔터티 속성의 도메인 관리

EF Core를 사용하면서 문자열 길이 등의 특성을 일일이 지정하는 것은 번거롭습니다. ... [MaxLength(32)] public string? 제목 { get; set; } 엔터티가 한 개일 때는 상관이 없으나 제목 유형이 여러 엔터티에 사용될 경우 유형을 지정하기 번거롭습니다. 속성 유형을 도메인으로 관리하면 참 편할텐데요, ValueConverter를 이용할 수 있습니다. 그런데 이것을 인터페이스 정적 추상를 사용해서 다음처럼 ...

Mar 16, 20242 min read8

디모이 블로그

154 posts

.NET 관련 기술을 선호하고 새로운 언어를 배우는데 관심이 있습니다.