์ง๊ธ๊น์ง WinUI 3 ๋ก๋๋งต(#717)์ ๋ํ ํ๋ฅญํ ํ ๋ก ๊ณผ ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ํ์ ๋ค์ด์ค๋ ๋ชจ๋ ์๊ฒฌ๊ณผ ๋ฌธ์ ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๊ณ ์์ต๋๋ค.
์ ๋ ์ฃผ์ ๊ด์ฌ ๋ถ์ผ์ ๋ํด ๋น ๋ฅด๊ฒ ์ ๋ฐ์ดํธํ๊ณ ์ถ์์ต๋๋ค.
WinUI์ ๋ค์ ๋ฆด๋ฆฌ์ค๋ 7์์ 2.2 ์์ ๋ฒ์ ์ด ๋ ๊ฒ์ ๋๋ค. 3.0์์ ๋ณ๋ ฌ๋ก ์์ ํ๋ ๋์ ์ถ๊ฐ ๊ฐ๋ฐ์ 2.x ๋ฒ์ ์์ ๊ณ์๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌํด๊ฐ ๋๋๊ธฐ ์ ์ WinUI 3.0์ ์ด๊ธฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ๋ฆด๋ฆฌ์คํ๊ธฐ๋ฅผ ํฌ๋งํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ์ฌ ๊ถค๋์ ์ค๋ฅด๊ณ ์์ง๋ง ํ์ด๋ฐ์ด ์ด๋ฐํ ๊ฒ์ ๋๋ค. ์ง๊ธ๊ณผ ๊ทธ๋ ์ฌ์ด์ ํด์ผ ํ ์ผ์ด ๋ง์ต๋๋ค.
๋ฏธ๋ฆฌ ๋ณด๊ธฐ์๋ ๊ธฐ๋ฅ์ด ์์ง๋ง ๊ธฐ๋ณธ ์ฑ์ ๋น๋ํ์ฌ WinUI 3์ ๋ํ ๋๋์ ์ป์ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ WPF, WinForms, MFC๋ฅผ ๋น๋กฏํ ๊ธฐ์กด ์ฑ์ WinUI UI๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ Creators Update ์ด์(15063+)์ Xaml Islands ์ง์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๋ํ ์ UWP WinUI 3 ์ฑ์ ๋ง๋ค๊ธฐ ์ํ ์์ Visual Studio ํ ํ๋ฆฟ(.vsix ํ์ฅ๋ช ์ ํตํด)๋ ํฌํจ๋ฉ๋๋ค.
์ฌ๊ธฐ์๋ "๋ฐ์คํฌํฑ์ WinUI"๊ฐ ์์ง ํฌํจ๋์ง ์์ต๋๋ค(์์ธํ ๋ด์ฉ์ ์๋ ์ฐธ์กฐ).
๋ด๋ ์ ์ํด ๊ถค๋์.
์ฐ๋ฆฌ๋ ์คํ ์์ค๋ฅผ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ง๋ง ์์ง ํ์ ๋ ETA๋ ์์ต๋๋ค. ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋ถ๊ธฐ๋ก ์์๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์์ค๋ฅผ ๊ณต๊ฐํ๊ณ ํ๋ฐํ ๊ฐ๋ฐ์ GitHub๋ก ์ฎ๊ธธ ๊ณํ์ ๋๋ค. ์ฆ, ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ธฐ์กด WinUI 2 ์ฝ๋์ ๋นํด ์ฝ๋๊ฐ ์์ง ์์ ํ ๊นจ๋ํ๊ณ ํ๋์ ์ด์ง๋ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์ ์ญ์ฌ๋ฅผ ๊ฐ์ง ๋ง์ Windows C++ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค ๐
์ฐ๋ฆฌ๊ฐ ๋ค์ ํผ๋๋ฐฑ์ ์ผ๋ถ ํ์ด๋ผ์ดํธ์ ํ์ฌ ์์น๋ ํน๋ณํ ์์ ์์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ์คํฌํฑ ์ฑ์์ WinUI๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ง์ Windows ์ฑ ๊ฐ๋ฐ์์๊ฒ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ์๋๋ฆฌ์ค๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ชฉํ๋ Xaml Islands๋ฅผ ์ฌ์ฉํ ํ์ ์์ด (UWP ์ฑ ๋์ ) win32/desktop ์ฑ์ UI๋ก Xaml ๋งํฌ์ + WinRT API(.NET ๋๋ C++๋ฅผ ํตํด)๋ฅผ ์ฌ์ฉํ๋๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
@LucasHaines ์ @marb2000 ์ ์ด์ ๋ํด .NET ๋ฐ Visual Studio ํ๊ณผ ๊ธด๋ฐํ๊ฒ ํ๋ ฅํ๊ณ ์์ผ๋ฉฐ ์์ ์ด
UWP๊ฐ ๋ ์๋ํ๊ธฐ ๋๋ฌธ์ UWP ์ง์์ win32 ์ด์ ์ ์ค๋น๋ฉ๋๋ค.
์ฐ๋ฆฌ์ ์ด์ ์ ์ฌ์ ํ โโWindows 10 ๋ฐ 8.1์ด์ง๋ง ์ผ๋ถ ์ฌ์ฉ์๋ ์ฌ์ ํ Win7์ ์ฌ์ฉ์ ๋ฐ ๊ณ ๊ฐ์ด ์๋ค๋ ํผ๋๋ฐฑ์ ๋ฃ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์ฅ๊ณผ ์ต์ ์ ํ๊ฐํ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ์ ํ (์์๋๋ก) ๊ณํํ๊ณ ์์ต๋๋ค:
๋ํ ๊ธฐ์กด UWP C# ์ฑ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋๊ตฌ๋ถํฐ ์์ํ์ฌ ์ด๋ค ๋ง์ด๊ทธ๋ ์ด์ ๋์ฐ๋ฏธ ๋๊ตฌ๋ฅผ ๋น๋ํ ์ง ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค. ์ด์ ๋ํ ๊ทํ์ ํผ๋๋ฐฑ์ด ๋์์ด ๋์์ต๋๋ค!
F#์ ๋ํ ๋ชจ๋ ํผ๋๋ฐฑ๊ณผ Xaml ์ฑ์ ์ ์ฌ์ ์ธ ์ด์ ์ ๋ฃ๋ ๊ฒ์ ํ๋ฅญํ๊ณ ์ ์ตํ์ต๋๋ค. @kathyang - WinUI ํ์ ์ธํด ์ค ํ ๋ช - ์ด ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๊ณ F# ํ๊ณผ ์ด์ผ๊ธฐํ๊ณ ์์ผ๋ฉฐ ์ถ์ ๋ฌธ์ #740์์ ๊ทํ์ ์์ด๋์ด๋ฅผ ๋ฃ๊ณ ์ถ์ต๋๋ค.
๊ธฐ๋์น๋ฅผ ์ค์ ํ๊ธฐ ์ํด: ์ ์ธ์ด๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ฌด์์ด๋ ํ๋ค๋ฉด ์ด๊ธฐ WinUI 3.0 ๋ฆด๋ฆฌ์ค ์ดํ์ ํด์ผ ํฉ๋๋ค. ํ์ฌ ์ง์๋๋ ์ธ์ด๋ก ๋จผ์ 3.0์ ์๋์ํค๋ ค๋ฉด ํด์ผ ํ ์ผ์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋๋ค. WinUI๋ฅผ ๊ณต๊ฐํ ํ ์ปค๋ฎค๋ํฐ ๊ธฐ์ฌ๋ฅผ ์๋ฝํ ์๋ ์์ต๋๋ค.
.NET ๋ฐ ํ๋ซํผ ๊ฐ UI์ ๋ํ ๊ทํ์ ์๊ฒฌ์ ๋ฃ์ต๋๋ค. ์ด๊ฒ์ ๋ง์ ์ ์ฌ์ ์ธ ๊ธฐํ๊ฐ ์๋ ๋ณต์กํ ์ง์ญ์ ๋๋ค.
WinUI 3.0 ๋ฆด๋ฆฌ์ค๋ Windows ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์๋ฅผ ์ํ ํ๋ฅญํ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ง๋ง ํฅํ ๊ธฐํ์ ๋ํด ์๊ฐํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ Xamarin ํ์ ์ด๋ ฌํ ํฌ์ด๋ฉฐ ๊ทธ๋ค๊ณผ ์ฐ๋ฝํ๊ณ ์์ต๋๋ค.
์ผ๋ถ ์ฌ์ฉ์๋ Uno์ ๋ํด์๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ธ๊ธํ์ต๋๋ค. ์ฐ๋ฆฌ๋ nventive(Uno์ ์ ์์)๊ฐ ์ง๋ ๋ช ๋ ๋์ Build์์ ํฐ ์ญํ ์ ํ์ผ๋ฉฐ ์ฐ๋ฆฌ ํ์ ๊ธฐ์ ๋ฐ ์ฐ์ ์ ๋ํ ์ ๊ทผ ๋ฐฉ์์ ์ดํดํ๊ธฐ ์ํด ๊ทธ๋ค๊ณผ ๋ง์ ์๊ฐ์ ์ด์ผ๊ธฐํ์ต๋๋ค.
WebAssembly๋ ๋ํ ์ ์ ๋ ํฅ๋ฏธ๋กญ๊ณ ์ฐ๋ฆฌ์ ๋ ์ด๋์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด Microsoft๊ฐ ๊ณ์ ํฌ์ํ๊ณ ์๋ ์ํ์ ์ ๋ํ ๋ง์ ๊ฐ์ ์ฌํญ์ด ์๋ ํฅ๋ฏธ๋ก์ด ๊ณต๊ฐ์ด๋ผ๊ณ ์๊ฐํ๋ฉฐ Mono, Uno, Blazor ๋ฐ ๊ธฐํ ์ฌ๋๋ค์ด ํ๊ณ ์๋ ์์ ์ ์ฌ๋ํฉ๋๋ค.
@LucasHaines ๋ Build 2019์์ ๋ณด์ฌ์ค ์ ๋ ฅ ์ ํจ์ฑ ๊ฒ์ฌ ์์ ์ WinUI 3์ ์์ ํ ํตํฉํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ๋ค์์ ๋ํ ์ถ๊ฐ ํผ๋๋ฐฑ์ ์ํฉ๋๋ค.
Xaml์ ํ์ฑ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ UWP์์ WinUI 3.0์ผ๋ก ์ ํํ์ต๋๋ค. ์ด๋ ๋๋ถ๋ถ์ ์๋ก์ด ๊ธฐ๋ฅ์ด ๊ฐ๋ฐ์ ์์ํ๊ธฐ ์ ์ WinUI 3.0์ด ์ข ๋ ์์ ์ ์ด์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ด์ค๋ ๋ชจ๋ ์ ์์ ๊ฒํ ํ๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ค์ ๋ฐฉ๋ฌธํ ์ ์๋๋ก ํด๋น ์ ์์ needs-winui-3 ๋ ์ด๋ธ์ ์ง์ ํ๊ธฐ ์์ํ์ต๋๋ค.
WinUI 3 ์ฌ์ฉ์ ๋์์ด ๋๋ ์๋ก์ด ๊ธฐ๋ฅ ์ ์ ์ ๊ณ์
WPF ํจ๋ฆฌํฐ์ ๋ํ ํผ๋๋ฐฑ์ ๊ณต์ ํ๊ณ WinUI 3.0์ด ํ๋ถํ ๋ฐ์คํฌํฑ ๊ฐ๋ฐ์ ์ํ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ ํ๋ซํผ์์ ํ์ธํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๋ฅผ ์ํ ์ง์์ ์ธ ๋ ธ๋ ฅ์ด ๋ ๊ฒ์ ๋๋ค.
๋ฐฐ๊ฒฝ ์ ๋ณด์ ๊ฒฝ์ฐ UWP Xaml์ ์ผ๋ถ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ค์์ ํฌํจํ์ฌ ์ด์ Xaml ๊ธฐ๋ฅ์ ๋ํ ์ผ๋ถ ๋ณ๊ฒฝ์ด ํ์ํ์ต๋๋ค.
๊ฐ์ ๋ ์ค๋ ๋ฉ, ํ๋์จ์ด ๊ฐ์ ๋ฐ ๊ธฐํ ์ฌ๋ฌ ์ต์ ํ.
TLDR:
WinUI 3.0์๋ WPF์ ์๋ ๋ง์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ง๋ง WPF์๋ WinUI 3.0์ ์๋ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ฐ๋ฆฌ๋ WinUI Xaml ๋ฐ Composition์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ธฐ ์ํด ์ง์์ ์ผ๋ก ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฏ๋ก WinUI 3์์ ๋ณด๊ณ ์ถ์ ํน์ WPF ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ ์ ๋ฌธ์ ๋ฅผ @mdtauk๊ฐ ์์ํ ๋ฌธ์ ๋ฐ ๊ธฐ์กด ๋ฌธ์ /์ฝ๋ฉํธ์ ๋ํ ํฌํ.
๊ทํ์ ์ง์์ ์ธ ํผ๋๋ฐฑ์ ๋ฌด์์ ์ค์ ์ ๋์ง ์ฐ์ ์์๋ฅผ ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค!
WinUI 3.0์ ๋จ๊ฑฐ๋ฆฌ ๊ฒฝ์ฃผ๊ฐ ์๋๋ผ ๋ง๋ผํค์ด๋ฏ๋ก ๋ด๋ ์ ๊ณ์ ์ ๋ฐ์ดํธ๋ฅผ ์ฐพ์ผ์ญ์์ค.
@mdtauk , @MarkIngramUK , @galvesribeiro , @Mike-EEE, @TonyHenrique , @eklipse2k8 , @mrlacey ๋ฐ @weitzhandler , @jozefizso , @simonfergallahan , @reli-msft , @km ๊ฐ์ ์ฌ์คํ ๋๊ธ ์์ฑ์์๊ฒ ํน๋ณํ ๊ฐ์ฌ๋ฅผ ์ ํฉ๋๋ค. @ GeorgeS2019 @ ๋ง์ด์ด - pletinsky, zezba9000 @ @mfeingol, @bchavez, @Shidell, @KyleNanakdewa, Happypig375 @ @wbokkers, @meteorsnows, @ekral, @contextfree, @Pinox, @GeertvanHorrik, @shaggygi, @riverar, @ r7dev, @natemonster @ mfe-, @khoshroomahdi, @jkoritzinsky, @edgarsanchez, @charlesroddie @ 4creators, @wjk, @vitorgrs, @thomasclaudiushuber, @paulio @ niels9001, @lhak, @huoyaoyuan, @anthcool @ Suriman , @RyoukoKonpaku , @GiorgioG , @Felix-Dev , @dotMorten ๋ฐ ์ง๊ธ๊น์ง ๋ก๋๋งต์ ํผ๋๋ฐฑ์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค!
๋ค๋ฅธ ์ง๋ฌธ์ด ์์ผ๋ฉด ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.
์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๋ WinUI 3.0(Win32 + WinUI + C++)์ด ์ ๋ง ๊ธฐ๋๋ฉ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ค๋ ค์จ ํ๋ ์์ํฌ์ฒ๋ผ ๋๊ปด์ง๋๋ค! ๋ฆฝ GDI ๐
(Win32 ์ฑ ๋ชจ๋ธ) + (WinUI 3.0 UI) + (.NET ๋๋ C++ ์ธ์ด)
๋ฐ๋ผ์ ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก UWP UI์ด์ง๋ง ์ ํ์ ๊ฐ์ ์๋ช ์ฃผ๊ธฐ์ ์๋๋ฐ์ค๊ฐ ์์ต๋๊น? ๋ฐ์คํฌํ ์ฑ์ ํฅ๋ฏธ๋ก์ด ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ ๋ ์ด๊ฒ์ ์คํํ ๊ฒ์ ๋๋ค.
์ ๋ฐ์ดํธ์ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ WinUI 3.0์ ์ด๊ธฐ ๊ธฐ๋ฅ ์ธํธ๊ฐ ์ ๊ธฐ๊ณ WinUI 3.0์ ํฌํจ๋ ์ ์๋ ์๋ก์ด ์ ์ด ๋๋ ์ ์ด ๊ธฐ๋ฅ์ด ์ ์๋จ์ ๋ฐ๋ผ ๋ ๋ง์ ์ ๋ฐ์ดํธ๊ฐ ์ ๊ณต๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ ๊ทธ๋ฆฌ๊ณ ๋ฐ์คํฌํ์ WinUI๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ๊ทธ๋ฆฌ๊ณ UWP, WPF ๋ฐ Win32์ ๋ค๋ฅธ์ง ์๋ฐฉ ํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค.
์๋ง๋ Build!์์ ์ป์ ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ๊ณผ ํจ๊ป ํ๋ ์์ํฌ์ API์ ์กฐํฉ์ ํฌํจ๋ ํ๋ฅญํ ๋งคํธ๋ฆญ์ค์ผ ๊ฒ์ ๋๋ค.
์ ๋ง ๋๋จํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ ๊ฐ์ฌํฉ๋๋ค!
xplat ์น์
์ ํนํ Uno๊ฐ ๋ ์ด๋์ ์๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์์ต๋๋ค.
์ฐ๋ฆฌ์ ์ด์ ์ ์ฌ์ ํ โโWindows 10 ๋ฐ 8.1์ด์ง๋ง ์ผ๋ถ ์ฌ์ฉ์๋ ์ฌ์ ํ Win7์ ์ฌ์ฉ์ ๋ฐ ๊ณ ๊ฐ์ด ์๋ค๋ ํผ๋๋ฐฑ์ ๋ฃ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์ฅ๊ณผ ์ต์ ์ ํ๊ฐํ ๊ฒ์ ๋๋ค.
์ด UI ํ๋ ์์ํฌ์ ์ด์์ด ์ด์์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์๋ค๊ณ ๊ฐ์ ํ๋ฉด, ์ต์ํ UI ์ฝ์ด(๋ ๋๋ง/์ ๋ ฅ)๊ฐ .NET Core 3+๋ฅผ ์ง์ํ๋ ๋ชจ๋ Windows OS์์ ์๋ํ ์ ์์ ์ ๋๋ก ์ถฉ๋ถํฉ๋๋ค. Windows 7์๋ ์ด๋ค ์ ํ์ด ์์๊น์? ์ด๋ค? ์ฌ๋๋ค์ด ๋ฐ์คํฌํ์์ ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ๊ทธ๋ฅ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ, ๊ทธ๋ ์ง ์์ ํน์/ํ๋ซํผ ํน์ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ํต์ฌ UI ์์คํ ์ ์ผ๋ถ๊ฐ ๋์ง ์๋๋ก ํ๊ณ (Win10, Win8.1, Win7 Nugets ๋ฑ).
๋ํ HTML(์ฌํ๊ฒ๋ Xamarin์ ์๋)๋ก ํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ชจ๋ ์ฅ์น(Win32, Android, iOS ๋ฐ WASM)์์ ๋์ผํ ๋ชจ์๊ณผ ๋๋์ ๊ฐ์ง ํ๋ซํผ ๊ฐ XAML์ด ์์๋ค๋ฉด ์ฐ๋ฆฌ ํ์ฌ๋ ๋ช ๋ ์ ์ ๋ฐ์ด ๋ค์์ ๊ฒ์ ๋๋ค.
๋ํ ์ฌ๋ฌ๋ถ์ด ์ด๊ฒ์ "๋ง๋ผํค(ํ๋ฅญํ ๋ฒ์ง ๊ฒ์๋)"์ด๋ผ๊ณ ์๊ฐํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. XAML ๊ณต๊ฐ์์ ๋จํธํ๊ฐ ์ ์์๋ก ๋ชจ๋์๊ฒ ๋ ์ข๊ณ ๋ง์ ์ง๋ฆ๊ธธ์ ์ ํํ๋ฉด ์์ํ ๊ณณ์ผ๋ก ๋์๊ฐ ์ ์์ต๋๋ค. ;)
๋ฐ์คํฌํฑ์ WinUI๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ UWP, WPF ๋ฐ Win32์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ํ ๋ฌธ์๊ฐ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ๋ฐ์ ํ๋ ๋๋ก ๋ ๋ง์ ๊ฒ์ ๊ณต์ ํ ๊ฒ์ ๋๋ค!
์ด UI ํ๋ ์์ํฌ์ ์ด์์ด ์ด์์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์๋ค๊ณ ๊ฐ์ ํ๋ฉด, ์ต์ํ UI ์ฝ์ด(๋ ๋๋ง/์ ๋ ฅ)๊ฐ .NET Core 3+๋ฅผ ์ง์ํ๋ ๋ชจ๋ Windows OS์์ ์๋ํ ์ ์์ ์ ๋๋ก ์ถฉ๋ถํฉ๋๋ค. Windows 7์๋ ์ด๋ค ์ ํ์ด ์์๊น์? ์ด๋ค?
@zezba9000 WinUI๋ .NET์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ WinUI์ ํจ๊ป .NET Core๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. OS API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๊ธฐ๋ณธ ํ๋ ์์ํฌ์ด๋ฉฐ Win8/Win10์ ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์์กดํฉ๋๋ค. Win7 - ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํน์ ์ปจํธ๋กค๊ณผ ๊ฐ์ ์์ ์์ค์ ์ถ๊ฐ ๊ธฐ๋ฅ๋ฟ๋ง ์๋๋ผ ํต์ฌ ๊ธฐ๋ฅ์ ์ํ ๊ฒ์ ๋๋ค.
๋ฐ์คํฌํฑ์ WinUI๊ฐ ์๋ํ๋ ๋ฐฉ์๊ณผ UWP, WPF ๋ฐ Win32์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ํ ๋ฌธ์๊ฐ ๋งค์ฐ ์ ์ฉํ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ๋ฐ์ ํ๋ ๋๋ก ๋ ๋ง์ ๊ฒ์ ๊ณต์ ํ ๊ฒ์ ๋๋ค!
์ด UI ํ๋ ์์ํฌ์ ์ด์์ด ์ด์์ฑ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์๋ค๊ณ ๊ฐ์ ํ๋ฉด, ์ต์ํ UI ์ฝ์ด(๋ ๋๋ง/์ ๋ ฅ)๊ฐ .NET Core 3+๋ฅผ ์ง์ํ๋ ๋ชจ๋ Windows OS์์ ์๋ํ ์ ์์ ์ ๋๋ก ์ถฉ๋ถํฉ๋๋ค. Windows 7์๋ ์ด๋ค ์ ํ์ด ์์๊น์? ์ด๋ค?
@zezba9000 WinUI๋ .NET์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ WinUI์ ํจ๊ป .NET Core๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์ต๋๋ค. OS API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๊ธฐ๋ณธ ํ๋ ์์ํฌ์ด๋ฉฐ Win8/Win10์ ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์์กดํฉ๋๋ค. Win7 - ๊ฒฝ์ฐ์ ๋ฐ๋ผ ํน์ ์ปจํธ๋กค๊ณผ ๊ฐ์ ์์ ์์ค์ ์ถ๊ฐ ๊ธฐ๋ฅ๋ฟ๋ง ์๋๋ผ ํต์ฌ ๊ธฐ๋ฅ์ ์ํ ๊ฒ์ ๋๋ค.
Windows 7 ํธํ์ฑ์ ์ํด - ํ์ํ ๋ชจ๋ OS ์์ค API์ ๋ํ ์ผ์ข ์ ๋์ฒด Shim๋ฟ๋ง ์๋๋ผ XAML์ ๋ํ ์์ฒด ํธํ ๋ ๋๋ฌ๋ฅผ ๊ตฌ์ถํ๋ ค๋ฉด ์ผ๋ถ ํ์ฌ๊ฐ ํ์ํฉ๋๋ค.
ํ์ฌ๋ก์๋ ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์ ์ ์์ต๋๋ค. WinUI ๋นํธ๊ฐ OS์์ ์ ๊ฑฐ๋๋ฉด ๋ค๋ฅธ ํ๋ซํผ์์ ์ผ์ข ์ ํธํ์ฑ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์คํ ์์ค ํ๋ก์ ํธ์ ์ฝ์ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ ๋๋ฌ๊ฐ ์๋ Xamarin, Uno ๋๋ .Net Core๋ฅผ ์๊ฐํด ๋ณด์ธ์.
OS API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ๊ธฐ๋ณธ ํ๋ ์์ํฌ์ด๋ฉฐ Win7์๋ ์๋ Win8/Win10์ ์๋ก์ด ๊ธฐ๋ฅ์ ์์กดํฉ๋๋ค. ์ผ๋ถ ๊ฒฝ์ฐ ํต์ฌ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ
๋ด ์๊ฐ์ "ํต์ฌ ๊ธฐ๋ฅ"์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ฌผ๋ก ๋ ๋๋ง ๋ฐ ์ ๋ ฅ ์ธ์ OS ํน์ฑ์ ์์กดํ๋ ๊ฒ์ด ์๋๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ์๋ ๋๊ตฌ๋ ํ์ฅํ ์ ์๋ ์ถ์ํ ๊ณ์ธต์ด ๋ฉ๋๋ค. ๊ธฐ๋ณธ ์์ค์์ ์ด๋ก ์ ์ฌ์ฉ์ ์ง์ ์ํํธ์จ์ด ๋ ๋๋ฌ๋ก UI๋ฅผ ๋ ๋๋งํ๊ณ ์ํ๋ ๊ฒฝ์ฐ ๊ฐ์ ์ปค์๋ก ์ฌ์ฉ์ ์ง์ XInput ๋ฐฑ์๋๋ก ์ ๋ ฅ์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ์ข ๋ฅ์ ๋ชจ๋ํ๋ฅผ ํ ์ ์๋ค๋ฉด ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ํ ์ ์๊ณ ํ๋ซํผ ์ง์์ ํ์ฅํ๋ ๊ฒ์ด ๋งค์ฐ ์ฌ์์ง๋๋ค(๊ฒ์์์ ์ํ๋๋ ๊ฒ์ฒ๋ผ). ๋น์ ์ ์ด ์ง์ญ์์ ์กฐ๊ธ ๋ ๋ง์ ์๊ฐ์ ๋ณด๋ด๊ณ ๊ธธ์ ๋ฐ๋ผ๊ฐ๋ฉด ๋ชจ๋ ๊ฒ์ด ํจ์ฌ ๋ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. WPF XAML์ด ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๋์์ธ๋์๋ค๋ฉด UWP ์ฑ์์ ๊ฐ์ ธ์์ ์ฌ์ฉํ ์ ์์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ธฐ์ ๋ถ์ฑ๋ ๋์๋ ๋ฃจํ๊ฐ ๋ ๊ฒ์ ๋๋ค.
ํธ๋ ์ด ์์ด์ฝ ์ง์ ๋ฑ์ "WinUI Windows ๊ธฐ๋ณธ ๊ธฐ๋ฅ(Win7-Win10)" ํจํค์ง์ ํฌํจ๋ ์ ์์ต๋๋ค. ํธ์ ์๋ฆผ๊ณผ ๊ฐ์ ๊ฒ์ "WinUI Windows ํ์ฅ ๊ธฐ๋ฅ(Win8-Win10)" ํจํค์ง์ ํฌํจ๋ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@mdtauk , @zezba9000 ๊ทธ๊ฒ์ ๋ชจ๋ ์ด๋ก ์ ์ผ๋ก ๊ฐ๋ฅํ๋ฉฐ ํ์ ๋ง์ ํ๋ซํผ ์ถ์ํ ์ ๋ฌธ ์ง์์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๊ทธ๋ ๋ฏ์ด ๋น์ฉ, ์ผ์ ๋ฐ ์์๋๋ ์ด์ ์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค ๐
๊ฐ๋ฐ ๋ฐ ํ ์คํธ ๋น์ฉ(์: ๋ชจ๋ ๊ฒ์ด ์ค๋๋ ๋ณด์กฐ ๊ธฐ์ ๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ ์ฌ์ ์ผ๋ก ๋ช ํํ์ง ์์ ์์ญ์ผ๋ก ํ์ฅ๋ ์ ์์) ์ธ์๋ ์ฅ๊ธฐ๊ฐ์ ๊ฑธ์น ์ง์ ๋น์ฉ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
2020+์์ Win7์ ์๋ก์ด ๊ณ ๊ฐ์ด ์๊ธธ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น? ํผ๋๋ฐฑ๊ณผ ๋ช ํํ ์ฌ์ฉ ์ฌ๋ก๋ ์ฐ์ ์์๋ฅผ ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๊ฐ๋ฐ ๋ฐ ํ ์คํธ ๋น์ฉ(์: ๋ชจ๋ ๊ฒ์ด ์ค๋๋ ๋ณด์กฐ ๊ธฐ์ ๊ณผ ํจ๊ป ์๋ํ๋๋ก ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ์ ์ฌ์ ์ผ๋ก ๋ช ํํ์ง ์์ ์์ญ์ผ๋ก ํ์ฅ๋ ์ ์์) ์ธ์๋ ์ฅ๊ธฐ๊ฐ์ ๊ฑธ์น ์ง์ ๋น์ฉ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
2020+์์ Win7์ ์๋ก์ด ๊ณ ๊ฐ์ด ์๊ธธ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น? ํผ๋๋ฐฑ๊ณผ ๋ช ํํ ์ฌ์ฉ ์ฌ๋ก๋ ์ฐ์ ์์๋ฅผ ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
@jesbis WinUI 3.0(Linux, Android, iOS, iPadOS ๋ฐ MacOS)์ฉ Win7์ ํธํ์ฑ์ ์ถ๊ฐํ๋ ๋ฐ ๋ง์ ์ด์ ์ด ์์ง๋ ์์ง๋ง ๊ธฐ๋ณธ UI ํ๋ ์์ํฌ์ ์์กดํ์ง ์๋ ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๋ฐ๋ ์ด์ ์ด ์์ ์ ์์ต๋๋ค.
@mdtauk
@jesbis WinUI 3.0(Linux, Android, iOS, iPadOS ๋ฐ MacOS)์ฉ Win7์ ํธํ์ฑ์ ์ถ๊ฐํ๋ ๋ฐ ๋ง์ ์ด์ ์ด ์์ง๋ ์์ง๋ง ํฌ๋ก์ค ํ๋ซํผ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๋ฐ๋ ์ด์ ์ด ์์ ์ ์์ต๋๋ค.
๋์ํฉ๋๋ค. ์น ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ฉด Linux๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค.
2020+์์ Win7์ ์๋ก์ด ๊ณ ๊ฐ์ด ์๊ธธ ๊ฒ์ผ๋ก ์์ํ์ญ๋๊น? ํผ๋๋ฐฑ๊ณผ ๋ช ํํ ์ฌ์ฉ ์ฌ๋ก๋ ์ฐ์ ์์๋ฅผ ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์๋์ ์ฐ๋ฆฌ ํ์ฌ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋๋ ๋ชจ๋ ๋ฐ๋ณต์์ XAML์ด ์ด๋ ค์์ ๊ฒช๋ ๊ฒ์ ๋ณธ ์์ญ์์ ๋ ๋ง์ ๋์์ธ ์ธ์๋ฅผ ์ ๊ณตํ์ง๋ง(๋ด ๊ด์ ์์) MS๊ฐ ๊ฑฐ๊ธฐ์์ ์๊ฐ์ ๋ณด๋ด๊ณ ์ถ์ง ์์ ์ด์ ๋ฅผ ์์ ํ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ WinUI๊ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ์ํ ๊ฒฝ์ฐ ์ด ์์ ์ ์ํํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด(์ด๋ ๋ด๊ฐ ์์์ฐจ๋ฆฐ ๊ฒฝํฅ์ด ์์) ์ง๊ธ WPF์ ๊ฒฝ์ฐ์ ๊ฐ์ด Windows ์ข ์์ฑ์ ํ ๋ผ ๊ตฌ๋ฉ์ ๋น ์ง์ง ์๊ณ ์๋ ๋ฉ์ง ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ ํ์ฌ๊ฐ ๋ณด๊ณ ์ถ์ดํ๋ ๊ฒ์ Android ๋ฐ WASM ์ง์์ด UNO(3๋ ์ )๋ณด๋ค ์กฐ๊ธ ๋ ๊ณต์์ ์ด๋ผ๋ ์ ์ ๋ช ํํ ํ๊ธฐ ์ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก Win32 API๊ฐ ํฌ๊ฒ ํ์ํ ์์คํ ์ค์ ๋ฐ ๋ก์ปฌ ์ปดํจํฐ ๋ชจ์์ ์ํ๋ฅผ ์ ์ดํ๋ โโ๊ด๋ฆฌ ์ํํธ์จ์ด๋ฅผ ๋ง๋ญ๋๋ค(UWP๋ ์ฐ๋ฆฌ์๊ฒ ๊ฒฐ์ฝ ์๋ํ์ง ์์ง๋ง HTML ๋น๋ ์์คํ ๊ณผ ๋ฌ๋ฆฌ ์ปดํ์ผ ์๊ฐ ์ค๋ฅ ๋๋ฌธ์ UI๋ฅผ ์ข์ํฉ๋๋ค). ํด๋ผ์ด์ธํธ + ์ฐ๋ฆฌ๋ ๊ท ์ผํ ๊ฒฝํ๊ณผ ๋๋์ ๊ฐ์ง Win32 + Android + ๋ธ๋ผ์ฐ์ UI ๊ฒฝํ์ด ํ์ํฉ๋๋ค. HTML์ ๊ธฐ๋ณธ ์ฝ๋ ๊ธฐ๋ฐ์ด C#์ ์๊ธฐ ๋๋ฌธ์ ํ์ํ์ง ์์ ๋ถํ์ํ ์ถ์ํ์ ๋ณต์ก์ฑ์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ํฐ ๊ณจ์นซ๊ฑฐ๋ฆฌ์ ๋๋ค.
๋์ค์ ๋ ๋์ ํผ๋๋ฐฑ์ ๋ฐ๋๋๋ค.
๋ํ WASM์ ๋ค๋ฅธ ํ๋ซํผ์ ๋นํด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฐ์ฅ ํฐ ๋ชฉํ์
๋๋ค. ์ง๊ธ๊น์ง!!
๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ์๋๋ก์ด๋ / iOS / ๋ชจ๋ฐ์ผ ๋ฌธ์ ๋ฟ๋ง ์๋๋ผ ์น ํฌํธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
ํผ๋๋ฐฑ์ ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
Desktop + WASM์ ๊ธ์ด ๋ ๊ฒ์ ๋๋ค!
์์ฐ, ์ธ์ณ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค, @jesbis! ์ ํ ์์์น ๋ชปํ ์ผ์ด๋ฉฐ ๋๋จํ ๊ฐ์ฌํ๊ณ ์กด๊ฒฝํฉ๋๋ค. ๐
Windows 7์ ๋ํ ๋ ผ์๋ ์๋นํ ๋ ธ๋ ฅ(๋น์ฉ์ ๋งํ ๊ฒ๋ ์๊ณ )์ด WinUI 3.0์ ์๋นํ ์ง์ฐ์ ์ผ๊ธฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ์ฐ๋งํฉ๋๋ค. Windows 7์ 1์์ ๋จ์ข ๋๋ฉฐ ๋ชจ๋ ๊ณ ๊ฐ์๊ฒ Windows 10์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ ๊ณ ๊ฐ์ ์ฌ๊ธฐ์์ ๋ค๋ฅธ ๊ณ ๊ฐ๊ณผ ์ผ์นํ์ง ์์ ์ ์์ง๋ง Windows 8.1๋ ์ฐ๋ฆฌ์๊ฒ ๊ด์ฌ ์๋ ํ๋ซํผ์ด ์๋๋๋ค.
์ ๋ฐ์ดํธ์ ์๋นํ ๋ง์กฑํฉ๋๋ค. WinUI์ ๋ค๊ฐ์ค๋ ๋ชฉํ๋ ๋งค์ฐ ๋ฐ๊ณ ์ ๋งํด ๋ณด์ ๋๋ค! Xplat ๋ถ๋ถ๋ ์์ํ์ง ๋ชปํ๋ ๋ถ๋ถ์ธ๋ฐ ๊ต์ฅํ ๋ฐ๊ฐ์์. ๊ฐ์ ์ฌํญ๊ณผ WinUI์ ๋ํ ์ ์ฉํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
ํฌ๋ช ์ฑ์ ์ํด ํ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ์ ๋ฌด์ฉ ์ํํธ์จ์ด์ ์ค์์ฑ์ ์ธ๊ธํ๊ณ ์ถ์ต๋๋ค.
๋๋ Lightswitch ๋๊ตฌ๋ก ํ๋์ ์ผํ๊ณ ๊ฑด์ค ์๊ฐ์์ ์๋นํ ์ด๋์ ์ป์์ต๋๋ค. ์ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ LOB ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค์ฐ ์ ๋งํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฏธ๊ตญ์์ ํนํ ์ ์์ด ๋งค์ฐ ์ฌ๊ฐํ๊ฒ ๋ฐ์๋ค์ฌ์ง๋ฉด์ ์ ํ์ด ์ข ๋ฃ๋์์ต๋๋ค.
๋ค์ ๋ฐฐ๋ฌ์ ์ํด INotifyDataErrorInfo๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ WinUI์ 3.x ์ด์๊ณผ ๊ฐ์ ํฅํ ์ ๊ณต์ ์ํ RAD ๋ฆฌ์์ค๊ฐ ์๋ค๋ฉด ํ๋ฅญํ ๊ฒ์ ๋๋ค.
๊ฐ์ฌํฉ๋๋ค ํ, ์น ์ด์ ๋ธ๋ฆฌ์์ ์ฐํ์ ์ฐ๋ ๋ ์ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์ ํ๋ฃจ, 1๋ , 10๋ ์ ๋ง๋ค์ด ์ค ๊ฒ์ด๋ฉฐ MS๋ฅผ ๊ธฐ์ ์คํ์ ๋งจ ์์ ์ฌ๋ ค๋์ ๊ฒ์ ๋๋ค. WinUI + Xamarin + WASM + .NET => ์์ํจ!!
@jebis ์ด ์ ๋ฐ์ดํธ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ข์ ์์ ํ :+1:. ์์ง ์ด๊ธฐ ๋จ๊ณ๋ผ๋ ๊ฒ์ ์ดํดํ๊ณ ์์ต๋๋ค. ์ธ์ WinUI 3.0 ์ด์ ํ๊ฐ ์์ฑ๋๊ณ ์ด์ ๋ํด ํ๊ทธ๊ฐ ์ง์ ๋ ๋ฌธ์ ๊ฐ ๋ํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
์ธ์ WinUI 3.0 ์ด์ ํ๊ฐ ์์ฑ๋๊ณ ์ด์ ๋ํด ํ๊ทธ๊ฐ ์ง์ ๋ ๋ฌธ์ ๊ฐ ํ์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
@shaggygi ์ข์ ์ง๋ฌธ์ ๋๋ค! ๋ฐฉ๊ธ ๋ง๋ค์์ต๋๋ค.
๋ฉ์ง๋ค ์๋ค์!
๋น ๋ฅธ ์ง๋ฌธ: Windows.UI.Composition์ Microsoft.UI.Composition์ผ๋ก ์ด๋ํ๋ฉด 2.2 ๋๋ 3.0์ ๋ ๊ฐ๊น์ต๋๊น?
๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์์ํ ์ ์๋ ๊ธฐ๊ฐ์ 3.0์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด 2-3๊ฐ์ ๋๋ ๊ทธ ์ด์์ด ๋ ๊ฒ์
๋๊น?
์์ผ๋ก ์ฐ๋์ ๋ํด ์ด์ผ๊ธฐํ ๋("์ฐ๋ง๊น์ง"์์์ ๊ฐ์ด) ๋ฌ๋ ฅ ์ฐ๋์ [Microsoft] ํ๊ณ ์ฐ๋์ ๋ํด ๋ช
ํํ๊ฒ ๋ง์ํด ์ฃผ์ญ์์ค.
์ด๊ฒ์ด ๋ช
์์ ์ผ๋ก ์ธ๊ธ๋์ง ์์ ๊ฒฝ์ฐ ํผ๋์ ์ผ์ผํค๊ธฐ ์ฝ๊ณ ์ ๋ ์ด๊ฒ์ด ์ฌ๋๋ค์ด ์๋ํ ๊ฒ๋ณด๋ค 6๊ฐ์ ๋ ๋นจ๋ฆฌ ์ฌ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๊ฒ ํ ๊ฒฝ์ฐ๋ฅผ ์๊ณ ์์ต๋๋ค.
Windows.UI.Composition์ Microsoft.UI.Composition์ผ๋ก ์ด๋ํ๋ฉด 2.2 ๋๋ 3.0์ ๋ ๊ฐ๊น์ต๋๊น?
@jtorjo ์ด๊ฒ์ 3.0(์ต์)์ ๋๋ค. 3.0์ ์ฒซ ๋ฒ์งธ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์ ์ด๊ธฐ ๋น๋๋ฅผ ํฌํจํ๊ธฐ๋ฅผ ํฌ๋งํ์ง๋ง ์์ง 100% ๋ณด์ฅ๋์ง๋ ์์ต๋๋ค.
์์ผ๋ก ์ฐ๋์ ๋ํด ์ด์ผ๊ธฐํ ๋("์ฐ๋ง๊น์ง"์์์ ๊ฐ์ด) ๋ฌ๋ ฅ ์ฐ๋์ [Microsoft] ํ๊ณ ์ฐ๋์ ๋ํด ๋ช ํํ๊ฒ ๋ง์ํด ์ฃผ์ญ์์ค.
@mrlacey ๊ฐ์ฌํฉ๋๋ค, ๋ช ์ฌํ๊ฒ ์ต๋๋ค! ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ ์ง๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฌ๋ ฅ ์๊ฐ์ ๋๋ค.
@jesbis ์ข ์ํ๊น ๋ค์. ๊ทธ๋์ 3.0์ Microsoft.UI.Composition์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ๋ง์์ด์ ๊ฐ์?
@jtorjo
3.0 ์
์ข ์ข ๋ง์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด .NET Core 3์ Preview 6์ ์์ต๋๋ค.
์ฐ๋ฆฌ์ ๊ณํ์ 3.0์ ๊ตฌ์ฑ API๋ฅผ ํฌํจํ๋ ๊ฒ์ ๋๋ค.
Xaml ํ๋ ์์ํฌ ๋ถ๋ถ์ ๊ตฌ์ฑ ๋ถ๋ถ๋ณด๋ค ๋จผ์ ์คํ ์์ค๊ฐ ๋ ๊ฒ์ ๋๋ค.
@jebis ๊ฐ์ฌํฉ๋๋ค, ์ข์ ์๋ฆฌ์ ๋๋ค!
ํ์์ ์ธ ๋ก๋๋งต, ์๊ณ ํ์ จ์ต๋๋ค!
์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๋ ํฌ๋ช ๋๋ฅผ ์ข์ํ๊ณ WinUI 3.0์ ์ ๋ง ๊ธฐ๋ํฉ๋๋ค. ๋์๊ฒ WinUI 3.0์ WPF๊ฐ 2006๋ ์ ๋์ ๋ ์ดํ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๊ฒ์ ๋๋ค.
๋ํ ์ฌ์ ํ Windows 7์ ์คํํ๋ ๊ณ ๊ฐ์ด ์์ง๋ง Windows 10 ์ง์์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ฉฐ Win7 ์ง์์ ์ํด ์๊ฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์๋นํ์ง ์์ ๊ฒ์ ๋๋ค. ์ ๊ฐ ๊ทผ๋ฌดํ๋ ๋๋ถ๋ถ์ ํ์ฌ๋ 10์ผ๋ก ์ ํํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ 2020๋ ๋ง์๋ ์ฌ์ ํ Windows 7์ ์ฌ์ฉํ๋ ์ ์ผํ ํ์ฌ๊ฐ ์ ์น๊ณผ ์์ฌ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฐ ๋์๊ฒ Windows ์ฑ์ ์์ฑํด ๋ฌ๋ผ๊ณ ์์ฒญํ๋ค๋ฉด ๋๋ ๊ทธ์ PC๋ฅผ Windows 10์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๊ฒ์ ๋๋ค. :-)
ํฅํ WASM ์ง์์ ๋๋์ต๋๋ค.
@jesbis ์ ์ฐ๋ฆฌ ํ์ด ์ฌ๊ธฐ์ ๊ธ์ ์ฐ๊ณ ์ฐธ์ฌํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๋ ์์ ์ด์ผ๊ธฐ๋ ํฅ๋ถ๋ ๋น์ฐ์ ์ผ๊ฐ์ ๋ถ๊ณผํฉ๋๋ค. :-)
์ด์ ๋ ์ผ์์ ์ด๋ฆฐ ๊ฐ๋ฐ์ ํ์์์ ์ผ๋ถ .NET ๊ฐ๋ฐ์์ ์ฑํ ์ ํ๊ณ WinUI 3.0์ ๋ํด ์ด์ผ๊ธฐํ์ง๋ง ๊ทธ๋ค์ ๊ทธ๊ฒ์ ๋ํด ๋ชฐ๋์ต๋๋ค. ๋๋ ๊ทธ๋ค์๊ฒ ๋ก๋๋งต์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ๊ทธ๋ค์ ๋งํ๋ค.
"์, ๋๋๋ค์."
๊ทธ๋ฃน์ ํ ์๋ ๊ฐ ๋์๊ฒ ๋ฌผ์๋ค.
"๊ทธ๋ฐ๋ฐ ์ด ๋ชจ๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ๋งํด๋ ๋ฉ๋๊น?"
๋๋ ๊ทธ๋ ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ณด์๊ณ , ๊ทธ๋ฆฌ๊ณ ๋์ ๋ค์ ๋ง์ ํ ๊ธฐํ๋ฅผ ์ก์์ต๋๋ค.
await Task.Delay(3000);
๋ด๊ฐ ๋งํ๊ธฐ ์ ์
"๋ค! GitHub์์ ์ด ๋ชจ๋ ๊ฒ์ ์ฝ์ ์ ์์ต๋๋ค."
@jebis ์ ๊ด๋ จ๋ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. Windows ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ์ ์ข์ ์๊ฐ โค๏ธ
Word์ ๊ฐ์ ์์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด WinUI์ ๊ณ์ธต์ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ํฌ๋งํ๊ณ ๊ฐ๋ฐ์๊ฐ "์ด๋ด, WinUI๋ ์ฅ๋๊ฐ์ด ์๋๋ผ ๋น์ฆ๋์ค๋ฅผ ์คํํ ์ ์๋ ์ค์ ์ ํ์
๋๋ค"๋ผ๋ ๊ฒ์ ๋ณด๊ณ ๊ธฐ๋ปํ ๊ฒ์
๋๋ค.
๊ทธ๋ค์ด ์ด๋ฏธ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ํฐ ์๋ฆฌ๋ก ๋งํ์ญ์์ค.
WPF, Win32 ๋ฐ WinUI ๋ฐ์คํฌํ์ฉ ์ํฌ๋ฆด.
์ ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ํ์ฑ Windows ์ ์ฑ ์์๋ง ์ํฌ๋ฆด์ ์ฌ๊ณ ํ์ญ์์ค.
์, ๋ชจ๋ํฐ๊ฐ 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ ํ๋์ ์ฐฝ์์ ๋ ๋๋ง๋ฉ๋๋ค. ์ ์ด๋ ์ฌ๋ฌ ๋ชจ๋ํฐ์์ ์ ๋๋ก ์๋ํด์ผํฉ๋๋ค....
UWP ์ฑ์์ ์ฌ์ฉํ ์ ์๋ ๋ ๊ฐ์ง UI ์ปจํธ๋กค ์งํฉ์ด ์๋ ๊ฐ๋ฐ ๊ฒฝํ์ ์๋ฏธ์ ๋ํด ์๊ฐํ๊ณ ์์์ต๋๋ค. WinUI ์ปจํธ๋กค๊ณผ ๋ ๊ฑฐ์ UI ์ปจํธ๋กค์ ๋ชจ๋ ์ก์ธ์คํ ์ ์์ ๋ C# ์ฝ๋ ์จ๊น์์ IntelliSense๋ ํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๊ตฌํ๋ฏ๋ก Alt + Enter ๋์ using
ํ๊ณ ๊ณ์ ์งํํ๋ ๋์ ์ปจํธ๋กค์ ๊ฐ์ ธ์์ผ ํ๋ ๋ค์์คํ์ด์ค๋ฅผ ์ ํํฉ๋๋ค. ์ด๋ป๊ฒ ๋ ์ด๊ฒ์ ํผํ ์ ์์ต๋๊น?
WinUI3๊ฐ ๊ฐ๋ฐ์์ฉ์ผ๋ก ๋์ค๋ฉด Windows 10 SDK๋ ์ง์๋๋ SDK๊ฐ ์ค์น๋ ์ํ์์ ์ด๋ฆฌ๋ ํ๋ก์ ํธ์ ๋ค์์คํ์ด์ค ๋ณ๊ฒฝ ์ ์ ์ ๊ณ ๋ คํด์ผ
WPF, Win32 ๋ฐ WinUI ๋ฐ์คํฌํ์ฉ ์ํฌ๋ฆด.
๋ด๊ฐ ๋จผ์ ๋ณด๊ณ ์ถ์ ๊ฒ์ Xaml Islands๋ฅผ ์ถฉ๋ถํ ์ฑ์์ํค๋ MS๋ก, ์๋ฅผ ๋ค์ด ์ ๋ชฉ ํ์์ค์ ์ํฌ๋ฆด์ WinUI ๊ธฐ๋ฐ์ UWP๊ฐ ์๋ ํ๋ก์ ํธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค( ์ด ๊ฒ์๋ฌผ์ ๋ง์ง๋ง ๋จ๋ฝ ์ฐธ์กฐ). @marb2000 ์ ์๋ง๋ ์ด๊ฒ์ ๋ํด ์ง๋ฌธํ ์ฌ๋์ผ ๊ฒ์ ๋๋ค.
@MartinZikmund ์ฐ๋ฆฌ๋ ์ด ์๋๋ฆฌ์ค๋ฅผ ํผํ๊ณ ์ถ์ต๋๋ค. WinUI 3์ ์ฌ์ฉํ ๋๋ ํจํค์ง์ ์ปจํธ๋กค์๋ง ์ก์ธ์คํ ์ ์์ด์ผ ํฉ๋๋ค. ์ต์ ์ ๊ฐ์ฅ ํฐ ๋ณํ๋ก ํ์ํ ๋ชจ๋ ๊ฒ์ ๊ฐ์ถ๊ณ ์๋ค๋ ์๊ฐ์ ๋๋ค.
@MartinZikmund
@LucasHaines
ํ ๊ฐ์ง ์์ ์ฌํญ์ ๋น๋์์ Windows.UI.Xaml.*
WinMD ์ฐธ์กฐ๋ฅผ ์ ์ธํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด์ ๋น๋ ๋์์ ํตํฉ WinMD(์ผ๋ช
)๋ง ์ฐธ์กฐํฉ๋๋ค. Windows.winmd
, ๊ฐ๋ณ WinMD๋ ์ฐธ์กฐํ๋๋ก ๋์์ ์ต์
์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ๋น๋ ์ค์ธ ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ฐธ์กฐ๋ฅผ ํฌํจํ๊ฑฐ๋ ์ ์ธํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด .NET dll
์ฒ๋ผ ๋์ํ๊ธฐ ๋๋ฌธ์ ๋ค์์คํ์ด์ค๋ฅผ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ์์คํ
์ ๊ณต ๋ฒ์ ์ด ์๋ ํจํค์ง ๋ด๋ถ์ ์ด์
๋ธ๋ฆฌ ๋ฆฌ๋๋ ์
์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๋ฐฉ๋ฒ์ด .NET Framework์ฉ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง UAP์ ๊ฒฝ์ฐ ์ด๋ฌํ ์ข
๋ฅ์ ์๋๋ฆฌ์ค์ ๋ํ ์๋ฃจ์
์ด ์์ด์ผ ํฉ๋๋ค. msix/appx
๋งค๋ํ์คํธ์ FrameworkDependency๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ํ ์ ์์ต๋๋ค ์ฐ๋ฆฌ๋ ํจ๊ป ์๋ก์ด WinUI์ ๊ณต๊ธํ๊ธฐ ์ํด ๊ทธ๊ฒ์ ์ฌ์ฉํ ์์๋ Windows.*
๋ณด๋ค๋ ๋ค์ ์คํ์ด์ค Microsoft.*
๊ฒ๋ค.
๊ฐ๋ฐ์ ์ธก์์๋ ์ฝ๋๊ฐ ์๋ ์ฐธ์กฐ ๋ง ๋ณ๊ฒฝํ๋ฏ๋ก ์ฑ์ ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐ ์ด๋ ค์์ด ๋ํ ๊ฒ์ ๋๋ค!
๋ค์์คํ์ด์ค๋ฅผ ์ ํ ๋ณ๊ฒฝํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค!
ํํ:
์ฝ๋๋ฅผ ์๋ค๋ก ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
๋ก์ปฌ WinUI ์ฝ๋๊ฐ ์์ ํ๋๋ฉด Windows ํ๋ซํผ์ผ๋ก ๋ค์ ๋ณํฉํ์ฌ ๋ชจ๋ ์ Windows ๋ฆด๋ฆฌ์ค์์ ์์คํ ์ฑ๊ณผ LOB ์ฑ์ด ์๋ก์ด ๊ฐ์ ์ฌํญ์ ํ์ฉํ ์ ์์ต๋๋ค.
ํํธ์ผ๋ก๋ .NET Framework์ ๊ฐ์ด ํธํ์ฑ์ด ๋์ ๋งค์ฐ ์์ ์ ์ธ ์์คํ ํ๋ ์์ํฌ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ชฝ์ .NET Core์ ๊ฐ์ผ๋ฉฐ ๋ ๋น ๋ฅธ ์๋๋ก ๋ณ๊ฒฝ๋๋ฉฐ ๋ ๊ฐ์ง์ ๋ชจ๋ ์ด์ ์ด ์๊ณ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ต์ฐจ ํ๋ซํผ ๋ค์ดํฐ๋ธ ์ฑ์ผ๋ก ๋ํ๋ Blazor + (๋น HTML) UI์ ๋ํ Steve Sanderson์ ๋ฉ์ง ํ๋ ์ ํ ์ด์ ์ ๋ฐฉ๊ธ ๋ณด์์ต๋๋ค. ์ฝ 52๋ถ ๋ถ๋์ ์์์ ๋๋ค. UWP, WinUI ๋ฐ C# ํฌ์ ํ์ ๋ณด๊ธฐ์ ๋๋ค. ๋ธ๋ ์ด์ ์ง์ฌ ๊ฐ๋!!!
์ด ํ ๋ก ์์ ๋ด๊ฐ ์ค์ํ๋ค๊ณ ์๊ฐํ๋ ํ ๊ฐ์ง ์์ด๋ฒ๋ฆฐ ๋ง์...
WinUI 3.0 ์์ฒด์ ์ฑ๋ฅ ํฅ์์ด ์์ต๋๊น? XAML ๋ ๋๋ง ์์ง์ด ๋ฐฉ๊ธ ๋ถ๋ฆฌ๋์๊ฑฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๊น? XAML ์ปจํธ๋กค์ ์ฃผ๋ก ์ปดํฌ์ง์
์ ์ฌ์ฉํ๋ฏ๋ก DirectUI์ ๊ฐ์ ์คํ์ค๋ ๋ ๋ฐ dwm ๊ตฌ๋์ ์ฌ์ฉํฉ๋๊น?
์ผ๋ถ ์ปจํธ๋กค ์ฑ๋ฅ ๋ฐ RAM ์ฌ์ฉ๋์ ListView/GridView = ItemsControl๊ณผ ๊ฐ์ด ํจ์ฌ ๋ ์ข์ ์ ์์ต๋๋ค.
์ด๊ฒ์ Windows ์์ฒด์์ ๋ณผ ์ ์์ต๋๋ค. Windows 8 ์์ ๋ฉ๋ด(DirectUI)๋ Windows 10 XAML ์์ ๋ฉ๋ด๋ณด๋ค ํจ์ฌ ์ ์ฐํฉ๋๋ค.
Groove Albums ํ์ด์ง์ ๊ฐ์ด ์ถฉ๋ถํ ์ ๋ณด๊ฐ ์๋ GridView๋ฅผ ๋ก๋ํ๋ ค๊ณ ํ๋ฉด ์ผ์ด ์ ๋๋ก ์งํ๋์ง ์์ต๋๋ค. ์ด๊ฒ์ iOS์ Android๊ฐ ํจ์ฌ ๋ ์ ์๋ํ๋ ๊ฒ์ด๋ฏ๋ก winforms, QT๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
(WPF๋ ๋ด ์๊ฐ์ UWP XAML๋ณด๋ค ํจ์ฌ ๋์ฉ๋๋ค).
WinUI 3.0 ์์ฒด์ ์ฑ๋ฅ ํฅ์์ด ์์ต๋๊น? XAML ๋ ๋๋ง ์์ง์ด ๋ฐฉ๊ธ ๋ถ๋ฆฌ๋์๊ฑฐ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๊น? XAML ์ปจํธ๋กค์ ์ฃผ๋ก ์ปดํฌ์ง์ ์ ์ฌ์ฉํ๋ฏ๋ก DirectUI์ ๊ฐ์ ์คํ์ค๋ ๋ ๋ฐ dwm ๊ตฌ๋์ ์ฌ์ฉํฉ๋๊น?
์ฑ๋ฅ์ ํ์คํ ์ฐ๋ฆฌ๊ฐ ๊ณ์ ํฌ์ํ๊ณ ์ถ์ ๋ถ๋ถ์ด์ง๋ง 3.0์ ๋ํ ๊ฐ์ ์ ๊ธฐ๋ํ์ง ์์ต๋๋ค. ์ด๊ธฐ 3.0 ๋ ธ๋ ฅ์ ๋๋ถ๋ถ Xaml์ ๋ถ๋ฆฌํ์ฌ NuGet ํจํค์ง ๋ฐ ์คํ ์์ฑ์ผ๋ก ์ ๊ณตํ๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค.
ํ์ฌ UWP Xaml๊ณผ ๊ฐ์ WinUI 3.0์ ์ปดํฌ์ง์ ๊ณ์ธต์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ DWM์ ํตํด ๋ง์ ๋ ๋๋ง ๋ฐ ์ ๋๋ฉ์ด์ ์ ์ค๋ ๋์์ ์คํํฉ๋๋ค.
์ด๊ฒ์ iOS์ Android๊ฐ ํจ์ฌ ๋ ์ ์๋ํ๋ ๊ฒ์ด๋ฏ๋ก winforms, QT๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
(WPF๋ ๋ด ์๊ฐ์ UWP XAML๋ณด๋ค ํจ์ฌ ๋์ฉ๋๋ค).
์ด๋ฌํ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ ๋ ์ข ์ข ์ฑ๋ฅ ๋ ์ ์ฐ์ฑ/ํ๋ถํจ์ ์ ์ถฉ์ ์ด ์์ต๋๋ค. Xaml ๊ธฐ๋ฐ ํ๋ซํผ(UWP ๋ฐ WPF ํฌํจ)์ ๋ชจ๋ ์ปจํธ๋กค์ ๋ํด ๋ ํฌ๊ณ ํ๋ถํ UI ๊ฐ์ฒด ํธ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ด๋ ๋ชจ๋ ์ปจํธ๋กค์ ์คํ์ผ๊ณผ UX๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ ๋ฐ๋ฉด ์ผ๋ถ ๋ค๋ฅธ ํ๋ซํผ์ ํจ์ฌ ๋ ํํํ ๊ฐ์ฒด ํธ๋ฆฌ๋ฅผ ๊ฐ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ์ ์ฐํ์ง๋ ์์ง๋ง ๋๋ก๋ ๋ ๋นจ๋ฆฌ ๋ก๋๋ ์ ์์ต๋๋ค.
๊ทธ ์ ์ถฉ์์ ๋ถ๋ช ํ ์ฐ๋ฆฌ๊ฐ ์๊ฐํ๊ณ ์ ์ฌ์ ์ธ ๋ฏธ๋ ๋ณํ์ ๋ํด ์ผ๋์ ๋ ๊ฒ์ ๋๋ค. ๋ณต์กํ Xaml ์ปจํธ๋กค ํ ํ๋ฆฟ์ ์ถ๊ฐ์ ์ธ ์ ์ฐ์ฑ์ ๋ง์ ์๊ฐ์ด ํ์ํ์ง ์์ผ๋ฏ๋ก ์ถ๊ฐ์ ์ธ ์ ์ฐ์ฑ์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ ๋ ๋น ๋ฅด๊ฒ ๋ก๋ํ๋๋ก ์ปจํธ๋กค์ ์ ์ฌ์ ์ผ๋ก ๋จ์ํํ ์ ์์ต๋๋ค.
Microsoft์์ WinUI 3.0์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ก์ด comctl32.dll ๋ฐ comdlg32.dll์ ์ ๊ณตํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋๋ถ๋ถ์ Win32 ์ฑ์๋ ์ต์ UI ํ๊ฒฝ์ด ์๊ณ ๊ฐ๋ฐ์๊ฐ ์ต์ UI์ ์ฑ์ ์ ์ฉํ๋ ๋ฐ ๋์์ด ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ง์ Win32 ๊ฐ๋ฐ์๋ ์ฌ๋ฌ Windows ๋ฒ์ ์ ์กฐ์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋์ ๊ทธ๋ค์ ์ค๋๋ WinUI๋ฅผ ์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Microsoft๊ฐ ์ฑ UI ํ๋ํ ์์ ๋ถํ๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ต๋๋ค.
๋ํ Microsoft์์ WinUI๋ฅผ ์ฌ์ฉํ๋ C++ Win32 ์ฑ์ฉ XAML ๋์์ด๋๋ฅผ ์ ๊ณตํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๋ชจ๋ฆฌ ์ผ์ง
@MouriNaruto ์ค๋(Win32๋ถํฐ) FileOpenPicker ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@MouriNaruto ์ค๋(Win32๋ถํฐ) FileOpenPicker๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์๊ณ ์์ง๋ง ๋ชจ๋ ์ต์ ์ผ๋ฐ ์ปจํธ๋กค๊ณผ ๋ํ ์์๊ฐ Win32์ ์ ๊ณต๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@MouriNaruto
๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ Windows ๊ฐ๋ฐ์๋ COMCTL
๋ฐ COMDLG
๊ตฌํ์ ์ ํํ ๋์๋ฟ๋ง ์๋๋ผ ์ฝ๋๋ฒ ์ด์ค์ ์กด์ฌํ๋ ์๋ ค์ง ๋ฒ๊ทธ์ ์๋ ค์ง์ง ์์ ๋ฒ๊ทธ๋ฅผ ๋ค์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
ํธํ์ฑ์ ์ฐ๋ฆฌ์ ์น๊ตฌ์ ๋๋ค !
๊ทธ๋ ๊ฒ ํ๋ค ํด๋ ์๋ฃํ ๋์ฏค์ด๋ฉด ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ํํธ์จ์ด๋ WinUI๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ์ ์ถฉ๋ถํ ์๊ฐ์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค! ์์ด๋ฌ๋!! ๐คจ๐คฃ
@MarkIngramUK
์ฐธ๊ณ : FileOpenPicker
๋ ๊ธฐ๋ณธ WinRT ๋ํ ์์/์ปจํธ๋กค์ด ์๋๋๋ค. ๋ณธ์ง์ ์ผ๋ก DirectUI
(ATG ํ์์ ๊ฐ๋ฐํ๊ณ DirectX
) ๋ฐ COM
์์ฑ๋ ExplorerFrame
์ ๋ํผ์
๋๋ค!
๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ Windows ๊ฐ๋ฐ์๋ COMCTL ๋ฐ COMDLG ๊ตฌํ์ ์ ํํ ๋์๋ฟ๋ง ์๋๋ผ ์ฝ๋๋ฒ ์ด์ค์ ์กด์ฌํ๋ ์๋ ค์ง ๋ฒ๊ทธ์ ์๋ ค์ง์ง ์์ ๋ฒ๊ทธ๋ ๋ค์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
ํธํ์ฑ์ ์ฐ๋ฆฌ์ ์น๊ตฌ์ ๋๋ค!
๊ทธ๋ ๊ฒ ํ๋ค ํด๋ ์๋ฃํ ๋์ฏค์ด๋ฉด ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ํํธ์จ์ด๋ WinUI๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ์ ์ถฉ๋ถํ ์๊ฐ์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค! ์์ด๋ฌ๋!! ๐คจ๐คฃ
๋ง์ ํ๋ก์ ํธ๊ฐ ํ์ค ๋๋ฌธ์ ๊ทธ๊ฒ ์์ด๋ WinUI๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ๊ฐ ์ฝ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋น์ ์ "ํธํ์ฑ์ ์ฐ๋ฆฌ์ ์น๊ตฌ์ ๋๋ค!"๋ผ๊ณ ๋งํ์ต๋๋ค. ๋ค, ์ ์ ์์ ์ด์ ์ค ํ๋์ด๊ธฐ๋ ํฉ๋๋ค. ์์ด๋ฌ๋!! ๐คจ๐คฃ
WPF ๋ฐ WinForms๊ฐ ์ ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ์ํด ์ตํธ์ธํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ XAML WinUI ๋ฒ์ ์ ์ผ๋ฐ ๋ํ ์์์ ๋ง์กฑํ ๊ฒ์ ๋๋ค.
WinUI 3 ๋์์ ๋งค์ฐ ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ๋ฉฐ ๊ธฐ๋ํ๊ณ ์์ต๋๋ค. WinUI 3์ ์ฌ์ฉํ๋ ํด๋์ Win32 ์์ฉ ํ๋ก๊ทธ๋จ์ ๋งฅ๋ฝ์์ ๋ฐฐํฌ/๋ฐฐํฌ์ ๊ดํ ๋ช ๊ฐ์ง ์ง๋ฌธ์ด ์์ต๋๋ค.
๋ชจ๋ ์ฑ์ WinUI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์์ผ ํฉ๋๊น, ์๋๋ฉด Windows ๋ฉ์ปค๋์ฆ์ ํตํด ์๋์ผ๋ก ์ฑ ๊ฐ์ ๊ณต์ ๊ฐ ๊ฐ๋ฅํฉ๋๊น?
์ฐ๋ฆฌ๋ ์ฃผ๋ก ํจํค์ง๋ฅผ ์๋์ผ๋ก ์บ์ํ๊ณ ๊ณต์ ํ๋ ๋ฉ์ปค๋์ฆ์ด ์๋ NuGet์ ํตํด WinUI 3์ ๋ฐฐํฌํ ๊ณํ์ ๋๋ค. ์ฌ๊ธฐ์ ๋ ๋ง์ ์ ๋ณด๊ฐ ์์ต๋๋ค.
https://docs.microsoft.com/nuget/what-is-nuget#what -else-does-nuget-do
https://docs.microsoft.com/nuget/consume-packages/managing-the-global-packages-and-cache-folders
WinUI๋ฅผ ์ ์ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๊น?
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํ์ฌ ๊ณํํ ๊ฒ์ด ์๋๋๋ค. ์ด๊ฒ์ด ์ด์ ์ด ๋ ์๋๋ฆฌ์ค๋ฅผ ์ผ๋์ ๋๊ณ ์์ต๋๊น?
์ฌ๋ฐฐํฌํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. WinUI๋ ๋๋ต MB ๋จ์๋ก ์ผ๋ง๋ ํด๊น์?
์ต์ข ์ข ์์ฑ ๊ทธ๋ํ๊ฐ ์ด๋ป๊ฒ ๋ณด์ผ์ง ์์ง ์์ ์ค์ด์ง๋ง UI ๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ด๋ จ ๊ธฐ์กด system32 dll ํฌ๊ธฐ(10MB)์ ์ ์ฌํ ๊ฒ์ ๋๋ค.
ํจํค์ง๋ฅผ ์๋์ผ๋ก ์บ์ํ๊ณ ๊ณต์ ํ๋ ๋ฉ์ปค๋์ฆ์ด ์๋ NuGet์ ํตํด ์ฃผ๋ก WinUI 3์ ๋ฐฐํฌํ ๊ณํ์ ๋๋ค.
๋๊ฒ์ ๊ฐ๋ฐ์ฉ์ด๋ผ๊ณ ์๊ฐํ์ต๋๊น? ์๋๋ฉด ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๊น? ๋ด๊ฐ ์๋ ํ nuget ๊ธฐ๋ฐ ํจํค์ง๋ ๋ชจ๋ ์ฑ์์ ๊ฐ๋ณ์ ์ผ๋ก ๋ฐฐํฌํด์ผ ํ๋ฉฐ ๊ณต์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๊ณต์ dotnet ์ฝ์ด ๋ฐํ์์ ์ํ ์ ์ฉ ์ค์น ํ๋ก๊ทธ๋จ์ด ์๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด dotnet ์ฝ์ด ํจํค์ง๊ฐ ์ด๋ฏธ nuget์ ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ํ์ํ์ง ์์ต๋๋ค...
UI ํ๋ ์์ํฌ ํจํค์ง๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด ๊ฐ๋ฐ ๋๊ตฌ๋ SDK๋ฅผ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค. .NET Core์ฉ WPF ๋ฐ WinForms๋ ๋์ผํ ๋ฌธ์ ๊ฐ ์์๊ณ ๊ณต์ ๋ฒ๋ค์ ๊ตฌ์ถํ๋ ๋ฐ ํฌ์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค ์ ์ต์ข ์ฌ์ฉ์ ์ปดํจํฐ์ SDK๋ฅผ ์ค์นํ ํ์๊ฐ ์์ต๋๋ค. WindowsDesktop ๋ฒ๋ค์ ํฌํจ๋จ)
ํนํ VS์๋ ํ๋ ์์ํฌ ์ข ์ ๋ฐฐํฌ๋ฅผ ์ํ ๋น๋ ์ต์ ์ด ์ด๋ฏธ ์์ผ๋ฉฐ WinUI๋ ํจํค์ง ๊ณต์ ๋ฅผ ๋ณด์ฅํ๊ธฐ ์ํด ์ด๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค. ๋ฌผ๋ก ๊ณต์ ๊ฐ๋ฅํ ํจํค์ง๋ฅผ ๋จผ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.
Microsoft Store์์ ์ ๊ณตํ๋ ์ฑ์ ๊ฒฝ์ฐ ๋ฐฐํฌ ์ ๋ฆด๋ฆฌ์ค ํจํค์ง ์ฝํ ์ธ ๋ ์๋์ผ๋ก ๊ณต์ ๋์ด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ์๋จ์ ํตํด ๋ฐฐํฌ๋ win32 ์ฑ์ ๊ฒฝ์ฐ ์ธ๊ธํ ๊ฒ๊ณผ ๊ฐ์ ์ต์ ์ ์กฐ์ฌํ๊ธฐ ์ํด ํ ์ผ ๋ชฉ๋ก์ ์์ต๋๋ค ๐
WinUI๋ฅผ ์ ์ ์ผ๋ก ์ฐ๊ฒฐํ ์ ์์ต๋๊น?
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํ์ฌ ๊ณํํ ๊ฒ์ด ์๋๋๋ค. ์ด๊ฒ์ด ์ด์ ์ด ๋ ์๋๋ฆฌ์ค๋ฅผ ์ผ๋์ ๋๊ณ ์์ต๋๊น?
๋ช ํํ ํด์ผ ํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ EXE(VC ๋ฐํ์์ ์ ์ ์ผ๋ก ์ฐ๊ฒฐํ๋)์์ WinUI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด C++/WinRT ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์์์ผ ํ๋ค๊ณ ๊ฐ์ ํ์ง๋ง ๋๋ ๋จ์ง ํ์คํ ํ๊ณ ์ถ์์ต๋๋ค ...
์ฌ๋ฐฐํฌํด์ผ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. WinUI๋ ๋๋ต MB ๋จ์๋ก ์ผ๋ง๋ ํด๊น์?
์ต์ข ์ข ์์ฑ ๊ทธ๋ํ๊ฐ ์ด๋ป๊ฒ ๋ณด์ผ์ง ์์ง ์์ ์ค์ด์ง๋ง UI ๋ถ๋ถ์ ๊ฒฝ์ฐ ๊ด๋ จ ๊ธฐ์กด system32 dll ํฌ๊ธฐ(10MB)์ ์ ์ฌํ ๊ฒ์ ๋๋ค.
์ ๋ณด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๊ทธ๋ฐ ๊ฑฐ๋ํ ์ฌ์ ์ ๋ํ ๊ต์ฅํ ํฌ๋ช ์ฑ btw, ๋๋ ๊ทธ๊ฒ์ ์์ฃผ ์ข์ํฉ๋๋ค.
๋ช ํํ ํด์ผ ํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋ EXE(VC ๋ฐํ์์ ์ ์ ์ผ๋ก ์ฐ๊ฒฐํ๋)์์ WinUI๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด C++/WinRT ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์์์ผ ํ๋ค๊ณ ๊ฐ์ ํ์ง๋ง ๋๋ ๋จ์ง ํ์คํ ํ๊ณ ์ถ์์ต๋๋ค.
์ด๊ฒ์ (์ด๋ก ์ ์ผ๋ก) ๊ฐ๋ฅํด์ผ ํ์ง๋ง @jesbis๊ฐ ๋งํ๋ฏ์ด ํจํค์ง๋์ง ์์ ์ฑ์ด ๊ณต์ ํ๋ ์์ํฌ์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ๊ณ์ ์งํ ์ค์ ๋๋ค. .NET Core๊ฐ ์ํํ๋ ๋ฐฉ์๊ณผ ๊ฐ์ด redist ์ค์น ํ๋ก๊ทธ๋จ์ด ์์ด์ผ ํ ์๋ ์์ต๋๋ค.
Windows 7์ ๋ํ ๋ ผ์๋ ์๋นํ ๋ ธ๋ ฅ(๋น์ฉ์ ๋งํ ๊ฒ๋ ์๊ณ )์ด WinUI 3.0์ ์๋นํ ์ง์ฐ์ ์ผ๊ธฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ์ฐ๋งํฉ๋๋ค. Windows 7์ 1์์ ๋จ์ข ๋๋ฉฐ ๋ชจ๋ ๊ณ ๊ฐ์๊ฒ Windows 10์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ ๊ณ ๊ฐ์ ์ฌ๊ธฐ์์ ๋ค๋ฅธ ๊ณ ๊ฐ๊ณผ ์ผ์นํ์ง ์์ ์ ์์ง๋ง Windows 8.1๋ ์ฐ๋ฆฌ์๊ฒ ๊ด์ฌ ์๋ ํ๋ซํผ์ด ์๋๋๋ค.
๋น์ ์ด ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ด ๊ณ ๊ฐ์ ์ ์ด ํ ์ ์์ผ๋ฉฐ ์ค๊ตญ์๋ 60 % ์ด์์ ์์คํ ์ด win7์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ด ์์ฅ์ ํฌ๊ธฐํ ์ ์์ผ๋ฏ๋ก win7์ ์ง์ํ์ง ์๋ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ ๋ฐ์ด๋์์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค. https://tongji.baidu.com/data/os๋ฅผ ์ฐธ์กฐ
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ด ๊ณ ๊ฐ์ ์ ์ด ํ ์ ์์ผ๋ฉฐ 60 % ์ด์์ ์์คํ ์ด ์ค๊ตญ์์ win7์ ๋๋ค.
TBH Win7์์ ๋ฉ์ถ ๊ฒฝ์ฐ .NET Framework 4.8 + WPF๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ด ๊ณ ๊ฐ์ ์ ์ด ํ ์ ์์ผ๋ฉฐ 60 % ์ด์์ ์์คํ ์ด ์ค๊ตญ์์ win7์ ๋๋ค.
TBH Win7์์ ๋ฉ์ถ ๊ฒฝ์ฐ .NET Framework 4.8 + WPF๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ Win7 Sp1์ .NET Framework 4.8์ ์ค์นํ ์ ์์ผ๋ฉฐ sp1์ด ์๋ win7์ ์ค์นํ ์ ์์ต๋๋ค.
SP1์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฏธ ์๋ช ์ด ๋คํ ์ง 6๋ ์ด ๋ ๊ฒ์ ๋๋ค.
์๋น์ค ํฉ์ด ์๋ Windows 7 RTM์ ๋ํ ์ง์์ 2013๋ 4์ 9์ผ์ ์ข ๋ฃ๋์์ต๋๋ค.
https://support.microsoft.com/en-gb/help/13853/windows-lifecycle-fact-sheet
Windows 7 ์ง์์ ์ํ๋ฉด ์ด๋ฏธ Windows 7์ ์ง์ํ๋ ๊ธฐ์ ์ ์ฌ์ฉํด์ผ ํ๋ฉฐ Microsoft๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด ์ค ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํด์๋ ์ ๋ฉ๋๋ค.
@MarkIngramUK Microsoft์์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ์๋์ง๋ง sp1 ์์ด win7์ ์ฌ์ฉํ๋ ๊ณ ๊ฐ์ ์ง์ํ ์ ์์ต๋๋ค. ๊ณ ๊ฐ์ด ์์คํ ์ ์ฌ์ฉํ๋๋ก ์ ์ดํ ์๋ ์์ง๋ง sp1 ์์ด win7์ ์ฌ์ฉํ๋ ๊ณ ๊ฐ์ ์ฐ๋ฆฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ํฌ๊ธฐํ ๊ฒ์ด๋ฉฐ ์ด๋ ์ฐ๋ฆฌ๊ฐ ์ด ์์ฅ์ ์์์์ ์๋ฏธํฉ๋๋ค. ํ์ง๋ง ์๋ก์ด ๊ธฐ์ ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์์๋ค์ sp1 ์์ด win7์ ์ง์ํ ์ ์๊ณ ๋์ ๊ฒฝ์์๋ค์ ์ด ์์ฅ์์ ์น๋ฆฌํ ๊ฒ์ ๋๋ค.
์ฌํ์ง๋ง ์ฌ์ค, ๋๋ฌด ๋ง์ ๊ณ ๊ฐ๋ค์ด ์ฐ๋ฆฌ๊ฐ ์ด๋ค ๊ธฐ์ ์ ์ฌ์ฉํ๋์ง ์ ๊ฒฝ ์ฐ์ง ์์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ ์ฅ์น์์ ์ ์คํ๋ ์ ์๋ค๋ ์ ์ ๊ด์ฌ์ ๊ฐ์ต๋๋ค.
์ด๊ฒ์ ๋ด ์ฐ์ ์ ํ์์ด๋ฉฐ ์์ ๊ฒฐ๋ก ์ ๋ค๋ฅธ ์ฐ์ ์ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค.
@linindexi๊ฐ ๋งํ๋ฏ ์ด ์ด๋ฏธ ์๋ช ์ด ๋คํ ์ง 6๋ ์ด ์ง๋ OS์ ์๋ก์ด ๊ธฐ์ ์ด ์ด์๋ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ์๋ ์์ต๋๋ค. ์ค๋๋ OS๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ฉด ์ค๋๋ ๊ธฐ์ ์ด ํ์ํฉ๋๋ค.
@linindexi ๋ด ์๊ฐ์ ๊ณ ๊ฐ์ด ์ง์๋๋ ๊ธฐ์ ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ์ง ์๊ณ ์ค๋๋ ๊ฒ์ ์ ํธํ๋ค๋ฉด ํ๋์ ์ธ UI๋ฅผ ๊ฐ์ง ๊ฒ์ด๋ผ๊ณ ํฉ๋ฆฌ์ ์ผ๋ก ๊ธฐ๋ํ ์ ์์ต๋๋ค. ์ด ๋ ๊ฐ์ง ์๊ตฌ ์ฌํญ์ ์์ ํ ์ํธ ๋ฐฐํ์ ์ ๋๋ค ...
@MarkIngramUK ์ฌํ๋ค. ์ค๋๋ ์ ์ ๊ธฐ์ ์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ์ด ์ ๊ธฐ์ ์ ์ค๋๋ ๊ธฐ์ ์ด ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@linindexi ๋ง ๊ทธ๋๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ฐ๋์ ๋๋ค. ๊ณ ๋ OS๋ก ์ด์๋์ง ์๋๋ค๋ ์ด์ ๋ง์ผ๋ก ์ ๊ธฐ์ ์ "๊ตฌ ๊ธฐ์ "์ด๋ผ๊ณ ๋ถ๋ฅผ ์๋ ์์ต๋๋ค. Win7(SP1 ์์) ์ง์์ ์ํ๋ฉด WinForms ๋๋ MFC ๋ฑ์ ์ฌ์ฉํ์ญ์์ค.
@MartinZikmund ๋ง์ต๋๋ค. ์ฌ์ค, ์ปดํจํฐ ๊ธฐ์ ์ ์ดํดํ๋ ์ฌ์ฉ์๋ ๊ฑฐ์ ์์ผ๋ฉฐ win7 ๋ฐ win10๋ ์ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ๊ธฐ์ ์ ์ฌ์ฉํ๋์ง ์๊ดํ์ง ์์ต๋๋ค.
@jesbis C++๋ฅผ ์ฌ์ฉํ๋ ์๋ก์ด WinUI๋ก ์์ ๋๋ฝํ๊ณ ์ถ์ต๋๋ค. ๊ณผ๊ฑฐ์ UWP ๋ฐ C++/Cx๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ ์ ๋คํ์ง๋ง PhotoEditor ์ฑ๊ณผ ์ผ๋ถ ์ํ ์ธ์๋ ํญ์ ๋จธ๋ฆฌ๋ฅผ ๊ธ์ ์ด๋ฉฐ XAML์ Platform::Collections์ ๋ฐ์ธ๋ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ข์ ๋ฌธ์๋ฅผ ์ฐพ์ผ๋ ค๊ณ ํ์ต๋๋ค. ์ ๊ฒ. ์ด๊ฒ์ด ๋ด๊ฐ Windows์์ UWP์ฉ C# ๋ฐ C++ ๊ฐ๋ฐ์ฉ Qt๋ก ๋ค์ ์ ํํ ์ด์ ์ค ํ๋์ ๋๋ค. C++์ ๋ ๋ง์ ์ฌ๋์ ์ฃผ์ธ์.
๊ณ ๊ฐ์ ๊ฒฝ์ฐ Windows 10 Media์ ํจ๊ป USB ์คํฑ(PenDrive)์ ์ฌ์ฉํ๊ณ Windows 7์์ ์ต์ Windows 10์ผ๋ก ๋ฌด๋ฃ๋ก ์
๊ทธ๋ ์ด๋ํ์ต๋๋ค. ์ํฐ๋ฐ์ด๋ฌ์ค, Windows ์
๋ฐ์ดํธ, Edge WebBrowser๊ฐ ํฌํจ๋ ์ต์ OS์ ์ด์ ์ ์ป์์ผ๋ฉฐ WinForms, WPF์ ๊ฐ์ ๊ตฌํ๋ถํฐ UWP ์ด์(WinUI)์ ํฌํจํ ์ต์ ๊ธฐ์ ์ ์ด๋ฅด๊ธฐ๊น์ง GUI ๊ธฐ์ ์ ์ง์ํฉ๋๋ค. ๋ํ Shutdown ๋์ Windows๋ฅผ ์ต๋ ์ ์ ๋ชจ๋๋ก ์ค์ ํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ์ ๋ฒํผ์ ๋๋ฌ PC ์์
์ ์์ํ๊ณ PC ์ฌ์ฉ์ด ๋๋๋ฉด ์ ์ ๋ฒํผ์ ๋๋ฅด๋ผ๊ณ ๊ฐ๋ฅด์ณค์ต๋๋ค.
๋ํ ์์คํ
์ ์ฝ๊ฒ ์ค์น/์
๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด ๋คํธ์ํฌ์ ISO๋ฅผ ์ค์ ํ์ต๋๋ค.
๋ํ ์ปดํจํฐ์ Candy Crush๊ฐ ์ฌ์ ์ค์น๋์ด ์๋ค๋ ์ด์ ๋ ์์ต๋๋ค!
WPF์ ์ปจํธ๋กค ๊ตฌํ์ ์ด์ ๋ฒ์ ์ Windows ์ง์์ ์ํด WinUI์์ ๋ณํฉ๋ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. (์๋ฅผ ๋ค์ด, Windows 7.) ๊ทธ๋ฌ๋ Microsoft๊ฐ ์ฌ๋ฌด์ค ์ ์ฑ ๋๋ฌธ์ ๊ทธ๊ฒ์ ์คํํ๊ธฐ๋ ๋๋ฌด ์ด๋ ต์ต๋๋ค. lol.
@linindexi
์ค๋๋ ์ค๊ตญ์๋ ์ค๋๋ Windows ๋ฒ์ ์ฌ์ฉ์๊ฐ ๋ง๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ค๋๋ Windows NT 5.x ์ฌ์ฉ์๋ฅผ ํฌ๊ธฐํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํ๋ฉฐ ๊ทธ๊ฒ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@MartinZikmund
๊ณ ๊ฐ์ด ์ง์๋๋ ๊ธฐ์ ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ์ง ์๊ณ ์ค๋๋ ๊ฒ์ ์ ํธํ๋ค๋ฉด ํ๋์ ์ธ UI๋ฅผ ๊ฐ์ง ๊ฒ์ด๋ผ๊ณ ํฉ๋ฆฌ์ ์ผ๋ก ๊ธฐ๋ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ ๊ฐ์ง ์๊ตฌ ์ฌํญ์ ์์ ํ ์ํธ ๋ฐฐํ์ ์ ๋๋ค ...
๋น์ ์ ์์ ์ด ์์๋ฅผ ์ํด ์ ๊ณต๋๋ ๊ฒ์ ์ํ์ง ์๋๋ค๋ฉด ์ค๊ตญ์์ ํ๋์ ์ธ UI์ ์ค๋๋ ํ๋ซํผ ์ง์์ด ๋ชจ๋ ํ์ํฉ๋๋ค. ๊ทธ๋์ ์ ์น๊ตฌ์ธ ์ค๊ตญ ๊ฐ๋ฐ์ ์ค ํ ๋ช ์ด Blink์ V8์ ์ ๋ฐ์ดํธ๋ฅผ ์ค์นํ์ง ์๊ณ Windows XP๋ก ์ด์ํ๋๋ฐ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ต์ ์ฑ ๊ฒฝํ์ ๊ตฌํํ๊ธฐ ์ํด Blink๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ค๊ตญ์์ ์ต์ ์ด์ ์ฒด์ ๋ฒ์ ์๊ตฌ ์ฌํญ์ ์ ๋ฐ์ดํธ๊ฐ ์ค์น๋์ง ์์ ๋ฒ์ ๊ณผ ๊ฐ์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ค๊ตญ ์ฑ์ ์ด์ ์ฒด์ ๋ฒ์ ์๊ตฌ ์ฌํญ์ด Windows 7์ธ ๊ฒฝ์ฐ "Windows 7 RTM" ๋๋ "6.1.7600.16385(win7_rtm.090713-1255)"์์ ์ฑ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๋ ค์ค๋๋ค. Android ์ธ๊ณ์์๋ ๋ง์ ์ฑ์ด ์ค๋๋ ์๋ ์ฌ์ ํ Android 4.4๋ฅผ ์ง์ํฉ๋๋ค.
์ด๊ฒ์ด ์ค๊ตญ์ด ์๋ ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๋๋ถ๋ถ์ ์ฑ์ด ์ค๊ตญ์์ ๋ค์์ ์ ํ์ด ๋ ์ ์๋ ์ด์ ์ ๋๋ค.
์ถ์ ์ต์ Visual Studio 2019๋ฅผ ์ฌ์ฉ ์ ๋ฐ์ดํธ๋ฅผ ์ค์นํ์ง ์๊ณ ๋ ์ต์ Windows 10 SDK ๋ฐ ์ต์ C++17 ํ์ค์ ์ฌ์ฉํ๊ฑฐ๋ ์ง๊ธ C++20์ ์ฌ์ฉํด ๋ณผ ์ ์๋ Windows XP RTM์ฉ ์ฑ์ ๋น๋ํ ์ ์์ต๋๋ค. VC-LTL(https://github.com/Chuyu-Team/VC-LTL) ๋ฐ YY-Thunks(https://github.com/Chuyu-Team/YY-Thunks) ๋๋ฌธ์ ๋๋ค.
๋๋ถ๋ถ์ ์๊ฐ์ ์์ ์ ์ธ ์ต์ Windows ๋น๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. (๋๋. ๋๋ 19H1 ๋ฐ 19H2์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. 10.0.18362 ์ค๋ ์ฌ์ฉ)ํ์ง๋ง ์ ๋ฐ์ดํธํ์ง ์๊ณ Windows 10, ๋ฒ์ 1703 ์ฉ์ผ๋ก ์ค๊ณ๋ ์ค์น ์ ๋ฐ์ดํธํ์ง ์๊ณ ์๋์ฐ ๋น์คํ RTM์ ์ํด ์ค๊ณ ๋ด์์ Win32 ํ๋ก์ ํธ, ๋ด UWP ํ๋ก์ ํธ ์ค์นํ๊ฑฐ๋ ๋์ค์ ์กฐ๊ฑด ๋๋ฌธ์ XAML ์ง์์ RS2์ ๋์ ๋์์ต๋๋ค. (์ ๋ ์กฐ๊ฑด๋ถ XAML์ ์ข์ํฉ๋๋ค. Windows 10 Build 14393์๋ ์ ์กด์ฌํ์ง ์์ต๋๊น?)
๋ชจ๋ฆฌ ์ผ์ง
์ ๋ฐ, ๋ชจ๋ WinUI 3.0 ์ปจํธ๋กค ํด๋์ค์ ๋ด์ธ์ ํด์ ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค!
๋ด ์ดํด์ ๋ฐ๋ผ Microsoft๋ ๋ชจ๋ UWP ์ ์ด ํด๋์ค๋ฅผ ๋ด์ธํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์๋ํ๋ฉด JavaScript(์์์ ์์ง ๋ชปํจ)๊ฐ ์์๋ ํด๋์ค์ ํจ๊ป ์ฌ์ฉ๋ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ JS/HTML์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฏ๋ก ์ UI ํ๋ ์์ํฌ๊ฐ ์ฌ์ ํ ๋ชจ๋ ํด๋์ค๋ฅผ ๋ด์ธํ ํ์๊ฐ ๋ ์ด์ ์์ต๋๋ค. ์ ๊ธ ํด์ ๋ฅผ ์ฌ์ฉํ๋ฉด WPF์์ ํญ์ ๊ฐ๋ฅํ๋ ๊ฒ์ฒ๋ผ UWP ์ปจํธ๋กค์ ํจ์ฌ ์ฝ๊ฒ ์ฌ์ฉ์ ์ง์ ํ ์ ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์ ์ ์ ๊ฐ์ํ ๋ชฉ๋ก ์ปจํธ๋กค ๋๋ ํจ๋์ ์์ฑํ ๋ ์์ํ ๋ด์ธ๋์ง ์์ ๊ฐ์ํ ๊ธฐ๋ณธ ํด๋์ค๋ฅผ ๊ฐ๋ ๊ฒ์ด ๋ง์ ๋์์ด ๋ ๊ฒ์ ๋๋ค. C#, C++/CX ๋๋ C++/WinRT ๋ชจ๋ ์์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ์๊ฒ ์ด๊ฒ์ ๊ฐ์ํ ๊ฒ์ JS/HTML์ด๋ผ๋ ์คํจ๋ฟ์ด์์ต๋๋ค.
๋ฐ๋ผ์ WinUI 3.0์ ์์ฑํ ๋ ์ด ๋ถํ์ํ ์ ํ์ ์ ๊ฑฐํ์ญ์์ค.
@gisfromscratch ํผ๋๋ฐฑ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ์ฐ๋ฆฌ๋ ํ์คํ C++ ๊ฐ๋ฐ(ํนํ C++/WinRT ์ฌ์ฉ)์ ์ง์ํ๊ณ ์ถ์ต๋๋ค.
C++๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? CX ๋์ C++/WinRT๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น?
๋ ๋ง์ ์ํ ์ฑ์ด ๋์์ด ๋ ๊น์?
๋ฐ์ธ๋ฉ์ ๋ํ ๋ฌธ์๋ฅผ ์ฐพ๊ธฐ๊ฐ ์ด๋ ต๋ค๊ณ ๋ง์ํ์ จ์ต๋๋ค. ๋ ๋์ ๋ฌธ์๊ฐ ํ์ํ ๋ค๋ฅธ ํน์ ๊ธฐ๋ฅ์ด ์์ต๋๊น?
์ ๋ฐ, ๋ชจ๋ WinUI 3.0 ์ปจํธ๋กค ํด๋์ค์ ๋ด์ธ์ ํด์ ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค!
@lukasf ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํ ๊ฒ ๊ฐ์ ์ผ์ ๋๋ค ๐ #780์์ ๊ด๋ จ ํ ๋ก ์ด ์งํ ์ค์ ๋๋ค.
@jesbis C++/WinRT๋ฅผ ์ฌ์ฉํ์ฌ ํจ์ฌ ๋ ์์ ๋๋ฝํ์ผ ํฉ๋๋ค. ๋ฐฉ๊ธ Photo Editor C++/WinRT ์ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐ๋์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ธต ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ๊ณผ ๊ฐ์ ์ ๊ณต๋ ๋งํฌ๋ฅผ ์ฝ์ผ๋ฉด ๋ง์ C# ์ค๋ํซ๊ณผ "C++/WinRT์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ํด๋์ค์์ ํ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ์ธํ๋ ๋ชจ๋ ๋ฐํ์ ํด๋์ค๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ ํด๋์ค๋ก ์๋ ค์ ธ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ตฌ์ฑ ๊ฐ๋ฅํ ํด๋์ค ์ฃผ๋ณ์๋ ์ ์ฝ ์กฐ๊ฑด์ด ์์ต๋๋ค...". ์ด ํ์ด์ง๋ 95% C#๊ณผ 5% C++๋ง์ ๋์์ผ๋ก ํฉ๋๋ค.
@gisfromscratch ๊ฐ์ฌํฉ๋๋ค! WinUI 3์ฉ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ ๋ ์ด๋ฅผ ์ผ๋์ ๋๊ฒ ์ต๋๋ค.
๋์์ด ๋๋ค๋ฉด ์ธ๊ธํ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ํ์ด์ง๋ ํนํ C++/WinRT๋ฅผ ์ฌ์ฉํ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๋ํ ๋ณ๋์ ํ์ด์ง๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ์:
ํด๋น ์น์ ์๋ ๊ธฐํ ์ฌ๋ฌ C++/WinRT ๊ด๋ จ ํญ๋ชฉ๋ ์์ต๋๋ค.
๋น์ ์ ํ๋ฅญํ ์์
์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! Xaml Island ๊ฐ WinUi 3.0์์ ์ ๊ฑฐ๋ ๊ฒ์ ๋ณด๋ ๋งค์ฐ ๊ธฐ์ฉ๋๋ค.
Btw: WinUi 3.0์์ ์ธ์ด ํ๋ก์ ์
์ ์ ์์ค ๊ตฌํ์ด WinRT ๊ตฌ์ฑ ์์์ ๋ค๋ฅธ์ง ๊ถ๊ธํฉ๋๋ค. WinRT ๊ตฌ์ฑ ์์ ์ ์ธ์ด ํ๋ก์ ์
๊ตฌํ์ ์ปดํ์ผ ์๊ฐ๊ณผ ๋ฐํ์ ๋ชจ๋์์ .NET UWP ํ๋ก์ ํธ์ ์ฑ๋ฅ์ ํฐ ์ํฅ์
@zenjia XAML ์์ผ๋๋๋ WinUI 3์์ ์ ๊ฑฐ๋์ง ์์์ต๋๋ค. WinUI 3์๋ WPF/WinForms/MFC ์ฑ์ด WinUI 3 ์ปจํธ๋กค์ ํธ์คํธํ๋๋ก ํ์ฉํ๋ API๊ฐ ํฌํจ๋ฉ๋๋ค.
๋๋ WinUI์ ์งํ ์ํฉ์ ๋ฐ๋ผ๊ฐ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ๊ณผ๊ฑฐ์ C#์ผ๋ก UWP ์ฑ์ ์์ฑํ๋ ค๊ณ ์๋ํ์ง๋ง ํ๋ ์ธ์์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค. ํ์ง๋ง winui 3.0 ์ดํ์ ๋ค์ ์๋ํ๊ณ ์ถ์ต๋๋ค.
winui ๋ก๋๋งต์ ๋ํด ์ง๋ฌธ์ด ์์ต๋๋ค. ์ฌ๊ธฐ 4๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ค๋ฅธ ๊ณณ์์ ๋ค๋ฃจ์๋ค๋ฉด ์ฃ์กํฉ๋๋ค. ๋๋ ๋ง์ ๊ฒ์์๋ ๋ถ๊ตฌํ๊ณ ๋ต์ ์ฐพ์ง ๋ชปํ์ต๋๋ค ... ์ด๋ฌํ ์ ํ์ ์ง๋ฌธ์ ํ ์์๋ ๋ ๋์ ํฌ๋ผ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค.
๋ค์ดํฐ๋ธ ์ปจํธ๋กค์ .net ๋ํผ๋ ์คํ ์์ค๋ก ์ ๊ณต๋ฉ๋๊น? ๋ด๊ฐ ์ฐพ์ ์ ์ผํ C# ์ฝ๋๊ฐ ์๋ํ๋ ํ ์คํธ๋ฅผ ์ํ ๊ฒ์์ ๊ณ ๋ คํ ๋ ์ด๊ฒ์ด winui์ .Net ์ธก์ ๋ด๋นํ๋ github ์ฌํ์ธ์ง๋ ๋ถ๋ช ํ์ง ์์ต๋๋ค. Microsoft.UI.Xaml.UIElement์ ๊ฐ์ ๊ฒ์ ์ฐพ๊ณ ์์ง๋ง ์ด๋์์๋ ํด๋น ์ฝ๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
winui 3.0์ด ์ถ์๋๋ฉด UWP appmodel๊ณผ win32 appmodel์ด ๋์ผํ .Net Core ๋ฐํ์์ ์คํํฉ๋๊น? UWP ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ด๋ค ๋ฒ์ ์ .Net ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋์ง ์ ํ ์์ง ๋ชปํ์ต๋๋ค. Windows ์์ฒด์ ๋ด์ฅ๋์ด ์๊ณ Windows 10 SDK๋ฅผ ํตํด VS 2019๊ฐ UWP์์ ์ฌ์ฉํ ์ ์๋ .Net ์ฝ์ด์ ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ๋์์ผ๋ก ์ง์ ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
Xaml ์ฌ์ ๋ํ ์ง๋ฌธ์ ๋๋ค. WPF์ UWP๊ฐ ๋์ผํ ์๊ณต์ ๊ณต์ ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ๋๋ winforms์ WPF ์ฌ์ด์์ ํ๋ ๊ฒ์ฒ๋ผ ์๊ณต ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒ์ ๊ธฐ๋ํ์ง ์์ต๋๋ค. WPF์ UWP๊ฐ ๋ชจ๋ direct-X๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์๋ก ํฝ์ ์ ๊ณต์ ํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฆฌ๋ณธ(WPF)์ UWP xaml ์ฌ์ ์ค๋ฒ๋ ์ดํด์ผ ํ๋ ๋ฐฑ์คํ ์ด์ง ๋ฉ๋ด๊ฐ ์๋ ๊ฒฝ์ฐ ์ํํ๊ฒ ์ํ๋ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ๊ทธ๋ฐ ๊ฒ์ ์ํด ์๋ง์ ๊ณจ๋๋ฅผ ๋ฐ์ด ๋์ด์ผ ํ ํ์๋ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ... WPF ์ด๊ธฐ์ "WebBrowser" winforms ์ปจํธ๋กค์ ์ฌ์ฉํ๋ ค๋ ํด๋ผ์ด์ธํธ ์์ฉ ํ๋ก๊ทธ๋จ์ ์๊ณต ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ํ๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ๊ทธ๋ค์ "WebBrowser.CompositionMode"๋ผ๋ ์น ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ฅ์ ์ํ์ ์ผ๋ก ์ํํ์ผ๋ฉฐ WebBrowser๊ฐ WPF์ ์ ์๋ํ๋๋ก ํ์ฉํด์ผ ํ์ต๋๋ค. ... ํ์ง๋ง ๊ทธ ์ ๋ต์ ๊ฒฐ๊ตญ ํฌ๊ธฐํ ๊ฒ ๊ฐ์์. ์๋ง๋ UWP์ WPF ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ ๋งค์ฐ ์ํํ์ฌ ์๋ก ํฝ์ ์ ๊ณต์ ํ ์๋ ์์ต๋๋ค(winform ๋ฐ WPF์ ๋ฌ๋ฆฌ). ์ด๊ฒ์ ์ ์ฌ์ ์ธ ์ด์ ์ค ํ๋๋ WPF์์ UWP ์ปจํธ๋กค์ ๊ธฐ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด WPF๋ ํ์๊ธฐ ๋ ์ด์ด์ ์ ์ฌํ ๋ฐฉ์์ผ๋ก xaml ์ฌ์ ์ถ๊ฐ ์๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ค๋ฒ๋ ์ดํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ฝ๊ฐ์ ๋์์ด ๋ ์ ์์ต๋๋ค.
xaml ์์ผ๋๋(์: 50% WPF ๋ฐ 50% WINUI)๊ฐ ์๋ WPF ์ฑ์ด ์ธ์ ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ARM64๋ก ์ปดํ์ผ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น? ARM์ ๋์์ผ๋ก ํ๋ ๊ฒ์ 100% UWP์ธ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๊ฐ๋ฅํ๋ฉฐ WPF ์ข ์์ฑ์ด ๊ธฐ๋ณธ ARM64 ๋์ ์ง์ ์ ํฌ๊ธฐํ๋๋ก ๊ฐ์ํ์ง ์๋๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. (๋์์ x86 ์๋ฎฌ๋ ์ด์ ์์ ์ฑ์ ์คํํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ๋ ๋๋ฆฌ๊ณ ์ฌ์ฉํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ํํฉ๋๋ค.)
์ด ์ง๋ฌธ๋ค์ด ๋ชจ๋ winui์ ๋ก๋๋งต๊ณผ ๊ด๋ จ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ชจ๋ ์กฐ์ธ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๋ค์ดํฐ๋ธ ์ปจํธ๋กค์ .net ๋ํผ๋ ์คํ ์์ค๋ก ์ ๊ณต๋ฉ๋๊น? ๋ด๊ฐ ์ฐพ์ ์ ์ผํ C# ์ฝ๋๊ฐ ์๋ํ๋ ํ ์คํธ๋ฅผ ์ํ ๊ฒ์์ ๊ณ ๋ คํ ๋ ์ด๊ฒ์ด winui์ .Net ์ธก์ ๋ด๋นํ๋ github ์ฌํ์ธ์ง๋ ๋ถ๋ช ํ์ง ์์ต๋๋ค. Microsoft.UI.Xaml.UIElement์ ๊ฐ์ ๊ฒ์ ์ฐพ๊ณ ์์ง๋ง ์ด๋์์๋ ํด๋น ์ฝ๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
UIElement๋ WinUI 2์ ์์ผ๋ฏ๋ก ํ์ฌ ์ ์ฅ์์ ์์ต๋๋ค. ์์ง ์ถ์๋์ง ์์๊ฑฐ๋ ์คํ ์์ค๋ก ์ ๊ณต๋์ง ์์ WinUI 3์ ์์ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์์ ์ค์ ๋๋ค!
WinRT ํ๋ก์ ์ ์ ํตํด .NET์ ๋ ธ์ถ๋ ๋ค๋ฅธ ๊ธฐ๋ณธ ์ปจํธ๋กค์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์์ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค(์: ์ฌ๊ธฐ์ ๋ฌธ์ํ๋ WinUI 2.2 ์ปจํธ๋กค). ๊ทธ๋ค์ ๋๋ถ๋ถ ์ด๋ฏธ ์กด์ฌํ๋ ์ธ์ด๋ณ ๋ํผ ํ์ผ์ ํ์๋ก ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ .cs ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.
@marb2000 ์ ์ฌ/๋ฐ์คํฌํฑ ์ง๋ฌธ์ ๋ํด ๊ฐ์ฅ ์ ์ค๋ช ํ ์ ์์ต๋๋ค.
Q: _WinUI 3 UWP์ ๋ฐ์คํฌํฑ์ ๋์ผํ .NET ๋ฐํ์์ ์ฌ์ฉํฉ๋๊น?_
A: ๋ค, ์ด๊ฒ์ด ๊ณํ์
๋๋ค. UWP ๋ฐ ๋ฐ์คํฌํฑ์ .NET Core 3์ ์ฌ์ฉํฉ๋๋ค. ๊ด๋ฆฌ๋๋ WinRT ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET ๋ค์ดํฐ๋ธ ๋์ .NET Core 3์ ์ฌ์ฉํฉ๋๋ค.
Q: _WPF์ UWP๋ ๋์ผํ ์๊ณต์ ๊ณต์ ํฉ๋๊น?_
A: WPF์ WinUI(๋ฐ XAML UWP)๋ ๋น์ทํด ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. WPF๋ DirectX9๋ฅผ ์ฌ์ฉํ๊ณ WinUI/XAML UWP๋ XAML์ ๊ตฌ์ฑ, ๋ ๋๋ง ๋ฐ ์ ๋๋ฉ์ด์
์๊ตฌ ์ฌํญ์ ๋ํด Windows.UI.Composition์ ์ฌ์ฉํฉ๋๋ค(DirectX11์ ์ต์ ๋ฒ์ ์ ์ธ). ์ฌํ๊ฒ๋ ์ด๋ก ์ธํด interop์ด ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. WPF ํ์๊ธฐ์ ๋ํ ๊ทํ์ ์ ์์ ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ฑํ์๋ WPF ์ฝํ
์ธ ์์ WinUI/XAML ์ฝํ
์ธ ๋ฅผ ๋ฐฐ์นํ๋ ํ์
์ ๋ง๋ค ์ ์์ต๋๋ค. ๋๋ ์ฌ๋ ์ด์์์ด ํ์ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด HWnd๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ๊ฒ์ WPF ์๊ฐ์ ํธ๋ฆฌ์ ์๋ฆด ์ ์์ต๋๋ค.
@dbeavon ์ด๊ฒ์ ์ข์ ์ ์์
๋๋ค. ์ด์ ๋ํ ๊ธฐ๋ฅ ์์ฒญ์ ์์ฑํ ์ ์์ต๋๊น?
Q: _Xaml Islands๊ฐ ํฌํจ๋ WPF ์ฑ์ด ARM64๋ก ์ปดํ์ผ๋๋์?_
A: Windows์ฉ .NET Core 3์ด ARM64๋ฅผ ํ์คํ ์ง์ํ๋ค๋ฉด. ํ์ฌ Windows์์ ARM32๋ฅผ ์ง์ํฉ๋๋ค. ๊ทธ๋ฌ๋ Linux์์๋ ARM64๋ฅผ ์ง์ํฉ๋๋ค. Windows์์๋ ARM64๋ฅผ ์ง์ํ๊ธฐ ์ํ .NET Core ๋ก๋๋งต์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. AFAIN์ด์ง๋ง ์์ง ๋ ์ง๊ฐ ์์ต๋๋ค. @richlander , ์์์ด ์์ต๋๊น?
@marb2000
Q: WPF์ UWP๋ ๋์ผํ ์๊ณต์ ๊ณต์ ํฉ๋๊น?
UWP์์ Windows.UI.Composition์ ์ฌ์ฉํ์ฌ DirectX ๋นํธ๋งต์์ ๋ ๋๋ง์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ณ์ธต์ ๋ง๋ค ์ ์๋์? ๊ทธ๋ฐ ๋ค์ WPF๋ win2d์ ๊ฐ์ด ์ด ๋ ์ด์ด์ ์ฐฝ์ ๋ ๋๋งํฉ๋๋ค. ๊ฐ์ ์๊ณต์ ๊ณต์ ํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ WPF๊ฐ ๋ ์ด์ด์ ๋ ๋๋ง๋๋๋ก ํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค.
@linindexi ์ฒ๊ตญ์ด
UWP์์ Windows.UI.Composition์ ์ฌ์ฉํ์ฌ DirectX ๋นํธ๋งต์์ ๋ ๋๋ง์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ณ์ธต์ ๋ง๋ค ์ ์๋์?
UWP Xaml์๋ SurfaceImageSource
, VirtualSurfaceImageSource
๋ฐ SwapChainPanel
ํฌํจํ์ฌ ๋์ผํ ์๊ณต์ ๊ณต์ ํ๋๋ก Xaml์์ DirectX ๋นํธ๋งต์ ๋ ๋๋งํ๊ฑฐ๋ ์ฒด์ธ์ ๊ตํํ๊ณ ์ด๋ฅผ Windows.UI.Composition์ผ๋ก ํฉ์ฑํ๋ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
https://docs.microsoft.com/windows/uwp/gaming/directx-and-xaml-interop
Windows.UI.Composition ์๊ฐ์ ๊ฐ์ฒด๋ฅผ UWP Xaml UI ํธ๋ฆฌ์ ์ฝ์
ํ๊ณ ์ฌ๊ธฐ์ DirectX ์ฝํ
์ธ ๋ฅผ ๊ทธ๋ฆด ์๋ ์์ต๋๋ค(์: ICompositorInterop
, ICompositionDrawingSurfaceInterop
๋ฐ ICompositionGraphicsDeviceInterop
์ฌ์ฉ).
https://docs.microsoft.com/windows/uwp/composition/composition-native-interop
์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ WinUI์ ์ ์ฌํ๊ฒ ์๋ํด์ผ ํฉ๋๋ค.
UWP ๋ฐ์คํฌํฑ ์ฑ์ WPF/WinForm DLL์ ์ฐธ์กฐํ๊ณ WPF/WinFrom ์ฐฝ์ ์ด ์ ์์ต๋๊น? ์ด๋ ๊ฒ ํ๋ฉด ์ ์ง์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค.
@marb2000 -- Windows ARM64์ฉ .NET Core๊ฐ ๋ก๋๋งต์ ์์ต๋๋ค. ๋๋ ์ง๊ธ ๊ทธ๊ฒ์ ๋ํ ๊ณํ์ ์ธ์ฐ๊ณ ์๋ค.
WinUI 3.0์ ์ฌ์ฉํ๋ฉด ๊ทธ ์์ win2d๋ฅผ ์ปดํ์ผํ ์ ์์ต๋๊น?
(๋ฐ๋ผ์ UWP์์ ๋ถ๋ฆฌ)
๊ทธ๋ ๋ค๋ฉด ๊ทธ๊ฒ์ ๋ฏธ์น ๋ฏ์ด ๊ต์ฅํ ๊ฒ์
๋๋ค!
์ฐ๋ฆฌ๋ ์ฌ์ ํ DirectX ํตํฉ์ ๋ํ ์ธ๋ถ ์ฌํญ์ ์ฐ๊ตฌํ๊ณ ์์ง๋ง UWP Xaml ๊ธฐ๋ณธ ํด๋์ค ๋์ WinUI ๊ธฐ๋ณธ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋๋ก Win2D๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์๊ฐ๋ฝ์ด ๊ต์ฐจ๋์์ต๋๋ค :D
์ฃผ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฃ์กํฉ๋๋ค. UWP์ ๋ํ ๋ฒ๊ทธ ๋ณด๊ณ ์ - https://github.com/microsoft/microsoft-ui-xaml/ ๋๋ ๋ค๋ฅธ ๊ณณ์์ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํฉ๋๊น?
์ฃผ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ์ฃ์กํฉ๋๋ค. UWP์ ๋ํ ๋ฒ๊ทธ ๋ณด๊ณ ์ - https://github.com/microsoft/microsoft-ui-xaml/ ๋๋ ๋ค๋ฅธ ๊ณณ์์ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํฉ๋๊น?
@jtorjo ์ข์ ์ง๋ฌธ์ ๋๋ค! ์ด ๋ฆฌํฌ์งํ ๋ฆฌ๋ ๋ค์๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ์ ์ถํ๊ธฐ์ ๊ฐ์ฅ ์ข์ ๊ณณ์ ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก docs.microsoft.com ์ ๋๋ถ๋ถ์ ๋ฌธ์ ํ์ด์ง ํ๋จ์ "์ด ์ ํ์ ๋ํ ํผ๋๋ฐฑ ๋ณด๋ด๊ธฐ" ๋งํฌ๊ฐ ์์ด์ผ ํน์ ๊ธฐ๋ฅ์ด๋ API์ ๋ํ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์๋ ค์ค๋๋ค.
์์ ํญ๋ชฉ์ ์ ์ธํ๊ณ UWP์ ๋๋ถ๋ถ์ ์ธก๋ฉด์์ ์ด๋ ์ฌ๋ฌ ๊ด๋ จ ํ์ ๋ฒ์ฃผ๊ฐ ์๋ ํผ๋๋ฐฑ ํ๋ธ ์ ๊ฐ๋ฐ์ ํ๋ซํผ ๋ฒ์ฃผ์ ๋ฒ๊ทธ๋ฅผ ์ ๊ณ ํ๋ ๊ฒ์ ๋๋ค.
WinUI 3์ UWP SemanticZoom ์ปจํธ๋กค์ด ํฌํจ๋ฉ๋๊น? ๋๋ ๊ทธ๊ฒ์ด ๊ทธ๋ค ๋ชจ๋์ ๊ฐ์ฅ ๋ฉ์ง ์ปจํธ๋กค์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@jebis ๊ฐ์ฌํฉ๋๋ค! ๋ฐฉ๊ธ System.IO์ ๋ํ ํ ๋ก ์ ๊ฒ์ํ์ต๋๋ค.
Microsoft๋ Office์ ๋ํ Windows 7 ์ง์์ ์ค๋จํ์ง ์๋๋ฐ WinUI 3๊ฐ ์ง์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ด ๋ง์, ๊ฑฐ์ ๋ชจ๋ ์ฌ๊ฐํ ์ํํธ์จ์ด๋ Windows 7์ ์ง์ํฉ๋๋ค(Photoshop, Office, Visual Studio 2019, VSCode ๋ฑ). WinUI๊ฐ Windows 7์ ์ง์ํ์ง ์๋๋ค๋ฉด...
Microsoft๋ Office์ ๋ํ Windows 7 ์ง์์ ์ค๋จํ์ง ์๋๋ฐ WinUI 3๊ฐ ์ง์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋ด ๋ง์, ๊ฑฐ์ ๋ชจ๋ ์ฌ๊ฐํ ์ํํธ์จ์ด๋ Windows 7์ ์ง์ํฉ๋๋ค(Photoshop, Office, Visual Studio 2019, VSCode ๋ฑ). WinUI๊ฐ Windows 7์ ์ง์ํ์ง ์๋๋ค๋ฉด...
Microsoft์ Windows 7 ์ง์์ด ๊ณง ์ข ๋ฃ๋๋ฏ๋ก Office๋ ๊ณง ์ง์์ ์ค๋จํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฏธ Windows 7์ ์ง์ํ๋ ์ฝ๋ ๊ธฐ๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
WinUI๋ Windows 10์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฏ๋ก Windows 7๋ก ๋ค์ ์ด์ํด์ผ ํฉ๋๋ค. OS๊ฐ ์๋ช ์ข ๋ฃ์ ์ ์ด๋ค๋ฉด์ ๊ทธ๋ ๊ฒ ํ๋ ค๋ ๋ ธ๋ ฅ์ ์๋ฏธ๊ฐ ์์ผ๋ฏ๋ก ์ฌ๋๋ค์ Windows 10์ผ๋ก ์ ๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค.
Q: WinUI 3 UWP์ ๋ฐ์คํฌํฑ์ ๋์ผํ .NET ๋ฐํ์์ ์ฌ์ฉํฉ๋๊น?
A: ๋ค, ์ด๊ฒ์ด ๊ณํ์ ๋๋ค. UWP ๋ฐ ๋ฐ์คํฌํฑ์ .NET Core 3์ ์ฌ์ฉํฉ๋๋ค. ๊ด๋ฆฌ๋๋ WinRT ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET ๋ค์ดํฐ๋ธ ๋์ .NET Core 3์ ์ฌ์ฉํฉ๋๋ค.
Q: WPF์ UWP๋ ๋์ผํ ์๊ณต์ ๊ณต์ ํฉ๋๊น?
A: WPF์ WinUI(๋ฐ XAML UWP)๋ ๋น์ทํด ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ต๋๋ค. WPF๋ DirectX9๋ฅผ ์ฌ์ฉํ๊ณ WinUI/XAML UWP๋ XAML์ ๊ตฌ์ฑ, ๋ ๋๋ง ๋ฐ ์ ๋๋ฉ์ด์ ์๊ตฌ ์ฌํญ์ ๋ํด Windows.UI.Composition์ ์ฌ์ฉํฉ๋๋ค(DirectX11์ ์ต์ ๋ฒ์ ์ ์ธ). ์ฌํ๊ฒ๋ ์ด๋ก ์ธํด interop์ด ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. WPF ํ์๊ธฐ์ ๋ํ ๊ทํ์ ์ ์์ ํฅ๋ฏธ๋กญ์ต๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ฑํ์๋ WPF ์ฝํ ์ธ ์์ WinUI/XAML ์ฝํ ์ธ ๋ฅผ ๋ฐฐ์นํ๋ ํ์ ์ ๋ง๋ค ์ ์์ต๋๋ค. ๋๋ ์ฌ๋ ์ด์์์ด ํ์ํ์ง๋ง ๋ชจ๋ ๊ฒ์ด HWnd๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๋ ๊ฒ์ WPF ์๊ฐ์ ํธ๋ฆฌ์ ์๋ฆด ์ ์์ต๋๋ค.
@dbeavon ์ด๊ฒ์ ์ข์ ์ ์์ ๋๋ค. ์ด์ ๋ํ ๊ธฐ๋ฅ ์์ฒญ์ ์์ฑํ ์ ์์ต๋๊น?
Q: Xaml Islands๊ฐ ํฌํจ๋ WPF ์ฑ์ ARM64๋ก ์ปดํ์ผ๋ฉ๋๊น?
A: Windows์ฉ .NET Core 3์ด ARM64๋ฅผ ํ์คํ ์ง์ํ๋ค๋ฉด. ํ์ฌ Windows์์ ARM32๋ฅผ ์ง์ํฉ๋๋ค. ๊ทธ๋ฌ๋ Linux์์๋ ARM64๋ฅผ ์ง์ํฉ๋๋ค. Windows์์๋ ARM64๋ฅผ ์ง์ํ๊ธฐ ์ํ .NET Core ๋ก๋๋งต์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. AFAIN์ด์ง๋ง ์์ง ๋ ์ง๊ฐ ์์ต๋๋ค. @richlander , ์์์ด ์์ต๋๊น?
๊ทธ๋ผ UWP ์๋๋ฐ์ค๋ฅผ ์ ๊ฑฐํ ๊น์? ํ์ฌ ํํ์ UWP๋ ์ฌ๋ผ์ง๊ณ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ App Store์ ๋ณดํธ๋ ์๋๋ฐ์ค์ ํจ๊ป ๋ค์ ์ค ๋ฌด์์ ์๋ฏธํฉ๋๊น?
๊ทธ๋ผ UWP ์๋๋ฐ์ค๋ฅผ ์ ๊ฑฐํ ๊น์? ํ์ฌ ํํ์ UWP๋ ์ฌ๋ผ์ง๊ณ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ App Store์ ๋ณดํธ๋ ์๋๋ฐ์ค์ ํจ๊ป ๋ค์ ์ค ๋ฌด์์ ์๋ฏธํฉ๋๊น?
UWP ์๋๋ฐ์ค๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ์ ๋ง ๋๋จํ ๊ฒ์ ๋๋ค!
๊ทธ๋ ๋ค๊ณ ํด์ UWP๊ฐ ์ฌ๋ผ์ง๋ ๊ฒ์ ์๋๋๋ค. ์ ๋๋ฒ์ค Windows ํ๋ซํผ์ Windows ์ฅ์น(PC, Xbox, HoloLens ๋ฑ)์ ์ ์ฒด ์คํํธ๋ผ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ตฌ์ถํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ด๋ฉฐ Windows๊ฐ ๊ธฐ๋ณธ ํ๋ซํผ ํฌ์์ ์ง์คํ๊ณ ์๋ ๊ณณ์ ๋๋ค. RE: ํนํ ์๋๋ฐ์ฑ: ์ฑ ์ปจํ ์ด๋ ๊ฒฉ๋ฆฌ๋ ์ฑ๊ณผ UWP ๋ฐ ๋ฐ์คํฌํฑ ์ฑ ์ฌ์ฉ์ ๋ชจ๋์๊ฒ ๊ณ์ํด์ ๋ง์ ์ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฆ, ์ ์ฑ์ ๊ฒฝ์ฐ ์ฑ์ ์ ํฉํ ํญ๋ชฉ์ ๋ฐ๋ผ UWP์ ๋ฐ์คํฌํฑ ์ฑ ๋ชจ๋ธ ์ค์์ ์ ํํ ์ ์์ผ๋ฉฐ ๊ธฐ์กด ๋ฐ์คํฌํฑ ์ฑ(์: WPF, WinForms, MFC)์ด ์๋ ๊ฒฝ์ฐ ์ต์ ์ฑ์ผ๋ก ์ ์ง์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค. Xaml Islands๋ฅผ ์ฌ์ฉํ๋ WinUI ๊ธฐ๋ฅ.
๊ทธ๋ผ UWP ์๋๋ฐ์ค๋ฅผ ์ ๊ฑฐํ ๊น์? ํ์ฌ ํํ์ UWP๋ ์ฌ๋ผ์ง๊ณ ์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ App Store์ ๋ณดํธ๋ ์๋๋ฐ์ค์ ํจ๊ป ๋ค์ ์ค ๋ฌด์์ ์๋ฏธํฉ๋๊น?
UWP๋ WinUI 3.0 ์ฑ์ ๋น๋ํ๊ธฐ ์ํ ์ต์ ์ค ํ๋์ ๋๋ค. UWP๋ฅผ ์ฌ์ฉํ๋ฉด Xbox, Hololens ๋ฑ์์ ์ฑ์ ์คํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ WinUI 3.0์ ์ฌ์ฉํ์ฌ Win32 ์ฑ์ ๋น๋ํ๊ณ UWP API์ ์ก์ธ์คํ ์๋ ์์ง๋ง ์ฑ์ ์คํํ ์ ์๋ ์์น๋ ๋ ์ ํ์ ์ ๋๋ค.
@mdtauk @jesbis ์ ๋ ์ ์ ์ผ๋ก UWP๋ฅผ ์ง์งํ์ง๋ง ํ์ฌ๋ก์๋:
(WPF์์ UWP๋ก ์ฝ๋๋ฅผ ์ด์ํ๋ ๋ฐ ํ ๋ฌ ์ด์์ด ๊ฑธ๋ ธ์ต๋๋ค. win2d๊ฐ ์์ฒญ๋๊ฒ ํ์ํ๊ธฐ ๋๋ฌธ์ UWP๋ฅผ ํผํ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.)
@mdtauk @jesbis ์ ๋ ์ ์ ์ผ๋ก UWP๋ฅผ ์ง์งํ์ง๋ง ํ์ฌ๋ก์๋:
- ์ปดํ์ผ ์๊ฐ์ด ์์ฒญ๋๊ฒ ๋๋ฆฝ๋๋ค! (WPF๋ณด๋ค 6๋ฐฐ ๋๋ฆผ - ํ๊ฒ ๋ฒ์ ๋น๋ 1809 - ๋น๋ 17783์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.)
- StorageFolder ํ์ผ ์ด๊ฑฐ API๊ฐ UWP์ ์ผ๋ถ๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์์ฒญ๋๊ฒ ๋๋ฆฝ๋๋ค. UWP ์๋๋ฐ์ค(์ ์ด๋ Windows ๋ฐ์คํฌํฑ์์๋)๋ ๋์์ด ๋๋ ๊ฒ๋ณด๋ค ๋ ํฐ ๋ฌธ์ ์ ๋๋ค.
- ๋ฌผ๋ก ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ๋ฏธ์์ง๋ง UWP์์๋ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ์ด๋ป๊ฒ๋ UWP ์ฝ๋์ ๋จนํ๋ค๊ณ ๋์ค์ ๋๋ฒ๊ฑฐ์์ ์ค๋จ๋๊ณ ๋ชจ๋ ์คํ ์ปจํ ์คํธ๊ฐ ์์ค๋ฉ๋๋ค. ๊ฐ๋์ ์์ธ๊ฐ ๋ฐ์ํ ์์ฒด ๋ด๋ถ์ ์คํ ์ปจํ ์คํธ๊ฐ ์์ง๋ง ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค.
- UWP ์ฝ๋๋ฅผ ํ๋กํ์ผ๋งํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น์ต๋๋ค. ์ด๋ฒคํธ dotTrace๋ ์๋ํ ๋ ์ฆ์ ์ค๋จ๋ฉ๋๋ค.
(WPF์์ UWP๋ก ์ฝ๋๋ฅผ ์ด์ํ๋ ๋ฐ ํ ๋ฌ ์ด์์ด ๊ฑธ๋ ธ์ต๋๋ค. win2d๊ฐ ์์ฒญ๋๊ฒ ํ์ํ๊ธฐ ๋๋ฌธ์ UWP๋ฅผ ํผํ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.)
์ด ์ค๋ ๋ #1517์ ๊ฒ์ํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์ด๋ฉฐ SDK ํ์ ๋๊ตฐ๊ฐ์ ์ด๋ฆ์ ํฌํจํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@jtorjo
์ปดํ์ผ ์๊ฐ์ด ์์ฒญ๋๊ฒ ๋๋ฆฝ๋๋ค! (WPF๋ณด๋ค 6๋ฐฐ ๋ ๋๋ฆผ
C++/WinRT๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ํค๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
@mdtauk ๋ฐฉ๊ธ ๊ฑฐ๊ธฐ์ ๊ฒ์ํ์ต๋๋ค
@MarkIngramUK C# ์ฝ๋์ ๋๋ค.
๋ง๋ฌด๋ฆฌ - ๋ก๋๋งต ๋ฐ ์ํ ํผ๋๋ฐฑ์ #1531๋ก ๋ณด๋ด์ฃผ์ญ์์ค.
ํ์ฌ๋ก์๋ ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์ ์ ์์ต๋๋ค. WinUI ๋นํธ๊ฐ OS์์ ์ ๊ฑฐ๋๋ฉด ๋ค๋ฅธ ํ๋ซํผ์์ ์ผ์ข ์ ํธํ์ฑ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํ ์ ์๋ ๋ฐฉ์์ผ๋ก ์คํ ์์ค ํ๋ก์ ํธ์ ์ฝ์ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฌ์ฉ์ ์ง์ ๋ ๋๋ฌ๊ฐ ์๋ Xamarin, Uno ๋๋ .Net Core๋ฅผ ์๊ฐํด ๋ณด์ธ์.
์ด๊ฒ์ ์ค์ ๋ก ๋ก๋๋งต์ ์๋ ๊ฒ์ ๋๊น ์๋๋ฉด ๊ฐ์ ์ ๋ถ๊ณผํ ๊ฒ์ ๋๊น?
@mdtauk , @zezba9000 ๊ทธ๊ฒ์ ๋ชจ๋ ์ด๋ก ์ ์ผ๋ก ๊ฐ๋ฅํ๋ฉฐ ํ์ ๋ง์ ํ๋ซํผ ์ถ์ํ ์ ๋ฌธ ์ง์์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๊ทธ๋ ๋ฏ์ด ๋น์ฉ, ์ผ์ ๋ฐ ์์๋๋ ์ด์ ์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค ๐
์ 3์๊ฐ Android ๋๋ iOS์์ ์๋ํ๋๋ก ํ๋ ๋ฐฉ์์ผ๋ก ์ถ์ํํ๋ ๊ฒ์ ์์ฒญ๋ ์ผ์ผ ๊ฒ์ ๋๋ค. ๋๋ ์ปค๋ฎค๋ํฐ๊ฐ ์ด๊ฒ์ ํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ๋๋ ํ์คํ ๊ทธ๊ฒ์ ๊ธฐ์ฌํ ๊ฒ์ ๋๋ค.
@andreinitescu ํธ์ธ์ฅ๋ด๊ณผ ๋ถ๋ง์ ๋ํด ์ ๊ฐ์ด์ง๋ง ๋ด๊ฐ ์ดํดํ ๋ฐ์ ๋ฐ๋ฅด๋ฉด WinUI 3์ ์ฌ์ฉํ์ฌ Windows/Win32 ์ ์ฉ WPF๋ฅผ ๋์ฒดํ๋ ๋์... Windows์ WinUI๋ Windows ์ ์ฉ ๋ ๋๋ง API๋ฅผ ์ฌ์ฉํ๊ณ ๋ถ๊ฐ์ง๋ก ์๊ฐ ์๋ ํ๋, WinUI๋ ํ์ฌ์ ์์กดํ์ฌ ๋ค๋ฅธ ํ๋ซํผ์์ WinUI๋ฅผ ์ฌ๊ตฌํ/์กฐ๊ฐํ(ugg)ํ๋ ๊ฒ ๊ฐ์ต๋๋ค(UNO proj์ ๊ฐ์ด ๋ฉ์ง์ง๋ง .NET์ ๋ํ Mono์ ๊ฐ์ ๊ฒ์ ๋ถํ์ํ๊ณ ๋จํธํ์ ์๊ฐ์ ๋ญ๋นํ๋ ๊ฒ๋ฟ์ ๋๋ค. ์์ํ๊ธฐ์ ์ ํฉํ๋๋ก ์ค๊ณ๋จ). Skia์ ๊ฐ์ ํด๋์ฉ ์ ํ์ ์ฌ์ฉํ๊ฑฐ๋ MS ์ ํ์ ๋ง๋๋ ๋์ . ๋ํ C#์ WinUI์ ํจ๊ป ์ฌ์ฉํ์ง ์์ 1%์ ์ฌ๋๋ค์ ์ง์ํด์ผ ํ๋ ํ์์ฑ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. C#์ ์ด๋ค ์๋ฏธ์์๋ ๋ ๋ฒ์งธ ํด๋์ค ๋์์ผ๋ก ๋ง๋ค๊ณ ๋ ์ค์ํ๊ฒ๋ ๊ฐ๋ฐ ์๊ฐ์ ํจ์ฌ ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. Android๊ฐ ๋ง์ ํต์ฌ ์ฑ์ ๋ํด Java + post-AOT๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ Windows๋ C# + pre-AOT๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๊ฐ์ด ์ ์ฝ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. C++๋ฅผ ์ฌ์ฉํ๋ ๋ฒ๊ทธ์ 70%๋ ๊ฒฐ๊ตญ ํ ๋น ํด์ ๋ ptr์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
ํ์ฌ ๋ด ๊ทธ๋ฃน ๊ฐ์ ์์ฌ ์ํต ๋ถ์กฑ์ผ๋ก ์ธํด ๋ชจ๋ฐ์ผ ํ๋ซํผ(์ฌ์ฉํ ์์ )์ฉ Android OS ๋ฒ์ ์ ์ถ์ํ๊ณ ๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์ ์ ๋ ์ปค์ง๋ ์ฅ๊ธฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก MS ๋๊ตฌ๋ก ... ์ด๋ป๊ฒ ๋ณด๋ฉด ์ํฉ๊ณผ ๊ฐ์ ๋ ๋ค๋ฅธ WinPhone7์ด ๋ ๊ฒ์ ๋๋ค. ์ฉ์ด๋ก์์ Windows๋ ๋ ์ด์ WinNT ์ปค๋์ ์ฝ๋งค์ฌ์๋ ์ ๋ฉ๋๋ค. ์์ฝ ์์คํ ์ ๋จ์ผ ํ๋ซํผ ๋๋ ํ๋์ ํ์ฌ๊ฐ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ๋ ์์ํฌ ์ด์์ ๋๋ค.
MS๋ ๊ฑฐ์ 20๋ ์ OS9์์ OSX๋ก ์ด๋ํ๋ฉด์ Apple์ด ํ ์ผ์ ํ ์ ์์ต๋๋ค. UNIX/LINUX ์ปค๋๋ก ์ด๋ํ์ฌ ๋ฐ์ฐฝ๊ณ ๋ฅผ ์์ค๋ค๋ ์ ์์ ํฅํ 5-10๋ ๋์ ๋ ๊ฑฐ์ ์ํํธ์จ์ด์ฉ OS์ ์๋ฎฌ๋ ์ดํฐ/์๋ฎฌ๋ ์ดํฐ๊ฐ ๋ด์ฅ๋์ด ์๋ ๋ฐ๋ฉด ์ฌ๋๋ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ์คํํ๊ธฐ ์ํด ์ํํธ์จ์ด์ ๊ฐ๋ฐ ๋๊ตฌ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค. (๋น์ ์ด ์ด๊ฒ์ ๋ํด ๋ฌด์์ ์ํ ์ง ์๊ฐํ์ง๋ง ๋๋ ๊ฟ์ ๊ฟ ์ ์์ต๋๋ค)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Windows 7์ ๋ํ ๋ ผ์๋ ์๋นํ ๋ ธ๋ ฅ(๋น์ฉ์ ๋งํ ๊ฒ๋ ์๊ณ )์ด WinUI 3.0์ ์๋นํ ์ง์ฐ์ ์ผ๊ธฐํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ฐ ์ฐ๋งํฉ๋๋ค. Windows 7์ 1์์ ๋จ์ข ๋๋ฉฐ ๋ชจ๋ ๊ณ ๊ฐ์๊ฒ Windows 10์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ ๊ณ ๊ฐ์ ์ฌ๊ธฐ์์ ๋ค๋ฅธ ๊ณ ๊ฐ๊ณผ ์ผ์นํ์ง ์์ ์ ์์ง๋ง Windows 8.1๋ ์ฐ๋ฆฌ์๊ฒ ๊ด์ฌ ์๋ ํ๋ซํผ์ด ์๋๋๋ค.