일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- QT
- 양평역
- 고속도로
- 이륜차
- 윈도우7
- 정성하
- Qt4
- QTcpServer
- 자료구조
- qt 설치
- Qt 소켓프로그래밍
- android SAF
- 마영전
- 오토바이
- Qt OpenGL
- 알람프로그램
- 재귀함수
- Java
- 스타크래프트2
- 잡담
- 스타2
- 안드로이드
- HTML
- 바이크
- 엑티브엑스
- vuejs
- 디자이어HD
- c언어
- 자바
- FFI
- Today
- Total
프로그래밍과 잡담
[C#] WPF(안됨) 를 리눅스에서도 쓸 수 있다고? 본문
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++ 쓰는 언어로 만드는거 보단 훨씬 쉬우니까 이게 어디임 ㅋㅋ