Silverlight์˜ ์˜คํ”ˆ ์†Œ์Šค ๊ตฌํ˜„์ธ OpenSilver 1.0 ์ถœ์‹œ

C#, XAML ๋ฐ .NET ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”ํ˜• ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” Silverlight ํ”Œ๋žซํผ์˜ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์„ ์ œ๊ณตํ•˜๋Š” OpenSilver ํ”„๋กœ์ ํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์•ˆ์ •์ ์ธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” C#์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ MIT ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋œ Silverlight ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ WebAssembly๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ๋ฐ์Šคํฌํ†ฑ ๋ฐ ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ง์ ‘ ์ปดํŒŒ์ผ์€ ํ˜„์žฌ Visual Studio๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Windows์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Microsoft๋Š” 2011๋…„์— Silverlight ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ–ˆ์œผ๋ฉฐ 12๋…„ 2021์›” 10์ผ์— ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ง€์›์„ ์™„์ „ํžˆ ์ค‘๋‹จํ•  ์˜ˆ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค. Adobe Flash์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Silverlight ๊ฐœ๋ฐœ์€ ํ‘œ์ค€ ์›น ๊ธฐ์ˆ ์„ ์œ„ํ•ด ๋‹จ๊ณ„์ ์œผ๋กœ ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฝ XNUMX๋…„ ์ „ ์ด๋ฏธ Mono๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Silverlight์˜ ๊ฐœ๋ฐฉํ˜• ๊ตฌํ˜„์ธ Moonlight๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์—ˆ์œผ๋‚˜ ์‚ฌ์šฉ์ž์˜ ๊ธฐ์ˆ  ์ˆ˜์š”๊ฐ€ ๋ถ€์กฑํ•˜์—ฌ ๊ฐœ๋ฐœ์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

OpenSilver ํ”„๋กœ์ ํŠธ๋Š” Microsoft์˜ ํ”Œ๋žซํผ ์ง€์› ์ข…๋ฃŒ์™€ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ง€์› ์ค‘๋‹จ์˜ ๋งฅ๋ฝ์—์„œ ๊ธฐ์กด Silverlight ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆ˜๋ช…์„ ์—ฐ์žฅํ•˜๊ธฐ ์œ„ํ•ด Silverlight ๊ธฐ์ˆ ์„ ๋ถ€ํ™œ์‹œํ‚ค๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ .NET ๋ฐ C# ์ง€์ง€์ž๋“ค์€ OpenSilver๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๊ณ  Silverlight API์—์„œ ๋™๋“ฑํ•œ OpenSilver ํ˜ธ์ถœ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด Visual Studio ํ™˜๊ฒฝ์— ํŠน๋ณ„ํžˆ ์ค€๋น„๋œ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

OpenSilver๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ Mono(mono-wasm) ๋ฐ Microsoft Blazor(ASP.NET Core์˜ ์ผ๋ถ€)์˜ ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด WebAssembly ์ค‘๊ฐ„ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. OpenSilver๋Š” CSHTML5 ํ”„๋กœ์ ํŠธ์™€ ํ•จ๊ป˜ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด C#/XAML/.NET ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜๊ธฐ์— ์ ํ•ฉํ•œ JavaScript ํ‘œํ˜„์œผ๋กœ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OpenSilver๋Š” C#/XAML/.NET์„ JavaScript๊ฐ€ ์•„๋‹Œ WebAssembly๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด CSHTML5 ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

ํ˜„์žฌ ํ˜•ํƒœ์—์„œ OpenSilver 1.0์€ C# ๋ฐ XAML์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ง€์›์€ ๋ฌผ๋ก  Telerik UI, WCF RIA ์„œ๋น„์Šค์™€ ๊ฐ™์€ C# ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ํ”Œ๋žซํผ API ๊ตฌํ˜„์„ ํฌํ•จํ•˜์—ฌ Silverlight ์—”์ง„์˜ ๋ชจ๋“  ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. , ํ”„๋ฆฌ์ฆ˜ ๋ฐ MEF. ๋˜ํ•œ OpenSilver๋Š” C# 9.0, .NET 6 ๋ฐ Visual Studio ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ์ƒˆ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ง€์›์€ ๋ฌผ๋ก  ๋ชจ๋“  JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ˜ธํ™˜์„ฑ๊ณผ ๊ฐ™์ด ์›๋ž˜ Silverlight์—๋Š” ์—†๋Š” ์ผ๋ถ€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๊ณ„ํš์—๋Š” ํ˜„์žฌ ์ง€์›๋˜๋Š” C# ์–ธ์–ด ์™ธ์— Visual Basic(VB.NET) ์–ธ์–ด์— ๋Œ€ํ•œ ๋‚ด๋…„ ์ง€์› ๊ตฌํ˜„๊ณผ WPF(Windows Presentation Foundation) ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ๋„๊ตฌ ์ œ๊ณต์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํ”„๋กœ์ ํŠธ๋Š” Microsoft LightSwitch ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜๊ณ  ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํŒจํ‚ค์ง€ ํ˜•ํƒœ๋กœ ์ œ๊ณต๋  ์˜ˆ์ •์ธ ์ธ๊ธฐ ์žˆ๋Š” .NET ๋ฐ JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ๋ณด์žฅํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€