프로그래밍과 잡담

[C#] WPF(안됨) 를 리눅스에서도 쓸 수 있다고? 본문

카테고리 없음

[C#] WPF(안됨) 를 리눅스에서도 쓸 수 있다고?

크레온 2025. 4. 11. 22:03

WPF는 구라고

 

WPF하고 비슷한  아발로니아( Avalonia) 라는 프레임워크임.

 

WPF는 이름 부터 Windows Presentation Foundation  이라는 이름을 가진 윈도우 전용 프레임웤이라  리눅스에서 안 돌아감 ㅋㅋ   wine을 쓰면 돌아가긴 하는데,  사용하는 라이브러리에 따라서 안될 가능성이 높음. 

 

 

아발로니아는 WPF 처럼 xaml 을 통해서 UI를 디자인함. 

잠깐 써보니까 몇몇 부분들이 WPF 하고 유사함. 

당연하지만 xaml 같은거 쓰는거나 mvvm 을 쓰는 방식같은게   WPF 하고 비슷한거지. 내부로 들어가면 좀 다름.

 

사용 해본 이유는 별거 없음.  내가 쓰는 프로그램이 있는데 리눅스에서 돌려보고 싶다가 다 였음 ㅋㅋ

 

뭐 멀티OS를 지원하는 프로그래밍 언어가 없지는 않는데,  자바도 있고 그렇지만 뭐 자바는 UI를 만들기가 좀 그렇고 UI용 라이브러리가 별로 없음.그렇다고 거지같은 C++로 만들기에는 내가 C++을 잘 못함 ㅋ 뭐  쓰기도 싫고. 

 

아발로니아는 같은 C# 이기 때문에 UI 부분 처리만 좀 바꾸면 되기 때문이지. 

 

C#에는 nuget 이 있어서 각종 라이브러리를 쉽게 설치 가능하니까 훨씬 편하다.   java 는 그냥 서버용 웹서비스나 만드는 용이지 이걸로 UI 프로그램을 만들기에는 좀 별로다. 

 

여하튼 아발로니아는  MIT 라이선스임.  그렇다 보니 뭔가 사거나 할 필요 없는 공짜라는거다. 

아 물론 걔네들이 땅파먹고 사는 애들은 아니고, 개발지원이 필요하다면 지원비용을 내야함. 

즉, 쓰는건 니 마음대로지만, 지원이 필요하면 '돈 내세요' 인거.

 

나야 그냥 내가 쓰던거 리눅스에서 한번 돌려보고 싶은거니 상관 없다.

일단 돌아가는지 테스트용으로만 만들어서 리눅스에서 돌렸음. 

그냥 창 하나 덜렁 나오는 껍데기만 넣고 돌리는게 아니라 웹뷰를 넣어서 하는거라 꽤나 골치 아팠음. 

 

근데,  아발로니아, 이게 좀 특이한거 같음. 

리눅스에서 돌릴 때는 OpenGL을 이용하는거 같은데, 문제는 하드웨어 가속이 없으면 프로그램이 동작을 안함 ㅋㅋㅋ 

실행하면 그냥 죽어버림 ㅋ

 

wsl 이나 hyper-v 같은 가상화 프로그램으로는 안된다는 얘기임.   wsl은 내가 셋팅을 잘못해서 그런걸지도 모르겠음. 

뭐 어떻게 셋팅하는지 잘 모르겠어서 WSL은 포기함.

hyper-v는 셋팅을 아무리 바꿔봐도 개같은 오류가 나오면서 실행이 안 되먹음. 그래서 포기.

 

실제 장비에서 해보자라고 생각해서 고물 노트북에 루분투 깔아서 테스트함. 

거기서 테스트 하니까 정상적으로 작동함. 

결론적으로는 하드웨어 가속이 없으면 실행이 안된다는거,  그래서 가상머신 중에 되는거 없나 생각하는 중에 vmware 가 생각나서 찾아보니 이건 vga 가속이 된다고 함. 

 

바로 루분투 설치하고 실행해보니 아주 잘 실행됨 ㅋㅋ 

이거 때문에 안쓰는 후진 노트북에 루분투 깔고 그랬는데 이제 필요 없겠구만 ㅋㅋㅋ

 

결론은 나름 흥미로운 라이브러리임.

C#이 최근은 아니지만 dotnet core가 나오면서 여러 os를 지원하더니 이런 라이브러리도 있는지도 몰랐네. 

하지만 멀티 OS는 테스트하기가 쉽지 않다.  아무래도 이게 아주 유명한거라면 자료가 많이 있을건데 자료가 그렇게 많지 는 않은거 같음.  자료를 찾을려면 죄다 영어고  공식 사이트를 뒤져보면서 찾아야함. 

라이브러리도 마찬가지임.  라이브러리 git 들어가서 예제 코드 보면서 해봐야함 ㅋㅋ  

뭐 그래도 QT나 wxwidget 같은 C++ 쓰는 언어로 만드는거 보단 훨씬 쉬우니까  이게 어디임 ㅋㅋ 

반응형
Comments