dotnet/runtime#14862์ ํ ๋ก ์ ๊ฒฐ๊ณผ๋ก ์ ์ถ๋์์ต๋๋ค.
์ฐธ๊ณ : ์ด๊ฒ์ ์คํ ์์ค System.Xaml ๋๋ .NET Core๋ก ์ด์ํ๋ ค๋ ์ฐ๋ฆฌ์ ์ฝ์์ ๋ํ๋ด์ง ์์ต๋๋ค. ๋จ์ง ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํ ์ปค๋ฎค๋ํฐ ์์ฒญ์ ์บก์ฒํ๋ ๊ฒ์ ๋๋ค.
๋ง์ธ! ๊ณต์ ์ธ์ /์ธ์ ! ๊ทธ๋ฆฌ๊ณ ์, ๋๋ ๊ทธ ๋จ์ด๋ค์ด "์ฝ์"๊ณผ ๋์ผํ์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ด๊ฒ์ ๋ด๊ฐ ์ง๊ธ๊น์ง ๋ณธ ์ด๋ค ๊ฒ๋ณด๋ค ํ์คํ ๋ซ์ต๋๋ค. @terrajobst ๋น์ ์ ๋์ ์์ ์ ๋๋ค. :ํํธ: :ํํธ: :ํํธ:
@cwensley ์ @SuperJMN , ์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค ์ฌ์ด์ ๋ํ๋ฅผ ๋๋๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ์ด์์ ์ผ๋ก(๋ด ๊ด์ ์์) ๋ชจ๋ ์ฌ๋์ ๊ถ๊ทน์ ์ผ๋ก ์๋ก์ด Xaml ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋์ ํฌํธ/๋ฒ์ ์ ์ฌ์ฉํด์ผ ํ๋ฉฐ Xaml์ ๋ค๋ฅธ ๋ฒ์ /๋ฐฉ์ธ์ ๊ฐ์ง๊ณ ์์ง ์์์ผ ํฉ๋๋ค. ์๊ฒฉ์ผ๋ก๋ ๊ฐ๋ฅํ๊ฐ์? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ๊ด์ฐฎ์ต๋๋ค. ํ์ง๋ง ๊ฐ๋ฅํ๋ค๋ฉด ๊ฐ๋ฅํ์ง ์๊ณ ์ถ์ต๋๋ค. :)
๋ํ ์ ๋ ํ์ฌ "์์ ์์๋ (๋๋จํ ๊ณ ๊ฐ LOL)"์ ์์ผ๋ฉฐ ํ๋ซํผ ๊ฐ Xaml๋ง 3-4๊ฐ์ ๋์ ์ฌ์ฉํ ์์ ์ ๋๋ค. ๋๋ ๋ง ๊ทธ๋๋ก ํํ์์ผ๋ก ์ผํ ์ ์๊ณ ํ์ํ ๊ฒฝ์ฐ ๊ทธ ์๊ฐ ๋์ ์ด ์ผ์ ๋์ธ ์ ์์ต๋๋ค. ๋์๋ฅผ ์ํ ๋ชจ๋ ๊ฒ(๋ํ, ๋๋ ์ข์ ํ์ด๋ฐ์ ์ํ ๊ธฐํ์ฃผ์์์ ๋๋ค!)
System.Xaml์ด ์คํ ์์ค๋ผ๋ฉด ์ด ํ๋ก์ ํธ์ ์๊ตฌ ์ฌํญ๊ณผ ๋์์ธ ๋ชฉํ์ ๋ฐ๋ผ ์ปค๋ฎค๋ํฐ๊ฐ ์ด๋ฅผ .net ์ฝ์ด๋ก ์ด์ํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์๋ดํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. .net ์ปค๋ฎค๋ํฐ์ ํ์ ํ์ฉํ ์ ์์ต๋๋ค.
@Michael-DST, xaml์ ํ ๋ฐฉ์ธ์ด ์ค์ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๊ตฌํ์ ์์ ํ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋จ์ผ ๊ตฌํ์ผ๋ก ํ์คํํ๋ ๊ฒ์ ์ค์ ๋ก ์ปค๋ฎค๋ํฐ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
Mono์ ์ฐ์ํ System.Xaml(MIT ๋ผ์ด์ผ์ค) ๊ตฌํ์ PCL 259/136 ํฌํธ์ธ Portable.Xaml ์ ๊ฒฝ์ฐ, ๋ง์ ๋ฒ๊ทธ ์์ ์ด ์์ต๋๋ค. ์์ด๋์ด๋ ๋์ผํ API๋ฅผ ์ฌ์ฉํ์ฌ MS์ System.Xaml์ด ์ํํ๋ ๋ชจ๋ ์์ (์ฝ๊ธฐ/์ฐ๊ธฐ ํฌํจ)์ ์ง์ํ๋ ๊ฒ์ด์ง๋ง ๋ฐ๋์ ์ด์ ๊ตญํ๋๋ ๊ฒ์ ์๋๋๋ค.
ํ์ฅ ๊ธฐ๋ฅ์ ์๋ก Portable.Xaml์ ๋ชฉ๋ก์ ํญ๋ชฉ์ ๋ํ ํ์ ๋ณํ๊ธฐ ์ฌ์ฉ์ ์ง์ํฉ๋๋ค. ์ฌ๊ธฐ์ System.Xaml์ ๋ค์ํ ํ์์ ์ง์ํ๊ธฐ ์ํด ์ฌ์ฉ์ ์ง์ ์ปฌ๋ ์ ์ ์ฌ์ฉํ์ฌ ๊ตฌํํด์ผ ํ๋ IList.Add(object)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
@cwensley ๋๋ ์ด๊ฒ์ ๋ํ ๋ฌด์ง๋ฅผ ์ฃผ์ฅํ์ง๋ง .NET Core์ PCL์ ์ฐจ์ด์ ์ ๋ฌด์์ ๋๊น? ๋๋ ๊ทธ๋ค์ด ๊ฐ์ ์ค ์์๋๋ฐ? ์ฆ, ํน์ PCL ํ๋กํ๋ก ์ค๊ณํ๋ค๋ฉด .NET Core๋ก ๋์ด๊ฐ ๊ฒ์ด๋ผ๊ณ ์ดํดํ์ต๋๋ค... ์ด๊ฒ์ ์ผ๋ง ์ ์ด์์ต๋๋ค(์์งํ ์ ๋ .NET Core์์ RTM/W๋ก ์ ํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์์ต๋๋ค). ๊ทธ๋์ ์ง๊ธ์ ์๋ก ๊ณ ์นจ์ ํ๊ธฐ์ ์ข์ ๋์ ๋๋ค. :ํผ
Portable.Xaml์ด ์ค์ ๋ก mono์ System.Xaml ํฌํธ์ธ ๋ฐ๋ฉด OmniXaml์ ๊ตฌ๋ฌธ ๋ถ์ ๋ถ์ผ์์ ์๋ก์ด ์ธ๊ธฐ๋ฅผ ๋๋ฆฌ๋ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ๋ค๋ ๊ฒ์ด ๋ด ์ดํด/๊ฐ์์ ๋๋ค. ์ด์์ ์ผ๋ก๋(๋ด ์์ ์ ๊ด์ ์์) ์ด๋ป๊ฒ๋ ๋์ ๋ณํฉํ๋ ๊ฒ์ด ์ข๊ฒ ์ง๋ง ๊ทธ๊ฒ์ด ์คํ ๊ฐ๋ฅํ๊ฑฐ๋ ๋ ๊ธฐ์ง ์ฌ์ด์์ ๋ฐ๋์งํ์ง์กฐ์ฐจ ํ์ ํ ์ ์์ต๋๋ค. ๋ด ์๊ฐ์๋(spelunking/analysis ์์ด) ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋(Portable.Xaml)์ ์ฑ์๋์ ๋ค๋ฅธ ํ๋(OmniXaml)์ ์๋ก์ด ๋งค๋ ฅ์ ๋ณํฉํ๋ ๊ฒ์ ๋๋ค.
์ด ๊ฒ์๋ฌผ ์ ๋ฐ๋ฅด๋ฉด @Michael-DST PCL 259๋ ์ค์ ๋ก .NET Core์ ํธํ๋ฉ๋๋ค. Portable.Xaml์ฉ nuget ํจํค์ง์ ๋์์ผ๋ก ์ด๋ฏธ \lib\dotnet
๋ฅผ ํฌํจํ์ผ๋ฏ๋ก ํ
์คํธํ์ง๋ ์์์ง๋ง .NET Core์์ ์๋ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
๋๋ OmniXaml์ ์กฐ์ฌํ ์๊ฐ์ด ์์์ง๋ง ์ค์ ๋ก ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ๋ค๋ฉด ์ผ์ด ์์ ํ ๋ค๋ฅด๊ฒ ์ํ๋์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํ๊ธฐ ๋๋ฌธ์ ๋ ํ๋ก์ ํธ๋ฅผ ๋ณํฉํ๋ ๊ฒ์ ์ด์น์ ๋ง์ง ์์ ์ ์์ต๋๋ค. ๋ํ Portable.Xaml์ด ์๋ ๊ทธ๋๋ก ๋๋ถ๋ถ์ด ์์ ํ ๊ฒฝ์ฐ ๊ทธ๋ฌํ ์ด์ ์ด ์๋์ง ํ์ ํ ์ ์์ต๋๋ค. ๋ด๊ฐ ํ๋ฆด ์๋ ์์ง๋ง (;
:) ์, ์ฌ๊ธฐ์์ ์ต์ ์ ํ์ํ๊ณ ์์ผ๋ฉฐ ์ค์ ๋ก ์คํ ์์ค ์ธ๊ณ์ ์๋ค๋ ๊ฒ์ ๋ํ ๋ฌด์ง๋ฅผ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋๋ ๊ฐ์ ์ผ์ ํ๋ ์ฌ๋ฌ ์ฝ๋๋ฒ ์ด์ค๊ฐ ์๋ค๋ ์๊ฐ์ ์ซ์ดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํนํ Xaml ์ปค๋ฎค๋ํฐ๊ฐ ๋ ์๊ธฐ ๋๋ฌธ์ ์ฒ์๋ถํฐ ๋จํธํ๋๋ ๊ฒ์ ์ง์ฆ๋ ๊ฒ์ ๋๋ค. ์ด์จ๋ , @SuperJMN ์ด ์ด์ ๋ํ ๊ฒฌํด๋ฅผ ๋ฃ๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฐ ๊ทธ์ ์๋ก์ด ์์ ์ ๋ํด ๊ฝค ํ๊ณ ํ ๊ฒ์ฒ๋ผ ๋ณด์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋งํฌ์ ํ์ฅ์ ์ํด IServiceProvider ๋์ MarkupExtensionContext๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด ์ฝ๋๋ฅผ ์ด ์๋ก์ด ์ธ๊ณ๋ก ์ด์ํ๋ ค๋ ๋ชจ๋ ์ฌ๋์๊ฒ ํ๊ธฐ์ ์ธ ๋ณํ๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ช ํํ ํ์๋ฉด ๋ชจ๋ PCL ํ๋กํ์ .NET Core์ ํธํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ๊ฐ์ง๊ณ ์๋ ๊ณ์ฝ ์ธํธ์ ํฉํ ๋ง์ PCL ํ๋กํ์ ์งํ์ ๋๋ค. ์ด๊ฒ์ .NET Core์ ์ฆ์ ํธํ๋์ง ์๋ "์ด์ ์คํ์ผ" ์ด์ ๊ฐ๋ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(mscorlib ๋ฑ์ ๋ํด ์ปดํ์ผ๋จ)์๋ ์ ์ฉ๋์ง ์์ต๋๋ค.
@๋ง์ดํด DST
@terrajobst ๋น์ ์ ๋์ ์์ ์ ๋๋ค. :ํํธ: :ํํธ: :ํํธ:
๊ทํ์ ์ด์ ์ ๋งค์ฐ ๊ฐ์ฌ๋๋ฆฌ๋ฉฐ, ๋๊ตฌ๋ ์ง ์ด์ ๊ฐ์ ์์ฒญ์ ์ ์ถํ ์ ์์์ ๋ถ๋ช ํ ํ๊ณ ์ถ์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ๊ณ ์์ ์ ์์ฒญํ๊ธฐ ์ํด ์ฐ๋ฆฌ์ ํ์์ด๋ ์น์ธ์ด ํ์ํ์ง ์์ต๋๋ค :-) ๋๋ ๋จ์ง ์๊ฐ์ ์ ์ฝํ๊ณ ์ ๋ฆ๋ฐ์ด๊ฐ ๋์ง ์๊ธฐ ์ํด ์ง์ ์ ์ถํ์ต๋๋ค("๋ฒ๊ทธ๋ฅผ ์ ๊ณ ํ์ญ์์ค") :-)
LOL @terrajobst ๊ด์ฐฎ์์. ์ ์ด์ ์ ๋๋ด ๋ฐ, ์ง์งํจ ๋ฐ์ ๋๋ค... MSFT๋ ์๋ง์ ํฌํ ์ ๊ด๋ฒ์ํ ๋ํ ์๋ ๋ถ๊ตฌํ๊ณ ๊ฑฐ์ 1๋ ๋์ ์ด ๋ฌธ์ ์ ๋ํด ๊ธฐ๋ณธ์ ์ผ๋ก ์นจ๋ฌตํ์ต๋๋ค.
๋ฐ๋ผ์ ๊ฑฐ์ 1๋ ๋์ ๋ ๋ฐฉ์ ๊ฐํ ์ฌ๋์ ๋ฌธ ์๋๋ก ์์ฌ๋ฅผ ๋ฐ์ด ๋ฃ๋ ๊ฒ๊ณผ ๊ฐ์ ์ผ์ ํ๋์ง ์๊ฐํด ๋ณด์ญ์์ค. :stuck_out_tongue:
[ํธ์ง: ๊ทธ ์ ์ถ๋ฅผ ์ฝ์ ํ(๊ทธ๋ฆฌ๊ณ ์๋์ ์ธ์ฉ๋ ๊ฒ์ ๋ณธ ํ), ๊ทธ๊ฒ์ ๋์ฐํ๊ณ ์๋ง๋ ๋น์ ๋ด๊ฐ ์ฝ๊ณ ์๋ ๊ธฐ์ฌ์ ์ํฅ์ ๋ฐ์์ ๊ฒ์ด๋ผ๊ณ ๋งํด์ผ ํฉ๋๋ค -- ๋น์ด๋จน์ ๋ด์ค, ์ ๋์๊ฒ ๊ทธ๋ ๊ฒ ์ํฅ์ ๋ฏธ์ณ์ผ ํฉ๋๊น?! ๋ ๋์/๊ด๋ จ์ด ์๋ ์ฌ๋์ ์๋ง๋ 1๋ ๋์ ์ฐ๊ธฐ๋ฅผ ๋ด ํ์ ์ฒ์ฌ ๋ผ์ด๋์์ ๋งค์ฐ ํ์ํ ํ๊ธ ์ฃผ์ ์ ๋ฐ์ ๊ฒ์ ๋๋ค.]
์ฐธ์กฐ: @Harikm86 , System.Xaml์ ์์ ์
์ ๋ XAML์ ์ฌ๋ํฉ๋๋ค. Silverlight(์, ์ ๊ฐ ๋งํ์ต๋๋ค)์์ Windows Workflow, ๊ทธ๋ฆฌ๊ณ ์ด์ ์๋ก์ด Universal App ํ๋ซํผ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ชจ๋ ๊ฒ์ ์ํ ํ๋ฅญํ ์ ์ธ์ ์ธ์ด์ ๋๋ค. Core๋ก ์ด์ํ๋ฉด XAML์ ์์กดํ๋ ๋ค๋ฅธ ๊ธฐ์ ์ ์ด์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ด ํ์ํฉ๋๋ค!
@rschiefer์ ์ง์์ ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค! ์ ๋ ฅํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์๋ ๋ค๋ฅธ Xaml ๊ฐ๋ฐ์๊ฐ ์ด ์ค๋ ๋์ ์ฐธ์ฌํ๊ณ ๋ํ/๋ฐฉํฅ์ ๋๋๋ก ํ์ญ์์ค.
์ ๋ ๋ํ Silverlight์ ํฌ์ด๋ฉฐ 2011๋ ๋ถํฐ Silverlight์ ๋ค์ ๊ตฌํ์ ์ถ๊ตฌํด ์์ต๋๋ค(๋ป๋ปํ ํ๋ฌ๊ทธ: Visual Studio ํ์ ๋ ๋๋ํ Silverlight ํํ๋ฅผ ๋ณด๊ณ ์ถ๋ค๋ ๊ฒ์ ์๋ฆฌ๊ณ ์ถ๋ค๋ฉด ํฌํํ๊ณ ๊ทธ๋ค์๊ฒ ์๋ ค์ฃผ์ธ์. ์ฌ๊ธฐ ์์ ).
์ ์ ์๊ฐ์ ๋ด์ด "Xaml"์ด๋ผ๊ณ ๋งํ ๋ .NET 4.x+(๋๋ "System.Xaml")์ ์๋ Xaml ์์คํ /๊ธฐ๋ฅ ์งํฉ์ ์ด๋งํด์ผ ํ๋ค๋ ์ ์ ํ์ธํ๊ณ ์ถ์ต๋๋ค. Silverlight 5์ Xaml๋ ์ค์ ๋ก ๊ฐ๋ฅํฉ๋๋ค.
(๋ฌผ๋ก OmniXaml์์ ๋ฐ๊ฒฌ๋ ์๋ก์ด ๊ฐ์ ์ฌํญ ์ ์ถ๊ฐํ๋ ๊ฒ๋ ๋ฐ๋์งํฉ๋๋ค.)
์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ทธ ์ดํ๋ก ๊ณ ํต์ ๊ฒช์๊ธฐ ๋๋ฌธ์ ์ธํด ํ์ด ์ด์ํ UWP์ "์", ๋์ ๋ฒ์ ์ด ์๋ ํ(์์ ๋ด ๊ฒ์๋ฌผ์์ ์ธ๊ธํ ํฌํ ์ฐธ์กฐ).
๋๋ ๊ทธ๊ฒ์ "Xaml" ์์คํ ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ์ฃผ์ ํ๊ธฐ๋ ํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ํ์ด์ ์ํ ์ถ๊ฐ ํ ํฐ ๊ตฌ๋ฌธ ๋ถ์์ด ์๋ XML์ด๊ธฐ ๋๋ฌธ์ ๋๋ค(๋ถ๋ช ํ ํ์ํจ). ์ฌ๋ฏธ์๋ ์ฌ์ค: UWP์ Xaml ์์คํ ์ ๊ถ๊ทน์ ์ผ๋ก ๋น๋ ํ๋ก์ธ์ค ์ค์ System.Xaml ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์... #์์ด๋ฌ๋.
์ด์์ ์ผ๋ก๋ ์ด ํฌํธ๊ฐ ๋ฐฐ์น๋๋ฉด UWP Xaml ์์คํ ์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋์ ์ด ์์คํ ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋นํฉ์ค๋ฌ์ด Xaml ์ญ์ฌ์ ์ฅ์ ๋ค๋ก ํ ์ ์์ผ๋ฉฐ ๋ง์ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ปํ ๊ฒ์ ๋๋ค.
Silverlight๋ฅผ ๋ ์๋กญ๊ณ ๋ ๋์ ํํ๋ก ๋๋๋ฆฌ๋ ๊ฒ๋ ๋์์ง ์์ ๊ฒ์ ๋๋ค. :) :) :)
@๋ง์ดํด DST
๋ฐ๋ผ์ ๊ฑฐ์ 1๋ ๋์ ๋ ๋ฐฉ์ ๊ฐํ ์ฌ๋์ ๋ฌธ ์๋๋ก ์์ฌ๋ฅผ ๋ฐ์ด ๋ฃ๋ ๊ฒ๊ณผ ๊ฐ์ ์ผ์ ํ๋์ง ์๊ฐํด ๋ณด์ญ์์ค. :stuck_out_tongue:
์ถฉ๋ถํ ๊ณต์ ํ๋ค :์ค๋ง์ผ:
@๋ง์ดํด DST
๋๋ ์ค์ ๋ก ์ง๊ธ๊น์ง ๋ง์ ๊ฒ์ด ๋ณ๊ฒฝ๋์๋ค๋ ๊ฒ์ ์๊ณ UWP๋ฅผ ํผํ๊ณ UWP๊ฐ Xaml์ ์์ฒด "๋ฒ์ "์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์๊ธฐ์์ผ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. System.Xaml์ ์ด์ํ ๋ค์ ์ค์ Xaml์ ์ฌ์ฉํ๋๋ก UWP๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. System.Xaml์ ์ด์ํ ๋ค์ ์ค์ Xaml์ ์ฌ์ฉํ๋๋ก UWP๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
@terrajobst ์ฃ์กํฉ๋๋ค. ์ด์ @rschiefer์ ์๋ก์ด ์์ ์ด ์๊ฒผ์ต๋๋ค. :์ค๋ง์ผ: :์ค๋ง์ผ: :์ค๋ง์ผ:
ํ ๋ก ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ๋์๊ฒ ๋งค์ฐ ๋ฉ์ง๋ค(๊ทธ๋ฌ๋ ๋๋ ์ฝ๊ฒ ๊ฐ๋ช ์ ๋ฐ์ ์ ์์๋ค!).
@Michael-DST @rschiefer
@helmsb ๋ค! ใ ใ ใ ใ
์น(Angular.js), ์ฑ(Android) ๋ฑ์ ์ํ ๊ฒฝ์๋ ฅ ์๋ Google์ ์ธ๊ธฐ ์๋ ๋จธํฐ๋ฆฌ์ผ ๋์์ธ ๊ธฐ์ ์ธ FWIW๋ ์คํ ์์ค๋ก ์ ๊ณต๋ฉ๋๋ค. ์ด ์ฃผ์ฅ์ด ์์ฌ์ ์์ฌ ๊ฐ์ ์กด์ฌ๋ฅผ ์ค๋ํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@dsaf ๋ฌด์จ ๋ง์์ด์ธ์?
FWIW ์ค๋ ๊ฒ์๋ ๊ธฐ์ฌ์์ ์ด ๋ฌธ์ ๋ฅผ ์ธ๊ธํ์ต๋๋ค. Is the Tide Turning on project.json? , ๊ธฐ์ ๋ฐ MSFT ๋น์ฆ๋์ค/IP ๊ด์ ๋ชจ๋์์ .NET ๊ฐ์ฒด๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด Xaml์ด ์ ํธ๋๋ ๋ฉ์ปค๋์ฆ์ ์ดํด๋ด ๋๋ค.
์ฌ๋ฌ๋ถ, Xamarin ๊ฑฐ๋๋ ์ด๋ป์ต๋๊น? ์ด ๋ฌธ์ ๊ฐ ์์ผ๋ก ๋ช ๊ฐ์ ๋์ ํจ์ฌ ๋ ๋ฐ๋น ์ง ๊ฒ์ด๋ผ๋ ์์์ด ์์ต๋๋ค. :์๋ค:
๋ฐ๋์๋ ์๋๋๋ค. UWP์ Xaml ๋๋ Xamarin์ Xaml ํ๋ฏธ๊ฐ ์ผ๋ถ ๊ต์ฐจ ํ๋ซํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด๋ System.Xaml์ ํฌํธ ๋๋ ์์ํ๊ฒ ๊ด๋ฆฌ๋๋ Xaml ๊ตฌํ์ด ๋ฐ์ํ์ง ์์ ์ ์์์ ์๋ฏธํ ์ ์์ต๋๋ค.
Xamarin์ Xaml ์์คํ ์ ํ์์ /๋ด๋ถ์ ์ด์ง๋ง System.Xaml๋งํผ ์ฑ์ํ์ง ์์ต๋๋ค. ์ฝ๋ ์์ฒด๋ ๋ค์ ์์ฑํฉ๋๋ค. ๋ํ POCO ์ง๋ ฌํ ๋ฑ์ ์ํํ๋ ค๋ ๊ฒฝ์ฐ ๊ธ์ง๋๋ BindingObject์ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ UWP์ Xaml ์์คํ ์ ๋์ฐํฉ๋๋ค. ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ์ ๋น์ ์ด ์๊ณ ์๋ ๊ฒ์ด ์๋๋ผ๋ฉด ๋ง์ด๋ค. :stuck_out_tongue:
"์์ ๊ด๋ฆฌ Xaml ๊ตฌํ"์ด ์๋ฏธํ๋ ๋ฐ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น? FWIW, ์ฌ๊ธฐ์์ ๊ธฐ๋ํ๋ ๊ฒ์ System.Xaml์ ์ง์ ์ ์ธ 1:1 ํฌํธ๊ฐ ์๋๋ผ System.Xaml, Xamarin.Core.Xaml, ๊ทธ๋ฆฌ๊ณ ... ๊ธ์, ๋๋ UWP์ Xaml์ด๋ผ๊ณ ๋งํ๊ณ ์ถ์ง๋ง... :wink:
๋ด๋ถ์ ์ผ๋ก๋ WPF์ Xaml๋ณด๋ค UWP์ Xaml์ ์ ํธํ๋ค๊ณ ๋ค์์ง๋ง Microsoft์ ํ๋ง๋ค ์๊ฒฌ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. DotNet์ Xaml์ ์์ฌํ ์ฌ์ง ์์ด ๋ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ์ง๋ง UWP๊ฐ ์ถ์๋๋ ์ด์ ๊ฐ ๋๋ ๋จ์ ์ด ์์ ์ ์๋ ์ค๋ช
์์ ๋ชจ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ํ๊ฒ ๊ด๋ฆฌ๋์ง ์๋๋ค๋ ๊ฒ์ DotNet ๋
์ ์ด ์๋๋ผ๋ ์ ์์ UWP์ Xaml์ ๋ํ ํ ๊ฐ์ง ์ข์ ์ ์ ์ธ๊ธํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ ์ฌ์ ์ธ ๋ฏธ๋์ Microsoft.Xaml์ DotNet ์ธ๋ถ์์ ์ฌ์ฉํ ์ ์๋๋ก ๊ด๋ฆฌ๋๋ ํ์ฌ๋๊ฐ ์๋ ํ๋ซํผ ๊ฐ ๊ธฐ๋ณธ ๊ตฌํ์ด ๋ ์ ์์ต๋๋ค. (์ด ๋ฏธ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ CoreFX์ ๊ตฌ์ฑ ์์๋ก ์ ๊ณต๋๋๋ก ๊ฒฐ์ ๋์ง ์๋ ํ dotnet/corefx์ ํฌํจ๋์ง ์๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.)
์๊ฒ ์ต๋๋ค. ํผ๋์ค๋ฝ์ต๋๋ค. .NET์ด๋ผ๊ณ ํ๋ฉด... 4.6์ ๋งํ๋ ๊ฑฐ๊ฒ ์ฃ ? ๋ด ์ดํด์ ๋ฐ๋ฅด๋ฉด ์ด๊ฒ์ ๋ณธ์ง์ ์ผ๋ก ํ๋ซํผ ๊ฐ ๋ฐ .NET(4.6) ์ ์ฉ์ธ .NET Core Xaml ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํ ๊ฒ์ ๋๊น? "DotNet ๋ ์ ์ด ์๋"์ด๋ผ๊ณ ๋งํ๋ฉด "DotNet์ด ํฌํจ๋จ"์ ์๋ฏธํฉ๋๊น? ์ด์ค ๋ถ์ . :stuck_out_tongue: ์ด๊ฒ์ .NET 4.6์์ UWP Xaml์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ถ๋ช ํ ์ฌ์ค์ด ์๋๋๋ค.
๋ด๊ฐ ์ฌ๊ธฐ์ ๋ฌด์์ ์๋ชปํ๋์ง ์๋ ค์ฃผ์ธ์. ๋ํ ์ฌ๊ธฐ์ ์ข์ ๋ชฉํ๋ Xaml์ CoreFX์ ์ผ๋ถ๋ก ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. ์ผ๋ง ๋์ ์ด ๋ฌธ์ ๋ฅผ ๋๋ฌ์ธ๊ณ ์ผ๋ถ ํ ๋ก ์ด ์งํ๋์์ต๋๋ค . -- ๊ทธ๋ฆฌ๊ณ ํ์คํ, @RichiCoder1 ์ด ํ๋ฆฌ์ง ์์๋ค๋ฉด ํด๋น ์ค๋ ๋์์ ์ ํํ ์ด ์์ ์ ์ํํ๊ธฐ ์ํ ํฌํ๊ฐ ์์ต๋๋ค... ์ ์ ์ด๋์ ๊ทํ์ ํ๊ทธ๋ฅผ ๋ณธ ์ ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค! :์๋ค:
๋ํ UWP์ Xaml์ ๋ํ ๋ด๋ถ์ ์ธ ์ฑํฅ๋ ๋ค์์ง๋ง, ๊ทธ ์ค๋ ๋๋ฅผ ๋๋ฌ์ผ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ด ์์๋๊ธฐ ์ ์ด์์ต๋๋ค( Tim Heuer์ Twitter ํ ๋ก ). ๋ฐ๋์ ๊ทธ ์ดํ๋ก ํ์คํ ์์ง์์ต๋๋ค. ์ ์ด๋ ๋ ์ข์์ต๋๋ค! ใ ใ ใ . "Xaml์ UI์ฉ"์ด๋ผ๊ณ ์คํดํ๋ ์ฌ๋๋ค์ด ์๊ณ ๋๋จธ์ง๋ ์๋ ๋ฐฉ์์ ์ดํดํ๊ณ ์์ต๋๋ค. :stuck_out_tongue:
DotNet์ด๋ผ๊ณ ํ๋ฉด ์ฝ์ด์ ํ๋ ์์ํฌ๋ฅผ ํฌํจํ๋ DotNet์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ UWP ์ฑ ์ธ๋ถ์์ UWP Xaml์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. C++ UWP ์ฑ์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ธ๊ธํ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ DotNet ๋ ์ ์ด ์๋๋ผ๋ ๊ฒ์ C++(๋๋ ์ ์ฌ์ ์ผ๋ก ๋ค๋ฅธ ์ธ์ด)์์ ์ฌ์ฉํ๋ ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ XAML์ ์์ ํ ํ์ด UI ์ธ๋ถ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฌ๊ฐํ๊ฒ ๊ณ ๋ คํ์ง ์๋ ์ด์ ๋ ๋๋ฌผ๊ฑฐ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ Microsoft ๋๋ ํํธ๋์ ์ ๊ทน์ ์ผ๋ก ๋น๋ฐฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ๊ฐ์ธ์ ์ธ ์๊ฐ์ด ์๋๋ผ ํํ๋ ฅ๊ณผ ํ์ ๋์ด ํ๊ฐํฉ๋๋ค.
์๊ฒ ์ต๋๋ค. @RichiCoder1 ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์ง๊ธ _๊ฑฐ์_ ์์ ํ ๋น์ ์ ๋ฐ๋ฅด๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค... "ํ๋ ์์ํฌ"๋ผ๊ณ ํ๋ฉด 4.6์ ์๋ฏธํฉ๋๊น?
๋ด ์๊ฐ์ ๋ด๋ถ ํ์ด UI ์ธ๋ถ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋๋ฌผ๋ค๊ณ ๋๋ผ๋ ์ด์ ์ค ์ผ๋ถ๋ Tim์ ๊ฒ์๋ฌผ์์ ๋ณผ ์ ์๋ฏ์ด ๊ฐ๋ฐ์์์ ์ด์ ํ ์ฐธ์ฌ์ ๊ด๋ จ์ด ์๋ค๊ณ ๋งํ ๊ฒ์ ๋๋ค. ๋๋ ์ฝ 1๋ ์ ๋ ์ ๊น์ง MSFT์ ์ฐธ์ฌํ๋ ๊ฒ์ ๋ํด ์ ๋ง ์๋๋ฝ์ง ์์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ํด ์ ์ฃ์ ๋๋ค. ์ฌ์ค Tim์ ํธ์์ ๋ด๊ฐ Windows 8.0 ์ดํ๋ก ๋ชจ๋ ์ฌ๋์๊ฒ Xaml ์์คํ ์ด ์์ ํ ๋ค๋ฅด๊ณ ์๋ ์์ด์ผ ํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๋ค๊ณ ๊ฐ์ธ์ ์ผ๋ก/๋น๊ณต๊ฐ๋ก ๋ถํํ ํ ๋ด๊ฐ ํ ํฌํ์ ๊ดํ ๊ฒ์ ๋๋ค. UWP(Windows 10) Xaml์ด 3๋ ๋์ ํ์ ์ด๋ ๊ฐ์ ์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ๋ค๋ ์๋ฌธ์ ๋ค์์ ๋ ํ ๋จ๊ณ ๋ ์ฌ๋ผ๊ฐ์ต๋๋ค. ๋์ด์ผ๋ณด๋ฉด ํจ์ฌ ๋ ์ผ์ฐ ํ์ด์ผ ํ์ต๋๋ค.
๊ทธ๊ฒ์ด ์ค์ํ ๋ฐฐ์์ ๊ตํ์ด์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๋๋ ์ด์ ์ํ๊ณ์ ํจ์ฌ ๋ ํตํฉ๋์ด ์๊ณ (๋๋ ์ ์ด๋ ๋ด๊ฐ ๊ทธ๋ฐ ๊ฒ์ฒ๋ผ ๋๋๋ค) ๋ด ๋ชฉ์๋ฆฌ๊ฐ ๋ค๋ฆฌ๋ ๊ฒ์ฒ๋ผ ๋๋๋ค. ์ฌ์ค, 4๊ฐ์ ์กฐ๊ธ ์ ์ ๋ด๊ฐ ํ _๋งค์ฐ ์ค์ํ_ ํฌํ ๊ฐ ์ด๋ฒ ์ฃผ ์ด ๊ถ์ ์๋ Visual Studio ํ์ ์ํด ๊ฒํ ์ค์ผ๋ก ํ์๋์์ต๋๋ค. ๋ด ์ธ์์ด ํ๋ค๋ ธ๋ค๊ณ ๋งํ๋ ๊ฒ์ ์ ์ ๋ ํํ์ ๋๋ค. :์๋ค:
ํ๋ ์์ํฌ์์๋ ๋ฐ์คํฌํ .Net์ ์ฐธ์กฐํ๋ ๋ฐ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. Core์ Full Framework๋ฅผ ๊ตฌ๋ณํ๋ ๊ฐ์ฅ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋์ํ๋ค. Microsoft์ ๋ชจ๋ ์ต๊ทผ ์์ง์์ ๋ํ ์ข์ ์ ์ค ํ๋๋ ๊ฐ๋ฐ์์์ ๋ ๋์ ์ฐธ์ฌ๋ฅผ ๊ฑฐ์ ๊ฐ์ํ๋ค๋ ๊ฒ์ ๋๋ค. :)
๋ ์์ ์ ๋ํด ๋งค์ฐ ํฅ๋ถ! ์ด์ ๊ทธ ์ฐ๊ทน์ด ์ด๋ป๊ฒ ๋ ์ง ๋ณด๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ๊ณต์ ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ๋ UWP ์ฑ์ ์ ์ธํ๊ณ Xamarin ๋๊ตฌ๋ฅผ ์ผ๋ฅ๋ก ๋ง๋๋ ๊ฒ๋ถํฐ ์๋ฏธํ ์๋ ์๊ณ ๊ทธ๋ณด๋ค ๋ ๋์ ์์ค์ ์๋ฏธํ ์๋ ์์ต๋๋ค. ์ค์ง ์๊ฐ(๊ทธ๋ฆฌ๊ณ ๋ด ์๊ฐ์ //Build)๋ง์ด ์ ์ ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๊ตฐ์... ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. :+1:
//build์ ๊ดํด์๋... ์ฐธ์ผ๋ก. :) ๊ฐ์ธ์ ์ผ๋ก UWP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋(๋์จํ๊ฒ?) ์๋ก์ด Xamarin์ ์ฅ์ ์ ํ์ฉํ์ฌ iOS/Droid๋ก ์ด๋ํ๋ ์๋ก์ด ๋ชจ๋ธ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ๋ ๊ฐ๋ ฅํ Xaml ๋ชจ๋ธ๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ฒฐ๊ตญ ์ด ์ค๋ ๋๋ฅผ 4์ 28์ผ ์ดํ๋ก ์กฐ์ฉํ ์ ์งํด์ผ ํฉ๋๋ค. :stuck_out_tongue:
๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค! :)
UWP ์ฌ์ฉ์๋ .NET ์ฝ๋๋ฅผ ํ์ธํ์ง ์๋ XAML ๊ตฌํ์ ๋ ์ฝ๊ฒ ์ฑํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค(ํด๋น ์ฝ๋๊ฐ .NET Core ํญ๋ชฉ์ด๋๋ผ๋).
์์ฒด ํฌํจ๋ ๋ธ๋๋ฐ์ค์ฒ๋ผ(๋๋ UWP์๋ง ์์กดํ์ง๋ง UWP๋ [์์ง] ํฌ๋ก์ค ํ๋ซํผ์ด ์๋๋ฏ๋ก ์ํ์ง ์์ต๋๋ค. Silverlight [์ฑ์ Win10 ๋์์ผ๋ก๋ง ์ ๊ธ ์ ์์]).
๊ทธ๋ฌ๋ ์ด๊ฒ์ XAML์ ๋ค์ํ ์์ฉ ํ๋ก๊ทธ๋จ(UWP UI, Workflow, WPF/.NET, Silverlight ๋ฑ)์ ๋ํ ์ถ์ํ ๊ณ์ธต ๋ฐ ํ๋ฌ๊ทธํ/๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ค์ง ์๋ ํ ๋ค์ ์ ํ ํฝ์ ๋๋ค. DirectX๊ฐ HAL(Hardware Abstraction Layer)์ ํตํด ๊ธฐ๊ณ๋ก ๋ณด์ด๋ ๊ฒ์ฒ๋ผ HEL(Hardware Emulation Layer - http://www.developer.com/net/asp/article.php/968461/What์์ ์ธ๊ธ ์ฐธ์กฐ)์ ๋ํ ๊ฐ๋ฅ์ฑ๋ ์ด์ด์ค๋๋ค. -is-DirectX.htm). ๋ฌผ๋ก ์กฐ์ฌํ์ง ์์ผ๋ฉด ์ฑ๋ฅ๋ฉด์์ ์ง์ฅ์ ๋ฌธ์ ์ด ์๋ ์์ง๋ง DirectX๊ฐ ๊ทธ๊ฒ์ ๋์ด๋ผ ์ ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ฌํ ์ํคํ ์ฒ๋ ๋์์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
System.Xaml์ .NET Core๋ก ์ด์ํ๊ธฐ ์ํ +1.
์์ผ๋ก ๋ชจ๋ ํ๋ซํผ์์ ๋จ์ผ ํตํฉ XAML ์ธ์ด(.NET Xaml, UWP Xaml, Xamarin Xaml)๊ฐ ์ฌ์ฉ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด๋ฅผ ๋ฌ์ฑํ๋ ค๋ฉด .NET Core ๋ฒ์ ์ System.Xaml์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
+1
๋๋ ์๋ฆผ ์๋ฆผ์ ํผํ๊ธฐ ์ํด ํ์ฌ ์ฃผ์ ์ ๋ํ ๊ด์ฌ/๋ฐ์์ ํ์ํ๊ธฐ ์ํด GitHub์์ ๊ฐ๋ณ ๋๊ธ์ +1ํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ํํ @jasonwilliams200OK ์ ๋ ๊ฐ๋ ฅํ ํฌ๋ก์ค ํ๋ซํผ System.Xaml ์๋ฃจ์ ์ ๋ํ ๊ธฐ์ด์ ์ธ ๊ด์ฌ์ ํํํ๋ ์ปค๋ฎค๋ํฐ ํ์์ ๋๋ ์๋ฆผ ๊ฒฝ๊ณ ๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. :angel: ๋ค๋ฅธ ์ฃผ์ ๋ก ์ฌ๋ฌ๋ถ์ ๊ณ ํต/์ฑ๊ฐ์ฌ/๋ถ๋ง์ ๊ณต์ ํ ์๋ ์์ต๋๋ค. :๋์ง:
์ด๋ค ๊ฒฝ์ฐ์๋ ์ ํจ(๋ฐ ๊ฐ์น ์๋) ํฌ์ธํธ. ์์ธ์ ์ํด ๋ด :+1:์ ์ถ๊ฐํ์ต๋๋ค.
@jasonwilliams200OK
๋ถ๋ฌ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
FWIW, ๋ฐฉ๊ธ Xamarin.Forms ํ์ ์ด๋ํ์ฌ ์ฌ๊ธฐ์์ ๋ํ์ ์ฐธ์ฌํ์ต๋๋ค.
https://bugzilla.xamarin.com/show_bug.cgi?id=26740
๋๋ _์ฌ๊ธฐ_ ๋ชจ๋ ์ฌ๋์ด _๊ฑฐ๊ธฐ_์ ๋ํ๋ฅผ ์ ์ ์๋๋ก ํ์ญ์์ค. :์๋ค:
์ด ๊ฒ์๋ฌผ์ ๋๊ธ์์ ํ๋ฅญํ ํ ๋ก ์ด ์งํ ์ค์
๋๋ค.
https://blogs.msdn.microsoft.com/dotnet/2016/05/06/net-core-rc2-improvements-schedule-and-roadmap/
๊ธฐ๋ณธ์ ์ผ๋ก Visual Studio์์ ์งํ ์ค์ธ ๊ฒ์ผ๋ก ๋ณด์ด๋ ์ ํ๋ก์ ํธ ์์คํ ์ ๋ํ JSON ๋ Xaml์ ๋๋ค(๋ง์ธ!). ๋ถ๋ด์์ด ์ฐธ์ฌํ์ธ์. :) ์ด๋ ๊ฒ ๋ ๋ค๋ฅธ ๋ชจ์ต์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
@Mike-EEE, ์ด ๋ก๋๋งต๋ ์ดํด๋ณด์ธ์: https://github.com/dotnet/roslyn-project-system/blob/master/docs/Roadmap.md. ์๋ก์ด Roslyn ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์คํ ์ .. ์์คํ ๊ฒ์ ๋๋ค.
์...์ด์ ์ผ ์ด ์์์ ๋ค์ผ๋ ๋ฏธ์ณค๋ค์. ์ด๊ฒ์ Scott Hunter๊ฐ ํฅํ ๊ฒ์๋ฌผ์ ๋์ฌ ๋ ๋ง์ ์ ๋ณด์ ๊ด๋ จํ์ฌ ์์ ์ธ๊ธํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ์ธ๊ธํ ๊ฒ์์ ํ๋ฆผ์์ต๋๋ค. ๋ณด๊ธฐ ์ข์ต๋๋ค. ๋ก์ฌ๋ฆฐ์ ํ์ด ์ปค์ง๋๋ค. ํ์ง๋ง Xaml ์ง๋ ฌํ ํ๋ก์ ํธ ์ ์์ ๋ํ ๋ช ๊ฐ์ง ๋ฌธ์ ๋ฅผ ๋ณด๋ ๊ฒ์ด ๋ ํธํ ๊ฒ์ ๋๋ค. :๋์ง:
ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ธ์. https://github.com/dotnet/roslyn-project-system#welcome -to-the-roslyn-c-and-visual-basic-project-system(๋ฐ VS MSDN ๋ธ๋ก๊ทธ ๋งํฌ ), MEF๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๊ตฌ์ฑ ์์๋ฅผ ๊ต์ฒดํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด XAML๋ก ์์ฑ๋ ํ๋ก์ ํธ ์ ์๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ธฐ ์ํด ์ถ๊ฐ ์ง๋ ฌ ๋ณํ๊ธฐ๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก JSON์ด ๋ ์๋๋ฝ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ์์ฑ ๋ฐ ์ข ์์ฑ ๋ฑ์ ์ค๋ช ํ ๋ XAML/XML๋ณด๋ค JSON์ ์ ํธํ๊ฒ ๋์์ต๋๋ค(YAML์ JSON๋ณด๋ค ๋ ์๋๋ฝ๊ณ lang ํ์ค์ std-JSON๊ณผ ๋ฌ๋ฆฌ ์ฃผ์์ ์ง์ํฉ๋๋ค. ๊ทธ๋ฌ๋ dotnet ์ธ๊ณ์์ ๋ค์ฌ์ฐ๊ธฐ ์ธ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ YAML ๋ฐ ๊ธฐํ ์ธ์ด๋ ์์ง ์ธ๊ธฐ๋ฅผ ์ป์ง ๋ชปํ๊ณ ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก XAML/XML๋ณด๋ค JSON์ ์ ํธํ๊ฒ ๋์์ต๋๋ค.
๋ณด์! ์ด ์ฌ๋์ ์ ๊ฑฐํ์ญ์์ค!!! ์ํด, ๋ด ๋ง์... :)
๋๋ ๋ ์ธ๊ณ์ ์ฅ์ ์ ๋ชจ๋ ๋๋ฆด ์ ์์ต๋๋ค. @SuperJMN ๋ฐ @Grokys ๊ฐ ์ด์ ๋ํด ๋ ๋ง์ด ๋งํ ์ ์์ง๋ง OmniXaml์์ ๋ ์ฅํฉํ๊ณ ์๋ค์ค๋ฝ๊ฒ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด ๋ฌธ์ w/ JSON์ w/ JSON์ด ์๋์ง๋ง .NET ๊ตฌ์ฑ์ ๊ธฐ์ด์ด๊ธฐ๋ ํ ๋์์ธ ์ ๊ทผ ๋ฐฉ์(์ด๋ ์๊ฐ์ด๋ผ๊ณ ๊ฐ์ ํจ), ์ฆ ๊ฐ์ฒด์ ์คํค๋ง๋ "๋ ๋ค๋ฅธ ์ํฐํฉํธ"์ ๋๋ค. ๊ฐ๋ฐ์๋ ํด๋์ค ์ ์๋ฅผ ๊ด๋ฆฌ/์ ์งํด์ผ ํ๋ฉฐ _not_ ํด์ผ ํฉ๋๋ค. ์ฆ, Xaml ํ๋ก๊ทธ๋๋ฐ์์(์๋ค์ํผ!) ํด๋์ค ์ ์๋ ๋ฌธ์ ์คํค๋ง _is_์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๊ฒ์ ๋ฌธ์ ๊ฐ๋ฐ์ ๋งค์ฐ โโ์์ฐ์ค๋ฌ์ด ๋๋์ ์ฃผ๊ณ ๋๊ตฌํ์๋ ๋์์ด ๋ฉ๋๋ค.
๊ฐ๋ฐ์ ์ ์ ์ ๋งํ ๊ฒ๋ ์์ต๋๋ค. :smile: ๋ถ๋ถ๋ช ํ ์คํค๋ง ๋ฌธ์๋ฅผ ์ฐพ์ ๊ทธ๊ฒ์ ์ค์นํ๊ณ ๊ฐ์ฅ ๊ฐ๋จํ ์ธํ ๋ฆฌ์ผ์ค๋ฅผ ์๋์ํค๋ ๋ฐฉ๋ฒ์ ์์๋ด๋ ๊ฒ๋ณด๋ค ๋๋ฅผ ํ๋๊ฒ ํ๋ ๊ฒ์ ์์ต๋๋ค.
JSON๊ณผ ๊ด๋ จ๋ ๋ค๋ฅธ ๋ฌธ์ ๋ JSON์๋ง ๊ตญํ๋ ๋ฌธ์ ๊ฐ ์๋๋ผ ์น ์ฌ๊ณ ๋ฐฉ์์ ๋ํ ๊ฒ์ ๋๋ค. ๋ฐ๋ก ๋ช ๋ช ๊ท์น์ ๋๋ค. .NET ๊ตฌ์ฑ๋ ์ด ๋ฌธ์ ๋ฅผ ๊ฒช์์ต๋๋ค. ์ฆ, ๋ค์๊ณผ ๊ฐ์ด POCO๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
public class MyPoco {
public string Property {get; set;}
}
๊ทธ๋ฆฌ๊ณ JSON(๋๋ app.config)์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ๋๋ค.
{
{ "property": "Hello world I have inconsistent naming conventions!" }
}
์ฌ๊ธฐ์ ๋ค์ Xaml์ ํด๋์ค ์ ์์ ์ง๋ ฌํ๋ ๋์๋ฌผ ์ฌ์ด์ ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ Xaml์ ์ ํธํฉ๋๋ค.
.NET ๊ตฌ์ฑ์ ๋ชจ๋ ๊ตฌ์ฑ ์ํฐํฐ์ ๋ํด 4๊ฐ์ ์ํฐํฉํธ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ .NET ๊ตฌ์ฑ์ด ์ต์ ์ด๋ผ๊ณ ๋งํด์ผ ํฉ๋๋ค.
ConfigurationElement
๋ฐ/๋๋ ConfigurationSection
์์๋ app/web.config์์ ๊ฐ์ ๊ฐ์ ธ์ค๊ณ ์ผ๊ด์ฑ์ด ์๋ camelCase๋ฅผ PascalCase์ ๋งคํํ์ต๋๋ค -- ์ค ๋ฏธ์น!.JSON ๋ฌธ์๋ก ์ง๋ ฌํ๋๋ POCO ๊ฐ์ฒด๊ฐ ์๋์ง ๋๋ ์์ ์ค๋ช ๋ ๊ด๋ จ ์๋ ๋งคํ๋ ๋ฐ์ํ๋์ง ์๋งํผ JSON์ ํ๋ก์ ํธ ๋์์ธ์ ์ฐ๊ตฌํ์ง ์์์ต๋๋ค. ์ด์ ๋ํ ๋ต์ ์๊ณ ๊ณ์๋ฉด ๋ฃ๊ณ ์ถ์ต๋๋ค.
์ด์จ๋ Xaml์ ๋ ๊ฐ์ ์ํฐํฉํธ๋ง ํ์๋ก ํ์ฌ ์ด ๋์์ธ์ ๊ฐ์ ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ฝ์ด๋ณด๊ธฐ์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋๋ ํ์ผ์ด ์๊ตฌํ๋ ๋ฐ๋ก ๊ทธ ์ผ์ ํ์ง ์๋ "์ ์ฌ๋"์ ๋ค์ ํ ๋ฒ. :์์:
.JSON ๋ฌธ์๋ก ์ง๋ ฌํ๋๋ POCO ๊ฐ์ฒด๊ฐ ์๊ฑฐ๋ ์์ ์ค๋ช ๋ ๊ด๋ จ ์๋ ๋งคํ๋ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ์ด์ ๋ํ ๋ต์ ์๊ณ ๊ณ์๋ฉด ๋ฃ๊ณ ์ถ์ต๋๋ค.
[DataContract] ๋ฐ [DataMember] ์์ฑ์ ๊ณ ๋ คํ๋ฉด .NET ํ๋ ์์ํฌ(BCL ์์ค์์)๊ฐ JSON ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ serailizer๋ฅผ ์ง์ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ JSON์์ JavaScript(๋ฐ ๊ธฐํ ๋ง์ ์ธ์ด)๋ก ๋๋ CSON์์ CoffeeScript๋ก ์ปดํ์ผ๋ฌ์ ์ํ ๋ค์ดํฐ๋ธ/๋ก์ฐ๋ ๋ฒจ JavaScript ๊ฐ์ฒด ๋ฆฌํฐ๋ด <-> C# POCO ์ ํ ์ง์์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ XPATH XQUERY XSLT ์ฐ๊ฒฐ์ด ์๋ XML๊ณผ ๋ฌ๋ฆฌ JSON์๋ ๋ฐ์ดํฐ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ์คํค๋ง ๊ฐ๋ ์ด ์์ผ๋ฉฐ JSON.net์ ์ด๋ฅผ ์ฑํผ์ธ์ฒ๋ผ ์ง์ํฉ๋๋ค.
C#6 ์ด์์ ๊ฒฝ์ฐ ๋ค์ ๋ฌธ์ /์ ์์ ์ดํด๋ณด์ญ์์ค. https://github.com/dotnet/roslyn/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+author%3Agafter+ ์ฌ์ , ํนํ https://github.com/dotnet/roslyn/issues/6949 ๋ฐ ๋ด๋ถ ๋งํฌ๋ฅผ ๋ฐ๋ฅด์ญ์์ค. ์๋ก์ด C#6 ๋์ ๋๋ฆฌ ์ด๋์ ๋ผ์ด์ ๊ตฌ๋ฌธ๊ณผ ์ด๋ฌํ ์ ์์ผ๋ก C#์ ์๋ฏธ์ JSON์ ๋ ์น์ํด์ง๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
.NET ๊ตฌ์ฑ์ด ์ต์ ์ด์์ต๋๋ค.
๋์ํฉ๋๋ค. ASP.NET ํ์์ ํ๋ฌ๊ทธ ์ค ํ๋ ์ด ํจํค์ง๋ก ๋์ ํ "๊ตฌ์ฑ" ๋ฐ "IOption" ํจํด๋ ์ฆ๊ธธ ์ ์์ต๋๋ค. https://github.com/aspnet/Configuration , https://docs.asp.net/ en/latest/fundamentals/configuration.html , ์ ๋ช ๋์ XML ๋ฐ์ธ๋ฉ ๊ตฌ์ฑ ๊ด๋ฆฌ์๋ฅผ ๋์ฒดํฉ๋๋ค.
JSON์ ๋ฐ์ดํฐ์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ์คํค๋ง ๊ฐ๋ ์ด ์์ผ๋ฉฐ JSON.net์ ์ด๋ฅผ ์ฑํผ์ธ์ฒ๋ผ ์ง์ํฉ๋๋ค.
์คํค๋ง๋ก์์ ํด๋์ค ์ ์์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. :) :) :)
C#์ด ์๋ฏธ์ ์ผ๋ก JSON ์นํ์ ์ด ๋๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํํ ๋ฌผ๋ก _any_ ๊ฐ์ฒด๋ ์ด๋ฏธ JSON ์นํ์ ์ ๋๋ค. JSON์ ์๋ํ ์์ ์ ์ํํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. ๊ฐ๊ฒฐํ๊ณ ์ฌ๋์ด ์ฝ์ ์ ์๋ ๋ฐฉ์์ผ๋ก ๊ฐ์ฒด ์ ์๋ฅผ ํ๊ธฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ JSON.net์ด ์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ํฐ ์ญํ ์ ํ๋ค๋ ๋ฐ๋ ์์ฌ์ ์ฌ์ง๊ฐ ์์ต๋๋ค. _applications_์ ๋ํด ์ค๋ช ํ ๋ ๋ ๋์ ๋จ์ด๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด ๋ํ๊ฐ ์์๋๋ ์์ญ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ์์ํฉ๋๋ค. :์๋ค:
๊ฒฐ๊ตญ ์ฌ๊ธฐ์๋ (์ ์ด๋ ๋์๊ฒ) ๋ ๊ฐ์ง ์๋๋ฆฌ์ค๊ฐ ์์ต๋๋ค. ์๋น์ค ๊ฒฝ๊ณ ๊ฐ์ ์ ์ก๋ ๊ฐ์ฒด๋ฅผ ์ค๋ช
ํ๋ ๊ฒ(๊ฒฝ๋)๊ณผ ์ด๋ฌํ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ค๋ช
ํ๋ ๊ฒ(์ค์ํจ)์
๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ๋ฅํ ๋ชจ๋ ๋ฉด์์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ์ปจํ
์คํธ ์ ํ์ ์ต์ํํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค. ์ต์
( IOptions
? :laughing:)์ ์ด์ด๋๊ณ ๊ฐ๋ฐ์๊ฐ ์์ ์๊ฒ ๊ฐ์ฅ ์ ํฉํ ํ์์ ์ ํํ๋๋ก ํ์ฉํ๋ ํ(๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ํจ์จ์ ์ด๋ผ๊ณ ๋๋ผ๊ฒ ํ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค! ) ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ฌ๊ธฐ์ ์ด๊น๋๋ค. :+1:
UWP XAML์ ํด๋์ .NET WPF XAML์ ๋นํด ๊ธฐ๋ฅ์ด ์ ์ต๋๋ค. ๋ด๊ฐ ๊ฐ์ฅ ๊ทธ๋ฆฌ์ํ๋ ๊ธฐ๋ฅ ์ค ํ๋๋ TypeConverters์ ๋๋ค.
https://msdn.microsoft.com/en-us/library/bb546926 (v=vs.90).aspx(์ด ๊ธฐ์ฌ๋ WPF TypeConverters์ฉ)์ ์ ์๋ ๋๋ก ๊ณ ์ ํ TypeConverter๋ฅผ ๋ง๋ค๋ ค๊ณ ํ์ต๋๋ค.
UWP ์์๋ "XML ๋ค์์คํ์ด์ค ' using:App2TypeConverters '์ ์ ์ ์๋ ์ ํ '์๋์ฐจ'"๊ฐ ํ์๋ฉ๋๋ค.
<ListBox>
<local:car></local:car>
</ListBox>
UWP์ ์ฌ์ฉ์ ์ง์ TypeConverter๋ฅผ ์ถ๊ฐํ ์ ์๋์? ์๋๋ฉด ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? XamlCompiler๊ฐ ๋ด๋ถ IServiceProvider๋ฅผ ์ฌ์ฉํ์ฌ TypeConverter๋ฅผ ๋ฑ๋กํ๋ค๋ ๋ด์ฉ์ ์ฝ์์ต๋๋ค. ์ด์ฉ๋ฉด ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ๋ ๋ฑ๋ก ๋ ์ ์์ต๋๊น?
๋ํ XAML ์ปดํ์ผ๊ณผ ๊ด๋ จ๋ ๋ฐฐ๊ฒฝ ์ง์์ ๋ํด ๋ ์๊ณ ์ถ์ต๋๋ค. XAML์ ์ฌ์ ํ โโBAML๋ก ์์ฑ๋ฉ๋๊น? ์ด๋ป๊ฒ๋ XAML ์ปดํ์ผ์ ์ฐ๊ฒฐํ ์ ์์ต๋๊น?
๋ฐ๋ผ์ System.Xaml์ ์ฌ์ญ์์ค.
Sooooooo... ์ด๊ฒ์ System.Xaml์ด ๋ง์นจ๋ด ํํฐ์ ์ฐธ๊ฐํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น? :์ค๋ง์ผ: :์ค๋ง์ผ: :์ค๋ง์ผ:
https://blogs.msdn.microsoft.com/dotnet/2016/05/27/making-it-easier-to-port-to-net-core/
๋๋ ์ฌ๊ธฐ๋ก ๋ค์ด๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋งํ ๊ฒ์ด๋ค.
a) .Net Core์ ํจ๊ป ์คํ๋๋ XAML์ ์ ๋ง ์ข์ํ๊ณ
b) ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ ํ๋ฉด ์ด๋ฏธ ๋ค๋ฅธ ์ํคํ
์ฒ(์: Raspberry Pi์ IoT ํธ์)๋ก ์ด์๋๊ณ ์์ผ๋ฏ๋ก UWP ํ๋ฏธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ํฉ๋ฆฌ์ ์
๋๋ค.
WPF XAML์ ์ป๋ ๊ฒ์ ๊ฐ๋ฅํ๋ค๋ฉด ๋๋์ต๋๋ค.
.NET Core๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒ์๋ถํฐ ๋ค์ ๋น๋๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ง๋ 10๋ ๊ฐ์ ํ์ต์ ๊ธฐ๋ฐ์ผ๋ก XAML๋ ๋์ผํ๊ฒ ์ํ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์งํ WPF/Silverlight/WinRt-XAML์ ์์ ํ ์คํจ์์ต๋๋ค. ํ ๊ฑธ์ ์์ผ๋ก, ๋ ๊ฑธ์ ๋ค๋ก(ํ ๊ฑธ์์ ์์ผ๋ก). XAML, Expression Blend ๋ฑ์ ์ฝ์์ ์คํ๋์ง ์์์ต๋๋ค.
์ ๋ Scott Hunter๊ฐ "๊ธ์, ๊ฒฐ์ฝ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ง ๋ชปํฉ๋๋ค. Windows ์ฌ์ฉ์๋ Windows ๋ชจ์์ ๋ฒํผ์ ๊ธฐ๋ํ๊ณ Mac์ Mac ๋ฒํผ์ ๊ธฐ๋ํฉ๋๋ค"๋ผ๊ณ ๋งํ๋ฉด์ Dotnet Core์์ ํ๋ซํผ ๊ฐ UI๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ ๋นํํ๋ ๊ฒ์ ๋ค์์ต๋๋ค. ๊ธ์์ ์ฃ์กํฉ๋๋ค - ๊ทธ๋ ์ง๋ 5๋ ๋์ ์ด๋์ ์์๋์??? ์น์ ํ์ฌ UI ๋์์ธ์ ์์ ํ ์ง๋ฐฐํ๊ณ ์์ผ๋ฉฐ ์น์๋ "ํ์ค ๋ฒํผ"๊ณผ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ํ์ง๋ง ์ด๋ป๊ฒ ๋ ๊น์? ์ฌ์ฉ์๊ฐ ํด๊ฒฐํ์ต๋๋ค. ๊ทธ ์ฃผ์ฅ์ ๋จ์ํ ๋ชจ๋ ์ฆ๊ฑฐ์ ๋ฐ๋ํฉ๋๋ค. ์ด๋ฌํ ์น UI๋ ์ด์ ์ง๊ตฌ์์ ์๊ฑฐ๋๋ฅผ ์ง๋ฐฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ถ๋ช ํ Dotnet Core์๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. [์์์] "ํ์ค ํ๋ซํผ ๋ชจ์๊ณผ ๋๋"์ ๋ํ ์ด๋ง ์์ด ํฌ๋ก์ค ํ๋ซํผ XAML์ ๊ฐ์ง ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ด๊ฐ ์ถ์ ํ๋ ์ฃผ์ ๊ธฐ์ ์ฅ์ ๋ฌผ์ "XAML"(๋๋ ์ฐจ์ธ๋ UI ํ๋ซํผ์ด ํธ์ถ๋๋ ๋ชจ๋ ๊ฒ)์ ํฌ๋ก์ค ํ๋ซํผ 3D API์ ์ธํฐํ์ด์คํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. MacOS ๋ฑ์์ Direct3D/Direct2D์ ์์กดํ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ฌธ์ ๋ ๊ทธ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ Unity ๋ฑ์ ์ํด ํด๊ฒฐ๋์์ต๋๋ค.
XAML ๊ธฐ์ ์ ํ๊ตฐ์ ์คํ ์์ฑํ๋ ์ฃผ์ ์ ๋ํด Microsoft์์ ๋๋ฌด ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์์ต๋๋ค. ๊ทธ ์์ ์จ๊ฒจ์ง ๋นํธ์ฝ์ธ โโ๋๋ microsoft.com์ ๊ฐ์ธ ํค๊ฐ ์๋์ง ๊ถ๊ธํด์ผ ํฉ๋๋ค.
MSFT: ์คํ ์์ค WPF/Silverlight/WinRT-XAML์ ์คํํ๊ณ UX์ ๋ค์ ํฉ๊ธ ์๋๋ฅผ ์์ํ์ญ์์ค.
Scott Hunter, @JackUkleja์ ๋ํ ๊ทํ์ ์๊ฒฌ์ ๋ค์ผ๋ ์ ๋ง ๋๋์ต๋๋ค. ์ด์ ๋ํ ์์ค/๋งํฌ๊ฐ ์์ต๋๊น? ๋น์ ์ด ๋งํ๋ ๊ฒ์ด ์ฌ์ค์ด๋ผ๋ฉด, ๋น์ ์ด ๋งํ ๊ฒ ์ธ์๋ ์ฌ๋ฌ ์ธก๋ฉด์์ (๋๋ผ์ด) ๋ฌด์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ข์ UX๋ ์ข์ UX์ ๋๋ค. ๋น์ ์ด ์ง์ ํ๋ฏ์ด ์น์ ์ด๊ฒ์ ๋ช ํํ๊ฒ ๋ณด์ฌ์ค๋๋ค. ๊ธฐ๋ณธ ์์ฉ ํ๋ก๊ทธ๋จ ์ฌ์ฉ์๋ ๊ธฐ๋ณธ ์ธํฐํ์ด์ค์ ๋ํ ํน์ ๋ชจ์๊ณผ ๋๋์ ํ์คํ ์ ์๋์ด ์์ง๋ง ๋ค์ ํ ๋ฒ ์ด๊ฒ์ ํ ๋ง์์ ํด๊ฒฐํ ์ ์์ด์ผ ํฉ๋๋ค.
iOS ๊ธฐ๊ธฐ์์ Droid "์คํจ"(๋์ ํฌํจ)์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณผ ์ ์๊ณ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ์ด๊ฒ์ WPF์์ ๊ฐ๋ฅํ์ผ๋ฉฐ ์์ผ๋ก ๊ณ์ ์ํ๋์ด์ผ ํ๋ ๋ฐ๋ก ๊ทธ๋ฐ ์ข ๋ฅ์ ์๊ฐ์ ๋๋ค. ์ฆ, ๋ชจ์/๋๋/๊ฒฝํ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ๋์์ธํ๋ ๋ฐ ๋ฐฉํด๊ฐ ๋์ด์๋ ์ ๋ฉ๋๋ค. ํ ๋ง๋ฅผ ์ ์ฉํ ์ ์์ด์ผ ํ๋ฉฐ "๊ทธ๋ฅ ์๋ํฉ๋๋ค." ์ด๊ฒ์ ๋ถํํ๋ Xamarin.Forms์ ๋ํ ๋น๋ฐฉ์ด์์ต๋๋ค. ๋ค๋ฅธ ํ๋ซํผ์ ์ค๋ช ํ์ง๋ง ๊ฐ ๋์ ํ๋ซํผ์์ ๋ชจ๋ ๊ฒ์ด ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ง์ ๋ง์ฐฐ์ด ์์ต๋๋ค.
@Mike-EEE Scott Hunter๊ฐ ์ด dotnet Rocks ์ํผ์๋์์ ๊ทธ๋ฐ ํจ๊ณผ์ ๋ํด ๋งํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค: https://www.dotnetrocks.com/?show=1291
๋ต์ฅ:
"์ญ๋ ์ต๊ณ ์ ํ๋ ์ ํ ์ด์ ํ๋ ์์ํฌ์ธ WPF๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ง๋ ์ธ์ฌ ํ"
...WPF์ ๊ด๋ จ๋ ๋ง์ ์ฌ๋๋ค์ด MSFT๋ฅผ ๋ ๋ Google๋ก ์ด๋ํ์ฌ Angular์ ๊ด๋ จ๋์ด ์๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. WPF์ ๋ง์ ์์ด๋์ด๊ฐ Angular ๋ฐ ํ
ํ๋ฆฟ๊ณผ ๊ฐ์ ๊ด๋ จ ํ๋ ์์ํฌ์ ๋ํ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ์น ํ๋ ์์ํฌ๋ฅผ ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ถํ ํ๋ ์ง ๊ฐ์ ํญ์ ๋ฐฑ๊ทธ๋ผ์ด๋์์ HTML/CSS์ ๋์๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ชจ๋ UI๊ฐ ๋ฌธ์/์๋ฏธ๋ก ๊ธฐ๋ฐ์ด๋ผ๋ ๊ฒ์ด ๋ง์ด ๋๋ ๊ฒ์ ์๋๋ฉฐ ์ด๊ฒ์ด HTML์ ํน์ฑ์ด๊ธฐ ๋๋ฌธ์ ์ธ์์ด ์ฌ์ ํ "XAML ์ฝ์ด"๋ฅผ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
[์ญ... Google ๋ฐ WPF ์ค๊ณ์์ ๋ํ ๋ฐ์ดํฐ๊ฐ ์ ํํ๋ค๊ณ ์๊ฐํ์ง ๋ง์ญ์์ค.]
@rrelyea ๊ทธ๊ฑด ๋ด ์ดํด ์์ง๋ง ๋ด๊ฐ ์ค์ํ์ ์ ์์ต๋๋ค. ๋๋ WPF ํ ์ค ์ผ๋ถ๊ฐ Angular์์ ์์ ํ๋ค๋ ๊ฒ์ ์ฝ์๋ค๊ณ ๋งน์ธํ ์ ์์์ต๋๋ค. Ian Ellison-Taylor ๋ ๋ฌด์์ ๋๊น? (์ง๊ธ์ MSFT๋ก ๋์์จ ๊ฒ ๊ฐ์ง๋ง...)
๋ฐฑ๊ทธ๋ผ์ด๋์์ HTML/CSS์ ๋์
ํตํฉ HTML CSS ํ์ค ๋๋ ์ด์ ๊ด๋ จํ์ฌ ๋ชจ๋ ์ข ๋ฅ์ ํ์ค(C, C++, JavaScript)์ ๋ํ ์ค์ ๋ฐ ์๋ ด์ด ๋ง์์๋ก ์ด ์ธ์์ ๋ ๋์ ๊ณณ์ด ๋ ๊ฒ์ ๋๋ค. ๊ณ ์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ง XAML ๋์ HTML+CSS ์คํ ๋ฑ์ ๋ํ ์์ ์งํฉ ํ๋ ์์ํฌ๋ก ๋๋ ๋จ์ํ ASPNET์ Razor์ ๋ํ ๋์ฒด ํ๋ฐํธ ์๋ ์์ง์ผ๋ก ๋ ๋๋งํ ์ ์์ต๋๋ค. https://github.com/aspnet/Razor/issues/78 : ๊ตฌ๊ทผ:
@jasonwilliams200OK FWIW/FYI์๋ ์ด๋ฏธ JSIL ์ .NET์ HTML/CSS "ํ์ค" ํฌํธ๊ฐ ์์ต๋๋ค. ๋ชจ๋ ์ถ๋ ฅ์ 100% HTML5์ ํธํ๋๋ฉฐ ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ฌผ๋ก ์ฐ๋ฆฌ๊ฐ ์ด๋งํด์ผ ํ๋ ์ข ๋ฅ์ ์๊ฐ์ ๋๋ค(๊ทธ๋ฆฌ๊ณ 2011๋ Silverlight๊ฐ ์ค๋จ๋ ์ดํ๋ก ์๊ฐํด์ผ ํ๋ ์๊ฐ์ด์์ง๋ง ์ ๋ ์ด๋ง).
์ฆ, (๋น์ ์ ์์ ๊น์ง) ์ด์์ ์ธ/์์ฒญ์ .NET ๊ฐ๋ฐ์๊ฐ .NET/C#/F#/VB.NET๋ง ์ฒ๋ฆฌํด์ผ ํ๊ณ CSS/HTML/JS๋ฅผ ๋ง์ง ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. Xamarin .NET ๊ฐ๋ฐ์๋ iOS/Droid์ ํ ๋๋ฅผ ๊ฑด๋๋ฆด ํ์๊ฐ ์์ต๋๋ค.
@Mike-EEE, ์์ ์งํฉ ์ธ์ด(TypeScript์์ JavaScript๋ก ๋๋ Less์์ CSS๋ก)์์๋ ๋์ผํ ํ์ผ์ ์์ ์งํฉ์์ ํ์ ์งํฉ lang ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง ๊ทธ ๋ฐ๋๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ํผ ์ธํธ์ ๊ฐ๋ ์ ํฐ๊ฐญ, ์ฝ๋ฅด๋๋ฐ ๋ฑ์ด ์๋ํ๋ ๋ฐฉ์์ ์ฝ๊ฐ ๋์ด์ ๊ฒ์ ๋๋ค. :)
ํํ ์ @jasonwilliams200OK ์ ๋ .NET์ ๋ธ๋ผ์ฐ์ ๋ก ๋ค์ ๊ฐ์ ธ์ค๋ ์ฐ๋ฆฌ์ ์ ๊ทผ ๋ฐฉ์/์ ๋ต์ ๋ํ ํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ๋ง๋ค์ง ์๋๋ก ํ๊ณ ์ถ์ต๋๋ค. CSS/JS๋ฅผ ๋ง์ง๋ ๊ฒ์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ง์ง๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒฝ๋ฉธ๋ก ๋ณด์์ผ ํฉ๋๋ค. :stuck_out_tongue:
์๋ฅผ ๋ค์ด Xaml(yay)์ ์ฌ์ฉํ์ง๋ง TypeScript(boo)์๋ ์์กดํ๋ ๋ ๋ค๋ฅธ ํ๋ก์ ํธ Fayde ๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ๊ถ๊ทน์ ์ผ๋ก ๋ ๊ฐ์ ํธํ๋์ง ์๋ ์ฝ๋ ๊ธฐ๋ฐ(ํด๋ผ์ด์ธํธ ์ฝ๋์ฉ TypeScript/JS, ๋ค๋ฅธ ๋ชจ๋ ์ฝ๋์ฉ .NET)์ผ๋ก ๋๋๋ฏ๋ก ์๊ฐ๊ณผ ๋ฆฌ์์ค ๋ชจ๋์์ ๋งค์ฐ ๋น์๋๋ค.
ASPNET์ Razor์ ๋ํ ๋์ฒด ํ๋ก ํธ ์๋ ์์ง
Razor๋ ์ ์๊ฐ์ ํ ํ๋ฆฟ ์์ง์ผ ๋ฟ์ ๋๋ค. ์ค์ ๋ก ํด๋น ๋งํฌ์์ "...์ฝ๋์ ๋ํ ํ๋ก ํธ ์๋ ํ ํ๋ฆฟ ์์ง์ ๊ธด ๋ชฉ๋ก์์ ์ ํํ ์ ์์ต๋๋ค."๋ผ๊ณ ์ธ๊ธํ์ต๋๋ค.
HTML ํ์ด์ง ๋ด์์ Razor์ ๊ฐ์ ํน์ํ C#๊ณผ ์ ์ฌํ ๊ตฌ๋ฌธ์ ๋ํด MS๋ก๋ถํฐ ๋ช ๊ฐ์ง ์๊ฒฌ์ ๋ค์์ต๋๋ค. ๋์ ์ฌ์ฉ์ ์ง์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ํ๋ ์์ํฌ๋ฅผ ์ ํธํฉ๋๋ค.
btw, Bridge.net(http://bridge.net) ๋ฐ Fayde์ ๊ฐ์ XAML ์๋ฃจ์ ๊ณผ ๊ฒฐํฉํ ์ ์๋ ๊ธฐํ C# to Javascript ์ปดํ์ผ๋ฌ๋ ์์ต๋๋ค.
Granular๋ ์ ๋ง ํ์์ ์ ๋๋ค. @ethanhs. ์ ๊ฐ ๋ฏธ์ฒ ๋ชฐ๋๋ ๋ถ๋ถ์ ๋๋ค. CSHTML5 , JSIL, Bridge.net( @birbilis ๊ฐ ์ธ๊ธํจ)๊ณผ ๋์ผํ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ ์ผํ๊ฒ ์คํ ๊ฐ๋ฅํ PCL์ ์ฌ์ฉํ์ฌ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์๋ค๋ ๋์ผํ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์ต๋๋ค. ์์ฆ ํ๋ ๋ฐฉ๋ฒ.
๊ทธ๋ฆฌ๊ณ ์ค์ ๋ก ๊ทธ ํ๋ก์ ํธ๊ฐ ํ๋ฅญํด ๋ณด์ด๊ธด ํ์ง๋ง Silverlight์ ์ข ๋ง ์ดํ .NET ๊ฐ๋ฐ์๋ค์ด ๊ฒฌ๋์ผ ํ๋ ์ง์ฅ ๊ฐ์ ์ํฉ์ ๊ฑฐ์ ์์ฝํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ๊ณผ ์ฝ 12๋ช ์ ๋ค๋ฅธ ์ฌ๋๋ค ์ ๋ธ๋ผ์ฐ์ ์์ .NET์ด ์๋ํ๋๋ก "๋ค์" ์์ ์ ์ํํ์ง๋ง Silverlight ๊ฒฝํ์ด ์๋ ์ฌ๋๋ค์ด ๊ธฐ๋ํ๋ ์ ์ฒด ๊ฒฝํ์ ์๋๋๋ค.
๊ฐ๋ฐ์๊ฐ Silverlight๋ฅผ ์๊ฒ ๋ง๋๋ ๋จ์ผํ ํตํฉ ์๋ฃจ์ ์ ์์ง ์์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ ์ ๊ฐ๊น์์ง๊ณ ์์ต๋๋ค. ์ ์ด๋ ๋ฐ๋๋๋ค. WebAssembly๋ ์ ๋งํด ๋ณด์ด์ง๋ง ํ๋์ ์ค์ํ ๋ฐ์ ์ ๋ณด๊ฑฐ๋ ๋ฃ์ง ๋ชปํ์ต๋๋ค. JSIL ๊ธฐ๋ฐ ํฌํธ/์ด๋์ ํฐ๋ธ ๋ ๋ค์ ๋๋ ค์ง ๊ฒ์ผ๋ก ๋ณด์ด๋ฉฐ ์ง๋ 10์ ์ดํ๋ก ์ฒดํฌ์ธ์ด ์์์ต๋๋ค.
๊ฐ๊น์ด ์ฅ๋์ ์ฌ๊ธฐ์์ ๋ํ๊ตฌ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ด๋ //build์์ ์ด์ ๊ฐ์ ๋ฐํ๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. :ํํธ: :+1:
๊ทธ๊ฒ์ XAML์ ์ผ์ด๋ ์ง๋ ๋ช ๋
๋์ ์ต๊ณ ์ ์ผ ์ค ํ๋๊ฐ ๋ ๊ฒ์
๋๋ค.
์ฌ๊ธฐ์์ ํฌํํ์ธ์!
์ฟจ @bbougot. ๊ฑฐ์ 15๊ฐ์ ๋์ ์กด์ฌํ ํ _๋ง์นจ๋ด_ ์ฝ๊ฐ์ ๊ด์ฌ์ ๋ฐ์ ๋ ๋ค๋ฅธ ํฌํ๋ ์์ต๋๋ค. ์์ํ๊ธฐ ์ํด ๋์ฐํ Xaml ์์คํ
์ ์ธ์ํ์ง ๋ชปํ ๊ฑฐ์ 3๋
๋์ ๊ณ์ฐํ์ง ์์์ต๋๋ค.
https://wpdev.uservoice.com/forums/110705-dev-platform/suggestions/7232264-add-markup-extensions-to-and-improve-winrt-xaml
(์ง์ฌ์ผ๋ก, ๊ฐ์ฅ ๋ช ๋ฐฑํ ๋ฌธ์ ์ ๋ํ ํฌํ๋ฅผ ์ธ์ ํ๋ ๋ฐ 15๊ฐ์? UWP ํ์ ๊ฑฐ๊ธฐ์์ ๋ฌด์์ ํ๊ณ ์์ต๋๊น? Visual Studio ๋๋ .NET ํ์ ์ธ์ ๊ทธ ๋ฐฐ๋ฅผ ์ธ์ํ๊ณ ๋ฐ๋ก์ก์ ๊ฒ์ ๋๊น? ๋ฌด์์ . .. ์, ๊ทธ๋ ๊ตฐ์ ๋ฐฉํฉํ๊ณ ์์์ต๋๋ค...)
๋ํ ์ด ์ค๋ ๋์ ํฌํํ๋ ๊ฒ์ ์์ง ๋ง์ญ์์ค. ํนํ GitHub ๋ฐ์๊ณผ ๊ฐ์ ๋ฉ์ง ํธ์ ์์ค์ด ์๊ธฐ ์ ์ ์ด ๋ฌธ์ ๊ฐ ์์๋์๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ํ์ฌ @ 60์์ ๊ฝค ์ ์๋ํ๊ณ ์์ต๋๋ค. :์๋ค:
Xaml์ ์ ์ฒด ํด๋ผ์ด์ธํธ ์ํ๊ณ๋ฅผ ํตํฉํ ์ ์๋ ์ ์ฌ๋ ฅ์ ๊ฐ์ง ์ ์ผํ ๊ฒ์
๋๋ค!
DirectX๋ฅผ ์์ ๊ณ OpenGL์ ์์์ฃผ์ธ์!
UWP๋ PC์์, ์ ํ๋ก, ์น์ฌ์ดํธ์์ ์คํ๋ฉ๋๋ค!
๋น๋ฐ ์ !
์, ์ฌ๊ธฐ @terrajobst , @harikmenon ๋ฐ @karelz ์ ์๋ฏผ ์ง๋ฌธ์ด ์์ต๋๋ค(์ต๊ทผ์ ํ๊ทธ๋ฅผ ์ถ๊ฐํ ๊ฒ์ ๋ณด๋ ์ถํํฉ๋๋ค. ์ด ์ง๋ฌธ์ ์ฐธ์ฌํ๊ฒ ์ต๋๋ค!). ๋จ์ํ ํธ๊ธฐ์ฌ์์ ๋๋ ์ฝ๊ฐ์ ๋ชจํ์ ํ๊ณ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ณ ๊ธ(๋๋ ์๋ ์๋ ์๋) GitHub ํํฐ๋ง์ ํ์ธํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ค๋ฅธ ๋ฌธ์ ์ ๋ํด ๋ง์ ํ๊ฐ ์๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ๋ URL์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://github.com/dotnet/corefx/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc
์ด ๋ฌธ์ ์๋ ํ์ฌ 82๊ฐ์ ์ฐฌ์ฑ ํฌํ๊ฐ ์๋ ๊ฒ ๊ฐ๊ณ , ๋ด๊ฐ ๋ง๋ค๋ฉด ๋ชฉ๋ก์์ ๋ค์์ผ๋ก ๊ฐ์ฅ ๊ฐ๊น์ด ํญ๋ชฉ์ 17์ ๋๋ค. ๋ฐ๋ผ์ ์ด ๋ฌธ์ ๋ ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ฐ์ฅ ๋ง์ด ์์ฒญ/ํฌํ๋ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค. ๋ง์ต๋๊น?
๊ทธ๋ ๋ค๋ฉด ์ด๊ฒ์ด ์ฐ์ ์์ ๋ฐ/๋๋ ๊ณํ๊ณผ ๊ด๋ จ์ด ์๋์ง ๊ถ๊ธํฉ๋๋ค. ๋ถ๋ช ํ ์ด๊ฒ์ ์ง๊ธ _๋งค์ฐ_ ์ธ๊ธฐ ์๋ ์ง๋ฌธ/ํญ๋ชฉ์ธ ๊ฒ ๊ฐ์ต๋๋ค(๋ค์, ๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด). ๋ฐ๋ผ์ ์๋ง๋ ์งํ ์ํฉ์ ๋ํ ๋ํ๋ฅผ ์์ํ ๊ฐ๋ฅ์ฑ๊ณผ ๊ด๋ จํ์ฌ ์ ๋ฐ์ดํธ๋ ํ์ธ์ ๋ฃ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ฌ๊ธฐ์์ ๊ด์ /๋งฅ๋ฝ์ ์ป๋ ๊ฒ์ด ์ข์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ /๋๋ ๊ณ ๊ฐ ์๊ตฌ์ ๊ด๋ จํ์ฌ ์์ ํ ์คํด๋ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ. ๊ทธ๊ฒ์ ์ผ์ด๋๋ค. ๐
๋น์ฌ์ .NET Core ์์ง๋์ด๋ .NET Standard 2.0(๋ํ ๋์ ๊ณ ๊ฐ ์๊ตฌ ์ฌํญ)์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ ๋ฐ ์ฌ๊ธฐ์์ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฐธ์กฐํ์ญ์์ค. .NET Core๋ฅผ ์ต์ ํ์ค์ผ๋ก ๋ง๋ ํ ํด๋น ๋ชฉ๋ก์ ์๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
upvotes ์ฟผ๋ฆฌ๋ฅผ ์ง์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@karelz ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ๋งค์ฐ ๊ฐ์ฌ. ๐
๐ผ ๐ผ ๐ผ ์ข์์/๋ฆฌํธ์ ํ์ค ๋ถ ๊ณ์ค๊น ํด์ ๊ธ ๋จ๊น๋๋ค. ๐ผ ๐ผ ๐ผ
https://twitter.com/MikeEEE76/status/776769805722521600
์ ๋ .net ๋ฒ์ 3๋ถํฐ xaml์ ์ฌ์ฉํด ์์ผ๋ฉฐ Silverlight์ ์ถ์์ ์ฃฝ์๊น์ง๋ ๋๊ผ์ต๋๋ค. ๋๋ ๊ฐ์ ์ ์ํ ๋ณํ๋ฅผ ์ข์ํ๋ ์ฌ๋์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด์ UWP๋ฅผ ์ฌ์ฉํ์ฌ ์์ผ๋ก ๋์๊ฐ๋ ๋์ ํด๋ณด๋ฅผ ์ฐพ์ต๋๋ค. ๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ํ๋ฅญํ๋ค๊ณ ์๊ฐ๋์ง๋ง ๋ฐ์คํฌํ ์ฑ๊ณผ ๊ฐ์ ์์ ํ xaml ์ง์์ด ๋ถ์กฑํ ๊ฒฝ์ฐ์๋ ์ ๊ฒฝ์ฐ์ง ๋ง์ญ์์ค. ๋๋ UWP์์ ์๋ก์ด ์ฑ์ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ๋ด๊ฐ ๋ฐฐ์ด ๋ชจ๋ ๊ฒ์ด ๋ค์ ๋ณ๊ฒฝ๋์๋ค๋ ์ด๋ ค์ด ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค. xaml ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด๋๋ก ์ด๋ํ๋์ง์ ๋ฐ๋ผ ์จ๋ผ์ธ์์ ๋ง์ ์ง์์ ์ฐพ์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ ์์ํฌ ์๋์ ์๋ ํ์๊ธฐ๊ฐ ๋ ์ด์ ๊ฑฐ๊ธฐ์ ์๊ณ x:static์ด ์๋ํ์ง ์๋ ์์ฑ์ ๋ํด ๋ช ์๊ฐ ๋์ ๊ฒ์ํ์ฌ ์์ ๋ฅผ ์ฐพ๊ฑฐ๋ ์ํํ ์์ ์ ์ฐพ์์ผ ํฉ๋๋ค. ์ด์ xaml์์ ์ UWP๋ก ํ์ํ๋ ๋งํฌ๊ฐ ์์ต๋๋ค...
@giworking MS๊ฐ ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์ ์ ๊ฒฝ์ ์จ์ผ ํ๋ ๊ฒ์ ๋น์ฐํฉ๋๋ค! Satya Nadella์ ๋ง์ฒ๋ผ azule์ MS์ ํต์ฌ์ด์ ๋ฏธ๋์ ๋๋ค. azule์ ๋์ด๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ ์๋์ง๋ ์ ์ฒด .net ์ํ๊ณ์ ๋๋ค. ์๋ฐ์ ๋นํด ํด๋ผ์ด์ธํธ ์ชฝ์ ์ฝ๋์ ๊ธฐ์ ์ด MS์ ํด๋ผ์ฐ๋๋ฅผ ์์ฉํ๋๋ก ์ค๋ํ๋ ๊ฑฐ์ ์ ์ผํ ๋ฌด๊ธฐ์ ๋๋ค(์ค๊ตญ์์ .net์ ์ ๋ง ์น๋ช ์ ์ธ ์ํฉ์ ์ฒํด ์์ต๋๋ค. ์ฌ๋๋ค์ ์๋ฐ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ "f k s t xamarin์ด ๋ฌด์์ธ๊ฐ์?"๋ผ๊ณ ๋ฐ์ํฉ๋๋ค. ....). ๊ทธ๋์ ์ค๊ตญ ์ฝ๋๋ก์ xamarin, uwp, typescript ๋ฐ cshtml5๋ฅผ ๋ณผ ๋ ์ ์ฒด ํด๋ผ์ด์ธํธ ์ธก์ xaml+C# ๋ชจ๋๋ก ํตํฉํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์ ์ฐ๋ฆฌ MS ์น๊ตฌ๋ค์ if๋ก ์ค๊ตญ ์์ฅ ์ ์ ์จ์ ๋๋๋ฆฌ์ธ์?
์์ฐ, ์ด ๋ฌธ์ ๋ ์ด์ 100๊ฐ ์ด์์ ์ถ์ฒ์ ๋ฐ์์ต๋๋ค! ์ง์ง๋ฅผ ๋ณด๋ด์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ด์ฌ ์๋ ์ฌ๋์ด ์๋ค๋ฉด @terrajobst ์ ์์ฒญ๋ ์ํ ๊ฐ๋ฐ์ ์ฐธ์ฌ๊ฐ ํฌํจ๋ ์ ๋ง( ์ ๋ง๋ก! ) ํ๋ฅญํ ๊ธฐ์ฌ๊ฐ ์ฌ๊ธฐ ๋๊ธ์ ์์ต๋๋ค.
https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/
(์ง์ฌ์ผ๋ก, ํ์ฌ ๊ธฐ๋ฐ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ฒ์ํ๋ ๋ชจ๋ MSFT ์ง์์ ๊ฒ์ ๋ฐฉ๋ฒ์ ๋ํ Landwerth ์จ์ ์ง์๋ฅผ ๋ฐ๋ผ์ผ ํ๋ฉฐ ์ดํ์ ๋ฐ์ํ๋ ๋ถ๊ฐํผํ๊ณ ์ ์ ์์ด ๋ง์ ๋๊ธ์ ํ์ ์กฐ์น๋ฅผ ์ทจํด์ผ ํฉ๋๋ค. ๋๋ฌด ๋ง์ MSFT ์์ฑ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋จ์ํ ๊ฒ์๋ฌผ์ด ๋ง๋ฅด๋๋ก ๋ด๋ฒ๋ ค๋๊ณ ์ง๋ฌธ์ ์ฃฝ์ ์ฌ๋์ผ๋ก ๋จ๊ฒจ ๋์ญ์์ค. ๋ฌผ๋ก ์ด๋ ์ฒญ์ค์ ๋ํ๋ ๋์ฐํ ๋ฐฉ๋ฒ์ ๋๋ค!)
์ด์จ๋ , ์์ง ์ฝ์ง ์์๋ค๋ฉด ํนํ ๋๊ธ์ ์ฝ์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ๋ด๊ฐ ์ง๊ธ ๊ฒ์ํ๋ ์ด์ ๋ฅผ _System.Xaml์ .NET Standard/๊ต์ฐจ ํ๋ซํผ ์๋๋ก ๊ฐ์ ธ์ค๋ ค๋ ์ด์ /์ด๋ง๊ณผ ํจ๊ป ๋๊ธ์ ์ธ๊ธ๋ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์ฉ๋๋ค_. ๐
154๊ฐ์ ์ฐฌ์ฑํ... ๊ทธ๋ฆฌ๊ณ ๊ณ์ฐ ์ค์ ๋๋ค. ๐ ๊ทธ ๋ค์์ผ๋ก ๋์ ํธ๋ 25 ํ ์ ๋๋ค. #squeakywheel
์ด ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ด์ ํ!
์๋ง ๋ช ์ Windows 7 ์ฌ์ฉ์๋ฅผ ์ํ ์ต์ด ๋ค์ด๋ก๋/์ค์น ๊ฒฝํ์ ๊ทน์ ์ผ๋ก ๊ฐ์ ํ๊ธฐ ์ํด .NET Native๋ฅผ ์ฌ์ฉํ๋ ค๋ WPF๋ฅผ ๋์์ผ๋ก ํ๋ @ReactWindows ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ๋ํ React Native๋ฅผ Linux๋ก ๊ฐ์ ธ์ค๊ณ ์ ์ฌ์ ์ผ๋ก @ReactWindows ๊ณต์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ์ง๋ง Xamarin.Forms๋ฅผ ๋์์ผ๋ก ํ ๊ณํ์ด ์์ต๋๋ค.
NETCore vNext์์ ์ฌ์ฉํ ์ ์๋ System.Xaml(๋ฐ WindowsBase, PresentationCore ๋ฐ Xamarin.Forms์ ๊ธฐํ ํ์/๋ฉ์๋/์ด์ ๋ธ๋ฆฌ ์ข ์์ฑ)์ด ์ด ์ ๋ต์ ์ค์ํฉ๋๋ค. ๊ธฐ์กด ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ค์ ์์ฑํ๊ณ ๋์์ ๋ค์ ์ง์ ํ๊ฑฐ๋ Mono์ System.Xaml์์ ๋๋ฝ๋ ์ ํ/๋ฉ์๋๋ฅผ ์ฑ์ฐ๊ณ .NET Core์ฉ์ผ๋ก ๋น๋ํ์ฌ ์ด ๊ฒฐํจ์ ํด๊ฒฐํ ์ ์์ง๋ง ์ค์ ๋ก๋ Microsoft๊ฐ ํ ๋จ๊ณ ๋ ๋์๊ฐ ๋ค์์ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ๋ซํผ์ ํ์ํ.. /cc @rozele @pre10der89
@matthargett ํ์ด์ ๋น๋๋ค. .net ์ฝ์ด์ ์ํฌํ๋ก๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๊ฒํ ํ ๋ ์ด ๋ฌธ์ ๋ฅผ ์์ ํ ํด๊ฒฐํ์ต๋๋ค. ์ฌ์ง์ด xaml ํ์ ์ฐ๋ฝํ๊ธฐ๊น์ง ํ์ต๋๋ค. ๊ทธ๋ค์ System.Xaml์ ์ฌ๋ ๋ฐ ์๊ฒฉ์ผ๋ก ๊ด์ฌ์กฐ์ฐจ ๋์ง ์์ต๋๋ค. ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ณดํธํ ๊ฐ์น๊ฐ ์๋ ๊ฒ์ ์ ํ ์์ต๋๋ค.
4์ ๋ง์ 2.0 ๋ฆด๋ฆฌ์ค ์ดํ์ ๊ณ ๋ ค๋ ์ ์์ต๋๋ค.
์ฌ๋ฌ๋ถ, ๋ค์ ๋งํ์ง๋ง WF๋ฅผ netstandard1.x
๋ก ์ด์ํ๊ธฐ ์ํด System.XAML์ด ํ์ํ์ง ์์ต๋๋ค. WF์ ํต์ฌ์ด ์๋ํ๋ @dmetzgar ์ ํ๋ฅญํ ์์
์ด ์ด๋ฏธ ์์ต๋๋ค. ๋๋ฝ๋ ์ฃผ์ ๋ถ๋ถ์ ๊ฒฐ๊ตญ netstandard2.x
์ ๋ค์ ๋์์ฌ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ํธ๋์ญ์
์
๋๋ค.
@dmetzgar ํฌํธ์ ์ฃผ์ ์ง์นจ์ ์ฝ์ด์ ์ด๋ค ์ข ๋ฅ์ ๋์์ธ ์ธ์ด๋ ๋ฌถ์ง ์๊ณ ์ฌ๋๋ค์ด ์ํ๋ ๋๋ก ์ํฌํ๋ก๋ฅผ ์ง๋ ฌํํ๊ณ ๋์ค์ ๊ทธ ์์ ๋์์ด๋๋ฅผ ๋ง๋ค ์ ์๋๋ก ๊ธฐ๋ณธ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ๊ฐ๋ ๊ฒ์ ๋๋ค.
๋ฌผ๋ก ์ด ์ ๊ทผ ๋ฐฉ์์ ํ์ฌ XAML ๊ธฐ๋ฐ ์ํฌํ๋ก์ ์ญํธํ๋์ง ์์ง๋ง .Net Core๋ก ๋ฌด์์ด๋ ์ฎ๊ธฐ๋ ๊ฒ์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด๋ฏ๋ก ์ฌ๋๋ค์ด ์ดํดํด์ผ ํฉ๋๋ค.
XAML ๋์์ด๋๋ฅผ ์ํด ํ์ฉํ ์ ์๋ OminiSharp๊ฐ ์์ง๋ง ๋ค์ ๋งํ์ง๋ง ๋์์ธ/์ง๋ ฌํ๋ WF ์ฝ์ด์ ์ผ๋ถ์ ๋๋ค. .Net Core์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฆผํด์ผ ํฉ๋๋ค.
๋๋ ์ด ๋ฌธ์ ๊ฐ ์ฌ๋๋ค์ด WF๋ฅผ .Net Core๋ก ์ฎ๊ธฐ๊ณ ์ถ์ดํ๋ค๋ ์ ์ ๋ถ๋ช
ํ ๋ฐํ๊ณ , System.XAML ํ์ OSS์ ๋ํด ๋ถํํ๋ ๊ฒ์ ์์ฐ์ ์ด์ง ๋ชปํ๋ค๊ณ ์๊ฐํฉ๋๋ค. XAML ํ์๋ ๋ค๋ฅธ ์ฐ์ ์์๊ฐ ์์ผ๋ฉฐ Windows/UWP/Xamarin ๋น์ฆ๋์ค์ ํต์ฌ์ด๋ฏ๋ก ๋๋ฌด ๋นจ๋ฆฌ OSS๋ฅผ ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ๋ง์ญ์์ค. ๊ทธ ๋์ @dmetzgar ์๊ฒ .Net Foundation์์ WF ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ณต์์ ์ผ๋ก ๊ณต๊ฐํ๊ณ netstandard2.x
๋ฆด๋ฆฌ์ค์ ๋ํ ์ผ์ ์ด๋ ์ฝ์ ์์ด ์ปค๋ฎค๋ํฐ๋ฅผ ์๋ดํ๊ณ ์คํํ๋๋ก ์๋ดํฉ๋๋ค. ๊ทธ์ ํ์ด ์ฃผ๋ํ๋ ์งํ ์ค์ธ ์์
์ด ๋ ๊ฒ์ด๋ฉฐ, ๋ถ๋ช
ํ ๋๊ณ ์ ํ๋ ์ปค๋ฎค๋ํฐ์ ๋์์ ๋ฐ์์ ๊ฒ์
๋๋ค.
Orleans ํ๋ก์ ํธ์์ ์ํฉ์ด ์ผ๋ง๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋์ง ๋ณด์ธ์... ์๋ ์ OSSed๋ฅผ ๋ฐ์ ๊ฒ์ Microsoft Research์์ผ๋ฉฐ .Net Foundation์์ ๊ฐ์ฅ ํฌ๊ณ ๊ฐ์ฅ ํ๋์ ์ธ ์ ์ฅ์ ์ค ํ๋์ด๋ฉฐ ๋๋ถ๋ถ ์ปค๋ฎค๋ํฐ์ ๋ ธ๋ ฅ์ ์ํด ์ฃผ๋๋ฉ๋๋ค(์ฌ์ ํ MSFT ํ ํํ์ ๊ทผ๋ฌด).
์ด์จ๋ , IMHO, ๋ด ์๊ฐ์ ์ฐ๋ฆฌ๋ ์ฅ๋์ ๋ฉ์ถ๊ณ ๋ญ๊ฐ๋ฅผ ์์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. @dmetzgar ํ์ ๊ธฐ๋ณธ์ ์ผ๋ก .net ์ฝ์ด์ ์ ๊ทผํ ๊ณํ์ด ์๋ WF์ ์ฃผ์ ์ฌ์ฉ์๋ฅผ ์ง์ํ๋ ๊ฒ์ด ์ฃผ์ ๊ด์ฌ์ฌ์ด๋ฏ๋ก ์์ ํ ๋์ญํญ์ด ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ๋ฐ๋ผ์ ์ปค๋ฎค๋ํฐ ์ฃผ๋( @dmetzgar ํ์ ๊ฐ๋ ) ๋ ธ๋ ฅ์ด์ด์ผ ํฉ๋๋ค.
์ฌ๋ฌ๋ถ, ๋ค์ ๋งํ์ง๋ง WF๋ฅผ netstandard1.x๋ก ์ด์ํ๊ธฐ ์ํด System.XAML์ด ํ์ํ์ง ์์ต๋๋ค...
@galvesribeiro ๊ทธ๊ฑด ์ฌ์ค์ผ ์ ์์ง๋ง ์ด ๋ฌธ์ ๋ System.Xaml์ .NET Core๋ก ์ด์ํ๋ ๊ฒ์ ๋๋ค. ์ด ์ค .NET ํ์ด ํผ๋๋ฐฑ์ ์์ฒญํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋จ์ฐ์ฝ ๊ฐ์ฅ ๋ง์ด ์์ฒญ๋๋ ๊ธฐ๋ฅ์ ๋๋ค. ํผ๋๋ฐฑ์ ๋ฃ์ง ์๋๋ค๋ฉด ์ ์์ฒญํฉ๋๊น? ์ด์จ๋ WF๋ ๋จ์ํ System.Xaml ํฌํธ๊ฐ ์ถฉ์กฑํ ์๋๋ฆฌ์ค ์ค _ํ๋_์ ๋๋ค. ์์๋ค์ํผ(๋๋ ๊ทธ๋์ผ ํฉ๋๋ค!) System.Xaml์ ํจ์ฌ ๋ ๋ง์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
XAML ํ์๋ ๋ค๋ฅธ ์ฐ์ ์์๊ฐ ์์ผ๋ฉฐ Windows/UWP/Xamarin ๋น์ฆ๋์ค์ ํต์ฌ์ด๋ฏ๋ก ๋๋ฌด ๋นจ๋ฆฌ OSS๋ฅผ ๋ฐ์ ๊ฒ์ผ๋ก ๊ธฐ๋ํ์ง ๋ง์ญ์์ค.
๋ค, ์ด๊ฒ์ด ๋ฐ๋ก ์ฌ๊ธฐ์์ ๋ฐ์ํ๋ ์ผ์ข ์ ๋ฌธ์ ์ด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ ๊ฒ์ ๋๋ค. :) ๊ทธ๋ฆฌ๊ณ ์์ฆ์ 'Xaml ํ'์ด ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ๊ตฐ์, ์์ฃ ?! ์ ๋ง ์ด ๊ธฐ์ ์ด ์ค๋จ๋์๋ค๊ณ ๋๋ผ๊ณ ์ฐ๋ฆฌ๋ ์ด์ ๋ํ ๋์์ ์ฐพ๊ธฐ ์์ํ์ต๋๋ค.
์ด์จ๋ , IMHO, ๋ด ์๊ฐ์ ์ฐ๋ฆฌ๋ ์ฅ๋์ ๋ฉ์ถ๊ณ ๋ญ๊ฐ๋ฅผ ์์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
100% ๋์ํฉ๋๋ค. FWIW, @SuperJMN ์ ๋ฐฉ๊ธ OmniXamlv2.0 ์ ์ถ์ํ์ต๋๋ค. ๋ฐ๋ผ์ MSFT๊ฐ ์ด ๋ฌธ์ ์ ๋ํ ์๋์ง์ ๋ ธ๋ ฅ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๋ ๋์ ํ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ปค๋ฎค๋ํฐ ๋ ธ๋ ฅ์ด ์งํ ์ค์ ๋๋ค.
๋งํ์๋ฉด @terrajobst ์ ์ธ์ฉ๋ฌธ๊ณผ ํจ๊ป ์ ํํ ์ด์ ๋ํ ์ข์ ์ค๋ ๋ (์ฆ, ์ด์ ๋ํ MSFT์ ๋นํ์ฑ)๊ฐ ์์ต๋๋ค.
๋ถ๋ช ํ ๋ง์๋๋ฆฌ์๋ฉด System.Xaml์ด ํ๋ซํผ ๊ฐ ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ํด์๋ ์ ๋๋ค๋ ๋ง์ ์๋๋๋ค. ๋ด๊ฐ ๋งํ๋ ๊ฒ์ System.Xaml์ด WPF ๋ฐ WF ์ธ๋ถ์์๋ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์ผ๋ฉฐ NuGet์ ํด๋น ๋ช ๋ น๋ฌธ์ ๋ํ ํฉ๋ฆฌ์ ์ธ ํ๋ก์ ๋ฉํธ๋ฆญ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋ฌผ๋ก System.Xaml์ UI ์์ญ ์ธ๋ถ์์ ์๋ฏธ ์๊ฒ ๋ง๋ค ์ ์์ง๋ง ์ด๋ ๋ ๋ฒ์งธ ๋จ๊ณ์ ๋๋ค. ์ฐจ๋ผ๋ฆฌ ์ง๊ธ ๋ฐ๋ก ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์์๊ฐ ์ ๋๋ก ์๋ํ๊ณ ์๋ฒฝํ๊ฒ ์๋ํ๋๋ก ํ๊ณ ์ถ์ต๋๋ค. ๊ฒ๋ค๊ฐ ๊ธฐ๋ฐ์ด ํตํฉ๋์ด System.Xaml๊ณผ ๊ฐ์ ์์ ์์ค ๊ตฌ์ฑ ์์๋ฅผ ์ด์ํ๋ ๊ฒ๋ ํจ์ฌ ์ฌ์์ง๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ ์์ํ์ผ์ ์ง์ ์ด ์๋๋๋ค. ์คํ ๋ช ๋ น๋ฌธ์ ๋๋ค.
System.Xaml์ด WPF/WF ์ธ๋ถ์์ ์ ์ฉํ์ง ์๋ค๋ ๋งค์ฐ ์๋ชป๋ ์ค๋ช ์ ์ ์ณ๋๊ณ , ์ด ๋ชจ๋ ๊ฒ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์๋๊ฐ ์ ํ ์๋ ์ ์๊ฒ ํ๋ก์ ํธ ๊ด๋ฆฌ์์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. Immo์ ๊ทธ๊ฐ ์ฌ๊ธฐ์ ํ๋ ์๋ํ ์ผ์ ์ ์ ์ผ๋ก ์ง์งํ๊ธฐ ๋๋ฌธ์ ๋ด ๋ชฉํ๋ ๊ทธ ๋ฐ์ธ์ ๋ํด ๋นํ์ ์ธ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ฌ๋, ์ ๋ ๊ทธ๋ฐ ์ข ๋ฅ์ ์ธ์ด๊ฐ ์ ๋ฅผ ์ ์ ๋ฉ์ถ๊ฒ ํ๊ณ ์ด ๋ฌธ์ ์ ๋ํด ๊ด๋ง(๋๋ ์คํ๋ ค "๋ด๊ฐ ๋ณผ ๋ ๊ทธ๊ฒ์ ๋ฏฟ์ผ์ญ์์ค" LOL!) ์ ์ฅ์ ๋์ด๋๋ก ํ์ฉํ ๋งํผ ์ถฉ๋ถํ ๋ธ๋ก ์ฃผ์์ ์์์ต๋๋ค.
๊ทธ ๋์ ์ ๋ .NET Standard 2.0์ ํ์ฌ ๋ ธ๋ ฅ์ ์ง์ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ์ด์ฉ๋ฉด ์์๋ณด๋ค ๋์ ์๋ ์์ต๋๋ค. ์ต์ํ Windows ํ๋ซํผ์์ ์๋ํ๋ .NET Core ํ๋ก์ ํธ์ฉ System.Xaml์ ํ์ํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ์ ์๊ฒ ์ถฉ๋ถํ ์์์ ๋๋ค. ๐
@Mike-EEE ๋จผ์ ์ฃ์กํฉ๋๋ค. https://github.com/dotnet/corefx/issues/2394 oO ์ด ๋ ๊ฐ์ง ๋ฌธ์ ์ ๋ํด ํ์ ์ ํ๊ณ ์์์ต๋๋ค. ์ด ๋ ๊ฐ์ง ๋ฌธ์ ๋ ๋๋ฌด ์ฌ๋ฌ ๋ฒ ์ฐ๊ด๋์ด ํผ๋์ค๋ฌ์ ์ต๋๋ค.
๋์งธ, XAML์ด UI์๋ง ์ ์ฉํ๋ค๊ณ ๋งํ ์๋ ์์ต๋๋ค. TFS ๋น๋, WF ์์ฒด ๋ฐ ์ต๊ทผ์๋ UI์์ ์๋ ๋์ ์ฌ์ฉํ์ต๋๋ค. Azure ML๊ณผ ๊ฐ์ DSL๊ณผ XAML์ ํ์ฉํ ์ ์๋ ๊ธฐํ๊ฐ ์์ต๋๋ค.
๋ด๊ฐ ๋งํ๋ ค๋ ๊ฒ์ XAML์ด .Net Core๋ก ๋๋ฌด ๋นจ๋ฆฌ ์ด์๋๋ ๊ฒ์ ๋ณด์ง ๋ชปํ๋ค๋ ๊ฒ์ ๋๋ค. Immo๊ฐ ๋งํ๋ฏ์ด ๊ทธ๋ค์ ๋จผ์ ํ์ฌ ํ๋ซํผ์์ ์ฌ๋ฐ๋ฅธ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. .Net Core์๋ ์์ง ๊ธฐ๋ณธ ์ด๋ฏธ์ง ์กฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค.
์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ WPF์์ UWP์ ์ทจ์ฝํ๊ณ ๋ถ์กฑํ ๊ธฐ๋ฅ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ XAML ๊ตฌํ์ด ์์ต๋๋ค. ๊ทธ๋ฐ ๊ฒ์ด OSS๋ฅผ ๋ฐ๊ธฐ ์ ์ ํต์ผ๋๊ณ ์์ ํ๋์ด์ผ ํฉ๋๋ค. ๋๋ ๊ทธ ์์์ ์ผํ๋ ํ์ด ๋งํ๋ ๊ฒ์ด ์๋๋ค. ๋๋ ๋ด ์์์ ์ฐ์ ์์๋ฅผ ์ ํด์ผํ๋ค๋ฉด ๊ทธ๋ค๋ณด๋ค diff๋ฅผํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
WF์ ๊ด๋ จํ์ฌ ๋ค์ ํ ๋ฒ ์ฃ์กํฉ๋๋ค. ํ์ง๋ง ์ ์ด์ ์๊ฒฌ์ ๋๋ถ๋ถ ์ด ๋ฌธ์ ๋ก ์ธํด WF์์ ์ฝ์ด๋ก์ ์ด์์ด ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ ์ด๋ฃจ์ด์ง์ง ์๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ์ฌ๋๋ค์ ๋์์ผ๋ก ํ์ผ๋ฉฐ ์ด๋ ์ฌ์ค์ด ์๋๋๋ค .
์ด ๋ ๊ฐ์ง ๋ฌธ์ ๋ ๋๋ฌด ์์ฃผ ๊ด๋ จ๋์ด ์์ด์ ํผ๋์ค๋ฌ์ ์ต๋๋ค.
ํํ @galvesribeiro ์ ๋ ๊ทธ๊ฒ ์ผ๋ง๋ ๋ง์ด ์ ๋ฅผ ๋ฌผ์๋์ง ๋น์ ์๊ฒ ๋งํ ์ ์์ต๋๋ค(๋๋ ์ธ์ ํ๊ธฐ๊ฐ ๋๋ ต์ต๋๋ค). ๊ฑฑ์ ํ์ง ๋ง์ธ์. ๋๋ ํ๋์ ๊ด๊ณ์์ด ์ ๋ ฅ์ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
FWIW, @cwensley ๋ @ Portable.Xaml ์ ๋ํด ๊ณ์ํด์ ํ๋ฅญํ ์ผ์ ํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ต๊ทผ์ System.Xaml์ ๋ชจ๋ ธ ๊ธฐ๋ฐ ์ ์์ ๋ํ ์ฑ๋ฅ ๊ฐ์ ์ ํตํด ์๋ ๋ฒ์ ๋ณด๋ค ๋ ๋นจ๋ผ์ก์ต๋๋ค. ์ฌ๊ธฐ ์๋ ๋ชจ๋ ๋ง/์ต์ ์ ์๋ System.Xaml ๊ฒฝํ์ ๊ฐ์ฅ ๊ฐ๊น๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ๋ ธ๋ ฅ์ ์ํ ์ข์ ์ถ๋ฐ์ ์ด ๋ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์์นจ์ ์นดํ์ธ์ผ๋ก ์ธํ 2์ผํธ๋ง.
System.Xaml์ .NetCore๋ก ์ด์ํ์ญ์์ค.
FWIW, ์ด ๋ฌธ์ ์ ๋ํด 200๊ฐ ์ด์์ ํฌํ๊ฐ ์์๊ณ ํ์ฌ 202์์ ์์ต๋๋ค. ๋ค์์ผ๋ก ๋์ ๋ฌธ์ ๋ 47์ ์๋ dotnet/corefx#13526์ ๋๋ค. WAS 47... ์ง๊ธ์ 48์ ํฌํํ์ต๋๋ค. :) (๊ฐ์ ์ฌ๋์ ๋ณด์ฌ์ค, ์ข์ ์๊ฐ์ด์ผ.) #squeakywheel
@Mike-EEE ;-)๋ฅผ ์๊ธฐ์์ผ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ธฐ๋์น๋ฅผ ์ค์ ํ๊ธฐ ์ํด: ์ฐ๋ฆฌ๋ ์์ง ๊น์ด ํ๊ณ ๋ค ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก 3์๊น์ง "์์ง ๊ณํ์ด ์์ต๋๋ค"๋ผ๊ณ ํ๋๋ผ๋ ๋ค์ ๊ณต์ ๋จ๊ณ์ ๋ํด ๋ ๋ง์ ์ธ๊ธ์ ํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. (๋ฉด์ฑ ์กฐํญ: ๋๋ ์ต์ ์ ๊ฐ์ธ์ ์ธ ์ถ์ธก์ ์ ๋ฌํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ณต์ ํ ์ฝ์์ผ๋ก ์ทจ๊ธํ์ง ๋ง์ญ์์ค!).
์ง๋ ์๊ฐ์ ์ด ๋ฌธ์ ๋ฅผ ์กฐ๊ธ ๋ ผ์ํ์ ๋ ํ์ด๋์จ ํต์ฌ ์ง๋ฌธ์ 200๊ฐ ์ด์์ ํฌํ ์ค ์ด๋ค ๊ฒ์ด ์ง์ ์ผ๋ก System.Xaml๊ณผ WPF์ ๊ดํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ด์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ์ด ๋์ ๊ตฌ๋ณํ์ง ๋ชปํ๋ค๋ ๊ฐ์ ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ํ ์ ์์ด ์์ต๋๊น? (์: 2๊ฐ์ ํน์ ๋ฌธ์ ๋ฅผ ๋ง๋ค๊ณ ์ฌ๋๋ค์๊ฒ WPF์ ํฌํํ๋๋ก ์์ฒญํ๋ ๋์ "WPF๊ฐ ์๋ ์์ํ Xaml")
๋ํ ๋ช ๊ฐ์ง ์ฐ์ ์์ ์ถ์ ๊ณผ ํจ๊ป System.Xaml์ ๋ํ ์๋๋ฆฌ์ค์ ์์ฝ ๋ชฉ๋ก์ด ์์ผ๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค(ํ์ฌ ๊ธด ํ ๋ก ์ ๊ฑธ์ณ ํฉ์ด์ ธ ์์). @Mike-EEE ์ฐ๋ฆฌ๊ฐ ํจ๊ป ํ ์ ์๋๋ก ๋์์ฃผ์๊ฒ ์ต๋๊น? (ํด๋น ๋ถ์ผ์ ๋ํ ๊น์ ๊ด์ฌ๊ณผ ๊น์ ์ง์์ ๊ฐ๊ณ ๊ณ์ ๊ฒ ๊ฐ์ต๋๋ค.)
ํ์คํ System.Xaml
๋ ์ฌ๋๋ค์ด @karelz๋ฅผ ์ํ๋ ๊ฒ์
๋๋ค. ๋๊ตฐ๊ฐ WPF๋ฅผ ์ฌ๊ธฐ์์ ์๊ฐํ๊ณ ์๋ค๋ฉด IMHO๊ฐ ์ฌ๋ฐ๋ฅธ ์์น๊ฐ ์๋๋๋ค. ์ฌ์ ํ System.Xaml์ ์ฌ์ฉํ๋ WF, TFS Build ๋ฑ๊ณผ ๊ฐ์ XAML์ ํ์ฉํ๋ ๋ง์ ๋ค๋ฅธ ํ๋ ์์ํฌ๊ฐ ์์ผ๋ฉฐ ์ด๋ ์ฐ๋ฆฌ์๊ฒ ํฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
@karelz ์ฌ๊ธฐ์ ๋ต์ฅ์ ๋ณด๋ด์ฃผ์ ์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ์๊ฐ์ ๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. @galvesribeiro ๊ฐ ์ธ๊ธํ๋ฏ์ด System.Xaml์ ๋จ์ํ UI ์ด์์ด๋ฉฐ ๋ถํํ๋ ๋ง์ MSFT๊ฐ ๋์น๊ณ ์๋ ํต์ฌ ์ดํด์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ๋ค๋ฅธ ์ง๋ ฌํ ์๋ฃจ์ ์ ๋ฅ๊ฐํ๋ ๊ฐ๋ ฅํ ์ง๋ ฌํ ํจ๋ฌ๋ค์์ ๋๋ค. ํนํ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ค๋ช ํ ๋ ๊ฐ์ฅ ์ ์ํ๋๋ ์์ ์ ๋๋ค(๊ฒฐ๊ตญ ์ด๋ฆ์ "A"). ๋ถํํ๋ "์์ฉ ํ๋ก๊ทธ๋จ"์ "UI"์ ๋ณํฉ๋์ด ์ฌ๊ธฐ์์ ๋ง์ฐฐ์ด ๋ฐ์ํฉ๋๋ค.
์ด ์ธก๋ฉด์ ๊ฐ๊ณผํ๋ ๊ฒ์ UWP์ ์ฃผ์ ์คํจ์์ผ๋ฉฐ ์๋ฌด๋ UWP๋ก ์์ ํ๋ ๊ฒ์ ์ข์ํ์ง ์๋ ์ด์ ์ค ํ๋์ ๋๋ค. ๋ฐ๋๋ก Xamarin์ Xaml์ ํน์ง์์ ์ด ํต์ฌ ์ธก๋ฉด์ ์ดํดํ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ง ๋ด๋ถ์ ์ด๋ฉฐ ๊ถ์ ์๋ ์ผ๋ฅ ์ ํ์ผ๋ก ๋ ธ์ถ๋์ง ์์ต๋๋ค(์ฌ๊ธฐ์ ์ด ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ๋๋ต์ ์ผ๋ก ์ค๋ช ํฉ๋๋ค).
TBH, @cwensley ์ Portable.Xaml ์ ์๋ System.Xaml ํฌํธ๋ ํ์ฌ ์ ๋์ฃผ์์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ Mono์ System.Xaml(์ ๋ฐ์ ์ผ๋ก ์น์ํ API ์ ์ง)์ ์ด์ํ์ ๋ฟ๋ง ์๋๋ผ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ผ๋ฉฐ ์ค์ ๋ก System.Xaml๋ณด๋ค _๋ ๋์ ์ฑ๋ฅ์ ํฅ์์์ผฐ์ต๋๋ค.
๋ด ์๊ฐ์ ์ด ๋ฌธ์ ๋ @cwensley ์ ํจ๊ป ์์ ํ์ฌ ์์ผ๋ก ์ฌ์ฉํ ๊ถ์ ์๋ ํ๋ซํผ ๊ฐ Xaml ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ฒ๋งํผ ๊ฐ๋จํ ์ ์์ต๋๋ค.
์ด ์ธ์๋ ๊น๋ค๋ก์์ง๊ณ ์ด ๋ฌธ์ ์ ๋ํ (์ดํดํ ์ ์์ ์ ๋๋ก) ๋ณต์กํ ๊ด์ ์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค. System.Xaml์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ค๋ช ํ๋ ํํ๋ ฅ์ด ํ๋ถํ๊ณ ๊ฐ๋ ฅํ ์ธ์ด(์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ฟ๋ง ์๋๋ผ)๋ฅผ ์ ๊ณตํ๋ฏ๋ก Visual Studio(๋ฌผ๋ก Blend)์ ๋ด์ฅ๋ ํ๋ฅญํ ๋๊ตฌ ์ง์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด์์ ์ผ๋ก๋ ๋์ผํ ํ๋ฅญํ ๊ฒฝํ์ ๊ณ์ํ๊ณ ์ด๋ป๊ฒ๋ Xaml์ ๋์์ด๋ ๊ฒฝํ์ ํฌ๋ก์ค ํ๋ซํผ ๋ฐฉ์์ผ๋ก ์ ์งํ๋ ๊ฒ์ด ์ข์ง๋ง ๊ฐ์ธ์ ์ผ๋ก๋ ์ฌ๊ธฐ์ ๋ ผ์ํ๋ ๋ฉ์ง ์ผ์ดํฌ ์์ ์ฒด๋ฆฌ๋ฅผ ์๊ตฌํ๋ ๊ฒ์ ๋๋ค. :)
๋ํ ์ฌ๊ธฐ์ ๋ฐ๋ณตํด์ Xaml์ ์ฝ์(๋ฐ ์ ๊ณต)์ ๋์์ด๋์ ๊ฐ๋ฐ์ ๊ฐ์ ๊ฐ๋ฐ ์ํฌํ๋ก ๊ฐ์ ์ด๊ธฐ๋ ํ์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ถ๊ทน์ ์ผ๋ก ์ด๊ฒ์ ํ ๋จ๊ณ ๋ ๋์๊ฐ ๊ฐ๋ฐ๊ณผ _devops_ ๊ฐ์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ ํ ์ ์๋ค๊ณ ์๊ฐํ๊ณ ์ถ์ต๋๋ค. ์ฆ, devops๊ฐ ์๋ฆ๋ต๊ฒ ๋์์ธ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ ํธ์ง๊ธฐ(Xaml ๊ธฐ๋ฐ)์์ ์๋ํ์ฌ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ์ธ์์ ๋ณด๊ณ ์ถ์ต๋๋ค.
_์ฌ๊ธฐ์ ์ ์ฒด ์์ด๋์ด๋ ์ฝ๋ฉ์์ ๋ฐฐํฌ์ ์ด๋ฅด๊ธฐ๊น์ง ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ ์ฒด ๋น์ฉ์ ์ค์ด๋ ๊ฒ์ ๋๋ค. ๋ฉ์ง ํธ์ง์ ๋ฐ ๋์์ด๋์ ํจ๊ป ์์ ํ๋ ๊ฒ์ ๋ง์ ์ ์คํํ๊ธฐ ์ํด ์ฝ๋(๋ฐ/๋๋ ์คํฌ๋ฆฝํธ)์ ์์ ๋ฃ์ด์ผ ํ๋ ์ฌ๋์ ์ฐพ์์ ๊ณ ์ฉํ๋ ๊ฒ๋ณด๋ค (์์ ๊ด์ ์์) ์ ๋ ดํฉ๋๋ค._
๋๋ ์ด๊ฒ์ ๋น์ ๊ด์ ์ผ๋ก ์ฌ๋ฌ๋ถ๊ณผ ๊ณต์ ํฉ๋๋ค. ์ฌ๋ฌ๋ถ์ด ์๊ณ ์์ ๋ฟ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ด ์ด ์์์ ๋ฃ๊ณ ์ผ๋ง๋ ๊ด์ฌ์ด ์๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๐ ๊ทธ๋์, ๋ง์ฝ ์ด๊ฒ์ด ๋จ์ํ "์ด ๋ฌธ์ ๋ฅผ ๋๋ด๊ณ ๋น์ ์ ๋ ๋๊ฒ ํ๋ ค๋ฉด ๋ฌด์์ด ํ์ํ ๊น์?" ๋๋ Wensley ์จ์ ํจ๊ป ์ผํ ๊ฐ๋ฅ์ฑ์ ํ๊ตฌํ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ทธ์ ์๋ํ ์ ์ ์ ์ง๊ธ๊น์ง ํ์ฉํ ์ ์๋์ง(๋๋ ๊ทธ๊ฐ ๊ทธ๋ ๊ฒ ํ๋ ๋ฐ ์ด๋ ค ์๋์ง) ๋ณผ ๊ฒ์ ์ ์ํฉ๋๋ค. .NET Core Wave 2 ๋ฆด๋ฆฌ์ค(5์์ฏค?)๋ฅผ ์ํ ์ ๋ขฐํ ์ ์๋ ํ๋ซํผ ๊ฐ Xaml ํจํค์ง๊ฐ ๋ ์ ์๋๋ก ๊ฐ๋๋ฅผ ์กฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ํจ์ฌ ๋ ์ข์ต๋๋ค. :)
์ ๋ณด ๊ฐ์ฌํฉ๋๋ค, ํ์คํ ๊ด์ฌ์ด ์์ต๋๋ค. ๋ํ ์ด์ ์ง๋ฌธ์ด ์๋ํ ๋๋ก ๋์ค์ง ์์๋ค๊ณ ์๊ฐํ๋ฏ๋ก ๋ช ๊ฐ์ง ์ฌํญ์ ์ง์ ํ๊ฒ ์ต๋๋ค.
์, ๋๋ ์ธ๋ถ ์ฌํญ์ ํ์คํ ๊ด์ฌ์ด ์์ต๋๋ค. ๋๋ MSFT ์ธก์์ Xaml != WPF์ ๋ํด ์ด์๋ฅผ ์ ๊ธฐํ๋ ์ฌ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ํ์คํ ๊ทธ๋ ๊ฒ ํ๋ ค๊ณ ํ์ง ์์๋ค. ๋๋ ๋ด๊ฐ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ๊ทธ ๊ฒฉ์ฐจ๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ๋
ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ฆ, "์์ Xaml" ์๋๋ฆฌ์ค์ ๋๊ธฐ์ ํ์์ฑ์ ์์ ํ ์ดํดํ๊ณ ์์ต๋๋ค.
(BTW: ๋๋ ๋น์ ์ devops ์๋๋ฆฌ์ค์ Xaml์ด ์ด๋ป๊ฒ ๊ฑฐ๊ธฐ์ ๋์์ด ๋๋ ์ ์ผํ/๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ธ์ง ์ ์ดํดํ์ง ๋ชปํฉ๋๊น? ์๋๋ฉด ์๋๋ฆฌ์ค์์ ์ค์ ๋ก ์ด๋ป๊ฒ ์ฌ์ฉ๋ฉ๋๊น?)
๋๋ ์ด ๋ฌธ์ ๋ฅผ ๋๋ด๋ ค๊ณ ์ฌ๊ธฐ์ ์จ ๊ฒ์ด ์๋๋๋ค. ์ ๋ฐ! ๊ทธ๊ฒ์กฐ์ฐจ ๋ง์์ ๋ค์ง ์์๋ค. ์ ๋ ์ปค๋ฎค๋ํฐ๊ฐ ์์ฒญ์ ์์ฝํ์ฌ ์ ์ ํ ์ฌ๋๋ค๊ณผ ๋ ผ์ํ ์ ์๋๋ก ๋๊ธฐ ์ํด ์์ต๋๋ค(์ด ๊ฒฝ์ฐ ์ด์ฌ๋ฅผ ์๊ฐํ์ธ์). ์, ๊ทธ ์ค ์ผ๋ถ๋ ์ (๋ฐ/๋๋ ๋ค๋ฅธ MSFT ๋ช ๋ช )๊ฐ ๋ ๋์ ๊ณณ์์ ์ด๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ์์ฒญ์ ์์ ํ ์ดํดํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ์ ์ง๋ฌธ์ ๋๋ค.
๋๋ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ธฐ ์ ์ Xaml๊ณผ WPF๋ฅผ ๊ตฌ๋ถํ์ง ์์ ์ฌ๋์ ์ข์ ์๋ผ๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค. .NET ํ์ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ์ ๋ฌด์์ ์ฑํ
์์ ๋ง์ ์ฌ๋๋ค์ด Xaml != WPF๋ฅผ ์๊ณ ์์ง๋ง ์ฌ๊ธฐ์์ ์๊ฐ๋๋ ์์ํ Xaml์ ๊ฐ๋ "๊ฑฐ๋ํ ๊ฐ์น"๋ฅผ ๋ณด์ง ๋ชปํฉ๋๋ค. ๋ฐ๋ผ์ ์๋๋ฆฌ์ค์ ๋ํ ์์ ์ง๋ฌธ์
๋๋ค. ์๋๋ฆฌ์ค๋ ๋๊ธฐ๋ฅผ ๋ ์ ์ดํดํ๊ณ ์ด์ผ๊ธฐ๋ฅผ ๋ ์ ์๋ฆฌ๊ณ ํ๋งคํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. (๋ช
ํํ ์คํ ๋ฆฌ๊ฐ ์์ ๋ ์๋ฌด๋ ํ๋ฉ์ ๊บผ๋ฆฐ๋ค๊ณ ํด์ ๋๋ผ์ง ์์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. :) - ์คํ ๋ฆฌ๋ ํ๋ฉ์ ์ ์ ์กฐ๊ฑด์
๋๋ค)
๊ทธ๋ผ ์์ผ๋ก ๋์๊ฐ๊ธฐ ์ํด ์๋ฆฌ๋ฒ ์ดํฐ ํผ์น๋ฅผ ์๊ฐํด ๋ด
์๋ค.
@cwensley ์ ์์ ๊ณผ ๊ด๋ จํ์ฌ - ๊ทธ๋ฆฌ ๋น์ธ์ง ์์ ์๋ฃจ์ ์ด ์๋ค๋ ์์์ ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ ํ ๋ฒ, ์๋ฃจ์ ์ ๋ฐ์ด๋ค๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ๊ฒฝ๊ณผ ์ด์ ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ ๋ง ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. (๋๋ ๋ฌด์ํ๋ ค๊ณ ํ๋ ๊ฒ์ด ์๋๋ผ WHY๋ฅผ ์ดํดํ๊ณ ๋์ํ ๋ ์์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ด ๋ ์ฝ๋ค๋ ๊ฒ์ ๋ฐ๋ณตํฉ๋๋ค)
@galvesribeiro ๋๊ตฐ๊ฐ ์ฌ๊ธฐ์์ WPF์ ๋ํด ์๊ฐํ๊ณ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ฌ๋ฐ๋ฅธ ์ฅ์๊ฐ ์๋๋๋ค IMHO
ํฌํํ 200๋ช
์ด์์ ๋ชจ๋ ์ฌ๋๋ค์ด Xaml != WPF๋ฅผ ์ด๋ฌํ ์ธ๋ถ ์ฌํญ์ ๋ํด ์ง์ ์ผ๋ก ์ดํดํ๊ณ ์๋ค๋ ํ์ ์ ๊ณต์ ํ์ง ์์ต๋๋ค. ๋ํ ์ต์ํ ๋ช ๊ฐ์ง ์ดํด๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์, ๋จผ์ Xaml์ ๊ฐ์ ธ์ ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด WPF๋ฅผ ์์ฒญํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ํญ์ ์ผ๋์ ๋๊ณ ์๋ ์๋๋ฆฌ์ค๋ WPF์ธ ๋ฐ๋ฉด "์์ Xaml"์ ์ด๋ฅผ ํฅํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ผ ๋ฟ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋ด๊ฐ ํ๋ฆด ์๋ ์์ต๋๋ค (์ ์ด๋ .NET ํ์์ ์ด๋ฌํ ์๊ตฌ์ฌ์ ๊ฐ์ง ์ ์ผํ ์ฌ๋์ ์๋์ง๋ง) ...
๋ ๋ค๋ฅธ ๊ฐ๋๋ "์์ Xaml"์ ์๋๋ฆฌ์ค ๋ชฉ๋ก(WPF, ์์ devops, ๋ช ๊ฐ์ง ๋?)์ผ๋ก ๋๋ ๋ค์ ์ฌ๋๋ค์๊ฒ ํฌํ๋ฅผ ์์ฒญํ๋ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์์ ํฌํํ ์ฌ๋๋ค์๊ฒ ์ง์ ์ผ๋ก ์ค์ํ ๊ฒ์ ๋ฌด์์
๋๊น? ๊ทธ๋ค์ด ์ง์ ์ผ๋ก ์ํ๋ ๊ฒ์ ๋ฌด์์
๋๊น?
(์ด๊ฒ์ ์ง์ฐ ์ ์ ์ด๋ ์
์์ ์ธ ๊ฒ์ด ์๋๋๋ค. ์ฌ๊ธฐ์ "๊ณ ๊ฐ"์ ์ดํดํ๋ ค๊ณ ๋
ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌํ ๋ฐ์ดํฐ์ ๋๋ฌํ๋ ๋ ๋์ ์ ์์ด ์์ผ๋ฉด ์๊ฒฌ์ ๋งํ์ญ์์ค. ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ด๋ ค ์์ต๋๋ค. )
ํธ์ง: ํ์์ ๊ฐ์ด ๋ด๊ฐ ๋ฌธ์ ์ ์ฌ๋ฐ๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๊ณ ์์ง ์๋ค๊ณ ์๊ฐํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ๋ง์ํด ์ฃผ์ญ์์ค. ์ต์ ์ ๋คํด ๋์์ฃผ๋ ค๊ณ ํฉ๋๋ค. ์ต์ ์ ์๋๋ก์. ๋๋ ๋ชจ๋ ๊ฒ์ ์๊ณ ์๋ค๋ ํ์์ด๋ ๋ด๊ฐ ๋ค๋ฅธ ์ฌ๋๋ค๋ณด๋ค ๋๋ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
@karelz WPF๋ฅผ ์ ํ ์ข์ํ์ง ์๋๋ผ๋ XAML์ด ํฌ๋ก์ค ํ๋ซํผ์ด ์๋๊ธฐ ๋๋ฌธ์ ํ ์ ์ฌ๋ฐ๋ช ํ๊ณ ๊ณ ์ ํ ๋งํฌ์ ์ธ์ด๋ฅผ ์์ฑํ๋ ๋ง์ UI ํ๋ ์์ํฌ๊ฐ ์์ต๋๋ค. ์๋ฐ๋ก๋์๋ ์์ ์ ํ ์ค ํ๋์ ๋๋ค. ๋์ ๋ค์ดํฐ๋ธ XAML์ ํ์ฉํ ์ ์์ ๋ Omnisharp๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Workflow Foundation์ XAML์ ํฐ ์ฌ์ฉ์/๊ณ ๊ฐ์ด๋ฉฐ Port WF์์ .Net Core ์ค๋ ๋๋ก์ ์ฌ๋๋ค์ ํญ์ ์ด์ ๋ํด ๋ฌป์ต๋๋ค.
์, ์๋ฅผ ๋ค์ด UI ๋ฐ WF์ ๊ฐ์ ์ํ๋ ์ฌ์ฉ๋ฒ๊ณผ ํจ๊ป ํ๋ซํผ ๊ฐ System.Xaml
์์ ๊ธฐ๋๋๋ ๊ฒ์ ๋ํ ๊ธฐ๋์น๋ฅผ ์ค์ ํ๊ฑฐ๋ ์์ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ๊ทธ๋ ค์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
@karelz
๋ํ ์ต์ํ ๋ช ๊ฐ์ง ์ดํด๋ด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค. ์, ๋จผ์ Xaml์ ๊ฐ์ ธ์ ๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด WPF๋ฅผ ์์ฒญํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ํญ์ ์ผ๋์ ๋๊ณ ์๋ ์๋๋ฆฌ์ค๋ WPF์ธ ๋ฐ๋ฉด "์์ Xaml"์ ์ด๋ฅผ ํฅํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ผ ๋ฟ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๋ด๊ฐ ํ๋ฆด ์๋ ์์ต๋๋ค (์ ์ด๋ .NET ํ์์ ์ด๋ฌํ ์๊ตฌ์ฌ์ ๊ฐ์ง ์ ์ผํ ์ฌ๋์ ์๋์ง๋ง) ...
๊ทธ๋์... ๊ทธ๊ฒ ๋ญ๊ฐ ๋ฌธ์ ์ผ? WPF์ ๊ฐ์ ํ๋ซํผ ๊ฐ ์๋ฃจ์ ์ ๊ฝค ์ข์ ์ผ์ด ๋ ์ ์์ต๋๋ค. Xamarin์ ํ๋ซํผ ๊ฐ ๋ฐ์คํฌํฑ GUI๋ฅผ ์ํํ ์ ์์ต๋๋ค.
@jnm2 ๋์์ง๋ ์์ง๋ง ๊ทธ๊ฒ์ด ์ฃผ์(90% ์ด์) ์๋๋ฆฌ์ค๋ผ๋ฉด ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ๊ณํํด์ผ ํฉ๋๋ค. WPF ์์ด Xaml์ ๊ฐ๋ ๊ฒ์ ๊ทธ๋ฌํ ๊ฒฝ์ฐ์ ๋์์ด ๋์ง ์์ ๊ฒ์ ๋๋ค(์ ์ด๋ ๋ณ๋ก). ๊ทธ๋ฆฌ๊ณ WPF๊ฐ ์ปค๋ฐ๋๊ณ ๊ณง ์ฌ ๊ฒ์ด๋ผ๋ ์๋ชป๋ ํ์์ (์ ์ฌ์ ์ผ๋ก) ๋ง๋ค ์ ์์ต๋๋ค.
WPF/GUI๋ฅผ .NET Core๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ํ์ฌ ์ฃผ๋ก ์๋ฒ ์๋๋ฆฌ์ค์ ์ฝ์ ์ฑ์ ๋์์ผ๋ก ํ๋ .NET Core์ ํฐ ๋จ๊ณ๊ฐ ๋ ๊ฒ์ ๋๋ค.
System.Xaml์ด ์๋ @jnm2 ๋ WPF์ ๊ฐ์ ๊ฒ์ ๋ค๋ฅธ ํ๋ซํผ(https://github.com/AvaloniaUI/Avalonia)์ผ๋ก ๊ฐ์ ธ์ค๋ ค๊ณ _์๋ํ๋_ ์ฌ๋๋ค(์ ์ ๊ฐ์)์ ํฌ๊ฒ ๋์ธ ๊ฒ์ ๋๋ค.
ํฉ๋ฆฌ์ ์ธ ์๋๋ฆฌ์ค์ฒ๋ผ ๋ค๋ฆฌ๋ @grokys - ์ข ๋ ์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ์ผ๋ง๋ ํฐ ๋์์ด ๋ ๊น์? ๊ทธ๊ฒ ์์ด๋ ๋ฌด์์ด ๋์ ์ ์ ๋๊น?
๋ํ (WPF๊ฐ ์๋) ํฌ๋ก์ค ํ๋ซํผ ๋ฐ์คํฌํฑ UI ํ๋ ์์ํฌ์ธ Eto.Forms ์ Xaml์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ด๊ฐ ์ฒ์์ Portable.Xaml ํ๋ก์ ํธ๋ฅผ ๋ง๋ ์ด์ ์ด๋ฉฐ ์ง๊ธ๊น์ง ๋์ ๋ด ์ฌ์ฉ์์๊ฒ ์ ์๋ํ๊ณ ์์ต๋๋ค.
์ ๋ ์ด๊ฒ์ "๊ถ์ ์๋" ํฌ๋ก์ค ํ๋ซํผ xaml ๊ตฌํ์ผ๋ก ๋ง๋๋ ๋ฐ ๋ฐ๋ํ์ง ์์ต๋๋ค(@Mike-EEE๊ฐ ๋งํ ๋๋ก). ๊ทธ๋ฌ๋ ๋๋ ์ฌ๊ฐ ์๊ฐ์๋ง ์ด ์์ ์ ์ํํ๋ค๋ ๊ฒ์ ๋ช ์ฌํ์ญ์์ค(;
@karelz
UI ํ๋ ์์ํฌ ๋ฟ๋ง ์๋๋ผ XAML์์ HTML๊น์ง ๋ค์ํ ์ฅ๋ฉด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@Kation ์ ํํ ๋ฌด์จ ๋ง์ธ์ง ์์ธํ ์๋ ค์ฃผ์ค ์ ์๋์?
BTW: ๋งจ ์ ๊ฒ์๋ฌผ์์ ์๋๋ฆฌ์ค ์์ฝ์ ์์ํ์ต๋๋ค. ์๋๋ฆฌ์ค๊ฐ ์์ผ๋ฉด ์ค๋ช ํ๊ณ ์ดํด๊ฐ ๋๋ฉด ๊ฑฐ๊ธฐ์ ์ถ๊ฐํ๊ฒ ์ต๋๋ค.
@karelz
Visual Studio์ ๊ฐ๋ ฅํ XAML ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ง์ ๊ตฌ์ฑ ์์ ์ฝํ
์ธ ๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ XAML์ ์ฌ์ฉํ์ฌ ํน์ ์๋๋ฆฌ์ค์์ HTML ์ฝํ
์ธ , ํจ์ฌ ๋ ๋ง์ SVG ์ฝํ
์ธ ๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ .Net 4.5์ฉ XML ํ๋ ์์ํฌ์ ๋ํ ๋ฐ์ ํ XAML์
๋๋ค. https://github.com/Kation/WebPresentation
XAML์์ HTML ๋๋ SVG๋ฅผ ์์ฑํ๋ ค๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์ XAML์ ๊ฐ์น๋ ๋ฌด์์
๋๊น?
๋ฉ์ง VS ํธ์ง๊ธฐ๊ฐ ์๋ค๋ ๊ฐ์
๋๊น? HTML ํธ์ง๊ธฐ๋ ์์ต๋๋ค. ์ง์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์๋๋ฉด ๋ด๊ฐ ์์ ์ ์์ ํ ๋์น๊ณ ์์ต๋๊น?
@karelz
์ผ๋ถ ํ๋ก์ ํธ์์ ํ
ํ๋ฆฟ๊ณผ ์คํ์ผ๋ก WPF์ ๊ฐ์ ์ฝํ
์ธ ๋ฅผ ์์ฑํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์
๋๋ค.
@karelz ๋ํ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๋๋ ๋ชจ๋ ๊ฒ์ ์๊ณ ์๋ค๋ ํ์์ด๋ ๋ด๊ฐ ๋ค๋ฅธ ์ฌ๋๋ค๋ณด๋ค ๋๋ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
์, ๋ถ๋ฝ๋ค. ๐
๋ฐ๋ผ์ ํญ์ ์ผ๋์ ๋๊ณ ์๋ ์๋๋ฆฌ์ค๋ WPF์ธ ๋ฐ๋ฉด "์์ Xaml"์ ์ด๋ฅผ ํฅํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ผ ๋ฟ์ ๋๋ค.
์, ์ด๊ฒ์ ๋ค์ ์ ๊ฐ ์ธ๊ธํ ๊ฒฐํฉ์
๋๋ค. Xaml์ ์์ํ๊ณ ๋จ์ํ ์ง๋ ฌํ ํจ๋ฌ๋ค์์
๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ ํ๋ฆฌ์ผ์ด์
์ ํฌํจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ ์ํ๊ณ ์ค๋ช
ํ ์ ์์ต๋๋ค. ๋จผ์ Xaml์ ์ค๋ช
๋ _console ์์ฉ ํ๋ก๊ทธ๋จ_์ ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://github.com/DevelopersWin/VoteReporter/blob/master/DevelopersWin.VoteReporter.Application/Program.xaml
์ฝ์ ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ํ์ํ ํญ๋ชฉ์ ๋ํ ์ง์นจ์ ์ ๊ณตํ๋ Xaml์ ์ค๋ช ๋ ๋ช ๋ น์ด ์์์ ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ WPF ๋๋ "UI"์ ์๋ฌด ๊ด๋ จ์ด ์์ต๋๋ค(๊ธฐ์ ์ ์ผ๋ก ์ด๊ฒ์ CLI๊ฐ UI๋ผ๋ ์๋ฏธ์์ UI์ด์ง๋ง ์ฐจ์ด์ ์ ๋ฐ๊ฒฌํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค). ๋ํ ํ์ผ์์ ๋ฐ๋ก ๋งํฌ์ ํ์ฅ๊ณผ ์ ์ ๋ฉค๋ฒ ์ ์ธ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ JSON์ด๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ํ์์์ ๋ณธ ์ ์ด ์๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก IMO Xaml์ ํ์ ๋๋ค.
"์์ Xaml" ์๋๋ฆฌ์ค์ ๋ ๋ค๋ฅธ ์๋ก์, ๋ค์์ ์๋ก์ด ํ์์ ๊ตฌ์ ๋ฐ์ง ์๋ MSBuild์ ๋ํด ์ ์ํ๋ ํ์ผ์
๋๋ค.
https://github.com/Mike-EEE/Stash/blob/master/MsftBuild.Model/SampleFormats/Xaml/Processor.xaml
(๋ ๋ฒจ์ ์ฌ๋ฆฌ๋ฉด ๋์ผํ ์์ ์ ์ํํ๋ ๋ค๋ฅธ ํ์์ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ Xaml ๋ฒ์ ์ผ ๋ฟ์ ๋๋ค)
์ด๊ฒ์ ๋ค์ ์ด๋ก ์ ์ธ ๋น๋ ํ๋ก์ธ์ค์์ ์ํํ ๋จ๊ณ๋ฅผ ์ค๋ช
ํ๋ ( System.Windows.Input.ICommand
) ๋ช
๋ น ์ธํธ์ธ ํ๋ก์ธ์ ํ์ผ์
๋๋ค. ๋ค์ ๋งํ์ง๋ง, WPF๋ UI๋ ์์ง๋ง ์ฝ์๋ก ๋ฉ์์ง๋ฅผ ๋ด๋ณด๋ด๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์์์ ์ธ๊ธํ ์ฌ๊ธฐ์์ ์ง์ ํ๊ณ ์ถ์ ๊ธฐ๋ฅ ์ค ํ๋๋ ์ด ํ์ผ์์ ๊ฐ์ ธ์จ Visual Studio์ ๊ธฐ๋ณธ ์ ๊ณต ๋๊ตฌ์
๋๋ค.
์์ ์ ์ํํ๊ฑฐ๋ ์ธ๋ถ ์คํค๋ง๋ฅผ ์ ์ํ์ง ์๊ณ Visual Studio๋ ๋จ์ํ "๋ถ์ ์ผ๊ณ " ๋ด๊ฐ ์์ ์ค์ธ ํ์ผ์ ํด๋์ค ์คํค๋ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋๋กญ๋ค์ด ๋ฐ ๊ธฐํ ๋์์ด๋ ์ธํฐํ์ด์ค๊ฐ ์๋ ์์ฑ ํธ์ง๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค(์ด๋ ๊ฒ ํ๋ฉด devops ์๋๋ฆฌ์ค๊ฐ ๋ ์ฌ์์ง๊ธธ ๋ฐ๋๋๋ค. ์ดํดํ๋ค).
ํ๋ก์ธ์ ํ์ผ ์ธ์๋ ํ๋ก์ธ์์ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ด๋ก ์ ์ธ ํ๋ก์ ํธ ๋๋ ์
๋ ฅ ํ์ผ์ด ์์ต๋๋ค.
https://github.com/Mike-EEE/Stash/blob/master/MsftBuild.Model/SampleFormats/Xaml/Project.xaml
์ฌ๊ธฐ์ ๋๋ ๋ฒ์ (์ธ๋ถ ํ์ผ์์)์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋๋ _markup extension_์ ์ฌ์ฉํ๊ณ ๋น๋๋ฅผ ์ํด ์์ง๋ ํ์ผ์ ์ ๊ณตํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค(์ค์ ๋ก ์ด ์์ ์ ์ํํ๊ณ ์ถ์ง ์์ ์๋ ์์ต๋๋ค. ์ต์ข ๋น๋ ์์คํ ์ด์ง๋ง ๊ทธ ๊ฐ๋ฅ์ฑ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์์ต๋๋ค).
BTW, ์ด ์์ ์ฝ๋๋ ์์ ํ ์๋ํ๋ฏ๋ก ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์์ SLN์ ๊ฐ์ ธ์ Xaml ๋ฒ์ ์ ์คํํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
(์ฐธ๊ณ : My Machine์์ ์๋ ํ๋ฏ๋ก ๋ง์ผ๋ฆฌ์ง๊ฐ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๐)
BTW: ๊ทํ์ devops ์๋๋ฆฌ์ค์ Xaml์ด ์ด๋ป๊ฒ ๋์์ด ๋๋ ์ ์ผํ/๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ธ์ง ์ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์๋๋ฉด ์๋๋ฆฌ์ค์์ ์ค์ ๋ก ์ด๋ป๊ฒ ์ฌ์ฉ๋ฉ๋๊น?
๋ค, ๊ธ์ด ์ข ๊ธธ์ด์ง๋ ๊ฒ ๊ฐ์์ ๋ค์ด๊ฐ๊น ๋ง๊น ๊ณ ๋ฏผํ์ต๋๋ค. ๋ฐ๋ผ๊ฑด๋ ์ด์ ์์ ๋น์ฃผ์ผ ๋์์ด๋ ๊ตฌ์ฑ ์์๊ฐ ๋ด๊ฐ ์ฌ๊ธฐ์์ ๋ณด๊ณ ์๋ ๊ฒ์ ์ค๋ช ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ ์๊ฒ ์ด๊ฒ์ด ๊ถ๊ทน์ ์ต์ข ๊ฒ์์ด๊ณ ์ ๊ฐ ์ด ๋ชจ๋ ๊ฒ์ ๋ํด ์ ๊ทธ๋ ๊ฒ ๊ถ์ง์ ๋ชฐ๋ฆฌ๋์ง ์๊ณ ์ฐธ๊ณ ํ์ญ์์ค. _๊ทธ ์ด์ ๋ ๊ฒฐ๊ตญ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ช ๋์ ์ด ์์ ๋น์ฉ์ ์ค์ด๊ธฐ ๋๋ฌธ์ ๋๋ค._
๋ฐ๋ผ์ ์ฌ๊ธฐ์ ํต์ฌ์ POCO ๊ธฐ๋ฐ ๊ฐ๋ฐ์ ๋๋ค. ์ฌ๊ธฐ์ ํธ์ง ๋ฐ ๋์์ธ์ ์์ฉ ํ๋ก๊ทธ๋จ ํ๋ก์ธ์ค ๋ด์์ ์ฌ์ฉ๋๋ POCO์์ ๋ฐ์ํฉ๋๋ค. ์๋ค์ํผ ๊ฐ๋ฐ์์ ๋์์ด๋๋ UI ๋๋ฉ์ธ์ ์ฒ๋ฆฌํ๋ POCO ์์๋ฅผ ์ค๋ช ํ๋ Xaml ํ์ผ์์ ์์ ํฉ๋๋ค(์ํ๋ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ "Xaml"์ ๊ธฐ์กด "WPF"๊ฐ ์์ต๋๋ค).
์ ์ธ๊ณ์์๋ ๊ฐ๋ฐ์ด ๋ผ์ด๋ธ ํ๊ฒฝ์ ๋ฐฐํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌ/์ ์งํ๋ ๋ฐ ์ฌ์ฉํ Xaml ํ์ผ์ devops์ ์ ๊ณตํ๋๋ก ์ด ํ๋ก์ธ์ค๊ฐ ํ์ฅ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ๋ผ์ด๋ธ ๊ตฌ์ฑ ํ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค. ๋ก๋ ๋ฐฉ๋ฒ์ ์์ ํด์ผ ํ์ง๋ง ์ต์ข ๊ฒฐ๊ณผ๋ Visual Studio์ ์ ์คํฌ๋ฆฐ์ท์์ ๋ณผ ์ ์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ต์ข (๋ฐ๋ธ์ต์ค) ์ฌ์ฉ์๋ ๊ฐ์ ๋ก ์ฝ๋์ ์์ ๋ฃ์ด์ผ ํ๋ ๋์ (๋๋ ์กฐ์ง์ด ๊ทธ์ ๋ฐ๋ผ ํ์ํ ๊ฐ๋น์ผ ์ธ์ฌ/๊ธฐ์ ์ ๊ณ ์ฉํ๋๋ก ๊ฐ์๋ฐ๋ ๊ฒฝ์ฐ), ๋์ ์ ํ์ ์ด๊ณ ๊ฒ์ฆ๋ ์๊ฐ์ ํธ์ง ์ปจํธ๋กค์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ๊ณ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์งํฉ๋๋ค.
_์ฌ๊ธฐ์ ์์ด๋์ด๋ ์ฝ๋๋ฅผ ์๊ณ ์ดํดํ๋ ๊ฒ์ด ์๋๋ผ ์ด๋ฅผ ์ํํ๋ ๋ฐ ํ์ํ ๋ ธ๋ ฅ(๋ฐ ๊ธฐ์ ) ๋๋ฌธ์ ๋ฐฐํฌ ํ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ ์ง ๊ด๋ฆฌํ๋ ๋น์ฉ์ด ์๋นํ ์ ๊ฐ๋๋ค๋ ๊ฒ์ ๋๋ค._
์ด์ ๋ํด ์ธ๊ธํ์ง ์์ ํ ๊ฐ์ง ์ธก๋ฉด์ ํด๋น ์ปจํธ๋กค์ด ์ค์ ๋ก ์ฌ์ฉ์ ์ง์ ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. Visual Studio์๋ ์ด๋ฌํ POCO ์์ฑ์ ์ฐ๊ฒฐ๋ ์๊ฐ์ ํธ์ง๊ธฐ๋ฅผ ์ ์ํ๊ธฐ ์ํ (๋
ธํ๋๊ธฐ๋ ํ์ง๋ง) ๊ด๋ฒ์ํ API๊ฐ ์์ต๋๋ค.
https://msdn.microsoft.com/en-us/library/microsoft.windows.design.model.designmodevalueprovider(v=vs.90).aspx
์ด ๋ชจ๋ ๊ฒ์ ์ถ๊ฐ ์์ , ์ค๋ฒํค๋ ๋๋ ๋ ธ๋ ฅ ์์ด Visual Studio์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์ ๊ถ๊ทน์ ์ธ ์์ด๋์ด๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฟ๋ง ์๋๋ผ ๊ถ๊ทน์ ์ผ๋ก ๋ฐ๋ธ์ต์ค ํ๋ก์ธ์ค์์๋ ๋์์ด ๋๋ ๊ฐ๋ ฅํ ํธ์ง์์ ๋์์ด๋ ์ ํ๊ตฐ์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
๋ค์ ๋งํ์ง๋ง ์ด๊ฒ์ ๋ชจ๋ ํ์์ ์ด๋ฉฐ ์ค์ ์ ์ธ ์ค์ ๊ธฐ๋ฐ์ด ์์ต๋๋ค(์์ง). ํ์คํ ์ด๊ฒ์ ์์ ํ ์ ์๊ฐ์ ์๋์ง๋ง Windows Forms ๊ธฐ๋ฐ ๊ตฌ์ฑ ํธ์ง๊ธฐ ๋ฅผ ์ฌ์ฉํ๋ ํจํด ๋ฐ ์ฌ๋ก ๊ทธ๋ฃน์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. ๋๋ ๋จ์ํ ์ด ๋นจํ์ ํ ๋จ๊ณ ๋ ๋ฐ์ ์์ผ Xaml์ ํ์ ํตํด ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณด์์ต๋๋ค.
@karelz์ ๋ํด ์ถ๊ฐ ์ง๋ฌธ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์. ๋ค์ ํ ๋ฒ ๋ํ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ๊ณต์ ํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํ ๋ฟ๋ง ์๋๋ผ ๋ด ์๊ฐ๊ณผ ์ ๋ ์ ๊ฒ์ฆํ ์ ์๋ ๊ธฐํ๋ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ ์๊ณ ์๋ค๋ ์๊ฐ์ผ๋ก ๋์๊ฐ์(์, ์ ๋ ์ ์ฃ ๐ผ), ์ฌ๋ฌผ์ ๋ํด ์ด๋ฆฐ ๋ง์์ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ๋ชจ๋ ๋ต์ ๊ฐ์ง๊ณ ์์ง ์๋ค๋ ๊ฒ์ ๊นจ๋ซ์ต๋๋ค. ์ด๊ฒ์ ํ์คํ ๋ด๊ฐ ๊ณ์ํด์ ๋ ์ํ๋ ค๊ณ ๋ ธ๋ ฅํ๋ ๊ณผ์ ์ ๋๋ค. ๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค!
@karelz - Avalonia๋ ํ์ฌ OmniXaml์ XAML ์์ง์ผ๋ก ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ด ๊ฝค ์ ์๋ํ์ง๋ง ์ฌ์ ํ ๋ฒ๊ทธ์ ๋๋ฝ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. Portable.Xaml๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก OmniXaml์ ํญ์ ์์ ํ ์๊ฐ์ด ๋ง์ง ์์ ์์ ๋ด์ฌ์์ ์ํด ์ ์ง ๊ด๋ฆฌ๋ฉ๋๋ค.
์ค์ ๋ก System.Xaml์ ์ด์ง ์๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ํ ์คํธ ์ค์ํธ๋ฅผ ์ถ์ํ๋ ๊ฒ์ด ์ข์ ์ ์ถฉ์์ด ๋ ์ ์์ต๋๋ค. ์ต์ํ ๊ทธ๋ฐ ์์ผ๋ก OmniXaml ๋ฐ Portable.Xaml๊ณผ ๊ฐ์ ํ์ฌ ๊ตฌํ์ด ๊ฐ๋ฅํ ํ ๊ท์ ์ ์ค์ํ๋๋ก ํ ์ ์์ต๋๋ค.
.net ์ํ๊ณ์ ํ์ํ ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ง๋ ฌํ ํ์(Javascript ์ธ๊ณ์ JSON๊ณผ ๊ฐ์)์ ๋๋ค. ์ด ํ์์ dot ๋ฐ์ดํฐ ์ ํ์ ์ฌ์ฉํ๊ณ POCO๋ฅผ ์คํค๋ง๋ก ์ง์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋น ํ์์ ์ฌ์ฉํ์ฌ POCO ๊ฐ์ฒด๋ฅผ ์ค๋ช ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ค๋ช ์ ๊ฐ๋ ฅํ๊ณ ์ ์ ์ผ๋ก ์ ๋ ฅ๋ฉ๋๋ค. UI ๋ ์ด์์, ๋ฐํ์ ์ฑ ๊ตฌ์ฑ, ํ๋ก์ ํธ/์ํฌํ๋ก ์ค๋ช ๋๋ ๋ .net ํ๋ก๊ทธ๋จ ๊ฐ์ ํต์ ์ด ๋ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์น/์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ ๋ค๋ฅธ ์ํ๊ณ์์ ํต์ ๋ ํฌ๋งท์ ๊ตฌํํ๋ฉด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ .net ์ํ๊ณ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด JSON/BOND/Protobuf/XML์ด ์ถฉ๋ถํ์ง ์์ ์ด์ ์ ๋๋ค.
์ญ์ฌ์ ์ผ๋ก XAML์ ์ด๋ ์ ๋ ์ฑ ์์ ์์ํ์ต๋๋ค. ์ด์ ๋ฌธ์ ๋ ์ด ์ญํ ์ด ์ผ๋ง๋ ์ข์๊ฐ ํ๋ ๊ฒ์ ๋๋ค. ์ถฉ๋ถํ๋ค๋ฉด XAML์ด netstandard๋ก ๋ง๋ ๋ค์ .net์ผ๋ก ๊ตฌํํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ๋ฅํ๋ฉด ๋ค๋ฅธ ํ์๋ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์ง๋์ฃผ์ http://www.ammyui.com/ ์ด ๋์จ ๊ฒ ๊ฐ์์. ๋จ์์ฑ์ ์ค์ ์ ๋์ง๋ง XAML๋ก ๋ณํ๋๋ UI ์ค๋ช ํ์์ ๋๋ค. XAML์ด ์ถฉ๋ถํ ๊ฐ๋จํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ ์์ ์ (๊ฐ์ฒด, ์ปฌ๋ ์ ๋ฐ ์ธ๋ฑ์ค) ์ด๋์ ๋ผ์ด์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก roslyn repodotnet/roslyn#16648์์ ํ๋์ ํ์์ ์ ์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด ์ ์์ ์ค์ ๋ก Entity ํ๋ ์์ํฌ ํ์ @bricelam ์ด ์์ฑํ ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ์์ ๊ฐ์ ธ์์ต๋๋ค. ๊ทธ์ ๊ฒ์๋ฌผ๊ณผ ๋ด ์ ์ ์ค๋ ๋์๋ ๋ช ๊ฐ์ง ์๊ฐ ์์ต๋๋ค.
๋ด ์์ ์ .net์ ๋ํ ๊ธฐ๋ณธ ํ์์ด ์์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. XAML์ด๋ ๋ญ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
@grokys OmniXaml ์ ์ธ๊ธํ๊ณ ์ถ์๊ณ @SuperJMN ์ ์ฌ๊ธฐ ๋ํ์ ์ด๋ํ์ง๋ง ๊ทธ๋ ์ฐธ์ฌํ๊ณ ์ถ์ดํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค์ ์ธ์ง ๋ฌด์์ธ์ง ํ์คํ์ง ์์ต๋๋ค(์ ๋ gitter์์ ์๋ํ์ต๋๋ค -- ๋น์ ์ด ๊ทธ์ ํจ๊ป ์ผํ๊ธฐ ๋๋ฌธ์ ์๋ง๋ ๊ทธ๋ฅผ ์ฌ๊ธฐ๋ก ๋์ด์ค๋ ๊ฒ์ด ๋ ๋์ ํ์ด์ ๊ฐ์ง ์ ์์ต๋๋ค ๐ ). ๋ฌผ๋ก OmniXaml๋ ์ด ๋ํ์ ์ฐธ์ฌํ๋ ๊ฒ์ ํ์ํฉ๋๋ค.
@gulshan +๐ฏ ๐ ! ใ . ์ด ๋ชจ๋ ๊ฒ์ ํผ๋์ค๋ฌ์ด ๋ถ๋ถ ์ค ์ผ๋ถ๋ Xaml์ด MSFT ํ์ ๋ฐ ๊ธฐ์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. MSFT์ ๊ธฐ์ ๋ชจ๋๋ฅผ ์ค์ฌ์ผ๋ก ๊ตฌ์ถ๋ ๋ชจ๋ ํฌ์์ ๋๊ตฌ๋ก ์ธํด ๊ธฐ์กด ๋ ธ๋ ฅ๊ณผ ํฌ์๋ฅผ ํ์ฉํ ์ ์๋๋ก ์ฐ์์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ๊ณต๋ฐฑ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ด์ ๋ ์ฐธ์ผ๋ก ์ดํดํ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ธด ํ์ง๋ง, ์ ๋ Ammy์ ํจ๊ป ํ๋ ๊ฒ์ ์ข์ํ๊ณ ์ด์ ๋ํด ๊ณ์ํด์ ์ด๋ฆฐ ๋ง์์ ๊ฐ๊ณ ์์ต๋๋ค. ๋๋ ํ๋๋ฅผ ์๋ํ์ญ์์ค. ๐ผ
์ฒ์๋ถํฐ ๋ฐ์ดํฐ ํ์ผ์ ์ ๊ฒฝ์ ์ฐ๋ ์ด์ ๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ด ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ์ดํฐ ํ์ ์ฌ์ฉ์ ์ฃผ์ ๊ฐ์น๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฆ, ๋์๊ฒ ๊ฐ์ธ์ ์ผ๋ก ์ค์ํ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ถฉ์กฑ๋๋ฉด "๋ค๋ฅธ .NET ํ์"์ ๊ณ ๋ คํ ์ํฅ์ด ์์ง๋ง ๋ถ๋ช ํ Xaml์ ํด๋น ํ์์ผ๋ก ์ ์งํ๊ณ ํ์ฅํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค. ์ด๋ ๊ฒฐ๊ตญ MSFT ๊ธฐ์ ์ด๋ฏ๋ก ์ง์ ์ฌ์ฐ์ ๋๋ค.
@Mike-EEE ํ์์ POCO๋ก ์ญ์ง๋ ฌํํ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ๋ฅ์ด ์๋ํด์ผ ํฉ๋๋ค. VS์ ์์ฑ ์ฐฝ์ XAML์ด ์๋ ์๋๋ฆฌ์ค์๋ ๋ํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํ ๊ฐ์ง ์ฐ๋ ค๋๋ ์ ์ ํธ์ง๊ธฐ ์ง์ ์์ด๋ ๊ฐ๋ ์ฑ์ด ๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์๊ฒฉ ์๋ฒ์์ ๊ตฌ์ฑ ํ์ผ์ ํธ์งํด์ผ ํ๊ณ vim๋ง ์์ต๋๋ค. JSON๊ณผ ๋น๊ตํ ๋ XML(๋ฐ XAML)์ IMHO์ ๊ด๋ จํ์ฌ ๊ทธ๋ค์ง ์ข์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ XAML์๋ ๊ฐ๋จํ ์ง๋ ฌํ ํ์์ผ๋ก ๋ชจ๋ฐฉํ๊ธฐ ์ด๋ ค์ด ์ฐ๊ฒฐ๋ ์์ฑ๊ณผ ๊ฐ์ ๋ช ๊ฐ์ง ๊ณ ์ ํ ๊ธฐ๋ฅ(์ค์ ๋ก๋ XML์ด ์๋ ๊ธฐ๋ฅ)์ด ์์ต๋๋ค.
๋จผ์ WPF์ ํฌํํ๊ณ (๋ง์นจ๋ด xamarin.froms์ ์๋ณ ์ธ์ฌ๋ฅผ ํ ์ ์๋๋ก) xaml
VS์ ์์ฑ ์ฐฝ์ XAML์ด ์๋ ์๋๋ฆฌ์ค์๋ ๋ํ๋ฉ๋๋ค.
๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ ํ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ํธ์ง ์ปจํธ๋กค ๋ฑ์ ์ฌ์ฉํ์ฌ Xaml์ ๊ฒฝ์ฐ์ ๊ฐ์ด ๊ฑฐ์ "๋ฐํ์ง์ง" ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์์ ํด ์ฃผ์ธ์. ๋จ์ํ ์ด๋ฌํ ํ์์ ์์ฑ์ ์ปค์๋ฅผ ๋๊ณ ์ด๊ฑฐํ ํ๋(์:)์ ๋ํ ๋๋กญ๋ค์ด ๋ ๋๋ง์ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด ๊ฒฝํ์ ๊ธฐ๋ณธ์ ์ผ๋ก WinForms์ ๋ค์ ํ์์ด์ ๋ฒ์ ์ด๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก WinForms๊ฐ ์ข์ ์ด์ ์ค ํ๋์ ๋๋ค(WinForms๋ ์ฌ์ ํ ์ธ๊ธฐ๊ฐ ์์ต๋๋ค!).
JSON๊ณผ ๋น๊ตํ ๋ XML(๋ฐ XAML)์ IMHO์ ๊ด๋ จํ์ฌ ๊ทธ๋ค์ง ์ข์ง ์์ต๋๋ค.
์, Xaml์ด ์ ํํ ๊ฐ๊ฒฐํ์ง ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. Xaml์ด ์ผ๋ง๋ ์ฅํฉํ์ง์ ๋ํ ๋ถ๋ง์ ๋ฃ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ OmniXaml์ด ์์๊ณผ ๊ด๋ จ๋ ๊ฐ์ ์ฌํญ์ ์ ๊ณตํจ์ผ๋ก์จ ์ฃผ๋ชฉ์ ๋ฐ๊ณ ์๋ ๊ณณ์ ๋๋ค. ๋ํ TOML ๋ฐ YAML ๋ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ํ์๊ณผ๋ ๊ฒฝ์ํ๊ณ ์์ต๋๋ค.
๋น XML ๊ธฐ๋ฅ) ์ฒจ๋ถ๋ ์์ฑ๊ณผ ๊ฐ์ ...
๊ทธ๋ฆฌ๊ณ ๋งํฌ์ ํ์ฅ. ๐ ๋น์ ์ ํน์ง์ ๋๋ค.
@gulshan ์ด ์ฌ๊ธฐ์์ ๋ณด๊ณ ์๋ ๊ฒ์ ๋ณธ์ง์ ์ผ๋ก "๋ฐ์ดํฐ AST(์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ)"์ ๋๋ค. Xaml(๋๋ .NET ๋ฐ์ดํฐ ํ์)์ ์ฌ๊ฐํ๊ฒ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ฉด ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค. Roslyn์ ์ํด ๊ตฌ๋๋ ์๋ ์์ต๋๋ค. ์ฌ์ค, ๋๋ ๋ฐ๋ก ์ด ์์ด๋์ด์ ๋ํด uservoice ํฌํ๋ฅผ ํ์ต๋๋ค ( ํด๋น ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ ๊ณผ ํจ๊ป). ๋ถํํ๋ ๊ทธ๊ฒ์ ์ค๋ช ํ๊ธฐ๊ฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์๋ณ๋ก ์ธ๊ธฐ๊ฐ ์์ต๋๋ค, ํํ. ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๋ฌ ํ์์ผ๋ก ์ธ ์ ์๋ AST(๋ฐ์ดํฐ) ํธ๋ฆฌ๊ฐ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ๊ฐ๋ฐ์(๋ฐ ๋๊ตฌ)๊ฐ ๊ฐ์ฅ ์๋ฏธ ์๋ ํ์(๋ฏธํ์ ์ผ๋ก๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ )์ ๋ฐ๋ผ ์์ ํ ์ ์์ต๋๋ค.
๊ทธ๋์ ๋๋ ๋ง์นจ๋ด xamarin.froms์๊ฒ ์๋ณ ์ธ์ฌ๋ฅผ ํ ์ ์์ต๋๋ค.
@groege ์ธก๋ฉด์์ ๊ทํ์ ๋์ํฉ๋๋ค. ๐
@Mike-EEE ์ด์ ์ Data AST ์ ์์ ํ์ธํ์ง ์์์ต๋๋ค. ์, ๊ฐ๋ ์ ์ผ๋ก .net์ ๋ํ ๊ธฐ๋ณธ ์ง๋ ฌํ/๊ฐ์ฒด ํ๊ธฐ๋ฒ ์ ์๊ณผ ์ ์ฌํฉ๋๋ค. ์์ด๋์ด๋ ์ถ์์ ์ด๊ธฐ ๋๋ฌธ์ ์ดํดํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๐
XAML๊ณผ ๊ด๋ จํ์ฌ .net ๊ธฐ๋ฐ์ ๊ฐ๋ ฅํ ํ์์ ๋ฐ์ดํฐ ์ง๋ ฌํ ํ์์ ๋ง์ XAML ํ๊ทธ ํ์ฅ์ ํ์์ฑ์ ์ค์ฌ์ค๋๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ํํ์(์์ฑ์ ์์ด)์ผ๋ก ์ด๊ธฐํํ ์ ์๋ ์ผ๋ถ๊ฐ ๋จ์ ์์ต๋๋ค. ์ด๋ฌํ ๋งํฌ์ ํ์ฅ ๊ธฐ๋ฅ ์ค ์ผ๋ถ๊ฐ C# ์์ฒด์ ์ผ๋ถ์์ผ๋ฉด ํฉ๋๋ค.
๊ธ์์ @karelz ๋ก๋ถํฐ ๋ต์ฅ์ ๋ฐ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ Xaml์์ ์ฝ์ ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ ํ ๊ทธ๊ฐ ๋ชจ๋ํฐ ์์ ์์๋ค๊ณ ๊ฐ์ ํ ์ ์์ ๋ฟ์
๋๋ค.
(๋์) ๋๋ด์ ์ ์ณ๋๊ณ ์ถ๊ฐ ์ง๋ฌธ์ด ์์ผ๋ฉด ์๋ ค์ฃผ์ธ์.
๋ํ This Week in .NET ์์ .NET Core์์ ๋ง๋ค์ด์ง๊ณ ์๋ ๊ฝค ๋ฉ์ง ์์ง์ฒ๋ผ ๋ณด์ ๋๋ค. ์ด ๊ฒ์๋ฌผ์ ์ฒซ ๋ฒ์งธ ๋๊ธ์ด ๋ชจ๋ ๊ฒ์ ๋งํด์ค๋๋ค . :)
@Mike-EEE ๋๋ ๋น์ ์๊ฒ ๋ต์ ๋น์ง๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค(๋ด ๋ฐ์ ํธ์งํจ์ ์ค์ํ๋ค๊ณ ํ์๋์ด ์๊ณ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ ธ์ต๋๋ค).
์ง๊ธ๊น์ง ๋๋ ๋ต์ฅ์ ํ์ด๋ณผ ์ ๋ฐ์ ์์์ต๋๋ค(๋ชจ๋ ์ธ๋ถ ์ฌํญ๊ณผ ํต์ฐฐ๋ ฅ์ ๋ํด ๋ชจ๋์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!). ๋ต๋ณํ ์ ์์ต๋๋ค... ์ฃ์กํฉ๋๋ค. ์ง๊ธ ๋๋ฌด ๋ง์ ํ์ฌ์ ๊ณ ์ธต ๋น๋ฉ์ด ์งํ ์ค์
๋๋ค.
๋ชจ๋ ์ข์ @karelz! ์ฌ๊ธฐ์์ ๊ทํ์ ๋ ธ๋ ฅ๊ณผ ๋ํ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ค์์ ์คํ ์์ฑ WPF์ ๋ํ ํฌํ์ ๋๋ค. XAML์ ๋ค๋ฅธ ๋ชจ๋ ๋ฒ์ ์ ๋น๊ตํ๋ฉด ์ฐ๋ ๊ธฐ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง์งํ๊ฒ ์ฌ๋ฌ๋ถ, ์ด๊ฒ์ ๋ํ ๋ฃจํ๋ฅผ ์๋ฃํ๊ณ ์ ๋์ค ๋ฐ MacOS์ฉ .net ์ฝ์ด/XAML STORE ๊ฐ ์์ต๋๋ค.
@Mike-EEE ๋งค์ฐ ์ฃ์กํฉ๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด ๋ค์ ์ด์ผ๊ธฐํ ์๊ฐ์ด ์์์ต๋๋ค :(
์ค, ๊ฑฑ์ ํ์ง ๋ง์ธ์. @karelz ์ง๊ธ ๋ชจ๋๊ฐ ๋ฐ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋๋ ๋ฌด์๋ณด๋ค ๋ํ๋ฅผ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋ด ๋จธ๋ฆฌ์์ ๋ง์ ๊ฒ์ ์ป์๋ค. ๊ทธ๊ฑธ ๋ณด๊ณ ๋ฐ์ฑํ๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ์์. ๊ฒ๋ค๊ฐ, ์ฐ๋ฆฌ๋ ์ง๊ธ๊น์ง ์ด๋ฏธ 1๋ ์ด์์ ๊ธฐ๋ค๋ ธ์ต๋๋ค... ๋ช ๊ฐ์ ์ ๋ ๋ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น? :)
๊ทธ๋ค์ Silverlight 5 ..๋ฅผ html5 ์ด๋, win8 ์ด๋/winrt...& ์ด์ uwp & win10 ๋ฐ xamarin ..๊ณตํต์ผ๋ก ๊ณต๊ฐํด์ผ ํฉ๋๋ค. ํ๋ฆฌ์ฐ๋์ ๊ฐ์ ๋ผ๋ผ ๋๋์์ ๊ธธ์ ์์ ํ์ฌํ ๋น์ ์ด๋ ๋ญ...
์ด๋ป๊ฒ Silverlight 5์์ ๋ชจ๋ ์ฐ๋ ๊ธฐ๋ก ๊ฐ ์ ์์ต๋๊น? ์ด๋ป๊ฒ? ์ด์ ๋ธ๋ฆฌ ์ธํฐํ์ด์ค๋ฅผ ํญ์ ๊นจ๋จ๋ฆด ๋ ์ด๋ป๊ฒ ์ฌ์ฉ์๋ฅผ ์กด์คํ๋ค๊ณ ๋งํ ์ ์์ต๋๊น? ์์ ์ nuget ํจํค์ง ์ด๋ฆ์ ๋ฐ๊พธ๊ณ nuget์์ ์ด์ ํจํค์ง์์ ์ ํจํค์ง๋ก ์๋ ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์์ต๋๋ค. ์ฌ์ ํ ๋ชจ๋ ์ฌ๋์ ๋ฌดํ๋๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์์ด๋์ด๋ฅผ ๋ง๋ค๊ณ ์ฝ๋ฉํ๊ธฐ ์ ์ ๋ช ํํ๊ฒ ์๊ฐํ๊ธฐ์๋ ๋๋ฌด ๋ฉ์ฒญํ๊ธฐ ๋๋ฌธ์ ๋ฒ ํ ํ ์คํฐ์ ๋๋ค.
xamarin ํ์์ ios/android/uwp ํ๋ก์ ํธ์ ๋ํ ํ์์ฑ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ๊ฐ ํ๋ซํผ์ ๋ํ ํ๋ก์ ํธ๋ฅผ ๊ฐ๋ ๊ฒ๋ณด๋ค ๋ค์ค ํ๋ซํผ์ ์ง์ํ๋ ํจ์ฌ ๋ ๋์ ๋ฐฉ๋ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์ ๋ชจ๋ ๊ฒ์ ํ๋์ f ์๋๋ก ๊ฐ์ ธ์ต๋๋ค. ํ๋ ์์ํฌ ๋น์ ์ ์์ดํ(wpf/silverlight ์ ์ฉ ๋ฒ์ ๋ฐ xaml ์ธ์ด๋ฅผ ๊ถ์ฅํ์ง๋ง xamarin์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ ธ์ค๊ณ ์ถ์ง๋ง ์คํ์ผ/ํ ํ๋ฆฟ์ ๋ฐ์ดํฐ ์ ํ์ ์ถ๊ฐํ ์ ์์ต๋๊น? .. ๋ง์ ์ฌ๋๋ค์ฒ๋ผ ์ด์ํ ๋๋ฝ์ด ์๋์ง ํ์ธํ๊ณ f. nucrapget์ด ์๋ํ๋์ง ํ์ธํ์ญ์์ค. ํ ๋ฒ๋ง .. ๋๋์ฒด ์ ๋ชจ๋ ์ข ์ ์ด์ ๋ธ๋ฆฌ์ ๋๊ฒ ํจํค์ง๋ฅผ ์ค์นํด์ผํฉ๋๊น?์ฐธ์กฐ ๋ dll๊ณผ ๋์ผ ..?๋น์ ์ ๋น์ ์ด ์์ต๋๋ค ... niet ์์ ... capout ...์ด ๋ชจ๋ ์๊ฐ์ ms ์ฐ๋ ๊ธฐ์ ๊ฐํ ์์ต๋๋ค. .. ๋๋ ๋ด ์์ ์ f. ์ธ๊ณ์ ์ธ ์์ค์ SDK๋ฅผ ๊ตฌ์ถํ ์ ์์์ต๋๋ค.
๋๋ MS ์์ด๋ ํ๋ฃจ๋ฅผ ๋ณด๋ผ ์ ์๋ค. ๋๋ ์ฌ๊ฐํ๊ฒ scala-js๋ฅผ ๊ณ ๋ คํ๊ณ ์๋ค. ์๋๋ฉด ๊ทธ๋ฅ swift.. ์ง์ ๋ ๋ ์๊ฐ์ด๋ค! ๋ ์ง์ณค์ด
๊ฑฐ์ 2๋
์ด ๊ฑธ๋ ธ์ง๋ง UWP๋ ๋ง์นจ๋ด Xaml ๋ชจ๋ธ์ ๋ํ ๋งํฌ์
ํ์ฅ์ ์ง์ ํ์ต๋๋ค.
https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/7232264-add-markup-extensions-to-and-improve-winrt-xaml
์ฐธ๊ณ ๋ก ๋ ธ์์์ค๋ ์ง๋์ฃผ์ v2.0 ์ ํ์ ์ถ์ํ๋๋ฐ ์๋นํ ์ธ์์ ์ ๋๋ค. Xaml ์์คํ ์ ์ด๋ฏธ ๋งํฌ์ ํ์ฅ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์์ผ๋ฉฐ(C++์์๋ C#๋ ์ ๊ณต ์ค) ์ฌ์์ ๋๋ฌํ๋ ๋ฐ 7๋ ์ด ๊ฑธ๋ฆฌ์ง ์์์ต๋๋ค. ์ด์ ์ธ๋ ๊ฐ๋ฐ์์๊ฒ๋ ๋ฌด๋ฃ์ ๋๋ค. AmmyUI ์ง์ ์ ๊ณ ๋ คํ๋ฉด Xaml ๋ชจ๋ธ์ด ATM์ผ๋ก ์ ํ๋๋ ํ ์ด๊ฒ์ด ๋ด ๋ชฉ๋ก์ ๋งจ ์์ ์๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
@karelz๋, ์๋ง๋ ์ด๊ฒ์ ๋ํด ๋๊ธ์ ๋ฌ ์ ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ ๋ฐ์ํ๊ณ ์๋ UWP Xaml "์ฌ์"์ด ์ด ๋ฌธ์ ์ ์๊ด ๊ด๊ณ๊ฐ ์๋์ง ์๊ณ ์์ต๋๊น? ๊ทธ๋ ์ง ์๋ค๋ฉด ๊ฐ๋ฅํ์ง ์์ญ๋๊น? ๋ฏธ์น ์๊ฐ์ด์ง๋ง ๋์์ด ๋ ์ ์๋ค๋ฉด ํ๋์ ๊ฐ๊ฒฉ์ผ๋ก ๋ ๊ฐ์ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ์ข์ ์๋ ์์ต๋๋ค. UWP ํฌํ์์๋ ๊ฑฐ๊ธฐ์ ๋ฉ์์ง๋ฅผ ๋จ๊ฒผ์ง๋ง ์ฌ๊ธฐ์์๋ ํ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
@Mike-EEE UWP Xaml "์ฌ์"์ ๋ค๋ฅธ ์กฐ์ง(Windows์์ ์๊ฐํจ)์ ์ํด ๊ตฌ๋๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ฌ์ฉ์ ์์ฑ์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๊ฒ์ด ์๋ง๋ ๊ฐ์ฅ ์ข์ ์ฑ๋์ผ ๊ฒ์ ๋๋ค.
๋ค, ๊ทธ๊ฒ ๋๋ ค์ ์ต๋๋ค. ๐ ๊ฑฐ๊ธฐ์์ ๋ต์ฅ์ ๋ฐ์์ง๋ง ์์งํ ๋งํด์ ๋์๊ฒ๋ ๋ณ๋ก ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋ด๊ฐ ๊ดด๋ก์ํ ์ ์๋ ๋ฐ์ ๋ฐ๋ฅด๋ฉด, ๊ทธ๋ค์ ์ฌ์ ํ๋ก์ธ์ค์ ๋ํด ๊ณ์ ๋น๊ณต๊ฐ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ด๊ฒ์ ์ง๋๋ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์๋ฌด๋ ์ฌ์ฉํ๊ฑฐ๋ ์ฑํํ๊ณ ์ถ์ง ์์ API๋ก ๋๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ ค๋ฉ๋๋ค.
์๋ง๋ ๊ทธ๋ค์ ๊ฐ๋ฐ์๋ค์ด ์์ ์ ์์ ์ ๋ํด ๋ถํํ๋ ๊ฒ์ ๋น๋ฐ๋ฆฌ์ ์ฆ๊น๋๋ค. :)
์ด์จ๋ , ์ด ๊ธ์ ์ฝ๊ณ ์๊ณ ํฌ๋ช
ํ ์คํ ์์ค ํ์
๋ฐ ๊ฐ๋ฐ์ ์ง์งํ๊ณ ์ด ๋๋ฉ์ธ์ ๋ํ asp/.NET Core ์ด๋์
ํฐ๋ธ์ ์ฑ๊ณต์ ์ฐธ์ฌํ๋ ๊ฒ์ ์ฆ๊ฒผ๋ค๋ฉด ์ ์ ์๊ฐ์ ๋ด์ด ์์ธํ ์ดํด๋ณด์ญ์์ค. WPDev UserVoice๋ก ๋ณด๋ด ๋์ผํ ์์
์ ์ํํ๋๋ก ๊ถ์ฅํ๋ ๋ฉ๋ชจ๋ฅผ ๋ณด๋
๋๋ค. ๋งํฌ๋ ์ด์ ์ ์ธ๊ธ๋์์ง๋ง ์ด๋ฉ์ผ์์ ์ด ๊ธ์ ์ฝ๋ ์ฌ๋๋ค์ ์ํด ๋ค์ ํ ๋ฒ ์๋ ค๋๋ฆฝ๋๋ค.
https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/7232264-add-markup-extensions-to-and-improve-winrt-xaml
๋๋ @birbilis ์๊ฒ ์ ํ๋ฅผ ๊ฑธ์ด ๊ทธ์ ์ด์ ๊ธฐ์ฌ์ ๋ํด ๊ฐ์ฌ๋ฅผ ํํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ฌ๊ธฐ์์ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค๋ฅผ ํ๋ณดํ๊ธฐ ์ํด ๋๊ตฌ๋ ์ง ๋น๋ ค์ค ์ ์๋ ์ถ๊ฐ๋ก ์น์ ํ ๋ง์ ํด์ฃผ์๋ฉด ๋๋จํ ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๐
ํ์จ ... uservoice์ฒ๋ผ ์ฌ๋๋ค์ด ๋ฌผ๊ฑด์ ํฌํํ๋๋ก ํ๊ณ ๊ฒฐ๊ตญ ์ธ๊ธฐ๊ฐ ์๋๋ผ๋ ๊ทธ๊ฒ์ ๋ํด ์๋ฌด ๊ฒ๋ ํ์ง ๋ง์ญ์์ค!
์
๋ฐ์ดํธ:
https://github.com/microsoft/xaml-standard
@Mike-EEE๊ฐ ์ด๊ฒ์ผ๋ก ๋งค์ฐ ๊ธฐ๋ปํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค ;P
๋๋จํ ์์ง์์ ๋๋ค. @RichiCoder1 ์ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋ถํํ๋ UI ์ ์ฉ์ ๋๋ค. Sharepoint ๋ฐ WF์ ๊ฐ์ XAML์ ๋ค๋ฅธ ์ฉ๋๋ ์๋ง ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋ ์ต๋๋ค. ์ต์ํ ์ง์๋๋ ๋ชจ๋ ํ๋ซํผ์์ XAML์ ํ์คํํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
ํธ์!
๊ทธ๋ค์ด ๊ทธ๊ฒ์ ๋ ์ด์ด๋ก ๋๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์๋ฅผ ๋ค์ด UI๊ฐ ์๋ ๊ธฐ๋ณธ XAML ๋ ์ด์ด์๋ ๋ณ๋๋ก XAML 3D ๋ ์ด์ด๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค.
@galvesribeiro ๋๊ตฐ๊ฐ๊ฐ ๋ฌธ์ ๋ฅผ ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค. https://github.com/Microsoft/xaml-standard/issues/23 +1ํ๊ฒ ์ต๋๋ค. ์ต์ข ํ์ค์ด ๋ถ๋ฆฌ๋์ง ์์ ์ด์ ๊ฐ ์์ต๋๋ค.
@Mike-EEE๊ฐ ์ด๊ฒ์ผ๋ก ๋งค์ฐ ๊ธฐ๋ปํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค ;P
ใ ใ ๊ทธ๋ฆฌ๊ณ ๋ง์์, @RichiCoder1! ๋ชจ๋ ๊ฒ์ด ์๋ชป๋๊ณ ๊ณ ์ฅ๋ฌ๊ณ ์์ด์ผ ํ ๊ณณ์ด ์์์ง๋ง ์ด์ ์์์ ๋๋ค. ;) ์๋ ค์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐
๊ทธ๋ฆฌ๊ณ ๋๊ตฐ๊ฐ๊ฐ https://github.com/Microsoft/xaml-standard/issues/23์ ๋ง๋๋ ๊ฒ์ ๋ณด๊ฒ ๋์ด ๋งค์ฐ ๊ธฐ์ฉ๋๋ค. ๊ทธ๋์ ์ ๋ ๊ทธ๋ ๊ฒ ํ ํ์๊ฐ ์์ต๋๋ค. ;) ;) ;)
XAML Standard!!์ WF(Workflow Foundation) ํฌํจ์ ๊ณ ๋ คํ์ญ์์ค.
@Suriman ํฌํ ๋ถํ๋๋ฆฝ๋๋ค!
https://github.com/Microsoft/xaml-standard/issues/23
๊ทธ๋์ ์ ๋ ๋ฌป๊ณ ์ถ์ง ์์ต๋๋ค. ์ข์ ๋ฆฌํฌ์งํ ๋ฆฌ/๋ฐํ ์๋ฏผ์ด ๋๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ํฉ๋๋ค. ํ์ง๋ง ์ด ๋ฌธ์ ๊ฐ ๋ ์ด์ ํ์ํฉ๋๊น? ๋ด ๋ง์, ๊ทธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ์ด๋ฏธ ์ด ๋ฌธ์ ๊ฐ ํ ์ ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์์ธํ ๋ด์ฉ์ด ํฌํจ๋ 50๊ฐ ์ด์์ ๋ฌธ์ ๋ฅผ ๊ธฐ๋กํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ด๋ฏธ ์์ ์ ์ถ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค!
์ด ๋ฌธ์ ๋ฅผ ๊ณ์ ๊ณต๊ฐํด์ผ ํ๋ ์ด์ ๊ฐ ์์ต๋๊น? ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ์์ ํ ์คํดํ์ง ์๋ ํ(๋งค์ฐ ๊ฐ๋ฅ์ฑ ์์) Xaml Standard๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๊ธฐ์์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๊ฒ์ ์ปค๋ฎค๋ํฐ ์ค์ฌ์ด๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฅ ์ค์ํ ๋ชจ๋ ๊ฒ์ ๋๋ค. :)
@Mike-EEE ๋ ๋ฌธ์ ์ฌ์ด์๋ ๋ฏธ๋ฌํ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ํ๋๋ XAML ์์ฒด ๋ด์์ ์ฌ์ฉ ๊ฐ๋ฅํ API๋ฅผ ํ์คํํ๋ ๊ฒ(์๊ฒฉํ XAML ์์ฒด์์)์ด๊ณ ๋ค๋ฅธ ํ๋๋ XAML์ System.Xaml๊ณผ ์ ์ฌํ .NET Standard ๊ตฌ์ฑ ์์๋ก ์ง์ํ๋ ๊ฒ์ ๋๋ค.
@lokitoth ๋ ์ด์ ๋ํ ๋ํ๋ฅผ ํ์คํ ์ด๋ ค ์์ต๋๋ค. ์ ๋ ์ฌ์ ํ ๋ชจ๋ ์๋ก์ด ๋ถ๋ถ์ ์ ์ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ก์ด .NET Standard2.0์์ "๋ฐ๋ก ์๋ํ๋" ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ @terrajobst ์ ํ๋ฅญํ๊ณ ์ ์ตํ ๋น๋์ค ๋ฅผ ์์ฒญํ๋๋ก ์ ์ํ๋ ๊ฒ์ผ๋ก ์์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์ด System.Xaml์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง์ ๋ํด ์๊ฐํ์ง ์์์ต๋๋ค. ๋ด ์๊ฐ์ "๊ทธ๋ฅ ์๋"ํด์ผํ์ง๋ง ์๋ง๋ ๋๋ ์ง๊ธ ์ฌ๊ธฐ์์ ์ฐฉ๊ฐํ๊ณ ์๋ค๊ณ ์๊ฐํ๊ธฐ ์์ํ์ต๋๋ค (์ ๋ง๋ก ๋๋ฌด ์ข์ต๋๋ค).
๊ทธ๋ฆฌ๊ณ ์์งํ ๋งํด์, Xaml Standard ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ด ์ค๋ ๋ ์ค ๋ช ๊ฐ๋ฅผ ์ฝ์ ํ, ์ ๋ ์ด์ ์ ์์ ๋ํด ์ผ์ข ์ ๋ด ์์ ์ ๋ฐ๋ก ์ฐจ๊ณ ์์์ต๋๋ค(โ๏ธ ์ปคํผ ๋๋ถ์ ๊ทธ๋ ๊ฒ ํ์ต๋๋ค, ๋งน์ธํฉ๋๋ค! โ๏ธ). ๋ณด๊ธฐ์ "Xaml Standard"๋ ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฃผ๋ก ๋ ผ์๋๊ณ ์๋ "MSFT UX/UI Standard"๋ก ๋ ์ ๋ช ๋ช ๋ฉ๋๋ค. ํ์ฌ๋ก์๋ ๊ฐ๋ ฅํ ์ง๋ ฌํ ๊ธฐ์ ์ธ Xaml์ด ์ ํ ์ ์/์ ์/๊ฐ์กฐ๋์ง ์๊ณ ์์ผ๋ฉฐ(์ฌ๊ธฐ์ ๋ ธ๋ ฅํ ์์์ ์ฉ๊ฐํ ๋ชฉ์๋ฆฌ๋ฅผ ์ ์ธํ๊ณ ) ์ผ๋ถ ์ฐ๊ฒฐ ๋๊น/ํผ๋๋ ์ด๋ํ๊ณ ์์ต๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์ด System.Xaml์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง์ ๋ํด ์๊ฐํ์ง ์์์ต๋๋ค.
.NET Standard 2.0 ์ปจํ ์คํธ์์ ์ข ์์ฑ ํธ๋ฆฌ๋ฅผ ๋ก๋ํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ ํ๋ ค๋ฉด ์ด์ ๋ธ๋ฆฌ๋ฅผ ๊ฒ์ฌํด์ผ ํฉ๋๋ค. ์์ํ .NET์ธ ๊ฒฝ์ฐ ์๋ํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค(.NET Core์ ๋๊ตฌ ์ฒด์ธ์ผ๋ก ๊ฐ์ ธ์ฌ BAML, Embedded Resources ๋ฑ๊ณผ ๊ฐ์ ์ ์ฒด ์ปดํ์ผ ์๊ฐ ํญ๋ชฉ ์งํฉ์ด ์์ง๋ง)
๋ณด๊ธฐ์ "Xaml Standard"๋ ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฃผ๋ก ๋ ผ์๋๊ณ ์๋ "MSFT UX/UI Standard"๋ก ๋ ์ ๋ช ๋ช ๋ฉ๋๋ค.
์ ์๊ฐ์๋ UWP/Xamarin.Forms์ ์ปจํ ์คํธ์์ ๋ฐํ๋๋ ๊ธฐ๋ฅ์ ๊ฐ๊น์ต๋๋ค. ์ฆ, "BigXaml"์ ๋ ธ์ถ๋์ง ์์์ ์ ์๋ ๋ ํ๋ซํผ์ ์ค์ ์ ๋ ๊ฐ๋ฐ์๊ฐ ์ฃผ๋ก ๊ธฐ์ฌํ๋ ๊ฒ์ ๋๋ค. ๋ช ๊ฐ์ง "๋ชจ๋ WPF XAML ์ธ์ด ๊ฐ์ ธ์ค๊ธฐ" ๋ฌธ์ ๊ฐ ์ด๋ ธ์ต๋๋ค.
ํ์ด ํด์ผ ํ ์ ๋ฆฌ ์์ ์ด ๋ง์ด ์๊ณ ํ์ฌ ์ ๋ฌธ์ ์ ๋น์จ์ด ๊ธฐ์ฌํ๋ ์ฌ๋๋ค์ ์์ ๋นํด ์๋นํ ๋๋ค๋ ์ ์ ๊ฐ์ํ ๋ ํ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๊ฐ์ ์ข ๋ ์ฃผ๊ณ ์ถ์ต๋๋ค.
@Mike-EEE @terrajobst @terrajobst @cwensley @mellinoe
Xaml Standard์์ ๋ฌธ์ ๋ฅผ ๋ง๋ค์์ต๋๋ค.
https://github.com/Microsoft/xaml-standard/issues/57
@juepiezhongren, ๋จธ๋ฆฌ๋ฅผ ๋ค๊ณ ๋ํ์ ๊ธฐ์ฌํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@lokitoth https://github.com/Microsoft/xaml-standard/issues/23 ์ด ์ผ๊ด์ ์ ํฉํ์ง ์๋ค๊ณ ๊ฒฐ์ ๋์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
๊ทธ๋ฌ๋ ๋น๋ฉดํ ๋ฌธ์ ๋ฅผ ๋ ์ ์ค๋ช ํ ์ ์๋ ์๋ก์ด ๋ฌธ์ ๋ฅผ ๋ง๋ค์์ผ๋ฉฐ ์ฌ๊ธฐ์ ์ฐฌ์ฑ ํฌํ ๋ฐ/๋๋ ๊ธฐ์ฌ๋ฅผ ์ถ๊ฐํ๋ฉด ๊ต์ฅํ ๊ฒ์ ๋๋ค. https://github.com/Microsoft/xaml-standard /์ด์/145
๋ช ํํ ํ์๋ฉด, ๋น์ ์ด ์ฐพ๊ณ ์๋ ๊ฒ์ ์ค์ ๋ก _JavaScript_+HTML5+CSS3 ์์ฑ ์ํฐํฉํธ์ ๋๋ค. TypeScript๋ ์ค์ ๋ก JS์ฉ ํธ๋์คํ์ผ๋ฌ์ ๋๋ค. .NET ๋ณํ๊ธฐ๋ฅผ ๋ง๋ค์ด ๋ธ๋ผ์ฐ์ ์์ ํจ๊ณผ์ ์ผ๋ก ์คํ๋๋ ํ์ค ํธํ JS๋ฅผ ๋ง๋๋ ๋์ (์: JSIL ), MSFT๋ C# ์์ฑ์์ ๊ท์คํ ์๊ฐ์ ์ฌ์ฉํ์ฌ ํจ๊ณผ์ ์ด๊ณ ๊ถ๊ทน์ ์ผ๋ก ์ด์ ๊ฒฝ์ํ ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๋๋ ์ด๊ฒ์ ์์ํ์ง ๋ง๋ผ๊ณ ๋งํ๊ณ ์ถ์ง๋ง, ๋๋ ๊ฒฐ์ฝ ๋ฉ์ถ์ง ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๐
๋ํ ๋ ๋ค๋ฅธ ์์ ์ CSHTML5 ๊ฐ @weitzhandler ๋ฅผ ์ฐพ๊ณ ์๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํ์ง๋ง ํด๋ผ์ด์ธํธ/์๋ฒ ์ด์ ๋ธ๋ฆฌ(์: PCL) ๊ฐ์ ๊ณต์ ์ฝ๋๋ฅผ ํ์ฉํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ฌ์ ํ ์ ์งํด์ผ ํ ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ํธํ๋์ง ์๋ ์ฝ๋ ๊ธฐ๋ฐ์ด ๋จ๊ฒ ๋์ด .NET๊ณผ JS(๋๋ TypeScript ๐) ๊ฐ์ ๋์ผํ ๋น์ฉ/๋น์ฆ๋์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ ์๊ฒฉํ NodeJS ์๋ฃจ์ ์๋ ์กด์ฌํ์ง ์์ต๋๋ค.
๋ด ๊ฟ์ ๋ํธ ๋ท ์ฝ์ด๊ฐ ์๋ ๋ฐ์คํฌํ ์ฑ์ Android xml ui ์ฐ๊ธฐ ์คํ์ผ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค! ๋ค ์ง์ง๋ก ์!!
XAML์ .NET ์ฝ์ด๋ก ์ด์ํ๋ ค๋ ๋ชจ๋ ๋ ธ๋ ฅ์ ๊ธฐ๊บผ์ด ์์ํ๊ฒ ์ต๋๋ค.
CoreWf (net standard 2.0์ WorkflowFoundation)์ ๋ํ ์์ ์ฌํญ ์์ Xaml ์์ DynamicActivity ๋ก๋ ๋ฅผ ํ์ฉํ๋ ค๋ฉด System.Xaml ๋๋ ๋ ํธํ ๊ฐ๋ฅํ Portable.Xaml ๊ตฌํ์ด ํ์ํ ์ ์์์ ์ ์ ์์ต๋๋ค. System.Xaml์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ DynamicActivity๋ฅผ ๋ก๋ํ๋ .net ํ๋ ์์ํฌ์์ CoreWf๋ฅผ ์คํํ๊ณ ์์ง๋ง Portable.Xaml์ ์ฌ์ฉํ๋ .net ์ฝ์ด์ ์๋ชป๋ ๊ตฌ๋ฌธ ๋ถ์ ์ํ๋ก ์ธํด ์ฌ์ ํ ์คํจํฉ๋๋ค.
ํ ๊ฐ์ง ์ง๋ฌธ์ System.Xaml์ ๋ํ ์ฝ๋๊ฐ Mit ๋ผ์ด์ ์ค ์ฐธ์กฐ ์์ค ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ถ๊ฐ๋์ง ์์ ์ด์ ์ ๋๋ค. ๋ผ์ด์ ์ค, ํนํ ๋๋ ๊ธฐํ ๋ฌธ์ ๊ฐ ์์ต๋๊น? ๋ฌธ์ ๊ฐ ์๋ค๋ฉด ์ด ์ฝ๋๋ฅผ ์ฐธ์กฐ ์์ค์ ์ถ๊ฐํ๋ฉด ์ปค๋ฎค๋ํฐ์์ CoreWf๋ฅผ ์ง์ํ๋ ๋ฐ ํ์ํ ์ด์์ ์ํํ ์ ์์ต๋๋ค. ์ฐธ์กฐ ์์ค ๋ฆฌํฌ์งํ ๋ฆฌ ๋ Microsoft๊ฐ System.Xaml์ ์ง์ํ๋๋ก ์ปค๋ฐํ์ง ์์ต๋๋ค. System.Xaml์ ์ด๋๋ก ์์ฒญํ๋ ๋ฌธ์ ๋ฅผ ์ถ๊ฐํด์ผ ํฉ๋๊น?
System.Xaml์ด ์ด๋ ค ์์ง ์์ผ๋ฉด WorkflowFoundation์ ๋ํ Xaml ์ฝ๋๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ํ ํฐํํ๋ ์ฌ๋ฐ๋ฅธ ๋จ๊ณ๋ฅผ ์ค๋ช ํ๋ ํ ์คํธ ํ์์ผ๋ก ๋ฌธ์(Xaml ์ฌ์ ์ธ) ๋๋ ์ง์์ ๋ฐ์ ์ ์์ต๋๊น?
์๋
ํ์ธ์ FWIW @karelz ์ฌ๊ธฐ์ DevOps ์๋๋ฆฌ์ค์ ๋ํ ๋ช ๊ฐ์ง ์๊ฐ์ ๋ฃ์์ต๋๋ค.
https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/31381861-innovate-the-xaml-designer-dawg
Visual Studio Xaml Designer์ ๋ช ๊ฐ์ง ๋ฉ์ง ์ฌ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก:
https://blogs.msdn.microsoft.com/visualstudio/2017/09/11/a-significant-update-to-the-xaml-designer/
๋ด๊ฐ ๊ทธ๊ฒ์ ์๋ ๋์ ์ฌ๊ธฐ์์ ์ธ๊ธํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๐ ๊ฒ๋ค๊ฐ, ์ด ์ค๋ ๋๋ ์ถฉ๋๋ก ์ธํด ๊ธฐํ์ด ์ง๋ฌ์ต๋๋ค. ๐
@weitzhandler ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. mono-wasm์ด ์ํ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ js๋ฅผ ์์ด๋ฒ๋ฆด ์๊ฐ์ด ๊ฑฐ์ ๋ค ๋์์ต๋๋ค.
@weitzhandler 2๋ ๋๋ 3๋ ์ด ํ์ํ์ง๋ง ์ ์ฒด ์คํ์ด ์๋๋ผ .net์ฉ ๋ฒ์ฉ ์คํ์ ๋๋ค.
CoreRT๋ https://github.com/dotnet/corert/pull/4480 ์๋ ์์ต๋๋ค. ๋ด๋ ์ ํ๋ก๋์ ์ค๋น๊ฐ ๋ HTML+CSS+C# ์ฝค๋ณด๋ฅผ ๊ธฐ๋ํฉ๋๋ค.
์ ์๋ .net ํธํ์ฑ ํฉ ์๋ System.Xaml
๊ฐ ํฌํจ๋์ด ์์ ์ ์์ผ๋ฉฐ ์ด ๋ฌธ์ ์ ์ฐ๊ฒฐ๋์ด ์์ ์ ์์ต๋๋ค.
๋ถ๋ช ํ ์ด ๋ฌธ์ ๋ compat pack 2.1์ ์ฐ๊ฒฐ๋์์ต๋๊น? ๋๊ตฐ๊ฐ ํ์ธํ ์ ์์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด netfx-compat-pack์ผ๋ก ํ๊ทธ๊ฐ ์ง์ ๋์์ง๋ง ๋ฒ์ ์ด ์๋ ๊ฒ์ ๋ณด์์ต๋๋ค. ํ์ง๋ง ์ง๊ธ๊น์ง ๋ฐ์ํ ๋ชจ๋ ์ผ์ ์ฒ๋ฆฌํ๊ฒ ์ต๋๋ค. ๐
์ค๋งํ๊ธฐ๋ ์ซ์ง๋ง compapt ํฉ์ ๋ฌธ์ ๋ฅผ ์ผ๊ด ์ ๋ฐ์ดํธํ ๋ ์ค์๋ก ์ด๊ฒ์ 2.1๋ก ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ ์์์ ์๋ง๋ ์ํ๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด Future๋ก ์ฎ๊ฒผ์ต๋๋ค.
@Mike-EEE xamarin.wasm์ด ๋์ฐฉํ ๊ฒ ๊ฐ์ต๋๋ค.
https://github.com/mono/mono/pull/5924#issuecomment -343551464
์ ๋ฐ์ดํธ๋ฅผ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๋ฅผ ์๊ฐํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. :) @terrajobst ์ ๋ง ์ค๋ง์ค๋ฝ์ต๋๋ค. ํ์ง๋ง ์๊ฐ์ ๋ด์ด ์ฒดํฌ์ธํ๊ณ ์ ๋ฐ์ดํธํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋น์ ์ด ์ฌ์ ํ ์ด ์ค๋ ๋๋ฅผ ๋ ์ด์ ๊ตฌ๋ ํ๊ณ ์๋์ง ์ฌ๋ถ๋ฅผ ํ์ ํ ์ ์์์ต๋๋ค. ๐ผ
์ฐ๋ฆฌ๋ ๋ป๋ปํ๊ฒ ํ๋ก์ ํธ๋ฅผ ์ฐ๊ฒฐํ๋ ๋ฐ ์๊ฐ์ ํ ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์(๊ณต์ Xaml ์์ ์ ๋ฐ๊ธฐ๊น์ง๋ ์๊ฐ์ด ์ข ๊ฑธ๋ฆด ๊ฒ์
๋๋ค), ์ ๋ ์ ์ ์๊ฐ์ ๋ด์ด ExtendedXmlSerializer v2๋ฅผ ๋์ฐ๋ฉฐ ์ง๋ 1๋
์ ๋ณด๋๋ค๋ ์ ์ ์ธ๊ธํ๊ฒ ์ต๋๋ค. ์ต๊ทผ ์ถ์๋ ๊ฒ. ๋งํฌ์
ํ์ฅ ๋ฐ ์ฐ๊ฒฐ๋ ์์ฑ (POCO์์ ์๋, DependencyObject
ํ์ ์์)์ ๋ํ ์คํ์ ์ง์๊ณผ protobuf ์คํ์ผ ๋งค๊ฐ๋ณ์ ์ง๋ ฌํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
System.Xaml์ด ๋์ฐฉํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ Xaml-ish ๊ธฐ๋ฅ์ ์ฐพ๊ณ ์๊ฑฐ๋ ์ถ๊ฐํ๋ ค๋ ๊ฒฝ์ฐ ์์ ๋กญ๊ฒ ํ์ธํ๊ฑฐ๋ ํผ๋๋ฐฑ์ ์ ๊ณต ํ๊ฑฐ๋ (๋ ๋์ ๋ฐฉ๋ฒ์) ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ญ์์ค. ๐
@danmosemsft ๋ 3.0 ๋ฐ์คํฌํฑ ์ด๋์ ํฐ๋ธ์ ์ผ๋ถ๋ก SDK ํ๋ก์ ํธ์์ Workflow Foundation xaml์ ์ง์ํฉ๋๊น?
@lokki ๋๋ ๊ณํ์ ๋ชจ๋ฅธ๋ค. @terrajobst @karelz?
@danmosemsft
".NET Core์ ์ผ๋ถ๋ก UI ํ๋ ์์ํฌ ์ ๊ณต"์ด๋ผ๋ ๋ฌธ์ ๊ฐ ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์ด ๋ฌธ์ ๋ UI ํ๋ ์์ํฌ์ ๋ถ์กฑ์ ๋ํด ๊ตฌ์ฒด์ ์ผ๋ก ์ด์ผ๊ธฐํ์ง ์์ผ๋ฉฐ ์ฌ๊ธฐ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๊นจ๋ซ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
https://github.com/Microsoft/xaml-standard/issues/232 ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
@weitzhandler ์ด ๋ฌธ์ ๋ ์ด์ ๋์๊ฒ ํจ์ฌ ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ค๋ช ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
.NET Standard์ ํฌํจ๋ System.Xaml
๊ฐ ํนํ XAML Standard์ ํจ๊ป ์ ์ฉํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
"๋ฐ์คํฌํฑ ์ด๋์ ํฐ๋ธ"๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด Windows๋ง ๋์์ผ๋ก ํ๋ ํ ๊ณผ๊ฑฐ์ ์ฌ์ฉํ ์ ์์๋ .NET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค(์ฑ์ด ํ๊ฒฝ์ ๋์ ์ผ๋ก ์ ์ํ ์ ์๋์ง ํ์คํ์ง ์์ ๊ธฐ๋ณธ ์ฑ์ด ์ํํ ์ ์๋ ๊ฒฝ์ฐ [์: Windows OS๋ฅผ ์ฐพ์ง ๋ชปํ๋ฉด ์์๋์ง ์์] ํ๋ซํผ๋ณ ํญ๋ชฉ์ ํธ์ถํ๋ ์ฌ๋ฌ .NET Core ์ด์ ๋ธ๋ฆฌ๋ฅผ ๋ง๋ค์ด ์ํํ ์ ์์ต๋๋ค. ์ฑ์ด ์คํ ์ค์์ ๊ฐ์งํ ํ๋ซํผ์ ๋ฐ๋ผ ์์ฒญ ์ ๋ก๋)
@birbilis ๊ฐ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๋์ผํ XAML์ ๋ชจ๋ ํ๋ซํผ์์ ๋์ผํ๊ฒ ๋ ๋๋ง๋์ด์ผ ํฉ๋๋ค.
๋ฐ์คํฌํฑ ์ด๋์ ํฐ๋ธ๋ XAML์ ๊ดํ ๊ฒ์ด ์๋๋ผ .NET Core๊ฐ ์ต์ ๊ณตํต ๋ถ๋ชจ ์ฌ์ผ๋ก๊ฐ ์๋๋ผ ํน์ ํ๋ซํผ์ ๋์์ผ๋ก ํ ์ ์๋(๋๋ ์ด์์ ์ผ๋ก๋ ์คํ ์ค์ธ ํ๋ซํผ์ ๋์ ์ผ๋ก ์ ์ํ๋) ์ฑ์ ํ์ฉํ๊ณ ๊ทธ ์ค์์ ๊ฐ์ฅ ์ ์ฌ์ฉํ๊ณ ํ๋ซํผ๋ณ ํตํฉ ๋ฑ์ ์ํํฉ๋๋ค. ์ด ๊ธฐ๋ฅ ์์ ๊ธฐ๋ฅ ๊ธฐ๋ฐ API๋ฅผ ๊ตฌ์ถํ์ฌ ํน์ ๊ธฐ๋ฅ์ ๊ฐ์ฉ์ฑ์ ์ฟผ๋ฆฌํ๋ ์ฑ์ ์์ฑํ ์ ์์ต๋๋ค. ๋ํ ์ถ์ํ/ํธํ์ฑ API๋ API ์์ฑ์๊ฐ ์ง์ํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ๊ฐ ํ๋ซํผ์ ๋ํ ๋ค๋ฅธ ๊ตฌํ์ ์ฐ๊ฒฐํ์ฌ ๋น๋ํ ์ ์์ต๋๋ค.
ํ์ฌ๋ก์๋ Portable.Xaml ์ด System.Xaml์ ๋งค์ฐ ๊ฐ๊น๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ์ฐพ์ผ๋ฉด ํผ๋๋ฐฑ์ ์ฃผ์ญ์์ค.
WPF ํ(@dotnet/wpf-developers)์ .NET Core 3.0์ฉ WPF์ ์คํ ์์ฑ์ ๋ฐํํ์ต๋๋ค . ๊ทธ ์ผํ์ผ๋ก .NET Core 3.0์ฉ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋น๋์๋ ์ด์ System.Xaml์ด ํฌํจ๋๋ฉฐ ํด๋น ์์ค๋ https://www.github.com/dotnet/wpf์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@Michael-DST @rschiefer