WPF๋ฅผ ํ์ฉํ ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ์ ๊ณ ํ์ง ์ฌํ ํ๋ก์ ํธ์ ๋๋ค. ์ด ํ๋ก์ ํธ๋ WPF์ ๋ค์ํ ๊ธฐ์ ๊ตฌํ์ ๋ํ ์ฌ๋ก๋ค์ ํฌํจํ๊ณ ์์ผ๋ฉฐ, ๋๊ท๋ชจ ํ๋ก์ ํธ์ ๋ถ์ฐํ ์ค๊ณ์ ๊ดํ ํญ๋์ ๊ธฐ์ ์ ์ ๊ทผ์ ๋ณด์ฌ์ค๋๋ค.
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (WPF)
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (Uno-Platform)
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (WinUI 3)
์ ํฌ๋ 2008๋ ๋ถํฐ WPF ๊ธฐ์ ์ ์ฐ๊ตฌํ๊ณ ๊ฒฝํ์ ์์์์ต๋๋ค. ๊ทธ๋์ Xamarin, MAUI, Uno-Platform, AvaloniaUI, OpenSilver ๋ฑ ๋ค์ํ XAML ๊ธฐ๋ฐ์ ํฌ๋ก์ค ํ๋ซํผ ๊ธฐ์ ์ด ๋ฐ์ ํด ์๊ณ , ์ด๋ฅผ ํตํด WPF์์ ์ถ์ ํ ๊ธฐ์ ์ ํฌ๋ก์ค ํ๋ซํผ์ผ๋ก ํ์ฅํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์ด๋ ธ์ต๋๋ค.
์ด๋ฒ์ ๊ณต๊ฐํ๋ ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ WPF ๋ฒ์ ์ XAML ๊ธฐ๋ฐ์ ํ๋ถํ UX, C#์ ๊ฐ์ฒด์งํฅ์ ์ค๊ณ, ๊ทธ๋ฆฌ๊ณ ์ฒด๊ณ์ ์ธ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์ด๋ WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํ๋ฉด์๋, ํฅํ ๋ค๋ฅธ XAML ๊ธฐ๋ฐ ํ๋ซํผ์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ ํ๋ก์ ํธ์ ๋๋ค.
์ด ํ๋ก์ ํธ๋ WPF์์ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๋ณต์กํ ์ปจํธ๋กค๋ค์ CustomControl๋ก ๊ตฌํํ์ฌ, ๊ฐ๋ฐ์๋ค์๊ฒ ํ๋ถํ ํ์ต ์๋ฃ๋ฅผ ์ ๊ณตํ๊ณ ์ ํฉ๋๋ค. ๋ํ, WPF์ ๋ค์ํ ๊ธฐ์ ๊ตฌํ ์ฌ๋ก๋ฅผ ํฌํจํ๊ณ ์์ด, WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๋ค์ ์ค์ ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ํ์ฉํ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
ํนํ ์ด ํ๋ก์ ํธ๋ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถ์ฐํ ์ค๊ณ์ ๋ํ ํญ๋์ ์ ๊ทผ ๋ฐฉ์์ ์ ์ํฉ๋๋ค. ๋ชจ๋ํ๋ ๊ตฌ์กฐ, ํจ์จ์ ์ธ ์ํ ๊ด๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํคํ ์ฒ๋ฅผ ํตํด ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋ป๊ฒ ๊ตฌ์กฐํํ๊ณ ๊ด๋ฆฌํ ์ ์๋์ง ๋ณด์ฌ์ค๋๋ค.
Jamesnet.Core ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WPF์ Uno์์ ๋์ผํ๊ฒ ๋์ํ๋๋ก .NET Standard 2.0 ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WPF์์๋ Jamesnet.Window๋ก, Uno-Platform์์๋ Jamesnet.Uno๋ก ์ ๊ณต๋ฉ๋๋ค.
์ด ํ๋ก์ ํธ์์๋ Jamesnet.Core์ Jamesnet.Window์ ์ค์ ์์ค ์ฝ๋๋ฅผ ์ง์ ์ฐธ์กฐํ๊ณ ์์ด, XAML ๊ธฐ๋ฐ ํ๋ ์์ํฌ์ ์ค๊ณ ๋ฐฉ์๋ ํจ๊ป ํ์ตํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํ๋ก์ ํธ๋ฅผ ํตํด WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๋ณด์ด๋ ๋์์, ํฅํ Uno-Platform, MAUI, AvaloniaUI, OpenSilver, WinUI3 ๊ฐ์ ๋ค์ํ XAML ๊ธฐ๋ฐ ํ๋ซํผ์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ์ ์ ์ํ๊ณ , ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ์ ์๋ก์ด ์งํ์ ์ด๊ณ ์ ํฉ๋๋ค.
![](https://private-user-images.githubusercontent.com/52397976/367912477-3bc0d881-577e-4aa2-8802-698169d701a5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI0NzctM2JjMGQ4ODEtNTc3ZS00YWEyLTg4MDItNjk4MTY5ZDcwMWE1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEzODFmMjk5ZDk0N2NiNzlkZDU4NmJhZTY5OTMxMDE0N2Q5NTU3N2Q2MmI4MDIwMDA1ZDE1YzdhYzMzNjhhZWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ItSI9FNVQb2_7A0vA7XmuHdesQ2ASoryEmUhpJF-EIo)
![](https://private-user-images.githubusercontent.com/52397976/367912857-d3b13869-d0f8-457d-90d9-5a637c500b4a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI4NTctZDNiMTM4NjktZDBmOC00NTdkLTkwZDktNWE2MzdjNTAwYjRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMzYzA3YjhiM2NhNmYzNWNjMGUxOTBmMWZjYjM2MTcwMDk2ODY1ZTE5NWEzY2U2YTQ2YjVhZWUzYTYyODNhYzUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.iOCnh0jqlXR9bQJBEhLTctQ1Y12e-tLR6yHQS957Ra0)
![](https://private-user-images.githubusercontent.com/52397976/367912887-45920f83-41b9-4924-8e92-86123d15a2a4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI4ODctNDU5MjBmODMtNDFiOS00OTI0LThlOTItODYxMjNkMTVhMmE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY2MDhjZGMyZjExMzZhMzY4NmVhMmJiNGQwOTkxOWIzNzM2YTMzMWM0NDNjMWNhNDk0MWIyYjYyNGYxODI3MDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.rBlNnDMccRIClc65JcNzpvkaNvPkXJo1lfLk6dm63-w)
![](https://private-user-images.githubusercontent.com/52397976/367913022-4e41c4af-1a98-48b0-9c44-05ac48f0430e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTMwMjItNGU0MWM0YWYtMWE5OC00OGIwLTljNDQtMDVhYzQ4ZjA0MzBlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc3YWM1MGNjM2YxOWIxN2I0YzM0Y2ViYjUyNWE2YTlhODM5Y2EwN2E2NzY2ZmM5Y2I5NjI4N2ExZTBmOWNmODgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FBjTSQEcAlyxV1NSpapI__V6Eml9gKP0OMiVwtpUgQo)
![](https://private-user-images.githubusercontent.com/52397976/367913682-78415f9d-732c-4940-881c-beed7a6e9620.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTM2ODItNzg0MTVmOWQtNzMyYy00OTQwLTg4MWMtYmVlZDdhNmU5NjIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQyYmYzOTdiNDYwM2IzM2QzZjdhYmVmYTZhNDU5MGZiZWI3MTkwNjc0YzhhOWMwYmRmYjI0MzMzM2EwMzhhY2QmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.x51SzNVu-LLeLi4KWsqYeUGhBwd6Ni9zj3UDHedh8EU)
![](https://private-user-images.githubusercontent.com/52397976/367913781-b376f4ed-4ffd-4528-b1cc-6b0483f442e1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTM3ODEtYjM3NmY0ZWQtNGZmZC00NTI4LWIxY2MtNmIwNDgzZjQ0MmUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYzY2MjcyN2RkNTRiMzJhNjM2MzQwNGNiODM1MmUxNzhmYjM4YzU3ZWNjMGQyOTQxMWI2NTY3NGRmZmY5NGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ZZfxDQ4BRUQ5Ui0Qv1K6Cg722LD40hjnOvnppqbTtYQ)
![](https://private-user-images.githubusercontent.com/52397976/367912477-3bc0d881-577e-4aa2-8802-698169d701a5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI0NzctM2JjMGQ4ODEtNTc3ZS00YWEyLTg4MDItNjk4MTY5ZDcwMWE1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEzODFmMjk5ZDk0N2NiNzlkZDU4NmJhZTY5OTMxMDE0N2Q5NTU3N2Q2MmI4MDIwMDA1ZDE1YzdhYzMzNjhhZWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ItSI9FNVQb2_7A0vA7XmuHdesQ2ASoryEmUhpJF-EIo)
![](https://private-user-images.githubusercontent.com/52397976/367913849-0cedb504-2f27-43b8-87ed-34e85f1d7b83.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTM4NDktMGNlZGI1MDQtMmYyNy00M2I4LTg3ZWQtMzRlODVmMWQ3YjgzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmN2Y5NWEyYjg0MmE3NzM2NzVjMWFjMDAyYTJjMjVmZTU1Njg2MWJmOTEwZWViZDkwNjlmNDlkYTQyODM1MjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.9hwxf1s1N9PMq5JYSOBXk76cSZmZgux7PB47OoDAozk)
![](https://private-user-images.githubusercontent.com/52397976/367914741-f5e80933-9d18-47c1-81c6-eb55a680972a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ3NDEtZjVlODA5MzMtOWQxOC00N2MxLTgxYzYtZWI1NWE2ODA5NzJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdkN2QyMjYwMDVkZDdkZTBhZTAwZjA4MDA0OTQ0YmE1OWEyNzgzOWJiZDA3NDAzNjRlNTA3ZmEwYTJiMjZlZmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Xg3iC_-PpZvo22yv5RCL6JKe8ahiA5V2dUZFVVwAbjY)
![](https://private-user-images.githubusercontent.com/52397976/367914855-d8aa51d5-c6e1-4a9a-95f8-e20a7c6f9f91.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ4NTUtZDhhYTUxZDUtYzZlMS00YTlhLTk1ZjgtZTIwYTdjNmY5ZjkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ1MTRkM2RkZDU0ZjAyYTc4ODFiMzk2MzhjNjNiYzUzNzkwYjE5YmQyZmM3Y2U4NDlkNDRiMTViMzg4MGMzNTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.t55_tlMseDNyxiobvUWyQWTaASm8XPapQX-ElL7V6rk)
![](https://private-user-images.githubusercontent.com/52397976/367914898-c2cc6c22-8345-4333-83a2-61ab08883652.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ4OTgtYzJjYzZjMjItODM0NS00MzMzLTgzYTItNjFhYjA4ODgzNjUyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI3Y2ViNWM4NzgwYTA3ZjAyNGJiMDEyZDFlZTJiZWFhMGIyNDBhYWEwMDM3MTNiMGM1ODQ3YjY1OWI1NDFjM2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AmYgKoQzRtb6ZcYLm6ow2fPO1HOgvmvQ1TkXih9G37o)
![](https://private-user-images.githubusercontent.com/52397976/367914958-fd6aa0ca-14c1-4446-b6cb-2617bc15b373.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ5NTgtZmQ2YWEwY2EtMTRjMS00NDQ2LWI2Y2ItMjYxN2JjMTViMzczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYzNDhlNmJjZDgyNzNjNDNhNGFhOWEyYjhmNzA2NDY5YzE1NDEwZDI2ZjI5ZDZkNjQ4YTQ1YWIwZWI5NDMxMTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.TI1yP6PZGVotWdEsJzyq_LhZY4U7rb2KaESVtHOi4gc)
![](https://private-user-images.githubusercontent.com/52397976/367915009-be84fe63-4fb5-4a6c-a537-9907b88e648b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwMDktYmU4NGZlNjMtNGZiNS00YTZjLWE1MzctOTkwN2I4OGU2NDhiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU0N2U2NjlmMGFhZmJmOGQ5NmQ4MjFmYmM0NzNjOGQ3MzM3MWIxMzIzN2ZiNjE5ODkxMjY1MzYxNmM3ZjhlMWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.LfVCCre3o0KrUXPHw3ac5edXPL1VVpy4cBxKb6zm0AU)
![](https://private-user-images.githubusercontent.com/52397976/367915025-24db2d8b-b839-42b2-be8a-2fc6266dad77.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwMjUtMjRkYjJkOGItYjgzOS00MmIyLWJlOGEtMmZjNjI2NmRhZDc3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMzMjc4NzhjN2MyMjg5ZDFlMzA0N2Q5NjIzNjc1NmRmM2ZkZGVlYTQ2Y2E1ZGQ1NTM0Nzg4OGI0MzIwMzBjNGMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.H5EmjZ5Zp6Fw-O0XA9p-dLAEbwOZ_uFJvqXv5QAMZsg)
![](https://private-user-images.githubusercontent.com/52397976/367915063-642ccf0d-f2df-4adc-bb87-b1246cbda0b7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwNjMtNjQyY2NmMGQtZjJkZi00YWRjLWJiODctYjEyNDZjYmRhMGI3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFlYTM3OGQyYjJjNDRkMDVhMzY0YjBjZTQxNDY3OGM4MzhiYzMyYmExZGZmMDFjNDc2YWIyMjNmOGM5MTllMDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Xlr5d1gSLgaGdDQyDCbhpyLVVCiNiSYKte5E1gjf3XM)
![](https://private-user-images.githubusercontent.com/52397976/367915082-bece2bfd-1bb9-436e-b928-929d3706398c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwODItYmVjZTJiZmQtMWJiOS00MzZlLWI5MjgtOTI5ZDM3MDYzOThjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJjYzUwMmUzNWQxZTBhZmQ3MzUzZGU1YWUxNWRiNzZjYjYzNmI2YjA5MDg5MTA1ZjM3ZDgxZjZhZmFkYjY0MmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.EelL63hqHaZj1jSJK64Mnl4yLjnrIAQmSkXm-2_FStM)
๋ ํฌ์งํฐ๋ฆฌ ์์ ํ๋ ์์ํฌ ์์ค์ฝ๋๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์์ต๋๋ค.
- Jamesnet.Core: .NET Standard 2.0 ๊ธฐ๋ฐ์ ํฌ๋ก์ค ํ๋ซํผ ์ฝ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Jamesnet.Windoww: WPF์ ์ต์ ํ๋ ์๋์ฐ ๊ด๋ฆฌ ๋ฐ UI ํ๋ ์์ํฌ
์ด ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WPF์ Uno-Platform ๋ชจ๋์์ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ํคํ ์ฒ ์ค๊ณ์ ํ์ํ ๋ชจ๋ ํต์ฌ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์์ต๋๋ค.
- ๋๊ท๋ชจ ํ๋ก์ ํธ ์ํคํ ์ฒ
- ๋ชจ๋ํ ๋ฐ ๋ถ์ฐ ์์คํ ์ค๊ณ
- ์์กด์ฑ ์ฃผ์ ์ ํตํ ๋์จํ ๊ฒฐํฉ
- ํ๋ฌ๊ทธ์ธ ๊ธฐ๋ฐ ํ์ฅ ๊ฐ๋ฅํ ๊ตฌ์กฐ
- ๊ณ ๊ธ WPF ๊ธฐ์
- ๋ค์ํ CustomControl ๊ตฌํ
- VisualStateManager๋ฅผ ํ์ฉํ ๋ณต์กํ ์ํ ๊ด๋ฆฌ
- ๋ฐ์ดํฐ ๊ฐ์ํ ๋ฐ UI ๊ฐ์ํ ๊ธฐ์
- ์ฑ๋ฅ ์ต์ ํ
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ๊ด๋ฆฌ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ
- ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ ํจํด ์ ์ฉ
- ๋ ๋๋ง ์ต์ ํ ๊ธฐ๋ฒ
- UI/UX ๋์์ธ
- Geometry Path๋ฅผ ํ์ฉํ ๋ณต์กํ ๊ทธ๋ํฝ ๊ตฌํ
- ์ฌ์ฉ์ ์ ์ ์ ๋๋ฉ์ด์ ๋ฐ ์ ํ ํจ๊ณผ
- ๋์ ํ ๋ง ์์คํ
- ํ๋ ์์ํฌ ์ค๊ณ
- ์ด๋ฒคํธ ๊ธฐ๋ฐ ํต์ ์์คํ
- ์ํ ๊ด๋ฆฌ ํจํด ๊ตฌํ
- ํ์ฅ ๊ฐ๋ฅํ ๋ค๋น๊ฒ์ด์ ์์คํ
์ด ํ๋ก์ ํธ๋ WPF์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ต๋ํ ํ์ฉํ๋ฉด์, Jamesnet.Core์ Jamesnet.Window๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณ ๊ธ ์ค๊ณ ํจํด๊ณผ ๊ธฐ์ ๋ค์ ํฌ๊ด์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ค์ํ ๊ธฐ์ ๊ณผ ํจํด๋ค์ด ์ค์ ์ ์ฉ๋ ์ฌ๋ก๋ฅผ ์ ๊ณตํ์ฌ, WPF ๊ฐ๋ฐ์๋ค์๊ฒ ํ๋ถํ ํ์ต ์๋ฃ๊ฐ ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ด ํ๋ก์ ํธ๊ฐ WPF ๊ฐ๋ฐ์๋ค์๊ฒ ์๊ฐ์ ์ฃผ๊ณ , ๋๊ท๋ชจ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ชจ๋ฒ ์ฌ๋ก๋ก ํ์ฉ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ํ, ์ด ํ๋ก์ ํธ๋ฅผ ํตํด WPF์ Uno-Platform ๊ฐ์ ์ฝ๋ ๊ณต์ ์ ๋ต๊ณผ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ์ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ํ๊ตฌํ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
ํฅํ MAUI, WinUI 3, AvaloniaUI, OpenSilver์ ๊ฐ์ ์๋ก์ด ํ๋ซํผ ๋ฒ์ ๋ ๊ณํ ์ค์ ๋๋ค.
- .NET 8.0
- WPF (Windows Presentation Foundation)
- Jamesnet.Core (.NET Standard 2.0)
- Jamesnet.Windows
- Jamesnet.Uno
- Visual Studio 2022 ์ด์
- .NET 8.0 SDK
- Jamesnet.Wpf NuGet ํจํค์ง
git clone https://github.com/jamesnet214/leagueoflegends.git
- Visual Studio
- Visual Studio Code
- JetBrains Rider
![](https://private-user-images.githubusercontent.com/52397976/354799051-af70f422-7057-4e77-a54d-042ee8358d2a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkwNTEtYWY3MGY0MjItNzA1Ny00ZTc3LWE1NGQtMDQyZWU4MzU4ZDJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5YzVhYWNjNDA0ODc4MDFmMzA3MGI4ZmUyZWQ5MTI3ZGRlNzdmYmYzN2U4ZTViNDEyZmE1ZDlmMjJkNTZlNTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.afuA3D7621GIHjFYR8pPBqwGOwwypwuv6-n6agUNaUI)
![](https://private-user-images.githubusercontent.com/52397976/354799195-e4feaa10-a107-4b58-8d13-1d8be620ec62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkxOTUtZTRmZWFhMTAtYTEwNy00YjU4LThkMTMtMWQ4YmU2MjBlYzYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk2ZjNkZTc4NDYwZmJiYjJhNmQxZmNjM2VlMjVlYmI0YzU5ZTgzZjJkMzA2NGZjMzcyZWUyMjcxNDE2OGU3NjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Wwjw1UAVAEihpnqW_9e9wx_3hztolYP7Smvz1HNtJCM)
![](https://private-user-images.githubusercontent.com/52397976/354799464-5ff487f6-55e4-43e1-9abf-f8d419ee6943.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5MzU4MzQsIm5iZiI6MTczODkzNTUzNCwicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTk0NjQtNWZmNDg3ZjYtNTVlNC00M2UxLTlhYmYtZjhkNDE5ZWU2OTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDEzMzg1NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc4NDMwMzY1MDkxZGZmZTZmZmNkMTJlZTkzMGRmN2RmZjQwMDRhMjhlNTA2ZjRlNjhlOTgyYmRiODUxMjQ4ZmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.O68vCzjRq-3qXRTpxSBOA_uSxGs8zN3CHLlUHWJTFJA)
- ์์ ํ๋ก์ ํธ ์ค์
- F5๋ฅผ ๋๋ฅด๊ฑฐ๋ ์คํ ๋ฒํผ ํด๋ฆญ
- Windows 11 ๊ถ์ฅ
์ด ํ๋ก์ ํธ๋ WPF ๊ฐ๋ฐ์๋ค์๊ฒ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค:
- ๋ณต์กํ UI ์ฌํ: ์ ๊ตํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌํํ๋ ๊ธฐ์ ํ์ต
- ์ปค์คํ ์ปจํธ๋กค ๊ฐ๋ฐ: WPF ์ปค์คํ ์ปจํธ๋กค ๊ตฌ์ถ ๊ณผ์ ์ดํด
- ์ค์ MVVM: ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์ MVVM ํจํด์ ์ค์ ๊ตฌํ ์ฌ๋ก ํ์ธ
- Geometry Path ์ฌ์ฉ: ์ ๊ตํ UI ๋์์ธ์ ์ํ Geometry Path ์ฌ์ฉ ๋ง์คํฐ
- ์ฑ๋ฅ ์ต์ ํ: ๋๊ท๋ชจ WPF ์ ํ๋ฆฌ์ผ์ด์ ์ต์ ํ ์ ๋ต ํ์ต
๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ (WPF) ํ๋ก์ ํธ์ ๋ํ ๊ธฐ์ฌ๋ฅผ ํ์ํฉ๋๋ค! ์ด์๋ฅผ ์ ์ถํ๊ฑฐ๋, ํ ๋ฆฌํ์คํธ๋ฅผ ์์ฑํ๊ฑฐ๋, ๊ฐ์ ์ฌํญ์ ์ ์ํด ์ฃผ์ธ์.
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค ํ์ ๋ฐฐํฌ๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
- ์น์ฌ์ดํธ: https://jamesnet.dev
- ์ด๋ฉ์ผ: [email protected], [email protected]
์ด ๋ฆฌ๊ทธ ์ค๋ธ ๋ ์ ๋ ํด๋ผ์ด์ธํธ ์ฌํ์ ํตํด ๋ณต์กํ ๊ฒ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌํํ๋ WPF์ ํ์ ๊ฒฝํํด๋ณด์ธ์!