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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI0NzctM2JjMGQ4ODEtNTc3ZS00YWEyLTg4MDItNjk4MTY5ZDcwMWE1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEzZDZiNTU0YzA3Mjc5ZDkwNTNhMTU4MTdlN2JjNmE5Y2U3NWEyYTFhNDUwNGRiYWE0ZDgxZjUwNjk0ZmE5YzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FOuW6-3zYDuLGgrDwcXKiHC-_35k4adBCp_SuySdSi0)
![](https://private-user-images.githubusercontent.com/52397976/367912857-d3b13869-d0f8-457d-90d9-5a637c500b4a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI4NTctZDNiMTM4NjktZDBmOC00NTdkLTkwZDktNWE2MzdjNTAwYjRhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgxODA0MzhlODY2MmVhZTEyZTQ2Mjc2YmJmNjJlYzEzNGQ5MmExNzk0YjAwYmVjMjIzMGJjZjI4NWNjOGUwOTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pYU6MlN70ydWKtm-Rv-98ZZkmR6z9zNuCyh2_6wvrzk)
![](https://private-user-images.githubusercontent.com/52397976/367912887-45920f83-41b9-4924-8e92-86123d15a2a4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI4ODctNDU5MjBmODMtNDFiOS00OTI0LThlOTItODYxMjNkMTVhMmE0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFlNjk4NjlkZjlmODFkYzY4NTliN2Q3MTk3MTRkYjI3MzQwNDk0MGVkNmZlMDJkY2U1ODllZDAwYjI5ODIxNmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sggxRB5c0LHOWsjrh9LNTHb_53vzubtROtNM_bWQoZo)
![](https://private-user-images.githubusercontent.com/52397976/367913022-4e41c4af-1a98-48b0-9c44-05ac48f0430e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTMwMjItNGU0MWM0YWYtMWE5OC00OGIwLTljNDQtMDVhYzQ4ZjA0MzBlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIwOWMxZDQ1Y2ZjZGFjNzAyMGI5NDA5MDRhMDVlZGQzZDdkZDU2MzI5NjFiZjg1MWQ5OGIwMWE1ZGI2YmFjMjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.i0u1Tyoo3_mL2DtGxlTzy_JTEJxGFV2zPh_LpFw9dlY)
![](https://private-user-images.githubusercontent.com/52397976/367913682-78415f9d-732c-4940-881c-beed7a6e9620.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTM2ODItNzg0MTVmOWQtNzMyYy00OTQwLTg4MWMtYmVlZDdhNmU5NjIwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ0NTBlZjQwYmQwODU2MDFhOGJkY2M3M2RlYjA2MjMyY2RmMmE0MGFiMWEwYTRhNWU3MjFjYWQyNjE3MDU0MDAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.q3SqkqEzGhmNgUk7F9MJ5BKLO_EF--RT8Y4wRTPlxQY)
![](https://private-user-images.githubusercontent.com/52397976/367913781-b376f4ed-4ffd-4528-b1cc-6b0483f442e1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTM3ODEtYjM3NmY0ZWQtNGZmZC00NTI4LWIxY2MtNmIwNDgzZjQ0MmUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE3YzhhMDllYjk2YTNhNTdhMDZhMmVlNzJiZjdlYTU2NWQ0YTU5NjU1ZjQzNjdiNzY0ZWUzYmI1NjJmNWJlYjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.OgLk7QZFjIYqFNZ2gpEYwakeGjilt8strF1ikcpmikM)
![](https://private-user-images.githubusercontent.com/52397976/367912477-3bc0d881-577e-4aa2-8802-698169d701a5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTI0NzctM2JjMGQ4ODEtNTc3ZS00YWEyLTg4MDItNjk4MTY5ZDcwMWE1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEzZDZiNTU0YzA3Mjc5ZDkwNTNhMTU4MTdlN2JjNmE5Y2U3NWEyYTFhNDUwNGRiYWE0ZDgxZjUwNjk0ZmE5YzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FOuW6-3zYDuLGgrDwcXKiHC-_35k4adBCp_SuySdSi0)
![](https://private-user-images.githubusercontent.com/52397976/367913849-0cedb504-2f27-43b8-87ed-34e85f1d7b83.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTM4NDktMGNlZGI1MDQtMmYyNy00M2I4LTg3ZWQtMzRlODVmMWQ3YjgzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg0ODBmMjhkOGZiYjI1MmVhNjZhYjcxYTk2ZjAxZDEyYTUxNjdiZDk3ZDEzZThlNGE2NmI1Njg0MTk0OWIzYjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.7ePbCcwufxBU_hWINpFg37YKjfNleNT39D5AAIRST7w)
![](https://private-user-images.githubusercontent.com/52397976/367914741-f5e80933-9d18-47c1-81c6-eb55a680972a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ3NDEtZjVlODA5MzMtOWQxOC00N2MxLTgxYzYtZWI1NWE2ODA5NzJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVjYTJiMDMxNTkyODYyYzEyNjU0NWY3ODUyMzdmNTNjNjBlOWY2YWU3OWYzOTE0MTRmZGJjYTYzMmIwYjYzYjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.tfWzFTO0CmZvWHwTtDRxnFQ1Es0228h_F4UrwliCvc8)
![](https://private-user-images.githubusercontent.com/52397976/367914855-d8aa51d5-c6e1-4a9a-95f8-e20a7c6f9f91.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ4NTUtZDhhYTUxZDUtYzZlMS00YTlhLTk1ZjgtZTIwYTdjNmY5ZjkxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ0ZDBlZWJiMzVmZGJlNTg2MzAxZTliYzY1NTJmYzM0ODM2OWJmYjIxN2E2ZGJkZDg2OWY5ZTBiY2RjOWM4OTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.I3o2Nd8rbwZyLqd86PHiQpLR7gvStbxB7IPAI7DZ_n0)
![](https://private-user-images.githubusercontent.com/52397976/367914898-c2cc6c22-8345-4333-83a2-61ab08883652.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ4OTgtYzJjYzZjMjItODM0NS00MzMzLTgzYTItNjFhYjA4ODgzNjUyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY1OTZhZGFkNDJmOTU0MWIwODMxYTg2ZTg0MzBmMWNjMDJiZjU3ZjI4OTRkMTYwNjMxZmVhZjIyYjlmNmEzNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sjDn-Vmjs1BM-AM9KGGIT2ahKQW4cOlGkkAhFK1XlYY)
![](https://private-user-images.githubusercontent.com/52397976/367914958-fd6aa0ca-14c1-4446-b6cb-2617bc15b373.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTQ5NTgtZmQ2YWEwY2EtMTRjMS00NDQ2LWI2Y2ItMjYxN2JjMTViMzczLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY3MTg4YzQ1MTg3YzE1MjNlMzE5NzczNmRiMzVmYTJhMjQ3OThkNmFkMTJiMjRjZWM4NDc0MGEzZGY1Nzg3N2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.dA4kbmAYGZOEYHujsZO-0jjm5Aqm0tifiwgYDRXT2xs)
![](https://private-user-images.githubusercontent.com/52397976/367915009-be84fe63-4fb5-4a6c-a537-9907b88e648b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwMDktYmU4NGZlNjMtNGZiNS00YTZjLWE1MzctOTkwN2I4OGU2NDhiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFhMzdkYzdiYzc0MmNmNDVlMDY0YmQxZTAxYWI2ZWRhNGFkYjE2NjAxMzg0NjYxOTZjOTQxOTgyMzY0NTUyYTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.NLG6MalsorUn2LU49UBKObDhZ24sZTFMEI0h5o2xjVE)
![](https://private-user-images.githubusercontent.com/52397976/367915025-24db2d8b-b839-42b2-be8a-2fc6266dad77.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwMjUtMjRkYjJkOGItYjgzOS00MmIyLWJlOGEtMmZjNjI2NmRhZDc3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzN2Q5MDYzZDQ3NTUzYjBhY2ZhZTQyYzVlNmYxMDRmOTU5YzgzYjA1ZWUyNTZhN2UwN2RjNGM3ODg4NGJkOTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.dwsgw-YbQY8F_eSZYXvZXHdX9rZmNIHAYq17Tz1NehU)
![](https://private-user-images.githubusercontent.com/52397976/367915063-642ccf0d-f2df-4adc-bb87-b1246cbda0b7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwNjMtNjQyY2NmMGQtZjJkZi00YWRjLWJiODctYjEyNDZjYmRhMGI3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMzZTdhNmY4ZmRhYTBlYjQ0NzQ3NjEwNzE2N2QxNWVkY2NkZjhkODM1MWZlMGY3YmFjZjBlNGMyYWU3MjIzYWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.A6Q2ImCuw6LiJrIdFAAm5pI2nRD39Ygcp6UTGqUbPtA)
![](https://private-user-images.githubusercontent.com/52397976/367915082-bece2bfd-1bb9-436e-b928-929d3706398c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNjc5MTUwODItYmVjZTJiZmQtMWJiOS00MzZlLWI5MjgtOTI5ZDM3MDYzOThjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQyYTAyZTFjZjM0MDVmYTAyZTRkNzcxOTU0NTkwY2M3OGNkOTlmNWFmZDg0MmM3NWU3ZWQ5ZjZhMTk1NjNiZmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.x3iBP-yAAJS_NSITEG1WIY4KB5MfDPKW2Uo-5S7GIfc)
๋ ํฌ์งํฐ๋ฆฌ ์์ ํ๋ ์์ํฌ ์์ค์ฝ๋๊ฐ ๋ชจ๋ ํฌํจ๋์ด ์์ต๋๋ค.
- 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkwNTEtYWY3MGY0MjItNzA1Ny00ZTc3LWE1NGQtMDQyZWU4MzU4ZDJhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMyY2QwYzNiYmFjYjVkZjVkNGVjZTM0MDZlMWNkNWVkMjlkYTI2NjY5MzQxMTQ1MTU4YjE2N2I3MTI5YTRiNGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.SjXbf0R0SnMolgdKfjPshwihqRZ9KPmTy4HcCPhCR-8)
![](https://private-user-images.githubusercontent.com/52397976/354799195-e4feaa10-a107-4b58-8d13-1d8be620ec62.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTkxOTUtZTRmZWFhMTAtYTEwNy00YjU4LThkMTMtMWQ4YmU2MjBlYzYyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI5ZmYxMzJhZjk4MWRhZjM3MDUyYjNiNTRhZjFkNGE3ZjNkM2ZhNWZiNzg2YmUwODMxMWRjNzk4MWFiNjgzMmImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pDRcqX0elyI_btN4ojADQHqqTg4TUR9L7wK354cMxwg)
![](https://private-user-images.githubusercontent.com/52397976/354799464-5ff487f6-55e4-43e1-9abf-f8d419ee6943.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg5NTEzMDcsIm5iZiI6MTczODk1MTAwNywicGF0aCI6Ii81MjM5Nzk3Ni8zNTQ3OTk0NjQtNWZmNDg3ZjYtNTVlNC00M2UxLTlhYmYtZjhkNDE5ZWU2OTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA3VDE3NTY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzYjAwZDU4ZTgyOTFlNWQ2NjAyM2IyOTUzMzcwYjVhOWIxNjExYmQxODRmYmQzYjczNGE4NGQyYTRlMDUyNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ixdb8DV03X8NEJgroiGMQp4tC1cum5sO55dK_BFtDTE)
- ์์ ํ๋ก์ ํธ ์ค์
- 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์ ํ์ ๊ฒฝํํด๋ณด์ธ์!