ํธ์ง: "ASP.NET Core 2.0์ ๋ํ .NET Framework ์ง์ ์์" ๊ณํ์ด ๊ณต์์ ์ผ๋ก ์ทจ์๋์์ผ๋ฉฐ .NET Desktop์์ ASP.NET Core 2.0์ ์คํํ๋ ๊ฒ์ ๋ค์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์์ ์ง์๋ฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ASP.NET Core 2.0.0-Preview1 ๋ฐํ ๋ฐ .NET ์น ๊ฐ๋ฐ์๋ฅผ ์ํ ์ ๋ฐ์ดํธ๋ฅผ ์ฐธ์กฐ ํ๊ฑฐ๋ .NET Standard 2.0 ๋ฐ .NET Core 2.0์ ์์ฒญํ์ธ์.
์๊ฐ์ ๋ด์ด ์ด ์ค๋ ๋์ ์ฐธ์ฌํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์์ฌํ ์ฌ์ง ์์ด ์ด๋ Microsoft ์ฑ ์์๋ค์ด ์ปค๋ฎค๋ํฐ์ ์์ํ๊ฑฐ๋ ์ผ๋ฐฉ์ ์ธ ๊ฒฐ์ ์ด ์ ์ฒด ์ํ๊ณ์ ๋ฏธ์น๋ ์ค์ ์ํฅ์ ์ธก์ ํ์ง ์๊ณ ๋ ๋ง์ง๋ง ์๊ฐ์ ์ด๋ฌํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์กฐ์ฉํ ์ฑํํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.
๊ฐ์์ ์๊ฒฌ์ ๋ค๋ฅด์ง๋ง ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด ๋ณํ์ ๋ํด ์ง์งํ ํ ๋ก ์ ํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ถ๋ช ํ ์์ฒญ๋ - ๊ทธ๋ฆฌ๊ณ ์ ๋ก ์๋ - ์ฑ๊ณต์ ๋๋ค(>150๋ช ์ ์ฐธ๊ฐ์์ 700๊ฐ ์ด์์ ๋ฉ์์ง, ์ฐ์!)
์ด๋ ๊ฒ ํ๋ฅญํ ์ปค๋ฎค๋ํฐ๊ฐ ์คํ๋๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ ๋๋์ต๋๋ค. ์ ๋ ๊ทธ ์ผ๋ถ๊ฐ ๋ ๊ฒ์ ๋งค์ฐ ์๋์ค๋ฝ๊ฒ ์๊ฐํฉ๋๋ค.call_me_hand:
์๋ณธ ๋ฉ์์ง: ์ค๋ ์ผ์ฐ ๋๋ถ๋ถ์ ASP.NET Core 2.0 ํจํค์ง๊ฐ netstandard1.*
๋ฐ net4*
netcoreapp2.0
๋ฅผ ๋์์ผ๋ก ์
๋ฐ์ดํธ๋์์ต๋๋ค(์: https://github.com/ aspnet/Security/pull/1203 ๋ฐ https://github.com/aspnet/Mvc/pull/6234), .NET Desktop ๋ฐ Mono์ ์์ ํ ํธํ๋์ง ์์ต๋๋ค.
์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฒด ASP.NET ์์ฝ์์คํ ์ ๋ง๋ํ ์ํฅ์ ๋ฏธ์น ๊ฐ๋ฅ์ฑ์ด ๋์ง๋ง ๊ณต๊ฐ์ ์ผ๋ก ๋ ผ์๋๊ฑฐ๋ ๋ฐํ๋์ง ์์์ต๋๋ค(ASP.NET ํ์ด ์์ฌ ์ํต์ ๋ฅ์ํ์ง ์๊ณ ๋ ผ์ํ ์์ฌ๊ฐ ์์์ ๋ค์ ํ ๋ฒ ๋ณด์ฌ์ค๋๋ค. ์ปค๋ฎค๋ํฐ์ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ด์ง๋ง ๊ทธ๊ฑด ๋ค๋ฅธ ์ด์ผ๊ธฐ์ ๋๋ค.)
์ด ์ค๋ ๋ ์์ @Eilon ์ ์ด ๊ฒฐ์ ์ ๋ํ ์ด์ ๋ฅผ ๋ถ๋ถ์ ์ผ๋ก ์ธ๊ธํ์ง๋ง ๋ ๊ทน๋จ์ ์ธ ์ต์
์ด ๊ณ ๋ ค๋์๋์ง ์ฌ๋ถ(์: ๊ต์ฐจ ์ปดํ์ผ, netstandard2.1
TFM ๋์
๋ฑ)์ ๋ํด์๋ ์ธ๊ธํ์ง ์์์ต๋๋ค.
์, ASP.NET Core 2์ ๊ฒฝ์ฐ ๋๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET Standard TFM์์ ์์ง ์ฌ์ฉํ ์ ์๋ ์ API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด .NET Core 2๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. Microsoft.Extensions.*, Entity Framework Core ๋ฐ ๊ธฐํ ๋ช ๊ฐ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ ์ฌ๋ฌ ํ๋ซํผ์ ๋์์ผ๋ก ํด์ผ ํ๋ ์ฝ๋๋ ๊ณ์ .NET Standard๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ ์ง๋ฌธ์ ๊ฐ๋จํฉ๋๋ค. ์ฌ๋๋ค์ด .NET Desktop์์ ASP.NET Core 2.0 ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก RTM ์ด์ ์ ์ด๋ ์์ ์์ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์์ /๋๋๋ฆด ์์ ์ ๋๊น, ์๋๋ฉด .NET Desktop์ ASP.NET Core 2.0์ด ํ์คํ ์ฃฝ์์ต๋๊น? (๋๋ฅผ ํฌํจํ์ฌ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ฃผ์ ์ฐจ๋จ๊ธฐ๊ฐ ๋ ๊ฒ์ ๋๋ค).
๊ฐ์ฌ ํด์.
์ด๊ฒ์ ๋งค์ฐ ์ด์ํ๊ณ ๋์ ๋ณ๊ฒฝ์ด ๋ ๊ฒ์ ๋๋ค. ๋๋ netfx ์ ์ฉ asp.net ํต์ฌ ์ฝ๋๋ฅผ ๋ง์ด ์์ฑํ์ผ๋ฉฐ ๊ทธ ํฌ์๊ฐ ๋ญ๋น๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ง ์์ต๋๋ค. ๋ณด๋ค ์ผ๋ฐ์ ์ผ๋ก .NET ๊ณ ๊ฐ์ ๊ฐ๊น์ด ๋ฏธ๋์ ASP.NET Core์ Desktop ์ฝ๋ ๊ฐ์ ์ํธ ์ด์ฉํ ์ ์์ด์ผ ํฉ๋๋ค. Active Directory ๋๋ Office COM ์๋ํ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์ผ๋ถ System.Drawing ๊ธฐ๋ฐ์ ์ฌ์ฉํ์ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์ํํ๋ ์น์ฑ์ ์์ํด ๋ณด์ญ์์ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๊ฑฐ๋ WPF ์ฑ๊ณผ ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ์ด์ ๊ฐ์ ๋ง์ ์๋๋ฆฌ์ค๋ฅผ ์๊ฐํ๋ ๊ฒ์ ์ฌ์ํ ์ผ์ด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๋จ์ํ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์คํดํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ฐ๋ฆฌ๋ ํ์ฌ AspNetCore 1.1.1์ ์์ต๋๋ค. ์ฆ, "ํ์ฌ" ์ง์ ๋ถ๊ธฐ์ ๋๋ค. Net4XX์ ๋ํ ์ข ์์ฑ์ผ๋ก ์ธํด 2.0์ผ๋ก ์ด๋ํ ์ ์๋ค๋ฉด 2.0+3๊ฐ์์ด ๋จ์ด์ง๋ฉด ์ง์๋์ง ์๋๋ค๋ ์๋ฏธ์ธ๊ฐ์?
WPF์ ASP.NET Core์ ์กฐํฉ์ ์ฌ์ฉํ๊ณ ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
๊ฐ๊น์ด ์ฅ๋์ 2.0์ด ์์ ๊ฒ ๊ฐ์ต๋๊น?
๊ทธ๋ฌ๋ ์ ์ฒด ํ๋ ์์ํฌ 4.6.1์ด netstandard 2๋ฅผ ์ง์ํฉ๋๊น? ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์ต๋๊น? (https://docs.microsoft.com/en-us/dotnet/articles/standard/library)
์ด๊ฒ์ ํ์ฌ ๋๊ตฌ๊ฐ ์ ๋ฐ์ดํธ๋์ง ์์ ๊ฒ์ ๋๊น?
๊ทธ๊ฒ์ ์์ ํ ๊ด์ฐฎ์ ๊ฒ์ด๋ฉฐ asp.net ์ฝ์ด๊ฐ net standard 2์์ ์คํ๋๋ ๊ฒ์ ๋ณผ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ๋๋ผ์ด ์ ์ net core app2.0์ผ๋ก ์ด๋ํ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ ๋ ์ด์ asp.net ๋ด๋ถ์ ๋ ๊ฑฐ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค ํต์ฌ ์น์ฌ์ดํธ
์ค, ๊ทธ๊ฒ ๋ฌธ์ ๋ค์.. netcore2์ compat shim์ ์ํด ์กฐ๊ธ ์ํ๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ์ด์ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ง๋ง ์ฌ์ ํ ๋ชจ๋ ํ๋ก์ ํธ๋ฅผ ์ ํ๋ก์ ํธ ์์คํ ์ผ๋ก ์ด์ํ๋ ๊ฒ๊ณผ ๋ง์ ๋ค๋ฅธ ์์ ์ ์๋ฏธํฉ๋๋ค.
ํ์์ ์ด์ ๋ํ ์ถ๋ก ์ ๋ฃ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ค, ๊ทธ๋์ netcoreapp2.0 ํ๋ก์ ํธ๊ฐ ์ ํ ํตํฉ ๋๋ถ์ ๋จ์ํ netfx ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น? ๊ทธ๊ฒ์ ๋ง์ ๊ฒ์ ์ค๋ช ํ ๊ฒ์ ๋๋ค. ๋ด ์ง๋ฌธ์ ๊ทธ๋ ๋ค๋ฉด Windows์์ ์คํ๋์ง๋ง ํต์ฌ CLR์์๋ ์ค์ ๋ก ์๋ํ๋ ์ฝ๋์ ์์ ๋๋ค.
์. ์ด๊ฒ์ ์ฐ๋ฆฌ๋ฅผ ์์ ํ ์ฐจ๋จํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ๊น์ด ์ฅ๋์ ์ด๋ฌํ ํจํค์ง๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋๋ก ํฉ๋๋ค. ํ์ฌ net462+๋ฅผ ํ๊ฒํ ํ ์ ์๊ธฐ ๋๋ฌธ์ MvcCore ํ๋ก์ ํธ๋ฅผ Mvc๋ก ๋ค์ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ ์๋ ์์ต๋๋ค.
์ ๋ ์ด๊ฒ ๊ต์ฅํ ๊ถ๊ธํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด ์ค๊ฐ(๊ทธ๋ฆฌ๊ณ ์๋ช ์ด ์งง์) ๋จ๊ณ๋ ํฐ ์คํด์์ ์ค์ ๋ก ์ด๋ฃจ์ด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ถ๋ถ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์ฑํ๋ ํ์คํ ๋ฐฉํด๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ฒ์ Core๋ก ์ฎ๊ธฐ๋ ๊ฒ์ (๊ฐ๋ฐ์ ์ค์งํ์ง ์๊ณ ) ๋๊ท๋ชจ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ๋๋ฌด ๋ง์ ์์ ์ด๋ฉฐ, ์ฐ๋ฆฌ์ ์ฃผ์ ํ๋ก์ ํธ์์ ์ค๊ฐ ๋จ๊ณ ๋ก ์๋ก์ด ASP.NET ํด๋์ค(HttpRequest, ์ปจํธ๋กค๋ฌ ๋ฑ)๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
@DamianEdwards ๋๋ @davidfowl ์ด ์ฌ๊ธฐ์์ ๊ณํ์ ๋ํด ์ธ๊ธํ ์ ์์ต๋๊น? ๋ํ ์ถ๊ฐ ์ถ๋ก ์ ์ฐพ๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ฒ์์ ๋ฌด์์ด WTF ์๊ฐ์ธ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ๋ณด์ด๋ ๊ฒ๋ณด๋ค ๋ ์ด์ํ๊ธฐ ๋๋ฌธ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ด๋ฐ ์์ผ๋ก ์๊ฐํ์ญ์์ค. WPF๋ netstandard2.0์ด ์๋๋ฉฐ net461+์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ๊ด์ฐฎ์ต๋๋ค. ์ต์ ํ๋์ด ์์ง๋ง netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ASP.NET Core 2.0์ Core 2.0์ ์ต์ ํ๋์ด ์์ง๋ง ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ์๋ง๋ฆฐ๋ ๋๊ฐ์ต๋๋ค.
.NET Core๋ ๋๋ํ ์์ผ๋ฉฐ ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ์์ต๋๋ค. .NET(์ ์ฒด) ํ๋ ์์ํฌ๊ฐ ์ด๋ํ ์ ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋น ๋ฆ ๋๋ค. .NET Core 2.0(.NET Standard์ SUPERSET์) ์์ ASP.NET Core 2.0์ ๋น๋ํ๋ฉด NetFx ๋๋ Netstandard๋ณด๋ค ๋น ๋ฅด๊ฒ ๋น๋ํ ์ ์์ต๋๋ค.
NetCore > Net Standard > NetFx๋ ๊ฐ๋ฐ ์๋์ ํ์ ์ ๊ดํ ๊ฒ์ ๋๋ค.
ํฌ์ธํธ๋ ์๋ก์ด ์์ ์ ํ๋ค๋ฉด netstandard20์ ๋๋ค. ์ด์ net461+ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ทธ ์ค ๋๋ถ๋ถ์ ASP.NET Core 2.0์์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
.NET Framework์์ ์คํ๋๋ ASP.NET Core 1.1์ 2.0 ๋ฆด๋ฆฌ์ค ํ 1๋ ๋์ ์์ ํ ์ง์๋ฉ๋๋ค. ํด๋น ์ํฌ๋ก๋๋ ์ต์ 2018๋ 7์๊น์ง ์์ ํ ์ง์๋ฉ๋๋ค.
.NET Core 2์์ ๋๋ฝ๋ ๋๋จธ์ง ํฐ ๊ฒฉ์ฐจ๋ System.DirectoryServices ๋ฐ System.Drawing์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฒ ์ฌ๋ฆ์ Windows์ .NET Core์์ ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ Windows ํธํ ํฉ์ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ ๋ชจ๋์๊ฒ ํ์ํ ๊ฒ์ net461+์์ ์คํํ๊ธฐ ์ํด ASP.NET Core 2.0์ด ํ์ํ๋ค๊ณ ์๊ฐํ๋ ์ด์ ์ ๋ํ ๋ช ํํ ๋ชฉ๋ก/์ดํด์ ๋๋ค.
.NET Standard 2.0์ ๋ชจ๋๊ฐ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ .NET Core์ .NET fx ์ฌ์ด์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๋ ํธํ์ฑ๊ณผ ์ํธ ์ด์ฉ์ฑ์ ๊ดํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
์ด๋ค ์ด์ ๋ก๋ ์ฌ์ฉ์ ์ง์ ์ธ๋ถ ์ข ์์ฑ, ์์ฉ ๊ตฌ์ฑ ์์, ๋ ๊ฑฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ข ์์ฑ ๋ฑ .NET 4.x๊ฐ ํ์ํ ์ข ์์ฑ์ ๊ฐ๊ฒ ๋ ๋ง์ ๊ณ ๊ฐ์ด ์์ ๊ฒ์ ๋๋ค.
๊ณ ๊ฐ์ด ๊ธฐ์กด .NET 4.x dep๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ๋ฐ์คํฌํฑ CLR์์ ์คํ๋๋ ASP.NET Core 2.0 ์ฑ์ ๋ง๋ค ์ ์๋๋ก ํ๋ ค๋ ์๋์ ๋๊น?
@shanselman ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ์ข์ ์๊ฐ ๋ง์ด ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ํ์ ์กฐ์น:
๋ชจ๋ ์ถ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌ๋ก์ค ์ปดํ์ผ๋ ์ํ๋ก ์ ์ง๋ฉ๋๊น? ์๋ฅผ ๋ค์ด HttpRequest
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ ์ค์ธ ASP.NET Core ๋ฒ์ (์ด์ ์ต์ํ TFM์ ๊น๋ํ๊ฒ ๋งคํ๋จ)์์ 1.x ๋ฐ 2.x ๋น๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ํผํ๊ณ ์ถ์ต๋๋ค ... ๊ทธ๋์ ์ถ์ํ๊ฐ netstandard
์ ๋จ์ ์๊ธฐ ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๊ฒ ์ผ๋ฐ ๊ณํ์ธ๊ฐ์?
System.Web
์ HttpRequest
๊ฐ ์์ ํ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ASP.NET/MVC์ ์์กดํ๋ ๊ฒ์ ๋ํด ์ฌ๋ฌ ๋ณํ์ ์ ์ง ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ์์ ํ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค(์: MiniProfiler
vs. . MiniProfiler.AspNetCore
). lib ์์ฑ์์ ์ข
์์ฑ์ด netstandard
์์ ๋ฒ์ด๋๋ ๊ฒฝ์ฐ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ก๋ํ๋ ๋ณํ์ ์๋ฅผ ์ผ๋์ ๋๊ณ ์๋์ง ํ์ธํ๊ณ ๊ทธ ๋ํต์ ๋ชจ๋ ํผํ์ผ๋ฉด ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ด ๋ณด์ด๋ ๊ฒ๋งํผ ํฐ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ ๋งค์ฐ ๊ธฐ์ฉ๋๋ค. ์์ธํ ์ค๋ช ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋ ๊ฐ์ง ์ง๋ฌธ/๊ฑฑ์ ์ด ์์ต๋๋ค.
ASP.NET Core์์ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ๋ง์ฐฐ์ด ์ต์ํ๋์ด์ผ ํ๋ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๋๋จํด! ๋ฐ๋์ ๊ฒฝ์ฐ๋ ์ด๋ป์ต๋๊น? Mvc ๋ฐ ๊ธฐํ ์ง์ ASP.NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ถํ์ด๋ ๊ตฌ์ฑ ์์๋ฅผ ํฌํจํ๋ .NET Framework ๋๋ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ๊นจ์ง ๊ฒ์ ๋๋ค, ๋ง์ฃ ? ํด๋น ์๋๋ฆฌ์ค๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ์ด ์์ต๋๊น? netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ์ด์ ASP.NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ํฌํจ๋ ASP.NET Core ์๋๋ฆฌ์ค์ ํฐ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๋น๊ธฐ์ ์ ๊ด์ ์์ ์ด๊ฒ์ ๋ง์ ํผ๋์ ์ผ๊ธฐํ ๊ฒ ๊ฐ์ต๋๋ค. GitHub์์ ํ๋ํ๋ ์ฌ๋๋ค ์ธ์ Twitter์์ ํ๋ก์ฐํ๋ ๋ฑ ๋ค์ํ ํ๋ซํผ์ ๋๋ฌ์ธ๊ณ ์ด๋ฏธ ๋ง์ ํผ๋์ด ์์ต๋๋ค. ๋ถ๋ถ์ ์ผ๋ก๋ง ํ๋ก์ฐํ๊ฑฐ๋ ์ด์ ๋ง ์์ํ๋ ๊ฐ๋ฐ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ASP.NET Core๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ ๋(์๋ง๋ ์ค๋๋ ์์ต์๋ฅผ ๋ฐ๋ฆ) .NET Framework ํ๋ซํผ์์ ์๋ํ์ง ์์ ๋ ์๋๊ฐ ๋งค์ฐ ๋๋ ค์ง๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๋ฌด์์ ํ ์ ์๋์ง ํ์คํ์ง ์์ต๋๋ค.
typeforwarding ๋ฐ netstandard20 ๋๋ฌธ์ ASP.NET Core 2.0์์ ๋ง์ net461+ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์๋ ์์ต๋๋ค.
๋ถํํ๋ ์ด๊ฒ์ ์ ์ฒด ํ๋ ์์ํฌ์ฉ์ผ๋ก ์ปดํ์ผ ๋ฐ ์ค๊ณ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ .NET Core์์ ์๋ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค(๋ฐํ์์ ๋ชจ๋ ๊ฒ์ด ํญ๋ฐํ ์ํ์ด ๋์ต๋๋ค!).
.NET Core 2.0์ ๋ค์ ๋์ ๋ ๋ง์ "์ด์ " API๋ (๊ธฐ๋ฅ์ ์ผ๋ก) ์๋ํ์ง ์๋ ์คํ ์ ๋๋ค. ์ฌ์ ํ ๋๋ฝ๋ API๊ฐ ๋ง๊ณ .NET Core์์ ์๋์ ์ผ๋ก ์ ์ธ๋ ์ ์ฒด ์์ญ(IdentityModel, WCF ์๋ฒ, ์๊ฒฉ, ์์ ํ AppDomain ์ง์ ๋ฑ)์ด ์๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์์ต๋๋ค.
ASP.NET Core 1.0 w/ .NET Desktop ์ฑ์ ASP.NET Core 2.0 w/ .NET Core๋ก "์์ ํ๊ฒ" ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ค๊ณ ์ฌ๋๋ค์ ์ค๋ํ๋ ค๋ ์๋๋ - IMHO - ๊ฑฐ์ง๋ง์ ๋๋ค.
.NET Core๋ ๋๋ํ ์์ผ๋ฉฐ ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ์์ต๋๋ค. .NET(์ ์ฒด) ํ๋ ์์ํฌ๊ฐ ์ด๋ํ ์ ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋น ๋ฆ ๋๋ค. .NET Core 2.0(.NET Standard์ SUPERSET์) ์์ ASP.NET Core 2.0์ ๋น๋ํ๋ฉด NetFx ๋๋ Netstandard๋ณด๋ค ๋น ๋ฅด๊ฒ ๋น๋ํ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฒ์ด (๋๋ถ๋ถ์) ์ฌ๋๋ค์ด ์ฐพ๊ณ ์๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ง ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ ๋น ๋ฅด๊ฒ ์์ง์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์๋ก ํ์ง ์๊ณ ๋ชจ๋ ๊ฒ์ ๊นจ๋จ๋ฆฌ๋ ์ํ์ ๊ฐ์ํ์ง ์๊ณ ์ด์ ํญ๋ชฉ์ ์ฐ์ํ๊ฒ ํตํฉํ ์ ์๋ ์์ ์ ์ธ ํญ๋ชฉ ์ด ํ์ํฉ๋๋ค.
@daveaglick
net461
๋๋ netstandard2.0
netcoreapp2.0
๋ฅผ ์ฐธ์กฐํ๋ ์์์ ๊ธฐ๋ฅ์ด ์๋ค๋ ์ ์์ ์ ํํฉ๋๋ค. ๋ค๋ฆฌ๋ ์ผ๋ฐฉํตํ์
๋๋ค. ํจํค์ง ๋์ฒด๋ฅผ ์ํด TFM์ ์ง์ ํ์ฌ ํญ์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ง๋ง ์ด๋ ์ง์๋๋ ์๋๋ฆฌ์ค๊ฐ ์๋ ๋ถ๋ช
ํ ํ์ถ๊ตฌ์
๋๋ค(๋ง์ ์ฌ๋๋ค์ ์ฐจ๋จ ํด์ ํ๊ธฐ์ ์ถฉ๋ถํ ์ง๋ผ๋). ๋ ํฐ ์คํ( netstandard
์ ๋์์ผ๋ก ํจ์ ์๋ฏธํจ) ์ธ๋ถ์์ ASP.NET Core์ ํ์ ์์คํ
์ ์ง์ํ๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ์ ์ง ์์ ์์
์
๋๋ค.@shanselman BTW, ํฌ๋ก์ค ์ปดํ์ผ์ด ์ต์
์ด ์๋ ์ด์ ๋ฅผ ๋งํ์ง ์์์ต๋๋ค. netcoreapp2.0
์ ์ด์ ์ ์ป์ ์ ์๋ ASP.NET Core ๊ตฌ์ฑ ์์ -only API๋ net46
/ netstandard1.x
/ netstandard2.0
๋ฐ netcoreapp2.0
TFM ๋ฐ ์๋กญ๊ณ ๋ฉ์ง/๋น ๋ฅธ ๊ฒ์ .NET Core ์ ์ฉ์ผ๋ก ๋ง๋์ญ์์ค.
@NickCraver ๋ ํ์ฌ netstandard
๋ฅผ ๋์์ผ๋ก *.Abstractions ํจํค์ง๋ฅผ ๋ ๋๋ ๊ฒ์ ๊ณํ์ ํฌํจํ์ง ์์ต๋๋ค. ๋ถ๋ฆฌ๊ฐ ์ ๋ฐ์ ์ผ๋ก ๊นจ๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ด ์ ์ํ ๊ฒ๊ณผ ๊ฐ์ ๋ง์ด๊ทธ๋ ์ด์
์ ์๋ํ๋ ๋๊ตฐ๊ฐ์ ๋ชฉ์ ์ ์ํด ํจํค์ง ๋์ ๋์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์จ๋ ๊ฑฐ๊ธฐ์ ๋์ฐฉํ ๊ฒ์
๋๋ค(๊ทธ๋ฌ๋ ๋ด๊ฐ ๋น์ ์ ์คํดํ๊ณ ์์ ์ ์์).
๋ํ ๋จ์ผ ํจํค์ง๊ฐ ์ด์ TFM์ ํผ๋ฒ์ผ๋ก ์ฌ์ฉํ์ฌ ASP.NET Core 1.x ๋ฐ 2.0 ์ด์์ ๋์์ ๋์์ผ๋ก ์ง์ ํ ์ ์๋ค๋ ์ ์์ ๊นจ๋ํ TFM ๋ถํ ์ด ์ ํํ๊ณ ์ด ๊ณํ์ ์ฅ์ ์ด๋ผ๋ ์ ์ ์ง์ ํ์ต๋๋ค.
๋๋ "ํผํฉ ์์ฉ ํ๋ก๊ทธ๋จ"์ด๋ผ๋ ์์ด๋์ด๋ฅผ ๊ฐ์ง๊ณ ๋๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด Web API๋ฅผ ๋ ธ์ถํ๋ WPF ์์ฉ ํ๋ก๊ทธ๋จ ๋๋ REST API์ WCF ๋์ ์ ๋ชจ๋ ์ ๊ณตํ๋ ์๋ฒ(์ด์ ํด๋ผ์ด์ธํธ์์ ํธํ์ฑ์ ์ํ ๊ฒ์ผ ์ ์์). ์ด๋ฌํ ์๋๋ฆฌ์ค๋ ์ด ๋ณ๊ฒฝ์ผ๋ก ๋ถ๊ฐ๋ฅํ๊ฒ ๋์์ผ๋ฉฐ ASP.NET Core๊ฐ "๋จ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ"๊ฐ ์๋ ์ ์์ฉ ํ๋ก๊ทธ๋จ์๋ง ์ ํฉํ๋๋ก ๋ง๋ญ๋๋ค.
@shanselman ์ด ๋งํ๋ฏ์ด @PinpointTownes ๋ ๊ณ ๊ฐ์ด .NET Framework๋ฅผ ์ง์ ๋์์ผ๋ก ์ง์ ํด์ผ ํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ๊ณ ๊ฐ์ด ๊ฐ์ง๊ณ ์๋ ํน์ ์๊ตฌ ์ฌํญ ๋ฐ ์ฐจ๋จ ์์์ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค. ์ง๊ธ๊น์ง ์ด ๋ณดํธ์ ๊ณ ๊ฐ๊ณผ ํจ๊ป ์์
ํ ๊ฒฐ๊ณผ System.DirectoryServices
๋ฐ System.Drawing
๋ฐ 1๋ฒ ๋ฐ 2๋ฒ ์ฐจ๋จ์ ๊ฐ ํ์๋์์ผ๋ฉฐ ์ด๋ฅผ ํด๊ฒฐํ ๊ณํ์ด ์์ต๋๋ค. ๊ทธ ์ธ์๋ ํผ๋๋ฐฑ์ ์ดํด๋ณด๊ณ ํ๊ฐํ ๊ฒ์
๋๋ค.
ํฌ๋ก์ค ์ปดํ์ผ์ ๊ณ ๊ฐ ๋ฐ ์ ํ ์๊ตฌ ์ฌํญ๊ณผ ๊ท ํ์ ์ด๋ฃจ์ด์ผ ํ๋ ์ค๋ฒํค๋์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ด ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ ํ๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ASP.NET Core๊ฐ ์์ผ๋ก ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ ๊ณ ๊ฐ๊ณผ ์ฐ๋ฆฌ ๋ชจ๋์ ํ๊ฒฝ์ด ์ด๋ค ๋ชจ์ต์ผ์ง ๋ณด๋ค ๊ตฌ์ฒด์ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
@DamianEdwards ์ถ๊ฐ ์ค๋ช ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. netstandard -> ASP.NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์๊ฒ ํฐ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ฌ๋ฌ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ Kestrel(netcoreapp๋ก ์ด๋ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค)์ ํฌํจํฉ๋๋ค. ๋ํ Razor๋ฅผ ์ฌ๋ฌ ์์น์ ํฌํจํ์ผ๋ฉฐ ๋ ๋ง์ ๋ชจ๋์ ๋ฒ์ ์ ๊ฐ๋ฐ ์ค์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ํ ASP.NET Core์ "์ผ๋ถ"์ด์ง๋ง ์ธ๋ถ์ ๋ง์ ์ ํธ๋ฆฌํฐ๊ฐ ์๋ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค.
๋ค์ ๋งํด, netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ASP.NET Core ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ฐ๋๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ์ด๊ฒ์ ๊ณ ๋ ค ์ฌํญ์์ ์ ์ฒด ์ฌ์ฉ ์ฌ๋ก ํด๋์ค๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
@daveaglick Razor ์์ฒด(์์ง)๋ ๊ณ์ํด์ netstandard
๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. ๋ค์ ๋งํ์ง๋ง, ์๋ก ๋ค๋ฅธ ํ๋ซํผ์์ ํฐ ๋ณต์กํ ๊ทธ๋ํ(์: ASP.NET Core 2.0)์ ํน์ ํ์ ์์คํ
์ ์ง์ํ๋ ๋ฐ ๋น์ฉ์ด ๋ญ๋๋ค. ์๋ฒ ๋ฉ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ต์
(์์ค ์๋ฒ ๋ฉ, ๋ณต์ฌ ๋ฑ)์ด ์์ง๋ง ๋ฌผ๋ก ์ฌ๊ธฐ์๋ ์ฅ๋จ์ ์ด ์์ต๋๋ค.
๋ค์ํ ์ฌ์ฉ ์ฌ๋ก ํด๋์ค์ ๋ํด ํ์คํ ๋ฃ์ต๋๋ค. ์ค์ ๋ก ์ฐ๋ฆฌ์ ๊ฐ์ ์คํ์ ์ค๊ณํ๊ณ ๋ฐฐ์กํ ๋ ๊ณ ๋ คํด์ผ ํ ๋ค์ํ ๊ณ ๊ฐ ๊ทธ๋ฃน์ด ์์ต๋๋ค.
์ฌ๊ธฐ์ @daveaglick ์ ์ฐ๋ ค ์ฌํญ์ ๊ณต์ ํฉ๋๋ค. ์ต์ API๋ฅผ ์ฌ์ฉํ๋ ค๋ ASP.NET Core๋ ์์ ํ ์ดํดํ ์ ์์ง๋ง ๋ค๋ฅธ ๋ชจ๋ ๋ค์ด์คํธ๋ฆผ ์์ ๋์ผํ ๊ฒ์ ์๊ตฌํ๋ ๊ฒฝ์ฐ์๋ ์ข ๋ ๋ณต์กํด์ง๋๋ค. ์์ ๋๋ ์
๊ทธ๋ ์ด๋ 1.0 ์ดํ์๋ ์ ํ์ ์ฌ์ง๊ฐ ์์ต๋๋ค netcoreapp2.0
๋ก ์ด์ฉํ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ๊ธฐ์ฐจ๋ฅผ ํ๊ฒ ๋๋ฉฐ ์ด๊ฒ์ด ์ ์ผํ ์ ํ์
๋๋ค. ์ฌ์ฉ์๊ฐ netcoreapp2.0
์๋นํ์ง ์๊ณ ๋ชจ๋ ๋นํธ(๊ธฐ๋ณธ ์ถ์ํ ํฌํจ)๋ฅผ ์๋นํ ์ ์๋ค๋ฉด ์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฒด ๋ผ์ธ์ ๋ํด ์ฌ์ค์ netstandard2.0
๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค...๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ์ฌ๋ ๊ทธ๊ฒ์ ๊ทธ๋ค์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.
ํต์ฌ ์ ํ๋ฆฌ์ผ์ด์
์คํ์ ์ด๋ํ์ง๋ง ํนํ ์ด๋ํ๋ ์ถ์ํ์ ๋ฐ๋์ ๋์ํ์ง๋ ์์ต๋๋ค. ์ถ์ํ์ ์ฃผ์ ์์ ์ค ํ๋๋ ์ ์ด๋ ์๋น์๋ก์์ ๋ด ๊ด์ ์์ ์ด์ ๊ฐ์ ๊ธด๋ฐํ ๊ฒฐํฉ์ ํผํ๋ ๊ฒ์
๋๋ค. netstandard2.0
์๋ ํ์ํ API๊ฐ ์์ง๋ง netcoreapp2.0
์๋ ํ์ํ ๋ช ๊ฐ์ง ์๊ฐ ๊ถ๊ธํฉ๋๋ค. ๋ช ๊ฐ์ง ์๊ฐ ์์ต๋๊น? ์ด๊ฒ์ ์ฃผ๋ก ๋ฉ์๋ ๋งค๊ฐ๋ณ์์ ์๋ก์ด ์ ํ์ ๊ดํ ๊ฒ์
๋๊น? ๋๋ ์ถฉ๋ถํ ์ถ๋ก ์ด ์๋ค๋ ๊ฒ์ ์์ฌํ์ง ์์ผ๋ฉฐ ๋งค์ฐ ๊ถ๊ธํฉ๋๋ค. ์๋ฅผ ๋ณด๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๊ฑฐ์ ๋งค์ผ ํต์ฐฐ๋ ฅ์ ๊ฐ์ง ๋ชปํ๋ ์ ์ง ๋ณด์ ๋น์ฉ์ ๋ณด์ฌ์ฃผ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
Kestrel์ ๊ฒฝ์ฐ๋ ๋ ๋ณต์กํ์ง๋ง ์ต์ API ์ธํธ์ ํฌํจํด์ผ ํ๋ค๋ ์ฃผ์ฅ์ด ํ์คํ ๋ณด์ ๋๋ค. Kestrel์ด ์ถ์งํ๋ ์์ ์ ๊ฐ์ํ ๋ Kestrel์ ๋ํด ๊ณ์ํด์ ์๋ก์ด API๊ฐ ์์ฑ๋ ๊ฒ์ด๋ผ๊ณ ์์ํฉ๋๋ค.
@shanselman ์ด ๋งํ๋ฏ์ด @PinpointTownes ๋ ๊ณ ๊ฐ์ด .NET Framework๋ฅผ ์ง์ ๋์์ผ๋ก ์ง์ ํด์ผ ํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ๊ณ ๊ฐ์ด ๊ฐ์ง๊ณ ์๋ ํน์ ์๊ตฌ ์ฌํญ ๋ฐ ์ฐจ๋จ ์์์ ๋งค์ฐ ๊ด์ฌ์ด ์์ต๋๋ค.
์ปจ์คํดํธ๋ก์ ์ ๋ ๋ง์ ํด๋ผ์ด์ธํธ๊ฐ ์์ ์ ์ฑ์ ASP.NET Core๋ก ์ด๋ํ๋๋ก ๋์๊ณ IdentityModel / WCF ๋๋ AppDomain ์ ์์กดํ๋ ํ์ฌ(๋น๊ณต๊ฐ ์์ค) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก .NET Desktop์ ๋์์ผ๋ก ์ง์ ํด์ผ ํ์ต๋๋ค. ์ง์ํ๋ค.
ASP.NET Core 2.0์ ์ด๋ฌํ ํญ๋ชฉ์ด ์์ผ๋ฉด ์ฃผ์ ์ฐจ๋จ๊ธฐ๊ฐ ๋ฉ๋๋ค.
API๊ฐ ์์ด๋ ๊ธฐ๋ฅ์ ์ผ๋ก ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ .NET Core์์ ์๋ํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ต๋๋ค. ๋ค์์ ๋ด๊ฐ ์ฌ๋ฌ ๋ฒ ๋ณธ ๊ตฌ์ฒด์ ์ธ ์ฌ๋ก์ ๋๋ค.
.NET Core์์ RSA.Create()
๋ Windows์์ RSACng
์ธ์คํด์ค๋ฅผ ๋ฐํํ์ง๋ง .NET Desktop์์๋ RSACryptoServiceProvider
์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฌ๋ BLC ์์ฒด๋ฅผ ํฌํจํ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ RSA
๋ฅผ RSACryptoServiceProvider
๋ก ์บ์คํ
ํ๋ ค๊ณ ์๋ํฉ๋๋ค. RSACng
๋ RSACryptoServiceProvider
๋ก ์บ์คํ
ํ ์ ์์ผ๋ฏ๋ก .NET Core์์๋ ํญ์ ์คํจํฉ๋๋ค.
@NickCraver ํนํ ์ด๋ค ์ถ์ํ์ ๋๊น? ์ถ์ํ๋ง ์ด๋ํ๋ ๋ฌธ์ ๋ ๋ค์์ ํด๋น ์ถ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ชจ๋ ๊ฒ์ ์ํ๊ฒ ๋๋ค๋ ๊ฒ์ ๋๋ค(๋ง ๊ทธ๋๋ก Microsoft.AspNetCore.Http.Abstractions๋ง ํ์ํ๊ณ ๋ค๋ฅธ ๊ฒ์ ํ์ํ์ง ์๋ค๊ณ ๋งํ๋ ๊ฒฝ์ฐ ์ ์ธ)
@davidfowl ์, ์ถ์ํ ๋ง ๊ฐ๋ฅ ํฉ๋๋ค. ์: HTTP, ํธ์คํ
, HTML ๋ฐ ๋ก๊น
. Microsoft.Extensions.*
๋ ๋๋ถ๋ถ์ ์ด์ ๋๊ธ์ ํฌํจ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค๋ ์ ๊ฐ ์ ํ๊ณ ์๋ ๋ถ๋ค์
๋๋ค.
๊ตฌ์ฒด์ ์ธ ์: MiniProfiler ๋ฏธ๋ค์จ์ด๋ ์ถ์ํ( ๋งํฌ ) ์ธ์๋ ์๋ตํ์ง ์์ต๋๋ค.
๋งจ ์์ MVC ๋ฑ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์ด์จ๋ netcoreapp2.0
์ ์๊ณ ๊ทธ๊ฒ์ด ๋ฐ๋ก ๊ทธ๊ฒ์
๋๋ค(๊ทธ๋ฆฌ๊ณ IMO๋ ๊ด์ฐฎ์ต๋๋ค). ๊ทธ๋ฌ๋ ํ์ฌ ์ ๋ API๋ฅผ ๊ณต์ ํ๋ ๊ณณ์์ ๋
ผ๋ฆฌ์ ์ผ๋ก ์์ ๋กญ๊ฒ ๋ถํ ํ ์ ์์ผ๋ฉฐ ์ถ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ๋ถํ ํ ์ ์์ต๋๋ค. ์ ๋ ํ์ฌ ๋ถํ ์ ํฌ์
๋๋ค. ๋ถํ์ํ๊ฒ ์ ๊ทธ์ง ๋ง์ญ์์ค.
ํค. ์ปจ์คํดํธ๋ก์ "๋ฌด์์? ASP.NET Core๋ ๋ฐ์คํฌํฑ .NET Framework์์ ์คํ๋ฉ๋๋ค!?"๋ผ๋ ๋ง์ ํ์คํ ๋ค์์ต๋๋ค. ๋ช ๋ฒ์ด๊ณ ์ง๋ฌธํ๋ค. "ASP.NET Core"์ ์ด๋ฆ์ ๋ง ๊ทธ๋๋ก ".NET Core"๊ฐ ํฌํจ๋์ด ์๋ค๋ ์ฌ์ค์ ์ ๋ง ์ํ๊น์ด ์ผ์ ๋๋ค.
์ด์จ๋ ... ๋ด๊ฐ .NET Core๊ฐ ์์๋ ๋("์๋กญ๊ฒ" ์์) ๊ตฌ์/๋ ๊ฑฐ์/๊นจ์ง API๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ์ข์ํ๋ ๊ฒ์ฒ๋ผ ๋ ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํ ํ๋ ์์ํฌ๋ฅผ ์ป๊ธฐ ์ํด ์ด ๋ณ๊ฒฝ ์ฌํญ๋ ์ข์ํฉ๋๋ค. ๋ ๋ง์ ๊ธฐ๋ฅ๊ณผ ๋ ๋์ ํ์ ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ์ง๋ง ์ด๋ค ์ด์ ๋ก๋ ๋ด๋ 6์ ์ด์ ์ ๋ชจ๋ ์ฝ๋๋ฅผ .NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ๋ชจ๋ ๊ฐ๋ฐ์์๊ฒ ๊ณต๊ฐํฉ๋๋ค.
์ฌ๊ธฐ์๋ ํ์ฌ ๋ณ๋ ฌ๋ก ๊ฐ๋ฐ ์ค์ธ ์ฌ๋ฌ ASP.NET Core ํ๋ก์ ํธ์์ ์ฌ์ฉํ๋ .NET Framework๋ฅผ ๋์์ผ๋ก ํ๋ ์์ฒญ๋๊ฒ ํฐ ๋ ๊ฑฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ ์์ํฌ๊ฐ ์๋ ํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ์ด๋ฌํ ์์คํ ์ด ํ๋ก๋์ ์ ๋ค์ด๊ฐ ๋์ฏค์ด๋ฉด ASP.NET Core 1.x๊ฐ ์ง์๋์ง ์๊ธฐ ์ ์ a) ๋ชจ๋ ๊ฒ์ .NET Core๋ก ์ด์ํ๊ฑฐ๋ b) ๋ชจ๋ ๊ฒ์ ์ ์ฒด ํ๋ ์์ํฌ ASP.NET์ผ๋ก ์ด๋ํ ์๊ฐ์ด ๊ฑฐ์ ๋๋ ์ ํ ์์ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์์ ์ง์ 1๋ ์ด๋ฉด ์ ๋ง ์ถฉ๋ถํฉ๋๊น? ๋น์ทํ ์ฌ๋ก๊ฐ ๋ ์์ ๊ฑฐ๋ผ ์๊ฐํ๋๋ฐ...
@khellang ์ด์ ์ ์ธ๊ธํ๋ฏ์ด .NET Framework๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ ์์ํฌ๋ฅผ ๊ณ์ ์ฐธ์กฐํ ์ ์์ผ๋ฉฐ ํธ์ถํ๋ API๊ฐ netstandard2.0
ํ์์ ์ผ๋ถ๋ผ๊ณ ๊ฐ์ ํ๋ฉด ์ ๋๋ก ์๋ํฉ๋๋ค. ๊ทธ๋ค์ด ๊ทธ ๊ณต๊ฐ ๋ฐ์ ๊ฒ์ ์์กดํ๋์ง ์์ญ๋๊น? ์ด๊ฒ์ด ๋ฐ๋ก ์ด๋ฌํ API(์ System.DirectoryServices
๋ฐ System.Drawing
)๋ฅผ ์ด์ํ๋ ์ฐ์ ์์๋ฅผ ํ๊ฐํ ์ ์๋๋ก ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ถ์ต๋๋ค.
๋ฐ๋ผ์ ํ์ฌ Windows ์๋น์ค ๋๋ WPF ๋ฐ์คํฌํฑ ์ฑ์์ ์น API(์: ํต์ ๊ณ์ธต) ๋๋ ๊ณง ์ถ์๋ asp.net ์ฝ์ด ์์ผ์ ํธ์คํ ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ฒ ๋ ๊น์? (์ง์๋๋ ๋ฒ์ ํฌํจ).
netstandard1.x
์๋ ํญ๋ชฉ์ด ํ์ฌ netcoreapp2.0
์ธ ํญ๋ชฉ์ ๋ชฉ๋ก์ด ๊ณง ๋์ฌ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ฒ์ํ๋๋ฐ MVC ๊ด๋ จ ํญ๋ชฉ์ด netcoreapp2.0
์ธ ๊ฒ ๊ฐ์ง๋ง HttpAbstractions, Logging, Configuration ๋ฑ์ ์ฌ์ ํ netstandard
์
๋๋ค. ์๋๋ฉด ๋ ๋ง์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๊น?
@NickCraver Extensions๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ์ฌ์ ํ System.Web์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. System.Web.HttpContext
๋ก Microsoft.AspNetCore.Http.HttpContext
๋ฅผ ์ฌ์ ๊ณํ์ด ์์ต๋๊น? ์ผ๋ง๋ ๋ง์ API๊ฐ ํ์ํ์ง ์๊ณ ์์ต๋๊น?
๋งจ ์์ MVC ๋ฑ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด์จ๋ netcoreapp2.0์ ์๊ณ ๊ทธ๊ฒ์ด ๋ฐ๋ก ๊ทธ๊ฒ์ ๋๋ค(๊ทธ๋ฆฌ๊ณ IMO๋ ๊ด์ฐฎ์ต๋๋ค). ๊ทธ๋ฌ๋ ํ์ฌ ์ ๋ API๋ฅผ ๊ณต์ ํ๋ ๊ณณ์์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์์ ๋กญ๊ฒ ๋ถํ ํ ์ ์์ผ๋ฉฐ ์ถ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ฝ๊ฒ ๋ถํ ํ ์ ์์ต๋๋ค. ์ ๋ ํ์ฌ ๋ถํ ์ ํฌ์ ๋๋ค. ๋ถํ์ํ๊ฒ ์ ๊ทธ์ง ๋ง์ญ์์ค.
MVC์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ๋ณธ ์ถ์ํ ์์ ๋ ๋ง์ ๊ธฐ๋ฅ์ ๋ ธ์ถํ๋ ๋ค๋ฅธ ๋์ฐ๋ฏธ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ ํํ "์ถ์ํ" ํจํด์ ํฐ ๊ฐ์น๋ ์ถ์ํ ์์ฒด๊ฐ ์๋๋ผ ๋ค๋ฅธ ๊ฒ๋ค์ด ๊ทธ ์์ ๊ตฌ์ถ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ด ์ง๊ฐ์ ๋ฐ๋ฅด๋ฉด ASP.NET ์ถ์ํ๋ฅผ netstandard๋ก ๋ง๋ค๋ฉด ๊ฒฐ๊ตญ ๋ชจ๋ ๋ฏธ๋ค์จ์ด๋ netstandard๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค.
@dasMulli Windows ์๋น์ค๋ API๋ฅผ ์ด์ํ๋ฉด ์๋ํฉ๋๋ค(.NET Core์์ Windows ์๋น์ค๋ฅผ ์ง์ํ๋ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์).
WPF ๋ฐ์คํฌํฑ ์ฑ? (์ง์๋๋ ๋ฒ์ ํฌํจ).
๋ค. ์ด๊ฒ์ ๋ ์ด์ ๊ธฐ๋ณธ๊ฐ์ด ์๋๋๋ค. .NET Core 2.0์์๋ ๋ ์ด์ ์ฆ์ ์ง์ํ์ง ์์ต๋๋ค.
@davidfowl ๋๋ ๋น์ ์ด ๊ฑฐ๊ธฐ์์ ์ฌ๋ฐ๋ฅธ ๋ถ๋ถ์ ๋ณด์๋์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค.
ํ์ง๋ง ์ฌ์ ํ System.Web์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
...์ด ๋ถํ ๋ก ์ธํด ๋์ผํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ต๋๋ค. ์ต์ํ์ ์ค๋ฒํค๋๋ฅผ ๋ฌ์ฑํ๊ณ ์๋น์์ ๋ํ ์ข
์์ฑ ํธ๋ญ ๋ก๋๊ฐ ์๋ ASP.NET MVC < 6(System.Web) ๋ฐ $# MiniProfiler
MiniProfiler.AspNetCore
/ MiniProfiler.AspNetCore.Mvc
(๋ง์ NuGet ).
MiniProfiler.Shared
์ ์์๋ System.Web
ํ์ ์ ๋ํด ๋ง์ํ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ ์ง๋ ๋ฐค ํ๋ ์์ํฌ ์ด์
๋ธ๋ฆฌ์์ NuGet ๋ฌธ์ ๊ฐ ์์ ๋ ๋๊น์ง ์ด๋ฅผ ์ ๋ฆฌํ๋ ค๊ณ ๊ธฐ๋ค๋ฆฌ๊ณ ์์์ต๋๋ค. ์ ๋ฆฌ๋ฅผ ์ํด ๊ทธ๋ฅ ์ ๊ฑฐํ์ต๋๋ค .
@DamianEdwards netstandard2.0
ํ์์ ๋ํด 100% ๋์ํ์ง๋ ์์ง๋ง (๊ทธ๋ค์ ํ๊ฐ๋ฅผ ๋ฐ์) ์ด์์ฑ ๋ถ์๊ธฐ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๊ณต์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ์ด์์ฑ ๋ถ์๊ธฐ๋ ์ฌ์ ํ ์ต์ ์ํ์
๋๊น?
ASP.Net Core๋ ๋น ๋ฅด๊ฒ ์๋ก์ด Python 3*๊ฐ ๋๊ณ ์์ต๋๋ค. ๋ ๋๋น ์ง๋ฟ์ ๋๋ค. ์ด๊ฒ์ ๋์๊ฒ ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก์ ์์ง์์ฒ๋ผ ๋ณด์ ๋๋ค. ์ด๊ฒ์ ์๋ง์ ์๋๋ฆฌ์ค๋ก ์ธํด ๊ฐ๋ฐ์๊ฐ ์ด๋ํ๋ ๋์ ์์ผ๋ก ๋ช ๋ ๋์ "์ด์ ํ๋ซํผ"์์ ์ฝ๋๋ฅผ ์ ์ง ๊ด๋ฆฌ(๋ฐ ์ ์์ฑ)ํด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. "๋น ๋ฅธ ๊ฐ๋ฐ"์ด ์๋ฏธํ๋ ๋ชจ๋ ๊ฒ์ด "๋น ๋ฅธ"/๋ถ์ ํฉํ ์์น์ ๋๋ฌํ๋ ๊ฒ์ด๋ผ๋ฉด ์์ฃผ ์ข์ ์ฃผ์ฅ์ฒ๋ผ ๋ณด์ด์ง ์์ต๋๋ค.
*๋๋ Python 3์ ์ข์ํ์ง๋ง ๊ฑฐ์ 10๋ ์ด ์ง๋ฌ๊ณ Python ์ปค๋ฎค๋ํฐ๋ ์ฌ์ ํ ๋ถ์ด๋์ด ์์ต๋๋ค.
๋ช
ํํ ํ์๋ฉด, ๊ธฐ์ ์ ์ธ ๋ฐฉํด ์์(๋ฉ์ง ์ฑ๋ฅ)๊ฐ ์์ต๋๊น? ์๋๋ฉด ํฅํ ํธํ์ฑ ์ ์ง ๋น์ฉ์ ์ ์ฝํ๊ธฐ ์ํ ๊ฒ์
๋๊น?
๋๋ ์ฐ๋ฆฌ ๋๋ถ๋ถ์ด ์ด ์์ง์์ด ์ฌ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์์์ง๋ง ์๋ฌด๋ ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ ์์ํ์ง ๋ชปํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ํ ์๊ฐ์ด ์ฌ์ ํ ์งํ ์ค์์ ๊ฐ์ํ ๋ - ์ต์ํ ํ๋์ ๋ฆด๋ฆฌ์ค(์: 2.1์ด ์๋ 2.0)์ ๋ํด net* ์ง์์ ์ ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@shanselman ๋๋ ๋น์ ์ ์์ ์ ๋ณด๊ณ ๊ฐ์ธ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ _๋ง์_ ์ฌ๋๋ค์ ๊ทธ๋ ๊ฒ ๋ณด์ง ์์ ๊ฒ์ ๋๋ค.
์ฃผ์ ๋ฌธ์ ๋ ์ฝ์ด์์ net46 ์ด์ ๋ธ๋ฆฌ๋ฅผ ํธ์ถํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ compat shim์ด ์ด๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๋ฌธ์ ๋ ๊ธฐ์กด net46 ์ฝ๋์ 46์์ ์คํ๋๋ asp.net core 1.* ์ฝ๋์ ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์ธ๊ธํ๋ฏ์ด netstandard์ ์์ ์ asp.net์ ํฌํจํ ์ฝ๋๊ฐ ๋ชจ๋ ๊ณณ์์ ์คํ๋๋๋ก ํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๊ฒ์ ๋จ๊ณ์ฒ๋ผ ๋๊ปด์ง ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์์ ๋ฉ๋ฆฌ ๋จ์ด์ ธ ์๊ณ ์๋ง๋ ์ด๋ค ์ฌ๋๋ค์๊ฒ๋ ๊ทธ ๋น์ ์ ์คํจ์ผ ์๋ ์์ต๋๋ค.
๋ฌธ์ ๋ ์ฌ๋๋ค์ด ๋คํธ ์ฝ์ด๋ก ์ด๋ํ๋ ๊ฒ์ _์ํ์ง ์๋_ ๊ฒ์ ๋๋ค. ๋ฌธ์ ๋ ์กฐ์ง, ๊ด๋ฆฌ์, CTO ๋ฑ์ด ๊ทธ๋ ๊ฒ ํ๋ ๋ฐ ๋ฐ๋ฅธ ๋น์ฉ/์ด์ต์ด ๊ทธ๋งํ ๊ฐ์น๊ฐ ์๋ค๊ณ ํ์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด์ํ๋ ๋ฐ ์๊ฐ์ด ๋๋ฌด ๋ง์ด ์์๋์ด ๋ฐฐ๋ฌ์ ์ง์ฅ์ ์ค ๋ฟ๋ง ์๋๋ผ ํ๊ท ๋ฑ์ ์ํ์ด ๋ฐ์ํฉ๋๋ค.
์ฆ, ์ฌ๋๋ค์ด ์์ง์ด์ง ๋ชปํ๊ฒ ํ๋ ๊ฒ์ด ํญ์ ๊ธฐ์ ์ ์ธ ์ด์ ๋ ์๋๋๋ค. ๊ฑฐ์ ๋ชจ๋ ํ๋ก์ ํธ๊ฐ _๊ธฐ์ ์ ์ผ๋ก_ ๊ฑฐ์ ๋ชจ๋ ํ๋ก์ ํธ์์ ๋์ฝํ ์ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ๋น์ฉ/๋ฉํ ๋ช ์ธ์์ ๋๊ธฐ๋ฅผ ๋ถ์ฌํ๋ ๊ฒ์ด ๋ฌธ์ ์ ๋๋ค. ๊ทธ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ด ํ๋งค์ผ ์ ์์ต๋๋ค. ์ ๊ฐ ๋ช ๋ฒ ๊ณต์ ํ ํ๋งค๋ฅผ ํด์ผ ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ "ํ์ง๋ง ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํํ ์ ์์ต๋๋ค"๋ผ๊ณ ๋งํ ์ ์๋ ๊ฒ์ด ๊ทธ ์์ง์์ ์ฃผ๋ํ๋ ๋ฐฉ๋ฒ์ด์์ต๋๋ค.
์์ ์ ๋ค์น๊ฒ ํ๊ณ ์ถ๋ค๋ฉด
์ด๊ฒ์ด ๋ฐ๋ก ๊ทธ๊ฒ์ ๋๋ค. Net46 ๊ฐ๋ฐ์์ ๊ฒฝ์์ง์ ๊ทธ๋ ๊ฒ ๋ณด์ง ์์ ๊ฒ์ด๋ฉฐ, Microsoft _you_๊ฐ ์ต์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐ๋ผ์ก๊ธฐ ์ํด ์์ ์ ํด์น๊ณ ์ถ์ดํ๋ ๊ฒ์ผ๋ก ๋ณผ ๊ฒ์ ๋๋ค. "๊ทธ๋ผ ์์ง์ด์ง ๋ง์ธ์."๋ผ๊ณ ๋งํ ์๋ ์์ง๋ง asp.net core 1.x์ ์ง์์ด ์งง๊ธฐ ๋๋ฌธ์ ์ต์ํ ์ฑ ์์ ์ ธ์ผ ํ๋ ๊ด๋ฆฌ์์ ๊ด์ ์์๋ ๊ทธ๋ ๊ฒ ํด์ผ ํฉ๋๋ค. ๋ฒ๊ทธ๋ก ์ธํด ๊ฐ๋ ์ค์ง ๋๋ ์ ๋ณด ์์ค์ด ๋ฐ์ํฉ๋๋ค. (ํ๋ ์์ํฌ๊ฐ ์ฑ ์์ง์ง ์๋๋ผ๋)
์ค์ ๋ก asp.net ์ฝ์ด 1.1์ ์ถ์งํ๋ ๋ง์ ๊ฐ๋ฐ์๋ค์ ์ด์ ์ฝ์ด ์์ด๋ 2.0์ผ๋ก ์ด๋ํ ์ ์๋ค๋ ๋ฐฐ์ ๊ฐ์ ๋๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ด ์ ๋นํ๋ ์๋ ์๊ณ ์๋ ์๋ ์์ง๋ง ์ ๋ ๋จ์ง ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ ๊ฒ ๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ ์ค์ํฉ๋๊น? ์ด๋ก ์ธํด asp.net core2/dotnet core2๊ฐ "์ฃฝ๊ฒ"๋ฉ๋๊น? ์๋์, ํ์ง๋ง ์ฑํ์ด ๋๋ ค์ง๊ณ ์ํ๊ณ๊ฐ ํ๊ดด๋ ๊ฒ์ ๋๋ค. ์ ๋ง ์ํ๊น์ด ์ผ์ ๋๋ค. ๋๋ ์ฌ๋๋ค์ด 2.0์ ๋์ค๋ ์ด ๋ชจ๋ ํ๋ฅญํ ๊ฒ๋ค์ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ์ํ๊ณ ํฌ๋ก์ค ์ปดํ์ผ์ ์ ํ์ค์ผ๋ก ์๋ฅด๋ ๊ฒ์ด ์ํฅ์ ์ค ๊ฒ์ ๋๋ค. ํ์คํ, ์ด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ด์ธ๋ฆฌ๊ณ ์๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ ๋๋ค. Joe์ Jane ๊ฐ๋ฐ์, ๋๊ตฐ๋ค๋ ๊ทธ๋ค์ ๊ด๋ฆฌ์๊ฐ ๋ฌธ์ ์ ๋๋ค.
@DamianEdwards
์ด๊ฒ์ด ํผ๋์ ์์ธ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ์ฌ๋ฌ ๋ฒ ์ค๋ช
ํด์ผ ํ์ง๋ง ๊ทธ ๊ฒฐ๊ณผ ํญ์ ์ค๋งํ ๊ฐ๋ฐ์๋ฅผ ํฅ๋ถ๋ ๊ฐ๋ฐ์๋ก ๋ง๋ค์์ต๋๋ค. ์๋ํ๋ฉด ๊ทธ๋ค์ ์๋ก์ด ๋ฉ์ง ๊ฒ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์
๋๋ค ๊ทธ๋ฌ๋ ๊ทธ๋ค์ด ํ ์ ์๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
์์ฝํ์๋ฉด, ์ด ๊ฒฐ์ ์ด ๊ฐ๋ณ๊ฒ ๋ด๋ ค์ง ๊ฒ์ด ์๋๋ผ๊ณ ํ์ ํ์ง๋ง, ์ด๋ ๊ฒ ํด์ผ ํ๋ค๋ฉด ๋ฉ์์ง์ ๋ํด ์ ๋ง _์ ๋ง_ ์กฐ์ฌํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.. ํนํ 1์์ asp.net ์ฝ์ด๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ ๋ณด์ฌ์ฃผ์ด์ผ ํฉ๋๋ค. x๋ net46์์ _๋งค์ฐ_ ๊ฐ๋จํ๊ณ ๋งค์ฐ ์ธ๋ จ๋์์ต๋๋ค. net46์ ๋ค๋ฅธ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ๋ก์ ํธ ์ฐธ์กฐ๋ก ์ฐธ์กฐํ๊ฑฐ๋ ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฒฌ๊ณ ํด์ผ ํ๋ค๋ ์ด์ผ๊ธฐ์ ๋๋ค. ์ฌ๋๋ค์ด ๋๋ผ๋ ๊ฒ์ ํผํ๊ธฐ ์ํด ์ด๊ฒ์ ๋ช ์์ ์ผ๋ก ํ์/์ฒ๋ฆฌํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด์์ฑ ๋ถ์๊ธฐ ์ง๋ฌธ์ ๋ํ @khellang ํ์ด์ง @terrajobst .
@khellang
์, ๋ฐฉ๊ธ 2017์ฉ VSIX๋ฅผ ์ ๋ฐ์ดํธํ์ง๋ง ์ฌ๊ธฐ ์์ ๋จ์ํ ๋ช ๋ น์ค ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค.
@NickCraver ๋ฌผ๋ก , netstandard๋ฅผ ๋์์ผ๋ก ํ๋ ๋ฏธ๋ค์จ์ด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ASP.NET Core๊ฐ netcoreapp2.0์ ์ง์ํ๋ ๊ฒฝ์ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์์๊ฒ ์ด๋ค ์ด์ ์ด ์์ต๋๊น?
@aL3891 ํ๋ฅญํ ์์ฝ์ ๋๋ค! ์ฐ๋ฆฌ ๊ฐ ์์ผ๋ก ๊ฐ์ง๊ณ ์๋ ํ ๊ฐ์ง ํฐ ๋ฌธ์ ๋ netstandard์๋ ์๋ ๊ฒ์ ๋ํด ์๋ก์ด API๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. .NET Core ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ํ์ํ ์๋ก์ด API๋ฅผ ์ ๊ณตํฉ๋๋ค(Kestrel์์ HTTP2 ์ง์์ ์ํ SSLStream ALPN ์ง์์ ์ผ๋์ ๋์ญ์์ค). ๊ทธ๋์ ๋น์ ์ ์ฐ๋ฆฌ๊ฐ netstandard๋ฅผ ๊ณ์ ์ ์งํ๊ณ ๊ฐ์ฅ ๋์ ๋ฒ์ (.NET Framework๋ ์์ง ์ง์ํ์ง ์์)์ ๊ณ์ ์ฌ์ฉํ๋ค๊ณ ์ฃผ์ฅํ ์ ์์ง๋ง, ๊ทธ๋ฌ๋ฉด ์ฐ๋ฆฌ๋ ๊ฐ์ ๋ฐฐ๋ฅผ ํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์์ผ๋ก ๊ฐ์ง๊ณ ์๋ ํ ๊ฐ์ง ํฐ ๋ฌธ์ ๋ netstandard์๋ ์๋ ๊ฒ์ ๋ํด ์๋ก์ด API๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. .NET Core๋ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ํ์ํ ์๋ก์ด API๋ฅผ ์ ๊ณตํฉ๋๋ค(Kestrel์์ HTTP2 ์ง์์ ์ํ SSLStream ALPN ์ง์์ ์ผ๋์ ๋์ญ์์ค).
https://github.com/dotnet/corefx/issues/4721 ์ ๋ฐ๋ฅด๋ฉด SslStream
์ ๋ํ ALPN ์ง์์ .NET Core 2.0์ ๋ํด ์ค๋น๋์ง ์์ต๋๋ค. ์ด๊ฒ์ด ๊ฒฐ๊ตญ ๋ช ๊ฐ์ ํ์ ๊ตฌํ๋๋ค๊ณ ๊ฐ์ ํ๋ฉด netcoreapp2.0
TFM์ ํ๊ฒํ
ํ ๋ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์
๋๊น? ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ด์ .NET Core ๋ฐํ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๊ธฐ netcoreapp2.0
๋ชจ์์ ์ผ๋ถ๊ฐ ์๋ ์ API๋ฅผ ์ฌ์ฉํ๋ netcoreapp2.0
๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฆด๋ฆฌ์คํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ? ์ถฉ๋ํ ๊น์? ์๋๋ฉด netcoreapp2.x
๊ฐ netstandard1.x
์ ์ผ์นํฉ๋๊น? TFM ๋ฒ์ ์ ๋์ด์ง ์๊ณ ๋ ๊ณ์ฝ์ ๋ณ๊ฒฝํ ์ ์์ต๋๊น?
์คํ ๋ฐ ํ ์คํธ์ ๋ค๋ฅธ ๊ตฌํ์ ๋ํ @davidfowl . ๊ทธ๋ฆฌ๊ณ "๋ชจ๋ ์ฌ๋์ด MVC๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ๋ชจ๋ ์ข ์์ฑ์ ์ํ๋ค๊ณ ๊ฐ์ "ํ๋ ๋์ 2๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ด์์ ์ ์ ํ ๋ถํ ๋ก ์ถ์ํ(MVC๊ฐ ํ์ํ์ง ์์)๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ถ์ํ๊ฐ ์ค์ ๋ก ์ถ์ํ๋์ง ์๊ณ ASP.NET Core ์์ฒด์ ๋๋ฌด ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์๋ ๊ฒฝ์ฐ ํด๋น ํจํค์ง๋ฅผ ์ ๊ฑฐํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ๊ทธ๊ฒ์ด ์ ๋ฐ์ ์ธ ๊ด๊ณ ๋ชฉํ๋ผ๋ฉด ์ถ์ ๋ ์ฝ๊ณ ๋ช
ํํ๊ฒ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ์ ์งํ ์ง๋ฌธ์
๋๋ค. ๋จ์ํ ๊ตฌํ/์ฌ์ฉ์ ํจ๊ณผ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ ๋ณ๋์ ํจํค์ง๋ก ์ถ์ํ๋ฅผ ๊ฐ๋ ์์ ์ ์ดํดํ๋ ค๊ณ ํฉ๋๋ค. Microsoft ์ธ๋ถ์ ๋๊ตฌ๋ ๊ฒฝ์ netcoreapp2.x
์น ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ํ ๋นํ๊ณ ์ถ์ดํ๊ฑฐ๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ๊ณ ์์ง ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค(์ฌ๊ธฐ์ ์์ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค!).
netcoreapp2.x
์ธ๊ณ์์ ์ถ์ํ์ ์์ ์ด ๋ฌด์์ธ์ง ๋ช
ํํ ํ ์ ์์ต๋๊น? ์๋๋ฉด ๋จ์ํ 2.0์์ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ ๊ณํ์ด ์์ต๋๊น?
dotnet/corefx#4721์ ๋ฐ๋ฅด๋ฉด SslStream์ ๋ํ ALPN ์ง์์ .NET Core 2.0์ ๋ํด ์ค๋น๋์ง ์์ต๋๋ค. ์ด๊ฒ์ด ๊ฒฐ๊ตญ ๋ช ๊ฐ์ ํ์ ๊ตฌํ๋๋ค๊ณ ๊ฐ์ ํ๋ฉด netcoreapp2.0 TFM์ ๋์์ผ๋ก ํ ๋ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ ๋๊น? ์ด ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ด์ .NET Core ๋ฐํ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๊ธฐ netcoreapp2.0 ํํ์ ์ผ๋ถ๊ฐ ์๋ ์ API๋ฅผ ์ฌ์ฉํ๋ netcoreapp2.0 ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? ์ถฉ๋ํ ๊น์? ์๋๋ฉด netcoreapp2.x๊ฐ netstandard1.x์ ์ผ์นํฉ๋๊น? TFM ๋ฒ์ ์ ๋์ด์ง ์๊ณ ๋ ๊ณ์ฝ์ ๋ณ๊ฒฝํ ์ ์์ต๋๊น?
ASP.NET ๋ฒ์ x๋ .NET Core ๋ฒ์ x์ ๋ง์ถฐ์ง๋๋ค. TFM์ .NET Core์ ๋ชจ๋ ๋ฆด๋ฆฌ์ค์ ๋ง๊ฒ ์ ๋ฐ์ดํธ๋ฉ๋๋ค. ๊ฒฐ๊ตญ ๊ทธ๋ ๊ฒ ์ทจ๊ธํ ์ ์๋ ๋จ์ผ ์ ํ์ ๋๋ค. ์ด๋ ์์์ @DamianEdwards ๊ฐ ์ธ๊ธํ ๋๋ก ์ฐ๋ฆฌ๊ฐ ํ๊ณ ์๋ ์ฃผ์ ๋จ์ํ ์ค ํ๋์ ๋๋ค. TFM์ ๋ณ๊ฒฝํ์ง ์๊ณ ํต์ฌ์ ์ API๋ฅผ ์ถ๊ฐํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ ์ฌ๋๋ค์ ๋ฐฉํดํ์ง ์์ต๋๋ค.
@NickCraver
์คํ ๋ฐ ํ ์คํธ์ ๋ค๋ฅธ ๊ตฌํ์ ์ํด.
๋ค๋ฅธ ๊ตฌํ์ ๋ฌด์์ ๋๊น? ASP.NET Core๋ฅผ ๊ตฌํํ๋ ์คํ์ ๋ค๋ฅธ ๋ถ๋ถ์ด ์์ต๋๊น?
์ถ์ํ๊ฐ ์ค์ ๋ก ์ถ์ํ๋์ง ์๊ณ ASP.NET Core ์์ฒด์ ๋๋ฌด ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด ์๋ ๊ฒฝ์ฐ ํด๋น ํจํค์ง๋ฅผ ์ ๊ฑฐํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๊ฒ์ด ์ ๋ฐ์ ์ธ ๊ด๊ณ ๋ชฉํ๋ผ๋ฉด ์ถ์ ๋ ์ฝ๊ณ ๋ช ํํ๊ฒ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ์ ์งํ ์ง๋ฌธ์ ๋๋ค. ๋จ์ํ ๊ตฌํ/์ฌ์ฉ์ ํจ๊ณผ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๊ฒฝ์ฐ ๋ณ๋์ ํจํค์ง๋ก ์ถ์ํ๋ฅผ ๊ฐ๋ ์์ ์ ์ดํดํ๋ ค๊ณ ํฉ๋๋ค. ๋๋ Microsoft ์ธ๋ถ์ ๋๊ตฌ๋ ๊ฒฝ์ netcoreapp2.x ์น โโ์๋ฒ์ ์ ๋ ํ ์์์ ๊ฐ๊ณ ์๊ฑฐ๋ ์ํ์ง ์๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
netcoreapp2.x ์ธ๊ณ์์ ์ถ์ํ์ ์์ ์ด ๋ฌด์์ธ์ง ๋ช ํํ ํ ์ ์์ต๋๊น? ์๋๋ฉด ๋จ์ํ 2.0์์ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ ๊ณํ์ด ์์ต๋๊น?
์ฐ๋ฆฌ๋ ๋ชจ๋ ๊ฒ์ ๋จ์ผ ์ด์ ๋ธ๋ฆฌ์ ๋ฃ์ ์ ์์ง๋ง ๋ฆฌํฉํ ๋ง์ ํตํด ์ฐ๋ฆฌ๊ฐ ์ด๋ ๊ฒ ํ๋ค๋ฉด ์์์ ๋ฏธ๋์ ์ ์ฐ์ฑ์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ์ง์ด ๋ค๋ฅธ ๊ตฌํ์ ๊ฐ์ง ๊ฐ๋ฅ์ฑ์ ์ด์ด์ฃผ๊ณ ์ฅ๊ธฐ์ ์ผ๋ก ๊ทธ๊ฒ์ ์ค์ ๋ก ๋ฐฐ์ ํ์ง ์์ต๋๋ค.
๊ฐ๋จํ ๋งํด์, ์ถ์ํ๋ ํ๋ซํผ ์ด์์ฑ์ด ์๋๋ผ ์ข ์์ฑ ์๋ฅผ ์ค์ด๋ ๊ฒ์ ๋๋ค.
TFM์ ๋ณ๊ฒฝํ์ง ์๊ณ ํต์ฌ์ ์ API๋ฅผ ์ถ๊ฐํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌ์ถํ๋ ์ฌ๋๋ค์ ๋ฐฉํดํ์ง ์์ต๋๋ค.
์ฌ๋ฌ๋ถ์ netcoreapp2.0
๋ฅผ ์ ํํ๊ณ ์ถ๋ค๊ณ ๋งํ์ต๋๋ค. .NET Desktop ๋ฐ ํ์ฅ์ ๋ฐ๋ผ .NET Standard์ ๋น๊ตํ์ฌ ๋ ๋น ๋ฅด๊ฒ ์์ง์ด๊ธฐ ๋๋ฌธ์
๋๋ค. ํ์ง๋ง netcoreapp2.0
๋์ netcoreapp2.0 TFM์ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ก์ด .NET Core API๋ฅผ ํ์ฉํ ์ ์๋ค๋ฉด netstandard2.0
? (์: netcoreapp2.1
)
netcoreapp2.0 ์ ์ฉ์ ์ ํํ๊ณ ์ถ๋ค๊ณ ํ์ จ์ต๋๋ค. .NET Desktop๊ณผ ํ์ฅํ์ฌ .NET Standard์ ๋นํด ์๋๊ฐ ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ๊ฐ๋ฅํ๋ค๋ฉด netstandard2.0 ๋์ netcoreapp2.0์ ๋์์ผ๋ก ํ๋ ์์ ์ ๋ฌด์์ ๋๊น? TFM์ ๋ณ๊ฒฝํ์ง ์๊ณ ์๋ก์ด .NET Core API์ ์ด์ ์ ๋๋ฆฌ์ง ๋ชปํ์๊ฒ ์ต๋๊น? (์: netcoreapp2.1)
์ฃ์กํฉ๋๋ค. ์ ๊ฐ ๋ง์ ์๋ชปํ์ต๋๋ค. netcoreapp2.0
netcoreapp2.x
#$์
๋๋ค.
์ข์์, ์ง๊ธ ์์ ํ ํผ๋์ค๋ฌ์์.
์ฃ์กํฉ๋๋ค. ๋ง์ ์๋ชปํ์ต๋๋ค. netcoreapp2.0์ด ์๋๋ผ netcoreapp2.x๋ฅผ ์๋ฏธํฉ๋๋ค.
์ดํด๊ฐ ์ ์๋๋ค์. ASP.NET Core 2.1 ํจํค์ง์ netcoreapp2.1
TFM์ด ๋๋ฑํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
ASP.NET Core 2.1 ํจํค์ง์ netcoreapp2.1 TFM์ด ๋๋ฑํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
๋ค. 2๋ฅผ ๊ฐ์ ๊ฒ์ผ๋ก ์๊ฐํ์ญ์์ค. https://github.com/aspnet/Home/issues/2022#issuecomment -299544884 ์ฐธ์กฐ
๊ทธ๋ ๋ค๋ฉด netstandard
๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฌํ ํจํด์ ์ฑํํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒ์ ๋ฌด์์
๋๊น? IMHO: ์๋ก์ด TFM์ ํตํด ์๋ก์ด API๋ฅผ ์ฑํํ ์ ์๊ณ .NET Desktop์ ์ง์ํด์ผ ํ๋ ์ฌ๋๋ค์ ์ฌ์ ํ โโ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core ์ฑ์ ์คํํ ์ ์์ต๋๋ค.
ASP.NET ์ฝ์ด 2.1/.NET ์ฝ์ด 2.1/.NET ๋ฐ์คํฌํฑ 4.7.1 -> netstandard2.1
ASP.NET Core 2.2/.NET Core 2.2/.NET ๋ฐ์คํฌํฑ 4.8 -> netstandard2.2
.
@PinpointTownes ๋ฐ์คํฌํฑ์ .NET Framework๋ ์ถฉ๋ถํ ๋น ๋ฅด๊ฒ ์ ๊ณตํ ์ ์๊ธฐ ๋๋ฌธ์ Core์ ๊ด๋ จ๋ ๋๋ถ๋ถ์ ๋ฒ์ ๊ด๋ฆฌ ๋ฌธ์ ์ ํต์ฌ์ ๋๋ค. ๊ทธ๊ฒ์ ๊ฑฐ๋ํ ์ฌ์ฌ์์ ์ด๋ ค์ด ๋ฌธ์ ์ ๋๋ค.
.NET Standard๋ .NET Core์ ๊ฐ์ ์๋๋ก ์์ง์ด์ง ์์ต๋๋ค. ์ค์ ๋ก ๊ทผ์ฒ์๋ ์์ต๋๋ค. .NET Standard์ ์ด๋์ ๋ฐ๋ผ์ก์ ๋๊น์ง ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ๋ซํผ์ ๋ค์ฒ์ง๊ฒ ํ๋ฉฐ .NET Framework๋ ๊ฐ์ฅ ๋๋ฆฌ๊ฒ ์ด๋ํ๊ณ ๊ฐ์ฅ ํฐ ํ๋ซํผ์ ๋๋ค.
ํฌ์ธํธ ํ ํฐ, .NET Framework๊ฐ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ถ์๋์ด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ).
ํฌ๋ก์ค ์ปดํ์ผ์ ๊ณ ๊ฐ ๋ฐ ์ ํ ์๊ตฌ ์ฌํญ๊ณผ ๊ท ํ์ ์ด๋ฃจ์ด์ผ ํ๋ ์ค๋ฒํค๋์ ๋๋ค.
์๊ฐ์ด ๋์๋ฉด ํฌ๋ก์ค ์ปดํ์ผ๋ก ์ธํ ์ค๋ฒํค๋์ ์ ํํ ํน์ฑ์ ๋ํด ์์ธํ ์๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฌ ํด์.
์ฐ๋ฆฌ ๋ชจ๋์๊ฒ ํ์ํ ๊ฒ์ net461+์์ ์คํํ๊ธฐ ์ํด ASP.NET Core 2.0์ด ํ์ํ๋ค๊ณ ์๊ฐํ๋ ์ด์ ์ ๋ํ ๋ช ํํ ๋ชฉ๋ก/์ดํด์ ๋๋ค. ์ด๋ฌํ ๊ฒฉ์ฐจ๋ฅผ ์ค์ด๊ณ ๋ชจ๋๊ฐ ์ฑ๊ณตํ ์ ์๋๋ก ๊ตฌ์ฒด์ ์ผ๋ก ์์ฑํ์ญ์์ค.
ํ์ฌ netstandard
/ netcore
๋ฒ์ (https://github.com/dotnet/wcf)์ด ๊ฑฐ์ ์๋ฃ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ ์์ํฌ ๋ฒ์ ์ WCF ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
์๊ฐ์ด ๋์๋ฉด ํฌ๋ก์ค ์ปดํ์ผ๋ก ์ธํ ์ค๋ฒํค๋์ ์ ํํ ํน์ฑ์ ๋ํด ์์ธํ ์๊ณ ์ถ์ต๋๋ค. ๊ฐ์ฌ ํด์.
๊ฐ๊น์ด ์ฅ๋์ SSLStream์ ๋ํ ALPN ์ง์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ฌธ์ ๊ทธ๋๋ก ํด๋ฆฌํํ ์ ์๋ ๋๊ฐ ์ฌ ๊ฒ์ ๋๋ค. ๋ํ ์ฐ๋ฆฌ๋ ๋ค๋ฆฌ๋ฅผ ๋ฒ๋ฆฌ๊ณ API๋ฅผ .NET Core์ ์ถ๊ฐํ๊ธฐ ์์ํ์ง๋ ์์์ต๋๋ค. ์ง๊ธ๊น์ง ์ฐ๋ฆฌ๋ .NET Standard ๋ฐ .NET Core 2.0(.NET Standard 2.0์ ์ ์ฒด ๋ชฉ์ )์ผ๋ก ๋ค์ ํฌํ ํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. . ์๋ก์ด API๋ฅผ ์ถ๊ฐํ๊ณ ๋ง์นจ๋ด 1์ผ ์ฐจ์ ASP.NET Core์์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
ํ์ฌ netstandard/netcore ๋ฒ์ (https://github.com/dotnet/wcf)์ด ๊ฑฐ์ ์์ฑ๋์ง ์์๊ธฐ ๋๋ฌธ์ WCF ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฒด ํ๋ ์์ํฌ ๋ฒ์ ์ด ํ์ํฉ๋๋ค.
@ctolkien ๊ทธ๊ฒ์ด ๋ฌธ์ ์ด๊ณ ์ฐ๋ฆฌ๊ฐ WCF ํด๋ผ์ด์ธํธ๋ฅผ ์ฒ์์ ์ด์ํ ์ด์ ์ ๋๋ค. ๋น์ ์ ๋ง๊ณ ์๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์์ญ๋๊น? ์ฐ์ ์์๋ฅผ ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ข์ ๊ธฐํ์ ๋๋ค.
@davidfowl https://github.com/dotnet/wcf/issues/8
๋ ์์ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ ์ฒด ํ๋ ์์ํฌ wcf๋ก ์ ํํ๊ธฐ ์ ์ ์ฐ๋ฆฌ๊ฐ ๋ถ๋ชํ ์ฒซ ๋ฒ์งธ ์ฅ์ ๋ฌผ์ผ ๋ฟ์ ๋๋ค.
๊ฐ๊น์ด ์ฅ๋์ SSLStream์ ๋ํ ALPN ์ง์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ฌธ์ ๊ทธ๋๋ก ํด๋ฆฌํํ ์ ์๋ ๋๊ฐ ์ฌ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ ์ด๋ป๊ฒ ๋ฌธ์ ์ผ? AFAICT, ์ฌ๊ธฐ์์๋ ASP.NET Core์ .NET Desktop ๋ฐ .NET Core ๋ฒ์ ์ด ์ ํํ ๋์ผํ ๊ธฐ๋ฅ ์งํฉ์ ์ง์ํด์ผ ํ๋ค๊ณ ๋งํ ์ ์ด ์์ต๋๋ค. ๋๋ฝ๋ API(์: HTTP 2/0)๋ก ์ธํด .NET Desktop์์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ .NET Core ์ ์ฉ์ผ๋ก ๋ง๋ค๊ณ ๊ฐ๋ฐ์ PlatformNotSupportedException
๊ทธ๊ฐ ์ฐพ๊ณ ์๋ ๊ธฐ๋ฅ์ด ์ฌ์ฉํ ์ ์์ต๋๋ค?
๋ชจ๋ ASP.NET Core ํจํค์ง๋ฅผ .NET Core ์ ์ฉ์ผ๋ก ๋ง๋๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค. ๋น๋ก ๋๋ถ๋ถ์ด ์๋ก์ด BCL API๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด์ง๋ง ๋ง์
๋๋ค.
@davidfowl ์ ์๊ฐ์๋ netcoreapp2.3
์์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๊ณ netcoreapp2.4
์์ ํด๊ฒฐ๋๋ค๋ ๊ฒ์ด ๊ฐ์ฅ ํฐ ๋๋ ค์์
๋๋ค. ASP.NET Core๊ฐ ๊ฐ์ฅ ๋น ๋ฅธ ๊ธฐ์ฐจ์ ์ด์ ์ ๋ง์ถ๋ฉด ๊ฐ ๋ง์ด๋ ๋ฒ์ ์ด ์ผ๋ง๋ ์ค๋ ์ฌ๋์ ๋ฐ์๊น์? ์ฐ๋ฆฌ๊ฐ ์ง์์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ํด์ผ ํ๋ค๋ฉด ๋ชจ๋ ์๋น์๋ ์ง์์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค.
์ด๋ ์ต์ ๋ฐ ์ต๊ณ ์ ์ ํ์ ์ป๋ ๋ฐ๋ ์ข์ง๋ง ๋๋ถ๋ถ์ ํ์ฌ์๋ ์ ํฉํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ASP.NET Core์ ๊ฐ ์๋น์(์ต์ ์ ์์กดํ์ง ์๊ณ ์ ์งํ๊ธฐ ์ํด)์ ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง์ ๋ฒ์ (๊ฐ ๋ถ ๋ฒ์ )์ ์ ์งํ๊ฑฐ๋ ์ ์งํ๊ธฐ ์ํด ์ฌ์ฉ์๋ฅผ ์ต์ ๋ฒ์ ์ผ๋ก ๋์ด์ผ ํฉ๋๋ค. ์ด๊ฒ์ ๊ฒ์ฆ๋ ํ๊ฒฝ๊ณผ ๊ฐ์ ๊ฒ์ ์นํ์ ์ด์ง ์์ต๋๋ค.
์ถ์ํ๊ฐ ๋น ๋ฅธ ์๋๋ก ํ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด(์์?) ์ฐ๊ฒฐ์ ๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์
๊ทธ๋ ์ด๋ํ ๋๋ง๋ค ์ ์ฒด ์ํ๊ณ๋ฅผ ๋์ง ์์๋ ๋ฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด netcoreapp
์ ์์ ๊ฒ์ด ์๋๋ผ ์ง์์ ์ผ๋ก ์
๋ฐ์ดํธ๋๊ณ ๋ชจ๋ ๊ฒ์ด ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋ ๊ฒ์ด๋ผ๋ ์ ์ ๋ ์ฐ๋ คํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ถ์ํ๊ฐ ๊ฐ ๋ง์ด๋ ๋ฒ์ ์ ์ ์งํ๊ณ ๊ณ ํต์ (์์งํ ๋งํด์) ๋น์ ํธ์ผ๋ก ์ฎ๊ธฐ๋ฉด ๋๋ ํจ์ฌ ๋ ๊ฑฑ์ ํ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์ ์์ ์ฌํญ์ด ํฌํจ๋ ์๋๋ฅผ ์์ธํ ์ค๋ช ํ ์ ์์ต๋๊น?
@PinpointTownes :
.NET Core ์ ์ฉ์ผ๋ก ๋ง๋ค๊ณ ๊ฐ๋ฐ์์๊ฒ ๊ทธ๊ฐ ์ฐพ๊ณ ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์์ ์๋ฆฌ๋ PlatformNotSupportedException์ ๋์ง์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ชจ๋ ASP.NET Core ํจํค์ง๋ฅผ .NET Core ์ ์ฉ์ผ๋ก ๋ง๋๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค. ๋น๋ก ๋๋ถ๋ถ์ด ์๋ก์ด BCL API๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด์ง๋ง ๋ง์ ๋๋ค.
์๋ผ ์๋ผ ์ ๋ฐ ์๋ผ ์ด๋ ๋ฐํ์ ์ค๋ฅ์ด๋ฉฐ ๊ทธ๋ค์ง ๋ฐ๋์ง ํ์ง ์์ ๋์์
๋๋ค. ์ฐ๋ฆฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ํ ์๋ํ ๊ฒ์ด๋ผ๋ ์ปดํ์ผ ์๊ฐ ๋ณด์ฅ์ ์ํฉ๋๋ค. ์ด๊ฒ์ ๋ํด ๋ง์ ๋
ผ์์ด ์์์ต๋๋ค. ๊ทธ๊ฒ์ ๋จ์ํ ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. PlatformNotSupported
๋ ์ธ๊ฐ์ ์ผ๋ก ๊ฐ๋ฅํ ํ ํผํด์ผ ํฉ๋๋ค.
์ด๋ ๋ฐํ์ ์ค๋ฅ์ด๋ฉฐ ๊ทธ๋ค์ง ๋ฐ๋์งํ์ง ์์ ๋์์ ๋๋ค.
์ด๊ฒ์ ์ด์
๋ธ๋ฆฌ๊ฐ ์ง์๋์ง ์๋ API๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ ๊ฒฝ์ฐ ".NET Core์์ .NET Desktop ์ด์
๋ธ๋ฆฌ ๊ฐ์ ธ์ค๊ธฐ" ์ ๊ทผ ๋ฐฉ์์์ ๋ฐ์ํ๋ ์ผ์
๋๋ค. ๋จ, PlatformNotSupportedException
๋์ MissingMemberException
๊ฐ ํ์๋ฉ๋๋ค. PlatformNotSupportedException
.
๋ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ ์ค์ธ API๊ฐ ์ง์๋๋์ง ์ฌ๋ถ๋ฅผ ์ปดํ์ผ ํ์์ ๊ฒฐ์ ํ ์ ์๋ Roslyn ๋ถ์๊ธฐ์ ๊ฐ์ ๊ฒ์ผ๋ก ์ต์ํ ๋ ๋์ ๋๊ตฌ ์ด์ผ๊ธฐ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ BTW, PlatformNotSupported
๋ฅผ ๋์ง๋ ๊ฒ์ ์ ๋ง ์ฝ๋ ์ผ์ด์ค๊ฐ ๋ ๊ฒ์
๋๋ค. ํฌ๋ก์ค ์ปดํ์ผ์ ์ฌ์ฉํ ๋ ๊ฐ์ฅ ์ข์ ์ต์
์ ์ง์๋์ง ์๋ API๋ฅผ ๊ณต๊ฐ ๊ณ์ฝ์์ ๋จ์ํ ์ ์ธํ๋ ๊ฒ์
๋๋ค.
@PinpointTownes ๋๋ ์ด๋ฐ ์๊ฐ์ ํ์ง๋ง, ํ์ค์ ์๋ก์ด ํ๋ซํผ์ด ์ถ์๋๊ณ ๊ทธ๋ ๊ฒ ๊ฐ๋จํ์ง๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ ์ฌ๋ฌ ๋ฒ ๋
ผ์ํ ํ ์ฌ๊ธฐ์์ ์ด๋ป๊ฒ compat๋ฅผ ์ํํ ์ง์ ๋ํ ์๊ฐ์ด ํฌ๊ฒ ๋ฐ๋์์ต๋๋ค. netcoreapp
๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉด ์์ ์ฌํญ์ ๋ง์ด๋ ๋ฒ์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ค๋ ๊ฒ์ .NET Desktop์ด ์์ ์ฌํญ์ ์ ๊ณตํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ์ด์ ๋น๋๋ค. ๊ทธ๊ฒ์ ํด๊ฒฐ์ ์ํ ๋งค์ฐ ๋๋ฆฐ ์๋จ์
๋๋ค.
AFAICT, ์ฌ๊ธฐ์์๋ ASP.NET Core์ .NET Desktop ๋ฐ .NET Core ๋ฒ์ ์ด ์ ํํ ๋์ผํ ๊ธฐ๋ฅ ์งํฉ์ ์ง์ํด์ผ ํ๋ค๊ณ ๋งํ ์ ์ด ์์ต๋๋ค. ๋๋ฝ๋ API(์: HTTP 2/0)๋ก ์ธํด .NET Desktop์์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ .NET Core ์ ์ฉ์ผ๋ก ๋ง๋ค์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ ๋ฐ๋ถ๋ netstandard
์
๋๋ค. netcoreapp
๋ก ์ฐจ๋ณํํ๋ ๊ฒ์ด ๋ฐ๋ก ์ฌ๊ธฐ์์ ํ๋ ์ผ์
๋๋ค. ์๋์ ์ธ ์์ธ ์์ด. ์ด ๋ฃจํธ๋ ์ ์ ํ ๊ณ์ฝ์
๋๋ค.
๋น์ ์ ๊ทธ ๋ฐ๋๊ฐ ์๋๋ผ ๊ฒฉ์ฐจ๊ฐ ์์ ๋ ๋ ๋นจ๋ฆฌ ๊ณ ์น ์ ์๊ณ ๊ฐ์ ํ ์ ์๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ณ ์ถ์ดํฉ๋๋ค. "PlatformNotSupported" ์์ธ๋ ์ง๊ธ๋ถํฐ 3๊ฐ์ ํ์ ํ๋ซํผ์ด ์ ๋ฐ์ดํธ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๋ด์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์์ ํ ์ ์์ต๋๋ค. .NET Core๋ ์ค์ ์ฝ๋๊ฐ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํฌ์๋๋ก ๋ณ๋๋ก ์ ๊ณต๋์ง ์๊ณ ํจ๊ป ์ ๊ณต ๋๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๊ฒ ์ง์ํ ์ ์์ต๋๋ค.
[
PlatformNotSupportedException
] ๋๋ฝ๋ API(์: HTTP 2/0)๋ก ์ธํด .NET ๋ฐ์คํฌํฑ์์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ .NET Core ์ ์ฉ์ผ๋ก ๋ง๋ค๊ณ ๊ฐ๋ฐ์์๊ฒ ํด๋น ๊ธฐ๋ฅ์ด ๊ทธ๊ฐ ์ฐพ๋ ์ฌ๋์ด ์์ต๋๊น?
API ํ๋ฉด๊ณผ ๋๋ฌ ๋ฒ์์ ๋จ์์ฑ๊ณผ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๊ท ํ์ ๋ง์ถฐ์ผ ํฉ๋๋ค. ์ง๊ธ๊น์ง๋ ๊ณผ๊ฑฐ์ ํธํ๋๋ API ํ๋ฉด์ ์ ๊ณตํ๊ธฐ ์ํด ์ฃผ๋ก PlatformNotSupportedException
๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์์ผ๋ก ๋ถ๋ฆฌ๋ ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ผ๋ก PlatformNotSupportedException
๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒ์
๋๋ค. ๋์ ๊ธฐ๋ฅ์ด ์๋ .NET ํ๋ซํผ ๋ฒ์ ์ ๋ํ ์ง์์ ์ค๋จํ๊ฑฐ๋ ๋ชจ๋ ๊ณณ์์ ์์ฒด์ ์ผ๋ก ์ง์๋์ง ์๋ ๋
๋ฆฝ NuGet ํจํค์ง๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
netcoreapp ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฉด ์์ ์ฌํญ์ ๋ถ ๋ฒ์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค.
1.0 ์ ๊ทผ ๋ฐฉ์๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? @davidfowl ์ ์๋ก์ด API์๋ ์๋ก์ด TFM์ด ํ์ํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ์ฆ, ์๋ก์ด .NET Core API์ ์์กดํ๋ ์์ ์ฌํญ์ ์ป์ผ๋ ค๋ฉด LTS๋ฅผ ์ ํ ํด์ ํด์ผ ํฉ๋๋ค. ์ ๋ง ์ด์์ ์ธ ์ํฉ์ ์๋๋๋ค.
netcoreapp๊ณผ์ ์ฐจ๋ณํ๋ ๋ฐ๋ก ์ฌ๊ธฐ์์ ํ๋ ์ผ์ ๋๋ค.
์ฐจ๋ณํ๋ ์๋ฒฝํ๋ฉฐ .NET Core๊ฐ ASP.NET Core์ ๊ธฐ๋ณธ ๋์์ด ๋์ด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํนํ ๊ต์ฐจ ์ปดํ์ผ๊ณผ ๊ฐ์ ๋์์ด ์กด์ฌํ ๋ .NET Desktop์ ์์ ํ ๋ฒ๋ฆฌ๋ ๊ฒ์ ์๋๋๋ค.
API ํ๋ฉด๊ณผ ๋๋ฌ ๋ฒ์์ ๋จ์์ฑ๊ณผ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ๊ท ํ์ ๋ง์ถฐ์ผ ํฉ๋๋ค.
ํ์ ํ๋. ๊ทธ๋ฌ๋ .NET Desktop์ฉ์ผ๋ก ๊ฐ๋ฐ๋๊ณ .NET Core์์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ๋ ๊ฑฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ 1.0์์์ ๋ง์ฐฌ๊ฐ์ง๋ก ASP.NET Core 2.0์์๋ ์ ๋๋ก ์๋ํด์ผ ํ๋ค๋ ์ฌ์ค๊ณผ๋ ๊ท ํ์ ๋ง์ถฐ์ผ ํฉ๋๋ค.
๋์ ๊ธฐ๋ฅ์ด ์๋ .NET ํ๋ซํผ ๋ฒ์ ์ ๋ํ ์ง์์ ์ค๋จํ๊ฑฐ๋ ๋ชจ๋ ๊ณณ์์ ์์ฒด์ ์ผ๋ก ์ง์๋์ง ์๋ ๋ ๋ฆฝ NuGet ํจํค์ง๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ด๋ก ์์ผ๋ก๋ ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ ์ค์ํ ๊ธฐ๋ฅ์ด ๋ถ์กฑํ ํ๋ซํผ์ .NET Desktop์ด ์๋๋ผ .NET Core์ ๋๋ค. ์ด๊ฒ์ ์๋ง๋ ๋ช ๋ ์์ ๋ณ๊ฒฝ๋ ๊ฒ์ด์ง๋ง ํ์คํ ๊ฒ์ ์ฌ๋๋ค์ด .NET Core 2.0์์ ์ฌ์ ํ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ฌ๋๋ค์ด .NET Framework์ .NET Core์์ ๋๋ฝ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ํน์ ํญ๋ชฉ์ ๋ํด API๋ฅผ ์์ฒญํ ์ ์๋ dotnet์ forward-port
๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ฐ์ง ๊ฐ์น๊ฐ ์์ต๋๊น?
๊ทธ๋ฐ ๋ค์ ํผ๋๋ฐฑ, ๊ฒํ ๋ฐ ์ง์นจ์ ์ฝ๋ ์ ์ฅ์์ ์ผ์์ ์ธ ์์ ์ธ์ ์ํํ ์ ์์ต๋๊น? ๋๋ ์ผ๋ฐ API ๊ฒํ /์ฌ์ ๋ฆฌํฌ์งํ ๋ฆฌ(csharplang ๋ roslyn๊ณผ ๊ฐ์ ์ข ๋ฅ)
๋ํ "๋ณํ ๋ฌธ์ ๊ฐ ์๊ณ X api์ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ๊ฒ์ํด์ผ ํฉ๋๋ค."๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ๋ฉด corefx๋ ์ด์ ๋ํด ๋งค์ฐ ์๋๋ฝ์ต๋๋ค.
[@benaadams] .NET Framework์ .NET Core์์ ๋๋ฝ๋ ๊ฒ์ผ๋ก ์๊ฐ๋๋ ํน์ ํญ๋ชฉ์ ๋ํด ์ฌ๋๋ค์ด API๋ฅผ ์์ฒญํ ์ ์๋ dotnet์ ์ ๋ฐฉํฅ ํฌํธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๊ฐ์ง ๊ฐ์น๊ฐ ์์ต๋๊น?
๋๋ ์ด๊ฒ์ด ๋จ์ํ CoreFx์ ๋ฌธ์ ๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค. ๋ํ ์ฐ๋ฆฌ์ ์ฝ์์ ์ผ๋ฐ์ ์ผ๋ก .NET Framework์ .NET Core ๊ฐ์ ํ์์ด ๊ณต์ ๋๋ ๊ฒฝ์ฐ ์๋ก ์ถ๊ฐ๋ ๊ตฌ์ฑ์์ .NET Framework๋ก ์ด์ํ๋ ค๋ ๊ฒ์ ๋๋ค. ๋งค์ฐ ๋๋ฌธ ๊ฒฝ์ฐ์ ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์์ ์๋ ์์ง๋ง, ๋ฌธ์ ๋ ์๋์ผ๋ก ๊ณ ๋ ค๋๋ค๋ ๊ฒ์ ๋๋ค.
[@benaadams] ๋๋ ์ผ๋ฐ API ๊ฒํ /์ฌ์ ๋ฆฌํฌ์งํ ๋ฆฌ
๊ทธ๋งํ ๊ฐ์น๊ฐ ์๋์ง ํ์คํ์ง ์์ต๋๋ค. API ๋ฆฌ๋ทฐ๋ ์ด๋ฏธ ๋ค์ ๋ฌด๊ฑฐ์ด ํธ์ ๋๋ค. ๊ทธ๊ฒ๋ค์ ๋ค๋ฅธ repo๋ก ์ถ์ถํ๋ ๊ฒ์ ๊ทธ๊ฒ์ ์ฆํญ์ํค๋ ๊ฒ ๊ฐ์ต๋๋ค. ASP.NET์์ ์ API๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๋งํผ ๊ฐ๋จํ๋๋ก CoreFx๋ฅผ ๊ณ์ ๊ฐ์ํํ๊ณ ์ถ์ต๋๋ค.
์ด์ ์ ์ธ๊ธํ๋ฏ์ด .NET Framework๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ ์์ํฌ๋ฅผ ๊ณ์ ์ฐธ์กฐํ ์ ์์ผ๋ฉฐ ํธ์ถํ๋ API๊ฐ netstandard2.0 ํ์์ ์ผ๋ถ๋ผ๊ณ ๊ฐ์ ํ๋ฉด ์ ๋๋ก ์๋ํฉ๋๋ค.
@DamianEdwards netstandard2.0 ์ ํด๋ก์ ์ ์๋ API๋ ์ด๋ป์ต๋๊น? ๋๋ถ๋ถ์ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋น๊ณต๊ฐ ์์ค์
๋๋ค. ๋ชจ๋ ์ฃ์ง ์ผ์ด์ค๊ฐ netstandard2.0์ ์ข
๋ฃ์ ์์์ ์ด๋ป๊ฒ ์ ์ ์์ต๋๊น?
@PinpointTownes ๊ฐ ์์ํ๋ฏ์ด ์ด๊ฒ์ ๋ฌ์์ ๋ฃฐ๋ ์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
@MJomaa ๋๊ตฌ๊ฐ ์ฌ๊ธฐ์์ ๋์์ด ๋ ๊ฒ์ด์ง๋ง ๋ถ๋ช ํ ํ์คํ ์ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์คํํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ค์ ๋ก .NET Standard ์ง์ ํ๋ ์์ํฌ์์ ์คํ๋๋ .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ค๋ฅด์ง ์์ต๋๋ค. ๊ธฐ์กด API๋ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ ์คํธํ ํ์์ฑ์ ๋์ฒดํ์ง ์์ต๋๋ค. netstandard ๊ตฌํ์ด ํธํ์ ๋ชฉํ๋ก ํ์ง ์๋๋ค๋ ๋ง์ ์๋์ง๋ง https://github.com/dotnet/standard/blob/cc9f646354fc68a13707a82323d4032b8dbfda52/netstandard/src/ApiCompatBaseline.net461.txt ์ ๊ฐ์ด ๊ฐ์ฅ์๋ฆฌ์ ๋๋ค.
NS 2.0์๋ ์์ง๋ง .NET Framework 4.6.1์๋ ์๋ API์ ๋๋ค.
์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ์ ๋ง ๊ธด์ฅํ์ง๋ง ์ค๋ ๋๋ฅผ ์ฝ์ ํ ์ด๋ก ์์ผ๋ก๋ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค. ์ฐ๋ฆฌ๋ 5๊ฐ์ ASP.NET Core ์ฑ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๊ทธ ์ค 4๊ฐ๋ ์ ์ฒด ํ๋ ์์ํฌ์ ์์ต๋๋ค.
.NET Core ์ด์์ฑ ๋ถ์๊ธฐ์ ๊ฐ์ VS์ ๊ตฌ์ด ์ผ์ข ์ ๋๊ตฌ๊ฐ Twitter/GitHub์์ ์ต์ ์ ๋ณด๊ฐ ์๋๋ฉฐ ์ด ํ์ฅ์ด ์กด์ฌํ๋ค๋ ์ฌ์ค์กฐ์ฐจ ์ธ์ํ์ง ๋ชปํ๋ ๊ฐ๋ฐ์์๊ฒ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. "ํ์ฅ ์ ์" ํ์ ์ด ๋ ์ค๋ฆ ๋๋ค. ํ์ง๋ง ์ฌ๋์ด ์ด๋ฅผ ํธ๋ฆฌ๊ฑฐํ๊ธฐ ์ํด ์ด๋ค ์กฐ์น๋ฅผ ์ทจํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ASP.NET Core 2+ ์ฑ์ net46x ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ถ๊ฐํ๋ ค๊ณ ํฉ๋๊น?
Telerik, Syncfusion ๋ฑ๊ณผ ๊ฐ์ ํ์ฌ ์ง์๊ณผ ๊ฐ์ด Microsoft๊ฐ ์ ์ดํ ์ ์๋ ํญ๋ชฉ์ ์ํ ์ค์ธ ์์ ์ ๋ฐ๋ผ ์ ์ฌ์ ์ธ ์ฐจ๋จ ์์๊ฐ ๋ ์๋ ์์ต๋๋ค.
์ด GitHub ์ค๋ ๋์ ๋ฉ์์ง๋ FAQ ๋ฑ์ผ๋ก ์ต๋ํ ๋นจ๋ฆฌ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋์์ผ ํฉ๋๋ค. ๋๋ ๋ชจ๋ ๊ฒ์ ์ต์๋จ์ ๋จธ๋ฌผ๊ณ ์๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ง์ง๋ง ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ net46x libs๋ฅผ ์ฐธ์กฐํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋์ง ์ฌ๋ถ๋ฅผ ์ฌ์ ํ 100% ํ์ ํ์ง ๋ชปํ์ต๋๋ค. ์ ๋ง ํท๊ฐ๋ฆฐ ๊ฒ์ ๋ถ๋ช ์๋๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค์ด ๋งํ ๊ฒ์ ๋ํ์ดํ๊ธฐ ์ํด. ASP.NET Core๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ๋ ์ ์๋ค๋ ๊ฒ์ ๋ชจ๋ฅด๋ 10๋ช ์ด์์ ๊ฐ๋ฐ์์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด์ต๋๋ค. @aL3891 ๊ณผ ๊ฐ์ ๊ฒฝํ์ ํ์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core๋ฅผ ์คํํ ์ ์๊ณ ๋ด๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ํ๋ ๋ฐ ์ ๋ง ๋ง์กฑํ์ต๋๋ค. ๋ค์ ๋งํ์ง๋ง ๋๋ค์์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ .NET Core 2.0์ ๋ํ ๋ฉ์์ง์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์์ ์ค์ธ System.DirectoryServices์ ๊ฐ์ Windows ์ ์ฉ ์๋ฃจ์ ์ ๋ํ ๋ถ๋ถ๋ ์ค์ํฉ๋๋ค. ๋ด๊ฐ ๋งํ๋ ๋ง์ NET ๊ฐ๋ฐ์๋ .NET Core๊ฐ ๊ต์ฐจ ํ๋ซํผ์ด๊ณ x-plat/perf๋ณด๋ค ์๋ํ๋ ๊ธฐ์กด ์ฝ๋์ ๋ ๊ด์ฌ์ด ์๋ค๋ ๋ง์ ๋ฃ๊ณ ์ด๊นจ๋ฅผ ์ผ์ฑํฉ๋๋ค.
์๋ค์, ์ด๊ฒ์ ์ผ์ข
์ ์ฐ๋ ๊ธฐ์
๋๋ค :(
์ฐ๋ฆฌ๋ netfx์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์ต์
๋๋ฌธ์ ASP.NET Core๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ์ผ๋ฉฐ ์ต๋ 1๋
์ง์์ด ์๋ 5-10๋
๋์ ์ง์๋๋ ๊ฒ์ ๊ตฌ์ถํ์ต๋๋ค. ์ด๊ฒ์ด ๋น์ฆ๋์ค์์ ASP.NET ์ด๋ฆ์ด ์๋ฏธํ๋ ๋ฐ์ด๋ฉฐ ๋๋ฆฌ๊ฒ ์์ง์ด๋ ๋๊ท๋ชจ ์กฐ์ง์์ ์ด๋ฌ์ ํ๋ ์์ํฌ๋ณด๋ค ASP.NET์ ์ ํํ๋ ์ด์ ์
๋๋ค. ๊ตฌ์ฒด์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ก ๋์ด๊ฐ๊ฒ ์ต๋๋ค.
์ ๋ ํ์ฌ ๋ด๋ถ์์ ์ฌ์ฉํ๊ณ '์ํฐํ๋ผ์ด์ฆ' ๊ณ ๊ฐ์๊ฒ ํ๋งคํ๊ธฐ ์ํด LOB(Line of Business) ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ๋ ๋๊ตฌ ๊ทธ๋ฃน์์ ์ผํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ๋๋ถ๋ถ ์ ๋ถ ๊ธฐ๊ด์ด์ง๋ง ๋ฏผ๊ฐ ๋ถ๋ฌธ์์๋ ๊ฐ์ ๋ง์ ๋ฃ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ "IDatabaseConnection", "IEntityProvider", "IWizardFlow", "ICodeGenerator"๋ฅผ ์๊ฐํ์ฌ ๋น์ฆ๋์ค ํจํด์ ๊ณตํต ์ถ์ํ๋ก ์ธ์ฝ๋ฉํ๊ณ ์ด๋ฌํ ํ๋ฌ๊ทธํ ๋ฐฑ์๋ ์์ RAD ํ๋ฐํธ์๋๋ฅผ ๊ตฌ์ถํ๋ ๋ด๋ถ ํ๋ ์์ํฌ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ ์คํ์์ ASP.NET Core๋ 'ํ๋ฌ๊ทธ์ธ'์ ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ์ ์ฅ์ ์ถ์ํ ๋ฐ ํธ์คํ ์๋น์ค ๋ฑ์ ์ฌ์ฉ๋๋ HTTP ๋์์ ๋๋ค. ๋ํ 'ํ๋ก ํธ์๋'์ด๊ธฐ๋ ํฉ๋๋ค. ๋ถ๋ช ํ ๋ง์ LOB ์ฑ์ด ์น์ฌ์ดํธ์ ์์ผ๋ฉฐ, ์น์ฑ์ ์ํ ํ๋ฅญํ ์ ํ๋ ์์ํฌ์ ๋๋ค. ๋ฐ๋ผ์ ์๋ฐฉํฅ ์ํธ ์ด์ฉ์ฑ ์๊ตฌ ์ฌํญ์ด ์์ต๋๋ค. ์ฆ, ์์์ ๋ค๋ฅธ ๊ตฌ์ฑ ์์๋ฅผ ์ฐธ์กฐํ๋ AN-C ์ฝ๋์ AN-C๋ฅผ ์ฐธ์กฐํ๋ ์์์ ๊ธฐํ ์ฝ๋์ ๋๋ค.
์ฐ๋ฆฌ๋ Core CLR๊ณผ ์ด์์ฑ์ ์ ์ ์ผ๋ก ์ข์ํ๋ฉฐ ๋ง์ ๊ตฌ์ฑ ์์๋ฅผ ๋์ ๋๋ ๋ค์ค ๋์ netstandard์ ์ด์ํ์ต๋๋ค. ์ง๊ธ๊น์ง Linux์์ ํธ์คํ ๋๋ ํ๋์ ์ฑ์ด ์์ผ๋ฉฐ ๋ ๋ง์ด ์ ๊ณต๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ฒ์ด ๋น ๋ฅธ ์์ผ ๋ด์ ์ด์๋ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค! ์ฐ๋ฆฌ๋ ์ ์์กดํ๋ ์์ง ์ด์ ์๊ณ ํ๋ฐํ๊ฒ ๊ฐ๋ฐ๋ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๋ฌํ ๊ธฐ์ ์ค ์ผ๋ถ๋ Core CLR์์ ์ง์๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ๋ค ์ ์๋ก์ด ์ฑ ๊ฐ๋ฐ์ ๊ธฐ์ด๊ฐ ๋๋ ์ค์ ๊ธฐ์ ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด ํญ๋ชฉ์ ์ก์ธ์คํ ์ ์๋ .NET ๋ฒ์ ์ด ํ์ํฉ๋๋ค. ํ์ฌ ์ฐ๋ฆฌ์ ์์น๋ ๊ด๋ฆฌ ๊ฐ๋ฅํฉ๋๋ค. "๋ ๊ฑฐ์"(์ค์ ๋ก๋ ํ๋ซํผ๋ณ) ์ข ์์ฑ์ net461 ๊ณ ์ ์ ๊ตฌ์ฑ ์์๋ก ๋ถ๋ฆฌํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํน์ ๋น์ฆ๋์ค ์ฑ์ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ netfx์ ์ข ์๋๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ์ข ์๋์ง ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์๋ก์ด ์ฑ์์ ๋๋ฌธ ๋ฏธ๋๋ฅผ ์์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด 0 %๋ผ๊ณ ์์ํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
Interop์ด ์ค์ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ชจ๋ ์์ ์ csproj ๋ฐ SDK์์ ์ํํ์ต๋๋ค. ASP.NET Core๋ interop์ ์ํ๋ ์ด์ ์ธ ๋น๊ทผ์ ๋๋ค. ๊ฐ์ ธ๊ฐ๋ ๊ฑด ๋ง์ด ์ ๋๋ค๊ณ ์๊ฐํด์. ๊ทธ๋ฆฌ๊ณ ์๋์, "ํ ๋ฐฉํฅ์ผ๋ก ์ฐธ์กฐ๋ฅผ ๋ก๋ํ ์ ์์ง๋ง ๋ฐํ์์ ์คํจํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค"๋ ์ํธ ์ด์ฉ์ฑ์ด ์๋๋๋ค.
@gulbanana ASP.NET Core๋ฅผ ์ฌ์ฉํ๋ ์์คํ ๋ถ๋ถ์ด .NET Framework์ ๋์ผํ ํ๋ก์ธ์ค์ ์์ด์ผ ํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น? ๋ชฉ๋ก(Visual Studio ์ฐ๊ฒฐ, ์ฌ๋ฌด์ค ์ํธ ์ด์ฉ์ฑ ๋ฑ)์ ๊ฐ์ฌํ์ง๋ง ์ค๋๋ ๊ทธ ๋ชจ๋ ์์น์ ASP.NET Core๊ฐ ํฌํจ๋์ด ์์ต๋๊น(์ ์ค๋ช ์์ ์ข์ ๊ทธ๋ฆผ์ด ์์)?
๋ํ ASP.NET Core๊ฐ ์กด์ฌํ๊ธฐ ์ ์ ๋ฌด์์ ์ฌ์ฉํ๊ณ ์์์ต๋๊น? ์๋๋ฉด ์ด๊ฒ์ ASP.NET์ ์ฌ์ฉํ์ง ์๊ณ .NET Framework์ ASP.NET Core์ 5-10๋ ์ ๊ฑธ์๋ ์๋ก์ด ์๋์ ๋๊น? ์นดํ๋ ๋ดค์ด?
์ข์ต๋๋ค. ์ฌ๊ธฐ์ ๋ช ๊ฐ์ง ๊ตฌ์ฒด์ ์ธ ์ฌ๋ก ์ฐ๊ตฌ๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ ์ธํฐํ์ด์ค ๊ตฌํ์ RPC๋ก ์ ํํ๋ ๊ฒ์ ํฐ ๋ฒ๊ฑฐ๋ก์์ฒ๋ผ ๋ณด์ด์ง๋ง ๋ณ๋์ ํ๋ก์ธ์ค์์ ๋ฐ์คํฌํฑ ๊ด๋ จ ์์ ์ ์คํํ์ฌ ์ด๋ฌํ ์์ ์ค ๋ง์ ๋ถ๋ถ์ ์ฒ๋ฆฌ ํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค. ์ฝ์ด์ ๋ฐ์คํฌํฑ CLR ๊ฐ์ ์๊ฒฉ ๋๋ ์ด์ง ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ๋ ์๋๋๋ค.
Single Sign On์ ์ํด Windows ๋ก๊ทธ์ธ ์๊ฒฉ ์ฆ๋ช ์ IIS๋ก ์ ๋ฌํ๋ ๋ธ๋ผ์ฐ์ ์ ์์กดํ๋ ์ฑ์ด ์์ผ๋ฉฐ, IIS๋ ์ด๋ฅผ ASP.NET Core ์น ์ฌ์ดํธ๋ก ์ ๋ฌํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ธ์ฆ ํ๋ก์ธ์ค์ ์ผ๋ถ๋ ์ฌ์ฉ์๊ฐ ํน์ AD ๊ทธ๋ฃน์ ์๋์ง ์ฌ๋ถ์ ๊ฐ์ ์ ๋ณด๋ฅผ ์กฐํํ๋ ๊ฒ์ ๋๋ค. "windows support pack"๊ณผ ์ด๊ฒ์ด ์ด์ ๊ฐ์ ๊ฒ์ ๋ค๋ฃจ๊ธฐ ์ํ ๊ฒ์ธ์ง ์ฌ๋ถ์ ๋ํด ๋ ๋ฃ๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ์ธ๋ค์ผ ๋ฐ ๊ธฐ๋ณธ ์ด๋ฏธ์ง ํธ์ง(ํ์ , ์ํฐ๋งํฌ ์ค๋ฒ๋ ์ด)์ ์์ฑํ๋ ์น์ฑ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง์ ๋๋ถ๋ถ์ ๊ณต๋ฃก ์๋๋ก ๊ฑฐ์ฌ๋ฌ ์ฌ๋ผ๊ฐ์ TIFF์ ๊ฐ์ ๊ฒ์ด ์์ต๋๋ค. ํน์ ๋ถ๋์ฐ ๋ชฉ๋ก ๋ฐ ํ ์ง ๊ด๋ฆฌ์ ๊ด๋ จํ์ฌ ์ ๋ถ ๋ถ์์์ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ์์ ASP.NET MVC์์ผ๋ฉฐ MVC 2, 4, 5 ๋ฐ ์ด์ Core๋ฅผ ํตํด ์ ๊ทธ๋ ์ด๋/์ฌ์์ฑ๋์์ต๋๋ค.
์ด๊ฒ์ ๋ฐ๋๋ก netfx์ AN-C๋ฅผ ๋ด์ฅํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ๋ค์ํ RAD ์๋๋ฆฌ์ค์ ๋ํด 'ํ ํ๋ฆฟ'์ ์คํํ๋ ์ฝ๋ ์์ฑ์ ์ํ Visual Studio ํ์ฅ์ด ์์ต๋๋ค. ์ด๋ฌํ ํ ํ๋ฆฟ ์ค ์ผ๋ถ๋ ์น ๊ฐ๋ฐ์ ์ํด ์์ฑ๋์์ผ๋ฉฐ ๋์์ธ ํ์์ AN-C ์ ํ์ ์ฐธ์กฐํฉ๋๋ค(์ ์ฒ๋ฆฌ๊ธฐ/๋ฐํ์ T4๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋จ).
์ด๊ฒ์ ์ ๋ง in-proc์ด์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋๊ฐ ๋ณด์์ ๋งค์ฐ ๋ฏผ๊ฐํ ๋ผ์ด์ ์ค ์๋๋ฆฌ์ค๊ฐ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฝ๋๊ฐ ์คํ๋๋ ํ๊ฒฝ๊ณผ ๊ด๋ จํ์ฌ ๋ผ์ด์ ์ค ํ์ผ์ ํด๋ ํ๊ณ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์น ์ฑ๊ณผ ๋ฐ์คํฌํฑ ์ฑ์ ๋ฐฑ์๋์์ ์ฌ์ฉ๋๋ ๊ณตํต ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๊ฒฐ๊ตญ .NET Core๋ ์ด ํญ๋ชฉ์ ์ด์ํ ์ ์์ ๋งํผ ์ถฉ๋ถํ ์ํธํ ์ง์์ ๋ฐ์ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ง ์ค๋๋ ์๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ํ ๊ฐ์ง ์ต์ ์ Fortinet/ePass2003 PKI ํ ํฐ ์ง์์ ๋๋ค. ์ฌ๊ธฐ์ ๋ฏธ๋ค์จ์ด๋ Core๋ฅผ ํ์คํ ์ง์ํ์ง ์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ ํ ์๊ฐ๋ ์์).
Oracle ๋ฐฑ์๋์ ํจ๊ป Entity Framework 6์ ์ฌ์ฉํ๋ ๊ฒ์ in-proc์ผ ํ์ ๋ ์์ง๋ง ์ฐ๋ฆฌ ์น์ฌ์ดํธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ธฐ ์ํด ์ถ๊ฐ ๊ณ์ธต์ ์ถ๊ฐํ๋ ๊ฒ์ ํ์คํ ๋ถํธํ ๊ฒ์ ๋๋ค!
์ฐ๋ฆฌ๋ ์์ฆ ๋ชจ๋ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์์ Microsoft.Extensions.Logging์ ์ฌ์ฉํฉ๋๋ค. ๊ตฌํ์ด ๊ทธ๋ ์ง ์๋๋ผ๋ ๋ก๊น ์ถ์ํ ์์ฒด๋ in-proc์ด์ด์ผ ํฉ๋๋ค.
ASP.NET Core ์ด์ ์ ์ฌ์ฉํ๋ ๊ฒ - ASP.NET MVC! ์ฐ๋ฆฌ๋ ๋์๊ฐ ์ ์์ง๋ง ๋ชจ๋ ํํ์ ํฌ๊ธฐํ๋ ๊ฒ์ ํฐ ๋ถ๋๋ฌ์ด ์ผ์ ๋๋ค.
์ํคํ ํธ๋ก์ "ASP.NET Core๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ"์ด ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ดํ์๋ ์ง์๋๋์ง ์ฌ๋ถ๋ฅผ ์กฐ์ฌํ์ง ์์ ๊ฒ์ ๋ด ์ค์์ ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฑฐ๋ผ๊ณ ์์งํ ์๊ฐํด๋ณธ ์ ์ด ์์ด์. 2018๋ ์ด์๋ Office ๋ฌธ์๋ฅผ ๋ก๋ํ ์ ์๋ ์ง์ ๋ฒ์ ์ด ์์ ์๋ ์๋ค๋ ๊ฐ๋ฅ์ฑ์ ์์ํ์ง ๋ชปํ์ต๋๋ค...
๋ด๊ฐ ๋ช ํํ์ง ์์ ํ ๊ฐ์ง๋ ์ธ๊ธํ ๊ฐ ์๋๋ฆฌ์ค์์ ASP.NET Core๊ฐ ์ฌ์ฉ๋๋ ์์น์ ๋๋ค.
NTLM/AD
์ด๊ฒ์ ์๋ฏธ๊ฐ ์์ผ๋ฉฐ ๋งคํ์ผ๋ก ๋๋๋ API๋ฅผ ์ดํดํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ ๋จ์ง System.DirectoryServices์ ๋๊น? ๊ทธ ์์ ์ ํ๋ฐํ ์งํ ์ค์ ๋๋ค(corefx์์ ๋ณผ ์ ์์).
์์คํ .๋๋ฉด
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ํด๊ฒฐํ๊ณ ์ ํ๋ ์๋ ค์ง ๊ฒฉ์ฐจ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์์ง ๋ต๋ณ์ด ์์ผ๋ฉฐ ImageSharp๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ ์์ฑํ๋ ๊ฒ์ ์ ์ํ์ง ์์ต๋๋ค(์ ํ ์ฌํญ์ด์ง๋ง). ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํฉ๋๋ค.
VSIX
ASP.NET Core๋ ์ด๋์ ์์ต๋๊น? Visual Studio ํ์ฅ ๋ด์์ ์คํ ์ค์ ๋๊น?
์ํธํ
์ด๊ฒ์ ๋ํ corefx ๋ฌธ์ ๊ฐ ์์ต๋๊น? ์ ๊ทธ๋ฅ ์ด์๋์ง ์์๊น์? .NET Framework์ ๋ฌ๋ฆฌ .NET Core ๋ฆด๋ฆฌ์ค๋ OS์์ ๋ถ๋ฆฌ๋๋ฏ๋ก ์ค์ํ๋ค๊ณ ํ๋จ๋๋ ๊ฒฝ์ฐ ์กฐ๋ง๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. (๋ฉด์ฑ ์กฐํญ: ์ ๋ ์ด ํฌ๋ก์ค ํ๋ซํผ์ ์ํํ๋ ๊ฒ์ ์๋ฏธ๋ฅผ ์ดํดํ๊ธฐ ์ํด ์ํธํ์ ๋ํด ์ถฉ๋ถํ ์์ง ๋ชปํฉ๋๋ค).
์ค๋ผํด ADO.NET
ASP.NET Core๋ ์ด๋์ ์์ต๋๊น? Oracle ๊ณต๊ธ์๊ฐ ์์ง .NET Core๋ก ์ด์๋์ง ์์๋ค๋ ๋ง์์ ๋๊น?
์ฐ๋ฆฌ๋ ์์ฆ ๋ชจ๋ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์์ Microsoft.Extensions.Logging์ ์ฌ์ฉํฉ๋๋ค. ๊ตฌํ์ด ๊ทธ๋ ์ง ์๋๋ผ๋ ๋ก๊น ์ถ์ํ ์์ฒด๋ in-proc์ด์ด์ผ ํฉ๋๋ค.
Microsoft.Extensions.*๋ netstandard๋ก ์ ์ง๋๋ฏ๋ก ์ฌ๊ธฐ์์ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
๋ฐํ/ํ ๋ก ์ด ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
aspnet/.net ํต์ฌ ํ์ด ํ๋ ์ผ์ ์ข์ํ์ง๋ง @jhurdlow์ ๊ฐ์ ๋๋ ค์์ ๊ฐ๊ณ ์์ต๋๋ค.
MEL์ ๋ํด ๋ฃ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๋ค๋ฅธ ์ ์์-
NTLM
๋ค์์ ๋๋ถ๋ถ์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ ํด๋์ค์
๋๋ค. ์ด๋ก ์ ์ผ๋ก ์ด์ ๋ ์ ์๊ธฐ๋ฅผ ํฌ๋งํ์ง๋ง ์์ง ์ด์๋์ง ์์ API๋ฅผ ์์ฃผ ์ฌ์ํ๊ฒ ์ฌ์ฉํฉ๋๋ค.
https://gist.github.com/gulbanana/70fe791735ee884169e2eee354a32ad2
VSIX
asp.net ์ฝ์ด์ ํน์ ํ codegen ํ ํ๋ฆฟ์ ์ก์ /๋ผ์ฐํ ์์คํ (IFileProvider ๋ฑ)์ ์ฌ์ฉํ์ฌ ์ปจํธ๋กค๋ฌ์ ๋ทฐ ๋ฑ์ ๋ฐ๊ฒฌํ๊ณ ์ค์บํด๋ฉ์ ์ฑ์๋๋ค. ์ฐ๋ฆฌ๋ Visual Studio ๋ด๋ถ์์ ASP.NET ์นํธ์คํธ๋ฅผ ํธ์คํ ํ์ง ์๊ณ ๋จ์ง ASP.NET ์์ฉ ํ๋ก๊ทธ๋จ์ ์ดํด๋ด ๋๋ค.
์ํธํ
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ด์ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์์ง ์ด์๋์ง ์์์ต๋๋ค. ์ ์ ๊ฐ ์๋ฅผ ๋ค์ด asp.net-core-on-netfx์ ๋ํ ์ง์์ ์ค๋จํ ์ฅ๊ธฐ ๊ณํ์ ๋ฐํ์ ์ธ์ ๊ฐ๋ฅํ ์ง ๋ ผ์ํ๋ ๊ฒ์ด๋ผ๋ฉด ์ด ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋ค๋ฅด๊ฒ ๋ณด์ผ ๊ฒ์ ๋๋ค!
์ ํ
์, Oracle ํฌํธ๊ฐ ๋ฐ์ํ๋ฉด ํด๊ฒฐ๋ ๊ฒ์ ๋๋ค(๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์๋ค๊ณ ๊ฐ์ ).
๋ ํ๋์ ์ฌ์ฉ ์ฌ๋ก:
์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์
์ค ํ๋๋ Access ์ ํ๋ฆฌ์ผ์ด์
์์ ๋ ๊ฑฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ํ์ฌ ํด๋น ๊ฐ์ ธ์ค๊ธฐ ํ๋ก์ธ์ค๋ asp.net ํต์ฌ ์น ์ฌ์ดํธ์ ์๋ฒ์์ ์คํ๋ฉ๋๋ค. COM interop์ ์ฌ์ฉํ์ฌ accdb/jet ์์ง ์ฌ๋ฐฐํฌ ๊ฐ๋ฅ ํจํค์ง์์ acedao.dll
๋ฅผ ๋ก๋ํ๊ณ ํ
์ด๋ธ์ ์ํฐํฐ ์ถ์ํ๋ก ์ฝ์ ๋ค์ ๋ ํ๋์ ์ธ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํฉ๋๋ค.
์ด๊ฒ์ '์ ์ฐจ๋ฅผ ๋ฒ์ด๋ ์ ์์ง๋ง ์ ๊ทธ๋์ผ ํฉ๋๊น'์ ๋ ๋ค๋ฅธ ๊ฒฝ์ฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ณธ์ง์ ์ผ๋ก AN-C๋ฅผ WebAPI 2 ์น์ฌ์ดํธ๋ ๊ทธ ๋ฐ์ ๋ฌด์ธ๊ฐ์ ๋ํ ํ๋ก ํธ์๋๋ก ์ฌ์ฉํ๊ณ ์์ ๊ฒ์ ๋๋ค. ์ด ๊ฒฝ์ฐ ๊ณผ๊ฑฐ์ ๋ํ ์ข ์์ฑ์ผ๋ก ๋์๊ฐ์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋๋ถ๋ถ์ .NET Core๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌผ๊ฑด์ ์ฎ๊ธฐ๋ ๋์ ๊ฐ๋ฅํ ํ ๋ง์ ์ํธ ์ด์ฉ์ฑ์ ์ํฉ๋๋ค...
WTF!!! ๐จ
ASP.NET Core 2๊ฐ ๋ ์ด์ Full .NET Framework 4.x๋ฅผ ๋์์ผ๋ก ํ์ง ์๋๋ค๋ ๋ง์์
๋๊น!!!
์ฐ๋ฆฌ๋ 1๊ฐ์ ์ ์ ASP.NET Core 1.1๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์ผ๋ถ Full .NET Lib๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ .NET 4.6์ ๋์์ผ๋ก ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ASP.NET Core 2๋ก ์
๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํ์ต๋๋ค. ํ์ง๋ง ์ด ๊ฒ์๋ฌผ์์ ๋ค์ ๊ฒ์... ๐
์ด๋ด, ์ฐ๋ฆฌ๋ ์ด์ (DI, ๋ณํฉ๋ API ๋ฐ MVC, ... ๊ฐ๋ ฅํ) ๋๋ฌธ์ ASP.NET Core๋ฅผ ์ ํํ์ผ๋ฏ๋ก ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ ๊ณตํ์ญ์์ค.
์ฐ๋ฆฌ๋ 1๊ฐ์ ์ ์ ASP.NET Core 1.1๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ์ผ๋ถ Full .NET Lib๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ .NET 4.6์ ๋์์ผ๋ก ํ์ต๋๋ค.
๊ทธ ๋์๊ด๋ค์ ๋ฌด์์ ํฉ๋๊น? @shanselman ์ ์ด๊ธฐ ํ์ https://github.com/aspnet/Home/issues/2022#issuecomment -299536123์ ์ฝ์ผ์ จ์ต๋๊น? .NET Core 2.0์์ ์ผ๋ถ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค(API ํ์ ์งํฉ ๋ด์ ์๋ค๊ณ ๊ฐ์ ).
๊ทธ ๋์๊ด๋ค์ ๋ฌด์์ ํฉ๋๊น? @shanselman ์ ์ด๊ธฐ ๋ต์ฅ #2022(๋๊ธ) ์ ๋ณด์ จ๋์? .NET Core 2.0์์ ์ผ๋ถ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค(API ํ์ ์งํฉ ๋ด์ ์๋ค๊ณ ๊ฐ์ ).
@davidfowl ์, @shanselman ์ ์๊ฒฌ์ ์ฝ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ์ฌ์์ ๋ง๋ ์ผ๋ถ Lib๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ WCF๋ฅผ ์ฌ์ฉํ๊ณ , ๋ชจ๋ Lib๋ ์์ ์ ์ด๊ณ , .NET 3.5๋ฅผ ๋์์ผ๋ก ํ๋ฉฐ, ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋ง์ง ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ์ผ๋ฐ์ ์ธ ์ํฉ์ด ๋ ๊ฒ์ ๋๋ค. ์ง๊ธ๊น์ง .NET Core์ .NET Framework์ ์๋ ASP.NET Core ์ฌ์ฉ์์ ์์ ๋ํ ์ ๋ณด(์๊ฒฉ ์ธก์ ?)๊ฐ ์์ง๋์๋์ง ์๊ณ ์ถ์ต๋๋ค.
๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์ ๋ํด ๊ฐ์ ์ ์ด์ง ์์ง๋ง ๋ช ๊ฐ์ง ๊ด์ฐฐ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ๋ชจ๋ ์ํฉ์ MS๊ฐ ์๋ฌด๋ฐ ๊ฒฝ๊ณ ์์ด ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ ๋ค๋ฅธ ์ข์ ์์ ๋๋ค. ์ผ๋ถ ์ฌ๋๋ค์ด ์ฒดํฌ์ธ์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ ์ด ์ค๋ ๋๊ฐ ์ฌ๊ธฐ์ ์์ต๋๋ค.
๋ด๊ฐ ํ๋ฆด ์๋ ์์ง๋ง .NET Core๊ฐ ์ด์ DNF์ ๊ด๋ฆฌ ํ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๊ฒฐ์ ์ ๋ ์ด์ ์์ ํ MS ๋ด๋ถ๊ฐ ์๋๋๋ค.
LDAP/AD ํญ๋ชฉ์ ๋ด๊ฐ ์ง๊ธ net462๋ฅผ ๊ณ์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ์ ๋๋ค. ์์ ํ BAM -> NetCore๋ก ๊ฐ๊ณ ์ถ์ง๋ง ์ด๊ฒ์ด ๋จ์ ์ ๋๋ค.
๋ํ ๋ด ํ๋ก์ ํธ ์ค ํ๋์์ XML-RPC.net์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฝ๊ฐ์ ์ง์งํ Reflection.Emit์ ์ฌ์ฉํ๋๋ฐ, NetCore 2๊ฐ ๊ทธ๊ฒ์ ์์ ํ ์ง์ํ ์ง๋ ํ์คํ์ง ์์ต๋๋ค. ๊ทธ๋๋ ํ์คํ ์์๋ณด๋ ค๋ฉด ์ด์์ฑ ๋ถ์๊ธฐ๋ฅผ ์ฌ์ฉํด ๋ด์ผ ํฉ๋๋ค.
.NET์ ๋ฏธ๋์ ์ํฅ์ ๋ฏธ์น๋ ์ด์ ๊ฐ์ ์ค์ํ ๊ฒฐ์ ์ด ํฌ๋ช ์ฑ ์์ด ๋ง์ง๋ง ์๊ฐ์ ์ผ๋ง๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ผ์ด๋ ์ ์๋์ง์ ๋ํด ์ด ๋ชจ๋ ์ํฉ์ด ์ฝ๊ฐ ๋๋ด์ค๋ฝ์ต๋๋ค. .NET Standard 2.0์ด ํธํ์ฑ์ ์ด์ ์ ๋ง์ถ๊ณ .NET๊ณผ์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๋ ๋ฆด๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ด๋ผ๋ ๋ฉ์์ง(๋ด ์ดํด์์)์ ํจ๊ป ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ ๊ธฐ์กด .NET ์์ฝ์์คํ ์ ํ๋งคํ๋ ๋ฐ ๋ง์ ์๋์ง๊ฐ ํฌ์๋์์ต๋๋ค. v4.x๋ ๋ง์นจ๋ด ์ํ๊ณ๊ฐ ์์งํ ์ ์๋ ๊ฒฌ๊ณ ํ๊ณ ์์ ์ ์ธ .NET ํ๋ซํผ์ ์์ฑํฉ๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก .NET Standard 2.0์ด ์ถ์๋ ๋๊น์ง .NET Core๊ฐ ์ค์ ๋ก ๋์ฝํ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ง ์์ต๋๋ค. .NET Standard 2.0์ด ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ "์ฝ์๋ ์์ ์ ์ธ ๋ "์ด ๋ ๊ฒ์ผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ ".NET Standard 2.0"์ ์ ํํ ๋ฌด์์ ๋ค๋ฃจ๊ณ ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ .NET Core ์ ์ฉ์ผ๋ก ๊ณํ๋์ด ์๋์ง๋ฅผ ์๋ฏธํฉ๋๋ค.
์ฌ์ ์ ๊ณต์ ๋ฐํ, ํผ๋๋ฐฑ ์์ฒญ, ํฌํ ๋๋ ๊ทผ๊ฑฐ๊ฐ ์ ๊ณต๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ด ๊ฒฐ์ ์ ์ปค๋ฎค๋ํฐ ์ฐธ์ฌ ๋๋ ๊ธฐ์กด .NET ์ํ๊ณ์ ๋ํ ์ํฅ ๋ถ์ ์์ด ์ํ๋ ๊ฒ์ผ๋ก "ํ์"๋๋ฉฐ ๋ง์ ์ฌ๋๋ค์ ์ํด ์ ์ฒด ์ํ๊ณ๋ฅผ ํํธํํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์์ผ๋ก ๋ช ๋ . .NET v4.x ์ง์์ ์ ๊ฑฐํ๋ฉด ๋ง์ ๊ธฐ์ ์ด ๊ธฐ์กด ์ฝ๋ ๊ธฐ๋ฐ์ ASP.NET์ ์๋ก์ด ๊ฐ๋ฐ ๋ชจ๋ธ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ์ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด .NET Core๋ก ๋ ๋นจ๋ฆฌ ์ด๋ํ๋๋ก ๊ถ์ฅํ์ง ์์ผ๋ฉฐ, ์๋์กฐ์ฐจ ํ์ง ๋ชปํ๊ฒ ํ์ฌ .NET ์์ฝ์์คํ ์ ๋๋ก ๋ถ๋ฆฌํ๋ ๋๊ท๋ชจ ์กฐ๊ฐํ๋ฅผ ์ ๋ฐํฉ๋๋ค. ์ด๊ฒ์ด ๊ฑฐ์ 10๋ ๋์ ์ฌ์ ํ ๋ณต๊ตฌํ ์ ์๋ ๋จํธํ๋ก ์ธํด ๋์ดํฌ ์ ์๋ ํผํด๋ฅผ ์ ์ Python 2/3๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ ์ ์์ต๋๋ค.
๋๋ถ๋ถ์ ๊ธฐ์กด .NET ์ฝ๋ ๊ธฐ๋ฐ์ .NET Core 1.1์ด .NET v4.x๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ๊ฒฐ์ ์ด ๋ด๋ ค์ก๋ค๋ ์ฌ์ค์ ๋ชจ๋ฅด๋ "์ํ ๋ฌผ์ง" .NET ๊ฐ๋ฐ์์ ์ํด ๋ฐฐํ์์ ๊ฐ๋ฐ ์ค์ธ ๋ธ๋ผ์ดํ๋์ ๋๋ค. .NET Standard 2.0์ ๋ฉ์์ง์ ํฅ์๋ ํธํ์ฑ์ ์ฝ์ํ์ต๋๋ค. ์ด ๊ฒฐ์ ์ ์์๊ณผ ์ํฅ์ด ๋ง์นจ๋ด ์ง์ ๋์ฐฉํ๋ฉด ์์ฒญ๋ ๋ฐ๋ฐ์ด ์์๋ฉ๋๋ค. ์กฐ์ง ๋ด์์ ๋ด๋ถ์ ์ผ๋ก .NET Core ์ฑํ์ ํ๋งคํด ์จ ๋ง์ ๊ฐ๋ฐ์๋ ๋ง ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ํจ๊ณผ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ ๊ฐ์ ๋๋ ๊ฒ์ ๋๋ค(์ด๋ค ์ด์ ๋ก๋ .NET Core๋ก ์์ ํ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ๊ฒฝ์ฐ). ) ํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ์น์ธํ๋๋ก ์กฐ์ง์ ์ดํด ๊ด๊ณ์๋ฅผ ์ค๋ํ๋ ๊ธฐ๋ ๋น์ ์ธ ๊ฒฐ์ ์ ์ฑ๊ณตํ ์งํ ์ง๋ฉดํด์ผ ํ๋ ๊ฐํนํ ํ์ค์ ๋๋ค.
๋๋ถ๋ถ์ ์กฐ์ง์ .NET v4.x์ ๋จผ์ ๋ฐฐํฌํ๋ ค๋ ์ฝ๋ ๊ธฐ๋ฐ์ "๋ณ๋ ฌ๋ก" ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋์ ๊ธฐ์กด ์์คํ ์ ์ง์์ ์ผ๋ก ๋ฐฐํฌํด์ผ ํ๋ ๊ธฐ์กด ์ฝ๋ ๊ธฐ๋ฐ์ "์งํ ์ค"์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํฉ๋๋ค. ๋ชจ๋ ๊ฒ์ด ์์ ํ๋๊ณ ๋ชจ๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ฉด ๊ฑฐ๊ธฐ์์ .NET Core๋ก์ ์ ์ฒด ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณํํ ์ ์์ต๋๋ค.
์ด ๊ฒฐ์ ์ ๋ํ IMO๊ฐ .NET์ด ์กฐ์ง์ด ์์กดํ ์ ์๋ ์์ ์ ์ธ ํ๋ซํผ์ด๋ผ๋ ์ ๋ขฐ๋ฅผ ๊ฐ์๋จน์ ASP.NET์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋งฅ๋ฝ์์ ์ด๋ฃจ์ด์ง๋๋ค. ์ ๋ .NET Core์ ์๋ก์ด ๊ฐ๋ฐ ๋ชจ๋ธ์ ์ข์ํ์ง๋ง, ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฅ ํ์ํ ๊ฒ์ ๋๋จธ์ง ์ํ๊ณ๊ฐ ๋ฐ๋ผ์ก์ ์ ์๋ ์์ ์ ์ธ ํ๋ซํผ์ ๋๋ค. .NET Core๋ ์์ง ๋ฏธ์ฑ์ํ ๋๊ตฌ, ํธํ๋์ง ์๋ ์ข ์์ฑ, ๋ฐํ์ ๋ฌธ์ , ์ค๋๋ ๋ฌธ์ ๋ฑ์ผ๋ก ์ธํด ๋ถ์พํ ๊ณ๊ณก์ ์์ต๋๋ค. .NET์ด ์ฒ์ ๋ฆด๋ฆฌ์ค๋ ์ด๊ธฐ ์ดํ๋ก ์ด๋ ๊ฒ ๋ถ์์ ํ ๊ฒ์ ๋ณธ ์ ์ด ์์ต๋๋ค.
.NET ๊ฐ๋ฐ์๊ฐ ๋ ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง์ ๋ํ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ์คํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฆ, ๊ฒฌ๊ณ ํ๊ณ ์์ ์ ์ธ ์ธ๋ จ๋ ํ๋ซํผ์ ๋๊น, ์๋๋ฉด ์๋ก์ด ๊ธฐ๋ฅ์ ๋ ๋นจ๋ฆฌ ์ ๊ณตํ๋ "๋น ๋ฅด๊ฒ ์์ง์ด๋" ํ๋ซํผ์ ๋๊น? .NET v4.x๋ก ๊ธฐ๋ฅ์ ๋ฐฑํฌํ ํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๋๋ก ํ๋ ๋ฐ ํจ์ฌ ์ ์ ๋ ธ๋ ฅ์ด ํ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. .NET v4.x ๋๋ .NET Core์์ ์คํํ ์ ์๋ ๊ธฐ๊ฐ ์ง์.
์ด ๋ฐฐ๋ ํญํดํ์ต๋๊น ์๋๋ฉด ASP.NET Core 2.0์ ๊ทธ๋๋ก ์ ์งํ๋ ์ต์ ์ด ์์ต๋๊น? ์ฆ, .NET Standard 2.0์์ ๋ค๋ฃจ๋ ๋๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ถ์ํ์ ํจ๊ป ๋ค์ ASP.NET Core 3.0 ๋ฆด๋ฆฌ์ค์์๋ ๋ค์ ํ๋ซํผ์ด .NET Core ์ ์ฉ์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋ฐํํฉ๋๊น? ์ด๋ฅผ ํตํด ์กฐ์ง์ ๊ณ์ํด์ ASP.NET Core 2.0์ ์ฑํํ๊ณ ์ฑํํ ์ ์์ผ๋ฉฐ ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์์ ์ ์ด๊ณ ์ ์ง์๋๋ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ๋ผ์ก์ ์ ์์ผ๋ฉฐ .NET Core ์ ์ฉ ํ๋ซํผ/ ๊ธฐ๋ฅ์ด ์์๋ฉ๋๋ค.
.NET Core 2.0์์ ์ผ๋ถ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค(API ํ์ ์งํฉ ๋ด์ ์๋ค๊ณ ๊ฐ์ ).
์ด๊ฒ์ ๋ถํ์ค์ฑ์ ๋ณ์ต๋๋ค. ์์ ์ ํํ๊ณผ ์์คํ ์ ์ํ ๋ฐ ์์ ์ฑ์ ์ํ์ ๋น ๋จ๋ฆฌ๊ณ .NET Core๋ก์ ์ ์ฒด ๋ง์ด๊ทธ๋ ์ด์ ์ ์๋ํ๋ ค๋ ์ฌ๋์ ๊ฑฐ์ ์์ต๋๋ค. ์ ํํ ์ด๋ค ์ข ์์ฑ์ด ์คํ๋๊ณ ์คํ๋์ง ์์์ง์ ๋ํ ๋ถํ์ค์ฑ์ด ์กด์ฌํฉ๋๋ค. .NET Core๋ ๊ฐ๊น์ด ๋ฏธ๋์ ๋ ๋ง์ ์ฌ๋๋ค์ด .NET v4.x๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ์ด ๊ถ๊ทน์ ์ผ๋ก ์ด๋ป๊ฒ ์งํ๋ ์ง, ์ด ๊ฒฐ์ ์ด ์ ์ฒด .NET ์์ฝ์์คํ ์ ๋ฏธ์น ์ง์ ํ ์ํฅ์ด ๋ฌด์์ธ์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์ธ๋ถ ์ปค๋ฎค๋ํฐ์ ๊ฐ์ ์์ด ์ด์ ๊ฐ์ด ๊ด๋ฒ์ํ ์ํฅ์ ๋ฏธ์น๋ ์ค์ํ ๊ฒฐ์ ์ด ๋ฐ์ํ ์ ์๋ค๋ ์ฌ์ค์ ์ฐ๋ ค์ค๋ฝ์ต๋๋ค.
๋๋ ๋ํฌ๋ค์ด ๋น์ ์ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋ถ๊ธฐํ๋ ๋ฐ ์กฐ๊ธ ๋ ์ด์คํ์ผ๋ฉด ์ข๊ฒ ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค ๋ ๋ด ๊ด์ ์ ๊ฐ๋ฅํ ํ ๋ง์ ์ฌ๋๋ค์ด ๊ฐ๋ฅํ ํ ๋ง์ ์ฅ์์์ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ์
๋๋ค. ๋ชฉ์ด ์ํ์ง๋ง(Newtonsoft.Json์์ #if
์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ ๊ฒ์ํ๋ฉด 1300๊ฐ ์ด์์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์) "๊ทธ๋ฅ ์๋ํฉ๋๋ค"๋ ๊ฐ๋ ฅํ ํ๋งค ํฌ์ธํธ์
๋๋ค.
.NET ๊ฐ๋ฐ์๊ฐ ๋ ์ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง์ ๋ํ ์ค๋ฌธ์กฐ์ฌ๋ฅผ ์คํํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ฆ, ๊ฒฌ๊ณ ํ๊ณ ์์ ์ ์ธ ์ธ๋ จ๋ ํ๋ซํผ์ ๋๊น, ์๋๋ฉด ์๋ก์ด ๊ธฐ๋ฅ์ ๋ ๋นจ๋ฆฌ ์ ๊ณตํ๋ "๋น ๋ฅด๊ฒ ์์ง์ด๋" ํ๋ซํผ์ ๋๊น? .NET v4.x๋ก ๊ธฐ๋ฅ์ ๋ฐฑํฌํ ํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๋๋ก ํ๋ ๋ฐ ํจ์ฌ ์ ์ ๋ ธ๋ ฅ์ด ํ์ํ๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. .NET v4.x ๋๋ .NET Core์์ ์คํํ ์ ์๋ ๊ธฐ๊ฐ ์ง์.
์ง์ ํ ์ง๋ฌธ, ASP.NET Core 1.x๋ ํ์ฌ .NET Framework ๋ฐ .NET Core๋ฅผ ์ง์ํฉ๋๋ค. ์์์ ์ธ๊ธํ ์์ ์ ์ธ ํ๋ซํผ์ด๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฒ๊ทธ ์์ ๊ณผ ๋ ๋ฐํ์ ๋ชจ๋ ์ง์ํ์ง๋ง ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ป์ง๋ ๋ชปํ์ต๋๋ค. ๊ทธ๊ฒ์ผ๋ก ์ถฉ๋ถํ ๊น์?
ASP.NET Core ๋ฐ .NET Core๋ ํ์ฌ .NET์ฉ์ผ๋ก ๋น ๋ฅด๊ฒ ์์ง์ด๋ ๊ธฐ๋ฅ์ด ํ๋ถํ ํ๋ซํผ์ ๋๋ค. ์ด์ ์ฒด์ ์ ์ข ์๋์ง ์๊ณ ์ ์ํ๊ฒ ํ์ ํ๊ณ ๋ ๋น ๋ฅด๊ฒ ์ถ์ํ๋ ๋ฐ ํ์ํ ๋ฏผ์ฒฉ์ฑ์ ์ ๊ณตํ๋ .NET ๋ฒ์ ์ ๋๋ค.
์ด ๋ฐฐ๋ ํญํดํ์ต๋๊น ์๋๋ฉด ASP.NET Core 2.0์ ๊ทธ๋๋ก ์ ์งํ๋ ์ต์ ์ด ์์ต๋๊น? ์ฆ, .NET Standard 2.0์์ ๋ค๋ฃจ๋ ๋๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ์ถ์ํ์ ํจ๊ป ๋ค์ ASP.NET Core 3.0 ๋ฆด๋ฆฌ์ค์์๋ ๋ค์ ํ๋ซํผ์ด .NET Core ์ ์ฉ์ด ๋ ๊ฒ์ด๋ผ๊ณ ๋ฐํํฉ๋๊น? ์ด๋ฅผ ํตํด ์กฐ์ง์ ๊ณ์ํด์ ASP.NET Core 2.0์ ์ฑํํ๊ณ ์ฑํํ ์ ์์ผ๋ฉฐ ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์์ ์ ์ด๊ณ ์ ์ง์๋๋ ๋๊ตฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐ๋ผ์ก์ ์ ์์ผ๋ฉฐ .NET Core ์ ์ฉ ํ๋ซํผ/ ๊ธฐ๋ฅ์ด ์์๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ํญ์ ํผ๋๋ฐฑ์ ์ด๋ ค ์์ผ๋ฉฐ ASP.NET Core 2.0์ ์์ง ์ถ์๋์ง ์์์ต๋๋ค. ASP.NET Core 3.0์ด .NET Framework๋ฅผ ์ญ์ ํ ๋ฆด๋ฆฌ์ค๋ผ๋ฉด ์ํฉ์ด ๋ ๋์์ง๊น์? @gulbanana ๋ฐ @ikourfaln ์ โโํผ๋๋ฐฑ ์ค ์ผ๋ถ๋ฅผ ๋ณด๋ฉด ์ด์๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ธฐ์ ์ด ์์ผ๋ฏ๋ก .NET Core์์ ์ ๋ ์๋ํ์ง ์์ต๋๋ค. .NET Framework๋ฅผ ๊ฑฐ์ ์์ํ ์ง์ํ๋ค๋ ์๋ฏธ๊ฐ ์๋๋๊น? 1๋ ๋ค์๋ ๋๊ฐ์ ํ ๋ก ์ ํ์ง ์์๊น์? ๊ทธ๋์ฏค์ด๋ฉด .NET Core๋ฅผ ์ง์ํ๋ ์ํ๊ณ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ์ปค์ ธ์ ์ํฅ์ด ๋ํ ๊น์? ์ ๋ฐ์ดํธ๋์ง ์๋(๋๋ ์์ค ์ฝ๋๊ฐ ์์ค๋) ์ํฐํ๋ผ์ด์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ป์ต๋๊น? 1๋ ์์ ๋ฐ๋๊น์?
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค ๋ ๋ด ๊ด์ ์ ๊ฐ๋ฅํ ํ ๋ง์ ์ฌ๋๋ค์ด ๊ฐ๋ฅํ ํ ๋ง์ ์ฅ์์์ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. ๋ชฉ์ด ์ํ์ง๋ง(Newtonsoft.Json์์ #if ์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ ๊ฒ์ํ๋ฉด 1300๊ฐ ์ด์์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์) "๊ทธ๋ฅ ์๋ํฉ๋๋ค"๋ ๊ฐ๋ ฅํ ํ๋งค ํฌ์ธํธ์ ๋๋ค.
@JamesNK ์ ๋ํ ๊ณต๊ฒฉ์ ์์ง๋ง JSON.NET์ JSON ํ์์ด๋ฉฐ ๋๋ถ๋ถ ๋จ์ผ ํจํค์ง์ ๋๋ค(๋ช ๊ฐ์ง ๋ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค). ASP.NET Core์๋ 200๊ฐ ์ด์์ ํจํค์ง๊ฐ ์์ต๋๋ค.
์ค๋ก์ง๋ง ์ ๋ ์๋ฅด๋ฐ์ดํธ๋ฅผ ํ๊ณ ์๋ 1์ธ์ ๋๋ค. ๋น์ ์ ๋ฌธ์ ๋ ๋ ์ด๋ ต์ง๋ง ๊ธฐํ๊ธ์์ ์ผ๋ก ๋ ๋ง์ ์์์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ์ฝ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง ์์กด์ฑ์ ์ดํด๋ณธ ํ์ ์ด๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๋ ํ์ ์ด ํจ์ฌ ๋ํฉ๋๋ค.
๊ณํ๋๋ก๋ผ๋ฉด System.DirectoryServices
netstandard
/ netcoreapp
๋ก ์ฑ์ ์ด์ํ ์ ์์ต๋๋ค( CoreFX ๋ฌธ์ #2089 here ). ๋ฐ๋ผ์ ASP.NET Core 1.x๋ก ์ด์ํ ์ ์์ง๋ง 2.0์ผ๋ก ์ด๋ํ ์๋ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ดํด๋ณด์ญ์์ค. Opserver, Stack Overflow ์์ฒด, ๋ด๋ถ ์์ฉ ํ๋ก๊ทธ๋จ...์ด ์์ ์์ 2.0์ด ์ถ์๋ ์์ ์ด๋ฏ๋ก ์ค๋น๋ ๊ฒ์ ์์ต๋๋ค. ์ด๋ฒ ์ฃผ ์คํ ๋์
์ ๋ฐ๋ฅด๋ฉด DirectoryServices์ ๊ฐ์ ์ค์ํ ์ฌํญ์ 2.x ์ดํ ๋ฆด๋ฆฌ์ค์์ ๊ณ์ ์ด์ด์ง ๊ฒ์
๋๋ค.
๊ทธ๋์ 1.0๊ณผ 2.0 ์ฌ์ด์ ์ด์ฌ๋ฅผ ์ค๋นํ๋ ๊ณณ์์ ๊ฐ ์ ์๋ ๊ณณ์ผ๋ก ๋ฐ๋์์ต๋๋ค. ์, ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ASP.NET์ HTTP๋ฅผ ํตํด ํ์ํ ๋นํธ๋ฅผ ๋ ธ์ถํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ASP.NET์ ๊ทธ ์์ฒด๋ก ํ์ํ ๊ฒ์ด ์๋๋๋ค. ์ ๋ .NET์ ์น์ฉ์ผ๋ก ๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ซํผ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ ๋ฏ์ด. ํ๋ซํผ์ ์ฌ์ฉ์๊ฐ ์๊ตฌํ๋ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ค๋น๊ฐ ๋์ด ์์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ฅผ ํด๋น ํ๋ซํผ์ ๊ฐ์ ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ํต๊ณผ ์ฐจ๋จ์ ์ผ๊ธฐํฉ๋๋ค.
๊ฒฐ๋ก ์ AD ์ธ์ฆ(ํ๋ซํผ์ ํฐ ๋ถ๋ถ)์ด ํ์ํ ๊ฒฝ์ฐ 1.x ๋ผ์ธ์์ ํฌ๊ธฐํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ด ๋ด๊ฐ ์ฐ๋ฆฌ ์ฑ์ผ๋ก ํฅํ๋ ๊ณณ์ ๋๋ค...ํ์ง๋ง ์ด๊ฒ์ด ๋ฐฉํฅ์ด๋ผ๋ฉด ๋ชฉ์ ์ง์์ ํ์ํ ๋นํธ๋ฅผ ์ฌ์ฉํ ์ ์์ ๋๊น์ง ์ฌ๊ธฐ์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค.
System.DirectoryServices
, System.Drawing
์ ๊ฐ์ ์ค์ํ ํญ๋ชฉ๊ณผ ์ฌ๋๋ค์ด ํ์๋ก ํ๋ ๋ค๋ฅธ ์ฃผ์ ํญ๋ชฉ ์ด ASP.NET Core 2.0์ผ๋ก ์ค๋น๋ ์ ์๋ค๋ฉด ์ ์๊ฐ์ ๋ง์ด ๋ฐ๋๋๋ค. ๊ทธ๊ฒ๋ค์ด ๋์ค์ ๊ณ ๋ ค๋๋ค๋ฉด(ํ์ฌ ์ผ์ ์์ ์ ์ ์๋ฏ์ด) ๊ทธ๋ ๊ฒ ๋ ๋๊น์ง .NET Framework๋ฅผ ๊ณ์ ์ง์ํ์ญ์์ค.
๋น ๋ฅด๊ฒ ์์ง์ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ ์ข์ํ๋ค. ์ง๊ธ ํ๋ก๋์ ์์ ์ํ๋ฅผ ์คํ ์ค์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฒ์๋ถํฐ ์ฌ์ฉ ์ฌ๋ก์์ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ์๋ ์๋ฌด ๊ฒ๋ ์ค์ํ์ง ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๊ณ ๊ตฐ๋ถํฌํ๋ ํ ๊ฐ์ง๋ "์์ ๋ ํ๋ซํผ"๊ณผ "์๋ก์ด ๊ธฐ๋ฅ"์ ๋๋ค. ํํธ์ผ๋ก ์ฐ๋ฆฌ๋ ํ๋ซํผ์ด ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๊ณ ํธํ๋๊ธฐ๋ฅผ ์ํ์ง๋ง ๋ค๋ฅธ ํํธ์ผ๋ก๋ 2.x ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ 1.x์ ๋จธ๋ฌผ๊ธฐ๋ฅผ ์ํ์ง ์์ต๋๋ค. ASP.NET Core 2.x์๋ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ฌ๋๋ค์ ๋์ด๋ค์ด๋ ๋งค์ฐ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ์ด ์์ต๋๊น? ์๋๋ฉด 1.x์์๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค๋ ์ฌ์ค์ ๋๊น(์๋กญ๊ณ ๋น๋๊ธฐ ๋๋ฌธ์)?
ํ์๋ผ๋ฉด ๊ทธ ์ฌ๋๋ค์ด ์์ ์ฑ์ ์ ๊ฒฝ์ ์ฐ๋์? ๋๋ต์ด ์์ธ ๊ฒฝ์ฐ ASP.NET Core 1.x๊ฐ ์ถฉ๋ถํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ ๋ .NET์ ์น์ฉ์ผ๋ก๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ ํ๋ซํผ์ฉ์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ ๋ฏ์ด. ํ๋ซํผ์ ์ฌ์ฉ์๊ฐ ์๊ตฌํ๋ ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ์ค๋น๊ฐ ๋์ด ์์ง ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ฅผ ํด๋น ํ๋ซํผ์ ๊ฐ์ ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ํต๊ณผ ์ฐจ๋จ์ ์ผ๊ธฐํฉ๋๋ค.
๋์ํ์ง๋ง ASP.NET Core 2.x์์ .NET Framework ์ง์์ ์ค๋จํ๋ ๊ฒ๊ณผ ์ด๋ค ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํ์ญ๋๊น? ๋ ๋ง์ ์ข ์์ฑ์ด ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ํ๋ซํผ์ด ๋ฐ์ ํจ์ ๋ฐ๋ผ ๊ด๋ฒ์ํ ๋ฐํ์ ์ธํธ๊ฐ ์ด์ ์ ์ป์ ์ ์์ผ๋ฏ๋ก ์ด๋ค ์๋ฏธ์์๋ ๋ชจ๋ ๊ณณ์์ ์๋ํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋ฒ์ ์ ASP.NET Core ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์๊ธฐ ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ์ฉํ ์ ์์ต๋๋ค.
ํ์๋ผ๋ฉด ๊ทธ ์ฌ๋๋ค์ด ์์ ์ฑ์ ์ ๊ฒฝ์ ์ฐ๋์? ๋๋ต์ด ์์ธ ๊ฒฝ์ฐ ASP.NET Core 1.x๊ฐ ์ถฉ๋ถํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ชจ๋ ์ฌ๋์ ํญ์ ์๋ก์ด ๊ธฐ๋ฅ, ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฅ์ฑ, ๋๋ ์ ์ด๋ ๋์ค์ ๋ ๋ง์ ๊ฒ์ ์ป์ ์ ์๋ ์ต์ ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์ถ์ดํฉ๋๋ค. ํ๋ซํผ์ ๋ซ๊ณ "์์ "/"์ ์ง ๊ด๋ฆฌ ๋ชจ๋๋ก ์ ํํ๋ฉด ์ฌ๋๋ค์ ๋ ์ด์ ๊ด์ฌ์ ๊ธฐ์ธ์ด์ง ์๋ ๊ฒ์ผ๋ก ๋ด ๋๋ค.
ASP.NET Core 2.x์๋ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ฌ๋๋ค์ ๋์ด๋ค์ด๋ ๋งค์ฐ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ์ด ์์ต๋๊น? ์๋๋ฉด 1.x์์๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค๋ ์ฌ์ค์ ๋๊น(์๋กญ๊ณ ๋น๋๊ธฐ ๋๋ฌธ์)?
์ง์ - ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ง๋ถํ๋ ๊ฒ์ ๋๋ค.
๋๋ต์ด ์์ธ ๊ฒฝ์ฐ ASP.NET Core 1.x๊ฐ ์ถฉ๋ถํ์ง ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ง์์ด ์ถ์๋ ์ง ์ฝ 1๋ ํ์ ์ข ๋ฃ๋๊ธฐ ๋๋ฌธ์ ๋๋ค(์์ Scott์ ๋ฐ๋ฅด๋ฉด). ๊ทธ๋ฆฌ๊ณ ๊ทธ๋์ฏค์ด๋ฉด ์คํ ์ค๋ฒํ๋ก ์ด์์ ๊ฑฐ์ ๋๋ผ ์ ์์ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ASP.NET Core 2.x๊ฐ .NET Framework ์ง์์ ์ค๋จํ๋ ๊ฒ๊ณผ ์ด๋ค ๊ด๋ จ์ด ์์ต๋๊น?
๋ด๊ฐ ์์ด์ผ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์ ๊ฐ ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋์ ๋๋ 1.x์ ๊ฐํ ์์๊ณ ์ง์์ด ๋๋ ๋๊น์ง ์ํ ํญํ์ด ์์ต๋๋ค. ์ง์์ด ์ข ๋ฃ๋๊ธฐ ์ ์ 1.0์์ 2.x(๋๋ 3.x)๋ก ์ด์ํ ์ถฉ๋ถํ ์๊ฐ์ด ์์ต๋๊น? ์๋ง ์๋ ๊ฒ์ ๋๋ค.
๋๊ท๋ชจ ์ฝ๋๋ฒ ์ด์ค๋ ๋จ์ํ ์ค์งํ๊ณ ์ด์ํ ์ ์์ผ๋ฉฐ ์๊ฐ์ด ํ์ํ๋ฉฐ ๋จ๊ณ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ASP.NET Core์ .NET 4.6.x ํฌํธ๋ฅผ ์ํํ๋ ๊ฒ์ ์ค๊ฐ ๋จ๊ณ๋ก ๊ฐ๋ฅํ์ต๋๋ค. ํ ๋ฒ์ ์ฝ์ด๋ก ์ด๋ํ๋ ๊ฒ์ ํจ์ฌ ๋ ์ด๋ ต๊ณ ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ฉฐ ๋ ์ค๋ ์ง์๋๋ ๊ฐ์ง์ ๋ ๋ง์ ๊ณ ํต์ ํ์๋ก ํฉ๋๋ค. ๋จ๊ณ์ ์ผ๋ก ์ด ์์ ์ ์ํํ ์ ์๋ค๋ฉด ์์งํ ๋งํด์ ์ง๊ธ์ ๋ฒ๋ ค์ง ASP.NET 5 ๋ผ์ธ์์ ๋ฒ์ด๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์๊ฐ, ๋น์ฉ ๋ฐ ๊ฐ๋ฐ์ ๋ฏธ์น๋ ์ํฅ์ ์ ๋นํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ง์ OSS ์์ฑ์๋ ๋์ ๋น์ทํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ์ฐ๋ฆฌ ์ผ์ ์ ๋ฌด์ ์ฐ์ฅ์ ์ ๋๋ค. ํ๋ซํผ์ ์ฌ์ฉํ์ง ์๊ฑฐ๋ ๋๊ทธํธ๋ฉํ์ง ์์ผ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํจ์ฌ ๋ ๋๋น ์ง๊ฑฐ๋ ์์ฑ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ค๋ ์ฐ๋ฆฌ๊ฐ ๋ณด๋ด๋ ํ์ฌ ์๊ฐ์ผ๋ก ๊ทธ๊ฒ์ ์ ์งํ๋ ์๊ฐ์ ์ ๋นํํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ก๋์ ๋จ๊ณ์์ ์๊ตฌํ๋ ๊ฒ์์ ๋น๋กฏ๋ฉ๋๋ค. ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ค๋จํ๋ ์ํ๊ณ๋ ๊ฐ์์ค๋ฌ์ด ๊ฒ์ ์๋์ง๋ง ๊ณ์ ์ถ๊ฐ๋๋ ๋ค์ด์คํธ๋ฆผ ์ํฅ์ด ๋ง์ต๋๋ค.
ํ์ฌ ์ ๊ฒฌํด๋ 2018๋
7์๊ฒฝ๊น์ง ์๋ํ๋ ์๋ก์ด ํ๋ซํผ์ด ์๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ ํ: ์ ๋ ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ
๋๋ค. ๊ทธ๋๊น์ง๋ ์ ๊ฐ ํ์ํ ๊ฒ์ netstandard
/ netcoreapp
์์ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค . ์ง์์ด ์ข
๋ฃ๋๊ธฐ ์ ์ ์ด์ํ ์ถฉ๋ถํ ์๊ฐ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ ํฌ๋ง์ ํ์ ๊ฒ์ด ์๋๋ผ ์ฐ๋ฆฌ ํ์ฌ๋ฅผ ์ํ ํ๋ซํผ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด ๋์ ๋ฐ์๊ณ , ASP.NET Core๋ ์ด ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์๋ํ ๋ฒ์ ์ ๋ํ ๋ ์ง๊ฐ ์๋ (์ฐ๋ฆฌ์๊ฒ) ๋์ ์ ํ์
๋๋ค.
ํ ์ค ์์ฝ์ ์ ๊ณตํ๊ฒ ์ต๋๋ค. .NET ์ ์ฒด ํ๋ ์์ํฌ ์ง์์ด ์์ผ๋ฉด ASP.NET Core๋ ํฅํ 2๋ ๋์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์ง์๋๋ ํ๋ซํผ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
์งง์ ๋ฒ์ ์ ์ด๋ ์ต๋๋ค.
์ฐ์ ์์ 1: ์ด๊ฒ์ net461
์์ ์๋ํด์ผ ํฉ๋๋ค. ifdef, perf๊ฐ ๋ฌด์์ด๋ ์๊ด ์์ต๋๋ค.
์ฐ์ ์์ 2. .NET Core 2.0์์ 10๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์๋ค๋ฉด ์ ๋ง ์ข์ต๋๋ค. ์ฌ๋๋ค์ด ํ๋ซํผ์ ์ ํํ๊ฑฐ๋ ๊ฐ๋ฅํ๋ฉด ๋ง์ด๊ทธ๋ ์ด์
ํด์ผ ํ๋ ํฐ ์ด์ ์
๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ์ฅ๊ธฐ์ ์ธ ์ง์์ ์ํด์๋ ์๋๊ฐ ๋๋ฆฌ๋๋ผ๋ ์ ์ฒด ํ๋ ์์ํฌ ์์ ๊ณ์ ์๋ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฐ์ ์์ 1: net461์์ ์๋ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ .NET Core๊ฐ net461๊ณผ ์์ ํ ํธํ๋๋ค๋ฉด(์ด์ ๋ด์์); ๋ฐ๋ผ์ net461์ฉ์ผ๋ก ์์ฑ๋ ๋ชจ๋ ๊ฒ์ด Core์์ ์๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ด์ฐฎ์๊น์?
๊ธฐ๋ณธ์ ์ผ๋ก, ๊ทธ ์์ ์์ ๋น์ ์ side-by-side ๋ฐ ์์ฒด ํฌํจ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ net4x๋ณด๋ค ๋ ์์ ์ ์ธ ํ๋ซํผ์ ๊ฐ๊ฒ ๋ฉ๋๋ค(x-plat์ ํฐ์น๋ ๊ฐ๋ฅ). net461์๋ ์ ์ฒด ์์คํ ์ด 4.6.1, 4.6.2, 4.7 ๋ฑ์ผ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
๋ถ๋ช ํ ๋ฌด์ธ๊ฐ๊ฐ ์๋ํ์ง ์์ ๊ฒ์ ๋๋ค. ๋ถ๋ถ์ ์ ๋ขฐ์ฒ๋ผ - ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ฒฐ์ฝ ํจ๊ณผ๊ฐ ์์์ต๋๋ค.
์ง์ ํ ์ง๋ฌธ, ASP.NET Core 1.x๋ ํ์ฌ .NET Framework ๋ฐ .NET Core๋ฅผ ์ง์ํฉ๋๋ค. ์์์ ์ธ๊ธํ ์์ ์ ์ธ ํ๋ซํผ์ด๋ผ๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋ฒ๊ทธ ์์ ๊ณผ ๋ ๋ฐํ์ ๋ชจ๋ ์ง์ํ์ง๋ง ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ป์ง๋ ๋ชปํ์ต๋๋ค. ๊ทธ๊ฒ์ผ๋ก ์ถฉ๋ถํ ๊น์?
Ubuntu / Redhat๊ณผ ๊ฐ์ ASP.NET Core 2.0์ LTS ๋ฆด๋ฆฌ์ค๊ฐ 5๋ ์ด์ ์ง์ํ๋ LTS ๋ฆด๋ฆฌ์ค๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. ์ด๋ ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์ฑํ์ ์ ๋ ํ ์ ์๋ ํ๊ณ ํ ํธํ ๊ฐ๋ฅํ ๋ชฉํ๋ฅผ ์ ๊ณตํ ๊ฒ์ ๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฏธ๋์ .NET Core ์ ์ฉ ๊ธฐ๋ฅ๋ณด๋ค ์์ ์ ์ธ .NET Standard 2.0์ ๋ ๊ด์ฌ์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํ๊ณ ๋๊ตฌ๊ฐ ์์๋์ง ์๊ณ ์ธ๊ธฐ ์๋ .NET ๊ฐ๋ฐ๋ก ๋์๊ฐ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๋๋ค. .NET ํจํค์ง๋ ๋ชจ๋ ์ง์์ ์ ๊ณตํ๋ฉฐ ์ฃผ๋ณ ๋ฐฐํฌ ๋ฐ ํธ์คํ ์๋ฃจ์ ์ด ๊ฐ์ ๋์์ผ๋ฉฐ ์๋ฃจ์ ๊ตฌ์ถ์ ์์ํ ์ ์๋ ์์ ์ ์ธ ASP.NET Core์ ์ฌ์ฉํ ์ ์๋ ํ๋ถํ ๋ฌธ์, ๊ฒ์๋ฌผ, ๋น๋์ค ๋ฐ ์ง์ ๊ธฐ๋ฐ์ด ์์ต๋๋ค.
1๋ ๋ค์๋ ๋๊ฐ์ ํ ๋ก ์ ํ์ง ์์๊น์? ๊ทธ๋์ฏค์ด๋ฉด .NET Core๋ฅผ ์ง์ํ๋ ์ํ๊ณ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ ์ปค์ ธ์ ์ํฅ์ด ๋ํ ๊น์? ์ ๋ฐ์ดํธ๋์ง ์๋(๋๋ ์์ค ์ฝ๋๊ฐ ์์ค๋) ์ํฐํ๋ผ์ด์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๋ป์ต๋๊น? 1๋ ์์ ๋ฐ๋๊น์?
์ด์์ ์ธ ์ธ๊ณ์์ .NET v4.x ๋ฐ .NET Core๋ ๋ชจ๋ ๊ฐ๊น์ด ์ฅ๋์ ASP.NET Core๋ฅผ ์ง์ํ๋ฉฐ .NET Core ์ ์ฉ ํจํค์ง์์๋ง ์ฌ์ฉํ ์ ์๋ ์๋ก์ด .NET Core ์ ์ฉ ๊ธฐ๋ฅ์ผ ๋ฟ์ ๋๋ค. ๊ทธ๋ฌ๋ MS๊ฐ .NET 4.x๋ฅผ ๋จ๊ฒจ๋๊ณ ๊ณต์์ ์ผ๋ก ํค์ด์ง๊ธฐ ์ ์ ASP.NET 2.0 LTS ๋ฆด๋ฆฌ์ค๊ฐ ์ฐจ์ ์ฑ ์ด ๋ ๊ฒ์ ๋๋ค. ์ ์์ ๋ฐ๋ฅด๋ฉด ์๋ฌด๋ ์์ง ์กด์ฌํ์ง ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์์กดํ์ง ์์ผ๋ฏ๋ก ์๋ฌด๋ .NET Core ์ ์ฉ v3.0์ผ๋ก ๊ฐ์ ๋ก ์ ๊ทธ๋ ์ด๋ํ์ง ์์ ๊ฒ์ ๋๋ค.
1๊ฐ์ ํ๋ซํผ๋ง ์ง์ํด์ผ ํ๋ ์์ ๋ก ์ธํด ๊ฐ๋ฐ์๊ฐ ์ง์์ ์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ ์คํธ๋ฆผ์ ํตํด ๊ฐ์ฅ ์ต์ ์ ์ต์ ๋ฒ์ ์ ์ฑํํ๋๋ก ์ ๋ํ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ฌ์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ASP.NET์ด ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ์ ๋ง์กฑํ๊ณ ์์ต๋๋ค. ์ ๋ ๋ชจ๋ ๊ฒ์ด ๋ค๋ฌ์ด์ง ์์ ์ ์ธ ๋ฒ์ ์ ๋ ๊ด์ฌ์ด ์์ด ๋ค์ ์์ฐ์ ์ผ๋ก ๋์๊ฐ ํญ์ ์์ง์ด๋ ํ๋ซํผ์ ์ซ๋ ๋์ ์๋ฃจ์ ๊ฐ๋ฐ์ ์ง์คํ ์ ์์ต๋๋ค.
๋จผ์ @davidfowl ์ด ์ค๋ ๋์ ๋ฐ์ด๋ค๊ณ ์ผ์ด์์ ์ง๋ฌธ์ ํ๋ ๋ฑ์ ์ผ์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ง์ Q๋ฅผ ๋ฌป๋ ์ด๋ค ์ปค๋ฎค๋ํฐ๊ฐ ์์ ๋ ๊ฐ์ ํ์ง ์๊ณ '๋ชฉํ๋ฌผ'์ด ๋๋ ๊ฒ์ ํผํ๊ธฐ ์ฝ์ต๋๋ค. ๊ฑด์ค์ ์ผ๋ก ์ฐธ์ฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. /๋ ๋น์ ์๊ฒ ๊ฒฝ์๋ฅผ ํํฉ๋๋ค.
์ด ๋ํ์์ ๋์ค๋ ๋ ๊ฐ์ง ์ฃผ์ ์์ /์ค๋ ๋๋ฅผ ๋ด ๋๋ค.
@mythz ๋ (์ด ์์ ์์) ~ ๊ฐ์ฅ ์ต๊ทผ ~ 2๋ฒ์งธ ๊ฐ์ฅ ์ต๊ทผ ๋๊ธ์ ๋ํ ์์ ๋ฌธ์ฅ์์ ์ด๋ฅผ ๋ฉ์ง๊ฒ ํํํ์ต๋๋ค.
.NET์ ๋ฏธ๋์ ์ํฅ์ ๋ฏธ์น๋ ์ด์ ๊ฐ์ ์ค์ํ ๊ฒฐ์ ์ด ํฌ๋ช ์ฑ ์์ด ๋ง์ง๋ง ์๊ฐ์ ์ผ๋ง๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ผ์ด๋ ์ ์๋์ง์ ๋ํด ์ด ๋ชจ๋ ์ํฉ์ด ์ฝ๊ฐ ๋๋ด์ค๋ฝ์ต๋๋ค.
์ด๊ฒ์ ๊ฐ์ธ์ ์ผ๋ก ์ ์๊ฒ ์ ๋ง ํฐ ์ถฉ๊ฒฉ์ ์ฃผ์์ต๋๋ค. ์ ๋ ์ด๋ฌํ ์ ํ๋ฅผ plzํ๋ MS์ ์ ์ ํ ์ฌ๋๋ค๋ก๋ถํฐ ๋ช ๊ฐ์ง ๊ณต์ ๋ต๋ณ/์ฝ๋ฉํธ๋ฅผ ์ํฉ๋๋ค. "์ฐ๋ฆฌ"๋ ์น์ํ ์ผ๊ตด, ์น์ํ ์ด๋ฆ, ๊ทธ๋ฆฌ๊ณ ๊ฝค ๊ณตํํ ๋ง ๋ฑ ์ด ์ปค๋ฎค๋ํฐ์์ ์ค๋ซ๋์ ํจ๊ปํด ์์ผ๋ฉฐ ๋ชจ๋ ๋์ผํ ๊ธ์ ์ ์ธ ๋ชฉํ๋ฅผ ์ถ๊ตฌํ๊ณ ์์ต๋๋ค. ๋๋ "์ฐ๋ฆฌ"๊ฐ ๊ฝค ํฌ๊ณ ๋๊ฐ์กฑ์ด๋ผ๊ณ ๊ณ์ํด์ ๋งํ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ์ ๋ MS๊ฐ ์ทจํ ์๋ก์ด ๋ฐฉํฅ(OSS-all-the-things ๋ฑ)๊ณผ ์ต๊ทผ 12/18๊ฐ์ ๋์์ ์ผ๋ถ ๋ฉ๊ฐ uber-.NET-threads(์ฝ๊ธฐ: ์ปค๋ฎค๋ํฐ ํ ๋ก ๊ฒฝํ์์ ๋ฐฐ์ฐ๊ธฐ)์ ๋ํด ์๊ฐํฉ๋๋ค. ) ... "์ฐ๋ฆฌ"๋ ๋ชจ๋ ํจ๊ป ์ด ์ผ์ ์ฐธ์ฌํ๊ณ ์์ผ๋ฉฐ ์ด๋ฌํ ์ง์ง ํฐ ์ผ โข๏ธ ์ค ์ผ๋ถ๋ ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ์ผ๋ก ๋ ผ์๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ์ด๋ฌํ ์ค๋ํ ๊ฒฐ์ ์ฌํญ ์ค ์ผ๋ถ๋ฅผ ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ์ผ๋ก ๋ ผ์ํ ์ ์์ต๋๊น? ๊ธ์ ์ ์ธ ์ปค๋ฎค๋ํฐ ์๋ด๊ณผ ํ ๋ก ์ ํ์๊ฒ ์ต๋๊น?
์ฐธ๊ณ : ๋๋ ์ด ํ๋ก์ ํธ๊ฐ ๋ฏผ์ฃผ์ฃผ์๊ฐ ์๋๋ฉฐ _๊ฒฐ์ _์ด MS์ ์ํด ์ด๋ฃจ์ด์ง๋ค๋ ์ ์ ์ธ์ ํฉ๋๋ค. ๋ฌธ์ ์๋ค. ๋๋ _๊ทธ_๋ฅผ ๋นํํ์ง ์๋๋ค. ๊ทธ ์ด์ ๋จ๊ณ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๋ํ RFC ๋ฑ์ ์ํด _๋ชจ๋ ๊ฒ_์ ์๊ตฌํ๋ ๊ฒ์ด ์๋๋๋ค. ์ด ์ค๋ ๋๊ฐ ์์๋ ๊ฒ๊ณผ ๊ฐ์ ์ด์ํ ์ฃผ์ ํฐ์ผ ํญ๋ชฉ์ผ ๋ฟ์ ๋๋ค.
๊ทธ๋ฌ๋ MS๊ฐ .NET 4.x๋ฅผ ๋จ๊ฒจ๋๊ณ ๊ณต์์ ์ผ๋ก ํค์ด์ง๊ธฐ ์ ์ ASP.NET 2.0 LTS ๋ฆด๋ฆฌ์ค๊ฐ ์ฐจ์ ์ฑ ์ด ๋ ๊ฒ์ ๋๋ค. ์ ์์ ๋ฐ๋ฅด๋ฉด ์๋ฌด๋ ์์ง ์กด์ฌํ์ง ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์์กดํ์ง ์์ผ๋ฏ๋ก ์๋ฌด๋ .NET Core ์ ์ฉ v3.0์ผ๋ก ๊ฐ์ ๋ก ์ ๊ทธ๋ ์ด๋ํ์ง ์์ ๊ฒ์ ๋๋ค.
์ดํด๊ฐ ์ ๋ผ์. ๋ฆด๋ฆฌ์ค์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ์์ง ์๋ฌด๋ ASP.NET 2.0์ ๊ธฐ๋ฅ์ ์์กดํ์ง ์์ต๋๋ค. ๊ทธ๋์ ASP.NET Core 1.x๊ฐ ๊ทธ ๋ฒ์ ์ด ์๋๋๊น? ์ ์ฒด ํ๋ ์์ํฌ, ์ฝ์ด 1.0 ๋ฐ ์ฝ์ด 2.0์์ ์คํ๋๋ฉฐ ASP.NET Core 2.x์ ๋๋ค๋ ์ญํ ์ ํ ์ ์์ต๋๊น?
@onovotny
๋ชจ๋ ์ฌ๋์ ํญ์ ์๋ก์ด ๊ธฐ๋ฅ, ์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฅ์ฑ, ๋๋ ์ ์ด๋ ๋์ค์ ๋ ๋ง์ ๊ฒ์ ์ป์ ์ ์๋ ์ต์ ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์ถ์ดํฉ๋๋ค. ํ๋ซํผ์ ๋ซ๊ณ "์์ "/"์ ์ง ๊ด๋ฆฌ ๋ชจ๋๋ก ์ ํํ๋ฉด ์ฌ๋๋ค์ ๋ ์ด์ ๊ด์ฌ์ ๊ธฐ์ธ์ด์ง ์๋ ๊ฒ์ผ๋ก ๋ด ๋๋ค.
์, ํ์ง๋ง .NET Framework๊ฐ OS ๊ตฌ์ฑ ์์์ ์ฐ๊ฒฐ๋ ํฐ ์์ ์ ์ธ ์ง์์ ๋ฐ์ ๋ ๋์ผํ ์์ค์ ํ์ง์ ๋ณด์ฅํ๊ธฐ๋ ์ ๋ง ์ด๋ ต์ต๋๋ค. @terrajobst ๊ฐ ๋งํ๋ฏ์ด ์ผ๋ถ๋ ํ์คํ ์ด๋ ์์ ์์ ์ด์๋์ง๋ง ๋๋จธ์ง๋ ํ์ ํด์ผ ํฉ๋๋ค. ์ฌ์ค ASP.NET Core๋ ํ ๋ฒ์ ์ ์ฒด ์คํ์ ๊ฐ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ .NET Core์์ ๊ฐ์ฅ ์ ์คํ๋ฉ๋๋ค. ์ง๊ธ๊น์ง 2๊ฐ์ ๋ฐํ์ ๊ฐ์๋ ํฐ ์ฑ๋ฅ ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ .NET Framework ์ง์์ผ๋ก ์ธํด ์์ง ์ API์ ๋ํ ์ข ์์ฑ์ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ์์ผ๋ก ๋์๊ฐ๋ฉด์ .NET Framework์ ํ์๋๊ฑฐ๋ ํ์๋์ง ์์ ์ ์๋ ์๋ก์ด API๋ฅผ ์ถ๊ฐํ ๊ฒ์ด๋ฉฐ ๊ฐ์ฅ ์์ ์ ์ด๊ณ ๋๋ฆฌ๊ฒ ์์ง์ด๋ ๋ฐํ์(.NET Framework)์ ์๋๋ก ๋ฐ์ ํ๊ณ ์ถ์ง ์์ต๋๋ค.
@NickCraver
์ง์์ด ์ถ์๋ ์ง ์ฝ 1๋ ํ์ ์ข ๋ฃ๋๊ธฐ ๋๋ฌธ์ ๋๋ค(์์ Scott์ ๋ฐ๋ฅด๋ฉด). ๊ทธ๋ฆฌ๊ณ ๊ทธ๋์ฏค์ด๋ฉด ์คํ ์ค๋ฒํ๋ก ์ด์์ ๊ฑฐ์ ๋๋ผ ์ ์์ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ด ์์ ํ ์ ํํ์ง ํ์ ํ ์ ์์ต๋๋ค. 2.0์ ์ฌ์ฉํ ์ ์์ผ๋ฉด 1.1์ด ๊ณ์ ์ง์๋ฉ๋๋ค. ๊ทธ๋์ ๋น์ ์ด ๋งํ๋ ์ด "์ง์"์ ๋ฌด์์ ๋๊น? ์ ๋ฃ ์ง์์ ์๋ฏธํฉ๋๊น ์๋๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ด๋ผ๋ ์๋ฏธ์ ๋๊น?
๋ด๊ฐ ์์ด์ผ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์ ๊ฐ ๋ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋์ ๋๋ 1.x์ ๊ฐํ ์์๊ณ ์ง์์ด ๋๋ ๋๊น์ง ์ํ ํญํ์ด ์์ต๋๋ค. ์ง์์ด ์ข ๋ฃ๋๊ธฐ ์ ์ 1.0์์ 2.x(๋๋ 3.x)๋ก ์ด์ํ ์ถฉ๋ถํ ์๊ฐ์ด ์์ต๋๊น? ์๋ง ์๋ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET Core ๋ฒ์ ์ ๊ด๊ณ์์ด ์ผ์ง๋๋ค. ๋น์ ์ด ๋งํ๋ ๊ฒ์ ์ต์ ๋ฒ์ ์ ASP.NET Core(๋ฌด์์ด๋ ๊ฐ์)๋ฅผ ์ฌ์ฉํ๊ณ .NET Core์ ์ถฉ๋ถํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ ๋๊น์ง .NET Framework์์ ์ง์๋๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ํน์ ์๋๋ฆฌ์ค์ ์ฝ์ต๋๋ค.
๋๊ท๋ชจ ์ฝ๋๋ฒ ์ด์ค๋ ๋จ์ํ ์ค์งํ๊ณ ์ด์ํ ์ ์์ผ๋ฉฐ ์๊ฐ์ด ํ์ํ๋ฉฐ ๋จ๊ณ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผ ํฉ๋๋ค. ASP.NET Core์ .NET 4.6.x ํฌํธ๋ฅผ ์ํํ๋ ๊ฒ์ ์ค๊ฐ ๋จ๊ณ๋ก ๊ฐ๋ฅํ์ต๋๋ค. ํ ๋ฒ์ ์ฝ์ด๋ก ์ด๋ํ๋ ๊ฒ์ ํจ์ฌ ๋ ์ด๋ ต๊ณ ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ฉฐ ๋ ์ค๋ ์ง์๋๋ ๊ฐ์ง์ ๋ ๋ง์ ๊ณ ํต์ ํ์๋ก ํฉ๋๋ค. ๋จ๊ณ์ ์ผ๋ก ์ด ์์ ์ ์ํํ ์ ์๋ค๋ฉด ์์งํ ๋งํด์ ์ง๊ธ์ ๋ฒ๋ ค์ง ASP.NET 5 ๋ผ์ธ์์ ๋ฒ์ด๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์๊ฐ, ๋น์ฉ ๋ฐ ๊ฐ๋ฐ์ ๋ฏธ์น๋ ์ํฅ์ ์ ๋นํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
ASP.NET Core ํ์ ๋ฒ์ ์ ์ด์ ์ด๋ค ์ํฅ์ ์ค๋๊น? ์ฐ๋ฆฌ๊ฐ 3.0์์ .NET Framework ์ง์์ ์ค๋จํ๋ค๋ฉด(์ด ์ค๋ ๋์์ ์ฌ๋๋ค์ด ํํผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์) ์๊ด์์ด ๋์ผํ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ์์ง ์์๊น์? ASP.NET Core 2.0 ์์ฉ ํ๋ก๊ทธ๋จ์ 1๋ ๋์ ํ๋ ์์ํฌ์์ ์คํ๋๋๋ก ์ด์๋์์ผ๋ฉฐ 3.0์ด ๋์ค๋ฉด ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค. ์ด์จ๋ .NET Framework์์ ์คํ๋๊ณ ASP.NET Core 2.0์ด ์ข ๋ฃ๋ ๊ฒฝ์ฐ ์๋ ์ง์๋๋ ASP.NET Core 1.1.x๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
ํ์ฌ ์ ๊ฒฌํด๋ 2018๋ 7์๊ฒฝ๊น์ง ์๋ํ๋ ์๋ก์ด ํ๋ซํผ์ด ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ ํ: ์ ๋ ์๋ฌด๊ฒ๋ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋๊น์ง ๋ด๊ฐ ํ์ํ ๊ฒ์ netstandard/netcoreapp์์ ์ฌ์ฉํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ ๋ฟ์ ๋๋ค. ์ง์์ด ์ข ๋ฃ๋๊ธฐ ์ ์ ์ด์ํ ์ถฉ๋ถํ ์๊ฐ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋๋ ํฌ๋ง์ ํ์ ๊ฒ์ด ์๋๋ผ ์ฐ๋ฆฌ ํ์ฌ๋ฅผ ์ํ ํ๋ซํผ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด ๋์ ๋ฐ์๊ณ , ASP.NET Core๋ ์ด ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์๋ํ ๋ฒ์ ์ ๋ํ ๋ ์ง๊ฐ ์๋ (์ฐ๋ฆฌ์๊ฒ) ๋์ ์ ํ์ ๋๋ค.
1๋ ๋ง ๋ ์์ผ๋ฉด ๋ชจ๋์๊ฒ ์ถฉ๋ถํ ์๊ฐ์ ๋๊น? ์ด๊ฒ์ ๋ด๊ฐ ์ด ์ค๋ ๋์์ ์ป๋ ๋๋์ด ์๋๋๋ค.
์ฐ์ ์์ 1: ifdef, perf๊ฐ ๋ฌด์์ด๋ ์๊ด์์ด net461์์ ์๋ํด์ผ ํฉ๋๋ค.
์ฐ์ ์์ 2. .NET Core 2.0์์ 10๋ฐฐ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์๋ค๋ฉด ์ ๋ง ์ข์ต๋๋ค. ์ฌ๋๋ค์ด ํ๋ซํผ์ ์ ํํ๊ฑฐ๋ ๊ฐ๋ฅํ๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ๋ ํฐ ์ด์ ์ ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ ์ฅ๊ธฐ์ ์ธ ์ง์์ ์ํด์๋ ์๋๊ฐ ๋๋ฆฌ๋๋ผ๋ ์ ์ฒด ํ๋ ์์ํฌ์์ ๊ณ์ ์๋ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
.NET Framework๊ฐ ์ค๋๋ ์ฒ๋ผ ์ ์๋ํ๋ ์ ์ผํ ์ด์ ๋ .NET Framework๋ฅผ ์๋์ ์ผ๋ก ์ง์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ ๊ฒ์ด ์๋๋ผ "์ฝ์ด์์ ๋ ๋น ๋ฅธ ๊ฒ"์ด ์๋๋ผ .NET Framework์์ ์๋ํ ์ ์๋๋ก ์์คํ
์ ์๋์ ์ผ๋ก ์ค๊ณํด์ผ ํ์ต๋๋ค. ์์ง ํ์ธํ์ง ๋ชปํ๋๋ผ๋ ์์ง .NET Framework์ ์กด์ฌํ์ง ์๋ API์ ๋ํ ์ข
์์ฑ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ๊ฒฐ์ ํ๋ฉด 2 ์ฌ์ด์ ๊ธฐ๋ฅ ๊ฒฉ์ฐจ๊ฐ ์ปค์ง ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ๋ @PinpointTownes ๊ฐ ๋งํ ๋๋ก ํ ์ ์๊ณ ์ด๋ฌํ ๊ธฐ๋ฅ ๊ฒฉ์ฐจ๊ฐ ๋ํ๋ ๋ NotSupportedException
๋ฅผ ๋์ง ์ ์์ง๋ง IMO๋ ๊ฝค ๋์ ๊ฒฝํ์
๋๋ค.
์ฐ๋ฆฌ๋ ASP.net MVC5 ์ฑ์ ASP.net ํต์ฌ ์ ์ฒด ํ๋ ์์ํฌ๋ก ์ด์ํ์ฌ Azure Service Fabric๊ณผ ์ํํ๊ฒ ์๋ํ๋๋ก ํ๋ ๋ฐ ๋ง์ ๊ฐ๋ฐ ์์ฐ์ ํฌ์ํ์ต๋๋ค. ์ ์ฒด ํ๋ก์ ํธ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ํ๋ ๋ฐ ๋ช ์ฃผ๊ฐ ์์๋๋(์์งํ ์ด์ํ VS2015 ๋๊ตฌ์ ์จ๋ฆํ๋) ์ฌ๋ฌ ๋ฌ์ด์์ต๋๋ค.
์๋ํ ์ ์ผํ ์ด์ ๋ ํ์ฌ ASP.net ์ฝ์ด์์ SignalR์ ์คํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ ์์ํฌ๊ฐ ์ง์๋์๊ธฐ ๋๋ฌธ์ ๋๋ค( @davidfowl ๋๋ด). ๋ด๊ฐ ๋งํ ์ ์๋ ํ, SignalR์ ์ฌ์ ํ โโAsp.net Core์์ ์ง์๋์ง ์์ต๋๊น?
๊ทธ๋ฐ ๋ค์ ์ฐ๋ฆฌ๋ ์๋ก์ด VS2017 ๋๊ตฌ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐ ์ผ์ฃผ์ผ ์ ๋๋ฅผ ๋ณด๋์ต๋๋ค. ๊ด์ฐฎ์.
_์ง๊ธ๊น์ง๋ ์ ํ์ ๋ํ ๊ฐ์ ์ฌํญ์ด ์ ํ ์์ผ๋ฉฐ Microsoft ํ๋ซํผ ๋ฐ ๋๊ตฌ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ์ฝ๋ ๋ชจ์์ ์กฐ์ ํ๋ ๊ฒ๋ฟ์ ๋๋ค._
์ด์ 12๊ฐ์ ์ด๋ด์ ๋ด๊ฐ ํ ์ ์๋ค๋ ๋ณด์ฅ๋ ์์ด ๊ธฐ๋ฅ์ด ์๋ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ ๋ ๋ง์ด ์ํํด์ผ ํ๊ณ , ์์ ํ๋๋ ๋ฌด๋ฆฌ์ ๋ฐ๋ผ ๊ทธ๋ฆฌ๊ณ ํ ์ ์์ด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฑด๊ฐ์? ๊ณ ๋ง์ง ๋ง ์ฌ์ ํ ๊ฒ.
์ฒซ์งธ, ์ฌ๋๋ค์ด ํ์ฌ ASP.net ์ฝ์ด์์๋ง ์๋ํ๋ ASP.net ์ฝ์ด ์ ์ฒด ํ๋ ์์ํฌ์์ ์ฌ์ฉํ๊ณ ์๋ Microsoft ๋ธ๋๋์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ ธ์ต๋๋ค. ๋์งธ, ์ํ๊ณ๊ฐ ์ํ๋ ๋๋ก ASP.net ์ฝ์ด๋ฅผ ์ฑํํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๋ค๋ฅธ ์์(์๋ ๊ฒฝ์ฐ)๋ฅผ ์ฐพ์ผ์ญ์์ค. ๊ทธ๋ฐ ๋ค์ ๋ ผ์ ์ค์ธ Netfx์ ๋ํ ์ง์์ ์ค๋จํฉ๋๋ค.
์ฐ๋ฆฌ๋ @PinpointTownes ๊ฐ ๋งํ ๋๋ก ํ ์ ์๊ณ ์ด๋ฌํ ๊ธฐ๋ฅ ์ฐจ์ด๊ฐ ๋ํ๋ ๋ NotSupportedException์ ๋์ง๊ธฐ ์์ํ ์ ์์ง๋ง IMO๋ ๊ฝค ๋์ ๊ฒฝํ์ ๋๋ค.
๊ทธ๊ฒ์ ์ ํํ ๋ด๊ฐ ๋งํ ๊ฒ์ด ์๋๋๋ค. ํฌ๋ก์ค ์ปดํ์ผ์ ํ ๋ ifdefs
๋ ํ์คํ ํน์ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋ API๋ฅผ ์ ์ธํ๋ ๊ธฐ๋ณธ ์ต์
์ด์ด์ผ ํ์ง๋ง ์ด๋ค ์ด์ ๋ก๋ ์ด API ์๋ช
์ด ๊ณต๊ฐ์ ์ผ๋ก ์์ด์ผ ํ๋ ๊ฒฝ์ฐ ๊ณ์ฝํ๋ฉด NotSupportedException
๋ก ๊ฐ ์ ์์ต๋๋ค.
์ดํด๊ฐ ์ ๋ผ์. ์๋ฌด๋ ์์ง ASP.NET 2.0์ ๊ธฐ๋ฅ์ ์์กดํ์ง ์์ต๋๋ค.
๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ ์ ์ข ์์ฑ์ด ์ง์ํ๋ ์์ ์ ์ด๊ณ ํธํ์ฑ์ด ๋์ .NET Standard 2.0์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ค์ .NET Core 1.1์ด EOL๋๊ณ MS๊ฐ ์ด์ DNX/.NET Core ๋ฒ์ ์ ๋ํ ์ฅ๊ธฐ์ ์ธ ์ง์์ ์ ๊ณตํ ์ข์ ๊ธฐ๋ก์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์ฑํํ๊ธฐ๋ฅผ ์ํ์ง ์์ ๊ฒ์ ๋๋ค. ์ํ๊ณ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์์ ํ๊ฒ ์ฑํํ ์ ์๋ ํธํ์ฑ์ด ๋์ ์์ ์ ์ธ LTS ๋ฆด๋ฆฌ์ค๊ฐ ์๋ ๊ฒฝ์ฐ ๊ธฐ์ ์ ์์คํ ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ์ ๊ฐ์ถ๊ณ ์์ด์ผ ํ๋ฉฐ ๋ชจ๋ ๊ฒ์ ๊ฐ์ถ๊ฒ ๋๋ฏ๋ก .NET Core vNext๋ก ์ ๊ทธ๋ ์ด๋ํ ์๋ฌด๋ฅผ ๋๋ผ์ง ์์ ๊ฒ์ ๋๋ค. v2.0์ ํ์ํ๊ณ ์๊ฐ์ด ๋๋ฉด ASP.NET Core 2.0/.NET v4.6์์ ํฅํ .NET Core ์ ์ฉ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณํํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ฌ์ธ ๊ฒ์ ๋๋ค.
@mythz
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ฏธ๋์ .NET Core ์ ์ฉ ๊ธฐ๋ฅ๋ณด๋ค ์์ ์ ์ธ .NET Standard 2.0์ ๋ ๊ด์ฌ์ด ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ค์ ์๋ํ๊ณ ๋๊ตฌ๊ฐ ์์๋์ง ์๊ณ ์ธ๊ธฐ ์๋ .NET ๊ฐ๋ฐ๋ก ๋์๊ฐ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๋๋ค. .NET ํจํค์ง๋ ๋ชจ๋ ์ง์์ ์ ๊ณตํ๋ฉฐ ์ฃผ๋ณ ๋ฐฐํฌ ๋ฐ ํธ์คํ ์๋ฃจ์ ์ด ๊ฐ์ ๋์์ผ๋ฉฐ ์๋ฃจ์ ๊ตฌ์ถ์ ์์ํ ์ ์๋ ์์ ์ ์ธ ASP.NET Core์ ์ฌ์ฉํ ์ ์๋ ํ๋ถํ ๋ฌธ์, ๊ฒ์๋ฌผ, ๋น๋์ค ๋ฐ ์ง์ ๊ธฐ๋ฐ์ด ์์ต๋๋ค.
๊ฑฐ๊ธฐ ์๋ ๋ชจ๋ ๊ฒ์ ๋์ํ์ง๋ง ์ด ๊ฒฐ์ ์ด ๋น์ ์ ๋ง์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ค ๋๊ฐ์ ๊ฑธ ์ํด ๐ .
1๊ฐ์ ํ๋ซํผ๋ง ์ง์ํด์ผ ํ๋ ์์ ๋ก ์ธํด ๊ฐ๋ฐ์๊ฐ ์ง์์ ์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ ์คํธ๋ฆผ์ ํตํด ๊ฐ์ฅ ์ต์ ์ ์ต์ ๋ฒ์ ์ ์ฑํํ๋๋ก ์ ๋ํ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ฌ์ ์ผ๋ก ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ ASP.NET์ด ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๊ธฐ๋ฅ์ ๋ง์กฑํ๊ณ ์์ต๋๋ค. ์ ๋ ๋ชจ๋ ๊ฒ์ด ๋ค๋ฌ์ด์ง ์์ ์ ์ธ ๋ฒ์ ์ ๋ ๊ด์ฌ์ด ์์ด ๋ค์ ์์ฐ์ ์ผ๋ก ๋์๊ฐ ํญ์ ์์ง์ด๋ ํ๋ซํผ์ ์ซ๋ ๋์ ์๋ฃจ์ ๊ฐ๋ฐ์ ์ง์คํ ์ ์์ต๋๋ค.
๋ง์ต๋๋ค. ASP.NET Core 1.x๊ฐ ์๋๊ฐ์? 1.x์์ ์ง์์ด ํ์ฅ๋๋ค๋ฉด ์ถฉ๋ถํ์ง ์์๊น์? netstandard 1.x์ธ ASP.NET Core 1.์ด .NET Core 2.0(์ด๋ฏธ ์คํ ์ค์ธ)์์ ์คํ๋๋๋ก ํ๊ณ 1๋ ์ ๋ ๋ ์ง์ํ ์ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์ ํํ ๋ด๊ฐ ๋งํ ๊ฒ์ด ์๋๋๋ค. ํฌ๋ก์ค ์ปดํ์ผ์ ์งํํ ๋ ifdef๋ ํน์ ํ๋ซํผ์์ ์ฌ์ฉํ ์ ์๋ API๋ฅผ ์ ์ธํ๋ ๋ฐ ํ์คํ ์ ํธ๋๋ ์ต์ ์ด์ด์ผ ํ์ง๋ง ์ด๋ค ์ด์ ๋ก๋ ๊ณต๊ฐ ๊ณ์ฝ์ ์ด API ์๋ช ์ด ํ์ํ ๊ฒฝ์ฐ ๋ค์์ ์ํํ ์ ์์ต๋๋ค. NotSupportedException์ผ๋ก ์ด๋ํ์ญ์์ค.
๊ณต๊ฐ API ๋ ธ์ถ์ ๋ํด ์ด์ผ๊ธฐํ์ง๋ ์์ต๋๋ค. ๋๋ netstandard์ ์กด์ฌํ์ง ์์ ํธ์ถํด์ผ ํ๋ API์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. #ifdef๋ ์ฌ๊ธฐ์ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ฒฉ์ฐจ๊ฐ ์ปค์ง๋ฉด ๊ทธ๋ฅ ๋์ง๋๋ค.
@davidfowl ์์ ํ ์ ํจํ ์ง๋ฌธ - ๋ต๋ณ:
์ ๋ฃ ์ง์์ ์๋ฏธํฉ๋๊น ์๋๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ด๋ผ๋ ์๋ฏธ์ ๋๊น?
๋ฌธ์ ์ ๋ํ ํ์ฑ ์์ - 1.x๊ฐ ์ฐ๋ฆฌ๊ฐ ๊นจ๋จ๋ฆฐ ๋ชจ๋ ๊ฒ์ ๋ํ ์์ ์ ๋ฐ์ต๋๊น, ์๋๋ฉด ์ผ๋ถ ๊ฒฝ์ฐ ์์ ์ ์ํด ์ ๊ทธ๋ ์ด๋ํ๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๊น? (์ฐธ๊ณ : ์ด๋ DirectoryServices์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ ๋๊น์ง ์ํํ ์ ์๋ ์ ๊ทธ๋ ์ด๋์ ๋๋ค. ๊ฐ๋ฅํ๋๋ผ๋ ๋ฌด๋ฃ ๋๋ ์ฌ์ง์ด ์ ๋ ดํ์ง๋ ์์ง๋ง ์ต์ํ ๋ช ๋ฌ์ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค.) ์ฐ๋ฆฌ๋ ํฌ๊ณ ๋น ๋ฅด๋ฉฐ ํ๋ ์์ํฌ์์ ํด์์ ์ฐพ์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ ๊ฐ ๋ชจ๋ ๋ฉ์ด์ ๋ฐ ๋ง์ด๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ง์์ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค.
๋น์ ์ด ๋งํ๋ ๊ฒ์ ์ต์ ๋ฒ์ ์ ASP.NET Core๋ฅผ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ ๊ฒ์ ๋๋ค.
์๋์, ์๋ ํ๋ ๋ฒ์ ๊ณผ ์์ผ๋ก์ ๊ฒฝ๋ก๋ฅผ ์ํฉ๋๋ค. 1.x์์๋ ์ ๋ฐ๋ถ๋ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๊น์ง ๋ ๋ฒ์งธ๋ ์ผ์ข ์ ๊ฐ์ ์ด์์ต๋๋ค.
ASP.NET Core ํ์ ๋ฒ์ ์ ์ด์ ์ด๋ค ์ํฅ์ ์ค๋๊น?
์ ์ฒด ํ๋ ์์ํฌ์ ๋ํ ์ง์์ ์ค๋จํ๋ ๊ฒฝ์ฐ ์ง์์ ์ ์งํ๊ธฐ ์ํด ๋๋์ ์ธ ๋ณ๊ฒฝ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ 3.0์์ .NET Framework ์ง์์ ์ค๋จํ๋ค๋ฉด(์ด ์ค๋ ๋์์ ์ฌ๋๋ค์ด ํํผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์) ์๊ด์์ด ๋์ผํ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ์์ง ์์๊น์?
์๋ง๋? ์์ ์ ๋ค์ด๋น์ ํ๊ธฐ ์ ์ ์ฌ์ฉ ์ฌ๋ก์์ ํจ๋ฆฌํฐ๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค. ์ ๊ฒฝ๋ ฅ์ ๋๋ค. ์๋๋ฐฉ์ด ์ฐ๋ฆฌ๋ฅผ ์ง์ํ์ง ์์ ๋ ๋ฐ์ด๋ด๋ฆฌ๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ด ์ฑ ์์ด ์๋ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ 2.x ๊ธฐ๊ฐ์ ์ง์๋์๋ค๋ฉด ์์ผ๋ก ๋์๊ฐ ๊ธธ์ด ๋ถ๋ช ํ๊ณ ASP.NET Core์ ๋ฒ ํ ํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์์ ํฉ๋๋ค.
1๋ ๋ง ๋ ์์ผ๋ฉด ๋ชจ๋์๊ฒ ์ถฉ๋ถํ ์๊ฐ์ ๋๊น?
์๊ฐ์ ์ ๋์ ์ธ ๊ธธ์ด๋ ์ค์ ๋ก ์ค์ํ์ง ์์ต๋๋ค. ์ ์ค ์ผ์ด์ค ํธํ์ฑ + ์๊ฐ(IMO)์ด์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์ค๋ ์๋ํ๋ค๋ฉด(์: AD ์ธ์ฆ) 2๋ ์ด๋ฉด ์ถฉ๋ถํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ฌ๋ก์๋ ๊ทธ๋ ์ง ์์ผ๋ฏ๋ก ์ง๊ธ๋ถํฐ ์์์ ์์ ์ด ๊ด์ฐฎ๋ค๋ ๋ฐ ๋์ํ๋ ๊ฒ์ ๊ธฐ๊ปํด์ผ ์๊ธฐ์์กฐ์ ๋๋ค.
๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ ๊ฒ์ด ์๋๋ผ "์ฝ์ด์์ ๋ ๋น ๋ฅธ ๊ฒ"์ด ์๋๋ผ .NET Framework์์ ์๋ํ ์ ์๋๋ก ์์คํ ์ ์๋์ ์ผ๋ก ์ค๊ณํด์ผ ํ์ต๋๋ค. ์์ง ํ์ธํ์ง ๋ชปํ๋๋ผ๋ ์์ง .NET Framework์ ์กด์ฌํ์ง ์๋ API์ ๋ํ ์ข ์์ฑ์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ๊ฒฐ์ ํ๋ฉด 2 ์ฌ์ด์ ๊ธฐ๋ฅ ๊ฒฉ์ฐจ๊ฐ ์ปค์ง ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ถ์พํ์ง ์์ง๋ง ์ ๊ทธ๋ ๊ฒ ๋งํ๊ณ ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ์ง ์์ต๋๊น? ๊ทธ ๋ง์ ๋ ์ด์ ๋ ผ์ํ ๊ฒ์ด ์๋ ๊ฒ ๊ฐ๊ณ ์ฐ๋ฆฌ ์๊ฐ์ ๋ค๋ฅธ ๊ณณ์์ ๋ณด๋ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ช ํํ ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ฃผ์ ๋ฌธ์ ๋ ์ค๋ ๋๋ ํ์ฌ ์ ์๋ ๋๋ก ์ถ์ ์์ ์ ์ํฌ๋ก๋๋ฅผ netstandard
๋ก ์ด์ํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด ์๋ํ์ง ์๋๋ค๋ฉด ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ฒฝ์ ์ฐ๊ฒ ์ต๋๊น? ํ์ ์ฑ๋ฅ์ ๋ํด ๊ณ์ ์ด์ผ๊ธฐํ์ง๋ง(์ ๋ง ๋๋จํฉ๋๋ค.) ๋น ๋ฅด๊ฒ ๋ฌ๋ฆฌ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ต๋๋ค.
์ํคํ ์ฒ/ํ๋ซํผ ์ฑ ์์๋ก์ ์ ๋ ์ฐ๋ฆฌ๊ฐ ํ ๋ฒ ํ ์ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ํ์ฌ ์ด๊ฒ์ ๋์ ๋ฒ ํ ์ ๋๋ค. ๋ฒ์ 1์ด ๋น์ ์ ์ง์ํ์ง๋ง ๋ฒ์ 2๋ ์ง์ํ์ง ์์ง๋ง ์ธ์ ๊ฐ ๋ ์ง์ํ๊ฒ ๋ ๋, ๊ทธ๊ฒ์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์๊ฐ๊ณผ ๋์ผ๋ก ๋ง๋๋ ์ ๋ง ๋์ ๋๋ฐ์ ๋๋ค. ์ ์ด๋ ์ฐ๋ฆฌ๋ ๊ธฐ๋ฅ, ์์ฝ์์คํ ๋ฐ ์ง์์ ์ํด .NET์ ์ ํํ์ต๋๋ค. ํ์ฌ, ์๋ก์ด ๋จ์ด์์ ์ฐ๋ฆฌ๋ 3๊ฐ์ง ๋ชจ๋์์ 1๋ก ๋ฐ๋์์ต๋๋ค. ์ํ๊ณ๋ ์์ง ๊ฑฐ๊ธฐ์ ์์ผ๋ฉฐ(API ํ๋ฉด, libs), ์ง์์ ๋ณด์ฅ๋ ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก ์์ด ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ์งง์ต๋๋ค. ์ ์ ์๋ ์๊ฐ์ ๋๋ค.
@jahmai
์๋ํ ์ ์ผํ ์ด์ ๋ ํ์ฌ ASP.net ์ฝ์ด์์ SignalR์ ์คํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ ์์ํฌ๊ฐ ์ง์๋์๊ธฐ ๋๋ฌธ์ ๋๋ค( @davidfowl ๋๋ด). ๋ด๊ฐ ๋งํ ์ ์๋ ํ, SignalR์ ์ฌ์ ํ โโAsp.net Core์์ ์ง์๋์ง ์์ต๋๊น?
SignalR 2์กฐ์ฐจ๋ ASP.NET Core์์ ์ง์๋์ง ์์ต๋๋ค(์ฌ๋๋ค์ด ํดํนํ์ฌ ์๋ํ๊ฒ ๋ง๋ค๊ธฐ๋ ํ์ง๋ง). SignalR์ ์์ง ๊ฐ๋ฐ ์ค์ด๋ฉฐ ASP.NET Core 2.0๊ณผ ํจ๊ป ๋์ค์ง๋ ์์ต๋๋ค. ๋์ค์ ๋์ฌ ์์ ์ ๋๋ค.
์ด์ 12๊ฐ์ ์ด๋ด์ ๋ด๊ฐ ํ ์ ์๋ค๋ ๋ณด์ฅ๋ ์์ด ๊ธฐ๋ฅ์ด ์๋ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ ๋ ๋ง์ด ์ํํด์ผ ํ๊ณ , ์์ ํ๋๋ ๋ฌด๋ฆฌ์ ๋ฐ๋ผ ๊ทธ๋ฆฌ๊ณ ํ ์ ์์ด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฑด๊ฐ์? ๊ณ ๋ง์ง ๋ง ์ฌ์ ํ ๊ฒ.
ASP.NET Core 2.0์ ํ์ํ ๊ธฐ๋ฅ์ด ์์ต๋๊น? ์๋๋ฉด ๊ฒฐ๊ตญ ๋ค์ ASP.NET Core๋ก ์ ๊ทธ๋ ์ด๋ํด์ผ ํ๊ณ ๊ทธ ์์ ์์ .NET Framework์์ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์ถ์ธกํ๊ณ ์์ต๋๊น?
์ฒซ์งธ, ์ฌ๋๋ค์ด ํ์ฌ ASP.net ์ฝ์ด์์๋ง ์๋ํ๋ ASP.net ์ฝ์ด ์ ์ฒด ํ๋ ์์ํฌ์์ ์ฌ์ฉํ๊ณ ์๋ Microsoft ๋ธ๋๋์ ๋ชจ๋ ๊ฒ์ ๊ฐ์ ธ์ต๋๋ค. ๋์งธ, ์ํ๊ณ๊ฐ ์ํ๋ ๋๋ก ASP.net ์ฝ์ด๋ฅผ ์ฑํํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๋ค๋ฅธ ์์(์๋ ๊ฒฝ์ฐ)๋ฅผ ์ฐพ์ผ์ญ์์ค. ๊ทธ๋ฐ ๋ค์ ๋ ผ์ ์ค์ธ Netfx์ ๋ํ ์ง์์ ์ค๋จํฉ๋๋ค.
netstandard 2.0์ ์ผ๋ถ๋ก ์ค์ํ API๋ฅผ ์๋ณํ์ฌ .NET Framework๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋๋ถ๋ถ ๋ฐ์ด๋๋ฆฌ ํธํ ๊ฐ๋ฅํ๋๋ก ๋ง์ ์์ ์ด ์ํ๋์์ต๋๋ค. ๋ฌผ๋ก WCF, WPF ๋ฑ๊ณผ ๊ฐ์ด ์๋ํ์ง ์๋ ์์ญ์ด ์์ง๋ง ์ผ๋ถ ์ฐ๊ตฌ๋ฅผ ์ํํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ~60%๊ฐ netstandard 2.0๊ณผ ํธํ๋๋ API์ด๋ฏ๋ก ๋์์ด ๋ ๊ฒ์ ๋๋ค. @terrajobst) ๋ฐ .NET Core 2.0์์๋ง ์๋ํ ์ ์์ต๋๋ค.
๋ง์ต๋๋ค. ASP.NET Core 1.x๊ฐ ์๋๊ฐ์? 1.x์์ ์ง์์ด ํ์ฅ๋๋ค๋ฉด ์ถฉ๋ถํ์ง ์์๊น์?
์ ๋ .NET Standard 2.0์ด .NET 4.x์์ ํธํ์ฑ์ ์ฐ๊ฒฐํ๋ ์์ ์ ์ธ ํ๋ซํผ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์์ํ์ผ๋ฏ๋ก LTS ์ง์์ด ๊ทธ ์ฃผ๋ณ์ ์์ ๊ฒ์ด๋ผ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ ๋๋ค. ์๋ฌด๋ 1.1/.NET v4.x๊ฐ ๋ฆด๋ฆฌ์ค ์ค๊ฐ์ ์ค๋จ๋ ๊ฒ์ผ๋ก ์์ํ์ง ์์ผ๋ฏ๋ก ๋ฆด๋ฆฌ์ค๋๊ธฐ ์ ์ .NET 4.x ์ง์์ ํด์ ํ์ง ์๊ณ ์ต์ ๋ฒ์ ์ด ๋ฆด๋ฆฌ์ค๋ ๋ LTS๋ฅผ ๋ฐํํ๋ ๊ฒ์ด ์์์ ๋๋ค. ํ๋๋ ๊ทธ๋ฐ ์ด์ ๋ฒ์ ์ ํ๊ณ ํ๋ฉด์ LTS๋ฅผ ์ํํฉ๋๋ค.
.NET Core ํจํค์ง๋ฅผ ๋ณ๋์ *.Core
ํจํค์ง๋ก ์ ์ง ๊ด๋ฆฌํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ NuGet ํจํค์ง์ ๋ณํฉํ๋ ์๊ฐ ์ต์ .NET Core ๋ฒ์ ์ ๋ฐ๋ฅด๋ ๋ณ๋์ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ณต์์ ์ผ๋ก ์ง์ํ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค์ ์ ๋
ํ๊ณ ์์ผ๋ฏ๋ก ํ์ฌ .NET Standard๊ฐ ์๋ .NET Standard 2.0์์ ์์ํ๋ ๊ฐ๊น์ด ๋ฏธ๋์ ์ง์ํ ์ ์๋ ๋ฒ์ ์ด ์๋ค๋ ํ์ ์ด ํ์ํฉ๋๋ค. 1.1/1.3/1.6 ๋ฏน์ค. ์์ ์ ์ธ ํ๋ซํผ์ ์ ํธ๊ฐ ์๋ .NET Standard ๋ฒ์ ๊ด๋ฆฌ ๊ธฐ๋์น๋ฅผ ๊นจ๋ 2.0๊ณผ ํธํ๋์ง ์๋ 1.7/8 ์คํฑ ๊ฐญ ๋ฆด๋ฆฌ์ค๊ฐ ์์๋ ๊ฒ๋ ๊ธฐ์ตํฉ๋๋ค.
์ ๋ .NET Standard 2.0์ด ๋ง์ ์ฌ๋๋ค์ด ์ฐพ๋ ๊ณ ๋๋ก ํธํ๋๋ ํ๋ฉด์ ๊ณผ ๋งค์ฐ ํ์ํ ์์ ์ฑ์ ์ ๊ณตํ ์์ ์์ ๊ฑฑ์ ์ค๋ฝ๊ฒ ๊ธฐ๋ํด ์์ต๋๋ค.
SignalR 2์กฐ์ฐจ๋ ASP.NET Core์์ ์ง์๋์ง ์์ต๋๋ค(์ฌ๋๋ค์ด ํดํนํ์ฌ ์๋ํ๊ฒ ๋ง๋ค๊ธฐ๋ ํ์ง๋ง). SignalR์ ์์ง ๊ฐ๋ฐ ์ค์ด๋ฉฐ ASP.NET Core 2.0๊ณผ ํจ๊ป ๋์ค์ง๋ ์์ต๋๋ค. ๋์ค์ ๋์ฌ ์์ ์ ๋๋ค.
๋น์ ์ด ๊ทธ ์ง์ ์ ์ด๋ป๊ฒ ์๋ํ๋์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๋๋ ๊ทธ๊ฒ์ด ๋ด ์ฐ๋ ค๋ฅผ ๊ฐํ์ํจ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ASP.NET Core 2.0์ ํ์ํ ๊ธฐ๋ฅ์ด ์์ต๋๊น? ์๋๋ฉด ๊ฒฐ๊ตญ ๋ค์ ASP.NET Core๋ก ์ ๊ทธ๋ ์ด๋ํด์ผ ํ๊ณ ๊ทธ ์์ ์์ .NET Framework์์ ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์ถ์ธกํ๊ณ ์์ต๋๊น?
์ด๋ค ์ด์ ๋ก ์ธํด netstandard2๋ก ์ด๋ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ค๋ฉด ์น ์ฑ์ asp.net core 2๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๋ง์ฃ ?
netstandard 2.0์ ์ผ๋ถ๋ก ์ค์ํ API๋ฅผ ์๋ณํ์ฌ .NET Framework๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋๋ถ๋ถ ๋ฐ์ด๋๋ฆฌ ํธํ ๊ฐ๋ฅํ๋๋ก ๋ง์ ์์ ์ด ์ํ๋์์ต๋๋ค. <...>
๋ฌผ๋ก , ์ ๋ netstandard๋ก ์ํ๋๋ ์์ ์ ์ข์ํ์ง๋ง netstandard์์ ๋๋ฝ๋ ๊ฒ์ด ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ์๋ก ํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ด์ Xamarin.iOS, Xamarin.Android, net46, Asp.net core 1.1์์ ๊ณต์ ๋๋ ์์์ ์์ netstandard 1.3 ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์ ํฌ ์์ค)๊ฐ ์์ต๋๋ค. net46 ํญ๋ชฉ์ ํฌํจํ์ฌ ํน์ ํ๋ ์์ํฌ ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ netstandard์์ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ๋ณด์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. asp.net ํต์ฌ ์น ์ฑ์์.
์ฐ๋ฆฌ๊ฐ ์ด๋ฌํ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ _ ์ ์ผํ _ ์ด์ ๋ (์ด์ ์ ์ธ๊ธํ๋ฏ์ด) ๊ฑฐ๋ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค๋ฅธ ํ๋ซํผ์ ์ํด ํ๋ซํผ๋ณ ์ฝ๋ ๊ธฐ๋ฐ์ ํ์ฅํ ํ์๊ฐ ์๊ณ ๋์ netstandard ์ฒด์ธ์ ๊ณ์ํด์ ์ฌ๋ผ๊ฐ๊ณ ์ถ์ต๋๋ค. asp.net core 2๋ก ์ด๋ํ ์ ์๋ ๊ฒฝ๋ก๊ฐ ์๊ธฐ ๋๋ฌธ์ netstandard 1.3์ ์ฝ๋งค์ด๊ณ ์ถ์ง ์์ต๋๋ค.
๋ฌธ์ ์ ๋ํ ํ์ฑ ์์ - 1.x๊ฐ ์ฐ๋ฆฌ๊ฐ ๊นจ๋จ๋ฆฐ ๋ชจ๋ ๊ฒ์ ๋ํ ์์ ์ ๋ฐ์ต๋๊น, ์๋๋ฉด ์ผ๋ถ ๊ฒฝ์ฐ ์์ ์ ์ํด ์ ๊ทธ๋ ์ด๋ํ๋ผ๋ ๋ฉ์์ง๋ฅผ ๋ฐ์ต๋๊น? (์ฐธ๊ณ : ์ด๋ DirectoryServices์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ ๋๊น์ง ์ํํ ์ ์๋ ์ ๊ทธ๋ ์ด๋์ ๋๋ค. ๊ฐ๋ฅํ๋๋ผ๋ ๋ฌด๋ฃ ๋๋ ์ฌ์ง์ด ์ ๋ ดํ์ง๋ ์์ง๋ง ์ต์ํ ๋ช ๋ฌ์ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค.) ์ฐ๋ฆฌ๋ ํฌ๊ณ ๋น ๋ฅด๋ฉฐ ํ๋ ์์ํฌ์์ ํด์์ ์ฐพ์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์๋ ๊ฐ ๋ชจ๋ ๋ฉ์ด์ ๋ฐ ๋ง์ด๋ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ง์์ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ง์์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ค์ ๋ก ์ด๊ฒ์ด ํฐ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ผ๋ฉฐ ์ฌ๋๋ค์ด ๋ด๊ธฐ๋ฅผ ํ๋ ๋ฐ ๋ ์์ ๊ฐ์ ๊ฐ๊ฒ ๋๋ค๋ฉด 1.x์ ๋ํ ์ง์์ ๋ ๊ธด ๊ธฐ๊ฐ์ผ๋ก ์ฐ์ฅํ ๊ฐ์น๊ฐ ์์ ๊ฒ์ ๋๋ค.
์๋์, ์๋ํ๋ ๋ฒ์ ๊ณผ ์์ผ๋ก์ ๊ฒฝ๋ก๋ฅผ ์ํฉ๋๋ค. 1.x์์๋ ์ ๋ฐ๋ถ๋ง ์์ต๋๋ค. ์ด ๋ฌธ์ ๊น์ง ๋ ๋ฒ์งธ๋ ์ผ์ข ์ ๊ฐ์ ์ด์์ต๋๋ค.
๋ชจ๋ ์ข ์์ฑ์ด ์ด์๋ ๋๊น์ง 1.x๋ฅผ ์ ์งํด์ผ ํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์๋์?
@NickCraver ๋ชจ๋ ๋ถ๋ง ์ฌํญ์ ASP.NET Core๊ฐ ์๋ .NET Core์์ ๋๋ฝ๋ ์ฌํญ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. .NET Core 1.x ๋ฐ ASP.NET Core 1.x์์ ์ด๋ฌํ 2๊ฐ์ ์ํฐํฐ๋ ํจ๊ป ์ ๊ณต๋์ง๋ง ์์ ํ ๋ถ๋ฆฌ๋ฉ๋๋ค. v1์ด ๋ฌด์ธ๊ฐ๋ฅผ ์ง์ํ๊ณ v2๊ฐ ์ง์ํ์ง ์๋ ๊ฒ์ ๋ํ ์ ํจํ ์ฐ๋ ค ์ธ์ ํน๋ณํ ASP.NET Core 2.0์ ์ฌ์ฉํ๋ ค๋ ๋จ ํ ๊ฐ์ง ์ด์ ๋ ๋ฃ์ง ๋ชปํ์ต๋๋ค. .NET Core๋ก๋ง ์ด์ํ ์ ์๋ ๋ ๋ค๋ฅธ ์ด์ ๊ฐ ์๋ค๋ฉด(์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core๋ฅผ ๊ฐ๋ฐํ๋ ๋์ ๋ช ๊ฐ์ง ์๋ก์ด ์ข ์์ฑ์ ์ฌ์ฉํ์ ์ ์์ต๋๋ค.) ์์ ๋ก ์ด์๋์ง ์์ต๋๋ค).
๊ทธ๋ ๋ค๋ฉด ๋ถ์พํ์ง ์์ง๋ง ์ ๊ทธ๋ ๊ฒ ๋งํ๊ณ ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ์ง ์์ต๋๊น? ๊ทธ ๋ง์ ๋ ์ด์ ๋ ผ์ํ ๊ฒ์ด ์๋ ๊ฒ ๊ฐ๊ณ ์ฐ๋ฆฌ ์๊ฐ์ ๋ค๋ฅธ ๊ณณ์์ ๋ณด๋ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ๋ช ํํ ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ ๋ .NET Framework๋ฅผ ์ง์ํด์ผ ํ๋ ์ด์ , ์ง์ํด์ผ ํ๋ ๊ธฐ๊ฐ์ ํ์ ํ๊ธฐ ์ํด ์ฌ๊ธฐ์์ ๋ต์ฅ์ ํ๊ณ ์์ต๋๋ค. ๋๋ ์ฌ์ ํ ๊ทธ ์๊ฐ ํ๋ ์์ ๋ํด ์ด ์ค๋ ๋์์ ํผํฉ๋ ๋๋์ ๋ฐ๊ณ ์์ต๋๋ค. ๋ํ "ASP.NET Core 1.x๋ก ๊ฐ๋ฑ๋จ"์ ๋ํด ์ดํดํ ์ ์๋ ์ผ๋ฐ์ ์ธ ๋๋ ค์์ด ์์ง๋ง 2.x์ ํ์ํ ํน์ ๊ธฐ๋ฅ๊ณผ ๊ด๋ จํ์ฌ ๊ตฌ์ฒด์ ์ธ ๊ฒ์ ์์ต๋๋ค.
.NET Core์ ASP.NET Core๋ฅผ ๊ฒฐํฉํ ๋ ๋ด๊ฐ ์ข์ํ๋ ์ฃผ์ ์ฌํญ ์ค ํ๋๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ช ๋ช ๊ด๊ธฐ์ ์ผ๋ถ๋ฅผ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ ASP.NET Core๊ฐ .NET Framework์์ ์คํ๋๋ค๋ ์ฌ์ค์กฐ์ฐจ ๋ชจ๋ฆ ๋๋ค. ์ฆ, ๋ค์ํ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง ๋ง์ ๊ณ ๊ฐ์ด ์๊ณ ๊ทธ๋ค์ ํผ๋๋ฐฑ์ ๊ท๋ฅผ ๊ธฐ์ธ์ ๋๋ค.
@mythz
์ ๋ .NET Standard 2.0์ด ๋ง์ ์ฌ๋๋ค์ด ์ฐพ๋ ๊ณ ๋๋ก ํธํ๋๋ ํ๋ฉด์ ๊ณผ ๋งค์ฐ ํ์ํ ์์ ์ฑ์ ์ ๊ณตํ ์์ ์์ ๊ฑฑ์ ์ค๋ฝ๊ฒ ๊ธฐ๋ํด ์์ต๋๋ค.
๋ฌผ๋ก , ํ์ง๋ง ๋ด๊ฐ ๋งํ๋ฏ์ด 1.x์ ASP.NET Core, .NET Core ๋ฐ .NET Standard๋ ์์ ํ ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค. .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ง์ํ๋ ๋ชจ๋ ๋ฒ์ ์ .NET Core์์ ๋ชจ๋ .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ .NET Core 2.0์ด ์๋ก์ด LTS์ธ ๊ฒฝ์ฐ์๋ ASP.NET Core 1.x๊ฐ ์ง์๋๋ค๊ณ ์ ์ธํ ์ ์์ต๋๋ค.
@jahmai
์ด๋ค ์ด์ ๋ก ์ธํด netstandard2๋ก ์ด๋ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ค๋ฉด ์น ์ฑ์ asp.net core 2๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๋ง์ฃ ?
์๋์ค, ์ณ์ง ์์ต๋๋ค. ์น์ฑ์ ASP.NET Core 2.0์ผ๋ก ์ด๋ํ์ง ์๊ณ ์ํ ๋๋ง๋ค netstandard 2๋ก ์ด๋ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด๋ฌํ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ ์ผํ ์ด์ ๋ (์์ ์ธ๊ธํ๋ฏ์ด) ๊ฑฐ๋ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค๋ฅธ ํ๋ซํผ์ ๋ํ ํ๋ซํผ๋ณ ์ฝ๋ ๊ธฐ๋ฐ์ ํ์ฅํ์ง ์๊ณ ๋์ netstandard ์ฒด์ธ ์๋ก ๊ณ์ ์ด๋ํ๊ณ ์ถ์ต๋๋ค. asp.net core 2๋ก ์ด๋ํ ์ ์๋ ๊ฒฝ๋ก๊ฐ ์๊ธฐ ๋๋ฌธ์ netstandard 1.3์ ์ฝ๋งค์ด๊ณ ์ถ์ง ์์ต๋๋ค.
netstandard 1.3์ ์ง์ฐฉํ ํ์๊ฐ ์์ต๋๋ค. 2๊ฐ์ง๊ฐ ๊ด๋ จ์ด ์์ต๋๋ค.
๋ฒ์ 1์ด ์ง์ํ์ง๋ง ๋ฒ์ 2๋ ์ง์ํ์ง ์์ง๋ง _์ธ์ ๊ฐ๋ ์ง์ํ๊ฒ ๋ ๋, ๊ทธ๊ฑด ์ ๋ง ๋์ ๋๋ฐ์ ๋๋ค....
์ด๊ฒ์ด ๋ฌธ์ ์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฒฉ์ฐจ( DirectoryService
๋ฑ) ์ค _์ผ๋ถ_๊ฐ ์๋ ค์ ธ ์๊ณ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๋ ์๊ฒฌ์ ๋ฐ์์ต๋๋ค. ๊ทธ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ธ ๊ฒ์ด ํ์ํฉ๋๋ค.
๋๋ .NET Core๋ฅผ ๋์์ผ๋ก ํ๋ ASP.NET Core์ ๋ํด ๊ด์ฐฎ๊ณ ๋ก๋๋งต์ด ๋ช ํํ ๊ฒฝ์ฐ 2.0 ๋ณดํธ๋ฅผ ๋์น๊ณ ์ด๋ฌํ ๊ฒฉ์ฐจ(๊ทธ๋ฆฌ๊ณ ์ด๋ค ๊ฒฉ์ฐจ)๊ฐ ํด๊ฒฐ๋ ๊ฒ์ผ๋ก ์์ํ ์ ์๋์ง ํ์ธํฉ๋๋ค(๋ค์, ์ด์ ์ ์ด์ํ ์ถฉ๋ถํ ์๊ฐ์ด ์๋ค๊ณ ๊ฐ์ ). 1.X๋ ์ง์๋์ง ์์ต๋๋ค).
ํ์ฌ ์ํฉ์ผ๋ก ๋ณผ ๋ WCF์ ๋ํด ์ฐจ๋จ๋ ๋ฌธ์ ๋ 2015๋ 5์ ์ดํ ์ ์ฒด๋์ด ์์ผ๋ฉฐ ๊ฒฐ์ฝ ํด๊ฒฐ๋์ง ์์ ์ ์์ต๋๋ค.. ์ฐ๋ฆฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ข์ด์ํต๋๋ค.
@davidfowl
์๋์ค, ์ณ์ง ์์ต๋๋ค. ์น์ฑ์ ASP.NET Core 2.0์ผ๋ก ์ด๋ํ์ง ์๊ณ ์ํ ๋๋ง๋ค netstandard 2๋ก ์ด๋ํ ์ ์์ต๋๋ค.
ํ๋ฅญํ. ์ด ๊ฒฝ์ฐ Microsoft๊ฐ ๊ณ ๊ฐ์๊ฒ ์ ์ ํ 2.x ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก(์: SignalR)๋ฅผ ์ ๊ณตํ ๋๊น์ง 1.x๊ฐ ์ง์๋๋๋ก ํ๋ ํ(๋ชจ๋ ์ข ๋ฅ์ ๋ฒ๊ทธ ์์ ๋ฐ ์ด์ ์ง์), asp.net ์ฝ์ด 2๊ฐ ํ์ํฉ๋๋ค.
๋ชจ๋ ์ข ์์ฑ์ด ์ด์๋ ๋๊น์ง 1.x๋ฅผ ์ ์งํด์ผ ํ๋ค๋ ์๋ฏธ์ ๋๋ค. ์๋์?
๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์๋ ค์ง ๊ธฐ๊ฐ์ด์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ ์ง๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ๋ค์๋ ๊ฒ์ "2.0์๋ ์๋ค"๋ ๊ฒ๋ฟ์
๋๋ค...๊ทธ๋์ ์ข์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด System.DirectoryServices
๋ 2015๋
์ค๋ฐ๋ถํฐ ์์ฒญ๋์์ผ๋ฉฐ ์ฌ์ ํ ๋๋ฝ๋์์ง๋ง ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ์ํ๋ ๋๋ก ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค( System.Drawing
๊ฐ ๋ค๋ฐ๋ฆ). .NET Standard 2.0์ ~60% API ํจ๋ฆฌํฐ๋ก ๊ฐ์ ธ์ค๊ณ ์์ง๋ง ์ฌ์ฉ์๊ฐ ์์ฒญํ ๋นํธ๊ฐ ๋๋ฝ๋๋ฉด ๋ฌด์์ด ์ค์ํ์ง์ ๋ํ ํผํฉ ์ ํธ๋ฅผ ๋ณด๋ด๋ ๊ฒ์ด ๊ฐ์ฅ ํ์คํฉ๋๋ค.
๋ชจ๋ ๋ถ๋ง ์ฌํญ์ ASP.NET Core๊ฐ ์๋ .NET Core์์ ๋๋ฝ๋ ์ฌํญ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค.
๊ทธ๊ฒ์ ์๋ชป๋ ๊ฒ์ ๋๋ค. ์ง์๋๋ ํ๋ซํผ์์ ์คํํ๋ ๋ฐ ํ์ํ ๋นํธ(์: AD ์ธ์ฆ)๊ฐ ํ์ํฉ๋๋ค. ๋น ์ง ๊ฒ์ ํ์์ ์ง์์ ๋๋ค. 1.x์ ๋ํ ์ง์์ ํ์คํ ์ ์ ์ฃผ์ ๊ด์ฌ์ฌ์ ๋๋ค. ์ง์๋๋ ๊ฒฝ๋ก๋ ์์ ์ผ์ ์ด ์์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ 1๋ ์์ ๋๊ฐ์ ํ ๋ก ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค
๋๋ ๊ทธ๊ฒ์ด ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํ์ง ์๋๋ค. ๋ฌธ์ ๋ ์ค๋ ์ด์ํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. API๊ฐ ์์ต๋๋ค. ์ด์ํ ์ ์๋ ๋จ์ผ ์์ ์ด ์๋ ํ ๋ฏธ๋์ ๋ํ ๋ ผ์๋ ์ฝ๊ฐ ๋ฌด์๋ฏธํฉ๋๋ค. ASP.NET Core์ .NET ์ ์ฒด ํ๋ ์์ํฌ ์ง์์ ํจ๋ฆฌํฐ๊ฐ ์๊ณ ๋๋ถ๋ถ์ ์ฌ์ฉ์๊ฐ ์ด์ ํ ์ ์๊ฒ ๋๋ฉด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ ๋ฆด๋ฆฌ์ค๊ฐ ์ฌ๋๋ค์ด ๋์ด๊ฐ ์ ์๋ ๊ธด ์ง์ ๊ธฐ๊ฐ์ ๊ฐ์ง ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
DirectoryServices, Drawing ๋ฑ์ด 2.x์ ๋์จ๋ค๋ฉด ๋๋จํฉ๋๋ค. ํด๋น ๋ฆด๋ฆฌ์ค๋ .NET Framework๋ฅผ ์ง์ํ๊ณ LTS ๋ฆด๋ฆฌ์ค์ฌ์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ 3.x๋ ์ ์ฒด ํ๋ ์์ํฌ ์ง์์ ์ค๋จํด์ผ ํฉ๋๋ค.
.NET Core์ ASP.NET Core๋ฅผ ๊ฒฐํฉํ ๋ ๋ด๊ฐ ์ข์ํ๋ ์ฃผ์ ์ฌํญ ์ค ํ๋๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ๋ช ๋ช ๊ด๊ธฐ์ ์ผ๋ถ๋ฅผ ํด๊ฒฐํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ ASP.NET Core๊ฐ .NET Framework์์ ์คํ๋๋ค๋ ์ฌ์ค์กฐ์ฐจ ๋ชจ๋ฆ ๋๋ค. ์ฆ, ๋ค์ํ ์๊ตฌ ์ฌํญ์ ๊ฐ์ง ๋ง์ ๊ณ ๊ฐ์ด ์๊ณ ๊ทธ๋ค์ ํผ๋๋ฐฑ์ ๊ท๋ฅผ ๊ธฐ์ธ์ ๋๋ค.
์ถฉ๋ถํ ๊ณตํํ์ง๋ง "๊ทธ๊ฒ์ด ์๋ํฉ๋๊น?"์ ๋ถ์ฐจ์ ์ธ ๋ชจ๋ ๊ด๊ธฐ. ํ์ฌ๋ก์๋ ํ์ฌ ๋ฒํธ์ ๋๋ค. ASP.NET ๋ฐ .NET Core/Standard/๋ฌด์์ด๋ Microsoft ๋ด๋ถ์ 2๊ฐ์ง ์ธํธ์ผ ์ ์์ง๋ง(์์ ํ ์ดํดํฉ๋๋ค) ๊ฐ๋ฐ์์๊ฒ๋ ์ฌ์ ํ 1๊ฐ์ ํ๋ซํผ์ ๋๋ค. ASP.NET ์ธก์์๋ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ API๊ฐ ํ์ํ์ง๋ง ์์ง๊น์ง๋ ์์ต๋๋ค. ์ด ์ด๋์ ์ฌ์ฉ ๊ฐ๋ฅํ API๋ฅผ ๋์ฑ ์ค์ ๋๋ค. ASP.NET ํ์ ์ํ๋ ๊ฒ์ ์ป์ ์ ์์ง๋ง ์ฐ๋ฆฌ๊ฐ ํ์๋ก ํ๋ ๊ฒ์ ํฌ์ํด์ผ ํฉ๋๋ค.
@ctolkien @NickCraver
์ด๊ฒ์ด ๋ฌธ์ ์ ํต์ฌ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ผ๋ถ ๊ฒฉ์ฐจ(DirectoryService ๋ฑ)๊ฐ ์๋ ค์ ธ ์๊ณ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๋ ์๊ฒฌ์ ๋ฐ์์ต๋๋ค. ๊ทธ๋ณด๋ค ๋ ๊ตฌ์ฒด์ ์ธ ๊ฒ์ด ํ์ํฉ๋๋ค.
๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์๋ ค์ง ๊ธฐ๊ฐ์ด์ด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ ์ง๊ฐ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ง๊ธ๊น์ง ๋ค์๋ ์ ์ผํ ๊ฒ์ "2.0์๋ ์๋ค"๋ ๊ฒ์ ๋๋ค...๊ทธ๋์ ๊ทธ๊ฒ์ ์ข์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด System.DirectoryServices๋ 2015๋ ์ค๋ฐ๋ถํฐ ์์ฒญ๋์์ผ๋ฉฐ ์ฌ์ ํ ๋๋ฝ๋์์ง๋ง ์ฌ์ฉ์๊ฐ ๊ฐ์ฅ ์ํ๋ ๋๋ก ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค(System.Drawing์ ์ด์ด).
์ด๋ฌํ ๊ฒฉ์ฐจ๋ .NET Core ์์ฒด์ ๊ด๋ จ์ด ์์ผ๋ฉฐ ์ด๋ฌํ ์ข ์์ฑ์ ์ธ์ ์ฌ์ฉํ ์ ์๋์ง ์์ง ๋ชปํ๋ ๋ถ์์ ์ดํดํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ์ ์์๋ฅผ ์ง์ ํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ์ข์ ์์์ netstandard 2.0๊ณผ netcoreapp2.0์ด ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ ์ฝ๊ฒ ์ด์ํ ์ ์๋๋ก ๊ทธ๋ฃน ์์ ์ ์ํํ๋ค๋ ๊ฒ์ ๋๋ค. 2.0์ ์ถ์ํ ํ์๋ ๋งค์ฐ ํธํ๋๋ ๊ธฐ๋ฐ ์์ ๋ง์ ์ฝ๋๋ฅผ ํฌํ ํ์ฌ ๋ค๋ฅธ ์ข ์์ฑ์ ๋ถ๋ฌ์ค๋ ๊ฒ์ด ํจ์ฌ ๋ ์ฌ์ธ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
CSOM ์ netcore 2์์ ์คํ๋ฉ๋๊น? ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ๋ด๊ฐ ํ ๋ฒ๋ ๋ค์ด๋ณธ ์ ์ด ์๋ ์์ญ์ ๋ํ ๊ฑฐ๋ํ ๋ฐฉํด ์์๊ฐ ๋ ๊ฒ์ ๋๋ค.
@davidfowl ๋๋ ๊ทธ๋ ๊ฒ ๋๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ํฌ๋งํ์ง๋ง, ์ฐ๋ฆฌ ํ์ฌ๋ฅผ ๊ฑฐ๊ธฐ์ ๊ฑธ์ง๋ ์์ต๋๋ค. ๊ทธ ์ผ์ด ์ผ์ด๋๊ธฐ ์ ์ ์ง์์ ์ค๋จํ๊ณ ๊ทธ ์ดํ๊ฐ ์๋๋ผ ์ ๋ ๊ฐ๋ ฅํ๊ฒ ๋์ํ์ง ์์ต๋๋ค. ๋ง์ ์๋น์๋ฅผ ์ํ ์ค์ํ API๊ฐ ๋ฐฐ์น ๋ ํ 3.x ์๊ฐ ํ๋ ์์์ ์ด๋ฌํ ์ผ์ด ๋ฐ์ํ๋ ๊ฒ์ ์์ ํ ํ๋นํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ค๋น๊ฐ ๋๊ธฐ ์ ์ ๊ทธ๋ ๊ฒ ํ๋ฉด ์ ์์ด ์ค๋จ๋ฉ๋๋ค.
์ค์ํ API๊ฐ ์ค๋น๋ ๋๊น์ง 2.x(๋๋ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ/์์ ๋ ๋ชจ๋ ๊ฒ)๊ฐ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ง์ํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ 1.0์ ์ฑํํ๋ ๊ธธ์ ์์์ต๋๋ค. ). ํ์ง๋ง ์ด ์์ ์์ ์คํ์์๋ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์๋ชป๋ ๊ฐ์ ์ด์์ต๋๋ค. ํฌํธ์ ๋ฏธ๋๊ฐ ๋ถํ์คํ ์ํฉ์์ ์ ๋ ์์ฌ์ ์ผ๋ก ํ์๊ฒ .NET Core๋ฅผ ์ฌ์ฉํ๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ์ ๋ง ๊ทธ๋ฌ๊ณ ์ถ์ง๋ง ํ์ฌ๋ก์๋ ์ํ๊ณผ ๊ณ ํต์ ๊ฐ์น๊ฐ ์์ต๋๋ค.
@NickCraver
ASP.NET Core์ .NET ์ ์ฒด ํ๋ ์์ํฌ ์ง์์ ํจ๋ฆฌํฐ๊ฐ ์๊ณ ๋๋ถ๋ถ์ ์ฌ์ฉ์๊ฐ ์ด์ ํ ์ ์๊ฒ ๋๋ฉด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ ๋ฆด๋ฆฌ์ค๊ฐ ์ฌ๋๋ค์ด ๋์ด๊ฐ ์ ์๋ ๊ธด ์ง์ ๊ธฐ๊ฐ์ ๊ฐ์ง ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
์ฌ๊ธฐ์ "๋๋ถ๋ถ์ ์ฌ์ฉ์"๋ ๋ฌด์์ ๋๊น? ์ง์์ ์ค๋จํ ์ ์์ ๋๊น์ง ๋ค๋ฃจ์ด์ผ ํ๋ ์ข ์์ฑ ๋ชฉ๋ก์ ๋ฌด์์ ๋๊น? ๊ทํ์ ๋ชฉ๋ก์ ์ด ๋ชฉ๋ก์ ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ค๋ฆ ๋๋ค. ๋ํ ์ผ๋ถ ์ฌ๋๋ค์ ์์ํ ๋๋ .NET Core๊ฐ .NET Framework ํจ๋ฆฌํฐ์ ๋๋ฌํ ๋๊น์ง(๋นํ์ค์ ์) ๋งํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๋๋ ์ฌ์ ํ ASP.NET Core 1.x๊ฐ ๊ทธ ๋ชฉ์ ์ ์ถฉ๋ถํ๋ค๊ณ ์ฃผ์ฅํ ๊ฒ์ด๊ณ ์ฐ๋ฆฌ๋ ๊ทธ ๋๊น์ง ์ง์์ ํ์ฅ ํด์ผ ํฉ๋๋ค .
๊ทธ๊ฒ์ ์๋ชป๋ ๊ฒ์ ๋๋ค. ์ง์๋๋ ํ๋ซํผ์์ ์คํํ๋ ๋ฐ ํ์ํ ๋นํธ(์: AD ์ธ์ฆ)๊ฐ ํ์ํฉ๋๋ค. ๋น ์ง ๊ฒ์ ํ์์ ์ง์์ ๋๋ค. 1.x์ ๋ํ ์ง์์ ํ์คํ ์ ์ ์ฃผ์ ๊ด์ฌ์ฌ์ ๋๋ค. ์ง์๋๋ ๊ฒฝ๋ก๋ ์์ ์ผ์ ์ด ์์ต๋๋ค.
์ด ์๋๋ฆฌ์ค์์ ๋๋ฝ๋ ASP.NET ๊ตฌ์ฑ ์์๋ ๋ฌด์์ ๋๊น? 1.x ๋ 2.x๋ผ๊ณ ๋งํ ๋ ASP.NET Core ๋ .NET Core๋ฅผ ์ธ๊ธํ๋ฉด โโ์ ์ฉํ ๊ฒ์ ๋๋ค.
DirectoryServices, Drawing ๋ฑ์ด 2.x์ ๋์จ๋ค๋ฉด ๋๋จํฉ๋๋ค. ํด๋น ๋ฆด๋ฆฌ์ค๋ .NET Framework๋ฅผ ์ง์ํ๊ณ LTS ๋ฆด๋ฆฌ์ค์ฌ์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ 3.x๋ ์ ์ฒด ํ๋ ์์ํฌ ์ง์์ ์ค๋จํด์ผ ํฉ๋๋ค.
์ด์ ์ ์ด๊ฒ์ ์ธ๊ธํ๋๋ฐ, ASP.NET Core 1.x๊ฐ ์ด์ ์ถฉ๋ถํ์ง ์๊ธฐ ์ํด ์ด๋ค ASP.NET Core ๊ธฐ๋ฅ์ด ํ์ํฉ๋๊น?
ASP.NET ๋ฐ .NET Core/Standard/๋ฌด์์ด๋ Microsoft ๋ด๋ถ์ 2๊ฐ์ง ์ธํธ์ผ ์ ์์ง๋ง(์์ ํ ์ดํดํฉ๋๋ค) ๊ฐ๋ฐ์์๊ฒ๋ ์ฌ์ ํ 1๊ฐ์ ํ๋ซํผ์ ๋๋ค.
๋์ํ์ง๋ง ์ํฅ์ ์ ์ ํ๊ฒ ํ๊ฐํ ์ ์๋๋ก ์ด ๋ ผ์์ ๋ํ FUD๋ฅผ ์ ๋ฆฌํด์ผ ํฉ๋๋ค. ASP.NET Core 1.x๋ .NET Standard 1.x(1.0 - 1.6) ๋ฐ .NET Framework 4.5.1์ ๋์์ผ๋ก ํฉ๋๋ค. ์ด๋ ํด๋น ๋ฒ์ ์ netstandard ๋ฐ .NET Framework๋ฅผ ์ง์ํ๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์ด๋ ASP.NET Core 1.x๊ฐ .NET Core 2.0์์ ์คํ๋จ์ ์๋ฏธํฉ๋๋ค.
@smbecker
CSOM์ netcore 2์์ ์คํ๋ฉ๋๊น? ๊ทธ๊ฒ์ ์ฐ๋ฆฌ์ ๋ด๊ฐ ํ ๋ฒ๋ ๋ค์ด๋ณธ ์ ์ด ์๋ ์์ญ์ ๋ํ ๊ฑฐ๋ํ ๋ฐฉํด ์์๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ ํ ๋ชจ๋ฅธ๋ค. https://msdn.microsoft.com/en-us/library/ff798388.aspx์ ๋๊น? ๊ทธ๋ ๋ค๋ฉด ๋ช ์์ ์ผ๋ก ์ง์ํ๊ธฐ ์ํ ์์ ์ด ์ํ๋์ง ์์์ต๋๋ค. .NET Core 2.0์ .NET Framework ํธํ์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ ์๋ ์์ง๋ง ๋ด ์๊ฐ์๋ .NET Core๋ก ์ด์๋์ง ์์ ๊ฒ์ ๋๋ค(5๋ถ ๋์ ์ดํด๋ณธ ๊ฒฐ๊ณผ). ํ์ง๋ง ๋ด๊ฐ ํ๋ฆด ์ ์์ต๋๋ค.
์ฌ๊ธฐ์ "๋๋ถ๋ถ์ ์ฌ์ฉ์"๋ ๋ฌด์์ ๋๊น? ์ง์์ ์ค๋จํ ์ ์์ ๋๊น์ง ๋ค๋ฃจ์ด์ผ ํ๋ ์ข ์์ฑ ๋ชฉ๋ก์ ๋ฌด์์ ๋๊น? ๊ทํ์ ๋ชฉ๋ก์ ์ด ๋ชฉ๋ก์ ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ค๋ฆ ๋๋ค. ๋ํ ์ผ๋ถ ์ฌ๋๋ค์ ์์ํ ๋๋ .NET Core๊ฐ .NET Framework ํจ๋ฆฌํฐ์ ๋๋ฌํ ๋๊น์ง(๋นํ์ค์ ์) ๋งํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๋๋ ์ฌ์ ํ ASP.NET Core 1.x๊ฐ ๊ทธ ๋ชฉ์ ์ ์ถฉ๋ถํ๋ค๊ณ ์ฃผ์ฅํ ๊ฒ์ด๊ณ ์ฐ๋ฆฌ๋ ๊ทธ ๋๊น์ง ์ง์์ ํ์ฅํด์ผ ํฉ๋๋ค.
๊ฐ์ฅ ๋ง์ด ๋๋ฝ๋ API๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. ์ด๊ฒ์ด ๋๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ ์ฐจ๋จ์ ์ผ์ผํค๋ ์์ธ์ ๋๋ค. ์ฐ๋ฆฌ์๊ฒ ๊ทธ๊ฒ์ 1์์ธ DiretoryServices์ ๋๋ค. ๊ทธ๊ฒ์ด ๊ฑฐ๊ธฐ์๋ ์๋ค๋ฉด ์ปค๋ฎค๋ํฐ์ ์ ๋ง ๋์ ์ง์กฐ์ ๋๋ค. ๋ชฉ๋ก์ด ๋ค๋ฅด๋ค๋ ๋ฐ ๋์ํ์ง๋ง 1 ๋ฒ๋ ํฌํจํ์ง ์์ผ๋ฉด ...
์ด ์๋๋ฆฌ์ค์์ ๋๋ฝ๋ ASP.NET ๊ตฌ์ฑ ์์๋ ๋ฌด์์ ๋๊น? 1.x ๋ 2.x๋ผ๊ณ ๋งํ ๋ ASP.NET Core ๋ .NET Core๋ฅผ ์ธ๊ธํ๋ฉด โโ์ ์ฉํ ๊ฒ์ ๋๋ค.
์ด์ ์ ์ด๊ฒ์ ์ธ๊ธํ๋๋ฐ, ASP.NET Core 1.x๊ฐ ์ด์ ์ถฉ๋ถํ์ง ์๊ธฐ ์ํด ์ด๋ค ASP.NET Core ๊ธฐ๋ฅ์ด ํ์ํฉ๋๊น?
์ ์ฒด ํ๋ ์์ํฌ(๋ฐ๋ผ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ์ง์ํ๋ ์ต์ ASP.NET Core์ ๋ํ ์ง์์ ์๋ฏธํฉ๋๋ค. ๋ชจ๋, ๋ฉด๋๊ธฐ ํ์ด์ง ๋ฑ์ ์ํ๊ธฐ ๋๋ฌธ์ 2.x๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค . ์ฐ๋ฆฌ๋ 2.x ๊ธฐ๋ฅ์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์์ ์์ ์ ์ผํ ์ต์
์ 1.x์ธ ๊ฒ ๊ฐ์ต๋๋ค. ASP.NET 5์์ ASP.NET Core๋ก, ๋ชจ๋ ์์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ์ ์ฒด ํ๋ ์์ํฌ์์ ํ ๋ฒ์ netcoreapp
๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๋๋ฌด ๋ง์ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ญ๋๋ค. ๋๋ฌด ์ํํด ๊ทธ๋ฆฌ๊ณ ์ง๊ธ ์ฐ๋ฆฌ๋ ์ง์ ์ฐฝ ๋ด์์ ๊ทธ ๋น์ธ๊ณ ์ํํ ์์ง์์ ํ ์ ์๋์ง ํ์ ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์ ์ํฉ์
๋๋ค. ๋๋ฌด ๋๋น ์ ์์ง์ด์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค(ํ์ฌ ์ํฉ์์). ์ ๋ง ๋ถํํ ์ผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด ์๋๋ฆฌ์ค์์ ๋๋ฝ๋ ASP.NET ๊ตฌ์ฑ ์์๋ ๋ฌด์์ ๋๊น? 1.x ๋ 2.x๋ผ๊ณ ๋งํ ๋ ASP.NET Core ๋ .NET Core๋ฅผ ์ธ๊ธํ๋ฉด โโ์ ์ฉํ ๊ฒ์ ๋๋ค.
์ผ๋ถ Microsoft.Authentication.* NuGet ํจํค์ง๋ฅผ ํตํด AD ์ธ์ฆ/์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ๊ทธ๊ฒ์ ํฐ ๋ฌธ์ ์
๋๋ค. ์ ๋ ํ์ฌ ๊ฐ์ ๋ฐฐ๋ฅผ ํ๊ณ ์์ง๋ง .NET 462 ์์ .NET Core 1.1์ ์คํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํด๋ผ ์ ์์ต๋๋ค. ๊ทธ ์ธ์ ์ง์๋๋ ์๋จ์ ํตํด AD ๊ทธ๋ฃน, ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฟผ๋ฆฌํ ์ ์์ต๋๊น? ๋๋ corefx repo์์ System.DirectoryServices
์ ๋ํด ๋ง์ ์ผ์ด ์ผ์ด๋๊ณ ์๋ค๋ ๊ฒ์ ๋ณด์์ผ๋ฏ๋ก ์ ์ด๋ ๊ทธ๊ฒ์ ๋ํด ๋ง์กฑํฉ๋๋ค.
System.Data.Common.DbDataAdapter
/ SqlClient.SqlDataAdapter
. ํ์ฌ๋ ์ ์ฒด .NET Framework ์์ ์๋ .NET Core์์ ์คํํ ๋๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค. DbDataReader
/ SqlDataReader
๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ํธ๋ฆฌํ ๊ฒ ๊ฐ์์.
๊ธฐ๋ณธ์ ์ผ๋ก ASP.NET Core 2.x๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ ์ฒด .NET Framework ์์ด๋ AD ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ ์ผ๋ถ ์ง์ ๋ฐฉ์์ด ๋ณด์ฅ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
๋๋ ์ค๋ ์ด๊ฒ์ ๋ํด ๋ง์ด ์๊ฐํ๊ณ , ๋ด ๊ด์ฌ์ฌ๊ฐ ์ฌ๊ธฐ ์๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค๊ณผ ๋ค๋ฅด๋ค๋ ๊ฒ์ ์๊ฒ ๋์์ต๋๋ค(๊ทธ ๊ด์ฌ์ฌ๊ฐ ๊ทธ๋ค์ง ์ค์ํ์ง ์๊ฑฐ๋ ๋ ์ค์ํ์ง ์๋ค๋ ๊ฒ์ ์๋๋๋ค).
๋๋ ์ฌ์ ํ netstandard
์์ ASP.NET Core ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ์ ์ค ์ผ์ด์ค์ ๊ฐํ ์์ต๋๋ค. ์ด ๋ฌธ์ ๊น์ง ๋๋ netstandard
๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ฌ์ค์์ ๋ชฉํ๋ผ๊ณ (์๋ง๋ ์๋ชป) ๊ฐ์ ํ์ต๋๋ค. ์ฆ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์์ ์๋๋ ๋์์ ํ์ํ๊ณ ๊ฐ๋ ฅํ ์ด์ ๊ฐ ์๋ ํ netstandard
๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Framework๋ฟ๋ง ์๋๋ผ Xamarin ๋ฐ UWP์ ๊ฐ์ ๋ค๋ฅธ ํ๋ซํผ๊ณผ์ ํธํ์ฑ๋ ๋ณด์ฅ๋ฉ๋๋ค. .NET Standard 2.0์ ๋ํ ์์
์ ๋ค์ํ ๋ฐํ์์ API ๋
ธ์ถ ์์ญ์ ์๊ฐํ ํ์๊ฐ ์๋ ๊ณตํต ๋์์ผ๋ก ํตํฉํ๋ ค๊ณ ์๋ํจ์ผ๋ก์จ ์ด๋ฅผ ์ง์ํ๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.
๋์๊ฒ ์ด ๋ณํ๋ ๋ญ๊ฐ ๋ค๋ฅธ ์ ํธ๋ฅผ ๋ณด๋ธ๋ค. ๊ฒฐ๊ตญ ASP.NET Core๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ ๋ฟ์ด๋ฉฐ ๊ณตํต netstandard
๋
ธ์ถ ์์ญ์ ์ง์ํ์ง ์๋ "ํ์์ ์ด๊ณ ๊ฐ๋ ฅํ ์ด์ "๊ฐ ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ๋ํ ๊ฐ์ฅ ๋์ ๋๋ Microsoft ๊ฐ๋ฐ .NET ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์ด๋ฉฐ "์ฐ๋ฆฌ๋ ๊ฐ์ฅ ์ต์ ์ ๊ฒ์ ์ํ๋ฏ๋ก netstandard
์ง์์ ์ค๋จํ ๊ฒ์
๋๋ค"๋ผ๊ณ ๋งํจ์ผ๋ก์จ ๋ค๋ฅธ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ์(๋๋ ์ต์ํ ์ ์๊ฒ๋ ๊ทธ๋ ์ต๋๋ค) ์๋ง๋ netstandard
๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ด์ฌํ ๋
ธ๋ ฅํ๋ ๊ฒ์ ๋ฉ์ถ๊ณ ํต์ฌ ๋ฐํ์์ ๋ชฉํ๋ก ์ผ๊ธฐ ์์ํด์ผ ํ ๊ฒ์
๋๋ค. Microsoft๊ฐ ๊ทธ๋ค์ง ์ ๊ฒฝ ์ฐ์ง ์๋๋ฐ๋ ์ ๊ทธ ๋ชจ๋ ํธํ์ฑ ๋ฌธ์ ์ ์ ๊ฒฝ์ ์ฐ๊ฒ ์ต๋๊น? .NET Core 4 ์๋ช
. ๊ทธ๋ฆฌ๊ณ ์๋ง๋ ๊ทธ๊ฒ์ด ์ต์ ์ผ ๊ฒ์
๋๋ค. ์ฌ๋ฌ ๋ฐํ์๊ณผ ๋๋ถ๋ถ ํตํฉ๋ API ๋
ธ์ถ ์์ญ์ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํ๋ ๊ฒ๊ณผ๋ ํ์คํ ๋ค๋ฆ
๋๋ค.
์ด ๋ฌธ์ ๋ ASP.NET Core์ ASP.NET ์ปจํ
์คํธ ์ธ๋ถ์์ ์ง์ ์ ์ผ๋ก ์ ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ํฌํจ๋์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ๋์ฑ ์ฌํ๋ฉ๋๋ค. ๊ทธ๊ฒ๋ค์ด ๊ณ ๋ฆฝ๋์ด ์ฌ์ฉ๋๋๋ก ์๋๋ ์ ์ด ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ์๋ชป๋ ๊ฒ์ผ ์๋ ์์ง๋ง, ๊ทธ๊ฒ๋ค์ ๋์จํ๊ฒ ํ๋ ๊ฒ์ ๋์ฐํ ์์น์ผ ๊ฒ์
๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ ์์ ์ ๋์์ .NET Core๋ก ์ ํํ๊ฑฐ๋ netstandard
๋ฅผ ์ ์งํ๊ณ ์ด์ ๋ํ ์ก์ธ์ค ๊ถํ์ ๋์จํ๊ฒ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๋๋ ๋ง์ ์ฌ๋๋ค์ด ๋์ ํ๋ซํผ์ ๋ํด ๋ ์ธ๋ถํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์์ ์ ํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ด๋ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์๋ก ๋ค๋ฅธ ํ๋ซํผ์ ๋์์ผ๋ก ํ๋ ๊ฒ์ด ๋๋ฌด ์ด๋ ต๋ค๋ ์ค๋ช
์ ์ดํดํ๋ค๋ฉด.
๋ง์ง๋ง์ผ๋ก, ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์๋ก์ด API๊ฐ ASP.NET๊ณผ ํจ๊ป rev์ ์ถ๊ฐ๋ ๊ฒ์ด๋ผ๋ ์ฌ๊ธฐ ๋๊ธ์ ๋ํด ๋ค์(์กฐ๊ธ ๋) ๊ฑฑ์ ์ด ๋ฉ๋๋ค. ํนํ ์ด๋ฌํ ์ API๋ netstandard
๋๋ .NET Framework์ ํฌํจ๋์ง ์์ ์ ์์ต๋๋ค. ๋ ๊ฑฐ์ ๋ฐ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์ญ์ ๋๊ฑฐ๋ ๋์จํด์ง๋ฉด ์ํํ ์ ์๋ ๋ช ๊ฐ์ง ํฅ๋ฏธ๋ก์ด ์ผ์ด ์์ ์ ์๋ค๋ ๊ฒ์ ํ์คํ ์ดํดํฉ๋๋ค. ํ์ง๋ง ์์งํ ๋งํด์ ASP.NET Core ํ์ด ์์ ๋๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฐ๋์ ๋์ ๊ฒ์ ์๋์ง๋ง ๋ค๋ก ๋ฌผ๋ฌ๋์ผ ํ๋ ์ฌ๋ฌ ๊ด๋ฒ์ํ ๊ฒฐ์ ์ผ๋ก ์ด์ด์ก์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฐํ์ ์ธํธ๋ฅผ ํฌ๊ฒ ๋ถ์ด์ํค๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋์ง ๊ถ๊ธํ์ง ์์ ์ ์์ต๋๋ค. ๋ํ Xamarin, Mono, UWP ๋ฑ).
์ด ์ ์ฒด ์ค๋ ๋๋ก ์ธํด netstandard
๋์ .NET Core๋ฅผ ์ค์ฌ์ผ๋ก .NET์ ๋ฏธ๋์ ๋ํ ์ดํด์ ๋ฐฉํฅ์ด ๋ฐ๋์์ต๋๋ค. ์ด์ฉ๋ฉด ๋ด๊ฐ ๊ทน๋จ์ ์ด๊ณ ์์ผ๋ก ๋ช ์ฃผ ์์ ์ํ๋ ์๋ ์๊ณ , ์ฌ์ง์ด ๊ทธ๊ฒ์ด ์๋ํ ์
์ฅ์ด๊ณ ๊ทธ๊ฒ์ด ์ต์ ์ผ ์๋ ์์ต๋๋ค. ์ด๋ ์ชฝ์ด๋ , ์ ๋ ํ์ฌ ๋๊ฐ์ ๋ด ์์ ์ ์ํด .NET Core๋ฅผ ๋์์ผ๋ก ํ๊ณ ์ถ์ ์ ํน์ ๋ฐ์ต๋๋ค. ์ฌ๊ธฐ์์ ์ฝ์ ๋ชจ๋ ๊ฒ์์ ์์ผ๋ก ๋์๊ฐ๋ ๊ฒ์๋ง ์ง์คํ์ญ์์ค.
@NickCraver
์ ์ฒด ํ๋ ์์ํฌ(๋ฐ๋ผ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ์ง์ํ๋ ์ต์ ASP.NET Core์ ๋ํ ์ง์์ ์๋ฏธํฉ๋๋ค. ๋ชจ๋, ๋ฉด๋๊ธฐ ํ์ด์ง ๋ฑ์ ์ํ๋ฏ๋ก 2.x๊ฐ ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๋ 2.x ๊ธฐ๋ฅ์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
์ง๊ธ์ 1.1.1์ ๋๋ค(2.0์๋ ๋ชจ๋์ด ์์). Razor Pages๋ ์ข์ ์ ํ์ด๊ณ ๋ค๋ฅธ ํ๋๋ SignalR์ ๋๋ค. ์ด 2๊ฐ์ง๊ฐ ์ด ์์ ์ ์ผ๋ถ๋ก ๊ฐ์ฅ ๊ณ ํต์ค๋ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ASP.NET 5์์ ASP.NET Core๋ก, ๋ชจ๋ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ์ ์ฒด ํ๋ ์์ํฌ์์ ํ ๋ฒ์ netcoreapp์ผ๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๋๋ฌด ๋ง์ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ญ๋๋ค. ๋๋ฌด ์ํํด ๊ทธ๋ฆฌ๊ณ ์ง๊ธ ์ฐ๋ฆฌ๋ ์ง์ ์ฐฝ ๋ด์์ ๊ทธ ๋น์ธ๊ณ ์ํํ ์์ง์์ ํ ์ ์๋์ง ํ์ ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋์ ์ํฉ์ ๋๋ค. ๋๋ฌด ๋๋น ์ ์์ง์ด์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค(ํ์ฌ ์ํฉ์์). ์ ๋ง ๋ถํํ ์ผ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋๋ ๋๋์? ์ข ์์ฑ์ด ์ด์๋์๋ค๋ ๊ฐ์ ํ์ ASP.NET Core 1.x์์ 2.x ๋๋ 3.x๋ก์ ์ด๋์ ๊ฐ๋จํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ASP.NET Core๋ก ์ด๋ํ ๊ณํ์ด๋ผ๋ฉด 1.1๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ฉฐ ์ด๋ฅผ ํผํ๊ธฐ ์ํด ์์ ์ ์ ์ฅํ์ง ์์๋ ๋ฉ๋๋ค.
@snickler
๊ธฐ๋ณธ์ ์ผ๋ก ASP.NET Core 2.x๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ ์ฒด .NET Framework ์์ด๋ AD ์ธ์ฆ์ ์ฒ๋ฆฌํ๋ ์ผ๋ถ ์ง์ ๋ฐฉ์์ด ๋ณด์ฅ๋๋ค๋ ๊ฒ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค.
System.DirectoryServices๊ฐ .NET Core์์ ์ง์๋ ๋๊น์ง .NET Framework์์ ASP.NET Core 1.x๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ ๊ฐ ์์ต๋๊น?
System.DirectoryServices๊ฐ .NET Core์์ ์ง์๋ ๋๊น์ง .NET Framework์์ ASP.NET Core 1.x๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ ๊ฐ ์์ต๋๊น?
๊ทธ๊ฒ์ด ๋ด๊ฐ ํ์ฌ ํ๊ณ ์๋ ์ผ์ด๋ค. ํ์ํ์ง ์์ ๊ฒฝ์ฐ .NET Framework์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ฌ Mono์๋ System.DirectoryServices.AccountManagement
๋ค์์คํ์ด์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ด Windows ์ปดํจํฐ๋ก ์ ํ๋ฉ๋๋ค. ๊ฐ์ ๋งฅ๋ฝ์์ Windows์ ์ ์ฝ ์กฐ๊ฑด์ ๋ฒ์ด๋ System.DirectoryServices.AccountManagement
๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ๊ทธ ์์ ์กฐ๊ฐ์ผ๋ก ์ธํด MVC ํ๋ก์ ํธ์ Xamarin.iOS ์ฑ์ ๋ก์ปฌ๋ก ๋๋ฒ๊น
ํ๋ ๋์ ์ปดํจํฐ ๊ฐ์ ์ด๋ํด์ผ ํฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก ASP.NET Core๋ก ์ด๋ํ ๊ณํ์ด๋ผ๋ฉด 1.1๋ก ์ด๋ํ๋ ๊ฒ์ด ์ข์ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ฉฐ ์ด๋ฅผ ํผํ๊ธฐ ์ํด ์์ ์ ์ ์ฅํ์ง ์์๋ ๋ฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์๋ํ๋ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ๋๊น์ง ์ง์์ด ์์๋ค๋ ๊ฒ์ ์์๋ค๋ฉด ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ์ง๊ธ ๋น์ฅ์ .NET Core ์ธ๊ณ์์ ์ธ์ ํ์ํ ๋นํธ๋ฅผ ์ฌ์ฉํ ์ ์์์ง ์ ์ ์์ผ๋ฏ๋ก ์ง๊ธ ์๊ฐ ์ ํ์ ์ค์ ํ๊ณ ํด๋น ๋นํธ๊ฐ ์ธ์ ์ฌ์ง ๋ชจ๋ฅด๋ ๊ฒ์ ์ฝ์์ ๋ฒ ํ ํ๋ ๊ฒ ์ ๋๋ค. ๊ทธ๊ฒ์ด ํต์ฌ ๋ฌธ์ ์ ๋๋ค. ํฌํ ์ ํ์ฉํ๋ ์ง์๋๊ณ ๊ฒน์น๋ ๋ฆด๋ฆฌ์ค๊ฐ ์๋ค๋ฉด ๊ธฐ๊บผ์ด ํฌ์ํ๊ฒ ์ต๋๋ค. API๊ฐ ์กด์ฌํ๊ธฐ ์ ์ ์ง์์ด ์ค๋จ๋๋ค๋ฉด, ์ฐ๋ฆฌ๋ ์ ์ ์๋ ์์ ํ์ฃผ๋ก์ ํจ๊ป ๋ฏฟ์์ ๊ฒฉ์ฐจ๋ฅผ ๋ฐ์ด ๋๋ ๊ฒ์ ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด ์ค๋๋ netcoreapp2.0
์์ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ์๊ธฐ ๋๋ฌธ์ DirectoryServices๋ฅผ ๊ณ์ ์ฐธ์กฐํ๊ณ ์์ต๋๋ค. ๋ฌผ๋ก ๊ฐ์ ๋ฐฐ์ ๋จ์ด์ง๋ ๋ค๋ฅธ ๊ฒ๋ค์ด ์์ ๊ฒ์
๋๋ค. ์ผ๋ถ ํ๋ซํผ์์๋ ๋ช ๋
๋์ ASP.NET Core + ์ ์ฒด ํ๋ ์์ํฌ + ์ง์์ด ํ์ํฉ๋๋ค. 1.x์์๋ ๋ง์ ์ด๋์ ์ป์ง ๋ชปํ๊ณ ์ค์ ๋ก๋ ๊ฑฐ์ ์ป์ง ๋ชปํฉ๋๋ค. ์ฑ๋ฅ์ ์ด๋ฏธ ~18ms ๋ด์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๊ณ ์ ์ก ์๊ฐ์ ์ํด ์์ํ๊ธฐ ๋๋ฌธ์ ๋ฉ์ง ์ธ์๊ฐ ์๋๋๋ค. ๊ทธ๋ฌ๋ 2.0์ ๊ฝค ์ข์ ํญ๋ชฉ์ ์ ๊ณตํฉ๋๋ค. Razor ํ์ด์ง์ ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ฅ์ฑ์ ์ด์ํ๊ธฐ์ ๋งค์ฐ ๋งค๋ ฅ์ ์
๋๋ค. ์ ๋นํ๋ ๋งํผ.
์ง๊ธ ๋น์ฅ์ ์ง์์ ๋ฐ์ ์ ์๋ ์ ์ผํ ๋ฒ์ (๋ ๊ธด ์ง์์ด ์๋ 1.1.x๋ ์ด ์ค๋ ๋๋ฅผ ์ฝ์ ํ ์์ํ ๊ฒ์ ๋๋ค)์ ์ด๋ํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ค๋๋ ์ฐ๋ฆฌ๊ฐ ์๋ ๊ณณ๊น์ง ์ค๊ธฐ ์ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ง์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ด ํ์ํ ๊ฒ์ ๋๋ค. 2.x๋ ์ต์ํ ์ฐ๋ฆฌ๊ฐ ํ์ฉํ๊ณ ์ ํ๋ ์ ์ ํ ๊ฐ์ ์ฌํญ๊ณผ ๋นํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด์ฌ ๋น์ฉ์ ์ ๋นํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ด๋ฏธ ~18ms ์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ ๋ฉ์ง ์ธ์๊ฐ ์๋๋๋ค.
์ฌ์ํ OT์ ๋ํด ~18ms @NickCraver ์์ ํ์ด์ง๋ฅผ ๋ ๋๋งํ ์ ์๋ ๋ฐฉ๋ฒ์ ์๊ณ ์ถ์ต๋๋ค. ๊ต์ฅํด
@daveaglick
๋๋ ์ฌ์ ํ netstandard์์ ASP.NET Core ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ ์ ์ค ์ผ์ด์ค์ ๊ฐํ ์์ต๋๋ค. ์ด ๋ฌธ์ ๊น์ง ๋๋ netstandard๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ค์์ ๋ชฉํ๋ผ๊ณ (์๋ง๋ ์๋ชป) ๊ฐ์ ํ์ต๋๋ค. ๋ค์ ๋งํด, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์์ ์๋๋ ๋์์ ํ์ํ๊ณ ์ค๋๋ ฅ ์๋ ์ด์ ๊ฐ ์๋ ํ netstandard๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด Framework๋ฟ๋ง ์๋๋ผ Xamarin ๋ฐ UWP์ ๊ฐ์ ๋ค๋ฅธ ํ๋ซํผ๊ณผ์ ํธํ์ฑ๋ ๋ณด์ฅ๋ฉ๋๋ค. .NET Standard 2.0์ ๋ํ ์์ ์ ๋ค์ํ ๋ฐํ์์ API ๋ ธ์ถ ์์ญ์ ์๊ฐํ ํ์๊ฐ ์๋ ๊ณตํต ๋์์ผ๋ก ํตํฉํ๋ ค๊ณ ์๋ํจ์ผ๋ก์จ ์ด๋ฅผ ์ง์ํ๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค.
์ฌ๊ธฐ์์ ๋ณ๊ฒฝ๋ ์ฌํญ์ ์์ต๋๋ค. ์ฌ์ค ์ฐ๋ฆฌ๊ฐ ๋ค๋ฅธ ํ๋ซํผ์์ ์คํํ๊ณ ์ ํ๋ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ ์ฌ์ ํ netstandard์ ๋๋ค. ์์ ๋ด์ฉ ์ค ์ผ๋ถ๋ฅผ ๋ค์ ์ฝ์ผ๋ฉด:
.NET Standard๋ ์ด๋์์๋ ์คํ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๋ ์ฌ์ค์์ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ ๊ฐ๋ฅํ ํ ๊ฐ์ฅ ๊ด๋ฒ์ํ ํ๋ซํผ ๋๋ฌ ๋ฒ์๋ฅผ ์ป๊ธฐ ์ํด netstandard๋ฅผ ๋ชฉํ๋ก ์ผ์์ผ ํฉ๋๋ค. ๋์๊ด ์ ์๋ ๋๋ฌ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด JSON.NET๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard1.x ๋ฐ .NET Framework 2.0์ ์ง์ํ๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ค์ ์์์ ์ธ๊ธํ @JamesNK ์ฒ๋ผ ์ผ์ด "์ ์ ์๋"ํ๋๋ก ํ๊ธฐ ์ํด ๋ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ ๋๋ค.
์ผ๋ถ ์ฅ์์์ netstandard์์ ๋ฉ์ด์ง๋ ASP.NET Core๋ ์ด๋ฌํ API๊ฐ UWP ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ฒ์ด ์๋๋ฉฐ ์ฐ๋ฆฌ๋ ํ์คํ (์๋ฅผ ๋ค์ด) ํ ์คํธํ์ง ์๋๋ค๋ ์ง์ ์ ๊ฐ๊น์ต๋๋ค. ๋ํ .NET Core์ ASP.NET Core๊ฐ ํจ๊ป ๋ฒ์ ์ด ์ง์ ๋๋ ๋จ์ผ ์ ํ์ด๋ผ๋ ๊ฒ์ ํ๊ณ ํ ํ๋ ค๊ณ ํฉ๋๋ค(์ด๋ฆ์ Core๊ฐ ์๊ธฐ ๋๋ฌธ์). .NET Core์ .NET Framework๋ฅผ ๋ชจ๋ ์ง์ํ๋ ASP.NET Core 1.x์์๋ ํด๋น ๋ฉ์์ง๊ฐ ์ฝ๊ฐ ํ๋ฆฟํ๊ณ ๋ง์ ์ฌ๋๋ค(ํนํ ์ ๊ท ๊ฐ๋ฐ์)์๊ฒ ํผ๋์ ์ผ๊ธฐํ์ผ๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฉ์ฐจ ๋ฌธ์ ๋ฅผ ์ํํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ ASP.NET Core์ ASP.NET ์ปจํ ์คํธ ์ธ๋ถ์์ ์ง์ ์ ์ผ๋ก ์ ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ํฌํจ๋์ด ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋ ๋์ฑ ์ฌํ๋ฉ๋๋ค. ๊ทธ๊ฒ๋ค์ด ๊ณ ๋ฆฝ๋์ด ์ฌ์ฉ๋๋๋ก ์๋๋ ์ ์ด ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ์๋ชป๋ ๊ฒ์ผ ์๋ ์์ง๋ง, ๊ทธ๊ฒ๋ค์ ๋์จํ๊ฒ ํ๋ ๊ฒ์ ๋์ฐํ ์์น์ผ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ ์์ฒด ๋์์ .NET Core๋ก ์ ํํ๊ฑฐ๋ netstandard๋ฅผ ์ ์งํ๊ณ ์ด์ ๋ํ ๋์จํ ์ก์ธ์ค๋ฅผ ๊ฒฐ์ ํด์ผ ํฉ๋๋ค. ๋๋ ๋ง์ ์ฌ๋๋ค์ด ๋์ ํ๋ซํผ์ ๋ํด ๋ ์ธ๋ถํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์์ ์ ํํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ด๋ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์๋ก ๋ค๋ฅธ ํ๋ซํผ์ ๋์์ผ๋ก ํ๋ ๊ฒ์ด ๋๋ฌด ์ด๋ ต๋ค๋ ์ค๋ช ์ ์ดํดํ๋ค๋ฉด.
๋๋ ๊ทธ๊ฒ๋ค์ด ์ฌ์ ํ ๋ท์คํ ๋ค๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ค ๊ฒ์ด ๊ทธ๋ ์ง ์์ต๋๊น?
๋๋ ์ด๊ฒ์ด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ฐํ์ ์ธํธ๋ฅผ ํฌ๊ฒ ๋ถ์ด์ํค๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ค๋์ง ๊ถ๊ธํ์ง ์์ ์ ์์ต๋๋ค. ๋ํ Xamarin, Mono, UWP ๋ฑ).
netstandard ๊ฐ ๋ฐ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง .NET Framework๋ ํญ์ ์๋ก์ด API๋ฅผ ์ป๋ ๋ง์ง๋ง ๋ฒ์ ์ด ๋ ๊ฒ์ ๋๋ค(Xamarin ๋ฐ Mono๋ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๋ฐ ๋งค์ฐ ๋น ๋ฆ ๋๋ค).
@snickler
๊ทธ๊ฒ์ด ๋ด๊ฐ ํ์ฌ ํ๊ณ ์๋ ์ผ์ด๋ค. ํ์ํ์ง ์์ ๊ฒฝ์ฐ .NET Framework์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ฌ Mono์๋ System.DirectoryServices.AccountManagement ๋ค์์คํ์ด์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ด Windows ์์คํ ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ฐ์ ๋งฅ๋ฝ์์ Windows์ ์ ์ฝ ์กฐ๊ฑด์ ๋ฒ์ด๋ System.DirectoryServices.AccountManagement๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ๊ทธ ์์ ์กฐ๊ฐ์ผ๋ก ์ธํด MVC ํ๋ก์ ํธ์ Xamarin.iOS ์ฑ์ ๋ก์ปฌ๋ก ๋๋ฒ๊น ํ๋ ๋์ ์ปดํจํฐ ๊ฐ์ ์ด๋ํด์ผ ํฉ๋๋ค.
dotnet/corefx์์ ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ์ ์ถํด์ผ ํฉ๋๋ค. ๋น์ ์ ์์กด์ฑ์ด ์ด์๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ (๋ง์ด ์ฌ์ฉ๋์ง ์๋ ํ) ์๋ชป๋ ์ผ์ ๋๋ค.
@davidfowl ์ง๋ฌธ: ASP.NET Core 2.0์ ์ฌ์ฉํ์ฌ ํ์ผ -> ์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ AD์ ๋ํด ์ธ์ฆํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฅํ ๊น์? ์ด ๊ธฐ๋ฅ์ด ์๋ Microsoft ํ๋ซํผ ์ถ์๋ ์์ํ ์ ์์ต๋๋ค.
๊ฑฐ๊ธฐ ์๋ ๋ชจ๋ ๊ฒ์ ๋์ํ์ง๋ง ์ด ๊ฒฐ์ ์ด ๋น์ ์ ๋ง์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ ๊ทธ ๋ชจ๋ ๊ฒ์ ์ํ๋ค
.NET v4.x์ ๋ํ ์ง์์ ์ค๋จํ๋ฉด ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์ค๋จ๋๊ณ .NET ์์ฝ์์คํ ์ด ๋์ฑ ์ธ๋ถํ๋์ด ๋ง์ ๊ฐ๋ฐ์์ ์กฐ์ง์ด ์ด๋ฅผ ์ฑํํ ์ ์๊ฒ ๋์ด ๋ ๋์ ์ปค๋ฎค๋ํฐ ์ง์ ํ๊ณผ ASP ํฌ์๊ฐ ์ค์ด๋ค ๊ฒ์ ๋๋ค. ๋ง์ .NET ๊ฐ๋ฐ์๊ฐ ๊ธฐ์กด ASP.NET v4.x ์ฝ๋ ๊ธฐ๋ฐ์ ๋ฌด๊ธฐํ ์ง์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ .
.NET Core์ ์์ฅ ์ ์ ์จ์ด ์์์๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ง์ํ๋ ์ฐ์ ์์๊ฐ ๋ฎ๊ณ ์ผ๋ถ๋ ๋ค์์ผ๋ก ์ธํด ๋ ์ด์ ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณ ๋ คํ ์ ์๋ ์กฐ์ง์์ ์ผํ๋ ๊ฒฝ์ฐ ์ง์ํ์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด๊ฒ์ ์ฐจ๋ก๋ก ํจํค์ง์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์ํฅ์ ๋ฏธ์น๋ ์์ ๋๋ค. ์ด๋ ๋ชจ๋ ์์ ์ ์ธ ํ๋ซํผ์ด ์๊ณ ์ฅ๊ธฐ์ ์ธ ์ง์์ด ๋ณด์ฅ๋์ง ์์ ์ธ๊ธฐ ์๋ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์ค๋จ๋์ด ASP.NET Core ์ฑํ์ ๋ํ ๋ถ๋ด์ด ์ฆ๊ฐํ๋ ๋ถ์์ฉ์ ๋๋ค.
์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋๋ค์ด .NET ์์ฝ์์คํ ์ด ๋ฒ์ฑํ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ์๊ฐํ์ง๋ง, ์๋ ค์ง ์๋, ๋์ ํธํ์ฑ, ์์ ์ ์ธ LTS ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์์ผ๋ก ๋ช ๋ ๋์ ํด๋ก์ด ์ํฅ์ ๋ฏธ์น ์ค์์ ๋๋ค.
@davidfowl ๊ฐ์ฌํฉ๋๋ค - ๊ทํ์ ์๊ฒฌ์ ๋ง์ ๋์์ด ๋ฉ๋๋ค. ์ด ๋ณ๊ฒฝ์ ์ผ๋ถ๋ก ๋๋ถ๋ถ์/๋ชจ๋ ์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard
์์ ๋ฒ์ด๋๊ณ ์๋ค๋ ๊ฒ์ (๋ถ๋ช
ํ ๋ถ์ ํํ๊ฒ) ์์งํ์ต๋๋ค. ๋๋ ๊ฝค ๋ง์ด ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๋ ์๊ณ ์์ผ๋ฏ๋ก ๊ทธ๋ค์ด ์ฌ์ฉํ์ง ์๋๋ค๋ ์์์ ๋ฃ๋ ๊ฒ์ ๋ฐ๊ฐ์ด ์์์
๋๋ค.
@NickCraver ์ค๋ AD์ ๋ํด ์ด๋ค ์ข ๋ฅ์ ์ธ์ฆ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น? OpenIdConnect, WsFed, NTLM, ๊ธฐํ?
@Tratcher AD ์ธ์ฆ, DirectoryServices๋ฅผ ํตํด(๊ทธ๋ฃน ๊ตฌ์ฑ์ ์๊ฒฉ ๋ฑ์ ์ฟผ๋ฆฌํด์ผ ํจ - ํ์ค ๋นํธ)
@mythz ๋๋ ๊ทธ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํ๊ณ ASP.NET Core 1.x์ ์ง์ ์๋ช ์ ์ฐ์ฅํ๋ฉด ๋๋ถ๋ถ์ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์ ์ถฉ๋ถํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ ์์ ์์ ์ ์ด ๊ฒฐ์ ์ ๋ด๋ ค์ผ ํ๋์ง ์์ง๋ง ๋๋ฌด ์๊ธฐ์์กฐ์ด๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ๊ฐ์ฅ ํ๋ณตํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋จ์ํ ASP.NET Core 1.1์ ๋ํ ์ง์์ ํ์ฅํ๋ ๊ฒ๋ง์ผ๋ก๋ ํด๋น ํ๋ซํผ์ด ๋ง์ ASP.NET ๋ง์ด๊ทธ๋ ์ด์ ์ ๋์์ด ๋ ๋งํผ ์ถฉ๋ถํ ์ฑ์/์ฑํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ถฉ๋ถํ์ง ์์ต๋๋ค(์ ๊ฒฝ์ฐ์๋ SignalR์ด ์ฐจ๋จ๊ธฐ์).
lulz์ ๋ํด์๋ง EntityFramework 6(๋ด๊ฐ ์์ ํ ASP.NET Core 1.0 ์ฑ์์ ๋ง์ด ์ฌ์ฉ๋๋ ๊ฒ์ ๋ณธ ์ ์ด ์์)์ ์ต์ preview2 .NET Core ์ผ๊ฐ ๋น๋์ ํจ๊ป ์ฌ์ฉํด ๋ณด์์ต๋๋ค. ๋ญ์ง ๋ง์ถฐ๋ด...
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<NetStandardImplicitPackageVersion>2.0.0-*</NetStandardImplicitPackageVersion>
<RuntimeFrameworkVersion>2.0.0-preview2-002093-00</RuntimeFrameworkVersion>
<PackageTargetFallback>net45;net461</PackageTargetFallback>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EntityFramework" Version="6.1.3" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.0-*" />
</ItemGroup>
</Project>
์ ์ฒด ํ๋ ์์ํฌ์ฉ์ผ๋ก ์ค๊ณ ๋ฐ ์ปดํ์ผ๋ ์ด์ ๋ธ๋ฆฌ๊ฐ .NET Core์์ ์๋ฒฝํ๊ฒ ์๋ํ๋ ์ฒํ์ง ๋ง์ญ์์ค. ์ฌ์ํ ๊ฒฝ์ฐ(hello world ์ฑ ์ฝ๊ธฐ)๊ฐ ์๋ํ ์ ์์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋๋ฝ๋ API ๋๋ ์๋ํ์ง ์๋ API๋ก ์ธํด ์ฐจ๋จ๋ฉ๋๋ค. .
์ ๋์ ์ผ๋ก ๋์ฐํ ๊ฒ์ ๋ฐํ์์ ์๋ํ์ง ์๋๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์
๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ์ ํ ๋ช
ํํ์ง ์์ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด .NET Core์ SqlClient
๋ TransactionScope
๋ฅผ ์ฌ์ฉํ ์ฐ๋น์ธํธ ํธ๋์ญ์
์ฐธ์ฌ๋ ๋ถ์ฐ ํธ๋์ญ์
์ ์ง์ํ์ง ์์ต๋๋ค. EF 6์ด ์๋ํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ TransactionScope
์ ํ ํจ๊ณผ์ ์ด์ง ์์ผ๋ฉฐ DB ํธ์ถ์ด ํ์ํ ๊ฒฉ๋ฆฌ ์์ค์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
๋๋ ์ด ์์ง์์ ๋ํ ๋์ ์ฐ๋ ค์ ๋ํด ์ฌ๊ธฐ์ 2์ผํธ๋ฅผ ๋ํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. WPF์์ ๊ฐ๋ฐ๋ ์๋ก์ด ์์ญ ์ค ์ผ๋ถ๊ฐ ํฌํจ๋ ์ฃผ๋ก Windows Forms์ธ ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์์ต๋๋ค. ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ์ 15๋ ์ด์์ ๋ ธ๋ ฅ์ด ์์๊ณ WinForms์์ ์์ ํ ๋ฒ์ด๋๋ ค๋ฉด ๋ช ๋ ์ด ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์์ผ๋ฉด ์ข๊ฒ ์ง๋ง ๊ทธ๋ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด ์น ์ธํฐํ์ด์ค์ ๊ธฐ์กด WinForms ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋น์ฆ๋์ค ๋ฐ ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต์ ์ฌ์ฉํ ์ ์๋๋ก ์ฝ๋๋ฒ ์ด์ค์ ๋ ๋ง์ ๋ชจ๋์ฑ์ ๊ตฌ์ถํ๊ธฐ ์ํด ๋ ธ๋ ฅํด ์์ต๋๋ค. ๋๋ ์๋ก์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ๊ณง ASP.NET Core๋ก ์ด๋ํ๋ ค๊ณ ํ์ง๋ง ๋ฐฉ๊ธ ์ธ๊ธํ๋ฏ์ด .NET v4.6.x๋ฅผ ๋์์ผ๋ก ํ๋ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ๋๋ถ๋ถ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. System.Drawing ๋ฐ System.Security.Cryptography๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ํ ์์์ ์ธ๊ธํ ๋ฐฉ์์ผ๋ก TransactionScope๋ฅผ ๋ง์ด ์ฌ์ฉํฉ๋๋ค.
MEF์ ์์กดํ์ง ์๊ณ ๋ ์น ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ญ์ ๋ณ๋์ ์ด์ ๋ธ๋ฆฌ๋ก ์บก์ํํ๋ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ASP.NET Core์ ์ด์ ์ ๋ชจ๋ ์ป์ ์ ์๊ธฐ๋ฅผ ๊ณ ๋ํ์ต๋๋ค. ์ด ์ธ์๋ ๋ง์ ์ด์ ๊ฐ ์์ง๋ง ๊ทธ ์ค ํ๋๊ฐ ์ ๋ง ์ข์ ์ด์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ASP.NET Core๋ก ์ ํํ๋ฉด WinForms๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์๋ ์ฝ๋์ ์ด์์ฑ์ ์ ์งํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ฐ๊น์ด ์ฅ๋์ 1.x์ ๊ณ ์ ๋ ๊ฒ์ ๋๋ค. ์ ๋ ์ฃผ๋ก ์น ์ ํ์ ์ค์ ์ ๋์๊ธฐ ๋๋ฌธ์ WMI ๋ฑ๊ณผ ๊ฐ์ ํญ๋ชฉ์ ์ฐ๊ฒฐํ๋ ์์น๋ฅผ ๋งํ ์ ์์ผ๋ฉฐ ์ด์์ฑ ๋ฌธ์ ์ ์ํฅ์ ๋ฏธ์น๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ง๋ง ์ฐ๋ฆฌ๋ ์ฝ๋๋ฒ ์ด์ค ๋ด์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ง๊ธ ์ ๋ง ํฅ๋ฏธ๋ก์ด ๋จ๊ณ์ ์์ผ๋ฉฐ ๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ํด์ผ ํ ์ผ์ ์ฐ๋ฆฌ ๊ธฐ๋ฅ์ ๋ชจ๋ ์น ๋ฒ์ ์ ASP.NET MVC 5์ ๊ฐ๋ฐํ๊ณ ์ผ๋ถ ๋ฒ์ ์ผ๋ก ์ด์ํด์ผ ํ๋ ๋ง์ ์๋ก์ด ๋ ๊ฑฐ์ ์ฝ๋๋ฅผ ์ถ์ ํ๋ ๊ฒ์ ๋๋ค. ๋ฏธ๋์ ๋ ธ๋ ฅ.
์ฐ๋ฆฌ๊ฐ ๋ ์ด์ WinForms๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ์๋ .NET Standard๋ฅผ ๋์์ผ๋ก ํ์ง ์๋๋ก ํ๋ ๋ง์ ์ฉ๋๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ Microsoft ํํธ๋์ด๋ฉฐ ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ฐ๋ฆฌ ์ ํ์ ๋ํด Microsoft์ ์ง์ ํ๋ ฅํ๋ฏ๋ก ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ํ๋ ์ผ์ ๋ํด ๋๋ฌด ์์ธํ ์ค๋ช ํ๊ณ ์ถ์ง๋ ์์ง๋ง @ ์ ์ข ๋ ๊ฐ์ธ์ ์ธ ํ ๋ก ์ ํ๊ณ ์ถ์ต๋๋ค. @davidfowl ์ด ํ๋ ์ผ์ ๋ํ ์์ธํ ์ ๋ณด๊ฐ ํ์ํ๋ฉด ์ ๋ ๋ํ MS Build์ ์ฐธ์ํ ์์ ์ด๋ฉฐ ์ฐธ์ํ์ค ๊ฒฝ์ฐ ๊ทธ๊ณณ์์ ๋ง๋ ์ด์ผ๊ธฐ๋ฅผ ๋๋ ์ ์์ต๋๋ค.
๋๋ ๋น์ ์ด ์ด๋ฌํ ์ข ๋ฅ์ ๋์ ์ ๋น์ ์ ์คํ์ ์ฌ์ฉํ๋ ํ์ฌ๋ฅผ ๊ณ ๋ คํ์ง ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์์ ํ ๋ฉด์ฑ ์กฐํญ: ์ ๋ ์์ ์ธ๊ธํ ์ด์์ฑ ๋ถ์๊ธฐ๋ฅผ ์คํํ์ฌ ์ฝ๋๋ฒ ์ด์ค ๋ด์์ ์ด์์ฑ์ ์ ์งํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ์ค์ ๋ก ๋งํ ๋ถ๋ถ์ ํ์ธํ๋ ค๊ณ ํฉ๋๋ค. ํด๋น ๊ฒ์ฌ์ ์คํจํ .NET Framework API ๋ชฉ๋ก์ ๊ธฐ๊บผ์ด ์ ๊ณตํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋ฌด์ํํ. ์์ด์ผ ํ ์ง ์ธ์ด์ผ ํ ์ง ๋ชจ๋ฅด๊ฒ ๋ค...
๋ค์์ ์๋ํ์ง ์๋ ์ฌ์ํ 23์ค EF 6 ์ฑ์ ๋ํด ApiPort ๋ถ์ ๋๊ตฌ์์ ์์ฑํ ๋ณด๊ณ ์์ ๋๋ค.
ํฌ๋ก์ค ์ปดํ์ผ์ ๊ณ ๊ฐ ๋ฐ ์ ํ ์๊ตฌ ์ฌํญ๊ณผ ๊ท ํ์ ์ด๋ฃจ์ด์ผ ํ๋ ์ค๋ฒํค๋์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ด ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ ํ๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ASP.NET Core๊ฐ ์์ผ๋ก ๊ณ์ ๋ฐ์ ํจ์ ๋ฐ๋ผ ๊ณ ๊ฐ๊ณผ ์ฐ๋ฆฌ ๋ชจ๋์ ํ๊ฒฝ์ด ์ด๋ค ๋ชจ์ต์ผ์ง ๋ณด๋ค ๊ตฌ์ฒด์ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๊ฐ ์ด๋ฆฌ๊ธฐ ์ ์ ํผ๋๋ฐฑ ํ๋ก์ธ์ค๊ฐ ์์์ต๋๊น?
์ฐ๋ฆฌ๋ ๋ชจ๋ 1.1์ ๋ํ ์๊ฐ ํ๋ ์ ๋ฐ ์ง์์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง๋ง ASP.NET Core๊ฐ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์์ ์ญ์ ํ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ์ ์๊ฒ ์์ฒญ๋ ๋๋ผ์์ผ๋ก ๋ค๊ฐ์์ต๋๋ค.
๋ด๊ฐ ์ดํดํ ๊ฒ์ ํต์ฌ ํ๋ ์์ํฌ๊ฐ ํฌ๋ก์ค ํ๋ซํผ ํ๋ ์ด, ์ฆ Windows์ ์ฐ๊ฒฐ๋์ง ์์ ์ ์ฒด ํ๋ ์์ํฌ์ ํ์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ์๋ก์ด ํ๋ ์์ํฌ๋ผ๋ ๊ฒ์ ๋๋ค. 2.0 ๋ฆด๋ฆฌ์ค๋ ๋๋ถ๋ถ์ API๋ฅผ ๋ค์ ์ป์ ์ ์๋ ๊ณณ์์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ธฐ๋ค๋ ค์จ ๋ฆด๋ฆฌ์ค์์ต๋๋ค.
ASP.NET Core๋ ํ๋ ์์ํฌ API์ ์์ ํ๋ฉด ์์ญ์ ์์กดํ์ฌ ๋ชจ๋ ๊ณณ์์ ์คํํ ์ ์๋ ์๋ก์ด ์น ํ๋ ์์ํฌ์ธ ์ด ์๋ก์ด ํ๋ ์์ํฌ์ ๊ฐ๋ฐฅ์ด์์ต๋๋ค.
ํต์ฌ ํ๋ ์์ํฌ๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์ ๊ฑฐ์ ๋๋ฑํด์ง๋ฉด ๋ชจ๋ ์ API๊ฐ netstandard์ ์ถ๊ฐ๋์ด ๊ฒฐ๊ตญ ๋ ํ๋ ์์ํฌ์ ๋ชจ๋ ํฌํจ๋ ๊ฒ์ด๋ผ๊ณ ์์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ netstandard๋ฅผ ๋ชฉํ๋ก ํ๊ธฐ ์์ํ ๊ฒ์ด๊ณ ๋ชจ๋ ๊ฒ์ด ๋ฌด์ง๊ฐ์ ์ ๋์ฝ์ด ๋ ๊ฒ์ ๋๋ค.
์ด์ ASP.NET์ ์ฐพ์ผ๋ ค๋ฉด dogfood netstandard๋ ์๋๊ณ ํ๋ ์์ํฌ๋ณ๋ก ์งํ๋ฉ๋๋ค. eh :/
@๋กํ์ธ
๋จ์ํ ASP.NET Core 1.1์ ๋ํ ์ง์์ ํ์ฅํ๋ ๊ฒ๋ง์ผ๋ก๋ ํด๋น ํ๋ซํผ์ด ๋ง์ ASP.NET ๋ง์ด๊ทธ๋ ์ด์ ์ ๋์์ด ๋ ๋งํผ ์ถฉ๋ถํ ์ฑ์/์ฑํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ถฉ๋ถํ์ง ์์ต๋๋ค(์ ๊ฒฝ์ฐ์๋ SignalR์ด ์ฐจ๋จ๊ธฐ์).
SignalR์ด ASP.NET Core 1.x์์ ์๋ํ๋ค๋ฉด? ๋น์ ์ด ํ์๋ก ํ๋ ํ๋ซํผ์ ๋ํด ๋ฏธ์ฑ์ํ ๋ค๋ฅธ ๊ฒ์ ๋ฌด์์ ๋๊น?
@millman82 ๊ณต์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. .NET Framework ์ง์์ด ์ ์ ์ค๋จ๋๊ธฐ ์ ์ ๋ฒ์ ์์ ๋ฉ์ถ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์์ 2.x ํธํ์ ์ ์งํ๊ณ 3.x์์ ์ญ์ ํ๋ ์ ์ ์ค ์ผ๋ถ๋ ๊ทํ์๊ฒ ์ ํฉํ์ง ์์ ์๋ ์์ต๋๋ค. ASP.NET Core 1.x๋ฅผ ๊ณ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๋น์ ์ ํญ๊ตฌ์ ํ์ํ ๊ฒ์ด ๋ฌด์์ ๋๊น? ์๋๋ฉด @NickCraver ์ ๊ฐ์ ๊ด์ฌ์ฌ์ ๋๊น(2.x๊ฐ ์ด๋ฅผ ์ง์ํ์ง ์์ผ๋ฉด ๋ด๊ธฐ๋ฅผ ํ๋ ๊ฒ์ ๋ํด ๊ธด์ฅํ๊ฒ ๋ฉ๋๋ค).
@jkells
ํต์ฌ ํ๋ ์์ํฌ๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์ ๊ฑฐ์ ๋๋ฑํด์ง๋ฉด ๋ชจ๋ ์ API๊ฐ netstandard์ ์ถ๊ฐ๋์ด ๊ฒฐ๊ตญ ๋ ํ๋ ์์ํฌ์ ๋ชจ๋ ํฌํจ๋ ๊ฒ์ด๋ผ๊ณ ์์ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ netstandard๋ฅผ ๋ชฉํ๋ก ํ๊ธฐ ์์ํ ๊ฒ์ด๊ณ ๋ชจ๋ ๊ฒ์ด ๋ฌด์ง๊ฐ์ ์ ๋์ฝ์ด ๋ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ฉ๋ฆฌ ๊ฐ์ ธ ์ค๋ ๊ฒ์ด ์๋๋ฉฐ ์๊ฐ ๊ตฌ์ฑ ์์๊ฐ ๋๋ฝ๋์์ต๋๋ค. ๊ฒฐ๊ตญ ๊ฐ์์ ์ผ์ ์ ๋ฐ๋ผ ๋ฐฐ์ก๋๋ ๋ชจ๋ ํ๋ ์์ํฌ์ ํฌํจ๋ฉ๋๋ค.
์ด์ ASP.NET์ ์ฐพ์ผ๋ ค๋ฉด dogfood netstandard๋ ์๋๊ณ ํ๋ ์์ํฌ๋ณ๋ก ์งํ๋ฉ๋๋ค. eh :/
์ด ์ค๋ ๋์์ ์ฌ๋ฌ ๋ฒ ์ธ๊ธํ๋ฏ์ด ๊ทธ ์ค ์ผ๋ถ๋ ์ฌ์ ํ netstandard๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
ASP.NET Core 1.x๋ฅผ ๊ณ์ ์ฌ์ฉํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋น์ ์ ํ ์ ์์ต๋๋ค - 2.0์ด ๋จ์ด์ง ๋๋ถํฐ 1๋ ๋์ ์ง์์ด ์ค๋จ๋ฉ๋๋ค(2.0์ด ๋ค์ LTS๋ผ๊ณ ๊ฐ์ ).
@davidfowl ํ์คํ ๊ทธ ๋ถ๋ถ์ด ์๋นํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ OData ๋ฐ SignalR์ ์ฌ์ฉํ๋ฉฐ, ์ด์ ํ๊ธฐ ์ ์ ASP.NET Core์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ์ํ์ง ์๋ ํ ๊ฐ์ง๋ ASP.NET Core 1.x์ ๋ํ ์ง์์ด ์ค๋จ๋๊ณ ํ์ฌ ์ง์๋์ง ์๋ ์ฌ์ฉ ์ค์ธ ํ๋ ์์ํฌ ๋ถ๋ถ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์์ ๋ ๋ฆผ๋ณด์ ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ ๋ ASP.NET Core๊ฐ ASP.NET ๋๋งค๋ฅผ ๋์ฒดํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๊ฒ์ ๊ธธ ์๋ ์ด๋๊ฐ์ ์์์ง๋ ๋ชจ๋ฅด์ง๋ง ๊ทธ๊ฒ์ ์ค๊ณ ์์ต๋๋ค. ์ด์ ASP.NET MVC 5์์ UI๋ฅผ ๋ค์ ์์ฑํ๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค(์ง๊ธ์ ๋ช ๊ฐ์ง๊ฐ ์์ง๋ง ํฌ๊ธฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ํ๊ธฐ ์ฝ์ต๋๋ค). ๋ช ๋ ํ์ ASP.NET Core์์ ๋ค์ ์์ฑํฉ๋๋ค. ASP.NET์ ์๋ช ์ด ๋คํ๋ฉด.
์ง๊ธ Core 1.x๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ ์ค๊ฐ์ ํ์ฅ๋๋ ๊ฒฝ์ฐ ASP.NET Core 1.x์ EOL์ด ๋์ฐฉํ ๋ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ์ง ์์ผ๋ฉด ์ ์ฌ์ ์ผ๋ก ์ฌํ๊ฒ ํ์์ ์ ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ง๋ ๋ง์ดํฌ๋ก ์๋น์ค๋ก ๊ทธ ์ค ์ผ๋ถ๋ฅผ ํ์ํ ์ ์์ง๋ง ๋ฌผ๋ก ์์ฒด์ ์ธ ์ฐ๋ ค๊ฐ ์์ต๋๋ค.
@ctolkien
๋น์ ์ ํ ์ ์์ต๋๋ค - 2.0์ด ๋จ์ด์ง ๋๋ถํฐ 1๋ ๋์ ์ง์์ด ์ค๋จ๋ฉ๋๋ค(2.0์ด ๋ค์ LTS๋ผ๊ณ ๊ฐ์ ).
2.0์ด ๋จ์ด์ง ๋ ์ง์์์ ๋ฒ์ด๋์ง ์๋๋ค๊ณ ์ ์ ๊ฐ์ ํ์ญ์์ค. ์ถฉ๋ถํ์ง ์์ต๋๊น?
๊ทธ๋ฌ๋ ๋ด๊ฐ ์ํ์ง ์๋ ํ ๊ฐ์ง๋ ASP.NET Core 1.x์ ๋ํ ์ง์์ด ์ค๋จ๋๊ณ ํ์ฌ ์ง์๋์ง ์๋ ์ฌ์ฉ ์ค์ธ ํ๋ ์์ํฌ ๋ถ๋ถ์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์์ ๋ ๋ฆผ๋ณด์ ๊ฐํ๋ ๊ฒ์ ๋๋ค.
ํด๋น ๋ฌธ์ฅ์์ 1.x๋ฅผ 2.x๋ก ๋ฐ๊ฟ๋๋ค. 1๋ ์์ ๋ชจ๋ ์ข ์์ฑ์ด ์ด์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
ํด๋น ๋ฌธ์ฅ์์ 1.x๋ฅผ 2.x๋ก ๋ฐ๊ฟ๋๋ค. 1๋ ์์ ๋ชจ๋ ์ข ์์ฑ์ด ์ด์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
๊ทธ๋ฌ๋ ์ ํ ๊ทธ๋ ์ง๋ ์์ง๋ง ๋ ์ด์ .NET Full์ ๋์์ผ๋ก ํ ์ ์์ ๋ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ์ ๊ทธ๊ฒ์ ๋ฐ์ด๋ถ์ด๋ ค๋์ง ์ดํดํ์ง๋ง ๋๋ฝ๋ ์ข ์์ฑ์ด ์ด์๋์ง ์์๊ธฐ ๋๋ฌธ์ ํ์ฌ์์ ์ ๋ฒ์ ์ผ๋ก ์ ํํ ์๋จ ์์ด ์ง์์ด ์ค๋จ๋๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ฑํํ ๊ฒ์ผ๋ก ๊ธฐ๋ํ ์๋ ์์ต๋๋ค.
๋๋ฝ๋ ์ข ์์ฑ์ด ์ด์๋์ง ์์๊ธฐ ๋๋ฌธ์ ํ์ฌ์์ ์ ๋ฒ์ ์ผ๋ก ์ ํํ ์๋จ ์์ด ์ง์๋์ง ์๋ ๊ฒ์ ์ฑํํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ์๋ ์์ต๋๋ค.
์ ์ง์์์ ๋จ์ด์ง๊น์? ๋ด ๊ฐ์์ ์ธ๊ณ์์๋ .NET Framework์์ ASP.NET Core 1.x๋ฅผ ๋ ์ค๋ ์ง์ํ ๊ฒ์ ๋๋ค.
์ ์ง์์์ ๋จ์ด์ง๊น์? ๋ด ๊ฐ์์ ์ธ๊ณ์์๋ .NET Framework์์ ASP.NET Core 1.x๋ฅผ ๋ ์ค๋ ์ง์ํ ๊ฒ์ ๋๋ค.
๋ด ์ง๋ฌธ์ ์ผ๋ง๋ ๋ ์ค๋์ ๋๊น? ๋ํ ํ์ SignalR ๋ฐ OData์ ๊ฐ์ ํ์ ์ข ์์ฑ์ ASP.NET Core 1.x๋ก ๊ฐ์ ธ์ค๊ณ ๋๋ฝ๋ ๋ชจ๋ ์ข ์์ฑ์ด ์ค์ ๋ก ์ด์๋ ๋๊น์ง ์ง์์ ์ ์งํ ๋งํผ ์ถฉ๋ถํ ํฐ ํ์ ๋๊น? ์ง๊ธ .NET ์ ์ฒด ์ง์์ ์ค๋จํ๋ ค๋ ์ด์ ์ ๋ํด ์ด์ ์ ๋ง๋ ์ฃผ์ฅ์ ๋ฐ๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์งํ ์ง๋ฌธ...
๋ด ์ง๋ฌธ์ ์ผ๋ง๋ ๋ ์ค๋์ ๋๊น? ๋ํ ํ์ SignalR ๋ฐ OData์ ๊ฐ์ ํ์ ์ข ์์ฑ์ ASP.NET Core 1.x๋ก ๊ฐ์ ธ์ค๊ณ ๋๋ฝ๋ ๋ชจ๋ ์ข ์์ฑ์ด ์ค์ ๋ก ์ด์๋ ๋๊น์ง ์ง์์ ์ ์งํ ๋งํผ ์ถฉ๋ถํ ํฐ ํ์ ๋๊น? ์ง๊ธ .NET ์ ์ฒด ์ง์์ ์ค๋จํ๋ ค๋ ์ด์ ์ ๋ํด ์ผ์ฐ์ด ์ ๊ธฐํ ์ฃผ์ฅ์ ๋ฐ๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์งํ ์ง๋ฌธ...
๋ ์์์ ์ซ์๋ฅผ ๋ฒ๋ฆด๊ฑฐ์ผ, 3 ๋ . ASP.NET ํ์ Odata ํตํฉ์ ์์ ํ๊ณ ์์ง ์๊ณ odata ํ์ด ์์ ํ๊ณ ์์ผ๋ฏ๋ก ์ ๊ฐ ๋ต๋ณ์ ๋๋ฆด ์ ์์ต๋๋ค. SignalR์ ๊ฒฝ์ฐ ASP.NET Core 1.x๋ฅผ ๋์์ผ๋ก ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ๋ณด๋ ๋ฌธ์ ๋ ๊ฐ ์ฌ๋์ด ์๋ก ๋ค๋ฅธ "๋๋ฝ๋ ์ข
์์ฑ" ์งํฉ์ ๊ฐ์ง๊ณ ์์ด ๋ชจ๋ ์ฌ๋์ ๋ํ .NET Framework ์ง์์ ์ค๋จํด๋ "๊ด์ฐฎ์" ์๊ธฐ์ ๋ํด ์ถ๋ก ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์
๋๋ค. ๋ํ ์ด๋ฌํ ์ข
์์ฑ ์ค ์ผ๋ถ๋ CSOM๊ณผ ๊ฐ์ด ์ด์๋์ง ์์ ์ ์์ต๋๋ค.
๋ฌผ๋ก 1.x ๊ธฐ์ฐจ์ ์์ผ๋ฉด ๋ฒ๊ทธ ์์ ๊ณผ ์ฌ์ํ ๊ธฐ๋ฅ์ ์ป์ ์ ์์ง๋ง ๋๋ถ๋ถ์ ์์
์ ์ต์ ์ฃผ์ ASP.NET Core์์ ๊ณ์ ๋ฐ์ํฉ๋๋ค.
๋ํ ์ด ์ค ์ด๋ ๊ฒ๋ ASP.NET Core 1.x์ ํจ๊ป .NET Core 2.0 ๋๋ .NET Standard 2.0์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉํดํ์ง ์์ต๋๋ค. ์ด ์ค๋ ๋ ์์๋ ASP.NET Core์ .NET Core๋ฅผ ํตํฉํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฌ๋์ด ์ด ์ฌ์ค์ ์๊ณ ์๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค(.NET Core๋ง ๋์์ผ๋ก ํ๋ ค๋ ์ด์ ์ค ํ๋์).
๋ด๊ฐ ๋ณด๋ ๋ฌธ์ ๋ ๊ฐ ์ฌ๋์ด ์๋ก ๋ค๋ฅธ "๋๋ฝ๋ ์ข ์์ฑ" ์งํฉ์ ๊ฐ์ง๊ณ ์์ด ๋ชจ๋ ์ฌ๋์ ๋ํ .NET Framework ์ง์์ ์ค๋จํด๋ "๊ด์ฐฎ์" ์๊ธฐ์ ๋ํด ์ถ๋ก ํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋ค.
๋ชฉ๋ก์ด ๋ฌด์์ธ์ง ์์๋ณด๊ธฐ ์ํด ์ํ๊ณ๋ฅผ ์ฐธ์ฌ์ํค์ญ์์ค(์๋์, ์ด ๋ฌธ์ ๋ ๊ทธ๊ฒ์ ํ ์ฅ์๊ฐ ์๋๋๋ค). Microsoft ์์ ์ข ์์ฑ์ธ ๊ฒฝ์ฐ ์ด์ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์์ ์์๊ฒ ์ฐ๋ฝํ์ฌ ๊ณํ์ ์๋ฆฌ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ๊ฐ์ด๋๋ฅผ ์ง์ํฉ๋๋ค(์๋ฌด๊ฒ๋ ํ์ง ์๋ ๊ฒฝ์ฐ Microsoft์ ์๋ชป์ด ์๋). ์ด ๊ณผ์ ์ ๊ฑฐ์น๋ ์๊ฐ์ ASP.net core 1.x๋ฅผ ์ง์ํฉ๋๋ค. ๋๋ ๋ง์ ์ฌ๋๋ค์ ํ๋๊ฒ ํ์ง ์๊ณ ๋น์ ์ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๊ธฐ ์ํด ๋์ ์์ค์ ์ฃผ์์ ์ฃผ์๊ฐ ํ์ํ ํฐ ์ ์์ ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก .NET Framework ๋ .NET Standard ๋ .NET Core์ ๋ํด ํจ์ฌ ๋ ๋ง์ ํผ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. .NET Framework๋ฅผ ๋์์ผ๋ก ํ ์ ์์์ ๋ณด์์ ๋ "ํ์ง๋ง ์ด๊ฒ์ ASP.NET Core์ด๋ฏ๋ก .NET Framework๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ "๋ผ๊ณ ๋งํ ์ ์ด ์์ต๋๋ค. ์์ ์ฐจ์ด์ ์ ๋๋ถ๋ถ์ ๊ณ ๊ฐ ๊ธฐ๋ฐ์์ ํจ์ฌ ๋ ํผ๋์ค๋ฝ์ต๋๋ค. ๋๋ ASP.NET Core๊ฐ ํ๋ ๋ชจ๋ ๊ฒ์ ์ฌ๋ํฉ๋๋ค. ๋ํ ํ๋ซํผ ๋ ๋ฆฝ์ฑ์ ๊ดํ .NET์ ๋ฐฉํฅ์ ์ข์ํฉ๋๋ค. ํผ๋์ ์์ญ์ด ์๋ชป ๊ธฐ์ ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋๋ถ๋ถ์ ์ํ ์ค์ธ ์์ ์ ํน์ฑ๊ณผ ํ๋ ์์ํฌ ๋ด์์ ๋์์ผ๋ก ํ๋ API๋ก ์ธํด ์ด์ํ ์ ์๋ ์ฝ๋๊ฐ ์ด๋ ์ ๋ ์์ ๊ฒ์ ๋๋ค.
๋ด ๊ธฐ๋ณธ ์ค์ ์ .NET Core ๋ฐ .NET Standard ๋ฐ .NET Framework ๋ด์์ API ํจ๋ฆฌํฐ๋ฅผ ์ํด ์์ ํ๋ ๊ฒ์ ๋๋ค. ๋ํ ์ฌ๋๋ค์ด ๋ชฉํ๋ก ์ผ์์ผ ํ ๋์์ ํ์ ํ์ญ์์ค. ์์ ๋งํ๋ฏ์ด ์ฝ๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก .NET Standard๋ ๋ฐ์ฐฝ๊ณ ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๊ฒฐ๊ตญ .NET Core๊ฐ ์ ์ผํ "ํ๋ ์์ํฌ" ์ต์ ์ด ๋ ๊ฒ์ผ๋ก ์์ํ๊ณ ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด .NET Framework ๋ฐ .NET Standard๊ฐ ์ค๋จ๋ฉ๋๋ค. ์ ์ ์ ๋ ๋ฐํ ์ดํ๋ก ๋ชฉ์๋ฆฌ๋ฅผ ๋ธ ๋๋ถ๋ถ์ ์ฌ๋๋ค๊ณผ ํจ๊ป ASP.NET Core ์ธก์์ ์ํํ๋ ์์ ์ ์ด์ ์ ๊ณ์ํด์ ๋๋ฆด ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ ๊ฑฐ๋ฉ๋๋ค.
ํ์๊ฐ WMI์ ๊ฐ์ ๊ฒ์ ์์กดํ๋ ๊ฒฝ์ฐ์ ๊ฐ์ด ์์ธ์ ์ผ๋ก ๊ฐ์ฃผ๋๋ ๊ฒฝ์ฐ๋ ํ์ด ์๊ฐํ๋ ๊ฒ๋งํผ ์์ธ์ ์ด์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ ๋งํ์ง๋ง, ๋๋ ์กฐ์ฌ๋ฅผ ํ๊ณ ๋ฌด์์ด ๋น ์ ธ ์๋์ง ๋ณผ ๊ฒ์ด๊ณ (๋น๋ก ์ด์ ์ ์๋ชป๋ ์ด์์ฑ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ ๊ฒ์๋ฌผ์ด ์ ํ์ฑ์ ๋ํด ์ฝ๊ฐ ์ฐ๋ คํ์ง๋ง) ๋ ์ฌ์ ์ธ ๋งค์ฒด์์ ๊ธฐ๊บผ์ด ๋น์ ์๊ฒ ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ด์ ์ ์ ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก .NET Framework ๋ .NET Standard ๋ .NET Core์ ๋ํด ํจ์ฌ ๋ ๋ง์ ํผ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. .NET Framework๋ฅผ ๋์์ผ๋ก ํ ์ ์์์ ๋ณด์์ ๋ "ํ์ง๋ง ์ด๊ฒ์ ASP.NET Core์ด๋ฏ๋ก .NET Framework๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ด์ "๋ผ๊ณ ๋งํ ์ ์ด ์์ต๋๋ค. ์์ ์ฐจ์ด์ ์ ๋๋ถ๋ถ์ ๊ณ ๊ฐ ๊ธฐ๋ฐ์์ ํจ์ฌ ๋ ํผ๋์ค๋ฝ์ต๋๋ค. ๋๋ ASP.NET Core๊ฐ ํ๋ ๋ชจ๋ ๊ฒ์ ์ฌ๋ํฉ๋๋ค. ๋ํ ํ๋ซํผ ๋ ๋ฆฝ์ฑ์ ๊ดํ .NET์ ๋ฐฉํฅ์ ์ข์ํฉ๋๋ค. ํผ๋์ ์์ญ์ด ์๋ชป ๊ธฐ์ ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋๋ถ๋ถ์ ์ํ ์ค์ธ ์์ ์ ํน์ฑ๊ณผ ํ๋ ์์ํฌ ๋ด์์ ๋์์ผ๋ก ํ๋ API๋ก ์ธํด ์ด์ํ ์ ์๋ ์ฝ๋๊ฐ ์ด๋ ์ ๋ ์์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ง์ ๊ณ ๊ฐ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ํ์ .NET์ ๋ณธ ์ ์ด ์๋ ์๋ก์ด ๊ฐ๋ฐ์๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ Microsoft๋ก์ ํ๋ ค๊ณ ํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฌ๋์ ์์ฉํด์ผ ํฉ๋๋ค. .NET Framework์์ ์คํ๋๋ ์ฌ๋๋ค์ ๊ทธ๊ฒ์ด ์๋ํ๋ค๋ ๊ฒ์ ์๊ณ , ์ฌ๋ํ๊ณ ์ดํดํ๋ฏ๋ก ASP.NET Core๊ฐ .NET Framework์์ ์คํ๋๋ค๋ ๊ฒ์ ํ์คํ ์ดํดํด์ผ ํฉ๋๋ค. go
๋๋ node
(์ด ์์ ์์ ๊ฑฐ์ 0๊ฐ์ ๋ ๊ฑฐ์๊ฐ ์์)์ ๊ฐ์ ๊ฒ์
๋๋ค.
๋ด ๊ธฐ๋ณธ ์ค์ ์ .NET Core ๋ฐ .NET Standard ๋ฐ .NET Framework ๋ด์์ API ํจ๋ฆฌํฐ๋ฅผ ์ํด ์์ ํ๋ ๊ฒ์ ๋๋ค. ๋ํ ์ฌ๋๋ค์ด ๋ชฉํ๋ก ์ผ์์ผ ํ ๋์์ ํ์ ํ์ญ์์ค. ์์ ๋งํ๋ฏ์ด ์ฝ๊ฐ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก .NET Standard๋ ๋ฐ์ฐฝ๊ณ ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๊ฒฐ๊ตญ .NET Core๊ฐ ์ ์ผํ "ํ๋ ์์ํฌ" ์ต์ ์ด ๋ ๊ฒ์ผ๋ก ์์ํ๊ณ ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด .NET Framework ๋ฐ .NET Standard๊ฐ ์ค๋จ๋ฉ๋๋ค. ์ ์ ์ ๋ ๋ฐํ ์ดํ๋ก ๋ชฉ์๋ฆฌ๋ฅผ ๋ธ ๋๋ถ๋ถ์ ์ฌ๋๋ค๊ณผ ํจ๊ป ASP.NET Core ์ธก์์ ์ํํ๋ ์์ ์ ์ด์ ์ ๊ณ์ํด์ ๋๋ฆด ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค. ์ ๊ฑฐ๋ฉ๋๋ค.
์ด๋ฌํ ์ผ์ ๋ชจ๋ ๋ณ๋ ฌ๋ก ๋ฐ์ํฉ๋๋ค. ASP.NET Core๋ "๋ชจ๋ ๊ฒ"์ด .NET Framework์์ .NET Core๋ก ์ด์๋ ๋๊น์ง ๊ธฐ๋ฅ ์์ ์ ์ค์งํ์ง ์์ต๋๋ค. ASP.NET์ ๋์ผํ ์์์ ์ผ๋ถ๋ก ์ ๊ณต๋๋ฏ๋ก .NET Core์์ ์ฌ์ฉํ ์ ์๋ API๋ฅผ ๊ณ์ ํ์ ํ๊ณ ํ์ฉํ ๊ฒ์ ๋๋ค.
์ด ์ค๋ ๋์ ๋ํ ๋ช ๊ฐ์ง ํธ๋ ๋ ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ฐํ๋ฅผ ์์ฑํ์ง ์์์ง๋ง(์ด๋ ์ฐ๋ฆฌ์ ์๋ชป์) ๋ฐํ๊ฐ ์ค๊ณ ์๋ค๋ ์ฌ์ค๋ ์์ต๋๋ค(์ฝ์ํฉ๋๋ค. ์ฃผ๋ง์ ํํฉ๋๋ค).
๋๋ ๋ํ ์ฌ๊ธฐ ๋๋ถ๋ถ์ ์ฌ๋๋ค์๊ฒ API ํจ๋ฆฌํฐ๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ๋ชจ๋ฆ
๋๋ค. ์ ์ถ์ธก์ผ๋ก๋ ์ฌ๋๋ค๋ง๋ค ๋ค๋ฅผ ๊ฒ์
๋๋ค. .NET Framework๋ Windows์ ์ฐ๊ฒฐ๋ 15๋
์ด์ ๋ ๊ฒฌ๊ณ ํ๊ณ ์์ ์ ์ธ ์ํฐํ๋ผ์ด์ฆ ๊ธฐ์ ์
๋๋ค.
.NET Core๋ ์ต์ ๊ฒฝ๋ ํฌ๋ก์ค ํ๋ซํผ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ์์ฑํ๋๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ด์์ด ๋ ์ฌ์ธ ์ ์๋๋ก ๋ ํธํ์ฑ์ด ์๋๋ก ์ฒ์ฒํ ์งํํด ์์ต๋๋ค. ์ฆ, ํธํ์ฑ ์ธก๋ฉด์์ .NET Framework์ ์ ๊ทผํ๋ ๊ฒ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ๋๋ ๊ทธ๊ฒ์ด ๋ชฉํ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค(์๋๋ ์๋์์). ์ด๋ ์์ ์์ .NET Framework ์์์ ASP.NET Core๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ .NET Core์ ํธํ๋์ง ์๋ ๋ค์ ์์ฑํ ์ ์๋ ์ผ๋ถ ์ข
์์ฑ์ด ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ ASP.NET Core๋ฅผ ์ผ๋์ ๋๊ณ ์ค๊ณํ ๋(๊ฐ๊น์ด ๋ฏธ๋์) ์ด๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๋ด๊ฐ ์์ ํ๋ ํ๋ก์ ํธ์ ๊ด๋ จํ์ฌ 1.1์ ๋ํ ํจ์ฌ ๋ ๊ธด ๊ธฐ๊ฐ์ ์ง์์ ์ ์ ํ ์ํ๊ฐ ๋ ๊ฒ์ ๋๋ค. 1๋ ์์ netfx ์์กด์ฑ์ ์์จ ์ ์์ ๊ฒ ๊ฐ์ง๋ ์์ง๋ง ๋น์ ์ด ๋ฐ์ง๋งจ์ผ๋ก ์ ์ํ +3๋ ์ผ๋ก ํจ์ฌ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด 2.0 ๋ ๋ฒจ์์ ๋จผ์ ํตํฉ๋๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ผ๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ ์ฝ๊ฒ ์ด์๋์ด์ผ ํ๋ ์ง์ ์ ๋๋ค! ๋๋ ํ ์กฐ์ง์ ๋ํด์๋ง ๋งํ๊ณ ์์ง๋ง "2.0์ LTS ๋ฆด๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค. 3.0์ netfx๋ฅผ ์ญ์ ํ ๊ฒ์ ๋๋ค"๋ ๊ธฐ๋ณธ์ ์ผ๋ก FUD์ ์์ธ์ด ์๋๋ผ ํ์์ ๊ฐ์ด ์ฐ๋ฆฌ์๊ฒ ๋น์ฆ๋์ค๊ฐ ๋ ๊ฒ์ ๋๋ค.
๋ํ @PureKrome ์ด ์ด ์ฐธ์ฌ์ ๋ํ ๊ฐ์ฌ์ ๋ํด ๋งํ ๊ฒ์ ๋ํ์ดํ๊ณ ์ถ์ต๋๋ค. ์ด๋ ๋งค์ฐ ์ ์ตํ ํ ๋ก ์ด์์ต๋๋ค.
ํจ๋ฆฌํฐ ์ฃผ์ ์ ๋ํด - ๋๋ ์ด์ ์ .net ์ฝ์ด๊ฐ .net ํ๋ ์์ํฌ ์์ค์ ํธํ์ฑ์ ์ ๊ทผ ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ง๋ง asp .net ์ฝ์ด๊ฐ ๋ ๊ฐ์ง ๋ชจ๋๋ฅผ ๊ณ์ ์ง์ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ต๋๋ค.
์ปค๋ฎค๋ํฐ๋ก์ ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก asp.net core๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด .net core๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด์ง ๊ทธ ์์ฒด์ ์ฅ์ ์ ์ํด์๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋น์ ์ด ๋งํ๋ฏ์ด ๊ทธ๊ฒ๋ค์ ํ๋์ ์ ํ์ด๊ณ , ๋๋ core clr์ ์ ํํ๋ค๋ฉด ์ฅ์ ๊ณผ ๋จ์ ์ด ์๋ ๊ทธ ์ ํ์ ์ ํ์ ์ธ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ์ ๊ฒ์ ๋๋ค.
ํ๋ฃป๋ฐค ์๊ณ ๋๋ฉด -
๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ค๋๋ .net ํ๋ ์์ํฌ๋ฅผ ๋ค๋กํ๊ณ ์ต์ ๋ฐํ์์ ์ํ ์ต์์ ์น ํ๋ ์์ํฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
ํ์ง๋ง ํ์คํ ์ํํ๊ณ ์ฌ๊ธฐ์์ ์ผ๋ถ ๊ณ ๊ฐ์ ์์ ์๋ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๋ณ๊ฒฝ).
..๊ทธ๋ฆฌ๊ณ ๋ค - ์ด๊ฒ์ ๋ํ ์์ฌ ์ํต์ (ํ์์ ๊ฐ์ด) ๊ฐ์ ํ ์ ์๋ ๊ฒ์ด์์ต๋๋ค(๋ ์ผ์ด์ ๋ํ ์ด ๋ฌธ์ฅ์ ๊ฐ์ฅ ์ ์คํ ๋ฒ์ ) ;)
+1
๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ค๋๋ .net ํ๋ ์์ํฌ๋ฅผ ๋ค๋กํ๊ณ ์ต์ ๋ฐํ์์ ์ํ ์ต์์ ์น ํ๋ ์์ํฌ๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๊ฐ๋ ฅํ๊ฒ ๋์ํฉ๋๋ค. ๋ด ํฌ๋ง์ ์ด๊ฒ์ด ์ ์ง์ ์ธ ๋ณํ๊ฐ ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์๋ฅผ ๋ค์ด Kestrel์ด ๋จผ์ perf(http.sys ๊ธฐ๋ฐ ํธ์คํ ๋จ์ ์์)์ ๋ํ ์ง์์ ์ค๋จํ ๋ค์, netstandard2.0์ ๋ํ ์ด์/ํธํ์ฑ ํ ์คํธ ๋ ธ๋ ฅ์ด ์์๋๋ ๋์ API ๋ฐ ๊ธฐ๋ฅ ๊ฐ์ ์ ์ํด mvc/*๋ฅผ ๋ฐ๋ฆ ๋๋ค.
ํ๋ฅญํ. ์ด ๊ฒฝ์ฐ Microsoft๊ฐ ๊ณ ๊ฐ์๊ฒ ์ ์ ํ 2.x ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก(์: SignalR)๋ฅผ ์ ๊ณตํ ๋๊น์ง 1.x๊ฐ ์ง์๋๋๋ก ๋ณด์ฅํ๋ ํ(๋ชจ๋ ์ข ๋ฅ์ ๋ฒ๊ทธ ์์ ๋ฐ >์ด์ ์ง์), ๋๋ >ํธ์ํ๊ฒ ์ ์ฐฐํ๊ณ ์์ต๋๋ค. asp.net core 2๊ฐ ํ์ํ ๋๊น์ง.
+1
.NET Core๋ก๋ง ์ด์ํ ์ ์์ต๋๋ค(์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core๋ฅผ ๊ฐ๋ฐํ๋ ๋์ ์์ ๋ก ์ด์๋์ง ์์ ๋ช ๊ฐ์ง ์๋ก์ด ์ข ์์ฑ์ ์ฌ์ฉํ์ ์ ์์).
์ ์ ์ผ๋ก ๋์ํฉ๋๋ค.
์ง๊ธ์ ์ข์ ๊ฒฐ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ธ ์๋๋ฆฌ์ค์์๋ 1๋
์ด์์ ์ง์์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ปค๋ฎค๋ํฐ์ ์ ๋ขฐ๋ฅผ ์ํด 2-3๋
๊ณผ ํฌํ
๋ ์ ๋ณด์ ๋ํ ์ ๋ณด๋ ๋ชจ๋ฆ
๋๋ค.
.net 461 ์ง์์ด ์์ต๋๋ค.
@dasMulli
๋๋ ๊ฐ๋ ฅํ๊ฒ ๋์ํฉ๋๋ค. ๋ด ํฌ๋ง์ ์ด๊ฒ์ด ์ ์ง์ ์ธ ๋ณํ๊ฐ ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์๋ฅผ ๋ค์ด Kestrel์ด ๋จผ์ perf(http.sys ๊ธฐ๋ฐ ํธ์คํ ๋จ์ ์์)์ ๋ํ ์ง์์ ์ค๋จํ ๋ค์, netstandard2.0์ ๋ํ ์ด์/ํธํ์ฑ ํ ์คํธ ๋ ธ๋ ฅ์ด ์์๋๋ ๋์ API ๋ฐ ๊ธฐ๋ฅ ๊ฐ์ ์ ์ํด mvc/*๋ฅผ ๋ฐ๋ฆ ๋๋ค.
์ฐ๋ฆฌ๋ .NET Framework์ ๋ํ ์ฑ๋ฅ ํ ์คํธ๋ ์คํํ์ง ์์ต๋๋ค... .NET Core ๋ฐ .NET Standard์ ๋ํ ์ด์ ํ ์คํธ ๋ฐ ๊ฐ์ ์ฌํญ์ ์ด์จ๋ ์ด๋ฃจ์ด์ง๋ฏ๋ก IMO๋ .NET Framework ์ง์์ด ์ค๋จ๋๋์ง ์ฌ๋ถ์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ ์ผํ ๋ชฉํ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ ๋ ๊ทธ๋ฌํ ์๋๋ฆฌ์ค์ ๋ ์ด์ ์ด์ ์ ๋ง์ถฅ๋๋ค.
@gulbanana
๋ชจ๋ ๊ฒ์ด 2.0 ๋ ๋ฒจ์์ ๋จผ์ ํตํฉ๋๋ ๋ฆด๋ฆฌ์ค๊ฐ ์์ผ๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋ ์ฝ๊ฒ ์ด์๋์ด์ผ ํ๋ ์ง์ ์ ๋๋ค! ๋๋ ํ ์กฐ์ง์ ๋ํด์๋ง ๋งํ๊ณ ์์ง๋ง "2.0์ LTS ๋ฆด๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค. 3.0์ netfx๋ฅผ ์ญ์ ํ ๊ฒ์ ๋๋ค"๋ ๊ธฐ๋ณธ์ ์ผ๋ก FUD์ ์์ธ์ด ์๋๋ผ ํ์์ ๊ฐ์ด ์ฐ๋ฆฌ์๊ฒ ๋น์ฆ๋์ค๊ฐ ๋ ๊ฒ์ ๋๋ค.
ASP.NET Core 2.0์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น(.NET Standard ๋ฐ .NET Core 2.0์ ์์)?
asp.net core 2.0์ ๊ธฐ๋ฅ์ ํน๋ณํ ํ์ํ์ง ์์ต๋๋ค. 2.0 ์จ์ด๋ธ์ ํจ๊ป ์ ๊ณต๋๋ ๋ ๊ฐ๋จํ ๋น๋ ํ๋ก์ธ์ค์ ์ํธ ์ด์ฉ์ฑ์ ๊ฐ๊ณ ์ถ์ต๋๋ค. netcoreapp2.0์์ ์คํ๋๋ ๊ฒฝ์ฐ asp.net ์ฝ์ด 1.1์ด netstandard2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ์๋ฌด๋ ํ ์คํธํ๊ฑฐ๋ ๊ด์ฌ์ ๊ธฐ์ธ์ด์ง ์๋ ๊ฒ์ด ์๋๋ผ 'ํ์ค' ๋ฐ ์ง์๋๋ ์๋๋ฆฌ์ค๋ก ๊ฐ์ฃผ๋ฉ๋๊น?
๊ธฐ๋ณธ์ ์ผ๋ก 1.1์ด LTS๊ฐ ๋๋ค๋ฉด '๊ธ์, ๋น์ ์ 2.0 API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ํ ์ ์๋ค'์ ํจ๊ป ์ง๊ธ๋ถํฐ 18๊ฐ์ ํ์ ์ข ๋ฃ๋๋ ๋ฌธ์ ์ ๋ํด ๊ฑฑ์ ํฉ๋๋ค.
asp.net core 2.0์ ๊ธฐ๋ฅ์ ํน๋ณํ ํ์ํ์ง ์์ต๋๋ค. 2.0 ์จ์ด๋ธ์ ํจ๊ป ์ ๊ณต๋๋ ๋ ๊ฐ๋จํ ๋น๋ ํ๋ก์ธ์ค์ ์ํธ ์ด์ฉ์ฑ์ ๊ฐ๊ณ ์ถ์ต๋๋ค. netcoreapp2.0์์ ์คํ๋๋ ๊ฒฝ์ฐ asp.net ์ฝ์ด 1.1์ด netstandard2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ์๋ฌด๋ ํ ์คํธํ๊ฑฐ๋ ๊ด์ฌ์ ๊ธฐ์ธ์ด์ง ์๋ ๊ฒ์ด ์๋๋ผ 'ํ์ค' ๋ฐ ์ง์๋๋ ์๋๋ฆฌ์ค๋ก ๊ฐ์ฃผ๋ฉ๋๊น?
๋ฌผ๋ก ํจ๊ณผ๊ฐ ์์ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ๋ด๋ด ๋งํ๋ฏ์ด 3๊ฐ์ง๊ฐ ์ค๋ ์์ ํ ๋ถ๋ฆฌ๋์์ต๋๋ค. ๋ค์์ .NET Standard 2.0 ํจํค์ง๋ก ์ด์๋ System.Configuration API ๋ฒ์ ์ ์ฌ์ฉํ์ฌ .NET Core 2.0์์ ASP.NET Core 1.1์ ์คํํ๋ ์ํ ํ๋ก์ ํธ์ ๋๋ค.
.NET Core์ .NET Framework ์ฌ์ด์ ์๋ interop ๊ณ์ธต์ด ์๋ ๊ฒฝ์ฐ(๋ฐํ์์ ์์ธ๋ฅผ ๋์ง ์ ์๋ ํ์ฌ ๊ณ์ธต์ด ์๋๋ผ ์์ฒด์ ์ผ๋ก ๋ง๋ ๋ด๋ถ WebAPI ํธ์ถ์ด ์๋) ์ด๋ฅผ ์๋ฝํ๋ ๊ฒ์ด ๋ ํ๋ณตํฉ๋๋ค. ์ผ์ข ์ ๋ํผ ("WowNET"?) 4.6 ์ข ์ ์ฝ๋๋ฅผ ๋ณ๋์ .dll์ ์ ์งํด์ผ ํ์ง๋ง ์ฑ๋ฅ์ ํฌ์์ํค๋ฉด์ ๋ ๊ฑฐ์๋ฅผ ์คํํ ์ ์์ต๋๋ค(LOB ์ฑ์ ๊ฒฝ์ฐ ์ฃผ์ ๊ด์ฌ์ฌ๊ฐ ์๋). ์ด๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํ์ญ๋๊น?
๋ํ ์ด ๋ณ๊ฒฝ์ด ์ ์ฒด ํ๋ ์์ํฌ ์์ฒด๊ฐ ์๋ช ์ข ๋ฃ์ ๊ฐ๊น์์ง๊ณ ๋๋ถ๋ถ์ API๊ฐ .NET Standard๋ก ์ด๋๋๋ฉด ๋ ๊ฑฐ์ ๊ตฌ์ฑ ์์๊ฐ ๋๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ์ค์ํ ์ญํ ์ ์ํํ์ง ์์ ๊ฒ์์ ์๋ฏธํ๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก 1.1์ด LTS๊ฐ ๋๋ค๋ฉด '๊ธ์, ๋น์ ์ 2.0 API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๊ฒ์ ํ ์ ์๋ค'์ ํจ๊ป ์ง๊ธ๋ถํฐ 18๊ฐ์ ํ์ ์ข ๋ฃ๋๋ ๋ฌธ์ ์ ๋ํด ๊ฑฑ์ ํฉ๋๋ค.
๊ทธ๊ฒ ํญ์ ๊ฑฑ์ ์ ๋๋ค. ๋๋ต์ ํญ์ "๊ทธ๊ฒ์ ์์กดํ๋ค"์ด๋ค. ๋ฒ๊ทธ ์์ ์ ๊ทธ์ ๋ฐ๋ผ ๊ฐ์ค์น๊ฐ ๋ถ์ฌ๋๋ฉฐ ํฐ ๊ธฐ๋ฅ์ ํด๋น ๋ฒํท์ ๋ ์์ฃผ ํฌํจ๋ ๊ฒ์ ๋๋ค.
@๋กํ์ธ
.NET Core์ .NET Framework ์ฌ์ด์ ์๋ interop ๊ณ์ธต์ด ์๋ ๊ฒฝ์ฐ(๋ฐํ์์ ์์ธ๋ฅผ ๋์ง ์ ์๋ ํ์ฌ ๊ณ์ธต์ด ์๋๋ผ ์์ฒด์ ์ผ๋ก ๋ง๋ ๋ด๋ถ WebAPI ํธ์ถ์ด ์๋) ์ด๋ฅผ ์๋ฝํ๋ ๊ฒ์ด ๋ ํ๋ณตํฉ๋๋ค. ์ผ์ข ์ ๋ํผ ("WowNET"?) 4.6 ์ข ์ ์ฝ๋๋ฅผ ๋ณ๋์ .dll์ ์ ์งํด์ผ ํ์ง๋ง ์ฑ๋ฅ์ ํฌ์์ํค๋ฉด์ ๋ ๊ฑฐ์๋ฅผ ์คํํ ์ ์์ต๋๋ค(LOB ์ฑ์ ๊ฒฝ์ฐ ์ฃผ์ ๊ด์ฌ์ฌ๊ฐ ์๋). ์ด๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํ์ญ๋๊น?
https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root ์ ๋น์ทํ์ง๋ง .NET Core ๋ฐ .NET Framework์ฉ์ ๋๋ค. ์ฐ๋ฆฌ๋ ASP.NET์ด IIS์์ coreclr์ ๋ถ์คํธ๋ฉํ๋ ๋ฐ ์ฌ์ฉ๋ .NET Framework shim์ธ Helios๋ฅผ ์ง์ํ ๋ ๋งค์ฐ ์ ์ฌํ ์์ ์ ์ํํ์ต๋๋ค. COM๊ณผ string[] args๋ฅผ ํตํด Main ๋ฉ์๋์ ์ ๋ฌํ๋ ๊ตฌ์กฐ๊ฐ ํผํฉ๋์ด ์์ง๋ง ์๋ํ๋๋ก ํ๋ ํดํน์ ๊ฝค ์ถ์ ํ์ต๋๋ค. ๋ชจ๋ ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ์ง๋ง. ๋์ผํ ๋ฐํ์์ด ์๋๋ฉฐ ๊ฐ์ฒด๋ฅผ ์๋ค๋ก ์ ๋ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ข ๋ฅ์ ์ถฉ์ค๋๋ฅผ ๊ธฐ๋ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ํ ๋์ผํ ํ๋ก์ธ์ค์์ 2๊ฐ์ GC, 2๊ฐ์ Jits ํค ๋ ๋ง์ dll์ ์คํํ๊ณ ์์ผ๋ฉฐ ํ๋ก์ธ์ค ์ธ๋ถ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ํํ์ฌ ์ป๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ํ ์ด ๋ณ๊ฒฝ์ด ์ ์ฒด ํ๋ ์์ํฌ ์์ฒด๊ฐ ์๋ช ์ข ๋ฃ์ ๊ฐ๊น์์ง๊ณ ๋๋ถ๋ถ์ API๊ฐ .NET Standard๋ก ์ด๋๋๋ฉด ๋ ๊ฑฐ์ ๊ตฌ์ฑ ์์๊ฐ ๋๋ ๊ฒ ์ธ์ ๋ค๋ฅธ ์ค์ํ ์ญํ ์ ์ํํ์ง ์์ ๊ฒ์์ ์๋ฏธํ๋์ง ๊ถ๊ธํฉ๋๋ค.
์ด๊ธฐ๋ ์ปค๋ . .NET Framework๋ Windows ๊ตฌ์ฑ ์์์ด๋ฏ๋ก Windows์ ์๋๋ก ๋ฐ์ ํ๊ณ ์ ๊ณต๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ .NET Framework 4.7(https://blogs.msdn.microsoft.com/dotnet/2017/04/05/announcing-the-net-framework-4-7/)๊ณผ ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ์ํ์ต๋๋ค. ์ฌ์ค .NET Core๋ ๋ค๋ฅธ ๊ฒ๊ณผ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋ ๋นจ๋ฆฌ ์ ๊ณต๋ ์ ์๊ณ ์ ๊ณต๋ ๊ฒ์ด๋ฏ๋ก API, ๋ฐํ์ ๊ธฐ๋ฅ ๋ฑ์ด ๋จผ์ ํ์๋ฉ๋๋ค. ์ด๊ฒ์ด ๊ฒฐ๊ตญ .NET Standard ๋ฐ .NET Framework์ ์ ์ฉ๋์ง ์๋๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๋์ฐฉํ๋ ๋ฐ ์๊ฐ์ด ๋ ์ค๋ ๊ฑธ๋ฆด ๋ฟ์ ๋๋ค. .NET Framework๊ฐ ์ ์๋ฆฌ์์ ์ ๋ฐ์ดํธ๋๋ค๋ ์ฌ์ค ๋๋ฌธ์ ๋ณ๊ฒฝ ์ฌํญ์ ํฌํ ํ ๋ ๋งค์ฐ ์ ์คํฉ๋๋ค. ์ ๋ฐ์ดํธ๊ฐ ์๋์ผ๋ก 10์ต ๋์ ๋จธ์ ์ผ๋ก ํธ์๋ ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ผ๋ฉด ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋จ๋ ์ ์์ต๋๋ค ๐ . .NET Core๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ ์์ํฌ๊ฐ ๋๋ํ ์์ผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ต์ ๊ธฐ๋ฅ์ด๋ ์์ ์ฌํญ์ ์ป์ผ๋ ค๋ฉด ์ต์ ๋ฒ์ ์ ์ ํํด์ผ ํฉ๋๋ค. ๊ฑฐ๊ธฐ์๋ ํจ์ฌ ๋ ๋ง์ ์์ ๊ฐ ์์ต๋๋ค.
ํ์ฌ ASP.NET Core 1.x์ ์๋ net4x ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋น๊ตํ๋ฉด 2.0: EntityFramework 6์์๋ ์๋ํ์ง ์์ต๋๋ค. EFCore์๋ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋๋ฝ๋ ๊ธฐ๋ฅ์ด ๋ง์ด ์์ต๋๋ค(์: ๊ฐ๋ก์ฑ๊ธฐ/์๋ช ์ฃผ๊ธฐ ํํฌ). ๊ทธ๋์ ์ฐ๋ฆฌ๋ ์ ์ ๋์ EF6์ ๊ฐํ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ @PinpointTownes ์ ๊ฒ์๋ฌผ์ ๋ฐ๋ฅด๋ฉด EF6์ ํ์ฌ(๊ฐ๋ฐ ์ค์ธ) ASP.NET Core 2.x ๋ฒ์ ์์ ์๋ํ์ง ์์ต๋๋ค.
@nphmuller ๊ทธ๋ฌ๋ฉด ๋ ๋ง์ ์ข ์์ฑ์ด ์ด๋ํ ๋๊น์ง ASP.NET Core 1.x๋ฅผ ๊ณ์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค(EF Core์ ํ์ํ ํญ๋ชฉ์ ์์ ์ํ๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค).
@davidfowl ๋ฌผ๋ก ์
๋๋ค. ๊ทธ ์๊ฐ ๋์ ASP.NET Core 1.x์ ์ง์ ๊ธฐ๊ฐ์ด ์ง๋์ง ์์ผ๋ฉด.
์ฃผ์ ๊ธฐ๋ฅ์ ๊ฐ๋ก์ฑ๊ธฐ(์๋ช
์ฃผ๊ธฐ ํํฌ)์
๋๋ค. ๋ค๋ฅธ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ๋ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. ๊ฐ๋ก์ฑ๊ธฐ๋ ๋ฐฑ๋ก๊ทธ์ ์์ง๋ง ๋ฆด๋ฆฌ์ค์ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด ์ง๊ฐ์ ๊ทธ๊ฒ์ด ํ๋์ ๊ตฌํ๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํฉ๋๋ค.
@gulbanana : ์ปค๋ฎค๋ํฐ๋ก์ ์ฐ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก asp.net core๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด .net core๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ ์์ฒด์ ์ฅ์ ์ ์๋๋๋ค.
์์ ์ ์ํด ๋งํ์ญ์์ค. .NET Core์ ์ฃผ์ ์ด์ ์ ์๋ฒ์ Windows์์ ๋ฒ์ด๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด ์๊ฐ์, ๋๋ฌ์ด Mac ์์ ํํผ๋ค. ๐
@bradwilson ๊ทธ๋ฆฌ๊ณ , ๋ด ์๊ฐ์, ๋๋ฌ์ด Mac ์์ ํํผ๋ค.
์ค์ค๋ก ๋งํ์ธ์, ์ฐ๋ฆฌ ์ค ์ผ๋ถ๋ ํํผ๊ฐ ์๋๋๋ค ;P
ํ์ง๋ง ์, Windows(๋๋ ์ค์ ๋ก IIS ๋ฐ http.sys)๋ฅผ ์ด์ค์ผ์ดํํ๋ ๊ฒ์ xcopy ๋ฐฐํฌ, perf ๋ฑ๊ณผ ํจ๊ป .NET Core์์ ์ํ๋ ๊ฒ์ ๋๋ค.
๋ณ๋์ ์๋น์ค์์ ์ด์ ์ฝ๋๋ฅผ ๊ฒฉ๋ฆฌํ๊ฑฐ๋ ASP.NET Core๋ก ์ด์ํ๋ฉด ์๋กญ๊ณ ๋ฐ์ง์ด๋ ์ด์ ๊ฐ ์๋ ๋ค๋ฅธ ์ด์ ๊ฐ ์์ต๋๋ค.
@PinpointTownes ๋ ์ฐธ์กฐ ์ค๋ฅ์ ๋๋ค. https://github.com/aspnet/Home/issues/2022#issuecomment -299810945์ ๋ฐ๋ผ System.Configuration์ ์ฐธ์กฐํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? EF6์ ๋ชจ๋ ๊ฒ์ด ye'olde GAC/Full Framework ๋ฒ๋ค์ ์๊ธฐ ๋๋ฌธ์ ์ข ์์ฑ์ด ์๋ค๊ณ ๋งํฉ๋๋ค.
@benaadams ๋ฐ @PinpointTownes ๊ฐ ์คํจํ๋ ์ด์ ๋ System.Configuration.ConfigurationManager๊ฐ .NET Framework์์ ์์ํ๋ DLL ์ด๋ฆ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋๋ค. System.Configuration์ ํฌํธ๊ฐ ์ ํจํ์ง ํ์คํ์ง ์์ต๋๋ค.
"system.configuration.configurationmanager/4.4.0-preview2-25308-01": {
"dependencies": {
"System.Security.Cryptography.ProtectedData": "4.4.0-preview2-25308-01"
},
"runtime": {
"lib/netstandard2.0/System.Configuration.ConfigurationManager.dll": {}
},
"compile": {
"ref/netstandard2.0/System.Configuration.ConfigurationManager.dll": {}
}
์, Windows๊ฐ ์๋ ์๋ฒ๋ฅผ ์คํํ ์ ์๋ค๋ ๊ฒ์ ํ๋ฅญํ๊ณ ํฐ ์ฅ์ ์ ๋๋ค. ํ์ง๋ง asp.net ์ฝ์ด๊ฐ ์์ผ๋ฉด ์๋ฒ ์์ ๋ฌด์์ ์คํํ์๊ฒ ์ต๋๊น? .net ์ฝ์ด์ฉ Nancy๋ kestrel, UseOwin() ๋ฑ์ ํตํด asp.net ์ฝ์ด์ ์์กดํฉ๋๋ค.
ASP.NET Core๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ฌ๋ฌ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๋ง๋ค์์ต๋๋ค. ์์ ์ ์ํํ๊ธฐ ์ํด ๋๊ธฐ์ด์ ํด๋งํ๋ ์์ ์ ํ๋ก์ธ์ค์ ๊ฐ์ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ๊ณต์ ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ก๋๋งต์ ๋ฐ๋ฅด๊ณ ์์ผ๋ฉฐ ์ด์ ์๋ ๊ทธ๊ฒ์ ๋ํด ์๋ฌด ๋ง๋ ํ์ง ์์์ต๋๋ค!!
์ด์ ์ ๋งํ๋ค๋ฉด .NET 4.x ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ์์ ASP.NET Core๋ฅผ ์ฌ์ฉํ์ง ์์ ๊ฒ์
๋๋ค.
์ฐ๋ฆฌ์ ๊ณํ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ๋ฅผ ASP.NET Core 2๋ก ์
๋ฐ์ดํธํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
.NET 4.x๋ ๋์์ผ๋ก ํ๋ ค๋ฉด ASP.NET Core 2๊ฐ ํ์ํฉ๋๋ค. ๊ฐ๋ฅํ์ง ์์ ๊ฒฝ์ฐ ASP.NET Core 1.x์ ์ง์์ ์ด๋ป์ต๋๊น? ๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ณํ์
๋๊น ์๋๋ฉด ๋ฒ๊ทธ๋ง ์์ ํ ๊ณํ์
๋๊น?
์ฐ๋ฆฌ์ ๊ณํ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ๋ฅผ ASP.NET Core 2๋ก ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค.
์ด๋ ๊ฒ?
@PinpointTownes ๋ ์ฐธ์กฐ ์ค๋ฅ์ ๋๋ค. #2022(์ฝ๋ฉํธ)์ ๋ฐ๋ผ System.Configuration์ ์ฐธ์กฐํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น?
<Reference Include="System.Configuration" />
๋ฅผ ์ถ๊ฐํ๋ฉด GAC์์ ํด๊ฒฐํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ํจ๊ณผ๊ฐ ์์ต๋๋ค(์ฆ, ๋์ผํ ์์ธ๊ฐ ๋ฐ์ํจ).
System.Configuration์ ํฌํธ๊ฐ ์ ํจํ์ง ํ์คํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ๊ณต์์ ์ธ ๊ฒฐ๋ก ์ ... System.Configuration
๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ .NET Core์์ .NET Framework 4.x์ฉ์ผ๋ก ์์ฑ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
@PinpointTownes System.Configuration
๋ฒ์ ์ด ๋ฐฐ์ก๋๊ณ ์๋์ง์กฐ์ฐจ ํ์ ํ ์ ์์ต๋๋ค(ํจํค์ง์ ์๋ ๋ฒ์ ). ์๋ง๋ ๊ทธ๋ด ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค(corefx์์ ์์ํ๋ ํ ๋ก ์
๋๋ค). ๋๋ ๋จ์ง ๋น์ ์ ์ํ์ด ์ ๊ทธ๋ ๊ฒ ๋ง๊ฐ์ก๋์ง ๋งํด์ฃผ๊ณ ์์ ๋ฟ์
๋๋ค.
์ฒจ๊ฐ
GAC์์ ํด๊ฒฐํ ์ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ํจ๊ณผ๊ฐ ์์ต๋๋ค(์ฆ, ๋์ผํ ์์ธ๊ฐ ๋ฐ์ํจ).
AFAIK, SDK ํ๋ก์ ํธ์ GAC ์ฐธ์กฐ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ด ์์ต๋๋ค. ํ์ฑํ ๋ฐฉ๋ฒ์ https://github.com/dotnet/sdk/issues/987#issuecomment -286307697์ ์ฐธ์กฐํ์ธ์.
๋ฐ๋ผ์ ๊ณต์์ ์ธ ๊ฒฐ๋ก ์... System.Configuration์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ .NET Core์์ .NET Framework 4.x์ฉ์ผ๋ก ์์ฑ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ ๊ฒฐ๋ก ์ ์์์ ์ ๊ณตํ ์ํ์ ์ฌ์ฉํ์ฌ CoreFX์ ๋ํ ๋ฌธ์ ๋ฅผ ์ด์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
@davidfowl ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค
EF Core์ ์ผ๋ถ ํ์ํ ๊ธฐ๋ฅ ๋ฐ ๋์ฐ๋ฏธ๋ ํนํ ๋งคํ ๋ฐ์ดํฐ(์์ฒด ํฌํจ ํ์ ๋งคํ)๋ฅผ ์ํด 2.0์์ ๊ณํ๋ฉ๋๋ค.
์ด์จ๋ ๋๋ ASP.NET Core 1.x์ ๋ก๋๋งต์ ๋ํ ๋ช
ํํ ์์ด๋์ด๊ฐ ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ ํ์ ํผ๋์ค๋ฝ๊ณ ๊ฑฑ์ ํ๊ณ ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๊ณ ๊ตฐ๋ถํฌํ๋ ํ ๊ฐ์ง๋ "์์ ๋ ํ๋ซํผ"๊ณผ "์๋ก์ด ๊ธฐ๋ฅ"์ ๋๋ค. ํํธ์ผ๋ก ์ฐ๋ฆฌ๋ ํ๋ซํผ์ด ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๊ณ ํธํ๋๊ธฐ๋ฅผ ์ํ์ง๋ง ๋ค๋ฅธ ํํธ์ผ๋ก๋ 2.x ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์๋ฌด๋ 1.x์ ๋จธ๋ฌผ๊ธฐ๋ฅผ ์ํ์ง ์์ต๋๋ค. ASP.NET Core 2.x์๋ ๊ทธ ๋ฐฉํฅ์ผ๋ก ์ฌ๋๋ค์ ๋์ด๋ค์ด๋ ๋งค์ฐ ๋งค๋ ฅ์ ์ธ ๊ธฐ๋ฅ์ด ์์ต๋๊น? ์๋๋ฉด 1.x์์๋ณด๋ค ๋ ๋ง์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค๋ ์ฌ์ค์ ๋๊น(์๋กญ๊ณ ๋น๋๊ธฐ ๋๋ฌธ์)?
@davidfowl ๋๋ signlarR์ด ๊ทธ๋ฌํ ๊ธฐ๋ฅ ์ค ํ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ์ด๋ ์ด์ ํ๋ก์ ํธ์๋ ์์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋๋ค์ด ์ฝ์ด๋ก ์ ํํ ์ค๋น๊ฐ ๋ ๋๊น์ง asp.net 1.1์์ ์คํํ ์ ์๋ค๊ณ ํ์ ํ๋ค๋ฉด 1.1(2018?)์ ๋ํ ์ง์ ๊ธฐ๊ฐ์ด ๋น๊ต์ ์งง๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฐ๋ ค๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ์ฌ๋๋ค์ ์กฐ๊ธ ์ง์ ์ํฌ ํจ์น๋ฅผ ์ํด ๋ฎ์ฌ ์์ต๋๋ค.
๋๋ ๋ํ .net core 2.0์์ asp.net core 1.1 ์ง์์ ๋ ๊ฐ์กฐํ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๋๋ค์๊ฒ ์ข์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค. asp.net 5 on 46 >asp.net core 1.x on 46 > .net core 2.0์ asp.net core 1.x > .net core 2์ asp.net core 2. ๊ทธ๋ ๊ฒ ํ๋ฉด ๋ง์ ์ฌ๋๋ค์ด ๊ฑฑ์ ํ๋ ์ํ์ ์ค์ผ ์ ์์ต๋๋ค.
๋๋ ์ฒซ๋ ๋ถํฐ ์ด๊ฒ์ ๋ฐ๋ฅด๊ณ ์์ผ๋ฉฐ ์ด๋ฌํ ๋ชจ๋ ํ ๋ก ๊ณผ ์ค๋ช ํ์๋ ( @davidfowl ๊ฐ์ฌํฉ๋๋ค ) ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ๋ฒ์ค ์๋์ ๋์ ธ์ง๊ณ ์๋ค๊ณ ๋๋๋๋ค.
Full/desktop .NET ํ๋ ์์ํฌ์์ ๋์จํ๊ฒ ์๋ผ์ผ ํ๋ ์ด์ ๋ฅผ ์ดํดํฉ๋๋ค. ์ ์ฅ, ๋๋ ๊ทธ๊ฒ์ด ASP.NET์ ๊ถํ์ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ด๋ผ๋ ๋ฐ ๋์ํ์ง๋ง, ์ฒ์๋ถํฐ๊ฐ ์๋๋ผ ์ง๊ธ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๊ฒฐ์ ๋๊ณ ์๋์ง ์์ง ๋ชปํฉ๋๋ค.
๋ฌผ๋ก ์ฐ๋ฆฌ ๊ณ ๊ฐ๋ค์ ๋ ์๋๋ฆฌ์ค ๋ชจ๋์์ ์ฌ๊ฐํ๊ฒ ๋ถํํ ๊ฒ์ด์ง๋ง ์ ๋ "์ฌ์ฉํ ์ ์๊ณ , ์ฒ์ฒํ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๊ต์ฒดํ๋ ๋ฐ ํฌ์ํฉ๋๋ค"์ ๋ฒ ํ ํ๋ ๊ฒ๋ณด๋ค "์ ๋ฐ์ง์ด๋ ๊ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค"๊ฐ ๋๊ณ ์ถ์ต๋๋ค. ๊ทธ๊ฒ์ด ๊ฑฐ์ง์์ ์์๋ด์ญ์์ค.
๋๋ ์ด๊ฒ์ด ์ฒ์๋ถํฐ๊ฐ ์๋๋ผ ์ง๊ธ ์ด๋ป๊ฒ ๊ฒฐ์ ๋๊ณ ์๋์ง ๋ณด์ง ๋ชปํฉ๋๋ค.
์ถ์ธก:
.NET Core 1.x์์๋ ์ ์ฒด ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ ์ ์์ผ๋ฏ๋ก ์์ ํ ์ค๋จ๋์์ ๊ฒ์ ๋๋ค.
.NET Core 2.x์์๋ ๋๋ถ๋ถ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์คํํ ์ ์๊ณ .NET Standard 1.x - 2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ ์ ์์ผ๋ฏ๋ก ํฐ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
.NET Core 2.0์์ ์ ์ฒด ํ๋ ์์ํฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๋ฌธ์ ๋ dotnet/corefx ์ ์ ์ถํด์ผ ํฉ๋๋ค.
์ฃผ์ ์๋๋ฆฌ์ค๋ "ํด๋ผ์ฐ๋์ ์ต์ ์น ์ฑ"์ด๋ฉฐ, ์ข ์ข ํ์ฌ ์ข ์์ฑ์ด ๋ง์ง ์์(๋๋ "์ฝ๋์ผ ๋ฟ"์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค).
์ง๊ธ๊น์ง ๋๋ถ๋ถ์ ๋ ผ์๋ BCL ๊ฐ์ฉ์ฑ์ ์ค์ ์ ๋์์ง๋ง ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด .NET ํ๊ฒฝ์์ ์ข ์ข ๋ค์ฒ์ง๊ณ ๊ฑฐ์ ํญ์ ๋ค๋จ์ด์ง๋ ํ์ฌ ๊ตฌ์ฑ ์์(์: ๋ณต์กํ ๋น๋์ค, ์ค๋์ค ํ์ ์์คํ ๊ณผ์ ๋ฎ์ ์์ค ํตํฉ)์ ์์กดํฉ๋๋ค. ์ง์๋์ง ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ ๋ฎ์ ์์ค์ ๊ธฐ์ ์ ์์กดํฉ๋๋ค.
ASP.NET Core 1์ ์ฌ์ฉํ์ฌ ์ต์ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๊ณ ์์ผ๋ฉฐ Libs์ฉ .NET ํ์ค์ ๋์์ผ๋ก ํ๊ณ ์๋น์ค ์ข ์์ฑ์ ๋ฐ๋ผ ์ ์ฒด .NET ๋๋ .NET Core์ ๋ฐฐํฌํ๋๋ก ์ ํํฉ๋๋ค.
์ง์๋์ง ์๋ ๊ธฐ๋ฅ/๊ตฌ์ฑ ์์๋ฅผ ์ฐพ๋ ๊ฒฝ์ฐ ์ ์ฒด .NET์ ์ฝ๊ฒ ๋์์ผ๋ก ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์ ๋ด๊ธฐ๋ฅผ ๊ฑธ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Full .NET์ ๋จธ๋ฌด๋ฅด๋ ๊ฒ์ ๋ช ๋ ์์ ํผํด์ผ ํ ๊ฒฐ์ ์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ฅ๊ธฐ ํ๋ซํผ์ ๋ฒ ํ ํ์ต๋๋ค.
_.NET Core 2.x์์๋ ๋๋ถ๋ถ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์คํํ ์ ์๊ณ .NET Standard 1.x - 2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ ์ ์์ผ๋ฏ๋ก ํฐ ๋ฌธ์ ๊ฐ ์๋๋๋ค._
@benaadams ๋๋ถ๋ถ์ BCL์ ์ฌ์ฉํ ์ ์๋ ๊ฒ๊ณผ Full .NET์ฉ์ผ๋ก ๋น๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ(๋ด๋ถ์ ์ผ๋ก .NET Standard 2.0/์ ํ ํตํฉ์์ ์ง์๋์ง ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์) ์ฌ์ด์๋ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
์ด ๊ฒฐ์ ์ด ASP.NET 4์์ ASP.NET Core 2.0์ผ๋ก ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฒ ๊ฐ์ต๋๊น?
๋ด๊ฐ ๊ด๋ฆฌํ๋ ๋ง์ ์์ฉ ํ๋ก๊ทธ๋จ์ ASP.NET Core 2.0์ผ๋ก์ ์
๋ฐ์ดํธ๋ฅผ ํตํด ์ค์ ๋ก ์ด์ต์ ์ป์ ์ ์์ง๋ง ASP.NET Core์ ๋ํ OWIN/Katana ์ง์์ด ์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํด์ผ ํ๊ณ ๋๋ฌด ๋ง์ ์์
์ด ํ์ํฉ๋๋ค. @damianh ๋ https://github.com/aspnet/AspNetKatana/issues/27 ์์ ์ ์ฌํ๊ฒ ์ ์ํ์ต๋๋ค.
EF6(๊ณต๊ฐ์ฉ) ๋ฐ ๋๋ ํฐ๋ฆฌ ์๋น์ค๊ฐ ํ์ํ๊ณ ์ ์ ํ SignalR์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ ์ค์ ๋๋ค(ํ์ฌ ์ง์๋์ง ์๋ ๋ฒ์ ์ ์ฌ์ฉํ์ง๋ง ์๋ํจ). ๋๋ ํ๋์ ๋ค๋ฅธ ์ฐจ๋จ๊ธฐ๋ฅผ ํ์ธํ์ง ์์์ง๋ง ์๋ง๋ ๋ ์์ ๊ฒ์ ๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ํ ์ฐ๋ฆฌ๋ ์ด์ asp.net core 2.0์ผ๋ก ์ด๋ํ๊ณ ๊ทธ๊ฒ์ด ๋์ฌ ๋ signalr๋ฅผ ๋ฐ๋ ๊ฒ์ด ์ฐจ๋จ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ dnx, RC1์์ RC2๋ก, json์ csproj๋ก ์ฎ๊ธด ํ ๋ง์นจ๋ด ์ฐ๋ฆฌ๊ฐ ์ฒ์ ๋ฒ์ด๋ ๊ฒ์ฒ๋ผ ๋๊ปด์ก์ต๋๋ค... ์ง๊ธ์ ๊ทธ๋ ๊ฒ ๋ง์ง ์์ต๋๋ค.
๋๋ ์ด ๋ณํ๊ฐ ๊ฒฐ๊ตญ ์จ๋ค๋ ๊ฒ์ ์ดํดํ ์ ์์ง๋ง asp.net ์ฝ์ด๊ฐ ๊ฒฌ์ธ๋ ฅ์ ์ป์ผ๋ ค๊ณ ํ ๋ ์ ๋ง๋ก ์ง๊ธ์ด ๊ทธ๊ฒ์ ํ ๋์ ๋๊น? ๋ํ ๋ด ์ง๊ฐ์ ๋ฐ๋ฅด๋ฉด EF Core๋ ์์ง ์ถฉ๋ถํ ์ฑ์ํ์ง ์์๊ณ (๊ทธ๋ฆฌ๊ณ ํ์คํ ๊ณต๊ฐ์ ์ผ๋ก๋ ๊ทธ๋ ์ง ์์) ์ฝ์ด ์ง์์ ๋ฒ ํ ํ๋ ์ฌ๋์ libs ์ด์๊ณผ ๊ด๋ จํ์ฌ ๋ ๋ง์ ์ํ์ ๊ฐ์ํ๊ณ ์์ต๋๋ค.... ์ด ์ ํ์ ์ํด ๋ค๋ฅธ ๋ฒ์ ์ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ฒด ํ๋ ์์ํฌ์์ ์ ํธ r์ ๋งํ ๊ฒ๋ ์๊ณ EF Core ๋ฐ ๊ธฐํ ํฌํธ๊ฐ ๋ฐ๋ผ์ก์ ์ ์๋ ์ฝ๊ฐ์ ์์ ์ฑ๊ณผ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋๋ถ๋ถ์ ๊ธฐ์ ์ด ์ ์ฒด ํ๋ ์์ํฌ์์ asp.net ์ฝ์ด(๊ทธ๋ฐ๋ฐ ํ๋ฅญํจ)๋ฅผ ์คํํ๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ์ ๋น์ทํ ์์น์ ์์ ์ ์์ต๋๋ค.
ASP.NET Core์ฉ ๊ณ ์ ์ด์ฐจ๋ก์ ์ด๋์ ๊ฐ์ํ ๋ LTS ๋ฐ ํ์ฌ ๋ฒ์ ์ ๋์ ํ๊ฒ ๋๋ฉฐ ์ด ์ธ์คํด์ค์ ์ง์ ๊ธธ์ด๋ ์ด๋ป๊ฒ ๋ฉ๋๊น?
๋๋ ๋ด๊ฐ netfx์์ ์คํํ๊ธฐ ์ํ ์๊ตฌ ์ฌํญ์ด ์๋ ๋ฏธ๊ฐ๋ฐ ์๋ฃจ์ ์ ์์ ํ๊ณ ์๋ ์ด์ด ์ข์ ๊ฒฝ์ฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ๊ฐ๋ฅํ๋ค๋ฉด ํญ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด ์ข์์ต๋๋ค. ๋์๊ฒ ๋ฐฉํด๊ฐ ๋๋ ์ ์ผํ ๊ฒ์ ๋ด๊ฐ netfx๋ฅผ ๋์์ผ๋ก ํ๋ Windows ์๋น์ค์ด์ง๋ง ์ด์ ๋ํ ๊ณํ์ด ์์ต๋๋ค.
๋๋ ์ด ๋ณํ๊ฐ ์๋ชป๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ณ ์๋ค๊ณ ๋๋๋ค. netstandard๊ฐ ๋ฐ๋ผ์ก์ ๋๊น์ง ์ผ๋ถ ๊ธฐ๋ฅ์ ํต์ฌ ๋ ์ ์ด๋ผ๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ํต์ฌ ์ ์ฉ ๊ฒฝ๋ก๋ก ๊ฐ๋ ๊ฒ์ ๋ถ์ด๋ ์ํ๊ณ๋ฅผ ๋ง๋๋ ๋ฏธ๋๋ฌ์ด ๊ฒฝ์ฌ์ ๋๋ค.
์ด ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋ด๊ฐ ๋ง์์ ๋ค์ง ์๋๋ค๋ ์ง์ ์ด ๋์ต๋๋ค. netcoreapp๋ง ๋์์ผ๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋๋ ๋ด ์๊ฒฌ์ ์ฐ๊ณ ์ถ์๋ค.
.net ํ๋ ์์ํฌ๋ฅผ ์ญ์ ํ๊ธฐ์๋ ๋๋ฌด ์ด๋ฅด๋ค๊ณ ์๊ฐํฉ๋๋ค. .net ํ๋ ์์ํฌ + .net ์ฝ์ด๋ฅผ ํจ๊ป ์ง์ํ๋ ๊ฒ์ด ์ด๋ค ๋ฌธ์ ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ด ๊ฒฐ์ ์ด AspNet Core๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์กฐ๊ธ ๋ ์ด๋ ต๊ฒ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ผ๋ถ ํ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ".net ์ฝ์ด๋ก AspNet Core๋ฅผ ์์ํฉ์๋ค.. ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ(์: ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฅํ ์ง์ํ์ง ์์ ๊ฒฝ์ฐ) ํญ์ .net ํ๋ ์์ํฌ๋ก ๋์๊ฐ ์ ์์ต๋๋ค." ๊ทธ๋ฌ๋ ์ด์ ๋ ๋ ์ด์ ๊ฐ๋ฅํ์ง ์์ผ๋ฉฐ ๊ธฐ์ ์ AspNet Core๋ก ์์ํ๋ ๊ฒ์ ์ฃผ์ ํ ๊ฒ์ ๋๋ค. ๋ํ ์ด ๊ฒฐ์ ์ผ๋ก ์ธํด .netstandard์ ๊ฐ์น๊ฐ ๋ฎ์์ง ์ ์์ต๋๋ค.
@hikalkan
์ผ๋ถ ํ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ".net ์ฝ์ด๋ก AspNet Core๋ฅผ ์์ํฉ์๋ค.. ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ(์: ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฅํ ์ง์ํ์ง ์์ ๊ฒฝ์ฐ) ํญ์ .net ํ๋ ์์ํฌ๋ก ๋์๊ฐ ์ ์์ต๋๋ค."
ํ์ง๋ง ํญ์ ASP.NET Core 1.1์ ์ฌ์ฉํ ์ ์์ต๋๊น?
๋ํ ์ด ๊ฒฐ์ ์ผ๋ก ์ธํด .netstandard์ ๊ฐ์น๊ฐ ๋ฎ์์ง ์ ์์ต๋๋ค.
์ ๊ทธ๋ด์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์์ ๋งํ๋ฏ์ด ๊ต์ฐจ ์ ๋จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ ํ .NET Standard์ ๋ชจ๋ .NET ๊ตฌํ์์ ์๋ํด์ผ ํ๋ API๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
๋ฌผ๋ก , ๊ทธ๋ค์ asp.net core 1.1์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ "ASP.NET Core์ ์ต์ ๋ฒ์ ์ 2.x์ด์ง๋ง .net ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ฉด ASP.NET Core 1.x๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค"๋ผ๊ณ ๋งํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค. "MVC 5.x ์ฌ์ฉ"์ด๋ผ๊ณ ๋งํ๋ ๊ฒ๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค. :)
๋๋ .net ํต์ฌ์ด ๋ฏธ๋๋ผ๊ณ ์๊ฐํ์ง๋ง(๋ฏธ๋๊ฐ ์๋๋ผ ์ง๊ธ์ด๋ผ๋!) .net ํ๋ ์์ํฌ๋ฅผ ์ค๋จํ๊ธฐ ์์ํ์ต๋๋ค(์ด ๊ฒฐ์ ์ .net ํ๋ ์์ํฌ๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๊ฒ์ฒ๋ผ ์ปค๋ฎค๋ํฐ์์ ์ดํด๋ ๊ฒ์ ๋๋ค).
ํ์ง๋ง ํญ์ ASP.NET Core 1.1์ ์ฌ์ฉํ ์ ์์ต๋๊น?
๋ช
ํํ ์ด์ ์ด ์์ต๋๋ค. ๋จผ์ ์์ง ์ฑ์ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋ด๊ธฐ์
๋๋ค.
๋์งธ, ASP.Net Core์ ๊ฐ๋ฐ์๋ ์ค๋๋ ๋๊ตฌ๋ก ์์ฑํ๊ณ ๋ค์ ๋จธ๋ฌผ๊ธฐ๋ฅผ ์ํ์ง ์์ ๊ฒ์
๋๋ค.
๋๋ ๋ช ๊ฐ์ง์ ๊ด์ฌ์ด ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ ๋ํ ์์ฌ ์ํต์ ๊ฝค ์ค๋งํ๋ค๊ณ ๋งํด์ผํฉ๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ทธ ๊ฒฐ์ ๊ณผ ํจ๊ป ์ด ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ๊ทธ๊ฒ์ ์๋ฌด๋ฐ๋ ๋์ค์ง ์์์ต๋๋ค.
7์์ ์ฐ๋ฆฌ ํ์ .NET Core์์ ์๋ ๊ฐ ์ฝ์ด์จ ๋ฉ์ง ๋ด์ฉ์ ๋ชจ๋ ํฌํจํ์ฌ ASP.NET Core 2.0์์ ์คํ๋ ๋ฏธ๊ฐ๋ฐ 12-18๊ฐ์ ํ๋ก์ ํธ์ ๋ํ ์์ ์ ์์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทธ๋์ ์ฐ๋ฆฌ๋ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํ๊ธฐ ์ํ ๋ํผ ์ญํ ์ ํ๋ ๊ธฐ์กด ์ ํ์ ์ค์ฌ์ธ ASP.NET MVC Core 1.0 ์ฑ์ ๋ณด์ ํ๊ณ ์์ต๋๋ค.
๋๋ ๊ทธ๋ค์ ๊ณํ์ด ์ฑ์ ASP.NET MVC Core 2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ณ .NET Framework ๊ตฌ์ฑ ์์๋ฅผ ๊ต์ฒดํ ๋ ์ ์ฑ์ ์ผ๋ถ๊ฐ ๋๋๋ก ํ๋ ๊ณํ์์ ํ๊ณผ ํ์ธํ์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ ํ๋ก์ ํธ๋ฅผ ์๋ฃํ๊ธฐ ์ ์ EOL๋ ASP.NET MVC Core 1.0์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ด ์๊ฒฌ์ ๋
ผํ๊ธฐ ์ง์ ์ ํ ๋ถ๋ถ์ ๋ํด ๋ช
ํํ ํ๊ณ ์ถ์ต๋๋ค.
ASP.NET Core๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ค๋ฉด
.Net 4.5 ์ด์์ ๋์์ผ๋ก ํ๋ dll์ ์ฐธ์กฐํ ์ ์์ผ๋ฉฐ ํ์ฌ์ฒ๋ผ ์๋ํ๋๋ก ํ ์ ์์ต๋๊น?
@louislewis2 ์๋์, ์ ํํ์ง ์์ต๋๋ค. $ netstandard2.0
์ง์๋๋ API ๊ณต๊ฐ ๋ด์ ์๋ ํ net45
- net461
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ ์ปดํ์ผํ ํ์๊ฐ ์์ต๋๋ค.
@bradwilson ์ค๋ช
ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ์ค๋ ๋ฐค์ ํ์คํ ์ ์ ๋ ์ ์ ์ ์์ ๊ฒ์
๋๋ค.
๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฐ๋ฆฌ๊ฐ ํต์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํฐ ๋ฌธ์ ๊ฐ ๋์์ ๊ฒ์
๋๋ค.
์ด์ ์์ฃผ ์์ฌ์ด ๋ฉ๋๋ค :)
@shanselman @DamianEdwards @davidfowl ์์ง ์ด์๋์ง ์์ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ํญ๋ชฉ ๋ชฉ๋ก์ system.management dll์ ์๋ ํญ๋ชฉ์ ๋๋ค. ํนํ ํ๋์จ์ด ์๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์๋ณ์๋ Azure Service Bus์ ์ ์ฒด โโ๋ผ์ด์ ์ค ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ํจํค์ง์ ๋ํ ์๋ ๋งํฌ ์์ฑ์ ์ฌ์ฉ๋ฉ๋๋ค. ํ์ฌ API๊ฐ ์๋ ์ํ์์ ์ฌ๊ฐํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น?
https://github.com/dotnet/corefx/issues/3324
https://github.com/dotnet/corefx/issues/14762
์ด๊ฒ์ ์ ์ฒด ํ๋ ์์ํฌ์์ ๋ช ๊ฐ์ง ์ฑ์ ๊ณ์ ์คํํ๋ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ ๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ๋ฅผ ๊ณค๋ํ ์ํฉ์ ๋น ๋จ๋ฆฝ๋๋ค.
์ ๋ ์ฐ๋ฆฌ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Kestrel(๋ ๊ฑฐ์ ํธํ์ฑ ์ด์ ) ์์ ์๋ ASP.Net 4.5 ์์ฒด ํธ์คํ ํ๋ก์ธ์ค์์ ์ ์ฒด ์์ฒด ํธ์คํ ASP.Net Core 1.x๋ก ์ด์ํ๋ ์ค์ ๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ์ ์ฒด ํ๋ ์์ํฌ์์ ์ด๋ฌํ ์์ ์ ์คํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์๋ ๊ทธ๋ด๋งํ ์ด์ ๊ฐ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ธํ๋ผ์ ์ผ๋ถ์ด๋ฉฐ ๋ณ๊ฒฝ๋ ์ ์๋ ๋ง์ ํ๋ Windows ์ข ์์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ NTLM ์ธ์ฆ, ์ด๋ฒคํธ ๋ก๊ทธ ๋ก๊น ๋ฑ์ด ํฌํจ๋ฉ๋๋ค. ASP.Net Core 2.x๊ฐ netstandard ์ง์์์ ๋ฒ์ด๋๋ฉด ์์ ํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฌธ์ ๋ ์ ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ๋ ์์ ํ ํ๋ ์์ํฌ ๋์์ด ์๋ค๋ ๊ฒ์ ๋๋ค. Katana๋ ์ฃฝ๊ณ ๋๋ฆฝ๋๋ค(๋น๊ตํ์ฌ).
๋๊ตฐ๊ฐ๊ฐ .Net Framework์ฉ Kestrel๋งํผ ๋น ๋ฅธ HTTP ์๋ฒ๋ฅผ ์๋ ค์ค ์ ์๋ค๋ฉด ํ์คํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์กด์ฌํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ASP.Net์ด ์ด ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋์ ๊ฐ์ ์ค์ ํ๋ก๋์ ๊ณ ๊ฐ์ ๋ค๋กํ๊ณ ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค.
์คํ์ ํ์ดํ๋ผ์ธ ๋ฐ ์คํฌ๊ณผ ๊ฐ์ ๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. netstandard2.0์ด ์๋ netcoreapp2.0์ ์๋ ASP.Net Core 2.x์์ ์ฌ์ฉํ๋ API๋ ๋ฌด์์ด๋ฉฐ ๊ทธ ๋์ ํด๋น API๋ฅผ netstandard2.0 ํ์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
MS๊ฐ ์ด ํ์ค์ ์ฌ์ฉํ์ง ์๋ ์ฃผ๋ ฅ ์ ํ์ ์ถ์ํ๊ธฐ ์ํด ๋ชจ๋ ํ๋ ์์ํฌ์ ๊ฑธ์ณ (์) ํ์ค ์์ ์ 2๋ ์ ๋ณด๋๋ค๊ณ ์ง์งํ๊ฒ ๋งํ๊ณ ์์ต๋๊น?
์ด ๋ฌธ์ ๋๋ฌธ์ GitHub ํ์์ ๋ฌธ์ ์น์ ์ ๋ํ ํ์ด์ง ๋งค๊น ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@mattnischan
์ ๋ ์ฐ๋ฆฌ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ Kestrel(๋ ๊ฑฐ์ ํธํ์ฑ ์ด์ ) ์์ ์๋ ASP.Net 4.5 ์์ฒด ํธ์คํ ํ๋ก์ธ์ค์์ ์ ์ฒด ์์ฒด ํธ์คํ ASP.Net Core 1.x๋ก ์ด์ํ๋ ์ค์ ๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ์ ์ฒด ํ๋ ์์ํฌ์์ ์ด๋ฌํ ์์ ์ ์คํํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์๋ ๊ทธ๋ด๋งํ ์ด์ ๊ฐ ์์ต๋๋ค.
ASP.NET Core 1.x๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๊น?
์คํ์ ํ์ดํ๋ผ์ธ ๋ฐ ์คํฌ๊ณผ ๊ฐ์ ๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ ๊ฒฝ์ฐ netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณต๋์ด์ผ ํฉ๋๋ค. netstandard2.0์ด ์๋ netcoreapp2.0์ ์๋ ASP.Net Core 2.x์์ ์ฌ์ฉํ๋ API๋ ๋ฌด์์ด๋ฉฐ ๊ทธ ๋์ ํด๋น API๋ฅผ netstandard2.0 ํ์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค ์ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
.NET Framework์ ์๋ API๊ฐ .NET Standard์ ๋ํ๋๋ฉด ์ด๋ป๊ฒ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
@stefan2410
ASP.NET Core 1.x๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ด๋ค ASP.NET Core 2.0 ๊ธฐ๋ฅ์ด ํ์ํฉ๋๊น? ๊ทธ๋ฅ SignalR์ ๋๊น?
ํฅํ 2๋ ๋์ ์ฑ์ ๊ทธ๋๋ก ์ ์งํ๋ ์๋ฃ๋๋ฉด .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํด๋น .NET Core๋ก ๊ต์ฒดํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋น์ฆ๋์ค ๋ก์ง ๋ฑ์ ๋ ์ฑ ๊ฐ์ ๊ณต์ ํ ์ ์์ต๋๋ค.
2018๋ 7์์ด ASP.NET MVC Core 1.0 ์ง์ ๋ง๊ฐ์ผ์ด๋ฏ๋ก ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋ค์ ํ ๋ฒ, ๊ฐ์์ ์ธ๊ณ์์ 1.x์ ์๋ช ์ ์ฐ์ฅํฉ๋๋ค.
์ฑ์ ASP.NET MVC Core 2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ณ .NET Framework ๊ตฌ์ฑ ์์๋ฅผ ๊ต์ฒดํ ๋ ์ ์ฑ์ ์ผ๋ถ๊ฐ ๋๋๋ก ํฉ๋๋ค.
Core 2.0์ .NET Framework๋ฅผ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ด ์์ ๋ ์ํํ ์ ์์ต๋๋ค.
์ค์ ๋ก ASP.NET Core 2.0์ด ํ์ํฉ๋๊น? ์๋๋ฉด .NET Core 2.0์ธ๊ฐ์?
.NET Framework์ ์๋ API๊ฐ .NET Standard์ ๋ํ๋๋ฉด ์ด๋ป๊ฒ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
์ฐ๋ฆฌ์ ๊ณํ์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค. ๊ทธ๋ค์ด ๋ค์ด๊ฐ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ญ์์ค. ๊ทธ๊ฒ์ ๋จ์ง ์๊ฐ ๋ฌธ์ ๋ผ๊ณ ์์ ๋ง์ํ์ จ์ฃ ? ์์ ์ฑ์ ์ํด ์ผ์ ๋๋งํผ ๋ธ๋ฆฌ๋ฉ ์ฃ์ง๋ฅผ ์ง์ฐ์ํค๋ ๊ฒ์ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. ์ ์ด๋ ์๊ตฌ์ ์ผ๋ก ๋ค์ฒ์ง๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
@davidfowl
ASP.Net core 2.0์ผ๋ก ์ด๋ํ๊ฒ ์ต๋๋ค. ๋ค๋ฅธ ํด๊ฒฐ์ฑ
์ด ์์ต๋๋ค. ๋๋ ํ์๊ฒ ์งํ ๋ค์ ๋จธ๋ฌผ๋ผ๊ณ ๋งํ ์ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ASP.Net Core๋ฅผ ์ค๋ซ๋์ ๊ธฐ๋ค๋ ธ์ต๋๋ค.
๋น์ฆ๋์ค ๋ก์ง 4.6 ์ด์
๋ธ๋ฆฌ ์ฐธ์กฐ์ ๋ฌธ์ ๊ฐ ์๋ ํ.
Azure/Amazon ๋ผ์ด๋ธ๋ฌ๋ฆฌ, MS Orleans ๋ฌธ์ ๊ฐ ์๋๋ผ SignalR, DirectoryServices๊ฐ ํ์ํฉ๋๋ค.
๋ํ ์์ ๋ํ์ ๊ด๋ จ์ด ์์ ์๋ ์์ง๋ง ๋ฐ์คํฌํฑ ์ฑ์ด UWP ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ UWP์ ๋ฐ์คํฌํฑ ๋ธ๋ฆฌ์ง๋ก Kestrel/HttpListener๋ฅผ ์ฌ์ฉํ์ฌ ASP.Net Core๋ฅผ ๋ก์ปฌ๋ก ํธ์คํ
ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
XAML์ฉ ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ ์ ์์ผ๋ฉฐ Electron์ ์ฌ์ฉํ๊ณ ์ถ์ง ์์ต๋๋ค.
ASP.NET Core 1.x๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๊น?
์ด๋ค ๊ธฐ๊ฐ ๋์? ์ด๋ฒคํธ ๋ก๊ทธ๊ฐ netstandard๋ก ๋ง๋๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
.NET Framework์ ์๋ API๊ฐ .NET Standard์ ๋ํ๋๋ฉด ์ด๋ป๊ฒ ์ฌ์ฉํ์๊ฒ ์ต๋๊น?
์ด๊ฒ ์ผ์ด์ผ? netstandard20์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์ฌ์ ํ net461์์ ์คํ๋๋ ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. netstandard20์ API๊ฐ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ์ ์ถฉ๋ถํ์ง ์๋ค๋ ๋ง์์ด์ ๊ฐ์? ์๋๋ฉด ์์ง ๊ณต๊ฐ๋์ง ์์ ํ๋ ์์ํฌ๋ฅผ ๋์ด netstandard๋ฅผ ์ด๋ํ ๊ณํ์ด ์์ต๋๊น?
์ฐ๋ฆฌ์ ๊ณํ์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค. ๊ทธ๋ค์ด ๋ค์ด๊ฐ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ญ์์ค. ๊ทธ๊ฒ์ ๋จ์ง ์๊ฐ ๋ฌธ์ ๋ผ๊ณ ์์ ๋ง์ํ์ จ์ฃ ? ์์ ์ฑ์ ์ํด ์ผ์ ๋๋งํผ ๋ธ๋ฆฌ๋ฉ ์ฃ์ง๋ฅผ ์ง์ฐ์ํค๋ ๊ฒ์ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. ์ ์ด๋ ์๊ตฌ์ ์ผ๋ก ๋ค์ฒ์ง๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ค ์์ ์์ฑํ ์ ์์ต๋๋ค. ํ์ค ์์ฒด์ ๋ด์ฉ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ .NET Framework๋ฅผ ํฌํจํ ๋ชจ๋ .NET ๊ตฌํ์์ ์ฑํํ๋ ๋ฐ ํจ์ฌ ๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ค์ ๋ ๊ฐ์ง๋ฅผ ์๋ฏธํ ์ ์์ต๋๋ค.
๋ฌผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ์ง์ํ๋ ค๋ .NET Standard ๋ฒ์ ์ ์ ํํ ๋ ์ด๋ฌํ ์ฃผ์ ์ฌํญ์ ๊ณ ๋ คํด์ผ ํ๋ค๋ ์๋ฏธ์ ๋๋ค.
๋ํ ์์ ๋ํ์ ๊ด๋ จ์ด ์์ ์๋ ์์ง๋ง ๋ฐ์คํฌํฑ ์ฑ์ด UWP ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ด๋ UWP์ ๋ฐ์คํฌํฑ ๋ธ๋ฆฌ์ง๋ก Kestrel/HttpListener๋ฅผ ์ฌ์ฉํ์ฌ ASP.Net Core๋ฅผ ๋ก์ปฌ๋ก ํธ์คํ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
UWP์ ASP.NET Core๋ ํ์ฌ ๋ก๋๋งต์ ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ๋งํ ์ ์์ต๋๋ค. HttpListener
๋ .NET Standard 2.0์ ์ผ๋ถ์ด๋ฏ๋ก ์๋ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
์ ์ ์๊ฐ์ ๋ด์ด ์ฌ๊ธฐ์์ ์๊ฒฌ๊ณผ ํผ๋๋ฐฑ์ ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ์ ๋ง์์ ์ ํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ผ๋ก ๋์๊ฐ ๊ธธ์ ์ฐพ๋ ๋์ ๋น์ ์ ์ธ๋ด์ ํจ๊ป ์ ๋ง ๊ฐ์ฌํฉ๋๋ค. ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ๊ฒฝ๊ณ ์์ด ๋๋ฌด ํ๋ค๊ณ ๋๋ฌด ๋ฆ์ ์๋๊ฐ ์๋์์์ ์์ ์ฃผ์ญ์์ค. ์ฌํ ํ๋จ์ 20/20์ด๋ฉฐ ์ฐ๋ฆฌ๊ฐ ์ง๊ธ ์๊ณ ์๋ ๊ฒ์ ์์๋ค๋ฉด ๋ ์ผ์ฐ ์ ๋ณด๋ฅผ ์ ๋ฌํ์ ๊ฒ์ ๋๋ค. ์์ผ๋ก ๋ ์ด์ฌํ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
์ด๋ฒ ์ฃผ ํ๋ฐ์ 2.0.0-preview1 ๋ฆด๋ฆฌ์ค์ ํจ๊ป ๋ฐํ๋ก ๊ฒ์ํ๊ธฐ ์ ์ ์ฌ๊ธฐ์์ ๋ฐ์ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ณํ์ด ์์ต๋๋ค. ๊ทธ๋ฐ ์ผ์ด ๋ฐ์ํ๋ฉด ํด๋น ๊ณํ์ ๋ํ ํ ๋ก ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ์ ๋ฌธ์ ๋ฅผ ์ด โโ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ง๊ธ์ ์ฌ๊ธฐ์์ ๊ณ์ํด์ ๊ทํ์ ์๊ฐ๊ณผ ํผ๋๋ฐฑ์ ๊ณต์ ํ์ญ์์ค.
System.Web
์์ ํ๋ ๊ฒ์ฒ๋ผ ์๋ก์ด ์ธ์ด ๋ฒ์ ๋ฑ์ ์ง์ํ๋๋ก ASP.NET Core 1.x๋ฅผ ๊ณ์ ์
๋ฐ์ดํธํ ๊ฒ์
๋๋ค.System.DirectoryServices
๋ฐ System.Drawing
๋ฅผ .NET Core๋ก ์ด์ํ ์์ ์
๋๋ค.ServiceBase
(.NET Core Windows ์๋น์ค ์ง์)๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ค์ ํ์๋ผ์ธ ์ธ์๋ ์์ง ํ์๋ผ์ธ์ด ์์ต๋๋ค(๋ชฉ๋ก์ ์์
ํ๋ฉด์ ํ์๋ผ์ธ์ด ๋ ๊ตฌ์ฒด์ ์ผ๋ก ํ์๋จ). ๊ณ ๊ฐ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ด ๋ชฉ๋ก์ ์์ฑํฉ๋๋ค.System.ServiceModel
(์๋ฒ ์ธก WCF)๋ฅผ .NET Core๋ก ์ด์ํ ๊ณํ์ด ์์ต๋๋ค. .NET Core์ฉ WCF๋ ๊ณ์ ํฅ์๋๊ณ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๊ธฐ๋ฅ(์: HTTP ๋ฉ์์ง ์ํธํ)์ด ์ถ๊ฐ๋ ์ ์์ต๋๋ค.@DamianEdwards @davidfowl ๋ฌธ์ ์ ํฐ ๋ถ๋ถ์ ์๊ฐ์์ ๊ณํ๊ณผ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ด ํ์ํ ์ ์๋ค๋ ์ ์ ๋๋ค. ๋ง์ ์กฐ์ง์ด ๋ค์ ๋จ๊ณ์์ ๋ฒ์ด๋ ์ ์๋ ASP.NET Core๋ก ์ด์ ํ๋ ๋ฐ ๋๋ ๋ง๋ํ ๊ธฐํ ๋น์ฉ์ ํฌ์ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. .NET 4.x๋ ๋ชจ๋ ์์คํ ์ข ์์ฑ์ ์คํํ ์ ์๋ค๊ณ ํ์ ํ ์ ์๋ ์ ์ผํ ํ๋ซํผ์ด๊ธฐ ๋๋ฌธ์.
์ง๊ธ๊น์ง MS๋ ASP.NET 4.x์ ๊ฐ๋ฐ์ด ์ค๋จ๋์๋์ง ์ฌ๋ถ์ ํฅํ ๋ชจ๋ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ด ASP.NET Core์ ํฌ์๋ ์ง ์ฌ๋ถ๊ฐ ๋ถํ์คํ ASP.NET์ ๋ฏธ๋๋ก .NET Core๋ฅผ ์ ๊ทน์ ์ผ๋ก ๋ง์ผํ ํด ์์ต๋๋ค. ์์คํ ์ ์ต์ ์ํ๋ก ์ ์งํ๊ธฐ ์ํด ๋ง์ ๋ง์ด๊ทธ๋ ์ด์ ์ด ์งํ ์ค์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๋ชจ๋ ๋ ธ๋ ฅ์ ๊ฒฐ๊ณผ๋ก EOL'๋ ํ๋ซํผ์ผ๋ก ํจ๊ณผ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๊ฒฝ์ฐ ๋ฒ์ค ์๋๋ก ๋์ ธ์ง ๊ฒ์ฒ๋ผ ๋๋ ๊ฒ์ ๋๋ค. ์ด๋ .NET Core๋ก์ ์ ํ์ ์์ํ๋ ๋ฐ ๊ฐ์ฅ ํฐ ์ญํ ์ ํ ๊ฐ๋ฐ์/์ปจ์คํดํธ์ ์กฐ์ง ๋ชจ๋์๊ฒ ํผํด๋ฅผ ์ค ๊ฒ์ ๋๋ค. ์ง๊ธ์ ASP.NET Core 2.0์์ ์๋ฌด๊ฒ๋ ํ์ํ์ง ์์ ์ ์์ง๋ง ์์คํ ์ ์ํ ์ฌ์ ๊ณต๊ฐ์ด ์๊ณ ๋ชจ๋ ๋ ธ๋ ฅ์ ๋ํด ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ์ ์ก์ธ์คํ ์ ์๊ธฐ๋ฅผ ํ์คํ ์ํ ๊ฒ์ ๋๋ค.
๋ํ IMO๊ฐ .NET์ ๊ฐ์ฅ ํฐ ์์ฐ ์ค ํ๋๋ก ๊ฐ์ฃผ๋์ด์ผ ํ ๋ ๊ธฐ์กด "๋ ๊ฑฐ์" ์ฝ๋๊ฐ ์ฑ ์์ผ๋ก ๊ฐ์ฃผ๋๋ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค. ๊ธฐ์กด .NET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ ๊ฒฝ์ฐ .NET Core๋ ๊ทธ๋ค์ง ๋งค๋ ฅ์ ์ด์ง ์์ ๊ฒ์ ๋๋ค. . Java๋ ์ธ์ด ์์ฒด์ ๊ณ ์ ํ ์ฝ์ ๋ณด๋ค ๋ ์ค์ํ JVM์ ๋ฐฉ๋ํ๊ณ ์์ ์ ์ธ ์ํ๊ณ๋ก ์ธํด ์ฌ์ ํ ๊ฐ๋ ฅํฉ๋๋ค.
MS๊ฐ ๋ฐํ๋ ๋๊น์ง ๋๋ฆฌ ์๋ ค์ง์ง ์์ .NET 4.x ์ง์ ์ค๋จ์ผ๋ก ์ธํ ๋ฐ๋ฐ์ ๋๋ผ๊ธฐ ์์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. GitHub ๊ฐ๋ฐ์ ์ ๊ทน์ ์ผ๋ก ๋ฐ๋ฅด๋ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๋ ๊ทธ๋ฐ ๋ค์ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ณด๋ ๋ฐ ๋ ๊ด์ฌ์ด ์์ ๊ฒ์ผ๋ก ์์ํฉ๋๋ค. ๊ทธ๋ค์ ์ํธ ์ด์ฉ์ฑ์ด ์๊ณ ๊ธฐ์กด ์ฝ๋ ๊ธฐ๋ฐ์ ๋ํ ์ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์๋์ง ํ์ธํฉ๋๋ค. ๋๋ ๋งค์ฐ ๋๋์ง๋ง ๋ฐํ๋ ํ ์ด ๊ฒฐ์ ์ผ๋ก ์ธํด ์ด์ด ๋์ง ์๋๋ค๋ฉด ์๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ก ์ธํด ์์ฒ๋ฅผ ๋ฐ์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๊ฒ์ด ์ณ์ ๊ฒฐ์ ์ผ ์๋ ์์ต๋๋ค.
ASP.NET Core 2.0 ์์ /ํธํ ๋ฆด๋ฆฌ์ค์ ์ด์ ์ ๋ง์ถ ๋ค์ ํ์ ๋ฒ์ ์ .NET Core ์ ์ฉ ๋ฏธ๋๋ฅผ ๋ฐํํ๋ ๊ฒ์ ๋๋ฌด ๋ง์ ๋ ธ๋ ฅ์ด ํ์ํฉ๋๊น? ์ ํ ์์ธกํ ์ ์๋ ์ํฉ์์ ์ด ์ํฉ์์ ํ๋ ๊ฒ์ด ๊ณต์ ํ ์ผ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
@DamianEdwards ์ ๋ฐ์ดํธ์ ๋ช ํํ ๊ณํ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋์ํ์ง ์์ง๋ง, ๊ทธ๋๋ ๋น์ ์ด ๊ทธ๊ฒ์ ๋ฐฐ์นํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ฌ๊ธฐ์๋ ์ฌ์ ํ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๊ฐ ์์ต๋๋ค. 1.x์ ๋ํ ํฌํธ๋ ๊ฑฐ์ ์์ ํ ์ธก๋ฉด ํฌํธ์ด๋ฉฐ ์ฐ๋ฆฌ๋ฅผ ์ํ ๊ธฐ๋ฅ์ด ๊ฑฐ์ ์์ต๋๋ค. 2.x๋ ๋ช ๊ฐ์ง ๊ฐ์น ์๋ ์ ๊ทธ๋ ์ด๋๊ฐ ์๋ ๊ณณ์ด๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ํ ์ ์๋ค๋ ๋ณด์ฅ์ด ์์ต๋๋ค. ์ ์ฒด ํ๋ ์์ํฌ ์ข ์์ฑ์ผ๋ก ์ธํด 1.x๋ก ํฌํ ํ๋ ๋ฐ์๋ง ์๋นํ ์๊ฐ, ๋น์ฉ ๋ฐ ๋ ธ๋ ฅ์ ์๋นํ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ๋๋ ์ฐ๋ฆฌ ํ์ฌ์ ๊ทธ๋ฐ ๋๋ฐ์ ํ์ง ์์ ๊ฒ์ ๋๋ค. ํ์ฌ ASP.NET 4.x์์ ์ง์ํ๋ ๊ฒ๋ณด๋ค ์ ์ ์ง์์ ๋ฐ๊ฒ ๋ ์๋ ์์ต๋๋ค.
๋ณ๊ฒฝ๋์ง ์๋ ํ ์ฐ๋ฆฌ ์ฑ์ ASP.NET Core๋ก ์ด๋ํ์ง ์์ ๊ฒ์ด๋ฉฐ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด์ ๋ํ dogfood ๋ถ์กฑ์ผ๋ก ์ธํด ํจ์ฌ โโ๋ ๋๋น ์ง ๊ฒ์ ๋๋ค.
์ด ๊ฒฐ์ ์ ์ฌ๊ณ ํ์๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋๋๋ค. ์ธ์ ๊ฐ ์ฐ๋ฆฌ๊ฐ .NET Core ํ๋ซํผ ๊ฐ๋ฐ์ ๋๊ธฐ ์ํด ํ์ ํ ์์ฒ ์๊ฐ์ ๊ฐ์ธ ์๊ฐ์ Stack Overflow์์ ํ์ฉํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@NickCraver
์ ์ฒด ํ๋ ์์ํฌ ์ข ์์ฑ์ผ๋ก ์ธํด 1.x๋ก ํฌํ ํ๋ ๋ฐ์๋ง ์๋นํ ์๊ฐ, ๋น์ฉ ๋ฐ ๋ ธ๋ ฅ์ ์๋นํ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค.
์ด ์ค๋ ๋ ์ ์ฒด์์ System.DirectoryServices๋ฅผ ํต์ฌ ํญ๋ชฉ ์ค ํ๋๋ก ํธ์ถํ์ต๋๋ค. ์ด์ํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฑฐ๋ ์ ๋ ์ด์๋์ง ์์ ์ข ์์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. 2.0์ด .NET Framework๋ฅผ ์ง์ํ๋ค๋ฉด ์ด๋ฌํ ์ข ์์ฑ์ด 1๋ ์์ ์ด๋ํ ๊ฒ์ ๋๊น?
2.x๋ ๋ช ๊ฐ์ง ๊ฐ์น ์๋ ์ ๊ทธ๋ ์ด๋๊ฐ ์๋ ๊ณณ์ด๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ํ ์ ์๋ค๋ ๋ณด์ฅ์ด ์์ต๋๋ค.
์ด๋ ๊ฒ? ์ ํ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ASP.NET Core 1.1๋ก ๋ค์ ํฌํ ํ๋ ์ค์ํ ์ฌํญ์ ๋ํด ๋ ผ์ํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ์์๋๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๋ณ๊ฒฝ๋์ง ์๋ ํ ์ฐ๋ฆฌ ์ฑ์ ASP.NET Core๋ก ์ด๋ํ์ง ์์ ๊ฒ์ด๋ฉฐ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด์ ๋ํ dogfood ๋ถ์กฑ์ผ๋ก ์ธํด ํจ์ฌ โโ๋ ๋๋น ์ง ๊ฒ์ ๋๋ค.
๋๋ stackoverflow.com์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด์ง๋ง ASP.NET Core๋ฅผ ์ผ๋ถ ๋ถ๋ถ์ ์ฌ์ฉํ ์ ์๋๋ก ์กฐ๊ฐ์ ๋ถ๋ฆฌํ ์ ์์ต๋๊น("๋ง์ดํฌ๋ก ์๋น์ค"๋ผ๊ณ ๋งํ๊ณ ์ถ์ง ์์ต๋๋ค)?
@mythz
์ด๋ ์กฐ์ง๊ณผ .NET Core๋ก์ ์ ํ์ ์์ํ๋ ๋ฐ ๊ฐ์ฅ ํฐ ์ญํ ์ ํ ๊ฐ๋ฐ์/์ปจ์คํดํธ ๋ชจ๋์๊ฒ ํผํด๋ฅผ ์ค ๊ฒ์ ๋๋ค.
ASP.NET Core๋ฅผ ์๋ฏธํฉ๋๊น? ๋๋ .NET ์ฝ์ด?
@davidfowl ASP.NET Core๋ฅผ ์๋ฏธํ์ง๋ง ASP.NET Core/.NET 4.x์์ ๋จผ์ ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ค์ ๋์ค์ .NET Core์์ ๋จ๊ณ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณํํ๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋งํ์๋ฉด ASP.NET Core/.NET Core์๋ SAML์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. ํ์ฌ IdP๋ฅผ ํตํด SSO๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ์๊ตฌ ์ฌํญ์ด ์์ง๋ง ์ด๊ฒ์ด ๊ฐ๋ฅํ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@davidfowl ASP.NET Core๋ฅผ ์๋ฏธํ์ง๋ง ASP.NET Core .NET 4.x์์ ๋จผ์ ๋ง์ด๊ทธ๋ ์ด์ ํ ๋ค์ ๋์ค์ .NET Core์์ ๋จ๊ณ์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณํํ๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ ๊ทธ๋ด์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋๋ ๊ทธ ๊ณํ์ด ์๋ง๋ ๋ด ์กฐ์ง์ด ํ๋ซํผ์์ ๋ฒ์ด๋๋ ๊ฒ์ ํผํ๊ธฐ์ ์ถฉ๋ถํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋จ์ ์๋ netfx dep๋ฅผ ๋ค์ ์์ฑํ๊ฑฐ๋ ์ ๊ฑฐํ ์ ์๋ ์ง์ ๊ธฐ๊ฐ(=๋ณด์ ํจ์น)์ด ๋ ๊ธธ๋ค๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ์ฌ์ ํ ๋ชจ๋ ๊ฒ์ด ๋ณต์กํ๊ณ ๊ฐ๋ ์ ์ผ๋ก ์ด์ํฉ๋๋ค. ์ง๊ธ๋ถํฐ 3๋ ํ์ Excel ๋ฌธ์๋ฅผ ์์งํ๊ฑฐ๋ ์ฑ์ ์น ์๋ฒ๋ฅผ ํฌํจํ ์ ์๋ ์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๋ ค๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ ๊น์? netcoreapp ๋์ ํ์ค ์์ ๊ตฌ์ถ๋ Orleans์ ๊ฐ์ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ ์ด๋ป๊ฒ ๋ฉ๋๊น?
ASP.NET Core์์ ์ค์ ๋ก ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ netstandard2.0์์ ์ ๊ทธ๋ ๊ฒ ๋ง์ ์์ ์ด ์ํ๋์๋์ง ์ฌ๊ฐํ๊ฒ ์ดํดํ์ง ๋ชปํฉ๋๋ค.
3๋ ํ Excel ๋ฌธ์๋ฅผ ์์งํ ์ ์๋ ์น์ฌ์ดํธ๋ฅผ ๊ตฌ์ถํ๋ ค๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ ๊น์?
๋งํ๊ธฐ ์ด๋ ต๋ค. ๊ทธ๊ฒ์ ์์ ํ ํ์ ๋ํด ๋งํ ์๋ ์์ง๋ง ์๋ง๋ .NET Core๋ก ์ด์๋๊ณ ํฌ๋ก์ค ํ๋ซํผ์์ ์๋ํ ๊ฒ์ ๋๋ค.
๋๋ ์ฑ์ ์น์๋ฒ๋ฅผ ํฌํจ์ํค๋ ค๋ฉด?
HttpListener
๋ netstandard 2.0์ ์ผ๋ถ์
๋๋ค.
netcoreapp ๋์ ํ์ค ์์ ๊ตฌ์ถ๋ Orleans์ ๊ฐ์ ๋ค๋ฅธ ํ๋ ์์ํฌ๋ ์ด๋ป๊ฒ ๋ฉ๋๊น?
.NET Framework, UWP, .NET Core, ๋ชจ๋ ธ ๋ฑ์์ ์คํํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ํ๋ ์์ํฌ์ ๋ฌ๋ ค ์์ต๋๋ค. ์ ํ ์ฌํญ์ ๋๋ค. Orleans๋ .NET Core์ ํจ๊ป ์ ๊ณต๋์ง ์์ต๋๋ค. ASP.NET Core๋ ๊ทธ๋ ์ต๋๋ค. ๊ทธ ์ ํ๋ค์ ํ๋์ด๋ฉฐ ๋์ผํฉ๋๋ค.
์ฐ๋ฆฌ(๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ ๊ณ ๊ฐ๋ค)์๊ฒ ์ด๋ ค์ด ๊ฒฐ์ ์ด ๋ ๊ฒ์ ๋ด๊ฐ ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๋์๊ด์ด ์๋๋ผ 6๊ฐ์ ํ์ ๋ด๊ฐ ํ์ํ ๋์๊ด์ ๊ดํ ๊ฒ์
๋๋ค. ์์ง netstandard
๋ฅผ ์ง์ํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๊ฐ ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด ํ๋ก์ ํธ๋ฅผ ์์ํ ์ง ํ ๋ฌ์ด ์ง๋ฌ์ ๋ ์ฐ๋ฆฌ๋ EF Core๋ ๊ณ ์ฌํ๊ณ EF6์์๋ ๊ฐ๊น์ง ์์ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด NHibernate์ ํ์ํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ ์ฒด .NET์์ ASP.NET Core 1.x๋ฅผ ๋์์ผ๋ก ํ๋ ์ต์
์ ๋ฌด์์
๋๊น?
๋ฏธ๋์ ApiPort๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ์ฒด .NET์์ ASP.NET Core 1.x๋ฅผ ๋์์ผ๋ก ํ๋ ์ต์ ์ ๋ฌด์์ ๋๊น?
๋ค.
๋งํ๊ธฐ ์ด๋ ต๋ค. ๊ทธ๊ฒ์ ์์ ํ ํ์ ๋ํด ๋งํ ์๋ ์์ง๋ง ์๋ง๋ .NET Core๋ก ์ด์๋๊ณ ํฌ๋ก์ค ํ๋ซํผ์์ ์๋ํ ๊ฒ์ ๋๋ค.
๋ง์ต๋๋ค. ํ์ง๋ง ์ด์๋์ง ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํ๊ณ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ ๊ฐ์น๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ asp.net ํ์ ๊ถํ์ ๋๋ค.
๋ง์ต๋๋ค. ํ์ง๋ง ์ด์๋์ง ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํ๊ณ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ ๊ฐ์น๊ฐ ์๋์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ asp.net ํ์ ๊ถํ์ ๋๋ค.
.NET์ ํฌ๊ณ ์ค๋๋์์ผ๋ฏ๋ก ASP.NET ํ์ด .NET ์์ฝ์์คํ ์ ์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์จ๊ฒฐ์ ๋ํด ์ด์ผ๊ธฐํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ๋นํ์ค์ ์ด์ผ. ๋ฐฉ๊ธ CSOM(https://msdn.microsoft.com/en-us/library/office/jj163123.aspx)์ด ์ด ์ค๋ ๋์ ์ผ๋ถ๋ก ๋ฌด์์ธ์ง ๋ฐฐ์ ๊ณ ์ด์๋ ๊ฒ์ธ์ง ์์ฌ์ค๋ฝ์ต๋๋ค. ํ์คํ.
.NET Framework์์ ASP.NET 1.1์ ๋ํ ์ง์์ ํ์ฅํ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ฐ ์ํํ๋ ๋ฐ ๋์์ด ๋์ง๋ง .NET Core์ ASP.NET Core๋ก ์ ๋๋ก ์ด๋ํ๋ ค๋ฉด ์ผ๋ถ ์ข ์์ฑ ์ ๊ฒฉ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋์์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค(๋ฏธ๋).
๊ทธ ์ ์ ์ด๋ฏธ ๊ธธ๊ฒ ๋ ผ์๋์์ผ๋ฏ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฐ๋ก ๋จ๊ฒจ๋๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ(amilia.com, ์ ์ ์๊ฑฐ๋ SaaS) ํ์ฌ ๋๊ตฌ๋ ์ด๋ฏธ ๋์ ๋์๊ณ ํ์ฌ๋ก์๋ ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core๋ฅผ ์คํํ ์๋ ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์ ๋นํ ์ด์ ์ฒ๋ผ ๋ค๋ฆฌ์ง ์๋๋ค๋ ๊ฒ์ ์ธ์ ํ์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ์ด์ผ ํ๋ ์ ์ฝ์ ๋๋ค.
์ด๋ก ์ ์ผ๋ก ์ด๋ฌํ ๋๊ตฌ(์: ํ๋กํ์ผ๋ฌ, ๋ชจ๋ํฐ๋ง, ๋น๋ ์๋ฒ ๋ฑ)๋ฅผ .NET Core๋ฅผ ์ง์ํ๋ ๋์์ผ๋ก ๊ต์ฒดํ ์ ์์ง๋ง ๋ ์๊ธํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋ช ๊ฐ์์ ํฌ์ํ๊ณ ์ถ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ASP.NET Core/.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ๊ฒ์ด์ง๋ง ์ง๊ธ์ ์๋นํ ์์ง์ด๋ ๋์์ ๋๋ค.
์ด ์์ ๊น์ง๋ ASP.NET Core ๊ฐ ๋ฐ์คํฌํฑ ํ๋ ์์ํฌ์์ ๊ณ์ ์คํ๋ ์ ์์ ๊ฒ์ด๋ผ๋ ๊ธฐ๋๊ฐ ์๊ฒผ์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์ข ๋ฅ์ ์ฐป์์ ์ฝ์ด์ผ ํ๋์ง ์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋นํ์ค์ ์ด์์ต๋๋ค :/
์๋ฅผ ๋ค์ด, ASP.NET Core๊ฐ .NET Core์์๋ง ์คํ๋ ์ ์๋ค๋ ์๊ฐ ์์ฒด๊ฐ ๋ฏธ์น ๊ฒ์ ์๋์ง๋ง, ์ฐ๋ฆฌ๋ ์ด์ ์ ๋ค์ด๋ณธ ์ ์ด ์์ต๋๋ค. ๋ชจ๋ ๊ณต๊ฐ ์ ๋ณด๋ .NET Framework์์ ์ ๋๋ก ์คํ๋์์ผ๋ฉฐ ์ด๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ ํ์๊ฐ ์์์ต๋๋ค.
.NET์ ํฌ๊ณ ์ค๋๋ ๊ฒ์ด๋ฏ๋ก ASP.NET ํ์ด .NET ์์ฝ์์คํ ์ ์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์จ๊ฒฐ์ ๋ํด ๋งํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ๋นํ์ค์ ์ด์ผ
์ด๊ฒ์ด .NET 4.x๋ฅผ ๊ณ์ ์ง์ํด์ผ ํ๋ ์ข์ ์ด์ ๊ฐ ์๋๋๊น? ํธํ์ฑ/์ํธ ์ด์ฉ์ฑ์ ๋ถ๋ด์ .NET Core๊ฐ ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํธ ์ด์ฉํ ํ์๊ฐ ์๋๋ก ํ๊ณ ๊ธฐ์กด์ ์ธ๊ธฐ ์๋ .NET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ .NET Core( MS ๋ฐ ์ธ๋ถ ์์ฑ์์ฉ).
@mythz
์ด๊ฒ์ด .NET 4.x๋ฅผ ๊ณ์ ์ง์ํด์ผ ํ๋ ์ข์ ์ด์ ๊ฐ ์๋๋๊น? ํธํ์ฑ/์ํธ ์ด์ฉ์ฑ์ ๋ถ๋ด์ .NET Core๊ฐ ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํธ ์ด์ฉํ ํ์๊ฐ ์๋๋ก ํ๊ณ ๊ธฐ์กด์ ์ธ๊ธฐ ์๋ .NET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ .NET Core( MS ๋ฐ ์ธ๋ถ ์์ฑ์์ฉ).
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ 1.1 ์ ์๋ช ์ ๋ํ ASP.NET Core๊ฐ ์ฐ์ฅ๋์์ต๋๋ค(์๊ตฌ์ ์ผ๋ก๋ ์๋์ง๋ง). SignalR์ด ASP.NET Core 2.0์ ์ฌ์ฉํ๋ ์ฃผ์ ์ด์ ์ค ํ๋๋ก ๋ช ์๋์ด ์๊ธฐ ๋๋ฌธ์ SignalR์ด ์๋ํ๋์ง ํ์ธํ๊ฒ ์ต๋๋ค. ๋์์ ASP.NET Core๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก ์ํ๋ ์์น๊ฐ ์๋๋๋ค. ์๋๋ ํญ์ ํตํฉ .NET Core ํ๋ซํผ์ ์ผ๋ถ๋ก ์ ๊ณตํ๋ ๊ฒ์ด์์ต๋๋ค.
@gulbanana
์ด ์์ ๊น์ง๋ ASP.NET Core๊ฐ ๋ฐ์คํฌํฑ ํ๋ ์์ํฌ์์ ๊ณ์ ์คํ๋ ์ ์์ ๊ฒ์ด๋ผ๋ ๊ธฐ๋๊ฐ ์๊ฒผ์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์ข ๋ฅ์ ์ฐป์์ ์ฝ์ด์ผ ํ๋์ง ์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋นํ์ค์ ์ด์์ต๋๋ค :/
.NET Framework์ ASP.NET Core๋ ๋ถํํ๋ ์ด์์ ์ฉ์ดํ๊ฒ ํ๋ ์คํฑ ๊ฐญ ์๋ฃจ์ ์ผ๋ก ์ ๋ฌ๋์ง ์์์ต๋๋ค. ์ผ๋ถ ์ข ์์ฑ์ด ์ ๋ ์ด์๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒฝ์ฐ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฐ๋ก ์ธ ์์ํ ์ง์๋๋ ํ๋ซํผ์ผ๋ก ์๋๋ ์ ์ด ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ 1.1 ์ ์๋ช ์ ๋ํ ASP.NET Core๊ฐ ์ฐ์ฅ๋์์ต๋๋ค(์๊ตฌ์ ์ผ๋ก๋ ์๋์ง๋ง).
๋ฌธ์ ๋ ๊ทธ๊ฒ์ผ๋ก ์ถฉ๋ถํ์ง ์ฌ๋ถ์ ๋๋ค. ํ์ฌ ๋ฒ์ ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํธํ/์์ ๋ ๋ฆด๋ฆฌ์ค๊ฐ ์ ๊ณต๋๊ธฐ ์ ์ EOL'๋์์ต๋๋ค.
๊ธฐ์กด ํฌ์์ ๊ฐ์น๊ฐ ๊ณ ๋ ค๋๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. EOL ํ๋ซํผ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ํด ๋ชจ๋ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ผ ์ฌ๋์ด ๋๊ฐ ์๊ฒ ์ต๋๊น? Devs๋ ๊ธฐ์กด ๋ธ๋ผ์ดํ๋ ์์คํ ์์ ๋ฌด๊ธฐํ ์์ ํ ๊ฒ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ASP.NET v4.x ๊ธฐ์ ์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ฉฐ . NET 4.x ์ง์์ด ์ค๋จ๋๊ณ ๋ง๋ค๋ฅธ ํ๋ซํผ์ผ๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณ ๋ คํ๊ฑฐ๋ ๊ถ์ฅํ๋ ๊ฒ์ ๋ฌด์ฑ ์ํฉ๋๋ค.
@davidfowl
.NET Framework์ ASP.NET Core๋ ๋ถํํ๋ ์ด์์ ์ฉ์ดํ๊ฒ ํ๋ ์คํฑ ๊ฐญ ์๋ฃจ์ ์ผ๋ก ์ ๋ฌ๋์ง ์์์ต๋๋ค. ์ผ๋ถ ์ข ์์ฑ์ด ์ ๋ ์ด์๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒฝ์ฐ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฐ๋ก ์ธ ์์ํ ์ง์๋๋ ํ๋ซํผ์ผ๋ก ์๋๋ ์ ์ด ์์ต๋๋ค.
์ค์๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ด์ฐฎ์ต๋๋ค. ์ด์ ๋ฌธ์ ๋ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฌํ ๊ฐ์ ์ ํ๊ณ ๋ ผ๋ฆฌ์ ์ด์ง๋ง ์๋ชป๋ ๊ฒฐ๋ก ๋๋ฌธ์ ASP.NET Core ๋ง ์ฌ์ฉํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ผ๋ง๋ ๋ง์์ง ์ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค./
asp.net ์ฝ์ด 2/ .net ์ฝ์ด 2๋ฅผ ๋๋ฌด ์ค๋ ๊ธฐ๋ค๋ ธ๋๋ฐ ๊ฒฐ๊ณผ๊ฐ ๋๋ฌด ์ฐ์ธํฉ๋๋ค.
@mythz
๊ธฐ์กด ํฌ์์ ๊ฐ์น๊ฐ ๊ณ ๋ ค๋๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. EOL ํ๋ซํผ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ํด ๋ชจ๋ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ผ ์ฌ๋์ด ๋๊ฐ ์๊ฒ ์ต๋๊น?
๋ด๋ ์ 3.0์ด ๋์ค๋ฉด ASP.NET Core 2.0์ด .NET Framework์์ EOL๋๋ ๊ฒ์ ๋ํด ๊ฐ์ ์ฃผ์ฅ์ ํ ์ ์๋์? ASP.NET Core 1.1์์ 1๋ ์ด ์ถฉ๋ถํ์ง ์๋ค๊ณ ๋งํ๋ ๊ฒฝ์ฐ ASP.NET Core 2.0์์ 1๋ ์ด ๊ด์ฐฎ๋ค๊ณ ์ ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
Devs๋ ๊ธฐ์กด ๋ธ๋ผ์ดํ๋ ์์คํ ์์ ๋ฌด๊ธฐํ ์์ ํ ๊ฒ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฌ ASP.NET v4.x ๊ธฐ์ ์ด ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ ๊ฒ์ด๋ฉฐ . NET 4.x ์ง์์ด ์ค๋จ๋๊ณ ๋ง๋ค๋ฅธ ํ๋ซํผ์ผ๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ณ ๋ คํ๊ฑฐ๋ ๊ถ์ฅํ๋ ๊ฒ์ ๋ฌด์ฑ ์ํฉ๋๋ค.
ASP.NET 4.x ๊ธฐ์ ์ด ์ธ๋ชจ ์๊ฒ ๋ ๊ฒ์ด๋ผ๋ ๋ง์ ๋๊ฐ ๋ค์์ต๋๊น? ์ฐ๋ฆฌ๊ฐ ๋ฐ๋ผ๋ ๊ฒ์ด ์๋ค๋ฉด ๊ทธ๋ค์ ๊ทธ๋ ์ง ์์ต๋๋ค. ํนํ MVC๋ ๋ช ๊ฐ์ง ์๋ก์ด ๊ธฐ๋ฅ๊ณผ์ ๊ฐ๋ ํธํ์ฑ์ ๊ฐ์กฐํฉ๋๋ค. ASP.NET Core๋ Katana์ ๋งค์ฐ ํก์ฌํฉ๋๋ค(์ค์๋ ์๋๋๋ค). Web Forms์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ฉด MVC๋ ์ด๋ป์ต๋๊น?
์ปจ์คํ ๊ฒฝํ์ด ์์ง๋ง ์ข ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ๋์ํ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ๊ณ ๋ คํ์ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์ค๊ณํด์ผ ํฉ๋๋ค.
@xyting ์ค๋ช ํด์ฃผ์ค ์ ์๋์?
@davidfowl
๋ด๋ ์ 3.0์ด ๋์ค๋ฉด ASP.NET Core 2.0์ด .NET Framework์์ EOL๋๋ ๊ฒ์ ๋ํด ๊ฐ์ ์ฃผ์ฅ์ ํ ์ ์๋์? ASP.NET Core 1.1์์ 1๋ ์ด ์ถฉ๋ถํ์ง ์๋ค๊ณ ๋งํ๋ ๊ฒฝ์ฐ ASP.NET Core 2.0์์ 1๋ ์ด ๊ด์ฐฎ๋ค๊ณ ์ ์ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋๋ ์ค๋ซ๋์ ASP.NET Core 1.1์ด ASP.NET Core 2.0 ๋ฐ .NET Standard 2.0์ ๋ํ ์์ ์๋ฃจ์ ์ผ ๋ฟ์ด๋ผ๊ณ ๊ฐ์ ํ์ต๋๋ค. .NET 4.x์์ ๋๋ฝ๋ ํต์ฌ ๊ธฐ๋ฅ - ์ด ์ค๋ ๋๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ทธ ๊ฐ์ ์ ํ๊ดดํ ๋๊น์ง. .NET 4.x ํธํ์ฑ์ ASP.NET Core 2.0๊น์ง ์ ์งํ๋ ๊ฒ์ ์ด์์ ์ด์ง ์์ง๋ง ์๋ฌด๋ ์์ํ์ง ๋ชปํ ํ์ฌ ๋ฆด๋ฆฌ์ค์์ ์ข ๋ฃํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค.
ASP.NET 4.x ๊ธฐ์ ์ด ์ธ๋ชจ ์๊ฒ ๋ ๊ฒ์ด๋ผ๋ ๋ง์ ๋๊ฐ ๋ค์์ต๋๊น? ์ฐ๋ฆฌ๊ฐ ๋ฐ๋ผ๋ ๊ฒ์ด ์๋ค๋ฉด ๊ทธ๋ค์ ๊ทธ๋ ์ง ์์ต๋๋ค.
MS๋ ASP.NET Core์ ์ด์ ์ ๋ง์ถ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ชจ๋ ์๋ก์ด ๋ฐํ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ .NET Core์ ๋ํ ๋ชจ๋ ๊ณต๊ฒฉ์ ์ธ ๋ง์ผํ ์ ์ํํฉ๋๋ค. ์ด์ ASP.NET WebForms/MVC๊ฐ ๊ณต๊ฐ์ ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๊น? ์ด์ ASP.NET WebForms/MVC์ .NET Core์ ์ด๋ ์ ๋์ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ด ํฌ์๋๊ณ ์์ต๋๊น? ์ต๊ทผ์ ๋ณธ ๋ชจ๋ ๊ฒ, ๋ชจ๋ ์ฃผ๊ฐ ์คํ ๋์ , ๋น๋์ค ์์ต์๋ ASP.NET Core์๋ง ์ด์ ์ ๋ง์ถ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ASP.NET WebForms ๋๋ MVC ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ๋ฏธ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฒ์ด ํ์คํ ํธํ์ง ์๋ค๋ ๊ฒ์ ์๋๋ค.
MS๊ฐ ์๋๊ธธ ๋ฐ๋๋ค๋ฉด ๋ช ํํ ๋ก๋๋งต์ผ๋ก ๋ ์ ์ ๋ฌํด์ผ ํฉ๋๋ค. ์ง๋ ๋ช ๋ ๋์ ASP.NET์ด ์ผ๋ง๋ ๋ถ์์ ํ๋์ง(์ด ๋ฌธ์ ๋ ์๋ฒฝํ ์์)๋ฅผ ๊ฐ์ํ ๋ ๊ณต์์ ์ธ ์ฝ์๊ณผ ๋ฐํ ์์ด๋ ๋ฏธ๋๊ฐ ๋ฌด์์ธ์ง ์ ์ ์์ต๋๋ค.
๋ฒ์ 1์ด ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ๋์ง ์์๋๋ผ๋ฉด ๋ ์ข์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ์ฌ๋์ด ์์ต๋๊น? ๋ค์ด๋ฐ ๋๋ฌธ์ ๊ธฐ๋๋ ์ํ๋๋ฐ ์ด์ ๋ง์ ๋ณด์๊ณ ์์ด๋ฒ๋ ค์ ์ค๋ง์ค๋ฝ์ต๋๋ค.
๋๋ ๋น์ ์ด ์ด๋์์ ์๋์ง ์ ์ ์์ต๋๋ค. ๋น์ ์ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ ์ฒด ์คํ์ ๋ฐ๋ณตํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๋น์ ์ ์ ์ฒด ์คํ์ ์ ์ดํ๊ณ ๋๊ณ ๊ฐ ์ง์ด ์๋ ๋ง์ ๋ฏธ๊ฐ๋ฐ ๋ถ์ผ ์น ํ๋ ์์ํฌ์ ๊ฒฝ์ํ๊ณ ์์ต๋๋ค. System.Web์ ์ง์ ๋ฒ๋ฆฌ๋ ๊ฒ์ด ASP.NET Core๊ฐ ํฅ๋ฏธ๋ก์ด ์ฃผ๋ ์ด์ ์ค ํ๋์ ๋๋ค.
๊ทธ๊ฒ์ ๋ํด ์๊ณ ๋๋ ์ฐ๋ฆฌ์ ์ฌ์ฉ๋ฒ์ด ๊ด์ฐฎ์ ๊ฒ์ด๋ผ๊ณ ๋งํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ์๋กํ๋ ์ข ์์ฑ ์ ๋ชจ๋ 2.0์์ ์๋ํด์ผํฉ๋๋ค.
๋์์ ASP.NET Core๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก ์ํ๋ ์์น๊ฐ ์๋๋๋ค. ์๋๋ ํญ์ ํตํฉ .NET Core ํ๋ซํผ์ ์ผ๋ถ๋ก ์ ๊ณตํ๋ ๊ฒ์ด์์ต๋๋ค.
.NET Core๊ฐ .NET์ ๋ฏธ๋ ํ๋ซํผ์ด๋ผ๋ ๊ฒ์ ์ดํดํ๋ ๋ฐ ์ด๋ฅ๋ ฅ์๊ฐ ํ์ํ์ง๋ ์์ง๋ง... ์ฒ์๋ถํฐ(๋๋ "ํญ์"์ด๋ผ๊ณ ํํํ ๋๋ก) ์๋๊ฐ ASP.NET Core๋ฅผ . NET Core์์, ๊ทธ๊ฒ์ ๋ด๊ฐ ๋ณธ ์ด๋ค ๋งค์ฒด์์๋ ํ์คํ ์ ๋ฌ๋์ง ์์์ต๋๋ค.
๋๋ ๋ง ๊ทธ๋๋ก ๋ชจ๋ ๋จ์ผ ASP.NET ์คํ ๋(Hanselman ๋ฐ Glenn์ด 3์๊ฐ ๋์ Docker ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ํฌํจํ์ฌ... ๋๋ ์ธ์์ด ์๊ธฐ ๋๋ฌธ์)์ ๋งค๋ถ์ ๋ณด์์ต๋๋ค. ์ ๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฝ๊ณ , ํญ์ Twitter๋ฅผ ์ฌ์ฉํ๊ณ , 1๋ ์ 2๋ฒ ์ด์์ ํ์, ์ฌ์ฉ์ ๊ทธ๋ฃน ์ฐธ์ ๋ฑ์ ํ๊ณ ASP.NET Core์ ์๋๋ก ์ ๋ฌ๋ ๊ฒ์ ํ ๋ฒ๋ ๋ค์ด๋ณธ ์ ์ด ์์ต๋๋ค. ๋์ "๋ ํ๋ซํผ ๋ชจ๋์์ ์คํ๋๋ค"๋ ๋ง์ ๊ณ์ํด์ ๋ค์๊ณ , ๋น์ฐํ ์ฌ๋๋ค์ ๋๊ตฐ๊ฐ๊ฐ ์์ ์๋์์ ์์๋ฅผ ๊บผ๋ธ ๊ฒ์ฒ๋ผ ๋๋๋๋ค. ๋๋ ์ฌ์ง์ด ASP.NET Core์ ๋ํด ์ด์ผ๊ธฐํ๊ณ "๋ ํ๋ซํผ ๋ชจ๋์์ ์คํ๋๋ค"๊ณ ๋งํ๋๋ฐ, ์ด์ ๋ ๋ด๊ฐ ์ด ๊ธธ์ ์๋ดํ ๋ชจ๋ ์ฌ๋์ ๋ํด ์ฃ์ฑ ๊ฐ์ ๋๋๋๋ค. ๋๋ ITT ์ฌ๋๋ค์ด ์ต์ฒจ๋จ์ ์์ ๊ฐ๋ฅ์ฑ์ด ์๊ณ ์ด๋ฌํ ์ข ๋ฅ์ ๋ด์ค๋ฅผ ๊ฐ์ฅ ์์ฉํ ๊ฒ์ด๋ผ๊ณ ๋งํ๊ณ ์ฌ๊ธฐ์ ๋ง์ ๋ฐ๋ฐ์ด ์์ต๋๋ค. ์ด ๋ด์ค๊ฐ ์ฐ๊ฒฐ๋์ด ์์ง ์๊ณ ITT๋ณด๋ค ๋ ๋ณด์์ ์ผ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฐ๋ฐ์์ ๊ด๋ฆฌ์์๊ฒ ์ ํด์ง๊ธฐ ๋๋ฌธ์ ์ํฉ์ด ๋ ๋๋น ์ง ๊ฒ ๊ฐ์ต๋๋ค.
์ปค๋ฎค๋์ผ์ด์ ๋ถ์กฑ๊ณผ ์ผ๋ถ ์๋๋ฆฌ์ค์ ๋ํ ์ง์ ๋ถ์กฑ ์ธ์๋ ๋ง์ ๋ฐ๋ฐ์ด ์ด ๋ฐํ์ ์๊ธฐ์ ๊ธฐ์ธํ๋ค๊ณ ์๊ฐํฉ๋๋ค. .NET Core 2๋ ์์ง RTM๋ ๋์ง ์์์ผ๋ฉฐ ์ด๋ฏธ ์ ์ผํ ์ฅ๊ธฐ์ ๊ฒฝ๋ก๋ก ๊ฐ์ฃผ๋์์ผ๋ฉฐ ๋ณธ์ง์ ์ผ๋ก ASP.NET Core์ฉ ์ ์ฒด ํ๋ ์์ํฌ์ ์ํ ํญํ์ด ๋์์ต๋๋ค. ๋๋ ๋ฐค์ ์ธ์ ๋ ์ ์๋ ๋ฌด์ธ๊ฐ๊ฐ ์๊ธฐ๋ฉด ์ฐ๋ฆฌ์ ๋๋ ค์์ด ๋ง์ด ํด์๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
VS์ .NET Core 2+์์ net461+ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ๋ "์คํํ๊ณ ์๋ํ๋์ง ํ์ธ"ํ๋ ๊ฒ๋ณด๋ค ๋ ๋์ ๋๊ตฌ ์ฌ์ฉ ๊ฒฝํ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. 461๊ฐ ์ด์์ ์ด์
๋ธ๋ฆฌ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค!" ์ฃฝ์์ ํ๋งค๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฐธ์กฐํ ๊ฒ์ ๋๋ฝ๋ API๋ฅผ ๋ถ์ํ ์ ์๋ ๊ฒ, ์ปดํ์ผ ์๊ฐ ์ค๋ฅ๋ฅผ ์ ๊ณตํ๋ ๊ฒ, ์ด์์ ์ผ๋ก๋ ์กด์ฌํ๋ ๊ฒฝ์ฐ compat nupkg๊น์ง ์ ์ํ๋ ๊ฒ(์: ์์ EF6 ์์์ System.Configuration... ์๋ํ๋๋ก ํ์ญ์์ค :smile:). ๋ถ๋ช
ํ ์ปดํ์ผ ์๊ฐ์ ๋ชจ๋ ๊ฒ์ ๋ถ์ํ ์ ์๋ ๊ฒ์ ์๋์ง๋ง(์์์ ์ธ๊ธํ ๋ถ์ฐ ํธ๋์ญ์
์๋๋ฆฌ์ค๋ ๋ฏธ๋ฆฌ ๋ถ์ํ๊ธฐ ํ๋ ๊ฒ์ผ๋ก ๋ง์์ ๋ ์ค๋ฆ), ๋ ๋ง์ด ๋ถ์ํ ์ ์์ผ๋ฉด ๋ ์ข์ต๋๋ค. Immo๊ฐ PlatformNotSupportedException
์ ๋ํด ์ํํ ๊ฒ๊ณผ netstandard2์ ๋ํด ๋๋ฝ๋ net461 API๊ฐ ์ข์ ๊ฒ์
๋๋ค.
๊ทธ๋ฅ ๋ด 2 ์ผํธ. ์ ๊ฐ ๊ณผ๋ฏผ๋ฐ์์ ํ๊ณ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๋ ASP.NET Core๋ฅผ ์ฌ๋ํ๊ณ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๋ฐ ๋ฐฉํด๊ฐ ๋๋ ์ด๋ค ๊ฒ๋ ์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ถ๊ทน์ ์ผ๋ก ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์ค๋งํ ๋ฟ์ ๋๋ค. โค๏ธ
์ด๋ฏธ ๋์ด๋ ์ฐ๋ ค ์ฌํญ์ ์ ๋ชฉ์๋ฆฌ๋ฅผ ํฉ์น๋ฉด ๋ค์ ๋ฌ์ ์๋ก์ด ASP.NET MVC ํ๋ก์ ํธ๋ฅผ ์์ํ๊ณ ASP.NET MVC๊ฐ ํฌํจ๋ ์ผ๋ฐ .NET Framework๊ฐ ๋ ๊ฒ์ ๋๋ค. ๊ณ ๊ฐ์ Microsoft๊ฐ ๋ค์๊ณผ ๊ด๋ จํ์ฌ ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๋ ๊ฒ์ ์ ๋ขฐํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฅ๊ธฐ ๊ณํ.
๊ณ ๊ฐ ์กฐ์ง์ ์ฌ์ ํ โโWindows 7 ๋ฐฐํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด ํ๋ก์ ํธ๋ ์์ธ์ ๋๋ค. ์น ํ๋ก์ ํธ์ ๋๋ถ๋ถ์ ์ค์ ๋ก UNIX์์ Java์ ํจ๊ป ์ํ๋๊ณ .NET์ ๋๋ถ๋ถ ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฌํ ์ ํ์ ๋ถํ์ค์ฑ์ Windows 8 .NET ์คํ ๋ฐ UWP์ ๊นจ์ง ์ญ์ฌ๋ฅผ ๋์ ์์ผ .NET ๋ฏธ๋์ ๋ํ ๋ณด๋ค ์์ ์ ์ธ ๋์์ ์ฐพ๋ ์กฐ์ง CTO์ ๊ด์ฌ์ ์ฆ๊ฐ์ํต๋๋ค.
์ด๋ฌํ ์ ํ์ ์กฐ์ง์์ ASP.NET Core์์ ์๋ํ๋๋ก ์ฒ์๋ถํฐ ๋ชจ๋์ ์์ฑํ๋๋ก ๊ฐ์ํ๋ ๊ฒฝ์ฐ ๊ณ ๊ฐ์๊ฒ ๋ด๊ฐ ์ ์ดํ ์ ์๋ ๋ฌธ์ ์ ๋ํด ์ฒด๋ฉด์ ์๋ ๋์ ๋ณด๋ค ์์ ์ ์ธ ๋ก๋๋งต์ด ์๋ ๊ฒ์ ์ฑํํ๋๋ก ์กฐ์ธํ ์ ์์ต๋๋ค.
@davidfowl ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ํ๋ก์ ํธ์ 99%์์ ์ ๋๋ก ์๋ํ ์๋ ์์ต๋๋ค. ํ์ง๋ง "๋ ํ๋ซํผ์์ ๋ชจ๋ ์คํ๋๋ค", "ํ์ํ๋ค๋ฉด ์ ์ฒด ํ๋ ์์ํฌ์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค"๋ผ๋ ๋ฌธ๊ตฌ๋ก ํ๋งค๋๋ค. asp.net ์ฝ์ด์ ์ ์ฒด ํ๋ ์์ํฌ ๋ฒ์ ์ด ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ํ๋ก์ ํธ๋ฅผ ์ํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋๊ตฌ๋ ์๊ณ ์์๊ณ ๊ด์ฐฎ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค์ ๊ทธ๊ฒ์ ์ผ๋์ ๋๊ณ ๊ณํํ์ต๋๋ค.
์ด ๋ณ๊ฒฝ์ ์ฝ๋ ์ธก๋ฉด์์ ์ต์ ์ ์๋ ์๋ ์์ง๋ง ๋ ๋ง์ ์ผ๋ฐ ๊ฐ๋ฐ์๊ฐ ๋ด์ค๋ฅผ ๋ณผ ๋ ์์ฒญ๋ ํญํ์ ์ผ์ผํฌ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ฝ๋์ ๊ดํ ๊ฒ์ด ์๋๋ผ ์ฝ์๋ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ฝ์์ "net ๋๋ core๋ฅผ ์คํํ๊ณ netstandard๋ฅผ ๋ชจ๋ ๊ฒฐํฉํ์ฌ"์์ต๋๋ค.
@DamianEdwards @davidfowl ๊ณํ์ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
1.x์ SignalR์ ์ง์๋์ง ์๋ ๋ฒ์ ์ ๋์ฒดํ๋ ๋ฐ ํฐ ๋์์ด ๋์์ผ๋ฉฐ ํ์ฌ ServiceBase๋ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก ServiceBase๊ฐ ๋ค์ ๋ชฉ๋ก์ ์๋ค๋ ์์์ ๋๋ค!
์ฐ๋ฆฌ๋ EF6๊ณผ ๊ณต๊ฐ์ ํฌ๊ฒ ์์กดํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๊ฐ ํ์ํ ๊ธฐ๋ฅ ์ธํธ๊ฐ ์๊ธธ ๋๊น์ง 1.x์ ๋จธ๋ฌผ๋ฌ ์์ ๊ฒ์ ๋๋ค....
๊ทธ๋ฌ๋ ๋ฐ์ฏค ์ฌ๋ฏธ์๋ ์ธก๋ฉด์์ ์ด๊ฒ์ ๊ฒฐ๊ตญ ์ด๋ฅผ ์ํด ๋ ๋ง์ ๋ง์ดํฌ๋ก ์๋น์ค ๋ฐฐํฌ๋ฅผ ๊ฐ์ํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ LOB ๊ณ ๊ฐ์ด ์ฐ๋ฆฌ ์ ํ์ ์๋์ํค๊ธฐ ์ํด IIS์ ๋ช ๊ฐ์ API๋ฅผ ๋ ์ค์นํด์ผ ํ๋ ์ด์ ๋ฅผ ์ค๋ช ํ๊ธฐ๋ฅผ ๊ธฐ๋ํ์ง ์์ต๋๋ค....
๋๋ฌด ๋นจ๋ฆฌ ๋ณด์ด๊ณ ์ฌ๋ฌ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ๋จ์ด์ง ๋ ์๋นํ ๋ฐ๋ฐ์ ์ผ์ผํฌ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ณด๋ฅ๋ ์ ์๊ธฐ๋ฅผ ์ ๋ง๋ก ๋ฐ๋๋๋ค.
๋ํ ์ฒ์๋ถํฐ ์ด๊ฒ์ด ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ๋๊ณ ๋๋ฃ๋ค์๊ฒ ๊ฐ์ ๋ด์ฉ์ ์ค๊ตํด ์๋ค๋ ๋๋์ด ๋ค์์ ๋ ์ฝ๊ฐ ๊ฐ์ธ๋ฅผ ๋๊ผ๋ค๊ณ ๋งํด์ผ ํฉ๋๋ค. asp.net ์ฝ์ด์ ํผ๋์ค๋ฌ์ด ๋ช ๋ช ์ ํ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
@shanselman @davidfowl ๋์ ๊ฐ์ฅ ํฐ ๊ณ ์ถฉ์ NHibernate์ ๋๋ค. EF Core๊ฐ ์ถ์๋ ํ์๋ ์ฌ์ ํ ์ ์ผํ๊ฒ ๊ฐ์ฅ ๋ฐ์ ๋ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ O/R ๋งคํผ์ ๋๋ค.
@shanselman @DamianEdwards ์ ๋ ASP.NET MVC 4์์ ์ต์ ๋ฒ์ ์ด ๋ฌด์์ด๋ ๊ฐ์ ์ฌ์ดํธ๋ฅผ ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฒ์ ๋ํด ์๊ฐํ๊ธฐ ์์ํ๋ ๊ณผ์ ์ ์์ต๋๋ค(5์ธ์ง 1์ธ์ง ํผ๋์ค๋ฝ์ต๋๋ค). SyncFusion๊ณผ Telerik ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ชจ๋ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ ์ ์ฒด .net ํ๋ ์์ํฌ๋ฅผ ์คํํด์ผ ํฉ๋๋ค. SyncFusion์ PDF ํ์ผ์ ํ์ํ๊ณ Telerik์ Word .docx ํ์ผ์ ์์ฑํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ง์ ํ๋ฏ์ด ์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ Microsoft์ ์ ๋ต์ด "์๋ํ๊ณ ์๋ํ๋์ง ํ์ธ"ํ๋ ๊ฒ์ ํฉ๋ฆฌ์ ์ด์ง ์์ต๋๋ค. ํ์ฌ ์ฝ๋์ ๋๊ท๋ชจ ์ฝ๋ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ํ๋ก๋์ ์ด ์ ๋๋ก ์๋ํ ๊ฒ์ด๋ผ๊ณ ๋ณด์ฅํ ์ ์์ต๋๋ค.
SyncFusion ์ง์์ ์ผ๋ฐ์ ์ผ๋ก ๋งค์ฐ ํ๋ฅญํ์ง๋ง Telerik์ ์ง์์ ๊ทธ๋ ์ง ์์ผ๋ฉฐ .net ์ฝ์ด์ ํจ๊ป ์๋ํ๊ฒ ํ ์ ์๋ค๋ฉด ๋๋ ๊ฒ์ ๋๋ค. .net core์์ ์ง์๋์ง ์๋ Apis๊ฐ ๋ฌด์์ ์ฌ์ฉํ๋์ง ์ ์ ์์ต๋๋ค. ํ์ฌ ์ ํ์ ํต์ฌ์ธ ์ต์ข ์ฌ์ฉ์๋ก์ ํ๋ฌ๊ทธ๋ฅผ ๊ฝ๊ธฐ๋ง ํ๋ฉด ํ์ํ ์์ ์ ์ํํฉ๋๋ค.
์์งํ ๋ฌผ๊ฑด์ ์์ฃผ ๋ค๋ฃจ์ง ์๋ ๊ณ ๊ฐ(์ ๋ ์ฃผ๋ก WPF๋ฅผ ์ฌ์ฉํฉ๋๋ค)์๊ฒ๋ ์ด ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ํผ๋์ค๋ฝ์ต๋๋ค. ๋ค์ํ ๋นํธํ์ฑ๊ณผ ํจ๊ป ๋๋ฌด ๋ง์ ๋ค๋ฅธ ๋ฒ์ ์ด ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์ง์ ํ๋ฏ์ด UWP XAML๊ณผ ๋น์ทํ์ง๋ง WPF XAML๊ณผ ์์ ํ ํธํ๋์ง ์์ต๋๋ค.
๊ฐ๋ฐ์์๊ฒ ์ข์ง ์์ผ๋ฉฐ ๊ฐ๋ฐ์๊ฐ Microsoft์ ๋ํ ์ ๋ขฐ๋ฅผ ์๊ฒ ๋ง๋๋ ๋ ๋ค๋ฅธ ์์ธ์ ๋๋ค(์ง๋ ๋ช ๋ ๋์ ๋ง์ ๊ฒ ์ค ํ๋). ์ฌ๋๋ค์ด ์๋ฒ์์ ์ฌ์ฉํด์ผ ํ ์ ์๋ ๋ฐฉ๋ํ ๋๊ตฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๊ธฐ ๋๋ฌธ์ ASP.NET์ ์ ์ฒด .net ํ๋ ์์ํฌ์์ ํ์คํ ์คํ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ๊ฒฝ์ฐ์๋ ์๋ก์ด ASP.net ๊ธฐ๋ฅ์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ต์ ASP.net ํญ๋ชฉ์ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ๊ฒฝ์ฐ ์ต์ ๋ฒ์ ์ .net ํ๋ ์์ํฌ๋ก ์ฝ๊ฒ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
๊ฐ๋ฐ์์๊ฒ ์ ๋ฌ๋๋ ๋ชจ๋ ๋ฉ์์ง๋ ์ฌ๋๋ค์ด ์์ ํ ๋ฐ์ด๋ค๊ธฐ ์ ์ ํจ์ฌ ๋ ๋ช ํํด์ผ ํฉ๋๋ค.
...์คํ ํ
.NET Framework์ ASP.NET Core๋ ๋ถํํ๋ ์ด์์ ์ฉ์ดํ๊ฒ ํ๋ ์คํฑ ๊ฐญ ์๋ฃจ์ ์ผ๋ก ์ ๋ฌ๋์ง ์์์ต๋๋ค. ์ผ๋ถ ์ข ์์ฑ์ด ์ ๋ ์ด์๋์ง ์์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒฝ์ฐ ๋ ผ๋ฆฌ์ ์ธ ๊ฒฐ๋ก ์ธ ์์ํ ์ง์๋๋ ํ๋ซํผ์ผ๋ก ์๋๋ ์ ์ด ์์ต๋๋ค.
์ ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ๋ฌธ์ ์ ๋์ด๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ๋ง์ ๋ต๋ณ์ ์ฝ์๊ธฐ ๋๋ฌธ์ ์ถ๋ก ์ ์ดํดํ๊ณ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฐฉ๊ธ ๋ง์ํ์ ๋ด์ฉ์ ๊ถ๊ทน์ ์ผ๋ก ๋ฌธ์ ์ ํต์ฌ์ด ๋ฌด์์ธ์ง ๊ฐ์กฐํฉ๋๋ค. ์ฆ, Microsoft ์ ์ฒด์ ์๋ชป๋ ์ปค๋ฎค๋์ผ์ด์ ์ ๋๋ค(๊ทํ ๋๋ _ํน์ _ ๊ฐ์ธ์ ์๋ชป์ด ์๋์ ์ธ์ ํฉ๋๋ค).
์ด์ฉ๋ฉด ๋ด๊ฐ ๋ญ๊ฐ๋ฅผ ๋์น๊ณ ์์์ง๋ ๋ชจ๋ฅด์ง๋ง, ๋ชจ๋ ์ฌ๋์ด ์ดํด๋ณด๊ณ ๊ฐ์ง๊ณ ๋ ์ ์๋๋ก github์ ์ฝ๋๋ฅผ ๋๋ ๊ฒ๋ณด๋ค "๊ณต๊ฐ์ ์ผ๋ก ๊ฐ๋ฐ"ํ๋ ๊ฒ์ด ๋ ์ค์ํฉ๋๋ค. ๋ฐ๋ก ์ด ๋ฌธ์ ๊ฐ ์ฌ๋๋ค์ ๋๋ผ๊ฒ ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์ด๋ ๋ ์ฝ๋์ ๋ํ๋ฌ๊ธฐ ๋๋ฌธ์ ์์ฑ๋์์ง๋ง ๋ถ๋ช ํ ๋น์ ๊ณผ .net ํ์ ๋ชจ๋ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ์๊ณ ์ดํดํ๊ธฐ ๋๋ฌธ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ๋ฌธ์ ๋ ์ฐ๋ฆฌ์ ๋๋จธ์ง ๋จ์ํ ํ์ฌ์๋ค์ด ๊ทธ๊ฒ์ ์์ ํ ๋์ด ๋ฉ์๋ค๋ ๊ฒ์ ๋๋ค.
์ค์๊ฐ์์ผ๋ก, ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ ์ง์๊ณผ ์ ๋ณด๋ฅผ ์ป๊ธฐ ์ํด github์ ๋๋ฌด ๋ง์ ๊ด์ฌ์ ๊ธฐ์ธ์ด์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ์ด ๋ณ๊ฒฝ์ ์ด๋ฏธ ์ฌ๊ธฐ์์ ์ธ๊ธํ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์ฌ๋๋ค์ ๋๋ผ๊ฒ ํ ๊ฒ์ ๋๋ค. ๋๋ ์ด ๋ฌธ์ ๋ฅผ ํด์ปค๋ด์ค์ RSS ํผ๋์ ์ฌ๋ ธ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ง์ ๋ฐ๊ฒฌํ ๊ฒ๋ฟ์ ๋๋ค.
MSDN์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ฐ๋ผ๊ฐ๋ ์ฌ๋์ ๋๊ตฌ๋ 2.0์ด ์ถ์๋๊ณ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ด๋ฉฐ asp.net ์ฝ์ด์ ์ด์ ์ "๋๋ฝ๋" ๋ชจ๋ ๊ฒ ์ฌ์ด์ ๊ฐ๊ทน์ ๋ฉ์ฐ๋ ์ฑ๋ฐฐ๋ผ๊ณ ๋ณผ ๊ฒ์ด์ง๋ง ์ ํ ์ธ์ํ์ง ๋ชปํฉ๋๋ค. ๋ณธ์ง์ ์ผ๋ก ํน์ ์ํฌํ๋ก์ ๋ํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋๋ค. asp.net core 2.0์ ์ค๊ณ์์ ์ค์ ๋ก ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํ ์ธ๋ถ ์ ๋ณด๋ ๊ฑฐ์ ์์ต๋๋ค. ์ด๋ฒ ์ฃผ ํ๋ฐ์ Build์์ ๋ ์์ธํ ์ ๋ณด๊ฐ ๋์ฌ ๊ฒ ๊ฐ์๋ฐ์? ํฌ๋งํ ์ ๋ฐ์ ์์ต๋๋ค.
.net slack์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ๋ ๋ค๋ฅธ ๋ฆฌ์์ค์ด์ง๋ง ์ค์ ๋ก ์งํ๋๊ณ ์๋ ์ ๋ณด๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๊ธฐ์๋ ๋ค์ ์๋๋ฝ์ต๋๋ค. ๊ฐ๋ฐ์ ์ฐธ์ฌ ๋ฐ ์ง๋ฌธ์ ์ ํฉํ์ง๋ง ๋ด์ค ์์ค๋ ์๋๋๋ค.
ํธ์ํฐ์ ์์ ๋ฏธ๋์ด๋ ๋ ๋ค๋ฅธ ์ ๋ณด ์ถ์ฒ์ด์ง๋ง, ๋ค์ ์ด github ๋ฌธ์ ๊ฐ ๋ํ๋ ๋์ฏค์ด๋ฉด ์ด๋ฏธ ๋๊ตฐ๊ฐ๊ฐ ์ด๋ฏธ ๋ด๋ฆฐ ๊ฒฐ์ ์ ๋ํด ์ฐ๋ ค๋ฅผ ์ ๊ธฐํ๊ณ ์ฌ๋๋ค์ ๋๋ผ๊ฒ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ์ ํํ ๋ฌธ์ ๋ฅผ ๊ฒช์ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด ์๋๋๋ค. ๋ค์ csproj๋ก ๋ณ๊ฒฝํ์ฌ ๋ฐ์ํ ์คํจ๋ฅผ ๊ธฐ์ตํ์ญ๋๊น? ๋๋ ๊ทธ ๋ณํ์ ๋ํ ๋ ผ์์ ๋ผ์ด๋ค๊ณ ์ถ์ง ์์ง๋ง ์ฌ๋๋ค์ ๋๋ผ๊ฒ ํ ๋ณํ์ ๋ ๋ค๋ฅธ ์์ ๋๋ค. ๋๋ฌด ์ ์ ๋ฌ๋์ง ์์ ์ค๋๋ ๊น์ง ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ด ๋์ผํ csproj๊ฐ ์๋๋ผ๋ ๊ฒ์ ๊นจ๋ซ์ง ๋ชปํฉ๋๋ค. "๋์ ์๋ "์์.
๋ด๊ฐ ์ฌ๊ธฐ์ ์ ์ํ๋ ค๊ณ ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์์ ํ ํ์ ํ ์ ์์ง๋ง .net์ ๊ณต๊ฐ ๊ฐ๋ฐ์์ ํ์คํ "๋๋ฝ๋" ๋ฌด์ธ๊ฐ๊ฐ ์์ต๋๋ค. Microsoft๋ ๊ฐ๋ฐ์์๊ฒ ๋ฆฌ์์ค์ ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ ์ผ์ ํ๋ฅญํ๊ฒ ์ํํ์ง๋ง ์์ ํ๊ณผ ์ถํ๋ ์ ํ์ ๋ํด์๋ง ์ ๊ณตํฉ๋๋ค. ๋ก๋๋งต, ๊ณํ ํ์, ํ๋ ์์ํฌ์ ๋์์ธ๊ณผ ๋ฐฉํฅ์ ๊ฒฐ์ ํ๋ ๋ชจ๋ ๊ฒ์ "์ ํ๋ ํํธ๋" ๋ฑ์ ์ธ๊ธ๊ณผ ํจ๊ป ๋น๊ณต๊ฐ๋ก ์ํ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ชจ๋ ํ์๊ฐ ์คํธ๋ฆฌ๋ฐ๋๊ณ ์ ์ธ๊ณ์ ์ผ๋ก ๋ฐฉ์ก๋์ด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ์๋์ง๋ง ๋ด๋ฆฐ ๊ฒฐ์ ๊ณผ ๊ทธ ์ด๋ฉด์ ๊ทผ๊ฑฐ๋ฅผ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์ปค๋ฎค๋ํฐ์ ์ฝ๊ฒ ์ ๋ฌํ๋ ๋ ๋์ ์ค๊ฐ ์ง์ ์ด ์์ ์ ์์ต๋๋ค. ์ ๋ง _์ํ๋_ ์ฌ๋๋ค์ ์ํด ์์ฝํ๊ณ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํฉ๋๋ค. ์ด๋ฌํ ๊ฒฐ์ ์ด ๋ด๋ ค์ง๋ฉด ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ MSDN(๋๋ ๋ค๋ฅธ ๊ณณ)์ ์ ์ฉ ๋ธ๋ก๊ทธ์ผ ์ ์์ต๋๋ค.
์ด์ ๋ํ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ค ํ๋๋ ์๋ ์ ASP.NET Core๊ฐ ๋ฐํ๋ ๊ฑฐ์ ๋ชจ๋ ํ์์์ .net Framework์ .net Core ๋ชจ๋์์ ์คํ๋๋ asp.net Core๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฌ๋ผ์ด๋๋ฅผ ๋ฐํํ๋ค๋ ๊ฒ์ ๋๋ค. ์ง๋ ํด Ignite ์ Microsoft ASP.NET Core 1.0์ผ๋ก ์น ๊ฐ๋ฐ์ ์ดํด๋ณด์ญ์์ค . 7์ 50๋ถ๊ฒฝ์ ์ฌ๋ผ์ด๋๊ฐ ๋ณด์ ๋๋ค.
๋๋ฅผ ์ํ ๊ฐ์ฅ ํฐ ์ผ์คํ ํผ๋ System.DirectoryServices, ServiceBase, EF6(EF Core๊ฐ ์ค๋น๋์ง ์์), ClosedXML(์์ ์ํธ ์์ฑ์ฉ)์ ๋๋ค.
.NET Framework์์ ASP.NET Core 1.x์ ๋ํ ์ง์์ด ์ต์ 1๋ ๋ ์ฐ์ฅ๋ฉ๋๋ค(2019๋ 7์๊น์ง). ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋งค๋ ์ฌํ๊ฐํ๊ณ ASP.NET Core 1.x ์ง์์ ์ข ๋ฃํ๊ธฐ 12๊ฐ์ ์ ์ ํต์งํ ๊ฒ์ ์ฝ์ํฉ๋๋ค(๋ฐ๋ผ์ 2018๋ 7์๊น์ง 2020๋ 7์๊น์ง 12๊ฐ์ ๋ ์ฐ์ฅํ ์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ ์์ ์ ๋๋ค)(์ฐธ๊ณ : ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ 2020๋ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ ์ฌ์ค์ ๋๋ ์ฌ๋์ด ์์ต๋๊น? ์๋์? ์ข์์, ์ ๋ง์.)
@DamianEdwards ๋ฐํํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
ํ์ฌ ์ฐ๋ฆฌ ํ์ฌ๋ .NET Framework 4.6.2์์ ASP.NET Core 1.1์ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ฅผ ์ํ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ํด๋น ํ๋ ์์ํฌ ์ฝค๋ณด์ ๋ํ ์ง์์ด ์ต์ 2019๋ ๊น์ง ์ง์๋๊ณ 2020๋ ๊น์ง ์ฐ์ฅ๋ ์ ์๋ค๋ ์์์ ๋ฃ๊ณ ํฐ ์๋๊ฐ์ ๋๊ผ์ต๋๋ค.
์ฌํด System.DirectoryServices ๋ฐ System.Drawing์ .NET Core๋ก ์ด์ํ ์์ ์ ๋๋ค.
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์ง๊ธ .NET Framework๋ฅผ ๋์์ผ๋ก ํ๋ ๋ ๊ฐ์ง ์ ์ผํ ์ด์ ์ ๋๋ค. ์ด๊ฒ๋ค์ด .NET Core 2๋ก ์์ ํ ํฌํ ๋๋ค๋ฉด ๋ด๋ ์ ์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ASP.NET Core 2๋ก ์์ ํ๊ฒ ํฌํ ํ ์ ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋ง์ ppl์ด MS ๊ฐ๋ฐ์๋ผ๋ ๊ธฐ๋ณธ ๊ท์น์ ์ด๊ธด ๊ฒ ๊ฐ์ต๋๋ค. ์ต์ํ V2๊ฐ ๋ ๋๊น์ง๋ ์ ํ/ํฌํฌ์ ์ปค๋ฐํ์ง ๋ง์ญ์์ค.
ํ์ง๋ง ์, ๊ธฐ์ ๊ณ ๊ฐ์ ์์ธ์ํค๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ์ญ์์ค! ๊ทธ๋ค์ด MS๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ ์ด์ ๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ๋๋ฌธ์ ๋๋ค.
ASP.NET์ ์คํํ๋ ๋๋ถ๋ถ์ ppl์ Linux์์ ์คํ๋๋ ๊ฒฝ์ฐ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ASPNET Core์์ ์๋ ๋น๊ต๊ฐ ํฌํจ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ณธ ๊ฒฝ์ฐ ๋ ๊ฑฐ์ .NET์ ์ง์ํ์ง ์๋ ๊ฒ์ ๋ณธ๋ค๋ฉด ์ด์ ํฌ๋ก์ค ํ๋ซํผ์ ์ฝ๋ ๊ฒ์กฐ์ฐจ ํ์ง ์์์ ๊ฒ์ ๋๋ค.
๋กค์บฃ.
๋ง์ ์ฌ๋๋ค์๊ฒ ์๋ก์ด ์ธ๊ณ๋ก์ ์ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ASP.NET Core 2.0์ net46x์์ ์์ ํ ์คํํ๋ ๊ฒ์ ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ASP.NET Core 2.0 ๋ฐ .NET Core 2.0์ด ์ค๋๋ ์ ๋ง์ ๊ฒฉ์ฐจ๋ฅผ ์ค์ด๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ฉํ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ผ๋ก ๊ธฐ๋ค๋ฆฌ๊ณ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ASP.NET Core 2.0์์ ๋ชจ๋ ๊ฒ์ netcoreapp2.0์ผ๋ก ์ด์ํด์ผ ํ๋ ๊ฒฝ์ฐ ํ์ ์์ฒญ๋ ์๋ ์ ํ๊ฐ ๋ฐ์ํ๊ณ ์คํ ๊ฐ๋ฅ์ฑ์ ์ํ๋กญ๊ฒ ํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๊ฒ์ด ASP.NET Core 3.0์ด ์์ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๊ทธ ์งํ์๋ ์๋กญ๊ณ ๋น๋๋ ๋ฏธ๊ฐ๋ฐ ๋ถ์ผ์์ ์์ ํ๊ณ ๋น ๋ฅธ ํธ๋์ ์๊ธฐ๋ฅผ ์ํ๋ ๋ชจ๋ ์ฌ๋๋ค์ ์ํด netcoreapp2.0๋ง ๋์์ผ๋ก ํฉ๋๋ค.
๋ ๊ฐ์ง ๋ฒ์ ์ ASP.NET Core(2.0 ๋ฐ 3.0)๋ฅผ ๋๋ํ ์ฌ์ฉํ๋ ๊ฒ์ (์ ์ด๋ ์ ์ ๋์์) ์ ๋ง ์ข์ ์ผ์ด ๋ ์ ์์ต๋๋ค. ์ ๋ฒ์ ์ MVC๋ ๋ณธ์ง์ ์ผ๋ก ์ ์ฒด .NET์์๋ ์คํ๋๋ ASP.NET Core MVC 2.0์ด๊ธฐ ๋๋ฌธ์ MSFT๊ฐ ํ์ฌ MVC 5 ์คํ์ ๋ ๋น ๋ฅด๊ฒ ๋จ๊ณ์ ์ผ๋ก ์ ๊ฑฐํ ์ ์์ต๋๋ค.
๋ง์ ์ฌ๋๋ค์๊ฒ ์๋ก์ด ์ธ๊ณ๋ก์ ์ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ASP.NET Core 2.0์ net46x์์ ์์ ํ ์คํํ๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
ASP.NET Core 1.x์์ ์ด์ํ๋ ๊ฒ๋ณด๋ค ์ํํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
๋ง์ ์ฌ๋๋ค์ด ASP.NET Core 2.0 ๋ฐ .NET Core 2.0์ด ์ค๋๋ ์ ๋ง์ ๊ฒฉ์ฐจ๋ฅผ ์ค์ด๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ํ์ฉํ ๊ฒ์ด๋ผ๋ ํฌ๋ง์ผ๋ก ๊ธฐ๋ค๋ฆฌ๊ณ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํธํ์ฑ์ ์ํด ์ํ๋ ์์ ์ ๋๋ถ๋ถ์ .NET Core 2.0 ๋ฐ .NET Standard 2.0์์ ์ํ๋์์ต๋๋ค. ASP.NET Core 2.0์๋ ์์งํ ๊ทธ๋ ๊ฒ ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. SignalR์ ASP.NET Core 1.x(์ด์จ๋ ํฌ์คํธ 2.0์)๋ก ๋ฐฑํฌํธํ ์์ ์ด๋ผ๊ณ ํฉ๋๋ค. ๋จ์ง ์ธ์์ ๋ฌธ์ ์ ๋๊น?
๋ ๊ฐ์ง ๋ฒ์ ์ ASP.NET Core(2.0 ๋ฐ 3.0)๋ฅผ ๋๋ํ ์ฌ์ฉํ๋ ๊ฒ์ ์ ๋ง ์ข์ ์ผ์ ๋๋ค.
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ 1.1๊ณผ 2.0์ผ๋ก ํ๋ ์ผ์ ๋๋ค(์ซ์ ๋ค์ง๊ธฐ).
์ ๋ฒ์ ์ MVC๋ ๋ณธ์ง์ ์ผ๋ก ์ ์ฒด .NET์์๋ ์คํ๋๋ ASP.NET Core MVC 2.0์ด๊ธฐ ๋๋ฌธ์ MSFT๊ฐ ํ์ฌ MVC 5 ์คํ์ ๋ ๋น ๋ฅด๊ฒ ๋จ๊ณ์ ์ผ๋ก ์ ๊ฑฐํ ์ ์์ต๋๋ค.
MVC 5๋ ์ฌ๋ผ์ง์ง ์์ ๊ฒ์ด๋ฉฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. .NET Framework๊ฐ ์กด์ฌํ๋ ํ ์ง์๋ฉ๋๋ค. ์ฌ์ ํ IIS ํตํฉ ํ์ดํ๋ผ์ธ(System.Web์์) ๋ด์์ ASP.NET Core ํ๋ก์ ํธ๋ฅผ ์คํํ ์ ์์ผ๋ฉฐ System.Web์์ MVC 5์ ๋์ผํ ์์ ์ ๋ชจ๋ ์ํํ์ง ์์ผ๋ฏ๋ก ์ค์ ๋ก ํน์ ์๋๋ฆฌ์ค๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค. .
@davidfowl ์ ์ฒด .NET ๋ฐ netcoreapp2.0์ ๋์์ผ๋ก ํ๋ ASP.NET Core 1.x ์ฑ์ ๋ง๋ค์ด ๋ชจ๋ ์ข ์์ฑ์ด net46x์ธ ํ์ฌ ๋ ๊ฑฐ์ ์ฑ์ ๋จผ์ ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ์ฒ์ฒํ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๊น? ๋ชจ๋ ๊ฒ์ด netstandard2.0์ ์์ ๋๊น์ง netstandard2.0์ ๋์์ผ๋ก ํ๋ ์ข ์์ฑ์ ์ฐจ๋ก๋ก ์ง์ ํ๋ฉด ASP.NET Core 1.x ์ฑ์ 2.x๋ก ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค(๊ทธ๋ฆฌ๊ณ ๊ทธ ์ผ๋ถ๋ก net46x์ ๋ํ ๋์์ ์ญ์ ํ ์ ์์)?
๊ทธ๋ ๋ค๋ฉด ์ค๋ ๋๋ฅผ ์๋ชป ์ดํด ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ์ค์ ๋ก ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ฌ๊ธฐ์์ ์ถ๊ตฌํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@dustinmoris ๋ค ํ ์ ์์ต๋๋ค. ์ฌ๋๋ค์ด ๊ฒช๊ณ ์๋ ์ฃผ์ ๊ด์ฌ์ฌ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ ASP.NET Core 1.x์์ ์ง์์ด ์ข ๋ฃ๋๊ธฐ ์ ์ ASP.NET Core 2.x๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋๋์ง์ ๋๋ค.
@alexwiese ์ ๊ทธ๋ ๊ตฐ์ ์๋๋ค์. ๊ทธ๋ ๋ค๋ฉด ์ง๊ธ ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ๋ ผ์ํ๊ณ ์๋ ๊ฒ์ ๋ฌด์์ ๋๊น? ๋์์ผ๋ก ์ผ์ ํ๋ ์์ํฌ๋ฅผ ๋ ผ์ํ๊ธฐ ๋ณด๋ค๋ ASP.NET Core 1.x์ ์ง์ ๊ธฐ๊ฐ์ ๋ํด ๋ ผ์ํด์ผ ํฉ๋๋ค. ASP.NET Core 1.x๋ ์ํ๋ ๊ฒฝ์ฐ MSFT๊ฐ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์๋ ๊ฒ์ ๋๋ค. :)
ํธ์งํ๋ค:
@DamianEdwards ๋ ์ค๋ ๋์์ ์ด๊ฒ์ ์กฐ๊ธ ๋ ์์ฑํ์ต๋๋ค.
.NET Framework์์ ASP.NET Core 1.x์ ๋ํ ์ง์์ด ์ต์ 1๋ ๋ ์ฐ์ฅ๋ฉ๋๋ค(2019๋ 7์๊น์ง). ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋งค๋ ์ฌํ๊ฐํ๊ณ ASP.NET Core 1.x ์ง์์ ์ข ๋ฃํ๊ธฐ 12๊ฐ์ ์ ์ ํต์งํ ๊ฒ์ ์ฝ์ํฉ๋๋ค(๋ฐ๋ผ์ 2018๋ 7์๊น์ง 2020๋ 7์๊น์ง 12๊ฐ์ ๋ ์ฐ์ฅํ ์ง ์ฌ๋ถ๋ฅผ ๋ฐํํ ์์ ์ ๋๋ค)(์ฐธ๊ณ : ์ฐ๋ฆฌ๊ฐ ์ด๋ฏธ 2020๋ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ ์ฌ์ค์ ๋๋ ์ฌ๋์ด ์์ต๋๊น? ์๋์? ์ข์์, ์ ๋ง์.)
๋์๊ฒ ์ข์ ์๋ฆฌ. 1๋ ๋ ์ง์ํ๊ธฐ๋ก ์ฝ์ํ ๋ค์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฌํ๊ฐํ์ญ์์ค. ๋์๊ฒ ์์ ํ ์๋ฏธ๊ฐ์๋ค.
์ด ์ค๋ ๋์ ๋ชจ๋ ๊ฒ์๋ฌผ์ ์ฝ์์ต๋๋ค. ์ฌ์ ํ ํ ๊ฐ์ง ์ง๋ฌธ์ ๋ํ ๋ต์ด ์์ต๋๋ค. ์ ์ด๋ฌํ ๊ฒฐ์ ์ด ๋ด๋ ค์ก์ต๋๊น? ๋๋ ๊ทธ๊ฒ์ด ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ก ์ธํด ํ์ํ๋ค๋ ๊ฒฐ๋ก ์ ๋ด๋ฆด ์ ์์ต๋๋ค. ๋ช ๋ช ์ 'ํผ๋'์ด ๋ฌธ์ ์ธ ๊ฒฝ์ฐ Microsoft๋ ๋ ๋์ PR ๋ด๋น์๋ฅผ ๊ณ ์ฉํ๊ณ ์ด ์ค๋ ๋์์ ํ์ด ํ๋ ๊ฒ์ฒ๋ผ ์ํฐ๋ฆฌ๋ฅผ ํ์ ๋ ๊ฒ์ ์ค๋จํด์ผ ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด netstandard2.0์์ ASP.NET core 2.0์ ์ฐจ๋จํ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ ๋ฌด์์ ๋๊น? ์ํํธ์จ์ด ์์ญ์์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ์์ต๋๋ค. ๋ฐ๋ผ์ .NET ์ ์ฒด์์ ์ํํ ์ ์๋(๋ฐ๋ผ์ netstandard20์ ํฌํจ๋ ์ ์๋) ์๋ฃจ์ ์ ์๊ฐํด๋ด์ง ๋ชปํ ์๋ ์์ต๋๋ค. ๋ค, ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ด ํ์ํ์ง๋ง ์ฌ์ฉ์ ๋ชจ๋๊ฐ ์ด ๊ฒฐ์ ์ผ๋ก ์ธํด ์ฌ์ฉ์์๊ฒ ์ผ๋ง๋ ๋ง์ ์๊ฐ/๋ ธ๋ ฅ์ ํฌ์ํด์ผ ํ๋์ง์ ๋ํ ์ด ๊ฒฐ์ ์ ๋ถ์์ฉ์ ์ค์ ๋ก ๊นจ๋ซ์ง ๋ชปํ๋ค๋ ๋๋์ด ๋ญ๋๋ค.
์ด ๊ฒฐ์ ์๋ ๋ ๋ค๋ฅธ ๋จ์ ์ด ์์ต๋๋ค. ASP.NET Core๋ netstandard์ ์๋น์๊ฐ ์๋๋ฏ๋ก netstandard์ ๋์ธ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ netstandard ๋ฅผ ์ถ์ข ์๋ก ๋ง๋ค๊ณ ASP.NET core๋ ๊ทธ๊ฒ์ ์์กดํ์ง ์๊ธฐ ๋๋ฌธ์ ์๋ฏธ๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ๋ท์คํ ๋ค๋2.0.
๊ทธ๋ฆฌ๊ณ ์ฃ์กํฉ๋๋ค @davidfowl ๋ , ์ข์ ๋ง์์ด์ ๊ฑด ์๋๋ค๋ง ์ฌ๋๋ค์๊ฒ ๊ณ์ํด์ ASP.NET core 1.x๋ฅผ ์ ์ํ๋ ๊ฒ์ ๋น์ ์ด ์ ์ํ ์ฌ๋๋ค์ ์ํฉ์ด ์ด๋ค ๊ฒ์ธ์ง ์ ํ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ฌ๋๋ค์ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค. ํ์คํ ๊ธฐํ ์์ด๋ ์ํํ ๊ฒฝ๋ก๊ฐ ์๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ASP.NET core 1.x๋ก ์ด๋ํฉ๋๋ค. ํ์ฌ ์๊ฐํ๋ ๊ฒ๋ณด๋ค ๋ ์ค๋ซ๋์ ํด๋น ํ๋ซํผ์ ๋จธ๋ฌผ๋ฌ ์์ด์ผ ํ ์๋ ์์ต๋๋ค(์ข ์์ฑ์ ์ด์ํด์ผ ํจ ๋ฑ.). ์ด๊ฒ๋ง์ผ๋ก๋ Microsoft์ '์ฝ์'์ ๊ธฐ๋ฐํ์ฌ ASP.NET core 1.xa๋ก์ ์ ํ์ ๊ฒฐ์ ํฉ๋๋ค. ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ฝ๋๋ฅผ ์ํ API์ ๋๋ค. ๊ทธ๋ค์ Microsoft๊ฐ ๋ณด์ ๊ฒฐํจ์ ์์ ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ 3๋ ์ด๋ด์ ์ค๋ ๋น๋ํ ์ฑ์ ์คํํ ์ ์๋์ง ์ฌ๋ถ๋ฅผ ์์์ผ ํฉ๋๋ค(์๋ฅผ ๋ค์ด).
์์งํ ๋งํด์ .NET ์์ฝ์์คํ ๋ด์์ ๋ ๋ค๋ฅธ ํผ๋ ํด๋ฌ์คํฐ๋ฅผ ์์ํ๊ณ ์ถ์ ์ถฉ๋์ ๋๋ผ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์์ ์ฑ, ์ ๋ขฐ์ฑ, ์ ๋ขฐ์ฑ์ด ํ์ํฉ๋๋ค. "์ค๋ ์์ฑํ ์ฝ๋๋ ๊ทธ๋๋ก 5๋ ๋์ ์คํ๋ ๊ฒ์ ๋๋ค." ์, ์ผ๋ถ ์ฌ๋๋ค์๊ฒ๋ ๊ทธ๊ฒ์ด ์ด๋ฆฌ์๊ฒ ๋ค๋ฆฐ๋ค๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ํ์ค์ ๋๋ค. ์ด ์ง๊ตฌ์๋ ์ด๋ฏธ ์ํํธ์จ์ด ํจํค์ง๋ฅผ ์ ์ง ๊ด๋ฆฌํ ๊ฐ๋ฐ์๋ณด๋ค ๋ ๋ง์ ์ํํธ์จ์ด ํจํค์ง๊ฐ ์์ผ๋ฉฐ ๊ทธ ๊ฒฉ์ฐจ๋ ์ ์ ๋ฒ์ด์ง๊ณ ์์ต๋๋ค. ์กฐ์ง์ด ASP.NET Core๋ฅผ ์น ์คํ์ผ๋ก ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์ฝ๋๊ฐ 5๋ ์ด๋ด์ ์คํ๋๊ธฐ๋ฅผ ํฌ๋งํ๋ค๊ณ ๋จ์ํ ๊ฐ์ ํ ์ ๋ ์์ต๋๋ค. ์กฐ์ง์ ๋ ์ด์ ๊ทธ๋ ๊ฒ ํ์ง ์์ต๋๋ค. ์ ๋ขฐํ ์ ์๊ณ ๋ค์์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ค์ ํด๋น ๊ธฐ๊ฐ ๋ด์ ์ ์ฒด ์ฑ์ ๋ค์ ์์ฑํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฏ๋ก ๊ทธ๋ฌํ ๋ณด์ฆ์ด ํ์ํฉ๋๋ค.
Microsoft๋ ์ด ์ค๋ ๋๋ฅผ ํตํด ์ด ๋ฌธ์ ์ ๋ํ ๋์ฐํ PR์ ๋ณด์ฌ์ฃผ์์ง๋ง, ๊ทธ ํ์ ์ ์ค ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก \build์์ ์๋ฌด๋ฆฌ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๋๋ผ๋ ์ธํ๋ฆฌ ๋ฐ๋ํธ์ ์๋ ์ฐ๋ฆฌ๋ Microsoft Marketing != ๋ชจ๋ ๊ฒ์ด ๋ด์ผ ์๋ํ ๊ฒ์ด๋ผ๋ ๋ณด์ฅ์ ๋ฐฐ์ ์ต๋๋ค.
@FransBouma ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ์๋ค๊ณ ์๊ฐํ์ง ์๊ณ netcoreapp2.0๋ง ๋์์ผ๋ก ํ ๋๊ธฐ๋ MSFT๊ฐ ์ํ๋ ๋งํผ ๋น ๋ฅด๊ฒ ์ด๋ํ ์ ์๋ ์ ์ผํ ํธ๋์ด๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ASP.NET Core 2.x๊ฐ ์ด์ .NET ์ธ๊ณ์ ๋ค๋ฅธ ์ด๋ค ์น ์คํ๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ฒ ์ด๋ํ ์ ์์์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋น ๋ฅธ ํ๋ จ์ ์ฐธ์ฌํ ์ ์๋ค๋ฉด ASP.NET Core 1.x๋ฅผ ๋ ์ค๋ ์ฌ์ฉํ ์ ์์ต๋๋ค(ํ์ฌ 2019๋ ๊น์ง ์ง์๋จ).
@davidfowl ๋ฐ @shanselman ์ด ์ธ๊ธํ @FransBouma ๋ .NET Core์ ์๋ก์ด API๊ฐ ๋น ๋ฅธ ์๋๋ก ์ถ๊ฐ๋๊ณ ์์ผ๋ฉฐ ASP.NET Core 2.x๋ ๊ทธ ์ค ์ผ๋ถ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก netcoreapp20์ ๋์์ผ๋ก ํ๊ณ ์ ํฉ๋๋ค. ์ด๋ฌํ API๋ฅผ netstandard2x์ ์ถ๊ฐํ๋ ค๋ฉด .NET Framework ๋ฐ ๊ธฐํ ํ๋ซํผ์ด ๋ฐ๋ผ์ก์์ผ ํ๋ฉฐ ์ด๋ ์๋๊ฐ ๋๋ฆฌ๊ธฐ๋ก ์ ๋ช ์ด ๋์ต๋๋ค.
์ ๋ ํ ๋ก ์ This is Good Thing ์ธก์์ ์ ๋ชฉ์๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
@dustinmoris ๋ netstandard์ ๋น ๋ฅธ ์น ์คํ์ ์์ฑํ๊ธฐ ์ํ API๊ฐ ๋ถ์กฑํ๋ค๊ณ ์ ์ํฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ ๋ชจ๋๋ ๋ ํฐ ๋ฌธ์ ๋ฅผ ์๊ณ ์์ต๋๋ค.
@alexwiese ๋ด๊ฐ ๋งํ๋ฏ์ด, ๋๋ ์์ ํ ์ค๋ ๋๋ฅผ ์ฝ์๊ณ ๋ฐ๋ผ์ ๋น์ ์ด ์ฐธ์กฐํ๋ ๊ฒ์๋ฌผ๋ ์ฝ์์ต๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋งํ๋ ๊ฒ์ ์๊ณ ๊ทธ๋ค์ ์์ ์ ๋ณผ ์ ์์ง๋ง ๋ด๋ฆฐ ๊ฒฐ์ ์ ์ฌ์ฉ์๊ฐ ์์ ์ ๋ฌผ๊ฑด์ผ๋ก ๋ฌด์์ ํ๊ณ ์๋์ง ์ ํ ๋ชจ๋ฅธ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ ๋ ๋ช ๋ ๋์ ์ง์ ์ ํ์ ๋ง๋ค๊ณ ์์ผ๋ฉฐ, ์๊ฐ์ด ์ง๋๋ฉด ๊ตฌ์์ ๊ตฌ์ ์์ด ๋ ๋นจ๋ฆฌ ๋ฌผ๊ฑด์ ์๋ผ๋ด๊ณ ์ถ์ด์ง๋ ์ง์ ์ ๋๋ฌํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ ๊ฒ ํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋ฐ๋ฅด๋ฉฐ, ์ง๋ 14๋ ๋์ ์ ๊ฐ ๋ฐฐ์ด ํ ๊ฐ์ง๋ ํ์ ํธํ์ฑ์ด ์ํํธ์จ์ด ์ ํ์ด ๊ฐ์ง ์ ์๋ ๊ฐ์ฅ ํฐ ๊ธฐ๋ฅ ์ค ํ๋๋ผ๋ ๊ฒ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๊ทํ์ ํ๋ซํผ์ ๊ฒฐ์ ํ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ ๊ทธ๋ ๊ฒ ์ค์ํ๊ณ ๊ด์ฐฎ๋ค๊ณ ์๊ฐํ์ง ์์ ์๋ ์์ง๋ง ํ์ค์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ๋ณด์ง ๋ชปํ๋ ์ฌ๋๋ค์ด ๋ง์ด ์์ต๋๋ค.
asp.net ํต์ฌ ํ์ด ๋นจ๋ฆฌ ์์ง์ฌ์๋ ์ ๋๋ค๋ ๊ฒ์ด ์๋๋ผ asp.net core 1.x๋ก ์ด๋ํ ๋ ๋ง์ ์ฌ๋๋ค์ ๊ฐ์ ์ ๊นจ๋ ๋ฐฉ์์ผ๋ก ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@FransBouma ๋ง์ดํฌ๋ก์ํํธ ์ฌ์ฉ์๊ฐ ๋ง์ดํฌ๋ก์ํํธ ์ ํ์ผ๋ก ๋ฌด์์ ํ๊ณ ์๋์ง ๋ง์ดํฌ๋ก์ํํธ๋ณด๋ค ๋ ์ ์๊ณ ์๋ค๊ณ ์๊ฐํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@๋งํฌ๋ ๋ค
ํ์ ๋จ์ง ๊ทธ๊ฒ์ ์ํด ์ด๊ฒ์ ํ๋ ๊ฒ์ด ์๋๋๋ค. ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ , API ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์ ์ฒด Windows .NET Framework์ ํฌํจ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ฌ๋๋ค์๊ฒ ๋งค์ฐ ์ ์ฉํ .NET Core์์ ๋กค๋งํ ์ค๋น๊ฐ ๋(๋๋ ๊ฑฐ์ ์ค๋น๋) ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ต์ ํ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ถ์๋ฅผ ๋ช ๊ฐ์ ๋ฆ์ถ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ์ํผ ๋ํผ API๋ฅผ .net ํ์ค 2.0 ํจํค์ง๋ก ๋ง๋ค๊ณ nuget์ ๊ฒ์ํ๋ ๊ฒ์ด ์ด๋ป์ต๋๊น?
๋ง์ดํฌ๋ก์ํํธ ์ฌ์ฉ์๊ฐ ๋ง์ดํฌ๋ก์ํํธ ์ ํ์ผ๋ก ๋ฌด์์ ํ๋์ง ๋ง์ดํฌ๋ก์ํํธ๋ณด๋ค ๋ ์ ์๊ณ ์๋ค๊ณ ์๊ฐํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ ๋ชฐ๋ผ, ์ด ์ค๋ ๋์ ๊ฒ์๋ฌผ์ ์ฝ์ผ๋ฉด์?
@FransBouma
์ด๋ netstandard์ ๋น ๋ฅธ ์น์คํ์ ์์ฑํ๊ธฐ ์ํ API๊ฐ ์์์ ๋ํ๋ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ ๋ชจ๋๋ ๋ ํฐ ๋ฌธ์ ๋ฅผ ์๊ณ ์์ต๋๋ค.
netstandard๋ ๊ทธ ํ์ค์ ์ง์ํ๊ณ ์ ํ๋ ํ๋ซํผ์์ ๊ตฌํํด์ผ ํ๋ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋ถ๊ณผํ๊ธฐ ๋๋ฌธ์ netstandard์ ๋ถ์กฑํ ๊ฒ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ก ์์ผ๋ก ์ฐ๋ฆฌ๋ ์ํ๋ ๋งํผ ๋นจ๋ฆฌ netstandard๋ฅผ ์ด๋ํ ์ ์๊ณ ์ฌ์์ ๋ ๋ง์ ๊ฒ์ ์ถ๊ฐํ ์ ์์ง๋ง ํ์ค์ ์ผ๋ก ๋ชจ๋ ํ๋ซํผ์ด ์ด๋ฌํ ์๋ก์ด ์ฌ์์ ๋ฐ๋ผ์ก๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ๋ ASP.NET Core 2.x๊ฐ netstandard2.0(ํ์ฌ ๊ฐ์ฅ ๋์ ๊ฐ)์ ์ปค๋ฐํ๊ณ ๊ฑฐ๊ธฐ์ ์ ์๋ ๋ชจ๋ ๊ฒ์ด ๋ถ์ด ์๋ค๋ ๊ฒ์ ์๊ณ ์๋์ง, ์๋๋ฉด ASP.NET Core 2.x๋ง ์ํํ๋์ง์ ๋๋ค. netstandard2.0 ์ด์์ผ ์ ์๋ netcoreapp2.x์ ์ปค๋ฐํฉ๋๋ค. ์ ์ ํ ๋๋ netcoreapp์ ์๋ก์ด ๋ฐ์ง์ด๋ ๊ฒ๋ค์ ๋ฐ๋ผ์ก์ ์๋ก์ด netstandard(3.x?)๊ฐ ๋ค์ ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง๋ง, ๊ทธ๊ฒ์ ํจ์ฌ ๋ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ด๊ณ ์ ๋ชจ๋ asp.net ํ๋ ์์ํฌ๊ฐ ์งํ์ ๋๋ฆฌ๊ฒ ํด์ผ ํฉ๋๊น? . ์ฌ๋๋ค์๊ฒ netstandard๋ฅผ ์ค์ํ๋ ๋ณด๋ค ์ฅ๊ธฐ์ ์ธ ์ง์์ ์ ๊ณตํ๋ ๋ ๋ฒ์งธ ์คํ์ด ์๋ ํ ์ ๋ง ๋น ๋ฅด๊ฒ ์์ง์ด๋ ASP.NET Core ์คํ์ ๊ฐ๋ ๊ฒ์ ์ผ์ข ์ ์ข์ ์ผ์ ๋๋ค.
@FransBouma ์, ์ฃ์กํฉ๋๋ค. ์ํ ํฌ๊ธฐ๊ฐ ์ด๋ ๊ฒ ํฐ ์ค ๋ชฐ๋์ต๋๋ค. ๊ฒฐ์ ์ด ๋ง์์ ๋ค์ง ์๋ ์ฌ๋๋ค์ ๋ํ ๊ฐํ ํธ๊ฒฌ์ด ์๋ ๋๊ธ 257๊ฐ? ๊ทธ๊ฒ์ ๋ํด ๋ ผ์ํ๊ธฐ ์ด๋ ต์ต๋๋ค.
๋ฉด์ฑ ์กฐํญ: ์ ๋ ๋น ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋๋ค.
@davidfowl :
์ด ์ค๋ ๋ ์ ์ฒด์์ System.DirectoryServices๋ฅผ ํต์ฌ ํญ๋ชฉ ์ค ํ๋๋ก ํธ์ถํ์ต๋๋ค. ์ด์ํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฑฐ๋ ์ ๋ ์ด์๋์ง ์์ ์ข ์์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. 2.0์ด .NET Framework๋ฅผ ์ง์ํ๋ค๋ฉด ์ด๋ฌํ ์ข ์์ฑ์ด 1๋ ์์ ์ด๋ํ ๊ฒ์ ๋๊น?
์, ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๋ค. System.Directory ์๋น์ค๋ ๊ฐ์ฅ ๋ง์ด ์์ฒญ๋ ๋ค์์คํ์ด์ค๋ ์ค๋น๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ง์ ํ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ๋ ๋์ฉ๋๋ค. API ์ด์์ฑ ๋ถ์๊ธฐ๋ ์ฐ๋ฆฌ๊ฐ ์คํํ ์ ์๋ VS 2017์ฉ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง๋ ์์ต๋๋ค. ์ด์ํ ์ ์๋์ง ํ์ธ ํ๋ ๋ถ์๊ธฐ๋ ์์ง ํฌ์๋์ง ์์์ผ๋ฉฐ ์ด๋ฏธ ์ง์์ ์ค๋จํ๊ณ ์์ต๋๋ค.
์ด๋ ๊ฒ?
Razor ํ์ด์ง๋ ๊ฑฐ๋ํฉ๋๋ค. ์ฌ๋ฌ ๋ฒ ์ธ๊ธํ์ต๋๋ค.
๋๋ stackoverflow.com์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด์ง๋ง ASP.NET Core๋ฅผ ์ผ๋ถ ๋ถ๋ถ์ ์ฌ์ฉํ ์ ์๋๋ก ์กฐ๊ฐ์ ๋ถ๋ฆฌํ ์ ์์ต๋๊น("๋ง์ดํฌ๋ก ์๋น์ค"๋ผ๊ณ ๋งํ๊ณ ์ถ์ง ์์ต๋๋ค)?
์๋์, ์ด๊ฒ์ ์ค์ ๋ก ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฐ๋ฆฌ๋ API ํธ์ถ์ ๋ง๋ค๊ณ ์ฌ๋ฌผ ์ฌ์ด์ ์ค๋ฒํค๋๋ฅผ ์ถ๊ฐํ์ฌ 18ms ์์ ๋ ๋๋งํ์ง ์์ต๋๋ค. ๋๋ ์ธ์ ๋ ์ง ์ํคํ ์ฒ๋ฅผ ๊ฒํ ํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ทธ๊ฒ์ด ํฉ๋ฆฌ์ ์ธ ๋ฐฉ๋ฒ์ด ์๋๋ผ๋ ๊ฒ์ ์ ์ ์์ ๊ฒ์ ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ ์ผ์ฐ ์ค๋ช ํ๋ค๊ณ ์๊ฐํ์ง๋ง ์ฌ๊ธฐ์ ๋ ์์ต๋๋ค.
์งํํด์ผ ํ๋ netstandard์ ์ผ๋ถ์ธ ๋ชจ๋ API๋ ์ฒ์ฒํ ๋ฐ์ ํ ๊ฒ์ ๋๋ค. netstandard ์์ ๊ตฌ์ถํ ์ ์๊ณ ์ด๋์์๋ ์คํํ ์ ์์ผ๋ฉฐ ๊ด์ฐฎ์ต๋๋ค. http ํด๋ผ์ด์ธํธ, SSL ์คํธ๋ฆผ, Int, String, Array, LINQ ๋๋ NET Standard์ ์กด์ฌํ๋ ๊ธฐ๋ณธ ์์์ ๋ํ ์ API๊ฐ ํ์ํ ์๊ฐ โโ์ .NET Standard ๋ฒ์ ์ ์์ฑํด์ผ ํ๊ณ ๊ตฌํ์ด ํ์ํฉ๋๋ค. ์ํํ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ์ด์ ๋ชจ๋ ธ, .NET Core, .NET Framework, UWP ๋ฑ ๋๋ถ๋ถ์ ์์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ธ์์ ๋์ด ์๋๋๋ค. ํ์ง๋ง Unity์ ๊ฐ์ ๋ค๋ฅธ ์ ํ๋ ์์ต๋๋ค(์๋ง๋ ๋ค๋ฅธ ์ ํ). ๊ฐ .NET ์นดํ ๊ณ ๋ฆฌ์๋ ๊ณ ์ ํ ์๊ฐ ํ๋ ์๊ณผ ๋ฐฐ์ก ์ฃผ๊ธฐ๊ฐ ์์ผ๋ฉฐ, ๊ฐ๊ฐ ๊ณ ์ ํ ๋ณ๋์ ์ ํ์ด๋ฏ๋ก ๋ฌด์ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด์ ์ API๊ฐ ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ์ netstandard ๋ฒ์ ์ด ์์ฑ๋๋ค๋ ์์ด๋์ด๋ฅผ ์ป์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฌํ ์ API๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ๋ชจ๋ ํ๋ซํผ์ ๋ํ ์ง์์ ์ฆ์ ์๊ฒ ๋ฉ๋๋ค. ๊ต์ฐจ ์ปดํ์ผํ๊ณ ํด๋ฆฌํ์ ์๋ํ ์ ์์ง๋ง ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ํ์ฅ๋์ง๋ ์์ต๋๋ค.
์ด๊ฒ์ด API๋ฅผ netstandard๋ก ๊ฐ์ ธ์ค๋ ๊ณผ์ ์ด ์ด๋ค ๊ฒ์ธ์ง์ ๋ํ ์์ด๋์ด๋ฅผ ์ ๊ณตํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. @terrajobst ๋ ๊ณํ์ด ๋ฌด์์ธ์ง ๋ ์ ์๊ณ ์์ ๊ฒ์ ๋๋ค.
@DamianEdwards ๋ฐ @shanselman Service Fabric ๋ฐ ๋จ์ ํ ์คํธ๋ ์ด๋ป์ต๋๊น?
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ ํต์ฌ ํ๋ก์ ํธ์ด์ง๋ง .Net Framework 4.5์์ 4.6.(๋ฌด์ธ๊ฐ)๊น์ง ์ฌ์ฉํ๋ SF ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ง์ด ํฌํจ๋ ๋๊ท๋ชจ ๋ง์ดํฌ๋ก ์๋น์ค ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. SF๋ ํ์ฌ netcoreapp์ ์ง์ํ์ง ์์ผ๋ฏ๋ก .Net Framework๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง ๋ค์ฒ์ง๊ณ ์ถ์ง ์์๊ธฐ ๋๋ฌธ์ .Net Core ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
(๋ ๋ค๋ฅธ ๋ฌธ์ ๋) ์ฐ๋ฆฌ ์๋น์ค๊ฐ .Net Framework์ด๊ณ MS Fakes๊ฐ netcoreapp์ ๋ํด ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ์ ๋ชจ๋ ๋จ์ ํ ์คํธ๋ ์ ์(๋๋ ๋ ๊ฑฐ์๋ผ๊ณ ๋งํด์ผ ํ๋) .Net Framework ํ๋ก์ ํธ์ ๋๋ค. ๊ฑฐ์ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ netstandard 1.0์์ 1.6์ ์์ต๋๋ค.
๋ค์ ํด๋ผ์ด์ธํธ ์ฑ์ Xamarin Forms + UWP๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ netstandard๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํธํ๋๋๋ก ๊ด๋ฆฌ ํ์ต๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ฉ์ถฐ์ .Net Core 2.0, netcoreapp2.0 ๋ฐ netstandard 2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
@NickCraver
Razor ํ์ด์ง๋ ๊ฑฐ๋ํฉ๋๋ค. ์ฌ๋ฌ ๋ฒ ์ธ๊ธํ์ต๋๋ค.
๋๋ ์ด๊ฒ์ ์ดํดํ์ง๋ง ๋น์ ์ด ๋ชจ๋ ์คํ ์ค๋ฒํ๋ก๋ฅผ ๋ฉด๋๊ธฐ ํ์ด์ง๋ก๋ง ๋ณํํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋ฏฟ์ ์ ์์ต๋๋ค. ์ค๋๋ ์ด๋ฏธ MVC๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์ผ๋ฐ ๋ณด๊ธฐ๋ก ์ด์ํ๊ณ ๋ ๋ง์ ์ข ์์ฑ์ด ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ๋ฉด๋๊ธฐ ํ์ด์ง๋ก ์ด์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. razor ํ์ด์ง๊ฐ ์ค๊ณ๋ ๋ฐฉ์์ผ๋ก ์ธํด ์ปจํธ๋กค๋ฌ ์์ ์์ razor ํ์ด์ง๋ก ์ด๋ํ๋ ๊ฒ์ด ๊ฐ๋จํฉ๋๋ค.
์, ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๋ค. System.Directory ์๋น์ค๋ ๊ฐ์ฅ ๋ง์ด ์์ฒญ๋ ๋ค์์คํ์ด์ค๋ ์ค๋น๋์ง ์์๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ง์ ํ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์ ๋ ๋์ฉ๋๋ค. API ์ด์์ฑ ๋ถ์๊ธฐ๋ ์ฐ๋ฆฌ๊ฐ ์คํํ ์ ์๋ VS 2017์ฉ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง๋ ์์ต๋๋ค. ์ด์ํ ์ ์๋์ง ํ์ธํ๋ ๋ถ์๊ธฐ๋ ์์ง ํฌ์๋์ง ์์์ผ๋ฉฐ ์ด๋ฏธ ์ง์์ ์ค๋จํ๊ณ ์์ต๋๋ค.
๋ฌด์์ด ์ค์ํ์ง ์ ์ ์๋๋ก ํด๋น ์ข ์์ฑ ๋ชฉ๋ก์ ์์ค์ปฌ๋ ์ด์ ํ์ธ์.
@์๋ถ
์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ฉ์ถฐ์ .Net Core 2.0, netcoreapp2.0 ๋ฐ netstandard 2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
๋น์ ์ ASP.NET Core 2.0์ ์๋ฏธํ๊ณ ? .NET Core 2.0 ๋ฐ .NET Standard 2.0์ ์ฌ๊ธฐ์ ์ค์ ๋ก ์ ์ฉ๋์ง ์์ต๋๋ค.
์, ASP.NET Core 1.x๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค.
ํธํ์ฑ์ ์ํด ์ํ๋ ์์ ์ ๋๋ถ๋ถ์ .NET Core 2.0 ๋ฐ .NET Standard 2.0์์ ์ํ๋์์ต๋๋ค. ASP.NET Core 2.0์๋ ์์งํ ๊ทธ๋ ๊ฒ ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค. SignalR์ ASP.NET Core 1.x(์ด์จ๋ ํฌ์คํธ 2.0์)๋ก ๋ฐฑํฌํธํ ์์ ์ด๋ผ๊ณ ํฉ๋๋ค. ๋จ์ง ์ธ์์ ๋ฌธ์ ์ ๋๊น?
@davidfowl ๋ด ์๊ฐ์ ๋น์ ์ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ๋ค๋ ๋ง์ ๋ค์์ ๋ Windows ๊ฐ๋ฐ์์ ๋ง์์ ๊ฐํํ๋ ๋๋ ค์์ ์์ฒญ๋๊ฒ ๊ณผ์ํ๊ฐํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. _ํนํ_ ์ ์คํ์ด ์ด์ ์คํ๊ณผ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ์ ๋๋ฌํ์ง ์๊ณ ์ธ์ ๋ฐ์ํ ์ง ์ ์ ์๋ ๊ฒฝ์ฐ. ์ด๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฒด .NET Framework์์ ASP.NET Core์ EOL-ing์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์ฅ๊ธฐ์ ์ธ ๊ณํ์ ์๋์ง ๋ชจ๋ฅด์ง๋ง ๊ธฐ๋ฅ์ผ๋ก ๋ฐํ๋์๊ณ ์ฌ๋๋ค์ ๊ทธ๊ฒ์ด ํ๋์ ์ ์ง๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋งํ๋ ๋๋ก ๋ก๋๋งต์ด ๋ฐ๋๊ณ ์์ต๋๋ค. ํ์๊ฐ ์ด๋ฆด ๊ฒ์ ๋๋ค.
๋ช ๋ชฉ์์ผ๋ก ์ ์ง ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅํฐ์ SDK ๋๋ฌธ์ ์ง์ํด์ผ ํ๋ ์ญ๊ฒน๋๋ก ์ค๋๋ ๊ฒ๋ค์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ณต๊ธ์ ์ฒด ์ค ์ผ๋ถ๋ ๊ธฐ์กด ์ ํ์ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ๋ณด๋ค ๊ธฐ์กด ๊ธฐ๋ฅ์ 30%, HTML5 ์ธํฐํ์ด์ค ๋ฐ ์๋ก์ด ์ผ๋ จ์ ๋ฒ๊ทธ๊ฐ ํฌํจ๋ ์๋ก์ด API๋ฅผ ์ถ์ํ ๊ฐ๋ฅ์ฑ์ด ํจ์ฌ ๋ ๋์ต๋๋ค. ๋๋ ๊ฒฝ์์ ์ฒด๋ฅผ ์ธ์ํ๊ณ ์ ํ์ ์ถ์ํ ํ ์ ์ํ๊ฒ EOLํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ณต๊ธ์ ์ฒด ์ค ์ผ๋ถ๋ ์์๋ณผ ์ ์์ ์ ๋๋ก ํฝ๋๋ค. ์ฐ๋ฆฌ๋ ์ข์ ์ฝ๋๋ฅผ ๋ง์ด ๊ฐ์ง๊ณ ์์ง๋ง ๊ทธ ์ฝ๋ ์ค ์ผ๋ถ๋ ์ฐ๋ฆฌ๊ฐ ํญ์ ํต์ ํ ์ ์๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๋ ธ๋ ฅ์๋ ๋ถ๊ตฌํ๊ณ Windows ์ฌ๋ผ์๋ ์์ต๋๋ค. ์ค๋๋ ๊ธฐ์ ์ ๋จ์ํ ์ฐ์ํ๊ฒ ์ํดํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ ์นจ๋ ์๋, ์ฐ๋ฆฌ ์ท์ฅ๊ณผ ํค๋ณด๋ ์๋์ ์จ์ด ์์ต๋๋ค.
๋๋ ๋๋จธ์ง ๋ถ๋ถ๋ณด๋ค .NET Standard์ ๊ฐ๋ฅํ ๋ถ์ ์ ์๋ฆฌ๋ ์ด ์์ง์์ ๋ํด ๋ ์ฐ๋ คํ๊ณ ์์ต๋๋ค. .NET Standard๋ ์ฒ์์ ๋ค์ํ ๊ตฌํ์ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ์ ์ ์ ๋ ๊ฐ๊น๊ฒ ๋ง๋๋ ๋์์ ์๋น์๊ฐ ์งํํ๊ณ ์ฑ์ฅํ๋ ํ๋ซํผ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ์ด์ .NET Core ๊ธฐ๋ฅ์ ์ด์ ํ์ ๋ถ๊ณผํ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. .NET Standard ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์คํ ํ์ผ์ ๋์์ผ๋ก ์ง์ ํ ์ ์๊ฑฐ๋ ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ .NET Standard์ ๊ด๋ จ๋ ๊ณํ์ด ํจ์ฌ ์ค์ด๋ค๊ณ ๋์ ์ด๋ฏธ ๋ณ๊ฒฝํ๊ธฐ์๋ ๋๋ฌด ๋ฆ์๊ธฐ ๋๋ฌธ์ ASP.NET์์ ์ฌ์ฉ๋ ๋ชจ๋ ํญ๋ชฉ์ ๊ณ ๋ฌด ์คํฌํ๊ฐ ์ฐํ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ฒฐ๊ตญ ์ด๋ฏธ ์์ฐ์ ๋ค์ด๊ฐ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ๊ฐ๋ฐ์๋ ์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ผ๋ก ์ฝ๋๋ฅผ ๋ฟ๋ฆฌ๊ณ , ์ฝ๋๋ฅผ ํ๋ซํผ๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ถํ ํ๊ณ , ์ฌ๋ฌ ๋์์ผ๋ก ์ปดํ์ผํด์ผ ํฉ๋๋ค. ๋ด ๋ฌด๋กํ ๋ถ๋ถ์ ASP.NET Core ํ์ด ๋ค์ค ๋์ ์ง์ ๋ฐ ๋ค์ค ํ๋ซํผ ์๋๋ฆฌ์ค์ ๋ํ ๋ ๋์ ๋ฐํ์ ๋ฐ ๋๊ตฌ ์ง์์ ๊ด์ฌ์ ๊ฐ์ง ์ ์๋๋ก ๋ ์ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ํ์ด ๊ทธ๊ฒ์ ์ํ๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ป์ ์ ์์ต๋๋ค. ์ ์ค์ง์ ์ธ ๋ถ๋ถ์ ์ต์ํ .NET Standard๋ฅผ ๋์์ผ๋ก ํ๋ ASP.NET Core์ ์ฃผ๊ธฐ์ ๋ฆด๋ฆฌ์ค๊ฐ ์์ด์ผ ํ๋ค๊ณ ๋งํฉ๋๋ค. ์ด์จ๋ ์ค์ _stable_ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์๋ฌด๋ git์์ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ์ปดํ์ผํ๊ณ ํ๋ก๋์ ์ ๋ฐฐํฌํ์ง ์์ ๊ฒ์ ๋๋ค. .NET Standard์ ๋ ์์ ๋ฐ๋ณต์ ์ํํ๊ณ ํ๊ทธ๊ฐ ์ง์ ๋ ASP.NET ๋ฆด๋ฆฌ์ค์ ์ผ์น์ํค์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ํ ๋ฐ์คํฌํฑ์ฉ ์ ASP.NET์ด ์์ต๋๊น? ๋ชจ๋ ํกํ๋ฅด๋ ASP.NET Core๊ฐ ์ ์ผํ ASP.NET์ธ ๊ฒ์ฒ๋ผ ๋ค๋ ธ์ต๋๋ค. ์ด์ .NET Core์ ์์ง ์๋ ํ ASP.NET์์ ์๋ก์ด ๊ฒ์ ์ป์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋ง์ ๋น์ฆ๋์ค ์ ๋ต์ ๋ฐ๊ฟ ๊ฒ์ ๋๋ค. ๋ก๋๋งต๊ณผ ๊ด๋ จํ์ฌ ๋ง์ ํผ๋์ด ์ผ์ด๋๊ณ ์์ต๋๋ค.
MVC 5๋ ์ฌ๋ผ์ง์ง ์์ ๊ฒ์ด๋ฉฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. .NET Framework๊ฐ ์กด์ฌํ๋ ํ ์ง์๋ฉ๋๋ค.
์, ์ฐ๋ฆฌ๋ ์ค๋๋ ๊ฒ๋ค์ด ๊ทธ๊ณณ์ ๋จ์ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์๊ณ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ ๊ฒ ํ๋ฉฐ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ์๋ก์ด ๊ฒ์ด "์ ์ฒด" ํ๋ ์์ํฌ์ ํฌํจ๋ ๊ฒ์ธ์ง ์ฌ๋ถ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ํฉ์ด ์ด๋๋ก ๊ฐ๊ณ ์๋์ง ์์์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ์ฐจ๋ฅผ ๋๊น์ง ํ๊ณ ์ถ์ง ์๊ณ ๊ทธ์ ์์ผ ์์ผ๋ก ๋์๊ฐ ๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ์น๊ฐ๋ค๋ ๊ฑฑ์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ .NET Core์ .NET Framework ๊ฐ์ ๊ฒฉ์ฐจ๋ก ์ธํด ๋ง์ ์ฌ๋๋ค์ด ๋ฏธ๋์ ๋ํด ๋ถํ์คํฉ๋๋ค. 1๋ ๋ฐ ์ ์ .NET Core์์ ๊ธฐ๋ฅ์ ํน์ ๋ถ๋ถ์ด ์ง์๋ ์๊ธฐ์ ๋ํด ์ง๋ฌธํ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์์ ์ ํ๋ฉด ๋ฐ์๋ค์ฌ์ง ์ ์๋๊ณ ๋ฌผ์ด๋ณด๊ธฐ๋ ํ๋ค. ์ปค๋ฎค๋์ผ์ด์ ์ด ๋ถ์กฑํ์ต๋๋ค. ๋๋ ์์ง๋ ๊ทธ๊ฒ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์ ํ ๋ชจ๋ฅธ๋ค. ์ง์๋๋ ์๋๋ฆฌ์ค ๋ฐ ํ์๋ผ์ธ์ ๋ํ ์ด๋ฌํ ์ ํ์ ๋ถํ์ค์ฑ์ ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ์ฝ๋์ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ญ๋๋ค. ๋ฐ์คํฌํฑ ํ๋ ์์ํฌ์ ์ด๋ค ์น์ ์ด ์ฐ์ ์์๊ฐ ๋ฎ์์ง ์๋ฉด ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ถฉ๋ถํ ์๊ฐ์ ์ค ์ ์์ต๋๋ค.
์์ปจ๋, ๋๋ ๋น์ ์ด ํ๊ณ ์๋ ์ผ๊ณผ ๊ทธ ์ด๋ฉด์ ๋ชฉํ๋ฅผ ์ง์งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ ์์ ๋น์ ์ด ๋ด๋ฆฐ ๊ฒฐ์ ์ ๋ํด ๋งค์ฐ ์ข์ ์ด์ ๊ฐ ์๋ค๊ณ ๋ถํํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ฐ์ฒ์ ๊ธฐ์ฐจ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ง ์์ ๊ฒ์ด๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ๊ทธ๊ฒ์ด ์ด๋๋ก ๊ฐ๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
@davidfowl ์ถ์ธกํฉ๋๋ค. .Net Framework์์ ํต์ฌ ํ๋ก์ ํธ(์ ๊ท)๋ฅผ ๋ฌด์์ด๋ผ๊ณ ํฉ๋๊น? ๊ทธ๊ฒ์ด ๋ฌด์์ด๋ , ๊ฒ์๋ฌผ์์ ๋ด๊ฐ ์ดํดํ ๊ฒ์ netstandard vNext๊ฐ ์ด๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
@markrendle ์ฐ๋ฆฌ๋ ์ค์ ๊ณ ๊ฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋๋ค์๊ฒ ์ผ์ด ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ๊ณ ์์ต๋๋ค. ๋ด ๊ตฌ์กฐ๋ฅผ ๋น์ ๋ณด๋ค ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋งํ ๋๊ธ์ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ทํ์ ํฌ์ธํธ:
ํ์ ๋จ์ง ๊ทธ๊ฒ์ ์ํด ์ด๊ฒ์ ํ๋ ๊ฒ์ด ์๋๋๋ค. ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ , API ๋ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์ ์ฒด Windows .NET Framework์ ํฌํจ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ฌ๋๋ค์๊ฒ ๋งค์ฐ ์ ์ฉํ .NET Core์์ ๋กค๋งํ ์ค๋น๊ฐ ๋(๋๋ ๊ฑฐ์ ์ค๋น๋) ์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ต์ ํ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ถ์๋ฅผ ๋ช ๊ฐ์ ๋ฆ์ถ ๊ฒ์ ๋๋ค.
์ด๋ฌํ ๊ฒ๋ค์ ์ง์งํ๋ ๊ฒ์ ๋ฐ๋ํ๋ ์ฌ๋ ์ ์๋ฌด๋ ์์ต๋๋ค. ์ฐ๋ฆฌ์ ๋ถ๋ง์ ์ผ๋ฐ์ ์ผ๋ก ์๋ก์ด ๊ธฐ๋ฅ์ ์กฐ๊ฑด๋ถ๋ก ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ผ ์ง์ ์ค๋จ์ ๋ํ ๊ฒ์ ๋๋ค.
์ด ์ค๋ ๋์์ ๋ณผ ์ ์๋ ๋ง์ ๋ถ๋ง์ ์์ฑ์๊ฐ ์ค์ ๋ก ์๋ฏธํ๋ ๋ฐ๊ฐ ".NET Core 2.0์์ X๋ฅผ ์ํํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค"์ธ ๊ฒฝ์ฐ ".NET Core 2.0์์ X๋ฅผ ์ํํ ์ ์์ต๋๋ค"์ ๋ณํ์ ๋๋ค. ์, ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์๋, ๋์ ์ผ์ด ์๋๋ค. ASP.NET MVC ์์ฉ ํ๋ก๊ทธ๋จ์ PDF ๋๋ DOCX ํ์ผ๋ก ์์ ์ ์ํํ๋ ์์ ๊ฐ๋ณ ๊ธฐ๋ฅ์ด ์๊ณ ๊ทธ ์์ ์ ์ํํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ(ํด ๋ณธ ์ ์ด ์์ต๋๊น?) ๊ธฐ๋ฅ์ Windows Server์ ์ ์ฒด .NET์์ ์คํ๋๋ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ด๋ณด๋ด๊ณ .NET Core ์ ํ๋ฆฌ์ผ์ด์ ์์ HTTP API๋ก ํธ์ถํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ถํดํ๊ณ ํน์ ๊ธฐ๋ฅ์ ์์ ๋ ๋ฆฝํ ์๋น์ค๋ก ์ด๋ํ๋ ๊ฒ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋๋ผ ๋ฒ์ฉ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค.
์ด๊ฒ์ ๋๋ฌด ๋ฉ๋ฆฌ ๋จ์ด์ ธ์์ด ์ด๋์๋ถํฐ ์์ํด์ผํ ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ ํ์ด์ง๋ "๋ง์ดํฌ๋ก ์๋น์ค"์์ ํจ์ฌ ๋๋ฆฌ๊ณ ๋ ๋น์๋๋ค. ์ด๋ฌํ ์ค์ ์ผ๋ก ํ์ด์ง๋ฅผ ๋ ๋๋งํ๋ ๊ฒ๋ณด๋ค GC์์ ํจ์ฌ ๋ ๋ง์ ์๊ฐ์ ์๋นํฉ๋๋ค. ์ด๊ฒ์ ๋ํ ์ ์ฒด ํ๋ ์์ํฌ ์ข ์์ฑ์ด ๋ชจ๋ ํ์ด์ง ๋ ๋๋ง์ ์ค์ํ ๋ถ๋ถ์ด ์๋๋ผ๋ ๊ฐ์ ์ ํฉ๋๋ค. ์๋ชป๋ ๊ฐ์ ์ ๋๋ค.
.NET Core 2.0์ ์์ง ์ ์ ํ ๊ณต๊ฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ ์๋๋ฏ๋ก LDAP ๋๋ ์๊ธฐ์์กฐ๋ก ๋ณด์ด๋ ๋ชจ๋ ๊ฒ์ ์ง์ํ์ง ์๋๋ค๊ณ ๋ถํํฉ๋๋ค. 3๋ถ๊ธฐ์ RTM์ด ์ถ์๋๊ณ ์ฌ์ ํ AD ๋๋ Kerberos์ ์ํธ ์์ฉํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒฝ์ฐ(ํ์ง๋ง ๋ ์ด์ 2008๋ ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ต์ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ ์์คํ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ ๋ํด ์๊ฐํด ๋ณด์ธ์).
์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ๊ฑฐ๊ธฐ์ ์์ ๊ฒ์ด๋ผ๊ณ ๋ค์ ์ต๋๋ค. ์ผ์ด์๋ ๊ฒ์ ์ง์ผ๋ณด์ญ์์ค. ๋๋ "Future"๋ผ๋ ๋ ์ด๋ธ์ด ๋ถ์ GitHub๋ฅผ ์ดํด๋ณด์ธ์. ์ด ์๋ชป๋ ๊ฒฐ์ ์ด 3๋ถ๊ธฐ์ ๋ฐฐ์ก๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ง๊ธ ๋ถํํ๊ณ ์์ต๋๋ค.
ASP.NET MVC 4.5์์ ASP.NET Core 2.0์ผ๋ก ์ํํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ๋ฉ๋๋ค. ๊ทธ๊ฒ์ ASP.NET Core 1.0์ด๋ผ๊ณ ํฉ๋๋ค(๊ทธ๋ฆฌ๊ณ ๋๋ ์ํฉ์ ๋ฐ๋ผ 1.0์ ๋ํ ์ฅ๊ธฐ์ ์ธ ์ง์์ ๋ํ ์ฝ์์ด ์์ด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค).
์ฅ๊ธฐ ์ง์์ด ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ด ์๋๋ผ๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ์๋ช ์ด ๋คํ 1.x์์๋ ์ฌ์ ํ ์ฝ๊ฒ ์ข์ด๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํ ์ง์์ด ๋ ์ค๋ ์ง์๋์์ ๊ฒ์ ๋๋ค.
์ ์ฒด .NET์ด ๋ฐ๋ผ์ก์ ASP.NET Core 2.x๋ฅผ ์คํํ ์ ์์ต๋๋ค.
netcoreapp
์(๋ฅผ) ํ๊ฒํ
ํ๊ณ ์์ผ๋ฉฐ ๊ทธ๋ฐ ์ผ์ ์ผ์ด๋์ง ์์ต๋๋ค.
...๋๋ ์์กดํ๋ ๋ชจ๋ ํ์ฌ ๊ธฐ์ ์ด .NET Core๋ฅผ ์ง์ํฉ๋๋ค(๋๋ .NET Core๋ฅผ ์ง์ํ๋ ๋๋ฑํ ๊ธฐ์ ๋ก ๋์ฒด๋ ์ ์์).
์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ข
์ข
์ฌ๋๋ค์ ํต์ ์ ์๊ฐ ์์ฐ์ ๋ฒ์ด๋ฉ๋๋ค. Microsoft์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์
๊ทธ๋ ์ด๋๋์ง ์์ต๋๋ค . install.ps1์ด ์๋ํ๊ธฐ ๋๋ฌธ์ ์ ํ๋ก์ ํธ ์์คํ
์์ ์๋ํ๋๋ก ํจํค์ง๋ฅผ ์
๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด ์ง๊ธ SQL ํ๊ณผ ์ธ์ฐ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๊ฐ๋จํ ์์ ์ฌํญ์กฐ์ฐจ ์ ์ฉํ ์ ์๋ค๋ฉด netstandard
ํฌํธ์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์
๋๋ค.
ํ์ด ์ธ๋ถ ์ข ์์ฑ, ๋ด๋ถ ํ์ฌ ์ ์ฑ ๋๋ ์ ์ฑ ๋๋ ๋จ์ํ ๊ด์ฑ์ ์ํด ์ด๋ ค์์ ๊ฒช์ ์ ์์ง๋ง ์ ์ธ๊ณ์๋ ์ต์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ , ์๋น์ค ๋ฐ API๋ฅผ ๊ตฌ์ถํ๋ ค๋ ๊ฐ๋ฐ์๊ฐ ์๋ฐฑ๋ง์ ์๋๋๋ผ๋ ์์ญ๋ง์ด๋ผ๋ ์ฌ์ค์ ๊ธฐ์ตํ์ญ์์ค. ์ํคํ ์ฒ ํจํด ๋ฐ ์๋ก์ด ๊ธฐ์ ํ๋ซํผ(ํด๋ผ์ฐ๋/์์ง/IoT/etc), ASP.NET Core 2.0์ด ๋งค์ฐ ์ ํฉํฉ๋๋ค. ๊ทธ๋ค์ ๋น ๋ฅด๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ํฌ๋ก์ค ํ๋ซํผ์ ์ํฉ๋๋ค. ๊ทธ๋ฐ ๊ฒ๋ค์ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ค์ํฉ๋๋ค. ํ์ฌ ์ ์ด ๊ณต๊ธ์ ์ฒด๋ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์์ง ์ฝ๋๋ฅผ ์ด์ํ์ง ์์๋ค๋ ์ด์ ๋ก Microsoft์ ๋น ๋ฅด๊ฒ ํ์ฅ๋๋ ์์ฅ์ ๋ฌด์ํ๋๋ก ์์ฒญํ๋ ๊ฒ์ ์ด๋ฆฌ์์ ์ผ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ฐ๋ณด๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋นํํ๊ณ , ๋ฌด๋กํ๊ณ , ํ์ ์๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ์ ์ถ์ ๋๋ค. ์ด๊ฒ๋ค์ ์ฐ๋ฆฌ์ ์ฑ์ ๋๋ค. ์ด๊ฒ๋ค์ ์ฐ๋ฆฌ๊ฐ ๋ช ๋ ๋๋ ์์ญ ๋ ๋์ ๋ง๋ค์ด ๋ธ ๊ฒ๋ค์ด๋ฉฐ ์ถ์ ์ ์ ๊ฐ์๊ธฐ ์ฐ๋ฆฌ๋ ์ ๋ง์ด ์ฐ๋ฆฌ์๊ฒ ์๊ฐ ์ ํ์ด ์์์ ์๊ฒ๋์์ต๋๋ค. ๋งํ ๊ฒ๋ ์์ด ๋ง์ ๋ถํ์ค์ฑ์ด ๋์ ๋ฉ๋๋ค. ๊ทธ๊ฒ์ ๋น์ ์ด ๋น์ ์ ๊ฒฝ๋ ฅ์์ ์ ๋ง๋ก ์ํ๋ ๊ฒ์ด ์๋๋๋ค.
๋ชจ๋ ์ ์ ์ดํด๊ฐ ๋์ง๋ง, ์ด ์ฐ์ฃผ์์๋ ๋ชจ๋ ๊ฒ์ด ๋ ์ ์ ์๋์ง๋ฅผ ํ์๋ก ํ๋ ์ํ๋ก ๊ฐ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๊ธฐ์ตํ์ญ์์ค. ๊ทธ๋ฐ ๋ค์ ๊ทธ ์ํ๊ฐ ๋น์ ์ด ๊ฐ๊ณ ์ถ์ ๊ณณ์ธ์ง ํ์ธํ์ญ์์ค. ์๋ํ๋ฉด ์ฐ๋ฆฌ๋ ์ด๋ค ์์ผ๋ก๋ ๊ทธ๊ณณ์ ๊ฐ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฐ๋ผ์ ํน์ ์ํ๋ฅผ ๋ฌ์ฑํ๋ ค๋ฉด ํ์ฌ ์ํ๋ฅผ ์ ์งํ๋ ๋ฐ ํ์ํ ๊ฒ๋ณด๋ค ์ ์ ์๋์ง๊ฐ ํ์ํ์ง ํ์ธํ์ญ์์ค.
๋๊ตฐ๊ฐ IRC์์ ์ด๊ฒ์ ์ ์ณ๋๊ณ ์ธ๊ธํ ํ ์ด ์ ์ฒด ์ค๋ ๋๋ฅผ ์ฝ์์ต๋๋ค. ์์ง ์ด์ ๋ํ ๊ณต์์ ์ธ ๋ฐํ๋ฅผ ๋ณธ ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์์ ํ ์ค๋งํ์ต๋๋ค.
์ ๋ .NET Core๋ฅผ ๊ด์ฐฐํ๋ฉด์ ์๋ก์ด SDK ๋ฐ ๋ฐํ์์ ๋ํ ๊ฒฝํ์ ์ป๊ณ macOS ๋ฐ Linux์์ ์ด๋ฌํ ํ๋ก์ ํธ๋ฅผ ์คํํ๊ธฐ ์ํด ์ฐธ์ฌํ๊ณ .NET Framework์์ .NET Standard/.NET Core๋ก ์๊ท๋ชจ ํ๋ก์ ํธ๋ฅผ ๋ณํํ์ต๋๋ค. .
๋ด ํฐ ๋ชฉํ๋ .NET Core 1.0 ๋๋ 1.1์์ [์์ง] ์ฌ์ฉํ ์ ์๋ ๊ตฌ์ฑ ์์ ํ์ ์ฌ์ฉํ๋ ๋๊ท๋ชจ ์ํฐํ๋ผ์ด์ฆ ์น ์๋น์ค์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
System.DirectoryServices
)EntityFramework
), EF Core๋ ์์ง ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.Microsoft.Data.Services
/ System.Data.Services
) v1-3, ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ v4๋ฅผ (์์ง) ์ง์ํ์ง ์์ผ๋ฉฐ WebAPI OData๋ ์ค์ ํ๊ธฐ ํจ์ฌ ๋ ๋ณต์กํฉ๋๋ค.System.Web.Management
) ๋ฐ .NET Remoting( System.Runtime.Remoting
) - ๋
๋ฆฝ ์คํํ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ์ถ์ถํ ์ ์์ง๋ง.IHttpHandler
s ๋ฐ IHttpModule
s, ASP.NET Core์ ์์ํ๋ ๊ฒ์ด ๋ฌด์์ด๋ ๊ฐ์, ์๋ง๋ ์ผ์ข
์ ๋ฏธ๋ค์จ์ด์ ๋ง๊ฒ ์กฐ์ ๋์ด์ผ ํฉ๋๋ค.Microsoft.TeamFoundationServer.ExtendedClient
๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.์ด ์๋น์ค์ ํฌ๊ธฐ์ ๋ณต์ก์ฑ์ผ๋ก ์ธํด .NET Core๋ก์ ๋ชจ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ์ง์ ์ด์ด์ผ ํ๋ฉฐ ์๋ง๋ ์๋ก์ด ASP.NET-Core-2.0 API๋ฅผ ์ฌ์ฉํด์ผ ํ ์๋ ์์ต๋๋ค. ์์ง๊น์ง๋ ์์ง ์ด๋ฅด์ง ๋ชปํ์ต๋๋ค.
.NET Framework์์ ASP.NET Core๋ฅผ ์คํํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ค๋ ๊ฒ์ ASP.NET Core 1.x๊ฐ ์คํ ๊ฐ๋ฅํ ๋๋ค๋์ด ์๋ ๊ฒฝ์ฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋น ๋ฑ ์คํ์ผ๋ก ์ํํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. "์ ๋ฐํ์์์ ์ ํ๋ ์์ํฌ ์คํ" ์ ์ "์ด์ ๋ฐํ์์์ ์ ํ๋ ์์ํฌ ์คํ" ๋จ๊ณ๋ฅผ ์ฆ์ ์๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ ๋๊ท๋ชจ ์์คํ ์ ๋ํ ๋์ฐํ ๋ณ๊ฒฝ ๊ด๋ฆฌ ์ ๋ต์ ๋๋ค.
.NET Core๊ฐ ํจ๋ฆฌํฐ์ ๋๋ฌํ๊ฑฐ๋ ๊ฑฐ์ ํจ๋ฆฌํฐ์ ๊ฐ๊น์ฐ๋ฉด .NET Framework ์ง์์ด ์ค๋จ๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋ค์ง ์ ๊ฒฝ ์ฐ์ง ์๊ฒ ์ง๋ง ์ถฉ๋ถํ ๊ณ ๊ธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด์๋ ์ฌ์ ํ ๋ค์ณ์ ธ ์๊ณ 2.0์ด ๊ทธ๋ฐ ๊ฒ์ ๋ง๋ค๊ธฐ์ ์ ํฉํ ์ฅ์๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ๊ธฐ์ ์ธ ๋ณํ.
@davidfowl
๋๋ ์ด๊ฒ์ ์ดํดํ์ง๋ง ๋น์ ์ด ๋ชจ๋ ์คํ ์ค๋ฒํ๋ก๋ฅผ ๋ฉด๋๊ธฐ ํ์ด์ง๋ก๋ง ๋ณํํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ๋ฏฟ์ ์ ์์ต๋๋ค. ์ค๋๋ ์ด๋ฏธ MVC๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ์ผ๋ฐ ๋ณด๊ธฐ๋ก ์ด์ํ๊ณ ๋ ๋ง์ ์ข ์์ฑ์ด ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ๋ฉด๋๊ธฐ ํ์ด์ง๋ก ์ด์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. razor ํ์ด์ง๊ฐ ์ค๊ณ๋ ๋ฐฉ์์ผ๋ก ์ธํด ์ปจํธ๋กค๋ฌ ์์ ์์ razor ํ์ด์ง๋ก ์ด๋ํ๋ ๊ฒ์ด ๊ฐ๋จํฉ๋๋ค.
์ฑ ๊ฐ์ ๊ณต์ ๋๋ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ด ์ฌ๊ธฐ์์ ์๋ํฉ๋๋ค. ์คํ ์ค๋ฒํ๋ก๋ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค(๋ฉ์ธ ์น์ฌ์ดํธ๋ ๊ฑฐ์ ์์ ํ ๋จ์ผ ์ฑ์ด์ง๋ง ํ์ฌ๋ก์: ์ฐ๋ฆฌ๋ ๊ด๋ จ๋๊ณ ์ํตํ๋ ๋ง์ ๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋ฌด์์ด ์ค์ํ์ง ์ ์ ์๋๋ก ํด๋น ์ข ์์ฑ ๋ชฉ๋ก์ ์์ค์ปฌ๋ ์ด์ ํ์ธ์.
๋ค, ๊ทธ๋ ๊ฒ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ๋ง์ง๋ง ์ข ์์ฑ์ ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ ์์ด๋ ์ผ๋ถ ์ฑ์ ๋ก๊ทธ์ธ์กฐ์ฐจ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ํฐ ์ฐจ๋จ๊ธฐ์ผ ๋ฟ์ ๋๋ค. ์ฒซ ํ๋ฉด ์ฐจ๋จ๊ธฐ์ ๋๋ค. ์ด๋ฒ ์ฃผ(์ค๋ ์์นจ์ ์ถ์๋ ํ) ์ฑ ์ ์ฒด์ ์ด์์ฑ ๋ถ์๊ธฐ๋ฅผ ์์ ํ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค. ํ์ง๋ง ๋ ์ฐ์ธํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๊ฐ์ ์์ง์์ด ๊ณ ๋ ค๋๊ธฐ ์ ์ ๋ถ์๊ธฐ๊ฐ ํ์ฌ ํด๋ง์ ๋ํด ์ ๋ฐ์ดํธ๋ ๊ฒฝ์ฐ์๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๋ฐ์ดํฐ๊ฐ ๋์์ด ๋ฉ๋๋ค. ์ด ๊ฒฐ์ ์ด ๋ฐ๋ ๊ฐ๋ฅ์ฑ์ด 0์ด ์๋ ํ ๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ป์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๋ ์ด์ ์๊ฐ์ ํฌ์ํ์ง ์๋๋ก ์๋ ค์ฃผ์ญ์์ค.
์ฐธ๊ณ ๋ก OData๋ ์์ง netcoreapp์ ์ง์ํ์ง ์๋ ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
์ค์ ๋ก ์ฌ์ ํ System.Web์ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ผ๋ฉฐ(ASP.NET Core์์ OWIN ๋ฏธ๋ค์จ์ด๋ฅผ ํตํด ์ฌ์ฉํด์ผ ํจ) ์ง์์ ์ฝ์ํ์ต๋๋ค(https://github.com/OData/WebApi/issues/939 ์ฐธ์กฐ).
์ฌ์ ํ ์ธ๊ธํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ํนํ Microsoft์์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
ํธ์ง: @yaakov-h๊ฐ 2๋ถ ๋ ๋นจ๋ผ์ OData์ ๋ํด ์ธ๊ธํ ๊ฒ์ ๋ํด +1
๋๋ ๋ช ๊ฐ์ง ์ด์ ๋ก ์ฌ์ ํ ์ฌ๊ธฐ์ ๋ต์ฅ์ ํ๊ณ ์๋ค
@NickCraver
์ฑ ๊ฐ์ ๊ณต์ ๋๋ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ด ์ฌ๊ธฐ์์ ์๋ํฉ๋๋ค. ์คํ ์ค๋ฒํ๋ก๋ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ค(๋ฉ์ธ ์น์ฌ์ดํธ๋ ๊ฑฐ์ ์์ ํ ๋จ์ผ ์ฑ์ด์ง๋ง ํ์ฌ๋ก์: ์ฐ๋ฆฌ๋ ๊ด๋ จ๋๊ณ ์ํตํ๋ ๋ง์ ๊ฒ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Razor ํ์ด์ง tbh๋ฅผ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ASP.NET Core 2.0์๋ ๋ง์ ์์ ๊ธฐ๋ฅ์ด ์์ง๋ง 1.x๋ก ๋ค์ ํฌํ ๋์ง ์๋ ํฐ ๊ธฐ๋ฅ์ด๋ ์์ ์ฌํญ์ ์์ต๋๋ค. EOL์ ๋งค์ฐ ํ์ค์ ์ด๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ์์ผ๋ก .NET Framework๋ฅผ ์ง์ํ๋ ASP.NET Core 2.0์ด ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ฐฉํฅ ๋ณ๊ฒฝ์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค. .NET Framework๋ฅผ ์์ํ ์ง์ํ๋ ๋ง๋ , ๊ทธ ์ฌ์ด์๋ ์ ๋ง ์๋ฌด ๊ฒ๋ ์์ต๋๋ค.
@dustinmoris ๋ ๊ทธ ๋ฟ๋ง์ด ์๋๋๋ค. ๊ธฐ๋์น์ ๋ฌธ์ ์ด๊ธฐ๋ ํ๋ค. ๊ทํ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๊ณผ ๋์ผํ์ง ์์ ์ ์์ต๋๋ค.
์ ๋ aspnetcore 1.* ์ฑ์ ๊ฐ๋ฐ ์ค์ด๋ฉฐ .NET ๋ฐ์คํฌํ์ ๋ฐํ์(์ํฐํ๋ผ์ด์ฆ์ฉ LOB)์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ .net ์ฝ์ด ๋ฐํ์, netstandard ๋ฑ์ ์ฐจ์ด์ ์ด ๋ฌด์์ธ์ง ์ดํดํฉ๋๋ค.
๋ด ๋ง์ด๊ทธ๋ ์ด์ ์ ํ๋ฆ/๋น์ /๊ธฐํ๋ฅผ ํตํฉํ๊ณ .net ์ฝ์ด๋ก ์ด๋ํ ํ(๊ฐ๋ฅํ ๊ฒฝ์ฐ) aspnetcore ์ ํ์ ๊ฒฐ์ ์ ์ธ ์๋๋ฆฌ์ค์๊ธฐ ๋๋ฌธ์ ๋จผ์ aspnet ์ฝ์ด(.net ๋ฐ์คํฌํ ๋์)๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค.
์ด ๋ฌธ์ ๋ aspnetcore 1.*์ด ํญ์ "๋ ํ๋ ์์ํฌ์์ ๋ชจ๋ ์คํ"๋๋ ๊ฒ์ผ๋ก ๋ง์ผํ
๋์์ผ๋ฉฐ ๋ค์(๋ฒ์ ๋๋ ์ฐ๋) ์ญ์ ์ ๋ํ ๊ฒฝ๊ณ ๊ฐ ์ ํ ์์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ ์ฝ๊ฐ ์์์น ๋ชปํ ๊ฒ์
๋๋ค.
๋๋ ์ต์ํ ์ฌ์ฉ๋์ง ์๋ -> ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ฃผ๊ธฐ ๋๋ ์ง์๋์ง ์๋ ๊ธฐ๋ฅ(๊ด์ฐฎ์ต๋๋ค)์ ๊ธฐ๋ํ์ต๋๋ค.
.net(๋ฐ ์น ์คํ์ ์ํ aspnet ์ ํ)์ ์ข์ ์ ์ ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ ์๋ค๋ ๊ฒ์
๋๋ค.
์ผ๋ถ๋ ๋ด๋ถ์ ์ด๋ฉฐ ๋์(.net core/netstandard)์ด ๋๋ฌด ์ ๋์ ์ผ ๋ ๋ง์ด๊ทธ๋ ์ด์
ํ ์ค์ ํฌ์ ์์ต์ด ์์ต๋๋ค.
์ผ๋ถ๋ ์ธ๋ถ์ ์ด๊ณ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ต์ต๋๋ค. netcoreapp2 ํด๋ก์ ์์ ์๋ํ์ง ์์ผ๋ฉด ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ ๋ด ์์ด๋์ด๋ netcoreapp2
netstandard2
$ ์ ํตํฉ๋์์ต๋๋ค.
libs๊ฐ ์์ง ์๋ ๊ฒฝ์ฐ netstandard2๋ก์ ๋ง์ด๊ทธ๋ ์ด์
ํ๊ฐ๋ฅผ ์์ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋นํธ ๋ฐ ์ฝ์์ ๊ธฐ๋ฐ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
์ ํ๊ฐํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค(์ต๊ทผ ๋ช ๋
๋์ ์ฝ์์ ์์ ์ฑ์ ๋ํ ์ ๋ขฐ๊ฐ ๋ฎ์์ง).
๋๋ ์์ ํ ๊ทธ๋ฆฐํ๋์ ๋ค๋ฅธ ์๋๋ฆฌ์ค๋ผ๋ ๊ฒ์ ์ดํดํ์ง๋ง, ๊ทธ๋ฆฐํ๋์ ๊ฒฝ์ฐ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ๊ธฐ์กด ์์คํ
(excel/pdf/etc)๊ณผ ์ํธ ์์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ scracth์์ ๋ชจ๋ ๊ฒ์ ๋ค์ ์์ฑํ์ง ์์์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋๋ ์ต์ ์ถ์ธ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ rpc๋ก ์ถ๊ฐํ์ญ์์ค. ์๋ํ๋ฉด ์ํฉ์ด ๋ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์
๋๋ค(์ฆ, ๊ธฐ์กด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ํํ๋๋ก ๊ฐ์๋ฐ์ง ์๊ณ ํ๊ฐํ๊ณ ์ํํ๊ณ ์ถ์ ๋์ ์ ํ์
๋๋ค). ์ํคํ
์ฒ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ๊ฐ์น๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค(aspnetcore ๊ฐ๋ฐ ํ๋ฆ์ ํ๋ฅญํ๊ณ ์์ฐ์ ์).
์ํ๊ณ์ ๋ํ ๊ฐ์ธ์ ์ธ ํ๊ฐ์์ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ .net core ๋ฐ/๋๋ netstandard lib์ ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ atm์ด ๋๋ฌด ๋ฎ์ต๋๋ค(๋ชจ๋ ์ฌ๋์ด ๋ฌด๋ฃ nuget.org oss pkg๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋๋๋ค). ๋ฐ๋ผ์ ์ ์คํ์ผ๋ก ์ด์ฌํ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ์คํ(๋น์ฉ/์ด์ /๋ฏธ๋/์ ๋ขฐ/๊ธฐํ)๋ ํ๊ฐํด์ผ ํฉ๋๋ค.
์ ๋ TODO ์น ์ฑ์ ์์ฑํ๊ณ ์์ ๋ฟ๋ง ์๋๋ผ .NET์ ์ฌ์ฉํฉ๋๋ค. ์๋ํ๋ฉด ์ ๋ ์๋
๊ฐ์ ์ค๋น๋ฅผ ํ๊ธฐ ๋๋ฌธ์ ํ ๊ฐ์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค(์ด ๊ฒฝ์ฐ aspnetcore, ๋๋จธ์ง๋ ์ด ๋ฐ๋ณต์ ๋ํด ๊ทธ๋๋ก ๋ก๋๋ค).
๋ชจ๋ ๊ฒ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ด ์๋๋ฆฌ์ค์์ ์ฌ์์ ๋น๋ฒ์ด๋ฉฐ, ๊ทธ๋ ๊ฒ ํด์ผ ํ ๋ lib๊ฐ ์กด์ฌํ๋ ๋ค๋ฅธ ์คํ(์๋ฐ/๋
ธ๋)์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒ์ด ๋ ํฉ๋ฆฌ์ ์ธ์ง ์ค์ ๋ก ํ๊ฐ๋ฅผ ์์ํด์ผ ํฉ๋๋ค.
์ํํ ๋ง์ด๊ทธ๋ ์ด์ ์๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ์ ๋ ๋ฏธ๋์ aspnet ์ฝ์ด์ ๋ํ ๋น์ ์ ์ข์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ช ํํ ๊ฒฝ๋ก(๋๋ ๊ทธ๊ฒ์ ๋ํ ์์ฌ)๊ฐ ์์ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก ํ๋งคํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
์ฆ, .net ๋ฐ์คํฌํ์ ๋จ๊ฒจ๋๊ณ ๋ ๋น ๋ฅด๊ฒ ์ด๋ํ๊ณ ๋ ๋ง์ ์ ์ฌ์ฉ์๋ฅผ ์ ํํ๊ธฐ ์ํด aspnet ํ์ด ์ข์ ๋๋ฐ์ ํ ์ ์์ต๋๋ค(๋๋ ๋
ธ๋/์๋ฐ์ ๋ํ ํ๋ฆ์ ์์ง ์์).
๊ทธ๋ฌ๋ ํ์คํ ๋๋ฆฐ ๋ง์์ ๊ฐ๋ฐ์์ ์ถ์ ๋ ์ด๋ ต๊ฒ ๋ง๋ค ๊ฒ์ด๋ฉฐ ์ด๊ฒ์ aspnet ํ ํธ์ถ(๊ทธ๋ค์ ์ ํ)์
๋๋ค.
๋ด ํผ๋๋ฐฑ์ ๊ทธ๋ ๊ฒ ํ์ง ์๊ณ fw๋ฅผ ์ง์ํ๊ธฐ ์ํด ์ด์ฌํ ๋
ธ๋ ฅํ๋ค๋ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด ๊ฐ๋ฐ์๋ก์ ์ ๋ ์ ๋ขฐ์ ์์ ์ฑ์ด ํ์ํ๊ณ ์ง๋ ๋ช ๋
๋์ .net ์ํ๊ณ(netcore/project.json ๋ฟ๋ง ์๋๋ผ ๋ํ ๋ง์ผํ
/์ ๋์ฌ๊ฐ ์ ๋ขฐ๋ฅผ ๋ฎ์ถ๋ ๋ฐ ๋์์ด๋์ง ์์์ต๋๋ค)
@yaakov-h
ASP.NET Core(1.x ๋๋ 2.x)๋ก ์ด์ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ์ํฉ๋๋ค. ASP.NET Core๋ System.Web์์ ์คํ๋์ง ์์ผ๋ฏ๋ก ๋์ผํ ํ๋ก์ ํธ์์ ์ ์ง์ ํฌํธ๋ฅผ ์ํํ ์ ์์ต๋๋ค.
.NET Core๊ฐ ํจ๋ฆฌํฐ์ ๋๋ฌํ๊ฑฐ๋ ๊ฑฐ์ ํจ๋ฆฌํฐ์ ๊ฐ๊น์ฐ๋ฉด .NET Framework ์ง์์ด ์ค๋จ๋ ๊ฒฝ์ฐ์๋ ๊ทธ๋ค์ง ์ ๊ฒฝ ์ฐ์ง ์๊ฒ ์ง๋ง ์ถฉ๋ถํ ๊ณ ๊ธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด์๋ ์ฌ์ ํ ๋ค์ณ์ ธ ์๊ณ 2.0์ด ๊ทธ๋ฐ ๊ฒ์ ๋ง๋ค๊ธฐ์ ์ ํฉํ ์ฅ์๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํ๊ธฐ์ ์ธ ๋ณํ.
๊ทธ๊ฒ์ ๋ฒ๋ฆด ์ ์ ํ ์๊ฐ์ด ์์ต๋๋ค. .NET Framework์ ํจ๋ฆฌํฐ์ ๋๋ฌํ๊ธฐ ์ํ ๊ฒ์ด ์๋๋ฉฐ ์ด์ํ์ง ์์ ์ข ์์ฑ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ์ด๋ฅผ ๊ฐ์ํ ๋ ๋ด ์ง๋ฌธ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์ค๊ณํฉ๋๊น ์๋๋ฉด ํ์ค์ ์ผ๋ก ์์ํ .NET Framework๋ฅผ ์ ์งํด์ผ ํฉ๋๊น?
@davidfowl ์ ์ ์คํธ๋ฆผ ์ข ์์ฑ์ ์ ์ ์ผ๋ก ์์กดํฉ๋๋ค. ์ด ์์ ์์ ์ฐ๋ฆฌ๋ ์์ํ .NET Framework์ ๋จธ๋ฌผ ๊ฒ์ ๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋ ๋๋ถ๋ถ์ ํ์ฌ ์ ํ์๋ ์ด๋ฏธ netstandard
๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค. .NET Framework์์ ์ฐ๋ฆฌ๋ฅผ ์ ์งํ๋ ๊ฒ์ ์ฃผ๋ก Microsoft ์ข
์์ฑ์ด๋ฉฐ ๊ทธ ์ค ์ผ๋ถ๋ ๋ฐ์ฏค ํฌ๊ธฐ๋ ๊ฒ ๊ฐ์ต๋๋ค(์: OData).
@NickCraver ๋นํ ํ๊ฑฐ๋ ๋ชจ์ํ๋ ค๋ ๊ฒ์ด ์๋๋๋ค. ๋๋ ์ด๊ฒ์ด ๋ฆ์ ๋ณํ๋ผ๋ ์ ์ ๊ฐ์ฌํ๋ฉฐ, ์ปค๋ฎค๋ํฐ์ ์ด๋ ๋ถ๋ถ์ด ์ํฅ์ ๋ฐ๋ ์ค๋ง์ค๋ฝ๊ณ , ๋ด๊ฐ ์ํฅ์ ๋ฐ๋๋ค๋ฉด ๋๋ ์๋์ ํผ์ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋๋ (๋ด๊ฐ ์ผํ๋ ๊ณณ์์๋ ์ฌ์ ํ ASP.NET WebAPI 5.2.3์ ์ฌ์ฉํ๊ณ ์์) ์ํฉ์ ๋ํ ๋์ ๊ฒฌํด๊ฐ ๋ ๊ฐ์ ์ ์ ๋๋ค.
์ด๋ฐ ์์ผ๋ก ๋ณด์ธ์. ์ค๋ ๋ค์ Stack Exchange(๋ฌด์์ด๋ ๊ฐ์) ๋น๋๋ฅผ ์ฒ์๋ถํฐ ์์ํ๋ ค๋ ๊ฒฝ์ฐ ASP.NET Core ํ์์ ์ฌ์ฉํ๋ ค๋ netcoreapp20
์ ์๋ ํญ๋ชฉ์ด ์๋๋๋ค( UTF8Strings ๋ฐ Pipelines ๋ฐ ๋ฎ์ ํ ๋น, ๋น๋๊ธฐ, _fast_ ํ๋ฆฌ๋ฏธํฐ๋ธ(์ฝ๊ฐ ์ถ์ธกํ๊ณ ์์))๊ฐ ์ ์ฒด .NET๋ณด๋ค ๋ ๋งค๋ ฅ์ ์ผ๋ก ๋ณด์ด๋์? .NET Core 2.0์ด ์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด .NET 4.7.1๋ณด๋ค ๋ ํฉ๋ฆฌ์ ์ด์ง ์์ต๋๊น? ์งํํ๊ณ ๋ณํ์ ๋น ๋ฅด๊ฒ ์ ์ํ ์ ์๋ ์น ์คํ๊ณผ ์ง์์ ๋ํด ๊ฑฑ์ ํด์ผ ํ๋ ๊ฑฐ์ 20๋
์ ๊ฑธ์น ๋ ๊ฑฐ์ ์ฝ๋๊ฐ ํฌํจ๋ ๋๋ฆฌ๊ฒ ์์ง์ด๋ ๊ธฐ๋ณธ ๊ธฐ์ ์ ๋์ดํฌ ์ ์์ด ๋ฌถ์ธ ์น ์คํ ์ค ์ด๋ ๊ฒ์ ์ ํํ์๊ฒ ์ต๋๊น?
@ZigMeowNyan
๋๋ ๋๋จธ์ง ๋ถ๋ถ๋ณด๋ค .NET Standard์ ๊ฐ๋ฅํ ๋ถ์ ์ ์๋ฆฌ๋ ์ด ์์ง์์ ๋ํด ๋ ์ฐ๋ คํ๊ณ ์์ต๋๋ค. .NET Standard๋ ์ฒ์์ ๋ค์ํ ๊ตฌํ์ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ์ ์ ์ ๋ ๊ฐ๊น๊ฒ ๋ง๋๋ ๋์์ ์๋น์๊ฐ ์งํํ๊ณ ์ฑ์ฅํ๋ ํ๋ซํผ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ์ด์ .NET Core ๊ธฐ๋ฅ์ ์ด์ ํ์ ๋ถ๊ณผํ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. .NET Standard ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์คํ ํ์ผ์ ๋์์ผ๋ก ์ง์ ํ ์ ์๊ฑฐ๋ ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ .NET Standard์ ๊ด๋ จ๋ ๊ณํ์ด ํจ์ฌ ์ค์ด๋ค๊ณ ๋์ ์ด๋ฏธ ๋ณ๊ฒฝํ๊ธฐ์๋ ๋๋ฌด ๋ฆ์๊ธฐ ๋๋ฌธ์ ASP.NET์์ ์ฌ์ฉ๋ ๋ชจ๋ ํญ๋ชฉ์ ๊ณ ๋ฌด ์คํฌํ๊ฐ ์ฐํ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ฒฐ๊ตญ ์ด๋ฏธ ์์ฐ์ ๋ค์ด๊ฐ ๊ฒ์ ๋๋ค.
๊ทธ๊ฒ๋ค์ ์ค์ ๋ก ์ ๋ง ์ข์ ์ ์ด๋ฉฐ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์๋ ๊ฒ์ ๋๋ค. .NET Standard๊ฐ ์ ์ธ๋๋ ๊ฒ๊ณผ ์๋ฌด ๊ด๋ จ์ด ์๋ค๋ ๊ฒ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋จ์ง ๋ฌผ๋ฆฌํ์ผ ๋ฟ์ ๋๋ค. ๊ฐ .NET ํ๋ซํผ์ด ์์ฒด ์๋๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์ต์ .NET Standard๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ฆฌ๊ฒ ์ด๋ํ๋ ํ๋ ์์ํฌ๊ฐ ์์ ์ ๋ ์์ฃผ ์ํํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๊ฒ์ ๋ชจ๋๊ฐ ๋ด๋ฉดํํด์ผ ํ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๊ณ ํด์ ๋ ์ ์ฉํ ๊ฒ์ ์๋๋๋ค. ๊ทธ๊ฒ์ ๋จ์ง ์ง์น์ ๋ณธ์ฑ์ผ ๋ฟ์ ๋๋ค. ์ด๋ฌํ ๋ถ๋ด์ ์ ๊ฑฐํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋จ์ผ ๊ตฌํ๊ณผ ๋จ์ผ ๋ฐฐ์ก ์ผ์ ์ ๊ฐ๋ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ๊ฐ๋ฐ์๋ ์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ผ๋ก ์ฝ๋๋ฅผ ๋ฟ๋ฆฌ๊ณ , ์ฝ๋๋ฅผ ํ๋ซํผ๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ถํ ํ๊ณ , ์ฌ๋ฌ ๋์์ผ๋ก ์ปดํ์ผํด์ผ ํฉ๋๋ค. ๋ด ๋ฌด๋กํ ๋ถ๋ถ์ ASP.NET Core ํ์ด ๋ค์ค ๋์ ์ง์ ๋ฐ ๋ค์ค ํ๋ซํผ ์๋๋ฆฌ์ค์ ๋ํ ๋ ๋์ ๋ฐํ์ ๋ฐ ๋๊ตฌ ์ง์์ ๊ด์ฌ์ ๊ฐ์ง ์ ์๋๋ก ๋ ์ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ํ์ด ๊ทธ๊ฒ์ ์ํ๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์ป์ ์ ์์ต๋๋ค. ์ ์ค์ง์ ์ธ ๋ถ๋ถ์ ์ต์ํ .NET Standard๋ฅผ ๋์์ผ๋ก ํ๋ ASP.NET Core์ ์ฃผ๊ธฐ์ ๋ฆด๋ฆฌ์ค๊ฐ ์์ด์ผ ํ๋ค๊ณ ๋งํฉ๋๋ค. ์ด์จ๋ ์ค์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์๋ฌด๋ git์์ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ์ปดํ์ผํ๊ณ ํ๋ก๋์ ์ ๋ฐฐํฌํ์ง ์์ ๊ฒ์ ๋๋ค. .NET Standard์ ๋ ์์ ๋ฐ๋ณต์ ์ํํ๊ณ ํ๊ทธ๊ฐ ์ง์ ๋ ASP.NET ๋ฆด๋ฆฌ์ค์ ์ผ์น์ํค์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ ๊ฐ์ ์ผ์ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด netstandard๋ฅผ ๋ชฉํ๋ก ํ๊ณ ์์ผ๋ฉฐ ์ฌ๊ธฐ์๋ ifdef๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ 2.x ๊ธฐ๊ฐ์ ์๋ก์ด API๋ฅผ ํ์ฉํ ์ ์๋๋ก netstandard๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
์์ปจ๋, ๋๋ ๋น์ ์ด ํ๊ณ ์๋ ์ผ๊ณผ ๊ทธ ์ด๋ฉด์ ๋ชฉํ๋ฅผ ์ง์งํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ ์์ ๋น์ ์ด ๋ด๋ฆฐ ๊ฒฐ์ ์ ๋ํด ๋งค์ฐ ์ข์ ์ด์ ๊ฐ ์๋ค๊ณ ๋ถํํ๋ ๊ฒ์ด ์ด๋ ต๋ค๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ฐ์ฒ์ ๊ธฐ์ฐจ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ง ์์ ๊ฒ์ด๊ณ , ๋ค๋ฅธ ์ฌ๋๋ค์ ๊ทธ๊ฒ์ด ์ด๋๋ก ๊ฐ๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ํ์ง ์์ ๊ฒ์ ๋๋ค.
์์งํ ์ง๋ฌธ(Microsoft๊ฐ ์๋ ์ ์ง๋ฌธ์ ๋๋ค)์ ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ๋ณด๋ค ํธํ์ฑ์ ์ ํธํ์ญ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ASP.NET Core๋ฅผ ์ ํํฉ๋๊น?
๋ ๋ค๋ฅธ ๊ฐ๋จํ ์๊ฐ: ์ด์ ๊ฐ์ ๋ชจ๋ ์ค๋ ๋์๋ "์ค๋๋" .NET ์ง์์ ๋ํ ์๋ณด๊ฐ ์ด๋ฃจ์ด์ก๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ทธ๋ฃน์ ์ฌ๋๋ค์ด ํ๋ฅผ ๋ด๋ ๋๋ฑํ์ง๋ง ๋ฐ๋๋๋ ์ค๋ ๋๊ฐ ์์ต๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋ ๋๋ถ๋ถ์ ํ์ฌ ์ ํ์๋ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ netstandard ๋ฆด๋ฆฌ์ค๊ฐ ์์ต๋๋ค. .NET Framework์์ ์ฐ๋ฆฌ๋ฅผ ์ ์งํ๋ ๊ฒ์ ์ฃผ๋ก Microsoft ์ข ์์ฑ์ด๋ฉฐ ๊ทธ ์ค ์ผ๋ถ๋ ๋ฐ์ฏค ํฌ๊ธฐ๋ ๊ฒ ๊ฐ์ต๋๋ค(์: OData).
๐
@๋งํฌ๋ ๋ค
โข ์ด ์ค๋ ๋์์ ๋ณผ ์ ์๋ ๋ถ๋ง ์ค ์๋น์๋ ์์ฑ์๊ฐ ์ค์ ๋ก ์๋ฏธํ๋ ๋ฐ๊ฐ ".NET Core 2.0์์ X๋ฅผ ์ํํ๋ ๋ฐฉ์์ ๋ณ๊ฒฝํด์ผ ํจ"์ธ ๊ฒฝ์ฐ ".NET Core 2.0์์ X๋ฅผ ์ํํ ์ ์์ต๋๋ค"์ ๋ณํ์ ๋๋ค. . ์, ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์๋, ๋์ ์ผ์ด ์๋๋ค. ASP.NET MVC ์์ฉ ํ๋ก๊ทธ๋จ์ PDF ๋๋ DOCX ํ์ผ๋ก ์์ ์ ์ํํ๋ ์์ ๊ฐ๋ณ ๊ธฐ๋ฅ์ด ์๊ณ ๊ทธ ์์ ์ ์ํํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ค์ ๋ก ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ(ํด ๋ณธ ์ ์ด ์์ต๋๊น?) ๊ธฐ๋ฅ์ Windows Server์ ์ ์ฒด .NET์์ ์คํ๋๋ ๋ง์ดํฌ๋ก์๋น์ค๋ก ๋ด๋ณด๋ด๊ณ .NET Core ์ ํ๋ฆฌ์ผ์ด์ ์์ HTTP API๋ก ํธ์ถํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ถํดํ๊ณ ํน์ ๊ธฐ๋ฅ์ ์์ ๋ ๋ฆฝํ ์๋น์ค๋ก ์ด๋ํ๋ ๊ฒ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์๋๋ผ ๋ฒ์ฉ ๋ชจ๋ฒ ์ฌ๋ก์ ๋๋ค.
NB ๋ด๊ฐ ๋งํ ์ ์๋ ํ, OpenXML ํจํค์ง๋ ์ด์ .NET Standard๋ฅผ ์ง์ํ๋ฏ๋ก Word/Excel/๋ฌด์์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํด์๋ ์๋ฉ๋๋ค.<<
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ด๋ฏธ ๋งํ๋ฏ์ด ๋ฉ์ง ๋์์ธ์ ์ํคํ ์ฒ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ข์ ๊ณํ์ด ์๋๋๋ค. ์ฐ๋ฆฌ์ ๊ฒฝ์ฐ WPF ์ ํ๋ฆฌ์ผ์ด์ ํ ์คํธ์ ์๋ฒ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ฐจ์ด๋ฅผ ๋ ๋ง์ด ๋ง๋ค์๋ก ์ ์งํด์ผ ํ๋ ๊ฒ์ด ๋ ๋ณต์กํด์ง๋๋ค.
PDF, DocX ์์ฑ์ ์ฌ์ฉํ ์ ์๋ ์ต๊ณ ์ ๋๊ตฌ๋ฅผ ์กฐ์ฌํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ํ ์ ํ์ผ๋ฉฐ ๊ฐ๋ฐฉํ XML์ ์ฌ์ฉํ๋ ๊ฒ๋งํผ ๊ฐ๋จํ์ง๋ ์์ต๋๋ค. ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ํ์ฌ์์ ๊ฐ๋ฐํ ์๋ง ์ค์ ์ฝ๋๊ฐ ์๊ณ ๊ฐ๋ฐ/์ ์ง๊ด๋ฆฌ/ํ ์คํธํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ ์์ ์ ๋๋ค.
.net ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ๋ณต์กํด์ก์ต๋๋ค. ์์ผ๋ก ASP.net์ด ์ ์ฒด .net ํ๋ ์์ํฌ์์ ์ฌ์ฉ๋ ์ ์์์ง ํ์คํ์ง ์์ต๋๋ค. ์๋ฒ์ ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ต์ ๋ฒ์ ์ ASP.Net์ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ ๋๊น? ์ด๊ฒ์ ๋จ๊ธฐ์ ์ผ๋ก๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก๋ ๋ณด์ ๊ฐ์ ๋ฑ์ผ๋ก ์ธํด ์ต์ ๋ฒ์ ์์ ๋๋ฌด ๋ฉ์ด์ง๊ณ ์ถ์ง ์์ต๋๋ค. ๋ด ๋ณดํธ์๋ ์ ์ฒด ํ๋ ์์ํฌ์ ์ด๋ค ํํ์ ํธํ์ฑ์ด ํ์ํ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค.
๋ด๊ฐ ํ๋ ์ผ์ ๋ช ํํ ํ๊ธฐ ์ํด ๋ค์ํ WPF ์ฑ๊ณผ ๋ด ์๋ฒ ๊ฐ์ ๊ณต์ ๋๋ ์ธ ๊ฐ์ ์์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ด ์์ ์์ ๋ด๊ฐ ์ฌ์ฉํ๊ณ ์๋ Apis๊ฐ .net ์ฝ์ด์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฑฐ๋ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ์ ์๋์ง ์ ํ ๋ชจ๋ฆ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ docx ๋ฐ pdf๋ฅผ ์์ฑํ๊ธฐ ์ํด Telerik ๋ฐ SyncFusion์ WPF ๋๊ตฌ์ ์ ์ฒด ๋ฐ์คํฌํฑ ๋ฒ์ ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ์์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ์ผ๋ถ ๋๋ ์ ๋ถ๋ .net core์์ ์ฌ์ฉ ๊ฐ๋ฅํ๊ฑฐ๋ ์ฌ์ฉํ์ง ๋ชปํ ์ ์์ต๋๋ค. ์๋ ์๊ณ ์๋ ์๋ ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ต์ต๋๋ค. Microsoft๋ .net์ ๋ฐ์ด๋ ๊ธฐ๋ณธ ํ๋ ์์ํฌ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ .net ์ฝ์ด ๋ค์ ์๋ ์ด์ ๋ฅผ ์ดํดํ๊ณ ์์ต๋๋ค. Microsoft๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ค์์ฑ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์คํ ํ
@๋งํฌ๋ ๋ค
์, ์ฃ์กํฉ๋๋ค. ๊ทํ์ ํ๋ณธ ํฌ๊ธฐ๊ฐ ๊ทธ๋ ๊ฒ ํฐ์ง ๋ชฐ๋์ต๋๋ค. ๊ฒฐ์ ์ด ๋ง์์ ๋ค์ง ์๋ ์ฌ๋๋ค์ ๋ํ ๊ฐํ ํธ๊ฒฌ์ด ์๋ ๋๊ธ 257๊ฐ? ๊ทธ๊ฒ์ ๋ํด ๋ ผ์ํ๊ธฐ ์ด๋ ต์ต๋๋ค. ๋ฉด์ฑ ์กฐํญ: ์ ๋ ๋น ๋ฐ์ดํฐ ์ ๋ฌธ๊ฐ๊ฐ ์๋๋๋ค.
๋ด๊ฐ ๋น์ ์๊ฒ ๋ฌด์จ ์ง์ ํ๋์ง ๋ชจ๋ฅด์ง๋ง, ์ด๋ ๊ฒ ์น์์ด๋ฅผ ํ๊ฑฐ๋ ๋ฎ์ ์์ค์ ์ง์ง๊ฑฐ๋ฆด ํ์๋ ์์ต๋๋ค. ์ด ์ค๋ ๋๋ ๋จ์ง ์์ผ ๋ฟ์ ๋๋ค.
@stefanolson
.net ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ๋ณต์กํด์ก์ต๋๋ค.
์ด๊ฒ์ ์ฐ๋ฆฌ ๋ชจ๋ ๊ฐ ๋์ํ ์ ์๋ ๋ช ์ ๋๋ ๊ฒ ์ค ํ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
.Net Core x๋ก ์ด์ํ๋ ค๊ณ ํฉ๋๋ค.
์ฐ๋ฆฌ์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
NewRelic (.Net Core ๊ณํ์ด ์์ผ๋ฏ๋ก alt๋ฅผ ์ฐพ์์ผ ํจ)
NH (EF Core์ ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ).
ServiceBase (์ฌ๋ฆ์ .Net Core 2์ ๋์ฌ ๊ฒ ๊ฐ์ต๋๋ค)
์ฐ๋ฆฌ๋ ์ค๊ฐ์ Core 1.0์ ๋ชฉํ๋ก ์ผ๊ณ NH, EF ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ์ฐฝ์๋ ฅ์ ๋ฐํํด์ผ ํ ๊ฒ ๊ฐ์ต๋๋ค.
Razor ํ์ด์ง tbh๋ฅผ ์ฌ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ASP.NET Core 2.0์๋ ๋ง์ ์์ ๊ธฐ๋ฅ์ด ์์ง๋ง 1.x๋ก ๋ค์ ํฌํ ๋์ง ์๋ ํฐ ๊ธฐ๋ฅ์ด๋ ์์ ์ฌํญ์ ์์ต๋๋ค. EOL์ ๋งค์ฐ ํ์ค์ ์ด๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ์์ผ๋ก .NET Framework๋ฅผ ์ง์ํ๋ ASP.NET Core 2.0์ด ๋์์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๊ธฐ์ ๋ฐฉํฅ ๋ณ๊ฒฝ์ ๋ํด ๋ ผ์ํ๊ณ ์์ต๋๋ค. .NET Framework๋ฅผ ์์ํ ์ง์ํ๋ ๋ง๋ , ๊ทธ ์ฌ์ด์๋ ์ ๋ง ์๋ฌด ๊ฒ๋ ์์ต๋๋ค.
Razor ํ์ด์ง๋ณด๋ค ์กฐ๊ธ ๋ ์ปค์ ์ด๋ํ ์ด์ ๊ฐ ์์ต๋๋ค . ์ด ๋ ๊ฐ์ง๊ฐ ๋ชจ๋ ์กด์ฌํ๋ (ํ์ฌ) ์๋๋ฆฌ์ค๋ ์์ต๋๋ค.
์ฌ์ค ASP.NET Core๋ ์ํ๊ณ ์์ด๋ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์ต๋๋ค. ํ ์คํธ๋ฅผ ๋ค์ ๋ ๋๋งํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ํ๋ฅญํ์ง๋ง ๋ง์ ์๋๋ฆฌ์ค์๋ ์ ์ฉํ์ง ์์ต๋๋ค. API๊ฐ ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋์๊ด์ด ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ํ๊ณ๊ฐ ํ์ํฉ๋๋ค. ๊ทธ๋์ ์ฒ์์ .NET์ ์ ํํ์ต๋๋ค .
์ด ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฌ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์์ ํ ์ง์ํ๋ ํ๋ ์์ํฌ์์ ์์ง ์ค๋น๋์ง ์์ ํ๋ ์์ํฌ๋ก ์งํ๋ฉ๋๋ค. ์ค๋น๋ ์ผ๋ง ๋จ์ง ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ค๋น๊ฐ ๋์๋์ง ํ ์คํธํ๊ธฐ ์ํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์ ๊ณต๋์ง ์์ต๋๋ค. ์ค๋น๋ ๊ฒ์ ๋ํ ์ฝ์ ์ ํ์ ํ๊ธฐ ์ํ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ง์ ์ฝ์์ ๋ฏฟ๊ณ ์์ผ๋ฉฐ ๋ง์ ์ฝ์์ด ๋ถํ๋ฒ๋ฆด ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ด๋ฌํ ๊ฒ๋ค์ ๋ง์ผํ ํ๋ ์ต์ ์ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ณผ๋ํ ์ฝ์๊ณผ ๊ณผ๋ํ ์ ๋ฌ(์ ๋ฐ์ ์ธ ๊ฒฝํ)์ ๋๋ค.
ASP.NET Core๊ฐ ํ๋ฅญํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฉ์ง ์ผ์ ํ๊ณ ๊ณ์ญ๋๋ค. ์ด์ด ์ข๊ฒ๋ ์ผ๋ถ ๋์์ด ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์์ ์์ ์ด ์ค์์น๋ ๋์ฉ๋๋ค. ์ด์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ๋ชจ๋ ๊ฒ์ด ์ค์ ๋ก 2.x ์๊ฐ ํ๋ ์์ ์ด์๋๋ค๋ฉด ํ๋ฅญํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ 3.x์์ ๋ณ๊ฒฝํ์ญ์์ค. ๋์์ด ์ค๋น๋๊ธฐ ์ ์ ์ด์ํ๊ณ EOL ์๋ช ์ ์ ์ข ๋ฃํ ๊ธฐํ์ ์ค์ ํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค. ์ฌ๋๋ค์๊ฒ ์ ์ง ๊ด๋ฆฌ -> EOL ๋ฒ์ ์ผ๋ก ์ด์ํ๋ผ๊ณ ๋งํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
์ง๊ธ ๋ณ๊ฒฝํ์ง ๋ง์ญ์์ค. .NET์ด ์ด๊ฒ๋ณด๋ค ๋ซ์ต๋๋ค. ์ฌ๊ธฐ ์๋ ๋ชจ๋ ์ฌ๋์ด ๊ทํ๋ฅผ ๊ฑฑ์ ํ๋ ๊ฒ๋งํผ ๊ทํ๋ ์ฌ์ฉ์์ ๋ํด ๊ด์ฌ์ ๊ฐ๊ณ ์์์ ๋ณด์ฌ์ฃผ์ญ์์ค. ์ฐ๋ฆฌ๊ฐ ๋๊ณ ์ถ์ง ์์๋ค๋ฉด ์ฌ๊ธฐ์ ์์ง ์์์ ๊ฒ์ ๋๋ค.
@FransBouma ๋น์ ์ Microsoft๊ฐ ์๋ง์ GitHub ๋ฌธ์ ์ค๋ ๋๋ณด๋ค ํจ์ฌ ๋ ๋ช ํํ ๊ทธ๋ฆผ์ ์ ๊ณตํ๋ ๊ธฐ์ ๋ก ์ฌ๋๋ค์ด ํ๋ ์ผ์ ๋ํ ์๊ฒฉ ์ธก์ , ํผ๋๋ฐฑ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ์ ๋ฐฉ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. ์ง์ ํ๋ ๊ฒ์
์ ๋ชฐ๋ผ, ์ด ์ค๋ ๋์ ๊ฒ์๋ฌผ์ ์ฝ์ผ๋ฉด์?
.net ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ๋ณต์กํด์ก์ต๋๋ค. ์์ผ๋ก ASP.net์ด ์ ์ฒด .net ํ๋ ์์ํฌ์์ ์ฌ์ฉ๋ ์ ์์์ง ํ์คํ์ง ์์ต๋๋ค. ์๋ฒ์ ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ต์ ๋ฒ์ ์ ASP.Net์ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ ๋๊น? ์ด๊ฒ์ ๋จ๊ธฐ์ ์ผ๋ก๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก๋ ๋ณด์ ๊ฐ์ ๋ฑ์ผ๋ก ์ธํด ์ต์ ๋ฒ์ ์์ ๋๋ฌด ๋ฉ์ด์ง๊ณ ์ถ์ง ์์ต๋๋ค. ๋ด ๋ณดํธ์๋ ์ ์ฒด ํ๋ ์์ํฌ์ ์ด๋ค ํํ์ ํธํ์ฑ์ด ํ์ํ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ง์ด ์๋ค๊ณ ํ์ ํฉ๋๋ค.
๋ค์ํ .NET ๋ฐํ์ ๊ฐ์ ์ฝ๋ ๊ณต์ ์คํ ๋ฆฌ๋ .NET Standard์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET Core ๋ฐ .NET Framework์์ ๊ณต์ ๋๋ ์ฝ๋๋ฅผ ๋์์ผ๋ก ํด์ผ ํฉ๋๋ค.
Microsoft๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ค์์ฑ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฌธ์ ๋ ASP.NET Core๊ฐ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋๋ก ์๋๋ ์ ์ด ์๋ค๋ ๊ฒ์ ๋๋ค... ๊ทธ๋์ ASP.NET 4.x์์ ๊ทธ๋ ๊ฒ ํฐ ํจ๋ฌ๋ค์ ์ ํ์ด ์์๋ ๊ฒ์ ๋๋ค. ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ์์ ๋นํธ๋ผ๋ฉด .NET Framework์์ ASP.NET 4.x๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ๊ฐ๊น์ด ์ฅ๋ ์ ์ง์๋๋ฉฐ Windows๊ฐ ์ด์์๋ ํ ๋ณด์ ํจ์น๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์๋ ํ ๊ฒ์ด ์๋๋๋ผ๋ 1.0์ ์ด์ ๋ฒ์ ๊ณผ ๋งค์ฐ ํธํ๋์์ต๋๋ค! ์ด๋ ์ํ๊ณ์ ๋ฐฉ๋ํ ์ ์ฐ ์ ์ฒด๋ฅผ ์ง์ํ์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋์ด ํ๊ฐํ์ต๋๋ค. ๊ทธ ๋น์์๋ ์๋ฌด๋ ์์ ์ ์ผ์ดํฌ๋ฅผ ๋๋ ์ฃผ๊ฑฐ๋ ๋จน์ง ์์๋ ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค.
@NickCraver
Razor ํ์ด์ง๋ณด๋ค ์กฐ๊ธ ๋ ์ปค์ ์ด๋ํ ์ด์ ๊ฐ ์์ต๋๋ค. ์ด ๋ ๊ฐ์ง๊ฐ ๋ชจ๋ ์กด์ฌํ๋ (ํ์ฌ) ์๋๋ฆฌ์ค๋ ์์ต๋๋ค.
์์ธํ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
์ฌ์ค ASP.NET Core๋ ์ํ๊ณ ์์ด๋ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์ต๋๋ค. ํ ์คํธ๋ฅผ ๋ค์ ๋ ๋๋งํ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ๊ฐ๋ ๊ฒ์ ํ๋ฅญํ์ง๋ง ๋ง์ ์๋๋ฆฌ์ค์๋ ์ ์ฉํ์ง ์์ต๋๋ค.
๊ทธ๊ฒ๋ ์ ๋ง ๋นจ๋ฆฌ ํ ์ โโ์์ด์ ๐
ASP.NET Core๊ฐ ํ๋ฅญํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฉ์ง ์ผ์ ํ๊ณ ๊ณ์ญ๋๋ค. ์ด์ด ์ข๊ฒ๋ ์ผ๋ถ ๋์์ด ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ์์ ์์ ์ด ์ค์์น๋ ๋์ฉ๋๋ค. ์ด์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ ๋ชจ๋ ๊ฒ์ด ์ค์ ๋ก 2.x ์๊ฐ ํ๋ ์์ ์ด์๋๋ค๋ฉด ํ๋ฅญํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ 3.x์์ ๋ณ๊ฒฝํ์ญ์์ค. ๋์์ด ์ค๋น๋๊ธฐ ์ ์ ์ด์ํ๊ณ EOL ์๋ช ์ ์ ์ข ๋ฃํ ๊ธฐํ์ ์ค์ ํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค. ์ฌ๋๋ค์๊ฒ ์ ์ง ๊ด๋ฆฌ -> EOL ๋ฒ์ ์ผ๋ก ์ด์ํ๋ผ๊ณ ๋งํ๋ ๊ฒ์ ์ข์ง ์์ต๋๋ค.
2.x(์ง์) ๋ฐ 3.x(์ญ์ )๊ฐ 1.x(์ง์) ๋ฐ 2.x(์ญ์ )๋ณด๋ค ๋์ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ์๊ฒ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๊ฒ ๋ฌด์จ ์ฐจ์ด๊ฐ ์์ต๋๊น?
ASP.NET ๋ณํ์ ์ฅ๊ธฐ์ ์ธ ์ง์์ ๊ด์ฌ์ด ์๋ ์ฌ๋๋ค์ ์ํ ๋ช ๊ฐ์ง //BUILD 2017 ์ธ์ ๊ถ์ฅ ์ฌํญ:
@davidfowl :
๊ทธ๊ฒ ๋ฌด์จ ์ฐจ์ด๊ฐ ์์ต๋๊น?
2.0 ์ดํ ์ ์ถ์๋ ๊ฐ์ฅ ์ค์ํ ๋๋ฝ API ์ค ์ผ๋ถ๋ฅผ ์ฝ์ํ๊ธฐ ๋๋ฌธ์?
@yaakov-h
2.0 ์ดํ์ ์ถ์๋ ๊ฐ์ฅ ์ค์ํ ๋๋ฝ API ์ค ์ผ๋ถ๋ฅผ ์ฝ์ํ๊ธฐ ๋๋ฌธ์?
ASP.NET Core์์ ์ด๋ค ๊ฒ์ด ์๋์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
@davidfowl System.DirectoryServices, System.Drawing์ ์์์ ์ธ๊ธํ์ต๋๋ค.
์์งํ ์ง๋ฌธ(Microsoft๊ฐ ์๋ ์ ์ง๋ฌธ์ ๋๋ค)์ ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ๋ณด๋ค ์์ ์ฑ๊ณผ ํธํ์ฑ์ ์ ํธํ์ญ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ASP.NET Core๋ฅผ ์ ํํฉ๋๊น?
๋๋ ์ด๊ฒ์ด ์์ฃผ ์ข์ ์ง๋ฌธ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ ์ฒด .NET ํ๋ ์์ํฌ๊ฐ ์ค๋๋ ํ์ํ ๋ชจ๋ ๊ฒ์ ์ ๊ณตํ๋ค๋ฉด ์ ์์ ํ ๋ค๋ฅธ ์คํ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐ ์ด์ฌ์ ๋๊น? .NET Core์ ASP.NET Core์ ์ด๋ฆ์ด .NET int ์์ด ๋ฌ๋๋ค๋ฉด ๋ง์ด๊ทธ๋ ์ด์ ๋ฌธ์ ์ ๋ํด ๋ ผ์ํ๋ ์ฌ๋๋ค์ด ํจ์ฌ ์ค์ด๋ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ ๋น ๋ฅด๊ฒ ์์ง์ด๋ Go ๋๋ Node.js ์น ์คํ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ค๊ณ ๋ถํํ๋ ์ฌ๋์ ์๋ฌด๋ ์์ต๋๋ค.
@davidfowl ์ด ASP.NET MVC 5.x์ ์ญํธํ๋๋ ๊ฒ๊ณผ .net ํ๋ ์์ํฌ์ ์ญํธํ๋๋ ๊ฒ์ ๋ณ๊ฐ์ ๋๋ค. .net ํ๋ ์์ํฌ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ํฐ ์ผ์ ๋๋ค...
2.x(์ง์) ๋ฐ 3.x(์ญ์ )๊ฐ 1.x(์ง์) ๋ฐ 2.x(์ญ์ )๋ณด๋ค ๋์ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
2.x๊ฐ ๊ณง ์ถ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
@davidfowl System.DirectoryServices, System.Drawing์ ์์์ ์ธ๊ธํ์ต๋๋ค.
๊ทธ๊ฒ๋ค์ ASP.NET Core 1.x ๋๋ 2.x์ ์๋ฌด ๊ด๋ จ์ด ์์ผ๋ฉฐ ์จ๋ผ์ธ ์ํ๊ฐ ๋๋ฉด ๋ ๋ค์์ ์คํ๋ฉ๋๋ค.
๋ด๊ฐ ๋งํ๋ฏ์ด, ๋๋ ๋จ์ง FUD์ ๊ทธ๊ฒ์ ์ผ๋ถ๋ฅผ ๋ถ๋ฅด๊ธฐ ์ํด ์ฌ๊ธฐ์ ์์ต๋๋ค. ์ด ์ค๋ ๋๋ ๋๋ฌด ์ปค์ ธ์ ์๋ฌด๋ ์ผ๋ถ ์๋ต์์ ์ฌ์ค์ ๋ณผ ์ ์์ต๋๋ค.
@FransBouma ๋น์ ์ Microsoft๊ฐ ์๋ง์ GitHub ๋ฌธ์ ์ค๋ ๋๋ณด๋ค ํจ์ฌ ๋ ๋ช ํํ ๊ทธ๋ฆผ์ ์ ๊ณตํ๋ ๊ธฐ์ ๋ก ์ฌ๋๋ค์ด ํ๋ ์ผ์ ๋ํ ์๊ฒฉ ์ธก์ , ํผ๋๋ฐฑ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ์ ๋ฐฉ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. ์ง์ ํ๋ ๊ฒ์
@markrendle ์๊ฒฉ ์ธก์ ์ ๋ง์ ์ด ์๋๋๋ค. ppl/dev๊ฐ ์ ํํ์ง ์๋ ์ด์ , ๋ค๋ฅธ ์คํ์ผ๋ก ์ ํํ ์ด์ , ํ๋ก์ ํธ์ ์ค์์ฑ, ์คํ์ ์ผ๋ง๋ ์ข์ํ๋์ง(์ปจ์คํ ์ด๋ oss๋ฅผ ํตํด ๋ค๋ฅธ ์ฌ๋์ ๋๋) ๋๋ ๊ทธ๋ค์ด ํ๋ ์ผ์ ์ธก์ ํ ์ ์์ต๋๋ค.
์ด ์ค๋ ๋๋ ๋ฐ๋ก ํผ๋๋ฐฑ์ ๋๋ค.
2.x(์ง์) ๋ฐ 3.x(์ญ์ )๊ฐ 1.x(์ง์) ๋ฐ 2.x(์ญ์ )๋ณด๋ค ๋์ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ์๊ฒ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๊ฒ ๋ฌด์จ ์ฐจ์ด๊ฐ ์์ต๋๊น?
@davidfowl ์๊ฐ.
์กฐ๊ธ ์์ ๋ ์๊ฐ. ์ฌ๋ฌผ์ ํ๊ฐํ๋ ์๊ฐ. ํ ๋ฒ์ ํ ๊ฐ์ง๋ฅผ ๋ณ๊ฒฝํ ์๊ฐ์
๋๋ค. netstandard2
ํจํค์ง๋ฅผ rtm๊ณผ ํจ๊ป ์ฌ์ฉํ ์๊ฐ์
๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ netstandard1(์ด๋ ค์) ๋์ netstandard2(๋ ์ฌ์)๋ก ์ด๋ํ ์๊ฐ์
๋๋ค. ๋๋ฅผ ์ํด ํ ๋ฒ์ ํ ๊ฐ์ง ๋ฌผ๊ฑด์ ๋ฐ๊ฟ ๋์
๋๋ค.
๋น์ ์ aspnet์ ์ฌ์ฉํ์ง๋ง ๋ด ์ ํ์ aspnet์ผ ๋ฟ๋ง ์๋๋ผ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ถฉ์ ๋ฐ ์ํ๊ณ์ ์กฐํฉ์
๋๋ค.
2.x๊ฐ ๊ณง ์ถ์๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๊ฒ ๋ฌด์จ ์๊ด์ด์ผ? 2.0์ด ์ฐ๋ง์ด๋ 1์์ ๋์จ๋ค๋ฉด? ์ฐจ์ด๊ฐ ๋ ๊น์? 2.0์์ 1.x๊ฐ ๊ฐ์น๊ฐ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@yaakov-h @shanselman ์ด ๋งํ ๊ณณ ์์ ์ธ๊ธ๋์์ต๋๋ค(๊ฐ์กฐ ๋ด)
AD โ ์์ ํ, ์ด๊ฒ์ LDAP๋ฅผ ์ง์ ํธ์ถํ๋ ค๋ ๊ฒฝ์ฐ ๊ณต๋ฐฑ์ ๋๋ค. Windows Auth NOW์ ๋ํด ํ์คํ ์ธ์ฆํ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ๋ฆ ๊ธฐ๊ฐ ๋์ Core 2.0์ ์ํ DirectoryServices ๋ค์์คํ์ด์ค๋ฅผ ํน๋ณํ ๊ฐ์ง ๊ณํ์ ๋๋ค.
๊ทธ๋ฆฌ๊ธฐ - ์์ ํ, ์ด๊ฒ์ ๊ณต๋ฐฑ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ Core 2.0์์ ์ฌ๋ฆ ๊ธฐ๊ฐ ์ ๊ฐ์ง ๊ณํ์ ๋๋ค. ์ด ๋๊น์ง ์ด๋ฌํ netstandard ์ต์ ์ ImageSharp, ImageResizer, Mono ์ต์ ๋ฑ๋ ์กด์ฌํฉ๋๋ค.
@davidfowl ๋ฒ์ ์ด ์๋๋ผ .net ์ฝ์ด ๋ฐ ์ํ๊ณ์ ๋ ์ง์ ์ฑ์๋์ ๊ดํ ๊ฒ์ ๋๋ค.
@hikalkan
์ฃ์กํฉ๋๋ค. ๋งค์ฐ ๋์ ์์ค์ POV์์ ์ดํดํ์ง๋ง ๊ธฐ์ ์ ์ธ ๊ด์ ์์๋ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์๋ง๋ ์ด๊ฒ์ ๊ธฐ์ ์ ์ธ ๋ ผ์๊ฐ ์๋๊ฐ?
@enricosada
์กฐ๊ธ ์์ ๋ ์๊ฐ. ์ฌ๋ฌผ์ ํ๊ฐํ๋ ์๊ฐ. ํ ๋ฒ์ ํ ๊ฐ์ง๋ฅผ ๋ณ๊ฒฝํ ์๊ฐ์ ๋๋ค. rtm๊ณผ ํจ๊ป netstandard2 ํจํค์ง๋ฅผ ์ฌ์ฉํ ์๊ฐ์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ netstandard1(์ด๋ ค์) ๋์ netstandard2(๋ ์ฌ์)๋ก ์ด๋ํ ์๊ฐ์ ๋๋ค. ๋๋ฅผ ์ํด ํ ๋ฒ์ ํ ๊ฐ์ง ๋ฌผ๊ฑด์ ๋ฐ๊ฟ ๋์ ๋๋ค.
๋น์ ์ aspnet์ ์ฌ์ฉํ์ง๋ง ๋ด ์ ํ์ aspnet์ผ ๋ฟ๋ง ์๋๋ผ ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ถฉ์ ๋ฐ ์ํ๊ณ์ ์กฐํฉ์ ๋๋ค.
ํนํ ASP.NET Core 2.0์ ์ฐจ์ด๊ฐ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ASP.NET Core์์ ๋ฌด์์ ์ ํํ๋ ํ๋ซํผ์์ ์ด๋ฌํ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
@markrendle ๋๊ตฐ๊ฐ ๋์๊ฒ ๋ฌ๋ ฅ์ ๊ฐ์ ธ๋ค ์ฃผ์์ต๋๋ค. ์๋ํ๋ฉด ๊ณ์ ์ ์ ์ฒด ๋ถ๊ธฐ์ ๊ฑธ์ณ ์๊ณ (๊ฐ์ ๋ถ๊ธฐ์ ๋ค๋ฅธ ํญ๋ชฉ๋ณด๋ค 3๊ฐ์์ด ๋น ๋ฅผ ์ ์์) ๋จ๋ฐ๊ตฌ ์ฌ๋๋ค์๊ฒ ํนํ ํผ๋์ค๋ฝ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@enricosada ์๊ฒฉ ์ธก์ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ ์์ค(์น ๋ถ์, ๊ฒ์ ๋ฐ์ดํฐ, ์ง์ ์ ์ธ ๊ณ ๊ฐ ํผ๋๋ฐฑ)์์ ์์ฒญ๋๊ฒ ๋ง์ ์ ์ฉํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค. GitHub์ ํ๋ ๋ชน์ผ๋ก๋ถํฐ ์ป์ ์ ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ต๋๋ค(ํ์ง๋ง ๊ฐ ๊ฐ์ธ์ ๋ถ๋ ธ๊ฐ ์ ๋นํ๋ ์ ์์).
@yaakov-h ์, .NET Core 2.0(๋ฐ ASP.NET Core 2.0)์ ๋ํ ํ์ฌ ์์ RTM์ 7์/8์/9์์ธ Q3 ๋ฌ๋ ฅ์ด๊ณ ๋ถ๋ฐ๊ตฌ์ ์ฌ๋ฆ์ ๋๋ถ๋ถ 7์/8์/9์์ ๋๋ค. , ๊ทธ๋์ ๊ทธ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ ๊ฒ์ ๋๋ค.
์๊ฒฉ ์ธก์ ๋ฐ ๊ธฐํ ๋ฐ์ดํฐ ์์ค(์น ๋ถ์, ๊ฒ์ ๋ฐ์ดํฐ, ์ง์ ์ ์ธ ๊ณ ๊ฐ ํผ๋๋ฐฑ)์์ ์์ฒญ๋๊ฒ ๋ง์ ์ ์ฉํ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด ์๊ฒฉ ์ธก์ (์ ์ด๋ ์๋ํ๋ ๋ถ๋ถ)์ด ์ํฐํ๋ผ์ด์ฆ ๋ฐฐํฌ์ ์ผ๋ง๋ ์์ ์ ์ธ์ง ๊ถ๊ธํฉ๋๋ค. (๋๋ถ๋ถ์ ๋ฐ๋ฐ์ด ๊ฑฐ๊ธฐ์์ ๋์ค๋ ๊ฒ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค.)
2.x(์ง์) ๋ฐ 3.x(์ญ์ )๊ฐ 1.x(์ง์) ๋ฐ 2.x(์ญ์ )๋ณด๋ค ๋์ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ ์๊ฒ ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ทธ๊ฒ ๋ฌด์จ ์ฐจ์ด๊ฐ ์์ต๋๊น?
@davidfowl ์๊ฐ. ๊ทธ๋ฆฌ๊ณ ์ ์ ํ ๋ฐํ. ๋ฉ์์ง๊ฐ ๋ ๋ช ํํ๋ค๋ฉด ์ฌ๋๋ค์ ๋๋ผ์ง ์์์ ๊ฒ์ ๋๋ค.
@davidfowl ์๊ฐ. ๊ทธ๋ฆฌ๊ณ ์ ์ ํ ๋ฐํ. ๋ฉ์์ง๊ฐ ๋ ๋ช ํํ๋ค๋ฉด ์ฌ๋๋ค์ ๋๋ผ์ง ์์์ ๊ฒ์ ๋๋ค.
์ดํด๋ ํ์ง๋ง ์ค์ ๋ก ์ด์ํ๋ ๋ฅ๋ ฅ์ ์ฐจ์ด๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋์ผํ EOL ์ ์ฑ ์ด ์ฌ์ ํ ์กด์ฌํฉ๋๋ค.
์ข์, ์ด ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ ํ, ๋๋ ๋์ ๊ฐ์ด ์ด๋ ค์์ ๊ฒช๊ณ ์๊ณ ๋ํ ๋ช ๊ฐ์ง ์ง๋ฌธ์ด ์๋ ์ฌ๋๋ค์ ์ํด ๋ช ๊ฐ์ง ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๊ณ ์ถ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ๊ฒฐ๊ตญ ๋ท ํ๋ ์์ํฌ๋ฅผ ๋์ฒดํ๋ ๋ทํ์ค์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ netcore๊ฐ ์กด์ฌํ์ง ์๊ณ aspnet core๊ฐ netstandard๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. ์ฆ, ๊ธฐ๋ฅ์ด ๋ ๋๋ ค์ง๋๋ค.
์์:
2017 asp.net์ ๊ธฐ๋ฅ A๋ฅผ ์ํฉ๋๋ค.
2018 netstandard๋ ๊ธฐ๋ฅ A๋ฅผ ๊ตฌํํฉ๋๋ค. ns์์ ๊ธฐ๋ฅ A๋ฅผ ์ป์ต๋๋ค.
ํ์ด ๋งํ๋ ๊ฒ์ netcore๊ฐ netstandard๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ง ์๋๋ก ํ๋ ๊ฒ์
๋๋ค.
2017 asp.net์ ๊ธฐ๋ฅ A๋ฅผ ์ํฉ๋๋ค
2017 aspnet ํ์ ๊ธฐ๋ฅ A๋ฅผ ๊ตฌํํฉ๋๋ค. Asp.Net Core๋ netcore์์ ๊ธฐ๋ฅ A๋ฅผ ์ป์ต๋๋ค.
2018 netstandard๋ ๊ธฐ๋ฅ A๋ฅผ ๊ตฌํํฉ๋๋ค. ns์์ ๊ธฐ๋ฅ A๋ฅผ ์ป์ต๋๋ค.
๋ฐ๋ผ์ ์ด ๊ฒฐ์ ์ ์ค์ ๋ก ๋ฐฉ์ ์์ ๋ ๋ง์ "์ ์ฐ์ฑ๊ณผ ์๋"๋ฅผ ๊ฐ์ ธ์ต๋๋ค. ๋๊ฐ ์ฌ์ฉํ ์ ์๋์ง, ํผ๋๋ฐฑ ๋ฑ์ ์ํ ๋ ๋น ๋ฅธ ๋ฆด๋ฆฌ์ค. ๋คํธ ํ๋ ์์ํฌ์ ๋๋ฆฐ ํํ์ ํฐ ๋์์ด ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ๋ฅ์ NS์ ๋๋ฌํ๋ฉด ์ ๋ง ์ฑ์ํด์ง ๊ฒ์ ๋๋ค.
netstandard 2๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ netcore๊ฐ ์๋ค๋ ๊ฒ์ด ๊ธฐ๋ฅ์ด 1๋
(๋๋ ์์์ ๊ธฐ๊ฐ) ํ์ ์ถ์๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๋ฉด ์ฌ๋๋ค์ ์ฌ์ ํ โโ์ด๊ฒ์ ์ํ๋ค๊ณ ์ฃผ์ฅํ ๊น์? ์ด๊ฒ์ NET Framework
์ ์ต์ํ ์๋๋ฆฌ์ค์
๋๋ค.
์ด๊ฒ์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ์์กดํ์ง ์๊ณ ๋ฌผ๊ฑด์ ๋ฐฐ์กํ ์ ์๋ aspnet ํ์ ์ฒ๊ตญ์ด๋ฉฐ, ๋น ๋ฅธ ๋ฌผ๊ฑด์ ์ป์ ์ ์๋ ๊ณ ๊ฐ์๊ฒ๋ ์ข์ ์์์ ๋๋ค. ๋น ๋ฅธ ์์ ์ ์ํํ ์ ์๋ ๊ฒฝ์ฐ ์ด์ ๋ฒ์ ์ ๊ณ ์ํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ธ ์ ์ถฉ์์ ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ ์ฌ์ ํ netstandard๋ฅผ ๋ชฉํ๋ก ์ผ์์ผ ํ๋ฉฐ ๊ทธ๋ ๊ฒ ํ ์ ์๋ค๋ฉด ์ ํ ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค.
netstandard(์๋ง๋ razor ํ์ด์ง(?))์ ์๋ ๊ฒ์ด ํ์ํ ๊ฒฝ์ฐ netcore๋ฅผ ๋์์ผ๋ก ํด์ผ ํฉ๋๋ค. ์๋๋ฆฌ์ค 1์์๋ razor ํ์ด์ง๊ฐ ์กด์ฌํ์ง ์์ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋์ ์ ์๋์ง ๋๋ ๊ทธ๊ฒ์ด ๊ณต์ ํ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ฌธ์ ๋ ํ์ฌ NET Framework์์ Net Core๋ก ์ด๋ํ๋ ๊ฒ์ ์ ํํ๋ ์ข
์์ฑ์ด ๋ฌด์์
๋๊น?
์ ๋ง ์ฌ๊ธฐ ์์ ์ ์์ง๋ง aspnet ์ฝ์ด๊ฐ NET Framework์์ ์์ํ ์๋ํ ๊ฒ์ด๋ผ๊ณ ๋ ์์ํ์ง ๋ชปํ์ต๋๋ค. ์ด๊ฒ์ด "์ ํ" ๋จ๊ณ๋ผ๋ ๊ฒ์ด ๋ถ๋ช
ํ์ต๋๋ค. ํ์ฌ NET Framework๊ฐ ํ์ํ ๋ชจ๋ ๊ฐ๋ฐ์ splited
์
๋๋ค. (์๋์, ์ด๊ฒ์ ๋ง์ดํฌ๋ก ์๋น์ค๊ฐ ์๋๋ฉฐ ๊ทธ๋ณด๋ค ํจ์ฌ ๊ฐ๋จํฉ๋๋ค).
2.x ์ง์ ๋ฐ 3.x ๋๋กญ์ 1.x ์ง์ ๋ฐ 2.x ๋๋กญ๊ณผ ๋ค๋ฅด์ง ์์ต๋๋ค. ๋๋ ์ฌ๊ธฐ์์ ์ถ์ธกํ๊ณ ์ฌ๋๋ค์ด ์๋๋ฆฌ์ค๋ฅผ ๋ช ํํ๊ฒ ์ดํดํ์ง ๋ชปํ๋ค๊ณ ๋งํ ๊ฒ์ด๋ฏ๋ก ์ด๊ฒ์ด ์ ์ด๋ ์ผ๋ถ๋ฅผ ๋ช ํํ ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@NickCraver ๋น์ ์ ๋ง์ดํฌ๋ก์ํํธ๊ฐ ์ด ๊ฒฐ์ ์ ๋๋๋ฆฌ๊ธฐ๋ฅผ ์ํ๋ค๊ณ ๋งํ์ต๋๋ค. ๊ฒฉ๋ฆฌ๋ ๋ท์ฝ์ด๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ ๋๋ฆฐ ๊ธฐ๋ฅ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ด๋ป๊ฒ ํ์๊ฒ ์ต๋๊น? (์์งํ ์ง๋ฌธ)
@davidfowl ํ์ฌ ์ ์์ ๊ฐ๋ฐ์๋ฅผ ๊ฑฑ์ ์ํค๋ ๋ฏธ๋ฌํ ์จ๊ฒจ์ง ๋ฌธ์ ๊ฐ ์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
asp.net(netcore ํฌํจ)์ ๋ํ ๊ธฐ๋ฅ A๊ฐ ์๋ ๊ฒฝ์ฐ ๋ง์ผํ
๋ฐ ๋ฐฐ์ก(๊ทธ๋ฆฌ๊ณ management/pm ์ฒดํฌ๋ฐ์ค ์ ํ)์ ํ ์ ์์ผ๋ฉฐ netstandard์์ ๊ตฌํํ๋ ๋ฐ "๊ฒ์ผ๋ฆ"์ด ๋ ์ ์์ต๋๋ค. ๋ถํ์ค์ ๋ํด์๋ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ฐ๋ผ์ ์ด์ ์์์ netstandard๋ ๊ธฐ๋ฅ A๊ฐ 2019๋
๋๋ 2020๋
์ ์์ ์๋ ์๊ณ 2018๋
๋์ ์ ์์ ์๋ ์์ต๋๋ค. <-- ์ด๊ฒ์ ๊ฐ๋ฅํ ๋ฌธ์ ์ฒ๋ผ ๋ณด์
๋๋ค(?) ๋ง์ต๋๊น? Microsoft๋ ์ฌ๊ธฐ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ฝ์ํ ์ ์์ต๋๊น?
๋ฐํ๊ฐ ๋ง์์ ๋๋์ง์ ๋ํด์๋ ์๊ฒฌ์ด ๊ฐ๋ฆด ์ ์์ง๋ง ํ ๋ก ์ ์๊ฐ์ ํ ์ ํด ์ฃผ์ @davidfowl @DamianEdwards ์ @shanselman ๋๋ถ์ ๋๋ค. ์ด๋ ์ฐธ์ฌ๋์ ๊ฐ๋ฐฉ์ฑ์ด ์ฆ๊ฐํ๋ค๋ ๋ ๋ค๋ฅธ ์ฆ๊ฑฐ์ ๋๋ค.
๋๋ ์ผ๋ถ ์ฌ๋๋ค์ด ํ์ด๋ฐ ๋ฑ์ ๋ํด ๋ ผ์ํ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง๋ง, ๊ทธ๊ฒ์ ์ง์ ์ ๋๋ค.
์์:
2017 asp.net์ ๊ธฐ๋ฅ A๋ฅผ ์ํฉ๋๋ค.
2018 netstandard๋ ๊ธฐ๋ฅ A๋ฅผ ๊ตฌํํฉ๋๋ค. ns์์ ๊ธฐ๋ฅ A๋ฅผ ์ป์ต๋๋ค.ํ์ด ๋งํ๋ ๊ฒ์ netcore๊ฐ netstandard๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ง ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
2017 asp.net์ ๊ธฐ๋ฅ A๋ฅผ ์ํฉ๋๋ค
2017 aspnet ํ์ ๊ธฐ๋ฅ A๋ฅผ ๊ตฌํํฉ๋๋ค. Asp.Net Core๋ netcore์์ ๊ธฐ๋ฅ A๋ฅผ ์ป์ต๋๋ค.
2018 netstandard๋ ๊ธฐ๋ฅ A๋ฅผ ๊ตฌํํฉ๋๋ค. ns์์ ๊ธฐ๋ฅ A๋ฅผ ์ป์ต๋๋ค.
๊ทธ๋ค์ด ํ์ด์ผ ํ ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
2017 aspnet ํ์ netstandard2.0์ ์ง์ํ๋ lib X์ ํ์ํ ๊ธฐ๋ฅ์ ๋น๋ํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ผ๋ก aspnet์ .netstandard๊ฐ ์คํ๋๋ ๋ชจ๋ ๊ฒ์์ ์๋ํ๋ฉฐ lib X๋ .NET full์์๋ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์๋ .net full์์ ์คํํ ์ ์์ต๋๋ค(๋จ์ง ๋๊ฒ ์ค์น๋ง ๊ฐ๋ฅ).
๋์ , ๊ทธ๋ค์ ์ด๊ฒ์ ํ์ง ์๊ณ lib X๋ฅผ .NET ์ฝ์ด๋ก๋ง ๊ฐ์ ํฉ๋๋ค(๊ทธ๋ ์ง ์์ผ๋ฉด ์ฒ์์ ์ด ์ค๋ ๋/๊ฒฐ์ ์ด ํ์ํ ์ด์ ). lib X๊ฐ CoreCLR ๊ธฐ๋ฅ์ ํ์๋ก ํ๋ ๋งค์ฐ ๊ณ ๊ธ์ธ ๊ฒฝ์ฐ Microsoft๋ ์ด๋ฌํ ๊ณ ๊ธ ๊ธฐ๋ฅ์ด .NET ์ ์ฒด CLR๋ก ์ด์๋์ง ์๋ ์ด์ ๋ฅผ ์๋ฌธํด์ผ ํฉ๋๋ค.
๋์ฒด๋ก MS๊ฐ Azure ๊ณ ๊ฐ์๊ฒ AWS ๋๋ Google ํด๋ผ์ฐ๋์ JVM/NodeJS ๊ธฐ๋ฐ ์ปจํ ์ด๋์ ๊ฒฝ์ํ ์ ์๋๋ก Azure์ ์ปจํ ์ด๋์์ ์ฌ์ฉํ ์ ์๋ ์คํ์ ์ ๊ณตํ๊ธฐ ์ํด ๋น ๋ฅด๊ฒ ์์ง์ด๋ .NET ์ฝ์ด/aspnet ์ฝ์ด๊ฐ ํ์ํ ์ ์น์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๊ทธ๋ค์ ๋น์ฆ๋์ค ๊ด์ ์์ ๋๋ ๊ทธ๊ฒ์ ์ดํดํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ด ๋ณด์ฌ ์ฃผ๋ ๊ฒ์ MS๊ฐ .NET ์ฝ์ด๋ฅผ ๋ฐ๋ผ์ก์ ์ ์์ ๋งํผ ์ถฉ๋ถํ ๋ฆฌ์์ค๋ฅผ .NET ์ ์ฒด์ ๋ฐฐ์นํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅธ ๋ฐ์ ์ ์ํด .NET ์ ์ฒด์ ๊ดํ ์ฐ์ ์์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ง๋ 2๋ ๋์ .NET ์ ์ฒด์ ์ถ๊ฐ๋ API์ ์์ ๋ณด์ญ์์ค. ํฐ ํ์ด ๊ทธ ์ผ์ ํ๊ณ ์๋ค๋ ๋ป์ ๋๊น?
์๋์.
Microsoft๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ธ SQL Server Enterprise๋ฅผ ํ๋งคํฉ๋๋ค. ๊ทธ๊ฒ์ ๋ฉ์ง ์ํธํ ๊ธฐ๋ฅ๊ณผ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. .NET Core์์๋ ์ง์๋์ง ์์ต๋๋ค. ๊ฐ๋น์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ ์ฌ ๊ณ ๊ฐ์ธ ๊ธฐ์ ์ .NET Core 2.0์ ์ฆ๊ฒ๊ฒ ํ๋งคํ์ญ์์ค.
'๋นจ๋ฆฌ' ์ด๋ํ๊ณ ์ถ์ ์๋ ์์ง๋ง ์ด๋ํ๋ ค๋ ๋ชฉ์ ์ง๋ฅผ ์์ ํ ์ดํดํ์ง ๋ชปํ๋ค๋ฉด ๋จผ์ ๊ฒฐ์ ํ๋ ๋ฐ 1-2๋ถ ์ ๋ ๊ฑธ๋ฆฌ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค.
์๊ฐํ๋ฉด ํ ์๋ก ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๊ฐ์ง๊ณ ์๋ ๋ฌธ์ ๋ ์ฐ๋ฆฌ๊ฐ .net๊ณผ asp.net ์ฌ์ด์ ์ค์ ๋๊ณ ์๋ค๊ณ ๋๋๋ค๋ ๊ฒ์
๋๋ค.
ํ์ฌ asp.net, asp.net ์ฝ์ด(.net) ๋ฐ asp.net ์ฝ์ด(core)๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฝ์ด๊ฐ ์๋์ง, ์ ์์ง ๋๋ ์์ ํ์ง ์ฌ๋ถ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ ๋๋ก ์ ๋ฌ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์ asp.net ๋ฐ asp.net ์ฝ์ด(.net)๊ฐ ๊ณ ์ฐฉ๋ ๋์ ํ์ ๊ณผ ์งํ์ด ๋ง์ง๋ง ๋ถ๋ถ์ผ ๋ฟ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์๋ํ์ง ์๊ณ lib๊ฐ netstandard2.0์์ ์๋ํ๋์ง ํ์ธํ ๋ฐฉ๋ฒ์ด ์๊ธฐ ๋๋ฌธ์ ์ ํ๋ก์ ํธ์์ ์ ์ฒด ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋งค์ฐ ์ํํฉ๋๋ค. ๋ฐ๋ผ์ asp.net(์ด์ ) ๋๋ asp.net ์ฝ์ด(์ด์ )๋ก ๋๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ๋ค ์ค๋๋ ๊ฒ์ด๋ฏ๋ก system.web๊ณผ ์ค๋๋ asp.net์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ ์๊ณ asp.net ์ฝ์ด๊ฐ ์ด์จ๋ EOL์ด๊ธฐ ๋๋ฌธ์ ๊ท์ฐฎ๊ฒ ํ ์ด์ ๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ฉ๊ฐํ ์ ํ ์ฝ์ด๋ง ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ ์ค๋๋์์ง๋ง ์์ ์ ์ธ system.web์ผ๋ก ์ด๋ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ํจ์ฌ ๋ ๋ถ์ด๋ ์ํ๊ณ์ ์์ํ ๊ฐํ ๊ฒ์ ๋๋ค.
์ถ์ : ๋๋ ์ด๊ฒ์ ํ์ฌ์ ๋๋๊ณผ ๊ฐ์ด ํํํ๊ณ ์์ต๋๋ค. ํด๋น asp.net ์ฝ์ด 1.x๋ 2.x์ ๋นํด "์ค๋๋๊ณ ๊ตฌ์"์ ๋๋ค. ์ฌ์ค์ด ์๋๋ผ ์ฌ๋๋ค์ด ๊ทธ๋ ๊ฒ ์๊ฐํ๋ ๊ฒ์ ๋๋ค.
@davidfowl
๊ฐ .NET ํ๋ซํผ์ด ์์ฒด ์๋๋ก ์ด๋ํ๋ ๊ฒฝ์ฐ ์ต์ .NET Standard๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ฆฌ๊ฒ ์ด๋ํ๋ ํ๋ ์์ํฌ๊ฐ ์์ ์ ๋ ์์ฃผ ์ํํ๊ฒ ๋ฉ๋๋ค.
์ด๊ฒ์ ์ด๋ฏธ ๋ฐ์ํ๊ณ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ๊ด์ฐฎ์ต๋๋ค. ๋ฒ์ ๋ฌธ์๋ ์ผ๋ฐ์ ์ผ๋ก _vNext_๋ก ์ฑ์์ง๋๋ค. ๊ด์ฐฎ์ต๋๋ค. ํ์ค์ ์ฆ๊ฐ์ํค๊ธฐ ์ ์ ๋ชจ๋ ํ๋ซํผ์ด ๋๋ฑํด์ง ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ๋ณด๋ค ์์ ์ ์๋ ํ์ค์ ๋ณด๊ณ ํ๋ซํผ์ด ๋ฐ๋ผ์ก๋ ๊ฒ์ ์ง์ผ๋ณด๊ณ ์ถ์ต๋๋ค. ์ฌ๋๋ค์ ์ ์์ ๊ตฌํ์ ์ํด ์ฐธ์ฌํ ์๋ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ASP.NET Core๊ฐ ๋ฆด๋ฆฌ์ค์ ํ์ค์ ๋์์ผ๋ก ํ๋ค๋ฉด ํ๋ซํผ๊ณผ ์ํคํ ์ฒ๊ฐ ์ ํ์ค์ ๊ตฌํํ๋ ์๊ฐ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค. ์๋ก์ด ํ์ค ๋ฒ์ ์ VS ์ ๋ฐ์ดํธ ๋๋ ํจํค์ง๋ฅผ ํตํด ์ ๊ณต๋ ์ ์์ต๋๋ค.
.NET Standard๊ฐ ์ปค๋ฎค๋ํฐ์์ ๊ณํํ ๋ ธ๋ ฅ์ฒ๋ผ ๋ค๋ฆฌ์ง ์์ง๋ง ๊ทธ๊ฒ์ด ์ ์๋๋ ๋ฐฉ์์ ๋๋ค. ๊ฒํ ๋ฅผ ํต๊ณผํ ๊ตฌํ๋ ๊ณ์ฝ์ ์ค๋ ์ท๊ณผ ๋น์ทํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฃผ์ ํ๋ก์ ํธ๊ฐ ์ด๋ฅผ ๋ชฉํ๋ก ํ์ง ์๋๋ค๋ฉด ์ถ์์ ๋ํ ๊ณํ์ด ๊ฑฐ์ ์์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋๊ฐ์ ์ผ์ ํ๋ค
์ค ์ข๋ค. ๊ณต์ ๋ ๋ถํ์ด ์ต๊ณ ์ ๋ถํ์
๋๋ค. ํ๋ซํผ/๊ตฌ์ฑ ํญ๋ชฉ์ด ์๋ Csproj ๋ฐ sln ํ์ผ์ ๋น๋ ์กฐํฉ์ด ํญ์ ์ ์ธ๋์ง ์๊ณ ์ ์ถ๋๊ธฐ ๋๋ฌธ์ ์ ๋ง ์ง์ฆ๋ฉ๋๋ค. ๋ฐ๋ผ์ VS๋ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ด ์ค์ํ๋ค๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋ด๊ฐ ์ค์ ๋ก ์กด์ฌํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ๋น๋ ์กฐํฉ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์ผ์ ํ๋ซํผ/๊ตฌ์ฑ ์กฐํฉ์ ์ ์ธํ ์๋ง ์๋ค๋ฉด ํ์ํ์ง ์์ ์ถ๊ฐ ์น์
์ด ์์ด์ผ ํฉ๋๋ค. csproj PropertyGroup
์์์์ Substring
์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ ์ ์์ฑ์ ๋จ์ํํ์ง๋ง ์ด๋ฌํ ์กฐ๊ฑด์ ๋น๋ ๊ตฌ์ฑ์ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ฏ๋ก ์ฌ๊ธฐ์ ์ ์ฒด ๋ฌธ์์ด ๊ฐ์ด ์์ด์ผ ํฉ๋๋ค. ์ด๋ฐ ์ข
๋ฅ์ ๋ฌผ๊ฑด์ ๊ทธ๋ ๊ฒ ๋ฒ๊ฑฐ๋กญ์ง ์์์ผํฉ๋๋ค.
์์งํ ์ง๋ฌธ(Microsoft๊ฐ ์๋ ์ ์ง๋ฌธ์ ๋๋ค)์ ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ๋ณด๋ค ํธํ์ฑ์ ์ ํธํ์ญ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ASP.NET Core๋ฅผ ์ ํํฉ๋๊น?
๊ฐ์ธ์ ์ผ๋ก, ์๋๋๋ค. ๋ด๊ฐ ํด์ผ ํ ์ผ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋ ํ, ํ ์คํธํ PITA๋ ์ด์ ์ด ๊ฑฐ์ ์๋ ํฐ ๋ ธ๋ ฅ์ด ์๋ ํ ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ๋ ๋ฐ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ ๊ฐ์ฅ ์ถ์ง๋ ฅ๊ณผ ์ ์ฌ๋ ฅ์ด ์๋ ๊ฒ์ ์ ํํ๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ Win32, COM, CORBA, ADO.NET, ์ฌ๋ฌ ๋ณด๊ณ ์์ง, ๋ค์ํ ์น API, CEF/Firefox/IE์ ๊ฐ์ ๋ด์ฅ ๋ธ๋ผ์ฐ์ (๋ฌผ๋ก ์ง์๋์ง ์๊ธฐ ๋๋ฌธ์ ์์ง๋ ์์)์ ๊ฐ์ ์ฌ๋ฌ ๊ธฐ์ ์ ๊ฑธ์ณ ํ๋ก์ ํธ๋ฅผ ์ํํด์ผ ํฉ๋๋ค. ์ฌ๋ฌ ๊ณต๊ธ์ ์ฒด๋ณ ์ฌํญ์ ์ ๊ฐ ๋ถ๋๋ฌ์ํ์ง ์๋๋ก ํ๊ฒ ์ต๋๋ค. ํ๋ฌ๊ทธ์ธ์ผ๋ก ํ ์ ์๋ ๊ฒ์ ๊ตฌํํ์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํธ์คํธ ์คํ ํ์ผ์์ ์ต์ ๊ณตํต ๋ถ๋ชจ์ ๊ฒฐํผํ์ต๋๋ค. ๋ง์ ๊ธฐ์ ์ ๋ค๋ฃจ๋ ๊ฒ์ ์ฑ๊ฐ์ ์ผ์ด์ง๋ง ์ ์ ์ ๋๋ค. ๋ง์ ๋ฐ์คํฌํ/์๋ฒ ํญ๋ชฉ์ด ๊ทธ๋ ์ต๋๋ค. ๋ด๊ฐ ์ํธ ์ด์ฉํ ์ ์๋ ๋๊ตฌ๋ง ์ฃผ์ด์ง๋ฉด ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ๊ธฐ์ตํ๋ ์ฌ์ฉ๋์ง ์๋ ํ๋ ์์ํฌ๋ ์ ์์๋ก ์ข์ต๋๋ค.
ํ์ง๋ง ASP.NET์ ์น ์คํ์ ์ผ๋ถ์ด๋ฉฐ ์น ์คํ์ ์ต์ ์ํ๋ฅผ ์ ์งํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์์ผ๋ฉฐ, ์ฌ์ฉํ์ง ์์ ํฉ๋นํ ์ด์ ๊ฐ ์๊ฑฐ๋ ํธํ๋์ง ์๋ ์ฌ๊ฐํ ์ฝ๋ ๊ธฐ๋ฐ์ด ์๋ ํ ์น ์์ ์ ์ต์ ํ๋ซํผ์ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ๋ถํํ ๊ธฐ๋๊ฐ ์์ต๋๋ค. ์น ํ์ค์ด ๋น ๋ฅด๊ณ ํฌ๊ฒ ๋ณํ๊ธฐ ๋๋ฌธ์ ์ต์ ์ ๋ณด๋ฅผ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ์น๊ณผ ๋ณด์กฐ๋ฅผ ๋ง์ถ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์๋ก์ด ๊ธฐ์ ์ ๊ณ ์ํ๊ณ ์์ผ๋ฉฐ ์ค๋๋ ์คํ์ ์๋ก์ด ๊ฒ์ ๊ตฌํํ๋ ๊ฒ์ ๋ค์ ๊ณ ํต์ค๋ฌ์ธ ์ ์์ต๋๋ค. ํนํ ASP.NET์ด PHP ๋ฐ Node์ ๊ฒฝ์ํ๋ ์ํฉ์์ ์ฌ๋ฅ๊ณผ ๊ด์ฌ์ ๋๊ธฐ ์ํด ๋ณด๋ค ํ๋์ ์ธ ์คํ์ ์ ์งํด์ผ ํฉ๋๋ค. ์น ์์ ์ ๋ ํ๊ณ ์ถ์ง๋ง ๋ถํํ๋ ์๋ก์ด UI ๊ธฐ๋์ ๋๋ค. ํ์ค์ ๊ณ ์ํ๋ฉด ๋ ์ธ๊ณ์ ์ฅ์ ์ ๋ชจ๋ ๋๋ฆด ์ ์๊ธฐ๋ฅผ ๋ฐ๋์ง๋ง ์ด๋ ์ ํ๋ ์๊ฐ ๋์ ์ ๊ณต๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ๊ฒฐ๊ตญ ๋ท ํ๋ ์์ํฌ๋ฅผ ๋์ฒดํ๋ ๋ทํ์ค์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ ํํ์ง ์์ต๋๋ค. ์ด๋ป๊ฒ ๊ทธ๋ฐ ๊ฒฐ๋ก ์ ๋ด๋ฆฌ์ จ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. .NET Standard๋ ํญ์ ์ด๋ฅผ ์ง์ํ๋ ๊ฐ ๋ฐํ์์ ํ์ ์งํฉ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ช ๋ฒ ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ๋๋ ์ฌ๊ธฐ์ ๋ฏธ์น ๊ฒ๋ค์ ๋์ง๊ณ ์ถ์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ ค๋ ๊ฒ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์๋ฌด โโ์๊ด์ด ์์ผ๋ฉฐ, ์ด ์์ ์์ ๋ชจ๋ ์ถ์ธก์ ๋๋ค. ์ฌ๋ฌ ์ฌ๋๋ค์ด .NET Standard ๋์ .NET Core๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ ์ด์ ๋ฅผ ๋ฌป์ต๋๋ค.
Span<T>
๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ์ด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด Buffer<T>
๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. String ๋ฐ Array๊ฐ 0 ํ ๋น์ด ํ์ํ ์ฌ๋ผ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์๋ก์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ์๋ฏธ์ผ ์ ์์ต๋๋ค.Span<char>
๋ฐ Span<byte>
๋ฅผ ์ฌ์ฉํ๋ Int, UInt ๋ฑ(TryParse)์ ๋ํ ์ค๋ฒ๋ก๋๊ฐ ๋ฐ์ํฉ๋๋ค.Span<byte>
๋ฅผ ์ฌ์ฉํ๋ ์๋ก์ด ์ธ์ฝ๋ฉ ๋ฃจํด์ผ๋ก ์ด์ด์ง๋๋ค.Buffer<T>
๋ฐ Span<T>
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ท ์ผํ ๋ฐฉ์์ผ๋ก ๋ํ๋ผ ์ ์์ผ๋ฉฐ Span<T>
๋๋ Buffer<T>
์ ์ฌ์ฉํ๋ ๋ฏธ๋ฆฌ ๊ณ ์ ๋ ๋ฒํผ๋ฅผ ์ ๋ฌํ ์ ์๋๋ก ๋คํธ์ํน ์คํ์ ์
๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํฉ๋๋ค. ํต์ฌ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์์ ํ ์ ์๋ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ๋ถ๊ธฐํ์ฌ ๋น์ทํ๊ฒ ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ASP.NET Core https://github.com/aspnet/Common/tree/dev/src/Microsoft.Extensions.Primitives ๋ด์ ์์ฒด BCL์ ๊ฐ์ง๊ณ ์๋ ์ด์ ์ ๋๋ค.
๊ทธ๊ฒ์ .NET์ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฐ๊น์ด ์์ผ ๋ด์ ์ฐ๋ฆฌ๊ฐ ์ํํ๋ ๊ฒ์ ๋ณผ ์ ์๋ ๋ฌด์์ ๋คํ์์ต๋๋ค.
@FransBouma
.NET Core๋ฅผ ๋ฐ๋ผ์ก๊ธฐ ์ํด .NET ์ ์ฒด์ ์ถฉ๋ถํ ๋ฆฌ์์ค๋ฅผ ๋ฐฐ์นํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๊ฒ ์งํํฉ๋๋ค. ์ง๋ 2๋ ๋์ .NET ์ ์ฒด์ ์ถ๊ฐ๋ API์ ์์ ๋ณด์ญ์์ค. ํฐ ํ์ด ๊ทธ ์ผ์ ํ๊ณ ์๋ค๋ ๋ป์ ๋๊น?
๊ทธ๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค. ๋ชจ๋ ๊ฒ์ด .NET Framework๋ก ์ง์์ ์ผ๋ก ํฌํ ๋์ง๋ง ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด .NET Core์์ ๋์ผํ ๋ณ๊ฒฝ์ ์ํํ๋ ๊ฒ๋ณด๋ค ์ํ์ด ์๋นํ ๋์ต๋๋ค. .NET Framework ์ ๋ฐ์ดํธ๋ก ์ธํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋จ๋๋ ๊ฒ์ ๋ชจ๋ ์ซ์ดํ์ง ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ํํ๊ธฐ ์ํด ๋ชจ๋ ์ข ๋ฅ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ช ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์์ง๋์ด๋ง์ ๊ฐํด์ง๋ ๋ชฉ ์กธ๋ฆผ์ ๋ฏฟ์ง ์์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๊ทธ ๋ชจ๋ ๊ธฐ๋ฅ์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค. ์ฆ, .NET Core๋งํผ ๋น ๋ฅด๊ฒ ์ด๋ ํ์ง ์์ผ๋ฉฐ Windows ์ผ์ ์ ๋ฐ๋ผ ์ ๊ณต๋๋ Windows ๊ตฌ์ฑ ์์์ ๋๋ค.
์ดํด๋ ํ์ง๋ง ์ค์ ๋ก ์ด์ํ๋ ๋ฅ๋ ฅ์ ์ฐจ์ด๊ฐ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋์ผํ EOL ์ ์ฑ ์ด ์ฌ์ ํ ์กด์ฌํฉ๋๋ค.
@davidfowl ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋๋๊ฐ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ธ์ ์ ๋ฌ ๋๋์ง๋ ๋งํ ๊ฒ๋ ์๊ณ ์. ์ฌ๋๋ค์ด ์ค์ ์์ ์ ์ํํ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ ํ์๋ ์์ง๋ง ์๊ฐํ๊ณ ์ฌ๋ฐ๋ฅธ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์์ต๋๋ค.
ํ์ฌ .NET Framework์์ ASP.NET Core๋ก์ ์ด์/์ฌ์ฉ์ ์์ํ ๊ฒฝ์ฐ ๋ค์ ์ธ ๊ฐ์ง ์ ํ ์ฌํญ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฏธ๋ฆฌ ์๊ณ ๊ณํํ ์ ์์๋ค๋ฉด 1.๊ณผ 2. ๋ชจ๋ ๊ด์ฐฎ์ ๋์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฌธ์ ๋ ๋ ๋์ ๋ชจ๋ ๊ฝค ๋ง์ ๋ฏธ์ง์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. A ๋์๊ด์ ์ด๋ป์ต๋๊น? ๋์๊ด B๋ ์ด๋ป์ต๋๊น? ๋ผ์ด๋ธ๋ฌ๋ฆฌ A๊ฐ ์ด์๋ ์์ ์ ๋๊น?
ํ์ฌ ๋ง์ ์ฌ๋๋ค์ด ์ ํ์ด ์ค์ ๋ก ๋ฌด์์ ์๋ฐํ๋์ง์ ๋ํ ๋ช ํํ ๊ทธ๋ฆผ ์์ด ์ ํ์ ๊ฐ์๋ฐ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@khellang (๊ทํ์ ๊ฐ์ ์๋ฃจ์ ์์)
@davidfowl
์์งํ ์ง๋ฌธ(Microsoft๊ฐ ์๋ ์ ์ง๋ฌธ์ ๋๋ค)์ ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ๋ณด๋ค ์์ ์ฑ๊ณผ ํธํ์ฑ์ ์ ํธํ์ญ๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ASP.NET Core๋ฅผ ์ ํํฉ๋๊น?
์ ์งํ ๋๋ต:
ํธ์: ์์ ์ฑ๊ณผ ํธํ์ฑ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ ์ข์ง๋ง ์ถ์๋ ๋ ๊ธฐ์กด ์ํ๊ณ ๋ฅผ ๊นจ๋จ๋ฆฌ๋ฉด ์ ๋ฉ๋๋ค.
ASP.NET Core๋ฅผ ์ ํํด์ผ ํ๋ ์ด์ : ๋จ์ํ OS X ๋ฐ Linux์์ ์คํ๋๊ธฐ ๋๋ฌธ์
๋๋ค.
.NET(์ด์ ๋ฐ/๋๋ ์ฝ์ด) ๋๋ Java์ ๊ฐ์ ์์ฝ์์คํ ์ ๊ธฐ์ ์์ ์ ํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ์ ์ ๋ด๋ฆด ๋ ํด๋น ํ๋ซํผ/์ํ๊ณ๋ฅผ ์ํ ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ ๋๋ค.
์๋ฅผ ๋ค์ด ์ฐ๋ฆฌ ๊ณ ๊ฐ ์ค ํ ๋ช
์ด ์ด๋ฏธ ASP.NET Core์ ๋ง์ ํฌ์๋ฅผ ํ์ต๋๋ค. .NET Core์ ์ด์ ๋ฐํ ๋ฐ ํ๋งค ์์ด๋์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๊ฐ ์์ฑ๋์์ต๋๋ค. ์ด ์๋ก์ด (ASP.)NET Core ์ฝ๋๋ ์ด๊ธฐ๋ถํฐ (ASP).NET Core์ ์ด๊ธฐ ๊ฐ๋ฐ ๊ณผ์ ์์ ํ๊ณผ ํจ๊ป (๊ณ ํต์ค๋ฝ๊ฒ) ์์ฑํ ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์งํฉ์
๋๋ค. ๋น์ฆ๋์ค ๋
ผ๋ฆฌ์.
๊ทธ๋ฆฌ๊ณ ์ด ์ฝ๋๋ Linux ์๋ฒ์์ ์คํ๋๊ณ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๊ฒ ์ธ์๋ ํ์ฌ ์ด๋ฌํ ์๋น์ค์ ํต์ ํ๋ ๋งค์ฐ ์ค๋๋ ์์ฉ ํ๋ก๊ทธ๋จ ์งํฉ์์๋ ์ฌ์ฉ๋๊ณ ์์ผ๋ฉฐ WPF/Windows Forms/C++/CLI ๋ฐ ์ผ๋ฐ C++(DirectX ํญ๋ชฉ ํฌํจ).
์ด์ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋ก์ด .NET Core ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ .NET Core ์ฝ๋์ ๋ํ ๋ช ๋ ๊ฐ์ ๋ ธ๋ ฅ์ ๋ํ ๊ณ ๊ฐ์ ํฌ์๋ฅผ ๋จ์ํ ์ฐจ๋จํ๋ ๊ฒ์ ๋๋ค. (์๋ก์ด ์๋ฒ์ ๋น์ฆ๋์ค ๋ก์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๊ตฌ์ถ๋์์ต๋๋ค).
์ง๋ฌธ์ผ๋ก ๋์๊ฐ์: ๊ธฐ์ ์ ์ง๋ 17๋ ๋์ .NET์ด ์ ๊ณตํ ๊ฒ๊ณผ ๋์ผํ ํธํ์ฑ๊ณผ ์์ ์ฑ์ ๊ธฐ๋ํ๋ฉด์ .NET Core๋ฅผ ".NET, ์ด์ XPlat์ฉ"์ผ๋ก ์ ํํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์งํ ๋งํด์ ์ด๊ฒ์ด .NET Core์ ์ ์ผํ ์ด์ ์ ๋๋ค. ๊ทธ๊ฒ์ ์ํ์ง ์๋๋ค๋ฉด Node.js ๋๋ Java๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๋ ๋ค ์ด์ .NET Core๋ณด๋ค ํจ์ฌ ๋ ์ฑ์ํ๊ณ XPlat์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ํ์๋ฉด .NET Core๋ project.json ๋ฑ์ ํตํด ์ด๊ธฐ ๋จ๊ณ์์ ๋ฉ์ง๊ณ ๋น ๋ฅด๊ฒ ์งํ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ".NET๊ณผ์ ํธํ์ฑ"์ ์ด์ ๋ก Msbuild ๋ฐ .csproj๋ฅผ ์ํด project.json์ ๋ค์ ๊ฐ์ ธ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ํํ ์ด ".NET๊ณผ์ ํธํ์ฑ"์ ์ด์ ๋ ์ฌ๋ผ์ง๊ณ .. ์ ํํ ๋ฌด์์ ์ํด?
@์๊ฐ
์ฐ์ , ํ๋ฅญํ ๋ต๋ณ!
ASP.NET Core๋ฅผ ์ ํํด์ผ ํ๋ ์ด์ : ๋จ์ํ OS X ๋ฐ Linux์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๊ณ ๋ณด๋ MVC 5 on mono๊ฐ ์ ๋ง ์ํ์ จ๋ ๊ฒ ๊ฐ์๋ฐ์?
์ง๋ฌธ์ผ๋ก ๋์๊ฐ์: ๊ธฐ์ ์ ์ง๋ 17๋ ๋์ .NET์ด ์ ๊ณตํ ๊ฒ๊ณผ ๋์ผํ ํธํ์ฑ๊ณผ ์์ ์ฑ์ ๊ธฐ๋ํ๋ฉด์ .NET Core๋ฅผ ".NET, ์ด์ XPlat์ฉ"์ผ๋ก ์ ํํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์งํ ๋งํด์ ์ด๊ฒ์ด .NET Core์ ์ ์ผํ ์ด์ ์ ๋๋ค. ๊ทธ๊ฒ์ ์ํ์ง ์๋๋ค๋ฉด Node.js ๋๋ Java๋ฅผ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๋ ๋ค ์ด์ .NET Core๋ณด๋ค ํจ์ฌ ๋ ์ฑ์ํ๊ณ XPlat์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ํ์๋ฉด .NET Core๋ project.json ๋ฑ์ ํตํด ์ด๊ธฐ ๋จ๊ณ์์ ๋ฉ์ง๊ณ ๋น ๋ฅด๊ฒ ์งํ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ".NET๊ณผ์ ํธํ์ฑ"์ ์ด์ ๋ก Msbuild ๋ฐ .csproj๋ฅผ ์ํด project.json์ ๋ค์ ๊ฐ์ ธ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ํํ ์ด ".NET๊ณผ์ ํธํ์ฑ"์ ์ด์ ๋ ์ฌ๋ผ์ง๊ณ .. ์ ํํ ๋ฌด์์ ์ํด?
์ด๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์ ์ ํต์ฌ์ ๋๋ค. ๊ทํ์ ํ๊ฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก:
์ด ์๋ก์ด (ASP.)NET Core ์ฝ๋๋ (ASP).NET Core์ ์ด๊ธฐ ๊ฐ๋ฐ ๊ณผ์ ์์ ํ๊ณผ ํจ๊ป (๊ณ ํต์ค๋ฝ๊ฒ) ์์ฑํ์ต๋๋ค.
๋น์ ์ ์ ๋ง ์ค๋๋ ASP.NET 4.x ํธํ์ฑ์ด ์๋ Linux์ ๊ธฐ์กด .NET Framework๋ฅผ ์ํ์ต๋๋ค. ์ ๋นํ ์์ฝ์ ๋๊น?
ํธ์: ์์ ์ฑ๊ณผ ํธํ์ฑ์ด ๊ฐ์ฅ ์ค์ํฉ๋๋ค. ์๋ก์ด ๊ธฐ๋ฅ์ ์ข์ง๋ง ์ถ์๋ ๋ ๊ธฐ์กด ์ํ๊ณ๋ฅผ ๊นจ๋จ๋ฆฌ๋ฉด ์ ๋ฉ๋๋ค.
.NET Core๋ Desktop์ด ํ์ฉํ์ง ์๋ ๋ณ๋ ฌ ์คํ์ ํ์ฉํ๋ฏ๋ก ์ค์ ๋ก Desktop๋ณด๋ค ๋ ์์ ์ ์ธ ํ๋ซํผ์ ๋๋ค.
๋ค์ ๋ฒ์ ์ Desktop์์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด ์ ์ฒด ์์คํ ์ ์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํด์ผ ํ๋ฉฐ, ์ด๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ ์ฑ๋ฟ๋ง ์๋๋ผ ํด๋น ์์คํ ์ ๋ชจ๋ ํญ๋ชฉ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๋จ์ผ ๋ชฉ์ ์ ์ํ ์ ์ฉ ์๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ด๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ๋์ผํ ์๋ฒ์์ ๋ค๋ฅธ ์๋๋ก ์ ๊ทธ๋ ์ด๋๋๋(๋๋ ์ ํ ์ ๊ทธ๋ ์ด๋ํ์ง ์๋) ๋ง์ ์ฑ์ด ์คํ ์ค์ธ ๊ฒฝ์ฐ์๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
@davidfowl ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
.NET Framework, UWP, .NET Core, ๋ชจ๋ ธ ๋ฑ์์ ์คํํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ ํ๋ ์์ํฌ์ ๋ฌ๋ ค ์์ต๋๋ค. ์ ํ ์ฌํญ์ ๋๋ค. Orleans๋ .NET Core์ ํจ๊ป ์ ๊ณต๋์ง ์์ต๋๋ค. ASP.NET Core๋ ๊ทธ๋ ์ต๋๋ค. ๊ทธ ์ ํ๋ค์ ํ๋์ด๋ฉฐ ๋์ผํฉ๋๋ค.
Orleans์ ๊ฒฝ์ฐ "2.0 Technical Preview" ๋น๋์์ .NET Standard 1.5๋ฅผ ์ง์ํ์ง๋ง ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด .NET Standard 2.0์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ํ์ฌ๋ก์๋ ์ฐ๋ฆฌ๋ฅผ ์ํ ์ฐจ๋จ๊ธฐ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค. ์ ๊ด์ฌ์ฌ๋ ๋ฏธ๋์ ๋ค์ด๋ฒ์ ์ค์ ๊ดํ ๊ฒ๋ฟ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ ์ฐจ์ด๋ ์ด๋ ์์ ์์ ๋ฐ์ํด์ผ ํฉ๋๋ค.
๐ @davidfowl & co, ๋ชจ๋์ ์ง๋ฌธ์ ๋ตํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
.NET Core๋ฅผ ๋ฐ๋ผ์ก๊ธฐ ์ํด .NET ์ ์ฒด์ ์ถฉ๋ถํ ๋ฆฌ์์ค๋ฅผ ๋ฐฐ์นํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ ๋น ๋ฅด๊ฒ ์งํํฉ๋๋ค. ์ง๋ 2๋ ๋์ .NET ์ ์ฒด์ ์ถ๊ฐ๋ API์ ์์ ๋ณด์ญ์์ค. ํฐ ํ์ด ๊ทธ ์ผ์ ํ๊ณ ์๋ค๋ ๋ป์ ๋๊น?
๊ทธ๊ฒ์ ์ฌ์ค์ด ์๋๋๋ค. ๋ชจ๋ ๊ฒ์ด .NET Framework๋ก ์ง์์ ์ผ๋ก ํฌํ ๋์ง๋ง ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์๊ณ ์๋ฏ์ด .NET Core์์ ๋์ผํ ๋ณ๊ฒฝ์ ์ํํ๋ ๊ฒ๋ณด๋ค ์ํ์ด ์๋นํ ๋์ต๋๋ค. .NET Framework ์ ๋ฐ์ดํธ๋ก ์ธํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋จ๋๋ ๊ฒ์ ๋ชจ๋ ์ซ์ดํ์ง ์์ต๋๊น? ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ํํ๊ธฐ ์ํด ๋ชจ๋ ์ข ๋ฅ์ ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ช ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ ์งํ๊ธฐ ์ํด ์์ง๋์ด๋ง์ ๊ฐํด์ง๋ ๋ชฉ ์กธ๋ฆผ์ ๋ฏฟ์ง ์์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๊ทธ ๋ชจ๋ ๊ธฐ๋ฅ์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค. ์ฆ, .NET Core๋งํผ ๋น ๋ฅด๊ฒ ์ด๋ํ์ง ์์ผ๋ฉฐ Windows ์ผ์ ์ ๋ฐ๋ผ ์ ๊ณต๋๋ Windows ๊ตฌ์ฑ ์์์ ๋๋ค.
๊ทธ๊ฒ์ aspnet์ด .net full์์๋ ์คํ๋ ์ ์๋๋ก netstandard2.0 ํจํค์ง๋ก ์์กดํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฆด๋ฆฌ์คํ ์ ์๋ค๋ ์ฌ์ค์ ๋ฌด์ํฉ๋๋ค. ๋ํ .NET ์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ํํ์ง ์์ ๊ฒ์ ์๋์ง๋ง ํ ๋ฒ์ ๋ณ๊ฒฝ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ฌด๋์ง ์ ์๋ ๋์ฐํ๊ฒ ์กฐ์งํ๋ ์ฝ๋ ๋๋ฏธ์ฒ๋ผ ๋ค๋ฆฌ์ง ์๋๋ก ํ์ญ์์ค.
์ฐ๋ฆฌ๋ ์ฌ์ ํ ๊ทธ ๋ชจ๋ ๊ธฐ๋ฅ์๋ ๋ถ๊ตฌํ๊ณ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค.
์, ๋ค๋ฅธ ๋ชจ๋ .NET ๊ฐ๋ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ ์ง๋ฆ๊ธธ์ ํํ๊ณ (ASPNET ํ์ด ์ด์ ์ ์ฌ๋ฌ ๋ฒ ํด์๋ ๊ฒ์ฒ๋ผ!) ๊ทธ๋ฐ ๋ถ๋ด ์์ด ์์ง์ด๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ฒฐ๊ตญ ๋ ์ง ์์ ๊ฒ์ ๋๋ค.
์ฆ, .NET Core๋งํผ ๋น ๋ฅด๊ฒ ์ด๋ํ์ง ์์ผ๋ฉฐ Windows ์ผ์ ์ ๋ฐ๋ผ ์ ๊ณต๋๋ Windows ๊ตฌ์ฑ ์์์ ๋๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ์ ํต์ฌ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ฃ ? .NET ์ฝ์ด ํ์ ๊ฑฐ๋ 'WinDiv'์ ํต์ ํ์ง ์๊ณ ๋ ์ํ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. Microsoft๊ฐ ๋ด๋ถ ์ ์ฑ ๋ฌธ์ ๋ฅผ ์ฌ๋ด์์ ํด๊ฒฐํ์ง ์๊ณ Windows ์ ์ฑ ์์ด .NET ์ ์ฒด + .NET ์ฝ์ด ๋ฒ์ ์ด ์ง์ /์ด๋ํ๋์ง ํ์ธํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
Btw, .NET Core 2.0 ์ฌ์ฉ์์๊ฒ SQL Server Enterprise์ ์ํธํ API๋ฅผ ํ๋งคํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค.
๋ํ ์ถ๊ฐํด์ผํฉ๋๋ค. ๋๋ ์ด ์ค๋ ๋๊ฐ ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ๊ด๋ จ๋์ด ์๊ณ ์ฌ์ ํ ์๋ฏผ์์์ ์ ์งํ๊ณ ์๋์ง์ ๋ํด ๊ฝค ๊ฐ๋ช ์ ๋ฐ์์ต๋๋ค โค๏ธ ๊ทธ๊ฒ์ ๋น์ ์ด ์ธํฐ๋ท์์ ๋งค์ผ ๋ณด๋ ๊ฒ์ด ์๋๋๋ค ๐ ์ด์ฉ๋ฉด .NET OSS ์ํ๊ณ๊ฐ ๊ฒฐ๊ตญ ์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์๋๊น์? ๐
์์กดํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ netstandard2.0 ํจํค์ง๋ก ๋ฆด๋ฆฌ์คํ์ฌ aspnet์ด .net ์ ์ฒด์์๋ ์คํ๋ ์ ์๋ค๋ ์ฌ์ค์ ๋ฌด์ํฉ๋๋ค.
๋ํ .NET ์ ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ํํ์ง ์์ ๊ฒ์ ์๋์ง๋ง ํ ๋ฒ์ ๋ณ๊ฒฝ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋ฌด๋์ง ์ ์๋ ๋์ฐํ๊ฒ ์กฐ์งํ๋ ์ฝ๋ ๋๋ฏธ์ฒ๋ผ ๋ค๋ฆฌ์ง ์๋๋ก ํ์ญ์์ค.
๊ทธ๊ฒ์ ํฌ๊ณ ์ค๋ซ๋์ ์กด์ฌํด ์์ต๋๋ค. ๋ชจ๋ ๋ ๊ฑฐ์ ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ผ๋ถ ๋ถํ์ ๋ค๋ฅธ ๋ถํ๋ณด๋ค ์ฐ์ํฉ๋๋ค. ์ฝ๋์ ์ ๋ขฐ์ฑ์ด ๋จ์ด์ง๋ ๊ฒ์ ์๋์ง๋ง ์ผ๋ถ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ค์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค. ๋ฒ ํ ๋๋ค์ด ํ ์์ญ์ ๋ฒ๊ทธ ์์ ์ด ๋ค๋ฅธ ๋ถ๋ถ์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ชจํธํ ์๋๋ฆฌ์ค๋ฅผ ์ด๋ป๊ฒ ๊นจ๋จ๋ ธ๋์ง์ ๋ํด ์ด์ผ๊ธฐํ ์ ์๋ ์ฌ๋ฏธ์๋ ์ด์ผ๊ธฐ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ข ์์ฑ ๊ฒฝ๊ณ๊ฐ ์ ์ ์๋์ง ์์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค. ์ ๋ฅผ ๋ฏฟ์ ํ์๋ ์์ต๋๋ค. referencesource.microsoft.com์ ์ฐพ์๋ณด์ธ์. ํ์ฌ ์์น ์ ๋ฐ์ดํธ๋ .NET Framework์ ๋ํ ์ ์ฌ์ ์ธ ๋จ ํ๋์ ์ ์ฌ์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด ๊ตฌ์ฑ ์ค์์น๋ฅผ ์ถ๊ฐํด์ผ ํ๋ ์ด์ ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ฌผ๋ฆฌํ์ ๋๋ค, ๊ทธ๊ฒ์ ๋จ์ง ๋นจ๋ฆฌ ์์ง์ผ ์ ์์ต๋๋ค.
์, ๋ค๋ฅธ ๋ชจ๋ .NET ๊ฐ๋ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ ์ง๋ฆ๊ธธ์ ํํ๊ณ (ASPNET ํ์ด ์ด์ ์ ์ฌ๋ฌ ๋ฒ ํด์๋ ๊ฒ์ฒ๋ผ!) ๊ทธ๋ฐ ๋ถ๋ด ์์ด ์์ง์ด๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๊ฒฐ๊ตญ ๋ ์ง ์์ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฐ๋ก ๊ฐ๊ธฐ๋ฅผ ์ข์ํฉ๋๋ค! ๊ฐ๋ฐ์๋ ๊ฒ์ผ๋ฅด๋ค ๐ . ์ฐ๋ฆฌ๋ ๋ํ .NET Framework๊ฐ ๋ํ๋ด๋ ๊ฒ์ ๋ฐฉํดํ์ง ์๊ณ .NET Core๋ฅผ ์ง์ ์ผ๋ก ๊ฐ์ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. Sparkle ๐ ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํด์ผ ํ์ ์๋ ์์ต๋๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ์ ํต์ฌ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ง์ฃ ? .NET ์ฝ์ด ํ์ ๊ฑฐ๋ 'WinDiv'์ ํต์ ํ์ง ์๊ณ ๋ ์ํ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. Microsoft๊ฐ ๋ด๋ถ ์ ์ฑ ๋ฌธ์ ๋ฅผ ์ฌ๋ด์์ ํด๊ฒฐํ์ง ์๊ณ Windows ์ ์ฑ ์์ด .NET ์ ์ฒด + .NET ์ฝ์ด ๋ฒ์ ์ด ์ง์ /์ด๋ํ๋์ง ํ์ธํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋ฌผ๋ฆฌํ์ ๋ํ ๋ค๋ฅธ ๋ต๋ณ์ ์ฝ์ด๋ณด์ญ์์ค.
Btw, .NET Core 2.0 ์ฌ์ฉ์์๊ฒ SQL Server Enterprise์ ์ํธํ API๋ฅผ ํ๋งคํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ ํ ๊ด์ฌ์ด ์์ต๋๋ค.
๊ทธ๊ฑด ์ ์ ๋ฌธ ๋ถ์ผ๊ฐ ์๋๋ฏ๋ก ๋ค๋ฅธ ์ฌ๋์ด ๋ต์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
@khellang lol ๊ทธ๊ฑด GitHub ๋ฌธ์ ๊ฐ ์์ง ํธ๋กค์ ์ซ์ดํ๋ MS๋ฅผ ๋์ด๋ค์ด์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ฌ Twitter๋ ์์ง downvote๊ฐ์๋ ๋งค์ฒด์ ๋๋ค. :)
@davidfowl
๋น์ ์ ์ ๋ง ์ค๋๋ ASP.NET 4.x ํธํ์ฑ์ด ์๋ Linux์ ๊ธฐ์กด .NET Framework๋ฅผ ์ํ์ต๋๋ค. ์ ๋นํ ์์ฝ์ ๋๊น?
์๋ ์ ๋ง. ์ฐ๋ฆฌ ํด๋ผ์ด์ธํธ๋ ๊ธฐ์กด .NET 4.x(์์ํ ๋น์์๋ 3.5์์) Windows ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ณด์ํ๊ธฐ ์ํด ์์ ํ ์/๋น๋๋(๋ง์ดํฌ๋ก) ์๋น์ค๊ฐ ํ์ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ๋น์ ์ด ๋ชจ๋ ๋ฐ์ง์ด๋ Core์ ๋ํด ๋ฒ ํ ๋ฒ์ ์ด ๋์์ ๋ DTO, ๋น์ฆ๋์ค ๋ก์ง, ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ASP.NET Core ์์ ์์ ํ ์๋ก์ด MVC๋ฅผ ์ํ ์๋ก์ด ์๋ฒ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์์ํ์ต๋๋ค. ๊ธฐ์กด 4.6 ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ณ๋ ฌ๋ก ์ฌ์ฉ๋์ด ์์ ํ ์๋ก์ด ์๋ฒ์ ํต์ ํฉ๋๋ค.
๋ํ ์์ ํ ์๋ก์ด ASP.NET Core ์๋ฒ ์ค ์ผ๋ถ๋ Linux์์๋ง ์คํ๋์ง ์๊ณ Topshelf(์ ์ฒด 4.6 ํ๋ ์์ํฌ ์์ ์์)๊ฐ ์๋ Windows ์๋น์ค๋ก๋ ์คํ๋ฉ๋๋ค.
๋ฐ๋ผ์ ๋ง์ ํฌ์๊ฐ ์ด๋ฃจ์ด์ก์ผ๋ฉฐ ์ด์ .NET Core 1์ ๊ฐํ ๊ฒ ๊ฐ์ต๋๋ค. 2๋ก ์ด๋ํ๊ณ netstandard๋ฅผ ์๋ ๊ฒ๋ ์๋ฏธํ๋ฏ๋ก ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฌ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ์กด ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ(์๋น์ค ๋ฐ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ฑ๋จ)์ ๋ ์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ .NET 4.6 ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฑํ๋ ์๋ก์ด (ASP) .NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ๋ฐ์คํฌํฑ .NET ๋ฒ์ ์ด ์ง์๋๋ ํ .NET Core ๋ฒ์ ์ ๋๋ค.
๋ฐ๋ผ์ .NET Core 1์ด .NET 4.6์ฒ๋ผ ์ง์๋๊ณ .NET 5๊ฐ ๋์ฌ ๋ .NET Core x๋ก์ ์ ํ ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก๊ฐ ์๊ณ .NET Core x ์ฝ๋๊ฐ .NET Core์์ ์คํํ ์ ์๋ ํ. NET 5๋ผ๋ฉด ๊ด์ฐฎ์ต๋๋ค.
@gingters asp.net ์๋น์ค์์ netstandard2.0์ ์๋ .net ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ libs๊ฐ ์๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋น์ ์ด netstandard2.0์ ์๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@davidfowl c++/cli dll์ด netcoreapp 2.0์์ ์๋ํฉ๋๊น? ์กฐ๋ง๊ฐ ๊ต์ฒด๋์ง ์์ ์ค๋๋ ํ์ฌ C++/CLI ์ด์ ๋ธ๋ฆฌ๊ฐ ์์ต๋๋ค.
@davidfowl ์ ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
ASP.NET Core 2.0์๋ ์์งํ ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์, ์ ์ด ๋งค์ฐ ํ๊ดด์ ์ธ ๋ณํ๊ฐ ์ง๊ธ ๋ฐ์ํฉ๋๊น?
@qrli C++/CLI๋ CoreCLR์์ ์๋ํ์ง ์์ต๋๋ค. ์ง์๋์ง ์๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. https://github.com/dotnet/coreclr/issues/659#issuecomment -91341753
1x์ 4๋
์ง์์ ์ ๊ณตํ๊ณ (2x์์ ์ต๋ํ ํฌํ
) 2x๋ก ๋น ๋ฅด๊ฒ ์งํํ์ญ์์ค. ๋๋ฆฐ ๋์ ๊ตํต์ ์ํ ๋์ ์๋์ฐจ์ ๊ณ ์๋๋ก๋ฅผ ์ํ ํ๋ผ๋ฆฌ. ์ฐ๋ฆฌ๋ .net ์ธ๊ณ ๋ฐ์์ ๋ง์ ๊ฒฝ์์ ํ๊ณ ์์ต๋๋ค.
ASP.Net Core๊ฐ ์ฑ๊ณตํ๋ฉด MS๊ฐ 4๋
๋์ 1x๋ฅผ ์ง์ํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๋๋ถ๋ถ ๋ฌธํ๊ฐ ๋ฐ๋ ๊ฒ์
๋๋ค.
@idg10 ์ ๋ง ์๋์์. 2.x๋ ์ฝ์ด์์๋ง ์ฌ์ฉํ ์ ์๋ ์ฑ๋ฅ์ด ํฌํจ๋ ๊ฑฐ์ 1.x์ ๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ์ Razor Pages๋ฟ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ฐ๋ผ์ ๋ฒ์ 1.x์ ์๋ค๊ณ ํด์ ๊ตฌ์ ๋ฒ์ ์ ์๋ค๋ ์๋ฏธ๋ ์๋๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ ์ ๋ฌ๋์ง ์์์ต๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์, ์ ์ด ๋งค์ฐ ํ๊ดด์ ์ธ ๋ณํ๊ฐ ์ง๊ธ ๋ฐ์ํฉ๋๊น?
์ด๊ฒ์ด ๊ฑฐ์ ์์ฝ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@ํ ๋ผํ ๋
๋๋ ๊ทธ๊ฒ์ด _์ง๊ธ_ ํ๋ ๊ฒ์ฒ๋ผ ์๋ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ง๊ธ 1์ ๋จธ๋ฌผ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ ์์ผ๋ก ๋์๊ฐ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ (ASP) .NET Core 2 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์
๊ทธ๋ ์ด๋ํ๊ธฐ๋ฅผ ์ํ ๋(๋๋ ๋ ๋์๊ฒ: ํ์๋ก ํ ๋)(์ฆ, 1์ด ์๋น์ค๋ฅผ ์ค๋จํ๊ณ ์ค์ํ ๋ณด์ ๊ตฌ๋ฉ์ด ์์ ๋ ๊ฒฝ์ฐ) ์
๊ทธ๋ ์ด๋ํ ์ ์๋ ๋ฌธ์ ์ ์ง๋ฉดํฉ๋๋ค. .NET ๋ฐ์คํฌํฑ ์ฑ์์ ์
๊ทธ๋ ์ด๋๋ ํจํค์ง๊ฐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
ํธ์ง/์ถ๊ฐ: ๊ธฐ์กด ๋ ๊ฑฐ์ ๋ฐ์คํฌํฑ ์ฑ์ ์ ํ ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก์ ์๋ ์๋ก์ด ๊ณ ์ .NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ ์๋ก์ด ์ ์ฒด .NET ํ๋ ์์ํฌ๊ฐ ์๋ ํ.
@gingters ์ดํด๊ฐ ์ ์๋๋ค์.
๋ฐ์คํฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard2.0์์ ์๋ํ๋ค๋ฉด ์ฝ์ด์์๋ ์คํ๋์ด์ผ ํฉ๋๋ค. (๋ง์ฝ ๊ทธ๋ค์ด wpf ๋ฌผ๊ฑด ๋ฑ์ ํธ์ถํ๋ค๋ฉด ๊ทธ๋ค์ ๋ฌผ๋ก ๊ทธ๋ ์ง ์์ ๊ฒ์
๋๋ค)
์ด ๊ฒฝ์ฐ asp.net core 2.0์ ์ฌ์ฉํ ์ ์์ด์ผ ํฉ๋๋ค.
๋ฐ์คํฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard2.0์ ์๋ ๊ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฝ์ด์์ ์ถฉ๋ํ๋ ๊ฒฝ์ฐ. ๊ทธ๋ฌ๋ฉด ์ 1.x๋ฅผ ์ ์งํด์ผ ํ๋์ง ์๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์งง์ EOL์ด ์ ๋ฌธ์ ์ธ์ง ์ ์ ์์ต๋๋ค.
2.x๊ฐ ๋๋ถ๋ถ ํต์ฌ ์ฑ๋ฅ ํญ๋ชฉ๋ง ํฌํจํ๋ค๋ ๊ฒ์ ์๊ณ ์๋ค๋ฉด 1.x๊ฐ ๋ ์ฝ๊ณ ๋ ๋์ ์ ํ์ด ๋ ๊ฒ์ ๋๋ค(1.x๋ 2.x์ ๋นํด ๊ตฌ์์ด ์๋์ ์๋ฏธํฉ๋๋ค). ๊ทธ๋ฆฌ๊ณ ๊ทธ 1.x๋ ํจ์น๋ฅผ ๋ฐ๊ณ *๋ ๋์ ์ง์๋ฉ๋๊น?
@hallatore ๋ฐ๋ ์ ๋๋ค. ์ด์ ์ ํ๋ฆฌ์ผ์ด์ : 4.6 ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ๋๋ Windows Forms, WPF, C++/CLI, ์ผ๋ฐ C++, DirectX, ์๋ฐฑ๋ง ์ค์ ์ฝ๋ ๋ฑ pp์ ํผํฉ.
.NET Core์์: ์๋ก์ด ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฉ, ์ฆ .NET Core ๋ฒ์ ์ Serilog ์ฌ์ฉ), ์ด๋ฌํ ์๋น์ค์ ๋ํ ์ถ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ + ์๋น์ค + ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ์๋น์ค๋ Linux ๋ฐ Windows ์๋น์ค๋ก ์คํ๋์ด์ผ ํฉ๋๋ค(ํ์ฌ๋ ์ ์ฒด .NET 4.6 ํ๋ ์์ํฌ์ Topshelf, ๊ทธ๋ฌ๋ Windows ์๋น์ค ์ง์์ด Core์ ๋์ ๋๋ ์ฆ์ ๋ณ๊ฒฝ๋ ์ ์์).
์ด์ ์๋ก์ด ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ถ์ํ ๋ฐ ์๋น์ค ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET 4.6 ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ฒ์ ๋ฐ์คํฌํฑ ์ฑ์ด ์คํ๋๋ ํ ์ ์ฒด .net ํ๋ ์์ํฌ์์ ์คํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ๊ทธ๋ ์ด๋ํ ์ ์์์ ์๋ฏธํฉ๋๋ค(์ ์ฒด ํ๋ ์์ํฌ๊ฐ ์๋ ํ ๋ฐ์คํฌํฑ์ด ์๋ํ ์ ์๋ ํ ๊ฝค ์ค๋ ์ง์๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ ์ ์์ต๋๋ค). ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋ผ์ง๋๋ค).
@gingters ์ฌ์ ํ netstandard _min(usable)_์ ๋์์ผ๋ก ํ๋ ์๋ฃจ์ ์ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ก์ ํธ๊ฐ ์๊ณ ASP.NET Core 2.0 ์ฝ๋์์ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ ๋ฟ๋ง ์๋๋ผ WPF, Xamarin, UWP ๋ฑ์์ ์ฌ์ฉํ ์ ์๋๋ก ํจํค์งํ ์ ์์ต๋๋ค.
MS ์ฌ๋ฌ๋ถ์ด ์ฌ์ ํ ์์ ์ ์ดํดํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ์ ๋ง ์ฌํ ์ผ์ ๋๋ค. ๋น์ ์ ์ฌ์ ํ โโ๊ทธ๊ฒ์ด ๋จ์ง API ๊ฒฉ์ฐจ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋น์ ์ ์ฌ์ ํ โโ์ฌ๋๋ค์ด ์์ ์ ์ฝ๋๋ฅผ ์์ ํ ์ ์๊ณ netcoreapp์์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค... ๋๋ ๋น์ ์ด ๊ตฌ๊ธ๋ณด๋ค ๊ธฐ์ ์ ํจ์ฌ ๋ ์ ์ดํดํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ฌ๊ณ ๋ณด๋ MVC 5 on mono๊ฐ ์ ๋ง ์ํ์ จ๋ ๊ฒ ๊ฐ์๋ฐ์?
@davidfowl ๋ด ๋ง์, ์ด์. ๊ทธ๊ฒ์ ๋ฌด์ํ๊ณ ์์งํ ๋ชจ์์ ์ธ ๋๋ต์ ๋๋ค. MS์ ๋๊ตฐ๊ฐ๊ฐ ๋ ์ด์ ๋จ์ผ ๊ฐ๋ฐ์๊ฐ Framework ASP์ ํ ๋น๋์๋์ง ํ์ธํ ์ ์์ต๋๊น? ๋๋ ์ฌ๊ธฐ์ ๋ฐ๋ณด๊ฐ ๋๋ ค๊ณ ํ๋ ๊ฒ์ด ์๋์ง๋ง, ๋๋๋ก ์ปค๋ฎค๋ํฐ์์ ์์ ๋จน๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด๊ฐ .Net Core์ ASP.Net Core๋ฅผ ๋์ผํ ์ ํ์ผ๋ก ๊ฐ์ฃผํด์ผ ํ ์ด์ ๊ฐ ์์ต๋๋ค. ์ง์ํ๋ผ๋ ๋ฉ์์ง๊ฐ ์ ํ ์์์ต๋๋ค. ํนํ Mono๊ฐ .Net Core ๋ฐํ ์ดํ์ Microsoft ์์ ๋ค์ด์๋ค๋ ๊ฒ์ ๊ณ ๋ คํ ๋. ๊ทธ๊ฒ์ ํญ์ .Net์ ๋ ์๊ณ ๋ฏผ์ฒฉํ xplat ๋ฒ์ ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ฐ์์ต๋๋ค. ๊ทธ๋ฟ๋ง ์๋๋ผ ์ฐ๋ฆฌ ๋ชจ๋๋ ASP.Net Core๊ฐ ์ค์ ๋ก ASP.Net 5์๊ณ ๋ชจ๋ ๊ณณ์์ ์๋ํ ์์ ์ด์๋ ์์ ์ ๊ธฐ์ตํฉ๋๋ค. ์ ์ฅ, ๊ทธ ๋ณํ๋ ๋ถ๊ณผ 1๋ ๋ฐ ์ ์ ์ผ์ด๋ค.
netstandard20์ ์์ฒด ํธ์คํ HTTP ์คํ ๋ฆฌ๊ฐ ํจ๊ณผ์ ์ผ๋ก "Kestrel 1.x๋ฅผ ์ฌ์ฉ"ํฉ๋๊น? ๋๋ Nancy ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ํฌ๊ฒ ๊ด์ฌ์ ๊ฐ์ง์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. ASP.Net 2.x๋ ๊ธฐ๋ฅ ๋ฉด์์ ์ ์ง์ ์ผ ์ ์์ง๋ง Kestrel 2๋ ์ฑ๋ฅ์์ ์ด์ ์ด ์์ด ๊ทธ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋์จ๋ค.
@davidfowl
๊ทธ๊ฒ์ ํฌ๊ณ ์ค๋ซ๋์ ์กด์ฌํด ์์ต๋๋ค. ๋ชจ๋ ๋ ๊ฑฐ์ ์์คํ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ผ๋ถ ๋ถํ์ ๋ค๋ฅธ ๋ถํ๋ณด๋ค ์ฐ์ํฉ๋๋ค. ์ฝ๋์ ์ ๋ขฐ์ฑ์ด ๋จ์ด์ง๋ ๊ฒ์ ์๋์ง๋ง ์ผ๋ถ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ค์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ญ๋๋ค. ๋ฒ ํ ๋๋ค์ด ํ ์์ญ์ ๋ฒ๊ทธ ์์ ์ด ๋ค๋ฅธ ๋ถ๋ถ์ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ชจํธํ ์๋๋ฆฌ์ค๋ฅผ ์ด๋ป๊ฒ ๊นจ๋จ๋ ธ๋์ง์ ๋ํด ์ด์ผ๊ธฐํ ์ ์๋ ์ฌ๋ฏธ์๋ ์ด์ผ๊ธฐ๊ฐ ๋ง์ด ์์ต๋๋ค. ์ข ์์ฑ ๊ฒฝ๊ณ๊ฐ ์ ์ ์๋์ง ์์ ๊ฒฝ์ฐ์ ๋ฐ์ํฉ๋๋ค.
ํฅ๋ฏธ๋ก์ด ๋๊ธ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. @davidfowl ๋ฐ @DamianEdwards ์ ํจ๊ป ๊ธฐ๋กํ๊ณ ์๋ ASP.NET 4์ ๋ ๊ฑฐ์ ์กฐ๊ฐ ์ค์์ ๋น์ ์ด ์ ๋ง๋ก ๋จ๊ธฐ๊ณ ์ถ์๋ ๊ฒ์ ๊ณจ๋ผ๋ด๋ ์ด์ NDC ํ์ ์ธ์ ์ ๋ณธ ๊ธฐ์ต์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด ์๊ฒฌ์ ๋ํ ์ฐ๋ฆฌ ์์ ์ ์ฝ๋๋ฒ ์ด์ค์ ๋ํ ๋ง์ ์ฌ๋๋ค์ ์ฐ๋ ค๋ฅผ ๋ฐ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ข ์ข ๋น์ฝํ ์ข ์์ฑ ๊ฒฝ๊ณ๋ก ์ ์ค๊ณ๋์ง ์์ ๋๊ท๋ชจ ๋ ๊ฑฐ์ ์์คํ ์ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค. .NET Core์ฉ์ผ๋ก ์ด๋ฌํ ์์คํ ์ค ์ผ๋ถ๋ฅผ ๋ค์ ์์ฑํ๋ ๊ฒ์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋น์ฆ๋์ค๋ ๊ทธ๋ ๊ฒ ๋ง์ ๋ณํ์ ์ํ์ ํ์ฉํ์ง ์์ต๋๋ค.
์ ๋ต์ด ๋ญ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ ์์ ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ํด ์ฐ๋ฆฌ๋ ๊ฐ๊น์ด ์ฅ๋์ ์ ์ฒด ํ๋ ์์ํฌ์ ASP.NET4/MVC5๋ฅผ ์ฌ์ฉํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. MVC5๊ฐ _๋ง์นจ๋ด_ GitHub๋ก ์ฎ๊ฒจ ์ก๊ธฐ ๋๋ฌธ์ ์ฌ๋์ ๋ฐ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ ๋์(์: ๋ ๋์ ๋น๋๊ธฐ ์ง์, ์ฑ๋ฅ ๊ฐ์ ๋ฑ) ๋ ๋์ ๊ฒ์ ๋ง๋ค๊ธฐ ์ํด ์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๊ธฐ๋ถํ ์ํฅ๋ ์์ต๋๋ค.
@qrli Enterprises๋ ์ฌ์ ํ Windows Server 2008 R2 IIS 7.5 ์น ํ์์ ์คํํ ์ ์ฒด .NET 4.5๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ์๋ฌด๋ ๊ทธ๋ค์๊ฒ์ ๊ทธ๊ฒ์ ๋นผ์์ง ์์ต๋๋ค.
@mattnischan
netstandard20์ ์์ฒด ํธ์คํ HTTP ์คํ ๋ฆฌ๊ฐ ํจ๊ณผ์ ์ผ๋ก "Kestrel 1.x๋ฅผ ์ฌ์ฉ"ํฉ๋๊น? ๋๋ Nancy ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ๋ํด ํฌ๊ฒ ๊ด์ฌ์ ๊ฐ์ง์ง ํ์ ํ์ง ๋ชปํ๋ฉฐ ๋๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
HttpListener
๋ netstandard20์ ์ผ๋ถ์ด๋ฏ๋ก netcore20๋ netcore20์ผ๋ก ์ด๋ํ์ฌ ๊ทธ ์ ๋ฉด์์ ์๋ฌด๊ฒ๋ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
HttpListener
๋ netstandard20์ ์ผ๋ถ์ด๋ฏ๋ก netcore20๋ ํฌํจ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ HttpListener
์์ ์ด๋น ๋์ผํ ์์ฒญ์ ๊ธฐ๋ํ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
@markrendle ์ฌ์ค์ ๋๋ค. ์ง๊ธ์.
๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ๊ณต์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: serilog, newtonsoft, autofac ๋ฑ)์์ ์ฌ์ฉํ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard_min(usable)์ ๋ํ ์ง์์ ์ค๋จํ ๋ ์ ์ํ์๊ฒ ์ต๋๊น? ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ฌ์ ํ ์ง์ํ๋ ์ต์ ๋ฒ์ ์์ ๊ฐ์ง๋ ์ฌ๊ฐํ ๋ณด์ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
@mattnischan
HttpListener๋ netstandard20์ ์ผ๋ถ์ด๋ฏ๋ก netcore20๋ ํฌํจ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ HttpListener์์ ์ด๋น ๋์ผํ ์์ฒญ์ ๊ธฐ๋ํ ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๊น?
๋ค, Nancy๋ .NETStandard 1.6์ด๋ฏ๋ก Core 2.0์์ ์ฌ์ฉํ๊ณ Kestrel 2.0์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ ๋์?
@gingters ๋น์ ์ด ๊ทธ๊ฒ์ ์ฌ ๋ ๋๋ ๊ทธ ๋ค๋ฆฌ๋ฅผ ๊ฑด๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ฏธ๋๊ฐ ๋น์ ์ ๋ฐฉํดํ๊ฒ ๋์ง ๋ง์ญ์์ค. ๋น์ ์ ํ์ฌ์ ๋ํญํ์ฌ ์ค๋๋ ๋น์ ์ ๋ฌด์ฅ์ํค๋ ๊ฒ๊ณผ ๊ฐ์ ์ด์ฑ์ ๋ฌด๊ธฐ๋ก ๋น์ ์ด ํ์ํ๋ค๋ฉด ๊ทธ๊ฒ์ ๋ง๋ฅ๋จ๋ฆด ๊ฒ์ ๋๋ค.
__~๋ง๋ฅด์ฟ ์ค ์์ฐ๋ ๋ฆฌ์ฐ์ค_
์ ์ง ๊ด๋ฆฌ ์์ฐ์ด ์๊ณ ์์ผ๋ก ๋ช ๋ ๋์ ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง ์๊ณ ์ฌ์ฉํด์ผ ํ๋ ์ํํธ์จ์ด๋ฅผ ์ ๊ณตํ ๋ ์ด๋ ๊ทธ๋ค์ง ์ ์ฉํ ์ฃผ๋ฌธ์ด ์๋๋๋ค.
์์ผ๋ก ๋ช ๋ ๋์ ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง ์์์ผ ํ๋ ๊ฒฝ์ฐ ํฅํ ๋ช ๋ ๋์ ์์กดํ๋ ๋์๊ด์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง๊ฐ ์ ์ค์ํฉ๋๊น?
@markrendle ์ด์ ์ฌ๋๋ค์ ์๋ช ์ด ์ํ๋ก์ธ ์ ์๋ ํ๊ฒฝ์์ ์ฌ์ฉ๋ ์ ์์ผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ฒ์ ์ด ์ถ์๋๊ธฐ ์ ์ ๋ฒ์ ๋ฐ๋ผ(์ ์ด๋ ์ผ๋ถ ๊ตญ๊ฐ์์๋) ์ ํํ ์ด๋ฌํ ๊ฒฝ์ฐ์ ๋ํ ๋น์ ํ๋กํ ์ฝ์ ์ ๊ณตํด์ผ ํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. .
๋ฐ๋ผ์ Kestrel๋งํผ ๋น ๋ฅธ ์น ์๋ฒ๋ฅผ ์ํ๊ณ Kestrel์ด ์๋ ์ ์ผํ ํน์ ์๊ตฌ ์ฌํญ์ด ์์ต๋๊น?
๋ค, Nancy๋ .NETStandard 1.6์ด๋ฏ๋ก Core 2.0์์ ์ฌ์ฉํ๊ณ Kestrel 2.0์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ ๋์?
@markrendle @benaadams ์๋์, ๋น์ ์ด ์คํดํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ํ ๋ฒ ๋ฐ๋ณด๊ฐ ๋๋ ค๋ ๊ฒ์ด ์๋๋ผ ์ ์ฒด๊ฐ ์๋ ASP.Net Core ์กฐ๊ฐ์ ๋ค๋ฅธ ๊ณ ๊ฐ์ด ์๋ค๋ ์ ์ ์ง์ ํ ๊ฒ์ ๋๋ค. ๋๋ Kestrel 2.0์ด ๋์ค๋ฉด ๊ทธ ์์ ์ฐ๋ฆฌ์ ํ๋ก๋์ ํ๋ซํผ์ ํธ์คํ ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์ ํ๋ก๋์ ํ๋ซํผ์ ํ๋์ Framework์ ์์ ์ ์์ต๋๋ค. netcoreapp20์ ๋์์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
Nancy๋ netstandard16์ด์ง๋ง Core 2.0 ์ธ์๋ Kestrel 2.0์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๋๋ ์ด๊ฒ์ด ๊ตฌ์ฒด์ ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ์๋ง๋ ๋๋ต์ ์ง์ ์ผ๋ก "Kestrel 2๋งํผ ๋น ๋ฅธ ํ๋ ์์ํฌ์์ ์๋ํ๋ ์์ ์ ์น ์๋ฒ๋ฅผ ์์ฑํ์ญ์์ค. Kestrel์ ASP.Net ์ ์ฉ์ ๋๋ค."์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๊ทธ๊ฒ์ด ๋ฉ์์ง๊ฐ ๋๊ธฐ๋ฅผ ์ซ์ดํฉ๋๋ค.
@gingters @gulbanana ๋๋ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์ถ์ ๋๋ ๋ฏธ๋ ๋ ์ง์ ๊ธฐ๋ณธ ํ๋ ์์ํฌ์ ์์ ๋ฒ์ ์ง์์ ์ค๋จํ๊ธฐ ๋๋ฌธ์ ๊ณ ์ ๋ ์ข ์์ฑ ์ธํธ๊ฐ ์๋ ๋ฐฐ์ก๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ป๊ฒ ์ค๋จ๋๋์ง ์ดํดํ์ง ๋ชปํฉ๋๋ค.
@mattnischan ๋ค, ๋ฌด์จ ๋ง์ธ์ง ์ดํดํ๊ณ ๊ทธ ๋๊ธ์ ์ญ์ ํ์ต๋๋ค :)
@์คํ ํ๋์จ
์๋ฒ์ ๋ฐ์คํฌํฑ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ต์ ๋ฒ์ ์ ASP.Net์ ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ ๋๊น?
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก .NET Standard๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ Desktop๊ณผ Core ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. .NET Standard๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ Desktop, Core, Mono, Unity, UWP, Tizen ๋ฑ์ ๋ฒ์ฉ ํ๋ซํผ ์ง์์ด ์์ต๋๋ค.
ASP.NET ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํ ํ์ผ์ ๋๋ค. ๋์ ์ ๋์๊ด์ด ์๋๋๋ค. ์ต์ข ์ถ๋ ฅ์ธ ASP.NET ์์ฉ ํ๋ก๊ทธ๋จ/์คํ ํ์ผ์ ํ๋ซํผ์์ ์คํ๋์ด์ผ ํฉ๋๋ค. ๊ฒฐ๊ตญ ๋ชจ๋ ํ๋ซํผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ASP.NET ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋๋ฏ๋ก ํ๋ซํผ๊ณผ ๋์ผํ ๋์์ด ์๋ ์ด์ ์ด ์์ต๋๋ค.
.NET Core๋ ํ๋ซํผ ๊ฐ ์ ์ฉ ๋ฒ์๊ฐ ๋๊ธฐ ๋๋ฌธ์ ์ข์ ํ๋ซํผ์ ๋๋ค. ๋ฐ์คํฌํ๊ณผ ๋๋ํ ์ค์นํ ์ ์์ผ๋ฉฐ ์ฑ๋ณ๋ก ๋ ๋ฆฝ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค. ์ ์ฒด ์์คํ ๊ณผ ๋ชจ๋ ์ฑ๋ณด๋ค๋
์ผ๋ถ ํ๋ชฉ์ ์ธ๋ถ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋์ Wyam ์ ์ ์ ์ฌ์ดํธ ์์ฑ์ ์ํด Razor๋ฅผ ์ฌ์ฉํฉ๋๋ค. Razor๋ ํ์ฌ .NET Standard 1.3์ด๋ฏ๋ก Core ์ธ๋ถ์์ ์ฌ์ฉํ๋ ๊ฒ์ ํ์ฌ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
์์์ ์ธ๊ธํ ๋ช ๊ฐ์ง ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
.NET Standard 2.0 ๊ธฐ๋ฅ ์ธํธ๋ฅผ ์ง์ํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ. ๊ทธ ์ค ๋ง์ ๋ถ๋ถ์ด ์ฑ์์ง ์ ์๋ ๊ณต๋ฐฑ์ด๊ธธ ๋ฐ๋ผ๋ฉฐ ์ด ๋ฌธ์ ์ ์์ ๋ถ๋ถ์์ MS๋ ์ฐ์ ์์๋ฅผ ์ ํ ์ ์๋๋ก ์ด๋ฌํ ๊ณต๋ฐฑ์ด ๋ฌด์์ธ์ง ๋ฌป๊ณ ์์์ต๋๋ค.
์๋ฅผ ๋ค์ด UWP ์ฑ์ ํฌํจ๋ ์น ์ฑ ์คํ ๊ทธ๋ฌ๋ Desktop์ด ์ฌ์ ํ ์ง์๋์์ง๋ง ๋ฒ์ 4.7.1๋ก ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ UWP๊ฐ ํ์ฌ 4.7.1์ ์ง์ํ์ง ์๊ณ ASP.NET์ด ์ง์ํ์ ๋ 4.7.2, 4.7์ด ํ์ํ ๋์ ๋์ผํ ์ํฉ์ ์๊ฒ ๋ฉ๋๋ค. 3 ๋ฑ. ๋ค๋ฅธ ํ๋ซํผ์์๋ ์ ๋ ์ก์ ์ ์๋ Sisyphean ์์ ์ ๋๋ค. ๊ทธ๋์ ๋ณ ์๋ฏธ ์์ด ๊ทธ๋ฅ ๋ฐ์๊ฒ ํ๋ ๊ฑธ๊น์?
๋ค, ๋ฌด์จ ๋ง์ธ์ง ์ดํดํ๊ณ ๊ทธ ๋๊ธ์ ์ญ์ ํ์ต๋๋ค :)
๊ฑฑ์ ๋ง์ธ์. ๐
@davidfowl
ASP.NET Core ํ์ ๋ฒ์ ์ ์ด์ ์ด๋ค ์ํฅ์ ์ค๋๊น? ์ฐ๋ฆฌ๊ฐ 3.0์์ .NET Framework ์ง์์ ์ค๋จํ๋ค๋ฉด(์ด ์ค๋ ๋์์ ์ฌ๋๋ค์ด ํํผํ๋ ๊ฒ์ฒ๋ผ ๋ณด์) ์๊ด์์ด ๋์ผํ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ์์ง ์์๊น์? ASP.NET Core 2.0 ์์ฉ ํ๋ก๊ทธ๋จ์ 1๋ ๋์ ํ๋ ์์ํฌ์์ ์คํ๋๋๋ก ์ด์๋์์ผ๋ฉฐ 3.0์ด ๋์ค๋ฉด ์ ๊ทธ๋ ์ด๋ํ ์ ์์ต๋๋ค. ์ด์จ๋ .NET Framework์์ ์คํ๋๊ณ ASP.NET Core 2.0์ด ์ข ๋ฃ๋ ๊ฒฝ์ฐ์๋ ์ง์๋๋ ASP.NET Core 1.1.x๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
"์ธ์ ๊ฐ ์ ์ฒด .net์ ์ค๋จํด์ผ ํ๋ ์ด์ ๊ฐ ์ง๊ธ ๋น์ฅ์ ์ ๋๋ค"๊ณ ๋งํ๋ ๊ฒ(๋ด๊ฐ ์ดํดํ๋ ๋๋ก)์ ์ค์ํ ์์ ์ ๋์น๊ณ ์์ต๋๋ค. ๋ง์ ๋ถ๋ค์ด ์ฝ์ด 2.0์ ์ถ์๋ฅผ ๊ธฐ๋ค๋ฆฌ์
จ์ ๊ฑฐ๋ผ ํ์ ํฉ๋๋ค. ์ ์ .net๊ณผ์ ํธํ์ฑ์์ ๋ง์ ๊ฐ์ ์ ๊ณต๊ฐ์ ์ผ๋ก ์ฝ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๋๋ฌด ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ฝ์ด๋ก์ ๋ง์ด๊ทธ๋ ์ด์
์ ์์ํ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ Core 2.0์ด ์ถ์๋ ํ์ Core์์ ํจ์ฌ ๋ ๋ง์ libs๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ asp.net ์ฝ์ด๋ฅผ ์ฝ์ด 3.0์ ๋ฐ์ธ๋ฉํ๋ ๊ฒ์ ์ํ๊ณ์ ํจ์ฌ ๋ ์ค๋ง์ค๋ฌ์ธ ๊ฒ์
๋๋ค. 3.0์ ์๊ฐ์ ์ด๊ฒ๋ค์ ์ฝ์ด๋ก์ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ ์ฐจ๋จํด์ผ ํ๊ธฐ ๋๋ฌธ์
๋๋ค.
์ง๊ธ์ ์ฌ์์
๋๋ค.
์ด์ ์ ๋๋ ๋ ๋จ๊ณ๋ก ์ฐ๋ฆฌ ํ๋ ์์ํฌ( @benaadams๊ฐ ์ค๋ช ํ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํ ์ด์ผ๊ธฐ)๋ฅผ core/asp.net ์ฝ์ด๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์์ํ๋ ๊ฒ์ ํ๊ฐํ๊ณ ์์์ต๋๋ค. ์น ํํธ(ํ์ฌ mvc/webapi์ ์์)๋ฅผ asp.net ์ฝ์ด๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ ์ ์ฒด๋ฅผ ์ ์งํฉ๋๋ค. .net์ ์ ํํ ๋ค์ ๋ชจ๋ ์ข ์์ฑ์ด ์ฝ์ด์ ํด๋นํ๋ ๊ตฌํ์ ๊ฐ์ง ๋ ์ฝ์ด์ ๋ค๋ฅธ ๋ชจ๋ ํญ๋ชฉ์ ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค. ํ์ฌ ์ฐ๋ฆฌ๋ฅผ ๊ฐ๋ก๋ง๋ ๊ฒ์ Oracle ADO ๊ณต๊ธ์์ Postgres ADO ๊ณต๊ธ์์ ๋๋ค(corefx์๋ ์์ง ํ๊ณ ๋ค์ง ์์ ๋ค๋ฅธ ๋นํธํ์ฑ์ด ์์ ์ ์์ต๋๋ค). ์ด์ ์ด ๊ณํ์ ์ฃฝ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์์์ Core ์ธ๊ณ์ ๋ชจ๋ ์๋ก์ด ๊ฒ์ ๋ฒ๋ฆฌ๊ณ ์ข ์์ฑ ๋ง์ด๊ทธ๋ ์ด์ ์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ MS์ ๋๊ตฐ๊ฐ๊ฐ "๋น ๋ฅด๊ฒ ์์ง์ด๋" ํ๋ซํผ์ด ํ์ํ๋ค๊ณ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@markrendle ๊ทธ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ค๋จ๋์ง ์์ต๋๋ค. ๋ฌธ์ ๋ ๋ค๋ฅธ ๋ฌธ์ ์
๋๋ค.
.NET Core 2๋ ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํ ์ง์์ ์ค๋จํ๊ธฐ ๋๋ฌธ์(๋ฒ์ 1์์๋ ์ ๋๋ก ์คํ๋์์ผ๋ฉฐ ์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธํ ๋ ์ด๋ฌํ ๊ธฐ๋ณธ ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ด ์ค๋จ๋ ๊ฒ์ผ๋ก ์์ํ์ง ์๋ Microsoft์ ์ ํ์), ์ข
์์ฑ์ผ๋ก ์ธํด ์ด ์๋๋ฆฌ์ค์ ๋ํ ์ง์์ด ์กฐ๋ง๊ฐ ์ค๋จ๋ ์ ์์ต๋๋ค.
๋๊ตฐ๊ฐ๊ฐ ์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋์์ ์ฌ๊ฐํ ๋ณด์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ผ๋ฉฐ ์ต์ ๋ฒ์ ์ด ๋ ์ด์ ๋ฐํ์์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋จ๋ ๋ฒ์ ์ ๋ํ ์
๋ฐ์ดํธ๊ฐ ๋ฐํ๋์ง ์์ต๋๋ค. ์ด์ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋งค์ฐ ๊ท์ ๋ ํ๊ฒฝ์์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ณด์ ๋ฌธ์ ๊ฐ ๊ฐ์ง๋์์ ๋ ์ ํํ ๋ฌด์์ ํ ๊ฒ์ธ์ง ์ค๋ช
ํ๊ณ ์ฌ๋๋ค์ด ๋ค์น๊ฑฐ๋ ์
ํ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํด๋น ์์ ์ฌํญ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๋ ๋น์ ๊ณํ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. "๊ธ์์, ์ฐ๋ฆฌ๋ ์๋ฌด๊ฒ๋ ํ ์ ์์ต๋๋ค"๋ผ๊ณ ๋๋ตํ๋ฉด ํด๋น ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฐฐ์กํ ์ ์๋ ํ์ฉ์ด ์ทจ์๋ฉ๋๋ค.
@gingters ๋ณด์ธ์, ์์ ์ ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ์ ๋ณด์ ํ์ฌ๊ฐ ์ด์๋๋ ์์ฅ์ ํน์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ์ ์ ํ์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ธ์์ ์ต์ ์ ์์ง๋ก ๋ชจ๋ ์ฌํ์ ๋ํด ์ค๋ช ํ ์๋ ์์ง๋ง, ์ธ์์ ๊ด๋ฃ์ ๊ท์ ๊ธฐ๊ด์ด ๋น์ ์ด ํ ์ ์๋ ์ฒ ํ๊ณ ์ถ์ด ํฉ๋๋ค. Microsoft๊ฐ Apple์ ์ ๋์ ์ธ์๋ก ์ธ์๋๊ณ .NET์ด ์์ ํ ์ค๋จ๋์ด Swift์ ์ ๋ฆฌํ๋ค๋ฉด? ํ๋งค ๋์ ๊ตญ๊ฐ ์ค ํ๋์์ ๊ฐ๋ ฅํ ์ํธํ๊ฐ ๋ถ๋ฒ์ด ๋๊ณ SHA256์ ํฌํจํ๋ ๋ชจ๋ ์ํํธ์จ์ด ์คํ์ด ๊ธ์ง๋๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? Nicolas ๋๋ James ๋๋ _insert-name-of-Autofac-maintainer-here_๊ฐ ํ์ฑ์ผ๋ก ์ด๋ํ์ฌ ์๋ถ ๋๋ถ๊ฐ ๋๊ธฐ๋ก ๊ฒฐ์ ํ๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ์๊ทน์ด ์ญ์ ๋์ด ๋์งํธ๋ก ๊ธฐ๋ก๋ ๋ฐ์ดํฐ์ ๋ชจ๋ ๋นํธ๊ฐ ์ง์์ง๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
ํ์ฌ๋ก์ JSON.NET์์ ์ค์ํ ๋ณด์ ๋ฌธ์ ๊ฐ ๋ฐ๊ฒฌ๋๋ ๊ฒฝ์ฐ(์: ๊ณต์ ์ ๋ฐ์ดํธ๊ฐ ์๋ ๊ฒฝ์ฐ) ์ํํ ์์ ์ ๋ํ ์ค์ ๋ต๋ณ์ผ๋ก ๊ฐ๋ฅํ ๋๋ต์ "JSON.NET์ ํฌํฌํ์ฌ ํจ์นํ ๊ฒ์ ๋๋ค"์ ๋๋ค. ์ด ์ง๋ฌธ์ James Newton-King์ด ์ด๋ค ์ด์ ๋ก๋ ๋ฌด๊ธฐ๋ ฅํด์ง๋ฉด ๋ฌด์์ ํ ๊ฒ์ธ์ง์ ๋ํ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋๋ค. ๊ทธ๋ฐ ์ข ๋ฅ์ ์์ฅ์์ ์ผํ ๋์ ์ด์ ๊ฒฝํ์๋ ๊ทธ๋ฌํ ์ข ๋ฅ์ ์ฌํ์ ๋๋นํ์ฌ ์์ค ์ฝ๋๋ฅผ ๋ ์ ํจํค์ง์ ๋ํ ์์คํฌ๋ก ๊ณ์ฝ์ด ์์์ต๋๋ค. ๊ทธ๊ฒ์ ๋นํ๋ฉด ์คํ ์์ค ํจํค์ง์ ๋ํด ๋ฌด์์ ํด์ผ ํ๋์ง๋ ์ฌ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ MS์ ๋๊ตฐ๊ฐ๊ฐ "๋น ๋ฅด๊ฒ ์์ง์ด๋" ํ๋ซํผ์ด ํ์ํ๋ค๊ณ ๊ฒฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
"๋น ๋ฅด๊ฒ ์์ง์ธ๋ค"๋ ํํ์ด ๊ณผ์ฅ๋ ๊ฒ์ผ ์ ์์ต๋๋ค. Full Framework์ ์ด์ ๋ฆด๋ฆฌ์ค ์ผ์ ์ ๋ฐ๋ผ ๋ฐฐ์ก์ "1~2๋ ์ถ๊ฐ ์ง์ฐ์ ์ถ๊ฐํ์ง ์๊ณ "๋ผ๊ณ ํํํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์น ์ธ๊ณ์์ ๋ฏธ์น ์๊ฐ์ ๋๋ค.
์ํฉ์ ๋น ๋ฅด๊ฒ ๋ณํํ๊ณ ์์ผ๋ฉฐ ํ๋ซํผ์ ๊ด๋ จ์ฑ์ ์ ์งํด์ผ ํฉ๋๋ค.
@davidfowl ๋ฐ @DamianEdwards ์ด ๋ชจ๋ ํผ๋์ ASP.NET Core 1.x๊ฐ .NET Framework์์ ์คํ๋ ์ ์๋ค๋ ์ฌ์ค์์ ๋น๋กฏ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด๊ฒ์ ASP.NET Core๊ฐ ASP.NET 4/MVC5์ ์งํ๋ผ๋ ๊ฐ์ ์ ๋ง๋ค์์ต๋๋ค. ์ฌ๋๋ค์ด ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ๋ชจ๋ ์ด์ (์๋ ๋ฐ ์๋ก์ด ๊ธฐ๋ฅ)์ ์ป์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ฌ ๋ง์ด๊ทธ๋ ์ด์ ํ๋๋ก ๋ง๋ญ๋๋ค.
๋ฐ๋ผ์ ์ด ๋ฌธ์ ์ ๋ํ ์ฅ๊ธฐ์ /์๊ตฌ์ ๋ต๋ณ์ ์ฅ๊ธฐ์ ์ง์๊ณผ์ ํ์ ํธํ์ฑ์ ์ํ๋ ์ฌ๋๋ค์ ์ํ ๋ต๋ณ์ผ๋ก ASP.NET 4/MVC5๋ฅผ ๋ค์ ํ๋ณดํ๋ ๊ฒ์ ๋๋ค (๊ทธ๋ฆฌ๊ณ ์ฝ๊ฐ์ ๊ฐ์ ๋ ์ ์ํ ์ ์์).
๊ทธ๋ฌ๋ฉด ASP.NET Core๋ ๋์ฝํ ์ ์๋ ์ฌ๋๋ค์๊ฒ ์์ฒญ๋ ์ด์ ์ ์ ๊ณตํ๊ธฐ ์ํด ๊ณผ๊ฑฐ์์ ํํผํ๋ ์๋ก์ด ํ๋ซํผ์ด ๋๋ ๋ฐ ์ง์คํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ์ ์์ (ASP).NET(Framework) ๋ฐ (ASP).NET Core๋ ๊ณ ๊ฐ์ด ์ ํํ ์ ์๋ ๋ ๊ฐ์ ํํํ๊ณ ๋๋ฑํ๊ฒ ์ ํจํ ๋๋ก๊ฐ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์ด๊ฒ์ด ์ฒ์๋ถํฐ ์ผ์ด ํ์ด์ผ ํ๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@markrendle ์, ์ด๊ฒ์ ๊ฐ์์ด์ง๋ง ์ฌํ๊ฒ๋ ๊ด๋ฃ์ ๋ ํ์ค์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์, ๋ชจ๋ ์ํฉ์ ๋ํด ์ค๋ช ํ ์๋ ์์ต๋๋ค. ์์ํ ์ ์๋ ๋ถ๋ค์๊ฒ๋ง.
๊ทธ๋ฆฌ๊ณ ์ด์ .NET Core 1์์ ์ ๋๋ก ์ง์๋์๋ ์์ ํ ํ๋ซํผ(.NET ์ ์ฒด ํ๋ ์์ํฌ)์ ์ญ์ ๊ฐ ์์ํ ์ ์์๋ ์ํฉ์ด ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ b) ๋ค๋ฅธ ์ข ์์ฑ์์ v1์ ๋ํ ์ง์ ์ค๋จ์ ์์ํ ์ ์์ต๋๋ค. "์, ๋์ค์ ๋ณด๋ค ๋นจ๋ฆฌ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์์ ํ ์ ์ ์์ต๋๋ค."
๊ทธ๋ฆฌ๊ณ ์, ์์ ์ฌํญ์ ๋ถ๊ธฐํ๊ณ ๋ฐฑํฌํ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ์๋ฃจ์ ์ค ํ๋์ด์ง๋ง ๊ฐ๋ฅํ ํ ํผํ๊ณ ์ถ์ ๊ฒ์ ๋๋ค. .NET Core ํ์ด "์ด๋ด. ๋ด, ์ฐ๋ฆฌ๋ ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํํ ์๊ฐ์ด ์์ผ๋ ๊ทธ๊ฒ์ ์์กดํ์ง ๋ง"์ ๊ฐ์ ๋ง์ ํ๊ฑฐ๋ ์ฒ์๋ถํฐ ๊ทธ๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ์ง ์์๋๋ผ๋ฉด ์ด ์ ์ฒด ํ ๋ก ๊ณ ๊ฐ์ด ์ฒ์๋ถํฐ .NET Core ์์ ์๋ก์ด ํญ๋ชฉ์ ํฌ์ํ๊ธฐ๋ก ์ ํํ์ง ์์๊ธฐ ๋๋ฌธ์ ํ์ํ์ง ์์ต๋๋ค.
@gingters .NET Core 2.x ์ด์์์ ASP.NET Core ์น ๋นํธ๋ฅผ ์คํํ๊ณ Core์ Full/UWP/๋ฌด์์ด๋ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต์ ํ๊ธฐ ์ํด .NET Standard 2.x๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์กฑ์ค๋ฌ์ด ์์ ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. . ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ .NET Core 2.x๋ง์ ์ํด .NET Standard 2.x์ ๋ํ ์ง์์ ์ค๋จํ๋ค๋ฉด ์ ์ฒด .NET์ ๋ํ ์ง์๋ ์ค๋จํ ๊ฒ์ด๋ฉฐ ์ด๋ ์ชฝ์ด๋ ๊ณค๊ฒฝ์ ์ฒํ๊ฒ ๋ฉ๋๋ค.
@markrendle 1x ์ดํ ๊ณต์ ํญ๋ชฉ์์ ์ฌ์ฉํด์ผ ํ๋ ASP.NET Core ๋นํธ ์ค ํ๋์ ์ค์ํ ๋ฌธ์ ๊ฐ ์๋ ์์ ๊น์ง๋ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
@gingters ์ด ์ข๊ฒ๋ ์คํ ์์ค์ด๋ฉฐ ํ์ํ ๊ฒฝ์ฐ ์์ ์ ์ง์ํ๊ฑฐ๋ ์ 3์์๊ฒ ๋น์ฉ์ ์ง๋ถํ ์ ์์ต๋๋ค!
@๋งํฌ๋ ๋ค ๋ฒํธ ์์ํ ๋ ๊ฑฐ์ ํ๋ก์ ํธ๋ ์ฃฝ์ ํ๋ก์ ํธ์ ๋๋ค. ์ํฐํ๋ผ์ด์ฆ ํ๋ก์ ํธ๋ ์ผ๋ฐ์ ์ผ๋ก ์์ญ ๋ ์ ์ ์ต์ ์ฝ๋/๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํ๋ ๋๊ท๋ชจ ํผํฉ ์ฝ๋๋ฒ ์ด์ค์ ๋๋ค. netcoreapp์ด๋ผ๋ ๊ฒ์ ํผํฉ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์ ๋ ์ด์ ๋ฉ์ง ์ ๋ฒ์ ์ผ๋ก ์ด๋ํ ์ ์์ง๋ง ์ด์ ๋ฒ์ ์ผ๋ก ์ ๊ฒจ ์์ต๋๋ค. ์ํฐ ms ์ง์ฅ ๋๋ฃ๋ ๊ธฐ๊บผ์ด "๋ด๊ฐ ๋งํ์ง..."๋ผ๊ณ ๋งํ ๋ค์ Google ์๋ฃจ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋๋ก ์ฐ๋ฆฌ๋ฅผ ์๋ฐํ ๊ฒ์ ๋๋ค.
๋๋ netfx๋ฅผ ์์ํ ์ง์ํ๋ ๊ฒ์ ๋ํด ๋ ผ์ํ๋ ๊ฒ์ด ์๋๋๋ค. ํ์ง๋ง ์ ๋ netfx๊ฐ ์ง๊ธ๋ถํฐ ์ต์ 2๋ ๋์ asp.net ์ฝ์ด์์ ์ง์๋์ด์ผ ํ๋ค๊ณ ๊ฐ๋ ฅํ๊ฒ ์๊ฐํฉ๋๋ค. 1.x๋ฟ๋ง ์๋๋ผ 2.x๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
@qrli "์ํฐํ๋ผ์ด์ฆ ํ๋ก์ ํธ ... ์ฝ๋/lib๊ฐ ํฌํจ๋ ๋๊ท๋ชจ ํผํฉ ์ฝ๋๋ฒ ์ด์ค๋ ์์ญ ๋ ์ ์ ์ต์ ๋ฒ์ ์ ๋๋ค." ์ํฐํ๋ผ์ด์ฆ ํ๋ก์ ํธ์์ ์๋ชป๋์ด ์ค์งํด์ผ ํ๋ ๋ชจ๋ ๊ฒ์ ๋๋ค. ์๋ก์ด ๊ธฐ์ ๋ก ์ธํด ์ฌ, ์ฒ ์ฌ ๋ฐ ๊ฑฐ๋ถ๋ก ๋ฌถ์ธ ์ ๋ง์ ํฐ ๊ณต์ ๋ ๋ง์ ์งํ ๋ฉ์ด๋ฆฌ๋ฅผ ๋์ง์ง ๋ชปํ๋ค๊ณ ๋ถํํ๋ ๊ฒ์ ์๋ก์ด ์ฐ์ ์ฉ ๋ ์ด์ ์ ๋จ๊ธฐ์ ๊ธฐ๋์ด ์ ๋จํ์ง ๋ชปํ๊ฒ ํ๋ ์์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์๋ค๊ณ ๋ถํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์์ ์ ์ค์ํ ๋ถ๋ถ.
@benaadams
"๋น ๋ฅด๊ฒ ์์ง์ธ๋ค"๋ ํํ์ด ๊ณผ์ฅ๋ ๊ฒ์ผ ์ ์์ต๋๋ค. Full Framework์ ์ด์ ๋ฆด๋ฆฌ์ค ์ผ์ ์ ๋ฐ๋ผ ๋ฐฐ์ก์ "1~2๋ ์ถ๊ฐ ์ง์ฐ์ ์ถ๊ฐํ์ง ์๊ณ "๋ผ๊ณ ํํํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ์น ์ธ๊ณ์์ ๋ฏธ์น ์๊ฐ์ ๋๋ค.
์ํฉ์ ๋น ๋ฅด๊ฒ ๋ณํํ๊ณ ์์ผ๋ฉฐ ํ๋ซํผ์ ๊ด๋ จ์ฑ์ ์ ์งํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๊ธฐ์ ์ /์ ์น์ ์ ํ์ด ์๋๋ผ ์ ์น์ /์กฐ์ง์ ์ ํ์ ๋๋ค. JVM/Java๊ฐ ์ด๋ป๊ฒ ์์ง์ด๋์ง ๋ณด์ญ์์ค. ๊ทธ๋ค์ด ์ ํ ์์ง์ด๊ณ ์๋ค๋ฉด. ์ฌ์ ํ ๊ด๋ จ์ฑ์ด ์์ง๋ง ์ค๋๋ .NET๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋๋ค์ด Java/JVM์ ์ ํํ๋ ์ด์ ๋ '๋น ๋ฅด๊ฒ ์์ง์ด๋ ๊ฒ'์ด ์๋๋๋ค. ๋ฐ๋๋ก. ๊ทธ๋ค์ '๋น ๋ฅธ ์ด๋'๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ Java/JVM์ ์ ํํฉ๋๋ค. 1-2๋ ์์ ํฌ์๊ฐ ๋ญ๋น๋์ง ์๋ ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๋ ํ๋ซํผ์ ๋๋ค.
MS๊ฐ .net์ ์์ ํ ๋น ๋ฅด๊ฒ ์ด๋ํ๋ ค๋ ๊ฒฝ์ฐ ๋น ๋ฅด๊ฒ ์ด๋ํ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๊ทธ๊ฒ์ ์์ ํ๊ณ ๋ฌด์์ ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ .net full์ ํ์ฌ ์ํ์ ๋ํด '์ถฉ๋ถํ' ์ถฉ๋ถํฉ๋๋ค.
MS๋ ์๋ ๋์ ์ด์ ์์์ ์ ์ ์๋ค๊ฐ ์ด์ ๊ฐ์๊ธฐ ์ฑ๋ฅ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์๋ ฅ๊ณผ ๊ฐ์ ๊ฒ์ด ์ค์ํฉ๋๋ค(์์ฌํ ์ฌ์ง๊ฐ ์์ต๋๋ค). ๋ฐ๋ฉด JVM ํ ์ง์์๋ ๋ฐํ์์ ํน์ ์ธก๋ฉด์ ๋ํ ํฌ์๊ฐ ๋ง์ ๊ธฐ๊ฐ ๋์ ์ํ๋์์ต๋๋ค. ๋ช ๋ ์ด ์ง๋๋ฉด ๋ณด์์ ๋ฐ์ ์ ์์ต๋๋ค.
ํด๊ฒฐ์ฑ ์ด ๋ฌด์์ธ์ง ๋จ๊ธฐ์ ์ผ๋ก๋ ๋ชจ๋ฅด์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก .NET์ ๋ ๊ฐ์ ์ฃผ์ ๋ถ์(.net์ Windows๋ก ๊ฐ๋ ์ฐจ ์๊ณ .net ์ฝ์ด๋ devdiv๋ก)์ ๊ฑธ์ณ ๋ถ๋ฆฌ๋ ์ํ๋ก ๋จ๊ฒ ๋ฉ๋๋ค. ๊ณ ์ฉ์ฃผ๋ ์ฐ๋ฆฌ ์ธ๋ถ์ธ์๊ฒ ์ข์ ์ง์กฐ๊ฐ ์๋๋๋ค.
์ฌ๊ธฐ์์ ๋ง์ ์์ ์ด ๋ง๋ค์ด์ง๊ณ ๋ชจ๋๊ฐ ๋ค๋ฅธ ์ฌ๋์ ๊ด์ ์ ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ง๋ง "๋๊ธฐ์ ์ ๊ทธ๋ ์ง ์์์ผ ํฉ๋๋ค"์ ๊ฐ์ ์๋ฃจ์ ์ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ์ค๋ํ๋ค ํด๋ ๋๊ธฐ์ ์ด๊ธฐ ๋๋ฌธ์ 20๋ ์ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค.
@kolectiv ๊ทธ๊ฑด ์ฌ์ค์ด์ง๋ง, ๊ธฐ์ ์ด ๊ฐ์๊ธฐ ๊ธฐ์ ์ด ๋์ง ์๋๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ธ๋ค๊ณ ํด์ ๊ทธ๋ฌํ ํ๋์ ์ ๊ทน์ ์ผ๋ก ์ฅ๋ ค/ํ์ฑํํด์ผ ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
๋ํ _my_ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ ๋๋ฆฌ๊ฒ ์คํ๋๊ณ ํธ์คํ ๋น์ฉ์ด ๋ ๋ง์ด ๋ค์ด์ผ ํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
ASP.NET Core 1.x(EF6, NHibernate, NServiceBus) ๋ฐ man์์ .NET 4.x๋ฅผ ์ฌ์ ํ ๋์์ผ๋ก ํ๋ ๋ง์ด ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด์์ฑ ๋ถ์์ ์คํํ๋ฉด ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ netstandard20
์ ๋์์ผ๋ก ํ ์์กฐ์ฐจ ์์ต๋๋ค. netstandard20
.
๋ฆฌ๋ธ | ํผ์ผํธ
---------- | ----------
EF6 | 62.74
์ต๋ ์ ์ ๋ชจ๋ | 67.39
N์๋น์ค๋ฒ์ค | 65.68
๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ ๋๋ฝ๋ API์ ํฐ ๊ฒฉ์ฐจ๊ฐ ์์ต๋๋ค. EF Core๋ ์ฌ์ ํ EF6๊ณผ ํฐ ๊ฒฉ์ฐจ๊ฐ ์์ผ๋ฉฐ EF6์ ์กด์ฌํ์ง ์๋ ์ฃผ์ ๊ธฐ๋ฅ์ด ์์ ๋ ์ฌ์ ํ NHibernate๋ฅผ ์ฌ์ฉํฉ๋๋ค. NServiceBus๋ ๋ฉ์์ง์ ์ํํ๋ ๋ชจ๋ ํ๋ก์ ํธ์์ ์ฌ์ฉํฉ๋๋ค.
์ํด.
@๋งํฌ๋ ๋ค
"์ํฐํ๋ผ์ด์ฆ ํ๋ก์ ํธ ... ์ฝ๋/lib๊ฐ ํฌํจ๋ ๋๊ท๋ชจ ํผํฉ ์ฝ๋๋ฒ ์ด์ค๋ ์์ญ ๋ ์ ์ ์ต์ ๋ฒ์ ์ ๋๋ค." ์ํฐํ๋ผ์ด์ฆ ํ๋ก์ ํธ์์ ์๋ชป๋์ด ์ค์งํด์ผ ํ๋ ๋ชจ๋ ๊ฒ์ ๋๋ค. ์๋ก์ด ๊ธฐ์ ๋ก ์ธํด ์ฌ, ์ฒ ์ฌ ๋ฐ ๊ฑฐ๋ถ๋ก ๋ฌถ์ธ ์ ๋ง์ ํฐ ๊ณต์ ๋ ๋ง์ ์งํ ๋ฉ์ด๋ฆฌ๋ฅผ ๋์ง์ง ๋ชปํ๋ค๊ณ ๋ถํํ๋ ๊ฒ์ ์๋ก์ด ์ฐ์ ์ฉ ๋ ์ด์ ์ ๋จ๊ธฐ์ ๊ธฐ๋์ด ์ ๋จํ์ง ๋ชปํ๊ฒ ํ๋ ์์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์๋ค๊ณ ๋ถํํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์์ ์ ์ค์ํ ๋ถ๋ถ.
์, ๊ทธ ์ฑ๊ฐ์ ๊ธฐ์ ๊ณผ ๋๊ท๋ชจ ์กฐ์ง์ ๋ค๋ฅด๊ฒ ์ผ์ ํ๋ผ๊ณ ๋งํฉ์๋ค. ์ ์ ์ ๋์ผ์ญ์์ค! ์งํ ํ์๋ฅผ ๋ง์๋ผ! ๊ทธ๋ ๊ฒ ํ๋ฉด ๊ทธ๋ค์ด ๊นจ์ด๋ ๋ฃ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ค, ์ ๊น, ๊ทธ๊ฑด ๋์์ด ๋์ง ์์ ๊ฒ๋๋ค. ๊ทธ๋ค์ ์ด๋ฏธ ๊ทธ๊ฒ์ ์๊ณ ์์ง๋ง ๋น์ ์ด ์ ๊ฒฝ ์ฐ์ง ์๊ฑฐ๋ ๋น์ ์์ ์ ์ฃผ์ฅ์ ๋ฌด์ํ๊ธฐ ์ํด ๋ง์ ์ผ์ ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ณด์ธ์, ์๋ฌด๋ '์๋ก์ด ๊ธฐ์ : ๋์๋ค!'๋ผ๊ณ ๋งํ์ง ์์ต๋๋ค. ์๋ก์ด ๊ธฐ์ ์ด ๊ฐ์ ธ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊นจ๋ซ์ง ๋ชปํ ์ฑ ์๋ก์ด ๊ธฐ์ ์ ์ถ๊ตฌํ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์ต์ ๋นํธ๋ก ์์ ํ๋ ๊ฒ์ ์ข์ํ๊ณ ์ค๋๋ cruft์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค. ๋๊ฐ ๊ทธ๊ฒ์ ์ํ๊ฒ ์ต๋๊น? ๊ทธ๋ฌ๋ ํ์ค์ ๋ค๋ฅธ ์ด์ผ๊ธฐ๋ฅผ ํฉ๋๋ค. ์ต์ ๋นํธ๋ก๋ง ์์ ํด์ผ ํ๊ณ ์ค๋๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋๋ค๋ฉด ์ข์ต๋๋ค! ์ฌํ๊ฒ๋ ์ฐธํธ์์ ์ผํ๋ ๋๋ก ์ ๋ค๋ฅธ ํ์ค๊ณผ ํจ๊ป ์ด์์ผ ํฉ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ํ์ค์ ๋ฐ๊ฟ ์ ์๊ณ , ๋ค๋ฅธ ๋ฏธ๋๋ฅผ ๋ง๋ค ์๋ ์๊ณ , ํจ๊ป ์ผํด์ผ ํ๋ค๋ ์ฌ์ค์ ์ต์ํ ์ธ์ ํ๋ค๋ฉด ๊ทธ๊ฒ์ ๋น์ ์๊ฒ ์ ํฉํ ๊ฒ์ ๋๋ค.
@markrendle ๋ฌด์์ ์ ์ํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. 1,500๋ง ์ค์ ์๋ํ๋ C# ์ฝ๋๋ฅผ ๋ฒ๋ฆฌ๊ณ ์๋ก ์์ฑํ์๊ฒ ์ต๋๊น? ์ฐ๋ฆฌ๋ netstandard 2.0์ผ๋ก (์ฒ์ฒํ) ์ ํํ๊ณ Span ๋ฑ๊ณผ ๊ฐ์ ๊ฒ์ ์ก์ธ์คํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋ผ์ง๋ง ์ด์ ๊ฐ์ ๋ฌธ์ ๋ก ์ธํด ๊ทธ๊ฒ์ด ํ๋ช ํ ๊ฒ์ธ์ง ์์ฌ์ค๋ฝ์ต๋๋ค.
์ฐ๋ฆฌ๋ Linux ์ง์์ ์ํ์ง๋ง ์ด๊ฒ์ ๋ถ๊ธฐ์ ์ฒ๋ผ ๋๊ปด์ง๋๋ค. ๋๋ netstandard๊ฐ ๊ฐ์ฅ ์ง๋ณด๋ ๊ตฌํ์ผ๋ก ๋์๊ฐ๊ณ ๊ทธ ๋ค์ ํ๋ ์์ํฌ์ ๊ฐ์ ๊ฒ๋ค์ด ๋ฐ๋ผ์ก์ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ง๋ง ์ ์ด๋ ์ฐ๋ฆฌ๋ ๊ทธ๋ ๊ฒ ํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค.
@FransBouma ๊ทธ๋ผ ๊ธฐ์ ์ด ๋ฉ์ฒญํ ์ง์ ํ๋ ค๊ณ ํด์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ณ ํต์ ๋ฐ์์ผ ํฉ๋๊น? ์๋ฐฑ๋ง ๋ฌ๋ฌ ๊ท๋ชจ์ ๊ณต๊ณต ๋ถ๋ฌธ ํ๋ก์ ํธ๊ฐ ์์ง ์ค๋น๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ข์ ๊ฒ์ ์ป์ ์ ์์ต๋๊น? ์ด๋ป๊ฒ ์๋ํฉ๋๊น?
@markrendle ๊ณ์ ์๋ํ๋ ์ฝ๋๋ฅผ ์ํ๋ ๊ฒ์ด ์ด๋ฆฌ์์ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๊ทธ๋ค์ '๋น ๋ฅธ ์ด๋'๊ณผ ๊ด๋ จ๋ ๋ชจ๋ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ Java/JVM์ ์ ํํฉ๋๋ค. 1-2๋ ์์ ํฌ์๊ฐ ๋ญ๋น๋์ง ์๋ ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๋ ํ๋ซํผ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ํ System.Web์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Windows์ ๊ตฌ์์ก๊ธฐ ๋๋ฌธ์ ์ ๋ ์ฌ๋ผ์ง์ง ์์ ๊ฒ์ ๋๋ค. ๋น์ ์ ๊ทธ๋ณด๋ค ํจ์ฌ ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์์ต๋๋ค.
ASP.NET ์ฝ์ด 1.x -> ASP.NET ์ฝ์ด 2.x; ๋ชจ๋ API๋ ๊ฑฐ์ ๋์ผํฉ๋๋ค. ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ .NET Framework์ ๋ํ ์ง์์ ์ค๋จํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ ์๋ ์๋ฒ๋ฐ๊ฟ์ ๐ฑ
ASP.NET Core 1.x๋ .NET Core 2.x ๋ฐ .NET Framework์์ ์คํ๋๋ฉฐ .NET Standard 2.x(.NET Core 2.x๋ฅผ ํตํด)๋ฅผ ์ง์ํฉ๋๋ค. ASP.NET Core 2.x์ ๋์ผํ API๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋๋ค๋ ๋ฆด๋ฆฌ์ค์ ๋๋ค.
ASP.NET Core 2.x๋ ์ค๋จ ๋ฆด๋ฆฌ์ค์ ๋๋ค. ์ฌ์ ํ .NET Standard 2.x(.NET Core 2.x๋ฅผ ํตํด)๋ฅผ ์ง์ํ๋ฉฐ ASP.NET Core 1.x์ ASP.NET Core 2.x ๊ฐ์ API ์ธก๋ฉด์์ ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ .NET Framework๋ฅผ ์ญ์ ํฉ๋๋ค.
๋์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
netstandard3.0
(2.x์ผ ์ ์์)์ ๊ฐ์ ์์
์ ์งํํ๊ณ netstandard ๋ฒ์ ์ ๋ ๋น ๋ฅด๊ฒ ๋ง๋ญ๋๋ค. ๋ถ๊ธฐ์ ํ ๋ฒ์ฒ๋ผ.netstandard3.x
๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ค์ ์ ํํ ์ ์์ต๋๋ค. ์ต์ ํ์ค์ด ์๋์ด๋ ๋ฉ๋๋ค.์ฌ์ฉ๋ ๋ชจ๋ ํญ๋ชฉ์ด netstandard์ ์ผ๋ถ์ผ ํ์๋ ์์ง๋ง ์ต์ํ ASP.NET Core 2.x๋ ๋ค๋ฅธ ํ๋ ์์ํฌ๊ฐ ๊ฒฐ๊ตญ ์ฌ์ฉํ ํ์ค์ ๋์์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋์ ์๊ฐ์ผ ์ ์์ต๋๋ค.
๊ทธ๋ฅ ์คํ๋ณผ๋ง. ๋๋ ์ด๊ฒ์ด ์ ๊ธฐ๋์๋ค๊ณ ํ์ ํฉ๋๋ค.
@bencyoung ์ ๋ ์ ์ธ๊ณ๊ฐ 1,500๋ง ์ค์ ์๋ํ๋ C# ์ฝ๋(์์ ์ ๋ฉ์ถ์ง ์์ ๊ฒ์ ๋๋ค, btw)๋ฅผ ์ค์ฌ์ผ๋ก ํ์ ํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒ์ด ์ฝ๊ฐ ์ด๊ธฐ์ ์์ ์ ์ํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ASP.NET Core 2.0์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ธ๋ผ์ดํผ์ด ๋ฝ์ ๊ดํตํ๋ ๊ฒ์ฒ๋ผ ๋ ๊ฑฐ์ ์ง์์ด ์คํ๋๋ ์ ์ฒด Windows ์ ์ฉ ํ๋ ์์ํฌ ASP.NET์ด ์ฌ์ ํ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฝ๋๋ฅผ ์ด์ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌํฉํฐ๋ง/์ฌ์ค๊ณํ๋ ๊ฒ์ด ๊ฒฝ์ ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ง๊ณ ๋ ์ ์๋ ์๋ก์ด ์ฅ๋๊ฐ์ด ์์ต๋๋ค. ์ง์ฆ๋์ง๋ง ๋ง์ ์ผ๋ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๊ทธ๋ฌ๋ Microsoft๊ฐ VB 6.0์ผ๋ก ์์ฑ๋ COM ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ ํ ํฌํจํ๊ณ ์๋ ๊ธฐ์กด์ 20๋ ๋ ๋ ๊ฑฐ์ ์ฝ๋๋ฒ ์ด์ค์์ ์๋ํ์ง ์์ ๋ชจ๋ ๊ฒ์ ํผํ๋ค๋ฉด ์์ผ๋ก 20๋ ํ์๋ Micro Focus๊ฐ ๋ ๊ฒ์ ๋๋ค.
@adamhathcock ๊ทธ๊ฒ์ด ๋ด๊ฐ netstandard์ ๋ชฉ์ ์ด๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ต์ ๊ณตํต ๋ถ๋ชจ๊ฐ ์๋๋ผ ํตํฉ ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ์ํ๋ ๋งํผ ๋น ๋ฅด๊ฒ ์์ง์ผ ์ ์์ง๋ง .NET ํ๋ ์์ํฌ๊ฐ ๊ฒฐ๊ตญ ๋ฐ๋ผ์ก์ ๊ฒ์ด๋ผ๋ ์ฝ์์ ๋๋ค. ๊ฒฐ๊ตญ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก .NET ํ๋ ์์ํฌ์์ ํ๋ซํผ๋ณ ํญ๋ชฉ์ ๋บ ๋คํธํ์ค์ด ์๊ฒจ ํตํฉ๋ ๊ฒ์ ๋๋ค.
NetFx ๋ค์ ๋ฆด๋ฆฌ์ค๋ ๋ค์ ๋ฆด๋ฆฌ์ค๊ฐ ์์ ๋๋ง๋ค netstandard3.x๋ฅผ ์ง์ํ๊ธฐ ์ํด ๋ค์ ์ ํํ ์ ์์ต๋๋ค.
.NET Framework ์ ๋ฐ์ดํธ๋ Windows(๋๋ถ๋ถ)๋ฅผ ์คํํ๋ ์ง๊ตฌ์์ ๋ชจ๋ ์ปดํจํฐ ์ ๋ํ ๊ฐ์ ์ ๋ฐ์ดํธ์ ๋๋ค.
.NET Core ์ ๋ฐ์ดํธ๋ ๊ฐ๋ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ํ ํ๋ ์ ๋ฐ์ดํธ์ ๋๋ค.
๊ทธ๋ค์ ๋งค์ฐ ๋ค๋ฅธ ์ง์น์ ๋๋ค.
๊ธ์, ํ ๊ฐ์ง ์ฌ์ด ์ผ์ ASP.NET Core ๋ฌธ์์ ๋งจ ์ฒซ ํ์ด์ง ์์ ์ด ํ์ด์ง ์ ๋ํ ๋งํฌ๋ฅผ ์ค์งํ๋ ๊ฒ์ ๋๋ค.
(๋๋ ๋จ์ํ "ASP.NET Core๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ค๋ฉด .NET Framework๋ฅผ ์ ํํ์ง ๋ง์ญ์์ค!"๋ผ๋ ์ค์ ์ถ๊ฐํ์ญ์์ค.)
๊ทธ๋ค์ .NET ํ๋ ์์ํฌ๊ฐ ๊ฒฐ๊ตญ ๋ฐ๋ผ์ก์ ๊ฒ์ด๋ผ๋ ์ฝ์์ด ๋ ๊ฒ์ ๋๋ค.
https://github.com/aspnet/Home/issues/2022#issuecomment -299609207์ด ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์ฝ์์ ์ผ๋ฐ์ ์ผ๋ก .NET Framework์ .NET Core ๊ฐ์ ์ ํ์ด ๊ณต์ ๋๋ ๊ฒฝ์ฐ ์๋ก ์ถ๊ฐ๋ ๋ฉค๋ฒ๋ฅผ .NET Framework๋ก ์ด์ํ๋ ค๋ ๊ฒ์ ๋๋ค. ๋งค์ฐ ๋๋ฌธ ๊ฒฝ์ฐ์ ์ด๊ฒ์ด ๊ฐ๋ฅํ์ง ์์ ์๋ ์์ง๋ง, ๋ฌธ์ ๋ ์๋์ผ๋ก ๊ณ ๋ ค๋๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ฐ๋ผ์ก์ ๋์ฏค์ด๋ฉด ASP.NET์ ์ฐจ๊ธฐ .NET Standard ๋ฒ์ ์ผ๋ก ๋์ด๊ฐ์ ๊ฒ์ด๋ฉฐ ASP.NET์ฉ .NET Framework์ ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ๊ฒฐ์ฝ ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ํญ์ ๋ค์์์ ๊ฒ์ ๋๋ค.
@markrendle ์๋์, ๊ทธ๋ค์ ํฐ ์งํ ๊ณต์ด ์๋๋๋ค. ํฐ ๋ฏน์ค๊ฐ ๋์ ์ํคํ
์ฒ๋ฅผ ์๋ฏธํ์ง๋ ์์ต๋๋ค. ๊ทธ๋ค์ ๋ชจ๋์์
๋๋ค. ๋ง์ ๋ชจ๋์ด ์ค๋ ์ ์ ์ ๋ง ๋๋ํ ์ฌ๋๋ค์ ์ํด ์์ฑ๋์๊ฑฐ๋ ํ์ฌ์์ ๊ตฌ์
ํ ์ ํฌ ํ
์คํธ ์ฝ๋์
๋๋ค. ์ผ๋ถ๋ C๋ก, ์ผ๋ถ๋ ํฌํธ๋์ผ๋ก, ์ผ๋ถ๋ C++/cli ๋ฑ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ฑฐ๋ ๋ค์ ์์ฑํ๋ ค๋ฉด ์ด๋ฅผ ์ดํดํ๊ณ , ๋
ผ๋ฌธ์ ์ฝ๊ณ , ๋ ๋ง์ ์ค์ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ , ์ ๋ฒ์ ์ ๋ค์ ํ
์คํธํด์ผ ํฉ๋๋ค. ๋
ธ๋ ฅ์ด ํ์ํ์ง๋ง ๊ทธ๋ฌํ ์์
์ ์์ฐ์ด ์ฑ
์ ๋์ง ์๊ณ ์ฐ๋ฆฌ ์์ ์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค. ๋น์ฆ๋์ค ์ฌ๋๋ค์ ์ฐ๋ฆฌ๊ฐ .net ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ง๋ ์๊ดํ์ง ์์ง๋ง ๊ธฐ๋ฅ์ด ์๋ฃ๋๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ 3์์๊ฒ ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ ์ด๊ตฌํ๊ฑฐ๋ ๊ต์ฒด๋ฅผ ๋ชจ์ํด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ์ค์ ๋ก ๋ช ๋
์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
@benaadams
๊ทธ๋ฆฌ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ํ System.Web์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Windows์ ๊ตฌ์์ก๊ธฐ ๋๋ฌธ์ ์ ๋ ์ฌ๋ผ์ง์ง ์์ ๊ฒ์ ๋๋ค. ๋น์ ์ ๊ทธ๋ณด๋ค ํจ์ฌ ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์์ต๋๋ค.
ASP.NET ์ฝ์ด 1.x -> ASP.NET ์ฝ์ด 2.x; ๋ชจ๋ API๋ ๊ฑฐ์ ๋์ผํฉ๋๋ค. ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ .NET Framework์ ๋ํ ์ง์์ ์ค๋จํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ ์๋ ์๋ฒ๋ฐ๊ฟ์ ๐ฑ
ASP.NET Core 1.x๋ .NET Core 2.x ๋ฐ .NET Framework์์ ์คํ๋๋ฉฐ .NET Standard 2.x(.NET Core 2.x๋ฅผ ํตํด)๋ฅผ ์ง์ํฉ๋๋ค. ASP.NET Core 2.x์ ๋์ผํ API๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ๋๋ค๋ ๋ฆด๋ฆฌ์ค์ ๋๋ค.
ASP.NET Core 2.x๋ ์ค๋จ ๋ฆด๋ฆฌ์ค์ ๋๋ค. ์ฌ์ ํ .NET Standard 2.x(.NET Core 2.x๋ฅผ ํตํด)๋ฅผ ์ง์ํ๋ฉฐ ASP.NET Core 1.x์ ASP.NET Core 2.x ๊ฐ์ API ์ธก๋ฉด์์ ํฌ๊ฒ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ .NET Framework๋ฅผ ์ญ์ ํฉ๋๋ค.
์, ์ต์ ์ด ์ค์ ๋ก ๋ฌด์์ธ์ง ๋ด ์๋ค. ASPNET Core 1.x๋ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ๋๋ค. ์ด์ํ ์ ์์ง๋ง ์ค๋๋ .net์ด ๊ฝ ์ฐฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๋ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ .net core๋ก ์ด๋ํ ์ ์์ต๋๋ค. ์ง์์ด ์ข ๋ฃ๋๋ฉด .net core /standard๋ก ์ด์๋์ง ์์ ์ ์์ต๋๋ค. ์ด์ ASP.NET core 1.x๋ฅผ ์ ํํ๋ ๊ฒ์ ์ข ์์ฑ์ด ์ด๋ฏธ netstandard2.0/.netcore์ ์๋ ๊ฒฝ์ฐ์๋ง ํ๋ช ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ๋น ์ง์ง ์๋๋ค๋ ๊ฒ์ ์๊ณ ๋ฌธ์ ์์ด asp.net core 2.x๋ก ์ด๋ํ ์ ์์ต๋๋ค.
์์ ์ฑ์ ์ํ๋ค๋ฉด nginx์ JVM ์คํ์ ๋์์ผ๋ก system.web์ ์ ํํ๋ผ๋ ๋น์ ์ ์ ์์ ์ฝ๊ฐ ์ฝํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๊น? :) ํ๋ซํผ์ผ๋ก ์ ํํด์ผ ํ ๋๊ท๋ชจ ์กฐ์ง์ ์ต์ ์ ๊ดํ ๊ฒ์ ๋๋ค. ์์ ํ ์๋กญ๊ณ ์ธ๋ถ ์ข ์์ฑ(๋๋ฌผ๊ฒ)๊ณผ ํจ๊ป ์๋ํ ํ์๊ฐ ์๋ ์ฑ์ ๋ง๋ค์ง ์๋ ํ ์์ ํ ๋ด๊ธฐ๋ฅผ ํ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฉฐ ์ ๊ทธ๋ ์ง ์์ต๋๊น? ๊ทธ๋ฐ ๋ค์ system.web ๋๋ JVM/nginx๋ก ๋ด๋ ค์ค๋ฉด ์ ํ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
์์ ๊ฒ๋ค์ ๋๋ค. ๋๋ ์ ์ ๊ทธ๊ฒ์ ๋ํด ๋๋๋ ธ๋ค: sql ์๋ฒ ๊ธฐ์ ์ ์ํธํ ๊ธฐ๋ฅ. .net ์ฝ์ด์๋ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ ๋๋ค. ์ ํ? ์๋์. ๋ฐ๋ผ์ asp.net core์ ์ด๋ฌํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด .net full๊ณผ asp.net core 1.x๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ asp.net core 1.x์ ๋ํ ์ง์์ด ์ข ๋ฃ๋ ๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์ด์/์ฌ์ฉ ๊ฐ๋ฅํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น? (๊ทธ๋ฆฌ๊ณ ๋๊ฐ ์ด๋ฏธ 'QFE ๋ชจ๋'์ธ ํ๋ซํผ์ ๋์ฅ์ ๊ฑธ๊ณ ์ถ์ต๋๊น?) system.web์ผ๋ก ๋์๊ฐ์๊ฒ ์ต๋๊น?
๋ฌธ์ ์ ์ผ๋ถ๋ ASP.NET์ด .NET Core์ ์งํ๋ฅผ ์ง์ ์ ์ผ๋ก ์ฃผ๋ํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ง์ดํฌ๋ก์ํํธ์ ๋ด๋ถ์ ์ธ ์ผ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ์ค์ ๋ก ํ๋ซํผ๊ณผ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ทธ๋ ๊ฒ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋์ด์๋ ์ ๋ฉ๋๋ค.
์๋ก์ด ๊ฒ์ด .NET ๋ฒ์ ์ ์ถ๊ฐ๋์ด์ผ ํ๋ ๊ฒฝ์ฐ netstandard ๋ฒํ(vNext ํฌํจ)๋ฅผ ํตํด ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ ๋ค์ ๋ฆด๋ฆฌ์ค๋ ๋ ์ด๋ฅผ ์ฌ์ฉํ๋๋ก ASP.NET์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๊ฒ์ ASP.NET์ ํน๊ถ์ ์์น๋ผ๊ณ ์๊ฐํฉ๋๋ค. Microsoft ๋ด๋ถ์ ๊ฐ๋ฐ์ ๊ทธ๋ฃน์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ๋ถ๊ฐํผํ ์ ์์ต๋๋ค.
.NET์ ๋ง์ด ์ฌ์ฉํ๋ HPC ์ํํธ์จ์ด ์์ฑ์๋ก์ ๊ธฐ๋ณธ ํ๋ซํผ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์์ฒด ์ ๋ก ํ ๋น ๊ตฌ๋ฌธ ๋ถ์ ๋ฑ์ ๊ตฌํํ์ต๋๋ค. Span ๋ฑ์ ์ด์ ์ ์ป์ ์ ์์ต๋๊น? ์ ์ ์ผ๋ก! .NET Core๋ก ์ ํํ ์ ์์ต๋๊น? ์ค๋ซ๋์ ์๋๋๋ค. .NET Framework์ Span ๋ฑ์ด ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๊น? netstandard ์ฝ์ ์์ด๋ ์ง๊ธ ๋งํ๊ธฐ ์ด๋ ค์ด ๊ฒ ๊ฐ์ต๋๋ค ...
@markrendle ๋ฌผ๋ก ์ด์ง๋ง ์ ํ ๊ณํ์ ๋ฌด์์ ๋๊น? ์ง์๋์ง ์๋ ๊ฒฝ๋ก์ ๋๋ฌํ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด netstandard์ ์์๊ณ ASP.NET Core๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ฌ์ฉํ๋ค๋ฉด ์ ์ด๋ ๊ฒฐ๊ตญ์๋ ๊ฒฝ๋ก๊ฐ ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค....
@markrendle asp.net ์ฝ์ด์ ์๋๋ ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ์ง๋ง ๋ด๊ฐ ๋ณธ ๊ฒ์ ๋๋ถ๋ถ .net๊ณผ ํฐ ๋ ๊ฑฐ์(๋์์ง ์์) ์ฝ๋๋ฒ ์ด์ค์ ํฐ ํฌ์๋ฅผ ํ .net ์ฌ์ฉ์์
๋๋ค. ์ฐ๋ฆฌ๊ฐ ์๋ํ ์ฌ์ฉ์๊ฐ ์๋๋ผ๋ฉด ์ฐ๋ฆฌ๊ฐ .net์ด ์๋ฌด๋ฆฌ ์ข๋ค๊ณ ์๊ฐํ๋๋ผ๋ node.js/python/go ๋
์๋ค์ด .net์ sh*t๋ฅผ ์ฃผ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
ํ์ฌ๋ฅผ ์ํ ๊ฒ์ด ์๋๋ผ ๋ด ํ๋ก์ ํธ๋ฅผ ์ํ ๊ฒ์ด๋ผ๋ฉด asp๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋์ nancy๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ์
์ ์์ ์ ์ธ ๋ณด์ฆ๊ณผ ์ง์์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์/์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ํด ํฐ ๋์ ์ง๋ถํฉ๋๋ค.
์ด ๋ฌธ์ ์ ๋ํ ์ฌ์ด ํด๊ฒฐ์ฑ ์ Microsoft๊ฐ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฒด ๋ฒ์๋ฅผ ์ง์ํ๋ Windows ์ ์ฉ CoreCLR ๋ฐฐํฌํ์ ๋ง๋๋ ๊ฒ์ ๋๋ค.
๋ด ๊ฐ์ธ์ ์ธ ์ธก๋ฉด์ ์ฐ๋ถํฌ์ PI์์ .NET Core๋ก ๋ ธ๋ ๊ฒ์ด ๋ฉ์ง์ง๋ง .NET Framework๋ ์ฐ๋ฆฌ๊ฐ ํ์๋ก ํ๋ ๋ชจ๋ ๊ฒ์ ์ํํ๊ณ .NET Core๋ ๋น๊ตํ ๋ ๋ฌธ์ ์ผ ๋ฟ์ด๊ธฐ ๋๋ฌธ์ ๋น์ฆ๋์ค ์ธก๋ฉด์ .NET Core๋ฅผ ๊ณ ๋ ค์กฐ์ฐจ ํ์ง ์์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋๋ถ๋ถ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋ชจ๋ ์ฌ๋์ด ์ค์ ํ๋๋ก ํ๋ ๊ฒ๊ณผ ๊ด๋ จํ์ฌ ์ด๋ฌํ ๊ณ ํต์ด ๋ง์นจ๋ด ์ฌ๋ผ์ง๊ณ ์์ง๋ง ์ฌ์ ํ ๋ง์ ๊ธฐ๋ฅ์ด ๋ถ์กฑํฉ๋๋ค... EF Core๋ EF6 ๋๋ NHibernate๋ฅผ ๋์ฒดํ ๋งํผ ์ถฉ๋ถํ ๋ถ๋๋ฝ์ง ๋ชปํ์ผ๋ฉฐ ๊ทธ๋ค์ ์ด๊ฒผ์ต๋๋ค. .NET Core 2์์๋ ์คํ๋์ง ์์ต๋๋ค. SOAP ์๋น์ค์ฉ WCF(ํธ์คํธ)๊ฐ ์๋ค๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋น์ฆ๋์ค ์ปค๋ฎค๋์ผ์ด์ ์์ ํ๋ฃจ ์ข ์ผ ํ๋ ์ผ์ด๊ธฐ ๋๋ฌธ์ ์๋นํ ๋ถ๋ด์ด ๋์ง๋ง ์ฌ๋ฌ ์ฑ์์ .NET Core ๋ฐ .NET Framework๋ฅผ ์ฌ์ฉํ๊ณ ์๋ฆฌํ ์ค๊ณ๋ฅผ ํตํด ์ํํ ์ ์์ต๋๋ค. AppDomains๋ ๋ด ๋ฌธ์ ์ ๊ฐ์ฅ ์์ ๋ถ๋ถ์ด์ง๋ง ์ฝ๊ฒ ๊ต์ฒด๋์ง ์์ต๋๋ค. ASP.NET MVC 5์์ MVC Core๋ก์ ๋์ฝ์ ์ฌ์์ฑ์์ ์๊ธฐ์น ์๊ฒ ์ฌ์ ์ง๋ง .NET Core๋ก ์ด๋ํ๋ฉด VS๊ฐ ํ๋ ฅ์ ์ค์งํ๊ณ ๋ชจ๋ ์ค๋ฅ๋ฅผ ํ์ํฉ๋๋ค.
WPF ๋ด์์ ASP.NET Core๋ฅผ ํธ์คํ ํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ฌ๋ฏธ์๋ ์ผ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ค๋๋ .NET Framework์ ํฌ๊ฒ ๋ค๋ฅด์ง ์๊ธฐ ๋๋ฌธ์ Windows CoreCLR ๋ฐฐํฌ๊ฐ ๋น๊ณต๊ฐ ์์ค์ธ์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค.
์ด์ ์กฐ์ฉํ ์ธ๊ณ ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ๋ ์คํ ๋ถ๊ธฐ๋ฅผ ์ญ์ ํ๋ ๋์ ์ค๋กํฉ๋๋ค.
์์ ์ฑ์ ์ํ๋ค๋ฉด nginx์ JVM ์คํ์ ๋์์ผ๋ก system.web์ ์ ํํ๋ผ๋ ๋น์ ์ ์ ์์ ์ฝ๊ฐ ์ฝํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๊น?
๊ทธ๊ฒ์ ๊ทน๋จ์ ์ธ ๋ ;)
๊ทธ๋ฐ ๋ค์ system.web ๋๋ JVM/nginx๋ก ๋ด๋ ค์ค๋ฉด ์ ํ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค.
์, JVM์ ์ฌ์ฉํ ์ ์๋ค๋ฉด ์ฐจ๋จ๊ธฐ๊ฐ ์๊ณ ์ข์ interop ๋ฐ p/invoking์ด ์์ผ๋ฏ๋ก ASP.NET Core 2๋ฅผ ์ฌ์ฉํฉ๋๋ค. :)
API๊ฐ "๊ฑฐ์ ๋์ผ"ํ๋ค๋ฉด ํ๋์ ๋ฒ์ ๋ฒํธ๋ฅผ ๋ชจ๋ 2๋ฐฐ๋ก ์ ์งํ์ง๋ง "netstandard" ๋๋ "netcore"๋ฅผ ์ ํํ ์ ์๋ ์ต์ ์ด ์๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
๋ด๋ถ๊ฐ ๋ณํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฐํ์, jit ๋ฐ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ฉํฉ๋๋ค. ์ฌ์ฉ์์๊ฒ๋ ASP.NET 1.x์ 2.x ๊ฐ์ ํธํ์ฑ์ด ์๋ ๊ฒ๊ณผ ๊ฑฐ์ ๋์ผํ๊ฒ ๋ํ๋ฉ๋๋ค. ๋ด๋ถ๊ฐ ์๋ ๋ ธ์ถ๋ API ํ๋ฉด์์ "์ฌ๊ธฐ์ ์๋ฃ๋์์ต๋๋ค".
๋ฌธ์ ์ ์ผ๋ถ๋ ASP.NET์ด .NET Core์ ์งํ๋ฅผ ์ง์ ์ ์ผ๋ก ์ฃผ๋ํ๊ณ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ค๋ฅธ ์ฌ๋๋ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์๋ฅผ ๋ค์ด ValueTask ์์ ํ๋ ๊ฒ์ฒ๋ผ dotnet/corefx ์์ API ์์ฒญ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Task-like๋ก ๋ฐ์ ํ์ผ๋ฉฐ ํ์ฌ C#7์ ์ผ๋ถ์ ๋๋ค.
API๊ฐ .NET Core์ ํฌํจ๋์๋ง์ ์ฌ์ฉ์ ์์ํ ์ ์์ต๋๋ค(๋ฐค์ ๊ฐ์ API๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ๋ ค๋ ๊ฒฝ์ฐ). ๋๋ 6๊ฐ์ ๋์ ์ค๋จํ๋ ค๋ ๊ฒฝ์ฐ coreclr/corefx์ ๋ค์ ๋ฆด๋ฆฌ์ค์์.
๊ทธ๋ฐ ๋ค์ ASP.NET์ด ๋ฆด๋ฆฌ์ค๋ ๋ ์ด๋ฅผ ์ฌ์ฉํ๋๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
์ด์ 2๋ ์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ ์ค์ ๋ก ์ค์ฉ์ ์ด์ง ์์ต๋๋ค. API๋ ์ฌ์ฉ์ ํตํด ๊ฐ์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ์ฉ์ ํตํด ๋ ๋ง์ ๋ฐ๊ฒฌ์ด ์ผ์ด๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ 2๋ ์ปดํ์ผ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
.NET์ ๋ง์ด ์ฌ์ฉํ๋ HPC ์ํํธ์จ์ด ์์ฑ์๋ก์ ๊ธฐ๋ณธ ํ๋ซํผ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์์ฒด ์ ๋ก ํ ๋น ๊ตฌ๋ฌธ ๋ถ์ ๋ฑ์ ๊ตฌํํ์ต๋๋ค. Span ๋ฑ์ ์ด์ ์ ์ป์ ์ ์์ต๋๊น? ์ ์ ์ผ๋ก! .NET Core๋ก ์ ํํ ์ ์์ต๋๊น? ์ค๋ซ๋์ ์๋๋๋ค.
HPC ์ํํธ์จ์ด๊ฐ ์น ์์ฒญ์ ์ง์ ์ค๋จํฉ๋๊น? ์ถ์ธก์ปจ๋ฐ ์น ์์ฒญ์ ์ํด ๊ตฌ๋๋๋ ๋๊ธฐ์ด์ด ์์ ์ ์์ง๋ง ๋ณ๋์ ํ๋ก์ธ์ค์์ ์คํ๋๋ฏ๋ก ์ด ๋ณ๊ฒฝ์ ์ํฅ์ ๋ฐ์ง ์์์ผ ํฉ๋๊น?
.NET Framework์ Span ๋ฑ์ด ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๊น?
๋ค
@benaadams
๊ทธ๋ฌ๋ ๋ฐ๋ผ์ก์ ๋์ฏค์ด๋ฉด ASP.NET์ ์ฐจ๊ธฐ .NET Standard ๋ฒ์ ์ผ๋ก ๋์ด๊ฐ์ ๊ฒ์ด๋ฉฐ ASP.NET์ฉ .NET Framework์ ์ฌ๋ฐ๋ฅธ ๋ฒ์ ์ ๊ฒฐ์ฝ ์๋ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ํญ์ ๋ค์์์ ๊ฒ์ ๋๋ค.
๋ฒ์ ์ด 1๊ฐ ์ด์ ๊ฒน์น๋ ๊ฒฝ์ฐ(์ฆ, ์ต์ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ํ๋ ์์ํฌ์์ ์คํ๋๋ ์ฃผ๋ณ์ ๊ณต์์ ์ผ๋ก ์ง์๋๋(ASP).NET Core ๋ฒ์ ์ด ํ๋ ์ด์ ์์) ์ด๋ ์์ ํ ๊ด์ฐฎ๊ณ ์์ฉ ๊ฐ๋ฅํฉ๋๋ค.
Microsoft๋ .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฒด ๋ฒ์๋ฅผ ์ง์ํ๋ CoreCLR์ Windows ์ ์ฉ ๋ฐฐํฌ๋ฅผ ๋ง๋ค ๊ฒ์ ๋๋ค.
๋๋ .NET Standard 2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ; API ๊ฒฉ์ฐจ๋ฅผ ์ปค๋ฒํ๋ Windows์์๋ง ์คํ๋๋ .NET Core์์ ์คํํ ์ ์์ต๋๊น?
@benaadams ๋ค, ๊ทธ ์์ด๋์ด์ ๋๋ค. ๋น๋ก PlatformNotSupportedException์ ๋์ง๋ ์ด๋ค ๊ฒ์๋ ์๋ํ์ง ์์ ๊ฒ์ด์ง๋ง
@qrli ๋ชจ๋์์ด๋ผ๋ฉด ์ง๊ธ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ ๋ชจ๋์ ์ ๊ทธ๋ ์ด๋ํ๊ณ ๋๋จธ์ง๋ ๋์ค์ผ๋ก ๋จ๊ฒจ๋ ์ ์์ต๋๋ค.
"๋ชจ๋์"์ด ์๋ ํ "PInvoke ๋ฐ COM์ ํตํด ์ํธ ์ด์ฉ๋๋ ์์ญ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ตฌ์ฑ๋ ๋๊ท๋ชจ ๋ชจ๋๋ฆฌ์ System.Web ASP.NET IIS ์์ฉ ํ๋ก๊ทธ๋จ"์ ์๋ฏธํ์ง ์๋ ํ ํฐ ์งํ ๋ฉ์ด๋ฆฌ์ ๋๋ค.
์ด๋ค ์ด์
๋ธ๋ฆฌ๊ฐ ์ํฅ์ ๋ฐ๊ณ ์ด๋ค ์ด์
๋ธ๋ฆฌ๊ฐ ์ํฅ์ ๋ฐ์ง ์๋์ง์ ๋ํ ์ต์ข
๋ชฉ๋ก์ด ์์ต๋๊น? Microsoft.Extensions.*
๋ ์์ ํ๊ณ Microsoft.AspNetCore.Razor.Runtime
(๊ฐ์ )๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ฏ๋ก Microsoft.AspNetCore.Html.Abstractions
$๋ netstandard
์ ์์ด์ผ ํฉ๋๋ค. netstandard
์ ๋จธ๋ฌผ๊ณ ์๋ Microsoft.AspNetCore.*
์ ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๊น?
@bencyoung ๋ด๊ฐ ๊ถ์ฅํ๋ ์ ํ ๊ณํ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ค์ํ ๊ตฌ์ฑ ์์๋ฅผ .NET Core 2.x(๋๋ ํด๋น ํน์ ๊ตฌ์ฑ ์์์ ๋ํ ์ ์ฒด ๊ฐ๋ฐ ๋๊ตฌ์์ ๊ฐ์ฅ ์ ์๋ํ๋ ๋ชจ๋ ๊ฒ)๋ฅผ ๋์์ผ๋ก ํ๋ ๋ ๋ฆฝ ์คํํ ์๋น์ค๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ ๋ ๊ฑฐ์ ์ฝ๋์์ ํด๋น ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ ์ ํ ๋ถ์ฐ ์์คํ ์ํคํ ์ฒ๋ฅผ ์ป์ ๋๊น์ง HTTP ๋๋ ๋ฉ์์ง ๋ฒ์ค๋ฅผ ์ฌ์ฉํ๋ ํ์ค API ๊ฒฝ๊ณ.
@markrendle ๋ชจ๋ ๊ฒ์ด ๋ถ์ฐ ์์คํ ์ ์ํ๋ ๊ฒ์ ์๋๋๋ค. ๊ตฌ์ฒด์ ์ธ ์: ์คํ ์ค๋ฒํ๋ก๊ฐ ํ์ด์ง๋ฅผ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ ๋๋งํ๋ ์ด์ ์ค ์๋น ๋ถ๋ถ์ ๋ฐฐํฌ ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋คํธ์ํฌ ๋๊ธฐ ์๊ฐ์ด 0.017ms์ด์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋นํ ๋คํธ์ํฌ, ์ง๋ ฌํ, ์ญ์ง๋ ฌํ ๋ฐ GC ๋น์ฉ์ด ์ถ๊ฐ๋ฉ๋๋ค. ์์คํ ์ ์ฌ๋ฌ ์๋น์ค๋ก ๋ถํ ํ๋ ๊ฒ์ ๋ณดํธ์ ์ธ ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค. ๋ณต์กํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค๋ฉฐ ๋ง์ ์๋๋ฆฌ์ค์์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ข์ ๊ฒ์ผ ์๋ ์์ง๋ง ์ง๋์น๊ฒ ๋ณต์กํ ๋์ ๊ฒ์ผ ์๋ ์์ต๋๋ค.
@markrendle ๋ด ๋ฌธ์ ๋ ์๋น์ค๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๊ฒ์ด ์๋๋ผ ๊ธฐ๋ณธ ์๋น์ค ์ธํ๋ผ ๋น๋ฉ ๋ธ๋ก ์ค ์ผ๋ถ๊ฐ netstandard20
๋๋ netstandardbanana
๋ก๋๋งต์ ์๋ API๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ์๊ฒ .NET Core๋ ๊ทธ๋ฆฐํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์๋๋ผ ์ ์ฒด ๊ทธ๋ฆฐํ๋ ์์คํ
์ ๊ดํ ๊ฒ์
๋๋ค. System.DirectoryServices
๊ฐ ํ ๊ฐ์ง ์์ด์ง๋ง ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ WCF์ด๊ณ ๋ ๋ง์ ์ฌ๋๋ค์๊ฒ๋ System.Data
๋ฐ SqlClient ํญ๋ชฉ์ด๊ณ ์ฐ๋ฆฌ์๊ฒ๋ System.Messaging
์
๋๋ค.
๊ฐ๋ฅํ๋ฉด .NET Core๋ฅผ ์ฌ์ฉํ๊ฒ ์ต๋๋ค. ์ง๊ธ๊น์ง ์ ๋ก ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ๊ฐ ํฌํจ๋์ด ์์๋์ง ์ฌ๋ถ์ ๊ด๊ณ์์ด ๋ชจ๋ ๊ฒ์ด ์ฐจ๋จ๋์์ต๋๋ค.
@NickCraver ๋ด ๋ง์ ์ฐ์ค๊ฝ์ค๋ฝ๊ฑฐ๋ ๊ทธ๋ฐ ๊ฒ์ด ์๋๋ผ SO ํ์ด์ง๊ฐ ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ ๋ ๋๋ง๋๋ ์ง์ง ์ด์ ๋ ๋น์ ๊ณผ ๊ทธ๊ฒ์ ๊ตฌ์ถํ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ํ๋ฅญํ๊ธฐ ๋๋ฌธ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ๋น์ ์ ํ์ด์ง์ ๋ํ ๋งํฌ๊ฐ ํฌํจ๋ Google ๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง๋งํผ ๋น ๋ฅด๊ฒ ๋ ๋๋ง๋๋ฉฐ ํฌ๊ณ ๋ณต์กํ ๋ถ์ฐ ์์คํ ์์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค. Amazon ํ์ด์ง๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋์ผํ ๊ฑฐ๋๋ฅผ ๋ ๋๋งํฉ๋๋ค. ์ ๋ ASP.NET Core๊ฐ ๋์ผํ ์ฑ๋ฅ์ผ๋ก ๊ตฌ์ถ๋ ๊ฒ๊ณผ ๋์ผํ ๋ฐฉ์์ผ๋ก ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ฏธ๋๋ฅผ ํฅํด ๋์๊ฐ๊ณ ์๋ค๊ณ ๋๊ดํฉ๋๋ค. ์์ ํ .NET์ ์์ ์ฌ์ผ๋ก์ ์ ๋ฐ์ดํธ ์ฃผ๊ธฐ.
@jbogard ๋น์ทํ์ง๋ง .NET Core 2.0์ด ๋์ค๋ฉด ๋งค์ฐ ๋ค๋ฅผ ๊ฒ์ ๋๋ค.
ํ์จ์ ์ฌ๋ค.
@jbogard
๋ท์คํ ๋ค๋๋ฐ๋๋
์ค๋ ๋์ ์ธ์ฉ๋ฌธ
๋์ ๋ด ํ์ ์ฃผ์ ๋ฌธ์ ๋ ์ด ๊ฒฝ๋ก๊ฐ ์๋๋ ๋ฏธ๋๋ผ๋ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ฏธ๋๋ฅผ ์๋ ์ฌ๋์ ์๋ฌด๋ ์์ง๋ง ์์ ํ .net ํ๋ ์์ํฌ(๊ตฌ์ฑ ์์ ๊ณต๊ธ์ ์ฒด dll, ์ง๋ถ ์๋น์ค SDK, HSM SDK)์ ์์กดํ๋ ๋ชจ๋ ๊ฒ์ ์์ฒด ์๋น์ค๋ก ๋ถ๋ฆฌํ๊ณ ์๋ก์ด ํ STINGS๋ฅผ ๋์ ํด์ผ ํ๋ค๊ณ ๋ค์์ต๋๋ค. ์ด๊ฒ์ ์ด ์ฌ์ดํธ์์ ํ์๋ก ํ๋ ๊ฒ์ด ์๋๋ฉฐ ์ด์ ๋ ๋ง์ ๊ฐ๋ฐ ์์ ๋ณต์ก์ฑ์ ๋์ ํ๊ฑฐ๋ MVC 5์ ์น ์ฑ ๋ถ๋ถ์ ๋ค์ ์ํํด์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ kestrel์ ์๋์ ๋ฉ์ง ์ API๋ฅผ ์ํด asp.net ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ข ์์ฑ์ ๊ฐ์ํ ๋ ์์ฌ์ด ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ์ต์ ์ ๋ ์ ํํ๊ฒ ํ๊ฐํ ์ ์๋ค๋ฉด ์ข์์ ๊ฒ์ ๋๋ค.
@jabrown85์ ์ถ๊ฐ
ASP.NET Core๋ ์ง๊ธ๊น์ง ๊ฐ์ ์ ๋กค๋ฌ์ฝ์คํฐ์์ต๋๋ค.
csproj๊ฐ ์ฐฉ๋ฅํ ํ ๋ง์นจ๋ด "์ด์ ์ค๋น๋์์ต๋๋ค"๋ก ์ด๋ํ์ฌ ์๋ก์ด ๊ฒ์ ์์ํ๊ณ ์
๊ทธ๋ ์ด๋ํ ์ ์๋ ํญ๋ชฉ์ ํ์ธํ๋ ๊ฒ์ด ์ด๋ ต์ง ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์ด ๋ฐํ ํ์๋ ".NET Core๊ฐ ์๋๋ฆฌ์ค๋ฅผ ํ์คํ ์ง์ํฉ๋๊น, ์๋๋ฉด ์์ ํ๊ฒ MVC5๋ฅผ ์ ์งํด์ผ ํฉ๋๊น?"์ ๋น์ทํฉ๋๋ค.
์ฌ์์๋ ์ง๊ธ๊น์ง ๋ฎ์๊ณ ๊ธฐ๋ณธ MVC 5 ์ฑ์ ๊ด๋ฆฌ ์์ ์ ๊ด๋ฆฌํ๋ ASP.NET Core๋ก ์์ฑ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ํ๋๋ฟ์ด์ง๋ง ๊ธฐ๋ณธ ์ฑ์ด NHibernate๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ 1.x์์ ์์ํ ๋ฉ์ถฅ๋๋ค.
@markrendle ์ปดํจํฐ๋ ์๋์ค๋ผ๊ณ ๋งํฉ๋๋ค
์ ์ฒด .NET -> netstandard์ ๋ํ ๋ก๋๋งต์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๊ธฐ๋ณธ ๋ถ๋ถ ์ค ์ผ๋ถ๋ ApiPort์์ "์ง์๋์ง ์์"์ด๋ผ๊ณ ๋งํฉ๋๋ค. ASP.NET Core 1.x์์ ํด๋ผ์ด์ธํธ ํ๋ก์ ํธ์ ๋ํ ์ ์ฒด ๋ถ์์ ์คํํ์ฌ ๋ฌด์์ด ๋๋ฝ๋์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ฉ์ธ ์ฑ์ด NHibernate๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ํ 1.x์ ๊ณ ์ ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ์ง ์์์ผํฉ๋๋ค. Hibernate๊ฐ ์ฃฝ์ง ์์์ต๋๊น?
@benaadams ๋๋๊ฒ๋ ์๋๋๋ค. EF6์๋ ์ค์ ๋ก ๋๋ฑํ ๊ธฐ๋ฅ์ด ์๋ ๋ช ๊ฐ์ง ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ๊ธฐ๋ณธ๊ฐ์ EF6์ด์ง๋ง NH ๋ฃจํธ๋ก ๊ฐ์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
@benaadams ๊ณต์์ ์ผ๋ก ์๋์ค, ๊ฑฐ์ ์ฃฝ์ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ์ผ์ ์ค์ง๊ฐ ์์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ฉฐ์น ์ ํ ๋ฒ ์ปค๋ฐํฉ๋๋ค. ApiPort๋ .NET Standard์ ๋ํด 72.26%์ ์ ์ฉ ๋ฒ์๋ฅผ ๋ณด๊ณ ํ์ง๋ง (์ ์ด๋ ๊ฐ๊น์ด ์ฅ๋์) ์ด์๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํ์ง ์์ต๋๋ค.
๋๊ธ์ ์ฝ์ผ๋ฉด์ ์ด ํ๋ก์ ํธ๊ฐ ํฅํ๊ณ ์๋ ์ผ๋ฐ์ ์ธ ๋ฐฉํฅ์ ๋ํด ์ฐ๋ คํ๊ณ ์์ต๋๋ค. ์ค๋ซ๋์ ASP.NET์ ์์ ์ ์ด๊ณ ๊ฒฌ๊ณ ํ ๊ธฐ์ ์ ์ํ ์ข์ ์ ํ์ด์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ง๊ธ์ ๊ฐ์ ๋๋์ด ๋ค์ง ์์ต๋๋ค. "๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ๊นจ๋" ๊ธฐ์ ์ด ๋ง์ด ์์ง๋ง ์ด๋ ์์ ํ ๋ค๋ฅธ ๋ฒ์ฃผ์
๋๋ค.
Microsoft๊ฐ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋ชจ๋ ์ฌ๋์ ๊ธฐ๋์น๋ฅผ ๋ง์ถ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ธฐ์ ์ฉ ์ํํธ์จ์ด์ ๋น๊ธฐ์ ์ฉ ์ํํธ์จ์ด์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ์ค๋๋ ์ฌ์ฉ ์ค์ธ Python 2.x ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ง์ด ์์ผ๋ฉฐ ๋ชจ๋ "์ํฐํ๋ผ์ด์ฆ"๊ฐ ์๋๋๋ค. ๊ฒ๋ค๊ฐ ๋ชจ๋ ์ ํ๋ก์ ํธ๊ฐ Python 3์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋๋๋ค(Python 3.0 ์ถ์ ํ ๊ฑฐ์ 9๋ !).
๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ ์ฒด ์ค๋ ๋๋ฅผ ์์ฝํ ์ ์๋ ์ฌ๋์ด ์์ต๋๊น?
์ถํด๊ทผ/์ ์ฌ ์๊ฐ์ 300๊ฐ ์ด์์ ๋๊ธ์ ๋ชจ๋ ์ฝ์๊ณ ... ์ฌ์ ํ ์์ ํ "์ดํดํ์ง" ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ์ป๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
netstandard2.0
netcoreapp2.0
์ ์์กดํฉ๋๋ค.๋๋ ๋๋จธ์ง... ๋ฐ์ ์ผ์ ๊ณผ ๋ชจ๋ ๊ฒ์ ๋์ณค์ต๋๋ค.
@MaximRouiller
DirectoryServices ๋๋ Drawing๊ณผ ๊ฐ์ ๊ฒ์ ์ํ๋ฉด ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ญ์ ํ๊ณ 2.0์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค.
์๋์, .net Core๋ฅผ ์ง์ํ์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํ๋ฉด AspNet Core 2.0+๋ฅผ ์ ํ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@MaximRouiller , ๊ทธ๋ค์ด ๋ฐฉ๊ธ ํ ๊ฒ์ Asp.Net ํต์ฌ ํ๋ก์ ํธ๊ฐ ์ ์ฒด ํ๋ ์์ํฌ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ด ๋๋ถ๋ถ์ ์๋์ง๋ง ๋ง์ ์ฌ๋๋ค์๊ฒ ์ธ๋ชจ๊ฐ ์๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ system.drawing ๋ฐ Directoryservices์ ๊ฐ์ ์ด์ ๋ธ๋ฆฌ๊ฐ ์๋ก์ด netstandar๋ก ํฌํ ๋ ๊ฒ์ด๋ผ๊ณ ๋งํฉ๋๋ค. ์๋๋ฉด ์ฌ์ ํ ์ค๋๋ ์ด์ ๋ธ๋ฆฌ๋ ๋๊ตฐ๊ฐ ์ด์ํ์ง ์๋ ํ ์๋ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ผ๋ถ ์ด์ ๋ธ๋ฆฌ๋ ๋ ๊ฑฐ์์ด๊ณ ์ด์๋์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ง์ ์ฌ๋๋ค์๊ฒ ๊ฑฐ์ ์ธ๋ชจ๊ฐ ์์ต๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก, .NET ํ๋ ์์ํฌ์ ์ ์ ๋ฒ์ ๊ณผ ํจ๊ป .net ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋งํด์ MVC 5๋ก ๋์๊ฐ์ผ ํฉ๋๋ค.
@davidfowl ๊ทธ๋ฐ๋ฐ ์ด ๋ชฉ๋ก ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. "๊ทธ๋์ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ๋ฌด์์ ์ป์ ์ ์์ต๋๊น?" ์ฌ๋๋ค์ด ๋ง์์์ผ๋ก ๋น์ฉ/ํธ์ต์ ๊ท ํ์ ๋ง์ถ๋ ๋ฐ ํ์ํ ์กฐ๊ฐ์ ๋๋ค.
์์ง ์ฝ์ง ์์๋ค๋ฉด ๋ชฉ๋ก ์ ์ฝ๊ณ ์์ชฝ ๋ชจ๋์ ๋ํ ์ ๋ณด๋ฅผ ์ป์ผ์ญ์์ค. ๋๋ ์ฌ์ ํ 2.x๊ฐ ์ ํ ๋ฆด๋ฆฌ์ค๊ฐ ๋๊ธฐ๋ฅผ ์ํ๊ณ (์ค์ ๋ก ์ด๋์ ๋ณด์ฆํ๋ ๋น์ฆ๋์ค์ ์ ๋นํ ์ด์ ์ด ์์) 3.x๊ฐ ์น๋ฆฌํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. 2์ผ ๋ค์ ๋์์ด๋. ๋ชจ๋ ๋ฉด์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๋ง ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
@davidfowl ๋น์ ์ ๋ค์๊ณผ ๊ฐ์ด ๋งํ์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ์ค ์์ ์์ฑํ ์ ์์ต๋๋ค. ํ์ค ์์ฒด์ ๋ด์ฉ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ .NET Framework๋ฅผ ํฌํจํ ๋ชจ๋ .NET ๊ตฌํ์์ ์ฑํํ๋ ๋ฐ ํจ์ฌ ๋ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค. ๋ค์ ๋ ๊ฐ์ง๋ฅผ ์๋ฏธํ ์ ์์ต๋๋ค.
.NET Standard๋ ๊ฐ์ฅ ๋๋ฆฐ ๊ตฌํ ์๋๋ก ๋ฐ์ ํ ๊ฒ์ ๋๋ค.
.NET Standard๋ ๋ค๋ฅธ ์๋๋ก ๋ฐ์ ํ ๊ฒ์ด๋ฉฐ .NET Framework๋ ๋ง์ง๋ง์ผ๋ก ๋ฐ๋ผ์ก์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ ๊ทธ๋ด๊น์? .NET Standard vNext๋ฅผ ์ถ์ํ๊ณ .NET์ด ๋์ค์(๋ช ๊ฐ์์์ 1๋
ํ) ๋ฐ๋ผ์ก๋๋ก ํ ์ ์์ต๋๊น? ์ฆ, ์ต์ฒจ๋จ์ ์๊ณ ์ต์ ASP.NET Core๋ฅผ ์ํ๋ ์ฌ๋๋ค์ .NET Core์์ ํธ์คํ
ํ ์ ์์ผ๋ฉฐ ๋ ๊ฑฐ์ ์ฝ๋์ .NET์ด ํ์ํ ์ฌ๋๋ค์ .NET์ด ๋ฐ๋ผ์ก์ผ๋ฉด ๊ฒฐ๊ตญ ํด๋น ๋ฒ์ ์ ASP.NET Core๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉํ๋ .NET Standard ๋ฒ์ ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. .NET Standard๊ฐ ๊ฐ์ฅ ๋ฎ์ ๊ตฌํ๋งํผ ๋น ๋ฅด๊ฒ ๊ฐ์ ๋์ด์ผ ํ๋ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
๋ํ ์ฌ๊ธฐ์์๋ ํ์ค์ ๊ณต์ ๊ตฌํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ง๋ง ํ์ค๊ณผ ํจ๊ป ์
๋ฐ์ดํธ๋์ง ์๋ ๋ค๋ฅธ ๊ตฌํ๋ ์์ ๊ฒ์
๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ฉด ์ฌ๋๋ค์ ๋ค์ ๋จ๊ฒจ๋์ง ์์ต๋๋ค. ๋ฌผ๋ก .NET์ ์๋ ๊ฒฝ์ฐ ์ต์ ๊ธฐ๋ฅ์ ์ด์ ์ ๋๋ฆฌ๋ ๋ฐ ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆฌ์ง๋ง ์๊ตฌ์ ์ผ๋ก ๊ณ ์ ๋์ง๋ ์์ต๋๋ค.
@jdom ์ .NET Framework๊ฐ ๋ณ๊ฒฝ๋๋ ์๋์ ์๋๊ฐ ๋๋ ค์ผ ํ๋ ์ด์ ๋ฅผ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ค๋ฅธ ๋ฐฐํฌ์ด๋ฉฐ ์๋ง๋ ๊ทธ๊ฒ์ ๋ํ ์ถฉ๋ถํ ๊ฐ์ฌ๊ฐ ์์ ๊ฒ์ ๋๋ค. ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์์ญ์ต ๋์ ๊ธฐ๊ณ์ ์ ์ฉ๋ฉ๋๋ค. ๋ ์ด์ด๋ง๋ ์์ ํ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ถ๋ก ํ ์ ์๋ ์ฌ์ํ ์ผ์ด ์๋๋๋ค.
.NET Standard๊ฐ ๊ฐ์ฅ ๋ฎ์ ๊ตฌํ๋งํผ ๋น ๋ฅด๊ฒ ๊ฐ์ ๋์ด์ผ ํ๋ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค.
ASP.NET Core์์ .net ํ์ค์ ๋ํ ๋ก์ฐ ์ํฐ๋งํฌ๋ฅผ ๊ณ์ ๋์ด๋ฉด ๋ชฉ์ ์ด ๋ฌดํจํ๋๊ณ ๋์ผํ ์ํฉ์ ์ฒํ๊ฒ ๋ฉ๋๋ค. ์ธ์ ๊ฐ ์ด๋ฌํ API๊ฐ .NET Framework์ ์ ๊ณต๋ ๊ฒ์ด๋ผ๋ ์ฝ์์ด ์๊ธฐ ๋๋ฌธ์ ๋ค์ฒ์ ธ ์๋ค๊ณ ๋๋ผ์ง ์์ผ์ค ๊ฒ์ ๋๋ค. .NET 4.7์ ์ฌ์ ํ โโ.NET Standard 2.0๊ณผ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ๋ฅผ ์๋ฃํ์ง ๋ชปํฉ๋๋ค.
@davidfowl ํ์ง๋ง ์ด๊ฒ์ PCL์์์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ค์ ๋ถ๋ฌ์ผ์ผํฌ ๊ฒ์ด๊ณ , ๊ฐ์ฅ ๋ฎ์ ๊ณตํต ๋ถ๋ชจ์ ์ฌ์ฉ์ ๊ณ ํต์ด ๋ ๊ฒ์ ๋๋ค. ASP.NET์ด ์ฌ์ฉ์ ํฌ๊ธฐํ๋ค๋ ์ฌ์ค์ ์ด๋ฏธ ๊ทธ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
@davidfowl ๊ทธ๋ฌ๋ ์ด๊ฒ์ PCL๊ณผ ๋์ผํ ๋ฌธ์ ๋ฅผ ๋ค์ ๋ถ๋ฌ์ผ์ผํฌ ๊ฒ์ด๋ฉฐ, ๊ฐ์ฅ ๋ฎ์ ๊ณตํต ๋ถ๋ชจ๊ฐ ๋๊ณ ์ฌ์ฉํ๊ธฐ๊ฐ ๊ณ ํต์ค๋ฌ์ธ ๊ฒ์ ๋๋ค.
@Suchiman ๊ทธ๊ฒ ์ด๋ป๊ฒ ๋ฌธ์ ์ ๋๊น? PCL์ ์ ์ผํ ๋ฌธ์ ๋ NuGet์์ ๋์ ์ผ๋ก ๊ณ์ฐ๋๊ณ ํํ๋๋ ๋ฐฉ์์ด์๊ธฐ ๋๋ฌธ์ ์ป์ ์ ์๋ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค. ๋ค๋ฅธ ๊ตฌํ์ผ๋ก ๊ตฌํํ ์ ์๋ API ์ธํธ๊ฐ ์๋๋ผ๋ฉด netstandard๊ฐ ์ด๋ป๊ฒ ์๋ํ ๊น์?
PCL์ ์ฌ์ฉํ๊ธฐ ๊ท์ฐฎ๊ฒ ๋ง๋ ๊ฒ์ ๋งค์ฐ ์์ API ํ๋ฉด์ ์ด์์ต๋๋ค. .NET Standard 1.3-1.4๋ API ํ๋ช ํ๊ฒ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ตฌํํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค.
.NET Standard๋ ํญ์ ํญ์ ๊ดํ ๊ฒ์ด์์ต๋๋ค.
ASP.NET Core ๋ฐ .NET Core๋ ๊ฒฝ๋ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฒฝ์๋ ฅ ์๋ ํฌ๋ก์ค ํ๋ซํผ ์๋ฒ ์คํ์ ๊ดํ ๊ฒ์ด์์ต๋๋ค. ์ด๋ฌํ ์๋ฏธ์ ์จ๊ฒฐ์ ๋ ๊ด๋ฒ์ํ ํ๋ซํผ ์ง์(linux, osx, tizen, pi ๋ฑ์์ ์คํ)์ด์์ต๋๋ค.
@davidfowl
์ฐ๋ฆฌ๋ .NET Core์์ ํด๊ฒฐํ๊ณ ์ ํ๋ ์ฃผ์ ์ฌํญ ์ค ํ๋๋ก ๋ฌธ์์ด์ ์๋ณํ์ต๋๋ค. ์๋ง์ ์์ด๋์ด๊ฐ ์์ง๋ง ๊ทธ ์ค ํ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด์ utf8๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค(์๋ง์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์์ง๋ง ์ฌ๊ธฐ์์ ๋ฐ๋ผ์ค์ธ์).
์ฐ๋ฆฌ๊ฐ ์์ ํ๊ณ ์ถ์ ๋ ๋ค๋ฅธ ๊ฒ์ ๋ฐฐ์ด/๋ฌธ์์ด์ ์ ๋ ดํ ์กฐ๊ฐ, ์ธ์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ ๋๋ค. ์คํฌ์ ์ถ๊ฐํ์ต๋๋ค
๋ฒํผ๋ฅผ ๋ณด๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ๋ด๊ธฐ ์ํด. String ๋ฐ Array๊ฐ 0 ํ ๋น์ด ํ์ํ ์ฌ๋ผ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์๋ก์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ์๋ฏธ์ผ ์ ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ด๋ฌํ ์ ๋นํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ netstandard2.0
netcoreapp2.0
๋ฅผ ๋์์ผ๋ก ํด์ผ ํฉ๋๋ค. ๊ทธ ๋ง์ต๋๊น?
์ด์ 4.x ํ๋ ์์ํฌ๋ฅผ ๋ ์ด์ ์ง์ํ์ง ์๋ ๊ฒ์ ์ ๋ง ๋์ ์๊ฐ์ ๋๋ค. ๋ง์ ์์ ์ด ํ์ํ๋ฉด ์ฌ๋๋ค์ ์ ๊ทธ๋ ์ด๋ํ์ง ์์ต๋๋ค. ์ฝ 15๋ โโ๋์ 2002๋ ๋ถํฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ๋งค์ฐ ์ค๋๋ ํด๋์ ASP๋ฅผ ์ฐธ์กฐํ์ธ์. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ๊ณ ์ ์ ์ธ ASP์ ์กด์ฌํ๋ ์ค๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ์ง๊ณ ์์ต๋๋ค! Microsoft๋ ๋น์ทํ ๊ฒ์ ๋ค์ ๋ณด๊ณ ์ถ์ดํฉ๋๊น? ์ค๋๋ 4.x ์ง์์ ์ค๋จํ๋ ๊ฒ์ ์๋ฌด์ ์ผ๋ก ์ํ๋์ด์ผ ํ๋ ์ผ์ด์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก๋! ์ง๊ธ์ ์๋๋๋ค. ์ด๊ฒ์ .NET ์ฝ์ด๊ฐ ์ฌ์ค์์ ํ์ค์ด๊ณ ์ค๋๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ง net 4.x๋ฅผ ์ฌ์ฉํ๋ ๋ช ๋ ์์ ์ต์ ์ด ๋ ์ ์์ต๋๋ค.
(ASP).NET Core ์ด๋ฉด์ ์์ด๋์ด๋ ์ ๋ง ํ๋ฅญํฉ๋๋ค. Microsoft๊ฐ .NET์ด ์ถ์๋ ์ดํ ๊ฐ์ฅ ์ํ ์ผ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ฌํ ํผ๋์ ์ด ๋ฉ์ง ๊ฐ๋ ์ ๋ฌด๋๊ฒ ๋ง๋ญ๋๋ค. ๋ํ Microsoft๊ฐ ์ปค๋ฎค๋ํฐ์์ ๋ ผ์์กฐ์ฐจํ์ง ์๊ณ ์ค์ค๋ก ์ด๋ฌํ ๋๊ท๋ชจ ๋ณ๊ฒฝ์ ๊ฒฐ์ ํ๋ค๋ ๊ฒ์ ๋งค์ฐ ์ฌํ ์ผ์ ๋๋ค! ์ด ํ์ฌ๋ ์์ง ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์์ ํ ๋ฐฐ์ฐ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค.
@davidfowl
.NET Standard๋ ํญ์ ํญ์ ๊ดํ ๊ฒ์ด์์ต๋๋ค.
API ๋๋ ํ๋ซํผ์ ํญ?
.netcoreapp
.netstandard
๋ฅผ ์งํ์ํค๋ ๋ฐ ๋ฌธ์ ๊ฐ ์์ต๋๊น?
๋ค๋ฅธ ํ๋ ์์ํฌ์์๋ ๊ตฌํ๋์ง ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ BCL ์กฐ์ ๋์์ด .netcoreapp
์๋ง ํด๋นํฉ๋๊น?
$# .netcoreapp2.1
์ ๋์์ .netstandard2.1
๋ฅผ ๋ฆด๋ฆฌ์คํด๋ .netcoreapp2.1
๋ฅผ ๋จผ์ ๋ฆด๋ฆฌ์คํ๊ณ $#์ ๋์์ .netstandard2.1
๋ฅผ ๋ฆด๋ฆฌ์คํ๋ ๊ฒ๊ณผ ์ฐจ์ด๊ฐ ์์ต๋๋ค .net50
, ๋จ .netstandard2.1
๋ฅผ ๋์์ผ๋ก ํ๋ ํจํค์ง๋ .net50
์์ ์ฆ์ ์๋ํ๊ธฐ ์์ํ์ง๋ง .netcoreapp2.1
๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ ์ฐจ๋จ๋ฉ๋๋ค.
ASP.NET Core๋ .NET Core๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์์ ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์ด๋ฉฐ ํฅํ .NET Core๋ฅผ ๋์์ผ๋ก ํ ์์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋์ .NET Standard๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์์ ์์ค ์น ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ๊ฐ ๋ ์๋ ์์ต๋๋ค. ํน์ ๊ตฌํ์ด ์๋ ์ฐธ์กฐ API ์ธํฐํ์ด์ค์ ๋๋ค.
.NET Standard์ ๊ณต๊ฐ ํฌ์ง์ ๋์ ๊ตฌํ ์ธ๋ถ ์ฌํญ์ ์ ์ณ๋๊ณ ๊ตฌ์ถํ๊ธฐ ์ฌ์ด ๋์์ด ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๋ค๋ฃจ๋ Microsoft์์ ์ง์ ์ ๊ณตํ๋ 2๊ฐ์ ๊ณต์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ ์ง๊ธ ๊ทธ ์ด์ผ๊ธฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๊น? .NET Framework๊ฐ ๋ฐ๋ผ์ก์ง ๋ชปํ๋ค๋ฉด ๊ทธ๊ฒ์ ์์ ์ ๋ฒ์ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ด๋ ๊ทธ๋ ๊ฒ ํ ๊ฐ๋ฅ์ฑ์ด ์๊ฑฐ๋ ๋ค๋ฅธ ์ 3์ ํ๋ ์์ํฌ๊ฐ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ํ์ค์ ์ผ๋ก ๋ณด์กฐ๋ฅผ ๋ง์ถ๋ ๋จ์ผ ๊ตฌํ๋ง ์๋ค๋ฉด ์ด๋จ๊น์? ์ด๊ฒ์ด ๋ฐ๋ก ํ๋์ ๊ตฌ์ฒด์ ์ธ ๊ตฌํ์ด ์๋๋ผ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธํฐํ์ด์ค๊ฐ ์๋ ์ด์ ์ด๋ฏ๋ก ์ ์ฐ์ฑ๊ณผ ์ด์ ์ด ์์ต๋๋ค.
ASP.NET Core 2.0์ ๋ฒ์๋ฅผ .NET Standard 2.0๊ณผ ์ธ๋ผ์ธ์ผ๋ก ์ถ์ํ ๋ค์ ์๋ก์ด ๊ธฐ๋ฅ์ .NET Standard 2.1์ ์ฌ์ฉํ์๊ฒ ์ต๋๊น? ์ ์ ํ ์ง์ ์ผ์ ์ ์ถ๊ฐํ๋ฉด ์ด ๋ชจ๋ ๋๋ ๋ง๊ฐ ํด๊ฒฐ๋์ง ์์๊น์? Microsoft๋ .NET Standard์ ๋ ํ๋ ์์ํฌ๋ฅผ ๋ชจ๋ ์์ ํ๊ณ ์์ผ๋ฏ๋ก ๋ฒ์ ์ฆ๊ฐ์ ๋ํ ์ด๋ฌํ ๋๋ ค์์ ์์ ํ ๊ทผ๊ฑฐ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค...
ASP.NET์์ ASP.NET Core๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๋ชจ๋ ์ฌ๋์ ์ํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์๋๋ผ๋ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
์ ์ฒด ํ๋ ์์ํฌ์ ASP.NET์ ๊ทธ๋๋ก ์ ์ง๋๊ณ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ค์ง๋ง Core์๋ ๋ค๋ฆ ๋๋ค.
๋ง์ด๊ทธ๋ ์ด์ ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ์์ง์ง๋ง 100% ์ผ์นํ์ง๋ ์์ต๋๋ค.
์ฌ๋๋ค์ ์ฌ์ ํ โโ๊ณ ์ ์ ์ธ ASP๋ฅผ ์คํํฉ๋๋ค. ๊ทธ๋ค์๊ฒ๋ ์ข์ต๋๋ค.
@davidfowl ์ ๋ ํ ์ ์ฒด์ ์ฌ๋ฌ๋ถ ๋ชจ๋์ ๋ฐ์ ์ ํฐ ์กด๊ฒฝ์ ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ถ๋ ์ด๊ฒ์ด ์ผ์ด๋๊ณ ์๋ ์ผ์ ๋ํด ์์ก์ ๋ณด๋ ๊ฒ์ผ๋ก ๋ฐ์๋ค์ด์ง ๋ง์ญ์์ค. ์ฌ๋ฌ๋ถ์ ๊ฐ์ฒ์์ด๋ฉฐ ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฌ๋ฌ๋ถ์ ์ฌ๋ฐ๋ฅธ ์ผ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ชจ๋ฒ์ผ๋ก ๋ณด๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ์ด๋ฌํ ์์ ์ค ๋ง์ ๋ถ๋ถ์ ์ฆ๊ฐ์ ์ธ ๋ชฉํ ๋ณ๊ฒฝ ๋ฌธ์ ๋ก ๋ณด์ง ์์ต๋๋ค. ํนํ ์ ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๋ด๊ฐ ํ๋ ธ์ ์๋ ์์ต๋๋ค.
๊ทธ๊ฒ์ ๋ช ๋ฒ ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ๋๋ ์ฌ๊ธฐ์ ๋ฏธ์น ๊ฒ๋ค์ ๋์ง๊ณ ์ถ์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ ค๋ ๊ฒ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์๋ฌด โโ์๊ด์ด ์์ผ๋ฉฐ, ์ด ์์ ์์ ๋ชจ๋ ์ถ์ธก์ ๋๋ค. ์ฌ๋ฌ ์ฌ๋๋ค์ด .NET Standard ๋์ .NET Core๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ ์ด์ ๋ฅผ ๋ฌป์ต๋๋ค.
- ์ฐ๋ฆฌ๋ .NET Core์์ ํด๊ฒฐํ๊ณ ์ ํ๋ ์ฃผ์ ์ฌํญ ์ค ํ๋๋ก ๋ฌธ์์ด์ ์๋ณํ์ต๋๋ค. ์๋ง์ ์์ด๋์ด๊ฐ ์์ง๋ง ๊ทธ ์ค ํ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด์ utf8๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค(์๋ง์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์์ง๋ง ์ฌ๊ธฐ์์ ๋ฐ๋ผ์ค์ธ์).
์ฌ๊ธฐ์ ์ด ์ ์ ํ์คํ ๊ฒ์ ์ฒด์ธ์ ๊ฐ ๋ ๊ฒ์ด์ง๋ง IMO๋ ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ์ง์ ํ์ง ์์์ผ ํ๋ ์ ์ผํ ํญ๋ชฉ์ด๋ฉฐ ์ด์จ๋ netcoreapp20์ฉ์ด ์๋๋๋ค.
- ์ฐ๋ฆฌ๊ฐ ์์ ํ๊ณ ์ถ์ ๋ ๋ค๋ฅธ ๊ฒ์ ๋ฐฐ์ด/๋ฌธ์์ด์ ์ ๋ ดํ ์กฐ๊ฐ, ์ธ์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ ๋๋ค. ์คํฌ์ ์ถ๊ฐํ์ต๋๋ค
๋ฒํผ๋ฅผ ๋ณด๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ๋ด๊ธฐ ์ํด. String ๋ฐ Array๊ฐ 0 ํ ๋น์ด ํ์ํ ์ฌ๋ผ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์๋ก์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ์๋ฏธ์ผ ์ ์์ต๋๋ค. - ์ด๊ฒ์ ๋งค๋ฒ ๋ฐฐ์ด์ ํ ๋นํ์ง ์๋ ๋ถํ ์ ํ์ฉํ๋ String์ ๋ํ ์๋ก์ด ๋ฉ์๋๋ก ์ด์ด์ง๋๋ค.
- ์ด๋ก ์ธํด Span์ ์ฌ์ฉํ๋ Int, UInt ๋ฑ(TryParse)์ ๋ํ ์ค๋ฒ๋ก๋๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฐ ์คํฌ . - ์ด๊ฒ์ Span์ ์ฌ์ฉํ๋ ์๋ก์ด ์ธ์ฝ๋ฉ ๋ฃจํด์ผ๋ก ์ด์ด์ง๋๋ค.
. - ์์ถฉ๊ธฐ
๋ฐ ์คํฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ท ์ผํ ๋ฐฉ์์ผ๋ก ํํํ ์ ์๋๋ก ํ๊ณ Span์ ์ฌ์ฉํ๋ ๋ฏธ๋ฆฌ ๊ณ ์ ๋ ๋ฒํผ๋ฅผ ์ ๋ฌํ ์ ์๋๋ก ๋คํธ์ํน ์คํ์ ์ ๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํฉ๋๋ค. ๋๋ ๋ฒํผ .
์ด ๋ชจ๋ ๊ฒ์ ์ฌ์ ํ โโํ์ฌ netstandard ์์ ํจํค์ง๋ก ๊ตฌํ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฅผ ์ํด netstandard20๋ ํ์ํ์ง ์์ต๋๋ค. ๋๋ ์ด ์ง์ ๊ฐ์ง๊ณ ๋ค๋๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง MS๊ฐ ์๋ ์ธ๊ณ์ ๋๋จธ์ง ์ฌ๋๋ค์ ์ฌ์ฉ ์ฌ๋ก๋ ์ฑ๋ฅ์ด ๋ง์ง ์์ ๋ ํญ์ ๋ง์ถคํ BCL๊ณผ ์ ์ฌํ impl์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. Span API๊ฐ 2.0์ ๋์์ผ๋ก ํ์ง ์๋๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์๊ณ (๋ค์ ๋ณ๊ฒฝ๋์ง ์๋ ํ).
Kestrel์ 2.x ์๊ฐ ํ๋ ์(ํ์ฌ 2.1์ ๋ชฉํ๋ก ํจ)์ HTTP2๋ฅผ ๊ตฌํํ๋ฉฐ ALPN์ ์ํํ๋ ค๋ฉด SSL ์คํธ๋ฆผ์ ๋ํ ์๋ก์ด API๊ฐ ํ์ํฉ๋๋ค(https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation).
.NET Core์ Http ํด๋ผ์ด์ธํธ๋ ์ด์ค ์คํธ๋ฆฌ๋ฐ์ ์ง์ํ๋ฏ๋ก ์น ์์ผ์ด ์๋ ๋จ์ผ http ์์ฒญ์ ํตํด ์๊ทธ๋๋ฌ์์ http๋ฅผ ํตํ ์คํธ๋ฆฌ๋ฐ ๋์ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์กฐ๊ธ ๋ ๊น๋ค๋กญ๋ค๊ณ ์๊ฐํ์ง๋ง, Kestrel์ด libuv๋ฅผ ๊ฐ์ง๊ณ ๋ค๋๋ ๊ฒ๊ณผ ๋ณ๋ฐ ๋ค๋ฅด์ง ์์ต๋๋ค. .Net Core์ CURL ๊ตฌํ์ ๋ชจ๋๊ฐ ๋ฐ๋ผ์ก์ ๋๊น์ง netstandard ํ์ฅ ํจํค์ง๋ก ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- HttpClient ๋ฐ System.Net.Http์์ ํค๋ ํ์ ๊ตฌํ์ ๋ถ๊ธฐํ๊ณ ๊ฐ์ ํ ์ ์๋๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์ต๋๋ค(https://github.com/aspnet/HttpAbstractions/tree/d1d9bceff56cb44a194ae36923ce687e5e353006/src/Microsoft.Net.Http.Headers). .NET Framework์ .NET Core๋ฅผ ๋ชจ๋ ์ง์ํ๋๋ก ํฉ๋๋ค. .NET Core์๋ ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ ๋ณต์ฌ๋ณธ์ด ์์ต๋๋ค. ๊ฐ์ ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค(์ฌ์ฉํ ์ ์์).
๋ง์ต๋๋ค, ํ์ง๋ง ์ด๊ฒ์ ํ๋ฆผ์์ด ์ด ๊ฒฝ์ฐ์ ์ด๊ฒ์ ํ๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ธฐ๋ค๋ฆฌ๋ฉฐ ๊ตฌํ์ ๋งค๋ฌ๋ฆฌ๋ ๊ฒ์ด ๋ต๋ตํ์ง๋ง, ๋ค๋ฅธ ์ฌ๋์ด ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ ๋ ํ๋ ๊ฒ๊ณผ ์ด๊ฒ์ด ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
- ํต์ฌ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์์ ํ ์ ์๋ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ๋ถ๊ธฐํ์ฌ ๋น์ทํ๊ฒ ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ASP.NET Core https://github.com/aspnet/Common/tree/dev/src/Microsoft.Extensions.Primitives ๋ด์ ์์ฒด BCL์ ๊ฐ์ง๊ณ ์๋ ์ด์ ์ ๋๋ค.
๋ค์ ๋งํ์ง๋ง, ์ฐ๋ฆฌ์ฒ๋ผ.
ASP.NET Core์ .NET Core๋ ๊ฒฝ๋ ๋ง์ดํฌ๋ก ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฒฝ์์ ์ธ ํฌ๋ก์ค ํ๋ซํผ ์๋ฒ ์คํ์ ๊ดํ ๊ฒ์ด์์ต๋๋ค.
ASP.Net Core์๋ ๊ทธ๋ฐ ๋ฉ์์ง๊ฐ ์์์ต๋๋ค. .Net Core๋ ์ฒซ๋ ๋ถํฐ ์์ ํ ์๋ํ๋ xplat ์๋ฒ ์ธก .Net ํ๋ ์์ํฌ ํ์ ์งํฉ์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ฐ์์ต๋๋ค. .Net Core๊ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ง์ ์ํ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ASP.Net Core์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ค์์ต๋๋ค. ์ฝ์ ์ฑ, ๋ฐ์ดํฐ ๋ถ์, DB ์๋น์ค ๋ฑ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. .Net Core์ ๋ฐฉํฅ์ ํจ๊ณผ์ ์ผ๋ก "ASP.Net Core ํ์ด ๊ฐ์ฅ ์ํ๋ ๊ฒ"์ ๋๊น?
์ ์ฒด ํ๋ ์์ํฌ์ ASP.NET์ ๊ทธ๋๋ก ์ ์ง๋๊ณ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ค์ง๋ง Core์๋ ๋ค๋ฆ ๋๋ค.
๊ทธ๋ด๊น์? ์์ง MS์์ ์์ง ์์ ์ค์ด๋ผ๊ณ ํ์ธํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์ ์ง๊ฐ์ ๊ทธ๋ ์ง ์๋ค๊ณ ํฉ๋๋ค. ์๊ฒ ์ด. ํ์ด ์์ ๋ก์์ง๋ ค๋ฉด "์ด๋ํ์ง ์์ผ๋ฉด ์ง๋" ์ ํ์ ์๊ฐ์ด ํ์ํฉ๋๋ค. ์์ง์ ๊ทธ๋ฐ ์๊ฐ์ด ์๋๊ฐ ์ถ๋ค.
Oracle.Net ๋๋ผ์ด๋ฒ, NHibernate ๋ฐ RabbitMQ(๋ชจ๋ 4.6์ ์์)๋ฅผ ์ฌ์ฉํ๋ ๋น์ฆ๋์ค ๋ก์ง 4.6 ์ด์ ๋ธ๋ฆฌ๊ฐ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ASP.Net๊ณผ์ ์ธํฐํ์ด์ค๋ ๋น์ฆ๋์ค ๊ฐ์ฒด, ์์ฒญ ๋ฐ ์๋ต์ ํตํด์๋ง ์ด๋ฃจ์ด์ง๋๋ค. ์ฌ์ปดํ์ผ ์์ด ASP.Net Core 2์์ ์ด ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๊น?
๋ด ๋น ๋ฅธ ์์ฝ
@stefan2410 ์งง์ ๋๋ต, ์๋์, ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. netstandar 2.0์ฉ์ผ๋ก ์์ฑ๋ ๊ฒฝ์ฐ์๋ง ํด๋น ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
@mattnischan
์ด ๋ชจ๋ ๊ฒ์ ์ฌ์ ํ โโํ์ฌ netstandard ์์ ํจํค์ง๋ก ๊ตฌํ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ฅผ ์ํด netstandard20๋ ํ์ํ์ง ์์ต๋๋ค. ๋๋ ์ด ์ง์ ๊ฐ์ง๊ณ ๋ค๋๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง MS๊ฐ ์๋ ์ธ๊ณ์ ๋๋จธ์ง ์ฌ๋๋ค์ ์ฌ์ฉ ์ฌ๋ก๋ ์ฑ๋ฅ์ด ๋ง์ง ์์ ๋ ํญ์ ๋ง์ถคํ BCL๊ณผ ์ ์ฌํ impl์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์ฃ์กํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์์ญ์ด ํจ์น ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋น์ ์ด ์ ์ํ์ง ์๋ ํ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ ํ์ ์ถ๊ฐํ๊ณ ๊ธฐ์กด ์ ํ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
Span API๊ฐ 2.0์ ๋์์ผ๋ก ํ์ง ์๋๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์๊ณ (๋ค์ ๋ณ๊ฒฝ๋์ง ์๋ ํ).
Span์ 2.0์ ๊ตฌํ์ผ๋ก ์กด์ฌํ์ง๋ง ๊ณต๊ฐ API๋ ์๋๋๋ค. ์ฐ๋ฆฌ๋ ๋ถ ๋ฒ์ ์์ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋๋ก ์๋ก์ด ๋ฉ์ด์ ์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋ญ๋๋ค. ASP.NET Core 2.1์ด .NET Standard 2.1์ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ .NET Framework ์ง์์ด ๋ค์ ์ค๋จ๋ฉ๋๋ค.
๋๋ ์ด๊ฒ์ด ์กฐ๊ธ ๋ ๊น๋ค๋กญ๋ค๊ณ ์๊ฐํ์ง๋ง, Kestrel์ด libuv๋ฅผ ๊ฐ์ง๊ณ ๋ค๋๋ ๊ฒ๊ณผ ๋ณ๋ฐ ๋ค๋ฅด์ง ์์ต๋๋ค. .Net Core์ CURL ๊ตฌํ์ ๋ชจ๋๊ฐ ๋ฐ๋ผ์ก์ ๋๊น์ง netstandard ํ์ฅ ํจํค์ง๋ก ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ง์ํ์ ๋ด์ฉ์ BCL์ ๋ชจ๋ ํด๋์ค ์ด๋ฆ์ .NET Standard ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ์ด๋ฆ์ ๋ฐ๊ฟ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
.Net Core๊ฐ ๋ง์ดํฌ๋ก์๋น์ค๋ง์ ์ํ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์ํ๋ ๊ฒฝ์ฐ ASP.Net Core์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ค์์ต๋๋ค. ์ฝ์ ์ฑ, ๋ฐ์ดํฐ ๋ถ์, DB ์๋น์ค ๋ฑ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. .Net Core์ ๋ฐฉํฅ์ ํจ๊ณผ์ ์ผ๋ก "ASP.Net Core ํ์ด ๊ฐ์ฅ ์ํ๋ ๊ฒ"์ ๋๊น?
์๋์, .NET Core๋ ์๋ ํต์ฌ์ ์นดํ ๊ณ ๋ฆฌ๊ฐ ์์๋ ๋ฒ์ฉ ํ๋ ์์ํฌ์ ๋๋ค. ASP.NET Core๋ .NET Core ์์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ ์์ง์ ์ด์ด์ผ ํ์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ด ํผ๋์ ์ผ๋ถ๋ฅผ ํผํ ์ ์์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ด๊น์? ์์ง MS์์ ์์ง ์์ ์ค์ด๋ผ๊ณ ํ์ธํ๋ ์ฌ๋์ ๋ณธ ์ ์ด ์์ต๋๋ค. ์ ์ง๊ฐ์ ๊ทธ๋ ์ง ์๋ค๊ณ ํฉ๋๋ค. ์๊ฒ ์ด. ํ์ด ์์ ๋ก์์ง๋ ค๋ฉด "์ด๋ํ์ง ์์ผ๋ฉด ์ง๋" ์ ํ์ ์๊ฐ์ด ํ์ํฉ๋๋ค. ์์ง์ ๊ทธ๋ฐ ์๊ฐ์ด ์๋๊ฐ ์ถ๋ค.
์, HTTP/2 ์ง์์ด ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋์์ต๋๋ค. ASP.NET ๋ฐ IIS์์ ์์ ํ๋ ๋ค๋ฅธ ํ ์ด ์์ผ๋ฉฐ ๊ฐ์ ์์ ์ ์ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ASP.NET Core๊ฐ ์ํํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ท๋ชจ๋ ์๋๋๋ค.
๋๋ ์ ์ผ๋ณ๊ณผ ๊ฐ์ ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core ์๋น์ค๋ฅผ ์คํํ๋ ๊ฒ์ ํผํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด ๊ทธ๋ค์ง ๊ฐํ ๊ฐ์ ์ ๊ฐ๊ณ ์์ง ์์ต๋๋ค. ์ฆ, netstandard2.0
๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์๊ฑฐ๋ ๋จ์ํ ์ํ์ง ์์๊ธฐ ๋๋ฌธ์ .NET Standard๋ฅผ ์ง์ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ํ๋ฅญํ๊ณ ์ฑ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํผํด์ผ ํ์ต๋๋ค.
๋ด ๋๋ ค์์ ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core๋ฅผ ์คํํ๋ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๋ฉด ์ฌ์ฉ์๊ฐ ํ์ฌ MVC 5/Web API 2 ์ฑ์ ASP.NET Core๋ก ์ด์ํ์ง ๋ชปํ๊ฒ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ .NET์ผ๋ก์ ์ด์์ ํผํด์ผ ํ๋ ๋ ๋ค๋ฅธ ์ด์ ๋ฅผ ์ ๊ณตํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ธฐ์ค. ์ฌ์ฉ์ ์ค ๋๊ตฌ๋ ํํ์ ๋ฐ์ง ๋ชปํ๋ค๋ฉด ์ ์์ ์ ๊ทธ๋ ์ด๋๋ฅผ ๊ท์ฐฎ๊ฒ ํฉ๋๊น? ๊ทธ๊ฒ์ ๋ญ๊ณผ ๋ฌ๊ฑ์ ๋ฌธ์ ๊ฐ ๋๋ฉฐ ์ด๊ฒ์ด ์ฝ๊ฐ์ ๊ด์ฌ์ ๋๊ธฐ ์์ํ ๊ฒ์ฒ๋ผ ์ํ๊ณ ์ ์ฒด์ ํด๋ฅผ ๋ผ์น ๊น ๋๋ ต์ต๋๋ค. ๋จผ์ ASP.NET Core ์ฌ์ฉ์๊ฐ ํ์ํ๋ฉฐ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ํ๋ ๋งํผ ๋ง์ ์ฌ์ฉ์๊ฐ ์๋์ง ํ์ ํ ์ ์์ต๋๋ค. ๋ด๊ฐ ํ๋ ธ์ผ๋ฉด ์ข๊ฒ ์ด.
ASP.NET Core 2.1์ด .NET Standard 2.1์ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ .NET Framework ์ง์์ด ๋ค์ ์ค๋จ๋ฉ๋๋ค.
์๋์, Net Framework๊ฐ .NET Standard 2.1์ ์ง์ํ๋ ์ฆ์ ์๋์ผ๋ก ASP.NET Core 2.1์ ์ง์ํ๋ค๋ ์๋ฏธ์ ๋๋ค. 1~2๋ ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ๋ง์ ๋๋ค.
๋ค๋ฅธ ๋ชจ๋ .NET Standard ํธํ ํ๋ซํผ(Xamarin/Unity/...)์ ๋ํด์๋ ๋์ผํฉ๋๋ค.
.NET Standard๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ๋ค๋ ๊ฒ์ ๋ค๋ฅธ ํ๋ซํผ์ด _์ฌ์ง์ด_ ๋ฐํ์ง ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๋ฏธํ๊ณ , .NET Core๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถํ๋ค๋ ๊ฒ์ ๊ทธ๋ค์ด __์ ๋_ ์ผ์ง์ง ์์ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
์ค๋ ์ง์ฐ์ด ์๋๋ผ๋ full-fx๊ฐ netstandard๋ฅผ ๋ฐ๋ผ์ก์ ๊ณํ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
(๊ทธ๋ฆฌ๊ณ NET Core๋ฅผ ์ ์ธํ ๋ค๋ฅธ ํ๋ซํผ์ด .NET Standard 2.1์ ๊ตฌํํ ๊ฒ์ผ๋ก ์์๋์ง ์๋๋ค๋ฉด ์ .NET Standard๊ฐ ์์ต๋๊น?)
์ฃ์กํ์ง๋ง ์ค์ ๋ก๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์์ญ์ด ํจ์น ์ ํ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋น์ ์ด ์ ์ํ์ง ์๋ ํ ์ฐ๋ฆฌ๋ ์๋ก์ด ์ ํ์ ์ถ๊ฐํ๊ณ ๊ธฐ์กด ์ ํ์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
ํ์๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ 1.x์์ ์ด๋ฏธ ์ํ๋ ์์ ์ ๋๋ค. ๋ง์ต๋๊น? ๊ฐ์๊ธฐ ๋ ์ด์ ์ง์ ๊ฐ๋ฅํ์ง ์์ต๋๊น?
Span์ 2.0์ ๊ตฌํ์ผ๋ก ์กด์ฌํ์ง๋ง ๊ณต๊ฐ API๋ ์๋๋๋ค. ์ฐ๋ฆฌ๋ ๋ถ ๋ฒ์ ์์ ๋ ๋ง์ ๊ธฐ๋ฅ์ ์ํํ ์ ์๋๋ก ์๋ก์ด ๋ฉ์ด์ ์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋ญ๋๋ค. ASP.NET Core 2.1์ด .NET Standard 2.1์ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ .NET Framework ์ง์์ด ๋ค์ ์ค๋จ๋ฉ๋๋ค.
์ ๋จ์ด์ก์๊น์? Span์ด Framework์ _์ ๋_ ์กด์ฌํ์ง ์๋๋ค๋ ๋ง์์ด์ ๊ฐ์?
๋ฐ๋ผ์ ๋ง์ํ์ ๋ด์ฉ์ BCL์ ๋ชจ๋ ํด๋์ค ์ด๋ฆ์ .NET Standard ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ์ด๋ฆ์ ๋ฐ๊ฟ์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์, ์๋. ๋ค๋ฅธ API๊ฐ ํฌํจ๋ ์ฌ์ ์ด ํ์ํ ๊ฒฝ์ฐ Microsoft.Net์์ ์ด๋ฏธ ์ํํ ๊ฒ์ฒ๋ผ System.Collections.Generic.Dictionary๋ผ๊ณ ๋ถ๋ฅด์ง ๋ง๊ณ ๋ค๋ฅธ ๊ฒ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.*
์, HTTP/2 ์ง์์ด ๋ง์ง๋ง ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋์์ต๋๋ค. ASP.NET ๋ฐ IIS์์ ์์ ํ๋ ๋ ๋ค๋ฅธ ํ์ด ์์ผ๋ฉฐ ๊ฐ์ ์์ ์ ์ํํฉ๋๋ค. ๊ทธ๋ฌ๋ ASP.NET Core๊ฐ ์ํํ๋ ๊ฒ๊ณผ ๋์ผํ ๊ท๋ชจ๋ ์๋๋๋ค.
๊ณต์ ํด. ๋๋ ๊ทธ๊ฒ์ ๋ชจ๋ฅด๊ณ ์์๋ค.
ํ์๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ 1.x์์ ์ด๋ฏธ ์ํ๋ ์์ ์ ๋๋ค. ๋ง์ต๋๊น? ๊ฐ์๊ธฐ ๋ ์ด์ ์ง์ ๊ฐ๋ฅํ์ง ์์ต๋๊น?
๊ทธ๊ฒ์ ํผ๋์ ๋ง๋ญ๋๋ค. ๊ทธ๋ค์ ๊ฐ๋ฅํ ํ ์ ๊ฒ ํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. API ์ค๊ณ ๋ฐ ๋ฐฐํฌ๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ธ์ํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Microsoft๊ฐ ๊ทธ๋ ๊ฒ ๋ง๋๋ ๊ฒ์ด ์๋๋ผ ๋ง์ ํ๋ซํผ๊ณผ ์ผ์ ์ ์ง์ํ๋ ํ์ค์ ๋๋ค. ๋๋ ๊ทธ ์ค๊ฐ์ ๋ช ๋ฒ์ด๊ณ ๋ชจ๋ ๊ฒ์ ๋งํ ๋๊น์ง ์ด๊ฒ์ ๊ฐ์ฌํ์ง ์์์ต๋๋ค. ํ์ง๋ง ํ์ ์ ๋ฌ์ด ๋ฉ์๋ ์์ค์์ ์ด๋ฃจ์ด์ก์ผ๋ฉด ํฉ๋๋ค. ์ง๊ธ๊น์ง ๊ฝค ๋ง์ ๊ฒฝ์ฐ๋ฅผ ํด๊ฒฐํ์ ๊ฒ์ ๋๋ค :(
์ ๋จ์ด์ก์๊น์? Span์ด Framework์ ์ ๋ ์กด์ฌํ์ง ์๋๋ค๋ ๋ง์์ด์ ๊ฐ์?
์ ์ฒด ํ๋ ์์ํฌ์๋ ์์ง ์๊ธฐ ๋๋ฌธ์ ํ์๋ผ์ธ์ด ๋ ์ด์ ์ ๋ ฌ๋์ง ์์ผ๋ฏ๋ก ASP.NET Core 2.0์์ ์ญ์ ํด์ผ ํฉ๋๋ค.
์ ์ฒด ํ๋ ์์ํฌ์๋ ์์ง ํ์๋ผ์ธ์ด ์๊ธฐ ๋๋ฌธ์ ํ์๋ผ์ธ์ด ๋ ์ด์ ์ ๋ ฌ๋์ง ์์ผ๋ฏ๋ก ASP.NET Core 2.0์์ ์ญ์ ํด์ผ ํฉ๋๋ค.
AFAIK, Spans๋ .NET Desktop์์ ์ฌ์ฉํ ์ ์๋ netstandard1.x
ํจํค์ง์ ์ผ๋ถ์
๋๋ค(์ด๊ฒ์ ์ด์ ๊ฐ๋ฅํ ๊ตฌํ์ด๋ฏ๋ก CLR์ ๋ฐฑ์
๋ ๊ฒ๊ณผ ๊ฐ์ ์ฑ๋ฅ ํฅ์์ด ์์ง๋ง ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ถฉ๋ถํ๋ค).
ํธ์ง: System.Memory
ํจํค์ง์๋ netstandard1.0
TFM์ด ์์ผ๋ฏ๋ก .NET 4.5์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ 1.x์์ ์ด๋ฏธ ์ํ๋ ์์ ์ ๋๋ค. ๋ง์ต๋๊น? ๊ฐ์๊ธฐ ๋ ์ด์ ์ง์ ๊ฐ๋ฅํ์ง ์์ต๋๊น?
๊ทธ๋ก ์ธํด ์ค๋ ํน์ ๋ฐฉํฅ์ ๊ธฐ๋ฅ ์์ ์ ์ค๋จํฉ๋๋ค. ์ด๋ ์๋์ ์ด๋ฉฐ .NET Framework๊ฐ ์๋ํ ์ ์๋๋ก .NET Standard ์ธ๋ถ์ ์๋ ํญ๋ชฉ์ ๋ณต์ฌํ๊ณ ๋ค์ ๊ตฌํํ์ฌ ์๋ก์ด API ์ฌ์ฉ์ ๊ฑฐ๋ถํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ด ์ ๋ถ๋ ์๋์ง๋ง ์์ผ๋ก ๋ค๋ฃจ๋ ค๋ ๋ช ๊ฐ์ง ๊ทผ๋ณธ์ ์ธ ๋ถ๋ถ์ด ์์ต๋๋ค. ๊ฒฐ๊ตญ ์ฐ๋ฆฌ(Microsoft)๊ฐ ์์ชฝ์ ์ ์ดํฉ๋๋ค.
์ ๋จ์ด์ก์๊น์? Span์ด Framework์ ์ ๋ ์กด์ฌํ์ง ์๋๋ค๋ ๋ง์์ด์ ๊ฐ์?
Span ์์ฒด์๋ ์ด๋์์๋ ์คํ๋๋ ์ด์ ๊ฐ๋ฅํ ๋ฒ์ ์ด ์์ต๋๋ค. ๋น ๋ฅธ ๊ตฌํ์ด .NET Framework์์ ๊ฐ๋ฅํ ์ง๋ ํ์คํ์ง ์์ต๋๋ค. Span์ ํ์ฉํ๋ .NET Framework์ ์ถ๊ฐ๋ API๋ Span ์์ฒด๋ณด๋ค ํจ์ฌ ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. .NET Framework์์ ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด์ ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝํ ๊ฒ์ด ์ธ์ ์ ๋๊น?
์, ์๋. ๋ค๋ฅธ API๊ฐ ํฌํจ๋ ์ฌ์ ์ด ํ์ํ ๊ฒฝ์ฐ Microsoft.Net์์ ์ด๋ฏธ ์ํํ ๊ฒ์ฒ๋ผ System.Collections.Generic.Dictionary๋ผ๊ณ ๋ถ๋ฅด์ง ๋ง๊ณ ๋ค๋ฅธ ๊ฒ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.*
๊ทธ๊ฒ์ด ๋ฐ๋ก ๋น์ ์ด ์ ์ํ๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ Microsoft.Extensions.Collections.Generic์ ์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํผํ๊ธฐ ์ํด ์ต์ ์ ๋คํ๊ณ ๊ฐ๋ฅํ ๊ฒฝ์ฐ ์ด์ API ๋ฐ ํด๋ฆฌํ์ ์ฌ์ฉํฉ๋๋ค(https://github.com/aspnet/DependencyInjection/blob/139d91e57dd31fcd5c6ddaf11ad1f771b5855807/src/Microsoft.Extensions.DependencyInjection/Internal/ConcurrentDiction). ์ด๊ฒ์ ์ง์ ๊ฐ๋ฅํ์ง ์์ผ๋ฉฐ .NET Core ์ฌ์ฉ์ ์ ๊ทน์ ์ผ๋ก ํผํ๊ธฐ ๋๋ฌธ์ .NET Core๊ฐ ์ด์ ์ ์ป์ง ๋ชปํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
๋ฒ์๊ฐ ์๋ @PinpointTownes ๋ ์ถฉ๋ถํ์ง ์์ผ๋ฏ๋ก ๊ธฐ์กด ์ ํ์ ๋ํ ๋ฉ์๋ ํธ์ถ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ ๋ ํด๋์ค ์์ค์ ํ์ ์ ๋ฌ์ด ์๋ํ์ฌ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
@0x53A
๊ณต์ ํด. NuGet์ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ถ๋ช ํ ์ง์๋์ง ์๋ ์ด์ .NET Framework ๋ฒ์ ์ ๋ํ ์ง์์ ์ค๋จํ์ง ์๋ ์ด์ ๋ฅผ ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น? ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ net20, net35, net40 ๋ฑ์ ๋์์ผ๋ก ํฉ๋๋ค. ASP.NET Core๋ฅผ ๊ณ์ ์ฌ์ฉํ๊ธฐ ์ํด ๊ฐ์ฅ ๋์ ๋ฒ์ ์ .NET Framework๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น? ๊ทธ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํ์ญ๋๊น?
์ด๊ฒ์ ์ผ ์คํ ํผ์ ๋๋ค. ASP.NET MVC 5/Web Api 2์์ Core๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ทจ์๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๋ง์ ์์ ์ ์ธ ํ๋ ์์ํฌ๊ฐ ์์ง ์ฝ์ด์ฉ์ผ๋ก ์ ๊ณต๋์ง ์์ต๋๋ค. EF Core๊ฐ ๊ธฐ๋ฅ ๋น๊ต ๊ฐ ์ถฉ๋ถํ ์ฑ์ํ์ง ์์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ฌ์ ํ EF6.x๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ฒ์๊ฐ ์๋ @PinpointTownes ๋ ์ถฉ๋ถํ์ง ์์ผ๋ฏ๋ก ๊ธฐ์กด ์ ํ์ ๋ํ ๋ฉ์๋ ํธ์ถ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
"ํ์"๋ ์๋ง๋ ์ฝ๊ฐ ๊ณผ๋ํฉ๋๋ค. ์คํฌ์ ์ฃผ๋ก ์ฑ๋ฅ์ ์ํด ์ฌ์ฉ๋๋ฏ๋ก .NET Desktop์ด ์คํฌ์ ๋ํ ๊ธฐ๋ณธ ์ง์์ ๋ฐ์ ๋๊น์ง ifdef๋ฅผ ์ฌ์ฉํ์ฌ .NET Desktop์์ ๊ธฐ์กด์ non-super-perfy ์ค๋ฒ๋ก๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ ์์ต๋๋ค.
@davidfowl ์ ๋ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๊ฐ ๊ฐ์ ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. netstandard๋ฅผ ๋ชฉํ๋ก ํ์๋ฉด ๊ฒฐ๊ตญ 1.x์์ 2.x๋ก ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค(์ง์ฐ์ด ์๋๋ผ๋). ๋๋ถ๋ถ์ ๊ฒฝ์ฐ netfx๋ฅผ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ(lib์ ๊ฒฝ์ฐ์ ๋ค๋ฆ)์ ๊ทธ๋ฆฌ ํฐ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
๊ทธ๋ฌ๋ ์ผ๋ถ ์ฑ์ netfx -> netcore๋ฅผ ์ ๋ ์ ํํ ์ ์์ผ๋ฏ๋ก netcore๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ 1.x์์ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ์์์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ์ ์์ Asp.net ์ฝ์ด๊ฐ netfx์์ ์คํ๋์ง ์์๋๋ผ๋ฉด ๋ ์ข์์ ๊ฒ์ ๋๋ค. ๊ฒฐ๊ตญ, ๊ทธ๋ค์ ์ด๋ฏธ ์ด๊ฒ์ ๋ง์ ์๊ฐ์ ํฌ์ํ์ ์ ์์ต๋๋ค.
๋๋ asp.net ์ฌ์ฉ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ธ์ ์ผ๋ก ์ด๊ฒ์ ํฌ์ํ์ง ์์์ต๋๋ค. ์ ํฐ ์ง๋ฌธ์ ์ฌ์ค ๊ทธ๋ฅ
์ค๋ ์ง์ฐ์ด ์๋๋ผ๋ full-fx๊ฐ netstandard๋ฅผ ๋ฐ๋ผ์ก์ ๊ณํ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
(๊ทธ๋ฆฌ๊ณ NET Core๋ฅผ ์ ์ธํ ๋ค๋ฅธ ํ๋ซํผ์ด .NET Standard 2.1์ ๊ตฌํํ ๊ฒ์ผ๋ก ์์๋์ง ์๋๋ค๋ฉด ์ .NET Standard๊ฐ ์์ต๋๊น?)
net20, net35 ๋ฑ์ ๋์์ผ๋ก ํ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ด๋ จํ์ฌ ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด ๋๋ถ๋ถ์ ์์ฑ์๋ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋ฎ์ ๋ฒ์ ์ ๋์์ผ๋ก ํ๊ณ ๋ค๋ฅธ ์ ํ์ ์ฌ์ง๊ฐ ์๋ ํ๋ซํผ๋ง ์๋ผ๋ ๋๋ค.
๊ทธ๋ฆฌ๊ณ __์, ์ด์ ๋ฒ์ ์ .NET Framework__์ ๋ํ ์ง์์ ์ค๋จํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์์ง ์ฌ์ฉํ ์ ์๋ ๋ช ํํ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ฉด ๋ฉ๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ "๊ทธ๋ฅ" ์ฌ์ปดํ์ผํ๊ณ ํ ์คํธํ์ฌ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค.
์ ๋ ์ฌ๋ฌ๋ถ์ด ๋ท์ฝ์ด๋ฅผ ๋์์ผ๋ก ํ ์ ์๋ ์ฑ์ ์๋ฅผ ์ฌ๊ฐํ๊ฒ ๊ณผ์ํ๊ฐํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋จ์ผ ํ์ ์์ค ํ์ฌ ์ข ์์ฑ๋ง์ผ๋ก๋ ์ด๋ฅผ ์ฐจ๋จํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค.
Span ์์ฒด์๋ ์ด๋์์๋ ์คํ๋๋ ์ด์ ๊ฐ๋ฅํ ๋ฒ์ ์ด ์์ต๋๋ค. ๋น ๋ฅธ ๊ตฌํ์ด .NET Framework์์ ๊ฐ๋ฅํ ์ง๋ ํ์คํ์ง ์์ต๋๋ค. Span์ ํ์ฉํ๋ .NET Framework์ ์ถ๊ฐ๋ API๋ Span ์์ฒด๋ณด๋ค ํจ์ฌ ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. .NET Framework์์ ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด์ ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝํ ๊ฒ์ด ์ธ์ ์ ๋๊น?
@davidfowl ๋๋ ์ด๊ฒ์ด ์๋ง๋ ๋ฌธ์ ์ ์ผ๋ถ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ ๋ ์์งํ ์ฌ๊ธฐ์์ ์ฝ๊ฐ ์ ๋ง์ ์นํธ์ ์ญํ ์ ํ๊ณ ์์ต๋๋ค. .Net Core ์ง์ ์ ์์๋ ๋ฏธ๊ฐ๋ฐ ์ฑ์ผ๋ก ์ค๊ฐ์ ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ฒฝ๊ณ๋ฅผ ๋๋๋ค๊ณ ์์ต๋๋ค.
๊ฐ๋ฅํ๋ฉด Kestrel๊ณผ ๊ฐ์ ๋ฉ์ง ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ .Net Core๊ฐ ์์ ํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋(๋๊ตฌ ๋ณ๊ฒฝ๋ง ๊ฐ๋ฅํ๋ค๋ฉด ๋คํ์ ๋๋ค), _๋๋ _ ๋ฉ์ง ์ฝ์ด ๋นํธ๋ฅผ ์ฌ์ฉํ์ฌ Framework๋ก ๋์๊ฐ๋๋ค. ๋๋ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด corefx๊ฐ ๋ง๋ค์ด๋ธ ๋ฐ์ ์ ์ ๋ถ๋ ์๋๋๋ผ๋ ๋๋ถ๋ถ์ด Framework vNext ๋๋ vNext+1์ ํฌํจ๋ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ (30,000ํผํธ ๋ณด๊ธฐ์์) ์ด ๋ณ๊ฒฝ ์ฌํญ๊ณผ ๋ค๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์์ Framework๊ฐ ๋ฏธ๋์ ํ๋ซํผ์ด ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
๊ทธ๋ฐ ๊ฑฐ๋ผ๋ฉด ๊ทธ๋ฐ ๊ฒ ๊ฐ์์. ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ๋ฐฉ๋ํ๊ธฐ ๋๋ฌธ์ BCL ์ ํ์ด๋ ifdef ์คํ๊ฒํฐ์ ๊ฐ๊น์ง๋ง ์์ ํ ๊ทธ๋ ์ง๋ ์์ ์ปค์คํ impl์ ๋ง์ด ๊ฐ๋ ๊ณ ํต์ ์ดํดํ๋ค๊ณ ๋งํ ๋ ์ ๋ฅผ ๋ฏฟ์ผ์ญ์์ค. ๊ทธ๋์, ๋๋ ํฉ๋ณ์ฆ์ ๋ฌด์ง์์ ์ผ์ ์ ์ํ๋ ๊ฒ์ด ์๋๋๋ค. ํ์คํ ์ ์ถฉ์ ์ด ์์ต๋๋ค.
์ฐธ์ผ๋ก ์ข์ ์ง๋ฌธ์ ๋๋ค. .net ํต์ฌ ๊ธฐ๋ฅ์ .NET ์ ์ฒด๋ก ๋ฐฑํฌํ ํ๋ฉด ๋ฌด์์ด ๋จ์ต๋๊น? ์ฌ๊ธฐ์์ ์ฝ์ ๊ฒ์ฒ๋ผ .NET ์ ์ฒด๋ ๋๋ฌด ๋ถ์์ง๊ธฐ ์ฝ๊ณ ์ฝ๋๋ฅผ ์ฎ๊ธฐ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ (๋งค์ฐ ๋๋ฆฌ๊ฒ ์ด๋) ์ธ์ ๋ ์ง ์ค๋จ๋ ์ ์์ต๋๋ค(์ผ๋ง๋ ์ฝํ ์๋์ง ๋ชจ๋ฅผ ์ ์์). ๋งค์ฐ ์์ฃผ.
๋ ๋ค์ผ ์๋ ์์ต๋๋ค. .NET ์ ์ฒด๋ก ๋ฐฑํฌํ ํ๋ ๊ฒ์ ๊ด์ฐฎ์ต๋๋ค. ๋ฆด๋ฆฌ์ค ๋น๋๊ฐ ๋ฎ๊ฑฐ๋(์: 6๊ฐ์์์ 1๋ ๋ง๋ค) ๋งค์ฐ ๋ณต์กํ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค. ์ ์๋ผ๋ฉด ์๋๋ฅผ ๋์ด๊ณ ์ฌ์ฉ์๊ฐ ์๊ธ์ ์ง๋ถํ๊ฒ ํ๊ณ ํ์๋ฅผ ํ๊ณ๋ก ์ฌ์ฉํ์ง ์๋๋ก ํ์ญ์์ค. ํ์๋ผ๋ฉด ๋ฏธ๋ ์ ์ค์ํ ๊ฒ์ ์ด์จ๋ .netcore์ API์ด๋ฏ๋ก netstandard๋ ์ค๋ฅ๋ผ๋ ์ฌ๋ฐ๋ฅธ ๊ฒฐ๋ก ์ด ์๋๋๊น?
์ ๋ .NET์ ๋ฐฉํฅ์ด ๋์๊ฐ ๋ฏธ๋์ ๋ํด ์ฌ๊ฐํ๊ฒ ์ฐ๋ คํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ ํ์ฌ๋ .NET ์ ์ฒด ๋ฐ .NET ํ์ค 1.6์ฉ ๋๊ตฌ๋ฅผ ๊ตฌ์ถํฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ .NET ๋ฐฉํฅ์ ์ถ์ง๋ ฅ(๋ช ๋ฌ ์ .NET ํต์ฌ ๋ฐํ์์ ๋งํ๋ฏ์ด .NET ์ ์ฒด๋ก ๋ฐฑํฌํธ๋ ์๋ก์ด ๊ธฐ๋ฅ)์ด ์ฌ๋ฌผ๊ณผ ์ํ๊ณ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ์กฐ๊ฐํ๊ฐ ์ฃฝ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ์ผ๋ก ๋๋ฉ๋๋ค.
์ด ์ค๋ ๋์ ์ด๋ค ๊ฒ๋ _all_ .NET์ ๋ฏธ๋์ ์ํ๊ณ๋ฅผ ์ ์งํ๋ ๋ฐ ํ์ํ ์ํ๊ณ๋ฅผ ์ํด ๊ด์ฐฎ๋ค๊ณ ์ ๋ฅผ ์์ฌ์์ผฐ์ต๋๋ค. ๋ ๊ทธ๋ฃน๋ง ๋ณผ ์ ์์ต๋๋ค.
์ด ๋์ ํ์ฌ ์ผ์นํ์ง ์์ต๋๋ค. Microsoft์ ๋๊ตฐ๊ฐ๊ฐ ์ผ๊ด๋ ์ด์ผ๊ธฐ๋ฅผ ์ ๊ณตํ์ฌ ์ค์ ๊ฑฐ๋๊ฐ ๋ฌด์์ธ์ง, ์ํฉ์ด ์ค์ ๋ก ์ด๋ค์ง, ์ฆ .net ์ ์ฒด์ ๋ํ ๊ธฐ๋ฅ ๋ฐฑํฌํ ๊ณผ ํจ๊ป .net ์ฝ์ด์์ ๋๋ฝ๋ ๋ฌด์ํ ๋ง์ ํญ๋ชฉ์ ๋ํด ์ํ๋ ์์ ์ ๋ชจ๋ ๋ณผ ์ ์๋๋ก ํด์ฃผ์ค ์ ์์ต๋๊น? (sqlserver ํญ๋ชฉ, ํธ๋์ญ์ ๋ฒ์ ๋ฑ) ๋ฐ Microsoft๊ฐ ์ด ์๋ก์ด ๋ฐฉํฅ์ ๋ฏธ๋๋ฅผ ์ํ ๊ฒฌ๊ณ ํ๊ณ ์์ ์ ์ด๋ฉฐ ์ ๋ขฐํ ์ ์๋ ํ๋ซํผ์ผ๋ก ํ๋งคํ์ฌ ๊ธฐ์ ๊ณผ ๋๊ท๋ชจ ํ์ด ๊ฑฑ์ ์์ด ์ ํํ ์ ์๋ค๊ณ ์๊ฐํ๋ ๋ฐฉ๋ฒ.
์ด ๋ชจ๋ ๊ฒ์ด ์ฅ๊ธฐ์ ์ผ๋ก ์ข์ ์ผ์ด๋ผ๋ ์ ์๋ ๋์ํ์ง๋ง 2.0์์ ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํ ์ง์์ ์ค๋จํ๋ ๊ฒ์ ๋๋ฌด ์ด๋ฅด๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ .NET Core๋ก ์ด๋ํ๊ณ ์ถ์ง๋ง ๋ถํํ๋ ํ์ฌ ๊ฐ์ฅ ํฐ ๋ฐฉํด ์์๋ ๊ฑฐ์ ๋ ์ ์ ์ธ Microsoft ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค(์: Entity Framework Core๋ ์์ง ์ถฉ๋ถํ์ง ์์ผ๋ฉฐ Azure Service Bus๋ ๋งค์ฐ ์ด๊ธฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ง ์์).
Azure ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ค์ ์ฃผ/๋ฌ์ ์ค๋น๋๊ธฐ๋ฅผ ํฌ๋งํ์ง๋ง EF Core๊ฐ ์กฐ๋ง๊ฐ ์ถฉ๋ถํ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ฒ ๋ ๊ฒ ๊ฐ์ง ์์ต๋๋ค.
EF6์ ๋ด๋ถ์ ๋ํด ์๋ฌด๊ฒ๋ ๋ชจ๋ฅด์ง๋ง netstandard๋ฅผ ๋์์ผ๋ก ํ๋ ํฉ๋ฆฌ์ ์ธ ๋ ธ๋ ฅ์ผ๋ก ๊ฐ๋ฅํ์ง ์์๊น์? ์ด๊ฒ์ ๊ฑฐ๋ํ ์ฐจ๋จ๊ธฐ๋ฅผ ์ ๊ฑฐ ํ ๊ฒ์ ๋๋ค ...
"๊ทธ๋ฅ 1.x์ ๋จธ๋ฌด๋ฅด๋ ๊ฒ"์ ์ข์ ๋์์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ํ๋ฉด ์๊ดํ์ง ์๋(๋๋ ๋ ๋ค ์ง์ํ๋ ๋ฆฌ์์ค/์ง์์ด ์๋) ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋ง์ด ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. 2.0
์ถ์ : ์ง๋ ๋ช ๋
๋์ .NET ์ํ๊ณ๊ฐ ์ผ๋ง๋ ๋ณต์กํด์ก๋์ง ๋งค์ฐ ์ค๋ง์ค๋ฝ์ต๋๋ค. ๋๋ ์๋ก์ด ๋ชจ๋ ๊ฒ์ ์ดํดํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ์๋นํด์ผ ํ๊ณ ์๋ก์ด ๊ฐ๋ฐ์๊ฐ ์ด๊ฒ์ ์ดํดํ๋ ๋ฐฉ๋ฒ์ ์์ง ๋ชปํฉ๋๋ค. ์ด๋ฌํ ๊ทน๋จ์ ์ธ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ํ์ฌ ์ธํฐ๋ท์๋ ์ค๋๋ ์ ๋ณด๊ฐ ๋๋ฌด ๋ง์ต๋๋ค.
๋ํ ๋ชจ๋ ๋ค๋ฅธ ์ ํ ๋ฒ์ (.net core, sdk, .net standard, ...)์ ๋งค์ฐ ํผ๋์ค๋ฝ์ต๋๋ค. 20๋ถ์ ์ค๋ช
์์ด .NET ํ์ค ํ
์ด๋ธ์ ์ดํดํ๋ ์ฌ๋์ ์์ง ๋ณธ ์ ์ด ์์ต๋๋ค. ๐
.NET ํ๋ ์์ํฌ์ ์ ์ ๋ฒ์ ๊ณผ ํจ๊ป .net ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋ชจ๋ ๋งํด์ MVC 5๋ก ๋์๊ฐ์ผ ํฉ๋๋ค.
๋ค. ๋๋ ๊ทธ ์ถ๋ก ์ ์ดํดํ๊ณ , ๋๋ ์ด๊ฒ์ด ์ค๋ ๊ฒ์ ๋ณด์์ด์ผ ํ๋ค๊ณ ๋งํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง, ์ฌ์ ๊ฒฝ๊ณ ์์ด ์ด๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ๋จ์ด์ก๋ค๋ ๊ฒ์ ๋งค์ฐ ์ค๋ง์ค๋ฝ์ต๋๋ค.
์ฐ๋ฆฌ๋ 10๋ ์ด์ ๋ ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ฌ๋ฌ MVC 3, 4, 5 ์ฑ, ์ฝ์ ์ฑ, Windows ์๋น์ค, ์์ญ๋ง ์ค์ ์ฝ๋๊ฐ ์๋ ๋ค๋ฅธ ๋ง์ ์ฑ ์ํ๊ณ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ํ๊ณ๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ผ๋ถ์ ๋นํด ์ ๊ทธ๋ ์ด๋ํ ์ ๋๋ก ๋์ ์ํฉ์ ์์ง๋ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ต๊ทผ์ ASP.Net Core 1.1์ ์ฌ์ฉํ๋ ๋ช ๊ฐ์ง ์๋ก์ด ์น ์ฑ์ ๋ง๋ค์์ต๋๋ค. ๋ฐ๋์ ์ ์ฒด 4.6.2 ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ฑ์ ๊ธฐ์กด ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ง์ ๋ถ๋ถ์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๋ฆฌ๋ project.json์ ์ฒ๋ฆฌํ๊ณ ์๋ก์ด .csproj๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋นํฉ์ค๋ฌ์ด ์์ ๊ฐ๋ฐ ์๊ฐ์ ์๋ชจํ์ต๋๋ค. ๋์ผํ ์๋ฃจ์ ์์ ์ด์ .csproj์ ์ .csproj๋ฅผ ํผํฉํ๋ ค๊ณ ์๋ํ๊ณ VS15๋ก ๋์๊ฐ์ ์ด์ .csproj ์ ํ์ผ๋ก ์์ ์ ์๋ฃํ์ต๋๋ค. ์ฒด๊ณ. ์ข ์์ฑ, ์๋ง์ ์ด์ ๋ธ๋ฆฌ ๋ฐ์ธ๋ฉ ๋ฌธ์ , ๋น๋ ๋ฐ ๊ฒ์ ๋ฌธ์ .. ๋ชฉ๋ก์ ๊ณ์๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๊ธ ์ฐ๋ฆฌ๋ ๋ง๋ค๋ฅธ ๊ธธ์ ๋์ด ๋งค๋ฌ๋ฆฌ๊ณ ๋ง๋์ต๋๋ค. ๋ช ๊ฐ์์ ๊ฑธ์น ๊ฐ๋ฐ์ ํฌ๊ธฐํ๊ฑฐ๋ ๋จผ์ ์๋ํ ์ ์๋ ๊ฒ๊ณผ ์๋ํ์ง ์์ ์ ์๋ ๊ฒ์ ํ์ธํ ๋ค์ ์ ๊ทธ๋ ์ด๋ ๋ฐฉ๋ฒ์ ์ฐพ์ ๋ค์ ๊ฐ๋ฅํ๋ค๋ฉด ์ํํ๋ ๋ฐ ๋ง์ ์๊ฐ์ ํ ์ ํด์ผ ํฉ๋๋ค.
๋๋ ๊ทธ ๋ฐฉํฅ๊ณผ ํ์์ฑ์ ๋์ํ์ง ์๋๋ค๊ณ ๋งํ ์๋ ์์ง๋ง ๋ ์ผ์ฐ ์์ฌ ์ํต์ ํ๋ค๋ฉด ๊ฐ์ฌํ์ ๊ฒ์ ๋๋ค.
์, ๋ฌผ๋ก Azure Service Fabric ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET ์ฝ์ด์์๋ ์คํ๋์ง ์์ต๋๋ค. ์ด๋ ์ฐ๋ฆฌ์๊ฒ ๋ ๋ค๋ฅธ ์ฐจ๋จ ์์์ ๋๋ค.
Microsoft(ํนํ Azure) ๋ด์์ ์ ์ ํ .NET ํต์ฌ ์คํ ๋ฆฌ๋ฅผ ์ ๋ฌํ ์ ์์ ๋๊น์ง ์ ์ฒด .NET ํ๋ ์์ํฌ๋ฅผ ์ง์ํด์ผ ํ๋ค๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
@cwe1ss ์ด ๋ณ๊ฒฝ์ .NET ์ํ๊ณ์ ๋ณต์ก์ฑ์ ์ด๋ ์ ๋ ์ค์ฌ์ค ๊ฒ์ ๋๋ค. ๋ ๊ฐ์ง ๋ค๋ฅธ ํ์(ASP.NET Core + .NET Full ๋ฐ ASP.NET + .NET Core)์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋ ์๋์ ๋ค๋จ์ด์ง ์ ๋ณด์ ์ ์ ์ผ๋ก ๋์ํ์ง๋ง ์ง๊ธ Microsoft์ฒ๋ผ ๊ณต๊ฐ์ ์ผ๋ก ๊ฐ๋ฐํ ๋๋ ํผํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@davidfowl
๋ค์ํ .NET ๋ฐํ์ ๊ฐ์ ์ฝ๋ ๊ณต์ ์คํ ๋ฆฌ๋ .NET Standard์ ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET Core ๋ฐ .NET Framework์์ ๊ณต์ ๋๋ ์ฝ๋๋ฅผ ๋์์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค.<
๊ทธ๋ฌ๋ ๋ด๊ฐ ์ดํดํ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ .net ํ์ค๋ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ค์ ๋ก ์ ์ฉํ ํ์ค์ด ์๋๋๋ค.
๋ง์ดํฌ๋ก์ํํธ๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ค์์ฑ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.<<
๋ฌธ์ ๋ ASP.NET Core๊ฐ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋๋ก ์๋๋ ์ ์ด ์๋ค๋ ๊ฒ์ ๋๋ค... ๊ทธ๋์ ASP.NET 4.x์์ ๊ทธ๋ ๊ฒ ํฐ ํจ๋ฌ๋ค์ ์ ํ์ด ์์๋ ๊ฒ์ ๋๋ค. ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ด ์์ ๋นํธ๋ผ๋ฉด .NET Framework์์ ASP.NET 4.x๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ ๊ฐ๊น์ด ์ฅ๋์ ์ง์๋๋ฉฐ Windows๊ฐ ์ด์ ์๋ ๋์ ๋ณด์ ํจ์น๊ฐ ์ ์ฉ๋ฉ๋๋ค.<
๋ณด์ ํจ์น๋ ๋ฌธ์ ์ ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค. ์น ํ์ค์ ๋๋ฌด ๋นจ๋ฆฌ ๋ณํ๊ธฐ ๋๋ฌธ์ ์ต์ ํ์ค์ ์ฌ์ฉํ ์ ์๋ ๋ฌด์ธ๊ฐ๊ฐ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด HTTPS v2์ ๋ํ ๋ด์ฉ์ ์์์ ๋ณธ ์ ์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ด ์ค์ ๋ก ๋ฌด์์ ์๋ฏธํ๋์ง ๋ชจ๋ฅด์ง๋ง ์์ ์ ๋ด ํ๋ ์์ํฌ๊ฐ ์ด๋ฌํ ๊ฒ๋ค์ ์ง์ํ ์ ์๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฒ์ ๋๋ค. v4์ด๋ v1์ด๋ ๊ฐ์ ํ๋ ์์ํฌ์ ์ด์ ๋ฒ์ ์ ๊ณ์ ์ ์งํด์ผ ํ๋ ๊ฒฝ์ฐ ํ์ํ ๊ฒ์ ์ง์ํ์ง ์์ ๊ฒ์ ๋๋ค.
ASP .net Core๋ ํญ์ .net Core์ ํ๋ ์์ํฌ ๋ชจ๋์์ ์คํ๋๋ ๊ฒ์ผ๋ก ๋ง์ผํ ๋์์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋งํ๋ฏ์ด ํ๋ ์์ํฌ๊ฐ ๋ฐ๋ผ์ก์ ๋๊น์ง 6๊ฐ์ ๋๋ 1๋ ์ ๊ธฐ๋ค๋ ค์ผ ํ๋ ๊ฒ์ ์ ๋ฅผ ๊ดด๋กญํ์ง ์์ต๋๋ค. ์ด์จ๋ ๋๋ ๋ณดํต 6๊ฐ์ ์ด์ ๋ค์ฒ์ง๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์๊ฐ์ ํฌ์ํ ๋ค๋ฅธ ๋ง์ Microsoft ๊ธฐ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ์กด ํฌ์๊ฐ ์์ ํ ํฌ๊ธฐ๋๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์คํ ํ
"๊ณต๊ฐ ๊ฐ๋ฐ"์ ์ํ @Rutix ์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐํ๋ ์ค๋ฌธ ์กฐ์ฌ ์์ด ๋๋๊ฒ๋ ์กฐ์ฉํ๊ฒ ์ด๋ฃจ์ด์ก์ต๋๋ค(๊ฒฐ๊ตญ ์ด ๋ฌธ์ ๋ ํ ๋ฆฌํ์คํธ๋ฅผ ๋ณด๊ณ ์๋ ์ปค๋ฎค๋ํฐ ํ์์ ์ํด ์์ฑ๋์์ต๋๋ค).
์กฐ์ฉํ ์ผ์ ํ๋ ๊ฒ์ ๊ณผ๊ฑฐ์ ๋ง์ดํฌ๋ก์ํํธ๋ฅผ ๋ฌผ๋ ธ๊ณ ๊ทธ๋ค์ ๋ฐฐ์ฐ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ์์ ํ ํ๋ ์์ํฌ ์ง์์ ์ค๋จํ๋ ๊ฒ์ด ์ปค๋ฎค๋ํฐ๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํ๊ณ ํ๋ซํผ์ ๋ํ ๋ฏฟ์๊ณผ ํฌ์๋ฅผ ํด์น ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์ ์๋ค๊ณ ๋งํ์ง ๋ง์ญ์์ค.
๋ง์ง๋ง ์ฌ๊ฑด์ https://github.com/dotnet/roslyn/issues/17054 ์์ง๋ง ์ ์ํ๊ฒ ์์ ํ์ต๋๋ค. ์ด๋ป๊ฒ ์งํ๋ ์ง ๊ถ๊ธํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋ด๊ฐ ์ดํดํ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ .net ํ์ค๋ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ค์ ๋ก ์ ์ฉํ ํ์ค์ด ์๋๋๋ค.
@stefanolson ์ ํํ์ง ์์ต๋๋ค. .Net Standard 1.x๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค๋๋ ๋ค์ํ ์ ์ฒด ํ๋ ์์ํฌ ๋ฒ์ ์์ ์คํํ ์ ์์ต๋๋ค. .Net Standard 2.0์ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ๋ณธ 4.6.1์์ ์คํํ ์ ์์ ์์ ์ ๋๋ค.
@Suchiman ๊ฑฐ๊ธฐ์ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด ์์ฌ ์ํตํ๋ ๋ฐฉ๋ฒ๊ณผ ์ปค๋ฎค๋ํฐ์ ํญํ์ ๋จ์ด ๋จ๋ฆฌ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ์ง ์๋ ๊ฒ ๊ฐ์ ์ฝ๊ฐ ์ค๋งํ์ต๋๋ค. ๊ทธ๋ค์ด ๋จผ์ ๊ทธ๊ฒ์ ๋ฐํํ๊ณ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ ํ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ์ ๋ ์ ์ฒ๋ฆฌํ ์ ์์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋ด๊ฐ ์ดํดํ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ .net ํ์ค๋ ์ง์ํ์ง ์์ผ๋ฏ๋ก ์ค์ ๋ก ์ ์ฉํ ํ์ค์ด ์๋๋๋ค.
@stefanolson ๊ทธ๋ ์ต๋๋ค . ๋ค๋ฅธ(๊ธฐ์กด) ๋ฒ์ ์ .NET Framework๋ ๋ค๋ฅธ ๋ฒ์ ์ .NET ํ์ค์ ๊ตฌํํฉ๋๋ค. https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ ์ฐธ์กฐ
์ด ์ค๋ ๋์ ์ฝ๊ฐ ๋ฆ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง Windows์ NetFX์์ ASP.NET Core๋ฅผ ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ์ฌ์ฉ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ".NET API์์ REST API๋ก ๋ณํ๋" ์ข ๋ฅ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋๋ค. ์ฒ์์๋ .NET API๋ก ์ ๊ณต๋์์ผ๋ฉฐ ๋ชจ๋ ์ข ๋ฅ์ Windows ํญ๋ชฉ์ ์ข ์๋ฉ๋๋ค.
REST API๋ฅผ ์ถ๊ฐํ ๋ ASP.NET Web API๋ฅผ ์ ํํ์ฌ ํธ์คํ ํฉ๋๋ค. Web API๊ฐ ASP.NET vNext/5/Core, __and__์์ ํตํฉ๋๊ณ ์๋ค๋ ๊ฒ์ด ๋ถ๋ช ํด์ง๋ฉด __ASP.NET Core๊ฐ NetFX__์์ ์คํ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์์๋์ต๋๋ค. ASP.NET vNext/5/Core๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด์์ต๋๋ค.
.NET Core๋ฅผ ํ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
(์ผ๋ถ)์ Linux ๋ฐ macOS์ ์ด์ํ์ง๋ง ์ฌ์ ํ .NET Core์์ ์คํ๋์ง ์๋ Windows ์ข
์์ฑ์ด ์์ต๋๋ค(ํฌํ
ํ ์ข
์์ฑ ๋ชฉ๋ก์ ๋ณด๋ ค๋ฉด CoreCompat.*
NuGet ํจํค์ง).
๊ฐ๋จํ ๋งํด์, ์ฐ๋ฆฌ๋ ์ด์ ASP.NET Core 1.x์ ๊ณ ์ ๋์ด ์์์ ์๊ฒ ๋์์ต๋๋ค. ์ด๋ ์ ํ๋ ๊ธฐ๊ฐ ๋์ ๊ณ์ ์ง์๋ ๊ฒ์ ๋๋ค. ๊ทธ ๋ค์์? ASP.NET 4๋ก ๋์๊ฐ์๊ฒ ์ต๋๊น?
.NET Core์ ๋ค๋ฅธ ์์ญ์์ ์ํํ๊ณ ์๋ ๋ชจ๋ ์ฑ๋ฅ ์์ ์ ์ดํดํ๊ณ ์์ง๋ง ์ ์ฌ์ฉ ์ฌ๋ก์์๋ ์ธํฐ๋ท์ ๋ ธ์ถ๋ ๋์ฉ๋ ์น ์ฌ์ดํธ๋ฅผ ํธ์คํ ํ์ง ์๊ณ REST API๋ฅผ ํธ์คํ ํ๊ณ ์์ต๋๋ค. ์ต๋ 10-20RPS?
์ฌ์ค, NET 4.x์์์ Visual Studio 2017 ๊ฒฝํ์ ์ฌ์ ํ โโ.NET Core๋ณด๋ค ํจ์ฌ ๋ซ์ต๋๋ค. ํ ์คํธ ํ๋ก์ ํธ๋ฅผ ๋ค์ ์ปดํ์ผํ๊ณ ํ ์คํธ ์ฐฝ์ ์ ํ ์คํธ๋ฅผ ํ์ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์ข์ ์์ ๋๋ค. . NetFX์์๋ ํจ์ฌ ๋น ๋ฆ ๋๋ค.
์ค๋๋ ์ฐ๋ฆฌ๋ ๋ณธ์ง์ ์ผ๋ก ๋์ผํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ปดํ์ผํ๋ NetFX ๋ฐ .NET Core ํ๋ก์ ํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ํฉ์ผ๋ก ๋๋ฉ๋๋ค. ์ด ์ด์ค ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ ์งํ๋ ์ ์ผํ ์ด์ ๋ .NET Core ํ๋ก์ ํธ(_ํนํ_ ๋จ์ ํ ์คํธ ๋ฐ ๋๋ฒ๊ฑฐ)์ ๋ํ Visual Studio์ ์ฑ๋ฅ ๋๋ฌธ์ ๋๋ค.
๋์ค์ ์๊ฐํด๋ณด๋ฉด, ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ถ์ ๋ฉฐ์น ์ ์ ์ด๋ฃจ์ด์ก๋ค๋ ๊ฒ์ ๋๋ค. ์์ง ๊ธฐ์ ์ ์ธ ์ด์ ๊ฐ ์์์ ๋ํ๋ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ASP.NET Core v3์์ ๋ณ๊ฒฝํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@mattnischan
@stefanolson ์ ํํ์ง ์์ต๋๋ค. .Net Standard 1.x๋ฅผ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ค๋๋ ๋ค์ํ ์ ์ฒด ํ๋ ์์ํฌ ๋ฒ์ ์์ ์คํํ ์ ์์ต๋๋ค. .Net Standard 2.0์ ๋์์ผ๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ด๊ฐ ๋ง์ง๋ง์ผ๋ก ๋ณธ 4.6.1์์ ์คํํ ์ ์์ ์์ ์ ๋๋ค.<
asp.net ์ฝ์ด๊ฐ .net ํ์ค์ด ์๋ .net ์ฝ์ด๋ฅผ ์คํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๊น? ๊ทธ๋์ ๋๋ .net ํ์ค์ ์์ ์ด ๋ฌด์์ธ์ง ์์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค. โ ๊ทธ๊ฒ์ด ๋ง๋ค์ด์ง์๋ง์ ์ฌ์ค์ ํ๊ธฐ๋๋ค๋ฉด ๋ง์ ๋๋ค.
asp.net ์ฝ์ด์ .net ํ์ค 2.1์ด ํ์ํ๋ค๋ฉด ํ์ฌ ํ๋ ์์ํฌ์๋ ์์ง๋ง ํ์ํ ๊ฒ๋ค์ด ์๊ธฐ ๋๋ฌธ์ ์์ ํ ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ต์ ๋ฒ์ ์ Asp.net ์ฝ์ด๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ ์ฒด .net ํ๋ ์์ํฌ๊ฐ ์ด๋ฌํ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ง์ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ์ต๋๋ค. ๊ทธ๊ฒ์ ํจ๊ณผ๊ฐ ์๊ณ ์๋ฏธ๊ฐ ์์ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ๋์ ๊ทธ๋ค์ ํ์ค์ ์ธ๋ชจ ์๊ฒ ๋ง๋๋ ํ์ค์ ํฌ๊ธฐํ๊ณ ์์ต๋๋ค (์ด ํผ๋์ค๋ฌ์ด ์ํฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ์๋ค๋ฉด)
๊ทธ๋์... ๋น๋ 2017์ด ๋ด์ผ๋ถํฐ ์์๋ฉ๋๋ค. ํ์ด ์ค๋นํ๋๋ผ ๋ฌด์ฒ ๋ฐ๋นด๋ ๊ฒ ๊ฐ์์. ์ผ๋ถ ๋ฐํ์ผ ์๋ ์๊ณ ์๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ค์๊ฒ ์ฝ๊ฐ์ ์จ์ ์ด ์ฌ์ ๋ฅผ ์ฃผ๊ณ ์ผ์ฃผ์ผ ํ์ ๋ค์ ์์งํ ์ ์์๊น์?
https://build.microsoft.com/ (์์์ผ 8:00 PST, 15:00 GMT ๋ฐ ๋ชฉ ์ ์ฌ?)
์ฐ๋ฆฌ๋ ๋ ๋ง์ด ์ ์ ์์ต๋๋ค. ์์ ์ ์์ต๋๋ค. ์ํฉ์ด ๋ ๋ช ํํ ์๋ ์๊ณ ๊ทธ๋ ์ง ์์ ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ASP.NET ํ์ ์กฐ๊ธ ๋ ์ ๋์ํ๊ณ ๋ชจ๋์ ๊ด์ฌ์ฌ์ ๋ ์ง์คํ ์ ์์ ๊ฒ์ ๋๋ค. @davidfowl ์ ์ฉ๊ฐํ๊ฒ ํด๋์ง๋ง!
@stefanolson ๊ทธ๋ฌ๋ ๋์ ๊ทธ๋ค์ ํ์ค์ ์ธ๋ชจ ์๊ฒ ๋ง๋๋ ํ์ค์ ํฌ๊ธฐํ๊ณ ์์ต๋๋ค (์ด ํผ๋์ค๋ฌ์ด ์ํฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ์๋ค๋ฉด)
.NET Standard์ ํต์ฌ์ ํธํ์ฑ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ .NET Standard๋ฅผ ๋์์ผ๋ก ํ ์ ์์ผ๋ฉฐ .NET Framework, .NET Core ๋๋ .NET Standard๋ฅผ ์ง์ํ๋ ๋ค๋ฅธ ๊ฒ์ ๊ด๊ณ์์ด ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
.NET Core์ ์์ ์ .NET Framework๋ฅผ ๋ค์ ์์ํ๋ ๊ฒ์ ๋๋ค. .NET Core๋ ํ๋ซํผ ๊ฐ, ๊ณ ์ฑ๋ฅ, ์คํ ์์ค์ด๋ฉฐ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด ๊ตฌํ์ utf8๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋๊ท๋ชจ์ด๋ฉฐ .NET Framework์์ ๋ณผ ์ ์์ ๊ฒ์ผ๋ก ์์๋๋ ๊ฒ์ด ์๋๋๋ค.
์ด ์ค๋ ๋๋ฅผ ์ฝ๊ณ ๋๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋๋์ด ๋ญ๋๋ค.
.NET Core -> .NET Framework๋ ASP.NET MVC -> WebForms์ ๊ฐ์ต๋๋ค.
๋๊ตฌ ์ธก๋ฉด๋ ๋ ๋ฒ์งธ๋ก ํ๊ณ ์ถ์ต๋๋ค. ํ์ฌ ๋ณต์/๋น๋/ํ ์คํธ ๋ฑ์ ์ฑ๋ฅ์ ๋งค์ฐ ๋์ฉ๋๋ค. "1.0์ ์ ์ง"ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ ๋์ ์ฑ๋ฅ์ ๊ฐ์ง ์ต์ SDK๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๊น? ์๋๋ฉด 1.x SDK๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ๊น์?
.NET Core ์คํ ๋ฆฌ๋ ๊ธฐ๋ณต์ด ๊ฐ๋ํ ๋ฉ์ง ๋๋ฌ๋ณด๊ธฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ต๊ทผ์ ASP.NET Core ์์ ์ ์์ํ๋๋ฐ ์ด์ ์ ๋ชจ๋ "์ฑ๊ณต"(๋ฒ์ ๊ด๋ฆฌ, ์ด๋ฆ ์ง์ , project.json - .csproj ์ ํ) ๋๋ฌธ์ .netstandard 2.0์ ๊ณ ๋ํ๊ณ ์์์ต๋๋ค. ์ด๊ฒ์ ์ฒซ ๋ฒ์งธ "์ค์ " ๋ฆด๋ฆฌ์ค๊ฐ ๋ ๊ฒ์ ๋๋ค.
ASP.NET Core 1.1์ด ์ฌ์ ํ ์ง์๋๊ณ ํฅํ 10๋ ๋์ ์ด์๋ ๊ฒ์ด๋ผ๋ ์ ์ ์ดํดํ์ง๋ง ์ฌ๋ฌ๋ถ์ ๋งค์ฐ ์ฉ๊ฐํ๊ฒ ____๊ทธ๊ฒ์__ ๋น ๋ฅด๊ฒ ์ด๋ํ๊ณ ASP.NET Core์ ์ด๊ธฐ ํ๋งค ํฌ์ธํธ ์ค ํ๋๋ฅผ ์๋ผ๋ ๋๋ค.
์ฐ๋ฆฌ ์ธก์์ ์ฐจ๋จ๊ธฐ(๋๋ ํ ๋ฆฌ ์๋น์ค ์ ์ธ)๊ฐ ๋ฌด์์ธ์ง ์๊ณ ์ถ๋ค๋ฉด: ์ฐ๋ฆฌ๋ ์ฌ์ ํ EF6์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ netstandardwhatever๋ฅผ ๋์์ผ๋ก ํ๋ ๊ณต์ Open XML SDK NuGet ํจํค์ง๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
์ฝ๋๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๋ฐ ์๊ฐ์ด ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค...
Asp.Net Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฆด๋ฆฌ์ค์ ์ ์ง ๊ด๋ฆฌ ๋จ๊ณ์ ์ผ๋ถ๋ก ๋์์ ์ง์ ํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ Core์์ ๋ฐ์ํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋ฐ์ผ๋ก netstandardXX
์ ์ถ์งํ๊ธฐ ์ํ ์ผ์ข
์ ํ๋ก์ธ์ค๋ฅผ ๊ณต์ํํ ์ ์์ต๋๊น?
๊ทธ๋๋ก, ANC ์น API๋ฅผ SPA(๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก WebForms ๋ ๊ฑฐ์ ์ฑ์์)์ ๋ ธ์ถํ๊ณ ํธ์ถํ ๋ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ํ๋ WebForms/MVC ์ฑ์ด ์์ง๋ง ๋ค์์ผ๋ก ์ธํด CoreCLR์์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. Sybase(ํ์ฌ SAP) Ase ADO.NET ๋๋ผ์ด๋ฒ์ ๋ํ ์ข ์์ฑ ์ด์ 9๋ ).
์ด ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ๋ ์ด์ ๋ด ๊ฒฝ๋ก๊ฐ ๋ฌด์์ธ์ง ํ์ ์ด ์์ง ์์ต๋๋ค. ๋ด๊ฐ ๊ณํํ ์ ์๋ ์ ์ผํ ํ์ ์ ๋ฒ๊ทธ๊ฐ ์๋ ๋๋ผ์ด๋ฒ๊ฐ ๋ฐ์คํฌํฑ ํ๋ ์์ํฌ์ ๊ณ์ ์กด์ฌํ๋ค๋ ๊ฒ์ ๋๋ค. ์ง๋ ๋ช ๋ ๋์ ASP.NET์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ์๊ฐ ๋ญ๋น๊ฐ ๋ ๊ฒ์ด๊ณ WebApi2๋ฅผ ๋์์ผ๋ก ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฌด์ํด์ผ ํฉ๋๊น? ๋๋ ์์ผ๋ก 10-15๋ ๋์ ์ฌ๊ธฐ์์ ์ง์๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ง์ด๊ทธ๋ ์ด์ ํ์ง ์๊ณ 2.x์ ์ด์ ์ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ANC 1.x๋ฅผ ๊ณ์ ์งํํด์ผ ํ๋ค๊ณ ๋งํด์ผ ํฉ๋๊น? (WebForms ์ฑ์ 1.1 ํ๋ ์์ํฌ๊ฐ ๋ฆด๋ฆฌ์ค๋ ์ดํ ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ์ ์ง ๊ด๋ฆฌ๋จ)?
@davidfowl
Span ์์ฒด์๋ ์ด๋์๋ ์คํ๋๋ ์ด์ ๊ฐ๋ฅํ ๋ฒ์ ์ด ์์ต๋๋ค. ๋น ๋ฅธ ๊ตฌํ์ด ๊ฐ๋ฅํ ์ง ํ์ ํ์ง ๋ชปํฉ๋๋ค.
.NET ํ๋ ์์ํฌ์์. Span์ ํ์ฉํ๋ .NET Framework์ ์ถ๊ฐ๋ API๋ Span ์์ฒด๋ณด๋ค ํจ์ฌ ๋ ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค. .NET์์ ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด์ ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝํ ๊ฒ์ด ์ธ์ ์ ๋๊น?
๋ผ๋?
๋ฌด์์ ๊ธฐ๋ค๋ฆฝ๋๋ค?
์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์น ๊ฐ๋ฐ์๋ ์๋๋๋ค. ์ฐ๋ฆฌ๋ ์๋ ๋์ ๋ ๋์ ๋ฌธ์์ด ์ฒ๋ฆฌ ์ง์์ ๊ฐ์ ํ ๊ธฐ๋ค๋ฆฌ๊ณ ์์๋๋ฐ ๊ฐ์๊ธฐ ์ฐ๋ฆฌ๊ฐ SOL์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ ๋๊น? .NET Framework ๋ฐ ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์๋ง์ ๋น ์น ์์ฉ ํ๋ก๊ทธ๋จ์ด Span์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฌธ์์ด ์ฒ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ก์ธ์คํ ์ ์๋ค๋ ์ฌ์ค์ ๋ฌด์์ ๋๊น?
์ด๊ฒ์ ๋ ์ด์ ASP.NET๋ง์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. ์ด๋ .NET Framework ๋ฐ ๊ธฐ๋ณธ ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ Microsoft์ ์ฅ๊ธฐ์ ์ธ ๋ ธ๋ ฅ์ ํต์ฌ์ ๋๋ค.
์๋ค์ํผ, @davidfowl ๊ณผ ๊ฐ์ ์ฌ๋๋ค์๊ฒ ๊ณ์ํด์ ๋ชจ๋ ์ฌ๋๊ณผ ์ด ํ ๋ก ์ ๊ธฐ์ฌํ ๋ชจ๋ ์ฌ๋์๊ฒ ๋ต์ฅ์ ๋ณด๋ด์ผ ํฉ๋๋ค. ์ค๋ ์ผ์ฐ๋ถํฐ ๋ฐ๋ผ์ก์ ๊ฒ์ด ๋ง์ง๋ง ๋ชจ๋ ์ฌ๋์ด .NET์ ์ฌ์ฉํ๊ณ /์ฌ์ฉํ๊ธฐ๋ฅผ ํฌ๋งํ๋ ์ธก๋ฉด์์ ๊ฐ ๋๊ธ์ ํตํด ๋ง์ ๊ฒ์ ๋ฐฐ์ฐ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๊ฒฐ๊ตญ ๋ชจ๋ ์ฌ๋์ ๋์์ผ๋ก ์ด๋ค ๊ธธ์ ๊ณง๊ฒ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ๋ชจ๋ ๋ฉด์ด ๊ณ ๋ ค๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ณต์ ๋ฐํ๋ฅผ ๊ฐ์ ํ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด net coreapp 2.0์ ASP.NET Core 2.0 ํ๋ก์ ํธ๊ฐ ๋ ๊ฑฐ์ NetFx ํด๋์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: net461)์ ์ข
์๋๋๋ก ํ๋ ํธํ์ฑ shim์ ์ ๊ณตํฉ๋๋ค.
ํ์ฌ ๊ณํ๋ ์ด๋ฌํ compat shim์ ๊ธฐ๋ฅ/์ ํ์ ๋ํ ์์ธํ ์ ๋ณด๋ ์ด๋์์ ์ฐพ์ ์ ์์ต๋๊น?
@dgaspar ๊ทธ๊ฒ์ ์ ํํ์ง ์์ต๋๋ค. ์๋ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. netcoreapp2.0
๋ net461
์์ ๋๋ถ๋ถ ์ API๋ฅผ ์ง์ํฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ net461
์ฉ์ผ๋ก ๋น๋๋๊ณ netcoreapp2.0
๊ฐ ์ง์ํ๋ ํ์ ์งํฉ ๋ด์ ์กด์ฌํ๋ API๋ง ํธ์ถํ๋ ๊ฒฝ์ฐ ์ด์จ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ํธ์ถํ๋ ๋ชจ๋ ํด๋์ค์ ๋ฉ์๋๊ฐ ์์ด์ผ ํ๋ฏ๋ก ์คํํฉ๋๋ค.
์ด์ ๋จ์ ๋ ์์ต๋๋ค. ๋ฉ์๋ ๊ฐ ์๊ฑฐ๋ ์ด๋ค ์์ผ๋ก๋ ์์ ํ ์ง์๋์ง ์์ผ๋ฉด ๋๋ฝ๋ ๋ฉ์๋ ๋ฑ์ ๋ํ ๋ฐํ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ์ปดํ์ผ ์๊ฐ ๊ฒ์ฌ๋ ์ข์ ๋ณด์ฅ์ด ์๋๋๋ค. ์๊ณ ์์ด์ผ ํ ์๋ ์ ๊ฒ์ด์ง๋ง ์์ง ์ ๋ฐ์ดํธ๋์ง ์์ ์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํธ์ถํ๋ API ์ธํธ๋ก โโ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@NickCraver ๊ธฐ์ตํ์๋ ๋ถ...
"imports": [ "dnxcore50", "portable-net45+win8" ]
12์์ ์์ฑํ ๊ด๋ จ ๋๊ธ์ ๋๋ค. 11๊ฐ์ ์์ง์๊ฐ๋ฝ์ ์๋ก ์ด์:
์ฌ๊ธฐ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ ๋ 15๋ ๋์ C# ์ฑ์ ์ถ์ํด ์์ต๋๋ค. ์์ด๋ฌ๋ํ๊ฒ๋ Microsoft์์ ๋ ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํจ์ ๋ฐ๋ผ ์ด์ ์๋ ๊ฑฑ์ ํ ํ์๊ฐ ์์๋ ๋ด๋ถ๋ฅผ ๊น์ด ํ๊ณ ๋๋ ๋ฐ ์ ์ ๋ ๋ง์ ์๊ฐ์ ํ ์ ํ๊ณ ์์ต๋๋ค. ๋น์ ์ ์๋ชปํ๊ณ ์์ด.
์ปดํ์ผ๋ฌ๊ฐ ํฌ์ฐฉํ์ง ๋ชปํ ์์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํจํค์ง ๊ด๋ฆฌ ์ ๋ฐ ์ค๋ฅ๋ก ๋ฐํ์์ ๋๋ผ๊ณ ์ถ๋ค๋ฉด Ruby๋ก ์ฑ์ ์์ฑํ๊ฒ ์ต๋๋ค.
node.js๋ฅผ ์ฌ์ฉํ๋ฉด ๋ชจ๋ netfx ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฝ๊ฒ ํธ์ถํ ์ ์์ต๋๋ค.
mvc ์ฝ๋๋ ์ ๋ง ์ฌ์ด ๋ถ๋ถ์ ๋๋ค. node.js ๋๋ nancy์์ ๋ค์ ์์ฑํ๋ ๋ฐ ๋ช ์ฃผ๊ฐ ๊ฑธ๋ฆด ์ ์์ง๋ง ๋น์ฆ๋์ค ๋ฐ ์๊ณ ๋ฆฌ์ฆ ์ฝ๋๋ฅผ ์ด์ํ๊ณ ์ด์ ์ฝ๋๋งํผ ๊ฒฌ๊ณ ํ๊ฒ ์๋ํ๋์ง ์ฆ๋ช ํ๋ ๋ฐ ํจ์ฌ ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค. ์์ค๊ฐ ์๋ ๊ฒฝ์ฐ๋ ๋งํ ๊ฒ๋ ์์ต๋๋ค.
RyuJit์ ์๋ก ๋ค์๋ฉด ํ๋ก๋์ ์ผ๋ก ์ถ์๋ ํ์๋ ์ฃผ์ ๋ฒ๊ทธ๋ฅผ ์ฐจ๋จํ๋ ๊ฒ์ด ๋ฐ๊ฒฌ๋์์ผ๋ฉฐ ์์ ํ ํด๊ฒฐํ๋ ๋ฐ 1๋ ์ด ๋ ๊ฑธ๋ ธ์ต๋๋ค. ์ ์๋๋ฌผ ๊ฐ๊ฒ๊ฐ ์๋๋ผ ํ๋ฃจ์ ์๋ฐฑ๋ง ๋ฌ๋ฌ๋ฅผ ๋ฒ๋ ๋ฐ ๋์์ด ๋๋ ์ฐ์ ์ฉ ๋๊ตฌ์ธ ์ํํธ์จ์ด๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
UI ํ๋ ์์ํฌ๋ winform์์ web์ผ๋ก ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ํต์ฌ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ/์๊ณ ๋ฆฌ์ฆ์ ํจ์ฌ ๋ ์์ ์ ์ด๊ณ ์ค๋ ์ง์๋ฉ๋๋ค. ๊ทธ๋์ ์๋ก์ด ๋น๋๋ UI ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋น์ฆ๋์ค/์๊ณ ๋ฆฌ์ฆ ์ฝ๋๋ฅผ ๋ค์ ์์ฑ/์ฌํ ์คํธํ๊ฑฐ๋ ํฌ๊ธฐํด์ผ ํฉ๋๊น? ์๋์, ์ฐ๋ฆฌ๋ ์๋ก์ด ๋ฐ์ง์ด๋ ๊ฒ์ด 5๋ ์์ ๋ ์ ํํ๋ ๊ฒ์ผ๋ก ๋์ฒด๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์์ง๋ง ์ฐ๋ฆฌ์ ๋น์ฆ๋์ค/์๊ณ ๋ฆฌ์ฆ ์ฝ๋๋ ๊ณ์ ์ฌ์ฉ๋ ๊ฒ์ ๋๋ค.
@qmfrederik
๋์ค์ ์๊ฐํด๋ณด๋ฉด, ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ์ถ์ ๋ฉฐ์น ์ ์ ์ด๋ฃจ์ด์ก๋ค๋ ๊ฒ์ ๋๋ค. ์์ง ๊ธฐ์ ์ ์ธ ์ด์ ๊ฐ ์์์ ๋ํ๋ด๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฐ๋ผ์ ASP.NET Core v3์์ ๋ณ๊ฒฝํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฐ๋ฆฌ๋ ๋ค์์ HTTP2 ์ง์์ ํ๊ณ ์์ผ๋ฉฐ ์๋ก์ด API๊ฐ ํ์ํฉ๋๋ค.
๋๊ตฌ ์ธก๋ฉด๋ ๋ ๋ฒ์งธ๋ก ํ๊ณ ์ถ์ต๋๋ค. ํ์ฌ ๋ณต์/๋น๋/ํ ์คํธ ๋ฑ์ ์ฑ๋ฅ์ ๋งค์ฐ ๋์ฉ๋๋ค. "1.0์ ์ ์ง"ํด์ผ ํ๋ ๊ฒฝ์ฐ ๋ ๋์ ์ฑ๋ฅ์ ๊ฐ์ง ์ต์ SDK๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๊น? ์๋๋ฉด 1.x SDK๋ฅผ ์ฌ์ฉํ๊ฒ ๋ ๊น์?
๋ค, ์๋ํฉ๋๋ค.
@davidfowl
๋ค์์ผ๋ก HTTP2 ์ง์์ ํ๊ณ ์์ผ๋ฉฐ ์๋ก์ด API๊ฐ ํ์ํฉ๋๋ค.<
๊ทธ๋ ๋ค๋ฉด asp.net core 2.0์์ ์ฌ์ฉํ ์ ์๋ HTTP2 ์ง์์ 1.x์์ ์ฌ์ฉํ ์ ์์ต๋๊น? ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ด๋ค ์ด์ ๋ก๋ ์์ ํ .net ํ๋ ์์ํฌ์ ๋ฌถ์ฌ ์๊ธฐ ๋๋ฌธ์ ์ต์ ๊ธฐ์ ์ ์ก์ธ์คํ ์ ์๋ ์์น์ ๋ํด ๊ฑฑ์ ํ๋ ์ข ๋ฅ์ ๋ฌธ์ ์ ๋๋ค. ์์์ ๋งํ๋ฏ์ด ํํฐ๊ฐ ๋ด๊ฐ ์ฌ์ฉํ๋ ๋ชจ๋ ํญ๋ชฉ์ ๋๋ฌํ๋ ๋ฐ 6๊ฐ์์์ 1๋ ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ ๊ถ๊ทน์ ์ผ๋ก ๋๋ฌด ๋ค์ณ์ง๋ ๊ฒ์ ์ํ์ง๋ ์์ต๋๋ค. ์ด ๋จ๊ณ์์ ์ฝ๋ ๊ณต์ ๋ฐ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ์ผ๋ก ์ธํด ์ ์ฒด .net ํ๋ ์์ํฌ๊ฐ ํ์ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ช ๊ฐ์ง ์ฌํญ์ ๋ช ํํ ํฉ๋๋ค.
@danielcrabtree
.NET Core์ ์์ ์ .NET Framework๋ฅผ ๋ค์ ์์ํ๋ ๊ฒ์ ๋๋ค. .NET Core๋ ํ๋ซํผ ๊ฐ, ๊ณ ์ฑ๋ฅ, ์คํ ์์ค์ด๋ฉฐ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค.<
์ ๋ง ํ์์ ์ ๋๋ค. ๋ฌธ์ ๋ ๊ธฐ์กด ์ฝ๋ ๊ธฐ๋ฐ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๊ณ .net ์ฝ์ด์ ํจ๊ป ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. .net ์ฝ์ด์ ๊ตฌ์ถ๋ WPF๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด ์ด๋์์๋ .net ์ฝ์ด๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ง ์๊ณ ๋ด ์ฝ๋๊ฐ WPF์ ASP.net ๊ฐ์ ๊ณต์ ๋๋ฏ๋ก ๊ณต์ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ต์ ์น ๊ธฐ์ ๊ณผ ๋ณด์ ๊ธฐ์ ์ ๋๋ฌด ๋ค์ฒ์ง๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ ์ค ๋๋ถ๋ถ(๋ชจ๋?)์ 2.x ์ด์์๋ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ์ค๋ ๋์ .NET Core์ ๋ค๋ฅธ ๋ฌธ์์์ ์ฌ๋ฌ ๋ฒ ํ๋ซํผ ๊ฐ์ผ๋ก ์ค๋ช ๋ฉ๋๋ค. ์ด๊ฒ์ ํ๋ซํผ์ผ๋ก ์ด๋ํ๋ ์ฃผ์ ํ๋งค ํฌ์ธํธ ์ค ํ๋๋ก ๊ด๊ณ ๋์์ต๋๋ค.
๊ทธ๋ฌ๋ ํธ์ํฐ์ ์ด ๋ํ์์ ๋ช ํํ ์ ์ ์๋ฏ์ด ๊ทธ๋ ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
https://twitter.com/James_M_South/status/861595907782987776
๊ทธ๋ฆฌ๊ณ ์์ ๋๊ธ; ๊ฐ์กฐ ๋ด.
.NET Core 2์์ ๋๋ฝ๋ ๋๋จธ์ง ํฐ ๊ฒฉ์ฐจ๋ System.DirectoryServices ๋ฐ System.Drawing์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฒ ์ฌ๋ฆ ์ Windows์ .NET Core์์ ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ Windows ํธํ ํฉ ์ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ ๋ ImageSharp ๋ฅผ ์ฌ์ฉํ์ฌ System.Drawing
์ ์ํด ๋จ๊ฒจ์ง ๊ฒฉ์ฐจ๋ฅผ ์ฑ์ฐ๊ธฐ ์ํด ์์ฃผ ์ด๊ธฐ๋ถํฐ .NET Core๋ก ๋งค์ฐ ์ด์ฌํ ์ผํด ์์ผ๋ฉฐ ์ด์ ๋งค์ฐ ํผ๋์ค๋ฝ๊ณ ์ฝ๊ฐ ๋ถ๋ง์ ํ๊ณ ์ง๋ฌธํ๊ฒ ๋์์ต๋๋ค.
์ด์ .NET Core๋ ๋ฌด์์ ๋๊น?
๋ค์์ MS Docs ์ ์ค๋ช ์ ๋๋ค.
.NET Core๋ Microsoft ๋ฐ GitHub์ .NET ์ปค๋ฎค๋ํฐ์์ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฒ์ฉ ๊ฐ๋ฐ ํ๋ซํผ์ ๋๋ค. Windows, macOS ๋ฐ Linux๋ฅผ ์ง์ํ๋ ํฌ๋ก์ค ํ๋ซํผ์ด๋ฉฐ ์ฅ์น, ํด๋ผ์ฐ๋ ๋ฐ ์๋ฒ ๋๋/IoT ์๋๋ฆฌ์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทธ ํฌ๋ก์ค ํ๋ซํผ ์ฑ๋ช ์ด ๋ ์์ต๋๋ค. ์ธ๊ฐ ์๋๊ฐ? ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ ์๋๋ ๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ ์ ๋ฐ์ ๊ฑธ์ณ ๋ง์ ํผ๋์ ์ผ๊ธฐํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ์ฝ์ ๋ชจ๋ ์ค๋ช ์ ๋ค๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๋:
System.DirectoryServices
๋ฐ System.Drawing
์ ๋ํ ์ค์ ๋ก๋๋งต์ ๋ํด ๋ช
ํํ๊ฒ ์ ๋ฌํนํ System.Drawing
๋ ํผ๋์ค๋ฝ๊ณ ์ฐ๋ ค์ค๋ฝ์ต๋๋ค. ๋ชจ๋ ํ๋ซํผ์์ ํด๋น API๋ฅผ .NET Core๋ก ์ด์ํ๋ ค๋ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค. ์์
ํ๊ธฐ ์ด๋ ต๊ณ ์๋ฒ์์ ์ง์๋์ง ์์ผ๋ฉฐ ์ต์ ๊ฐ๋ฐ์ ํ์ํ ๋ง์ ์ค์ํ ๊ธฐ๋ฅ(๋ฉํฐ ์ค๋ ๋ฉ, ํฝ์
ํ์, ICC, EXIF, ์์ํ, ์์ธํ๋ Png ๋ฑ)์ด ๋ถ์กฑํฉ๋๋ค.
์ฌ๊ธฐ์๋ ์์๋ณผ ์ ์๋ ์ด๋ฆ๊ณผ ์ผ๊ตด์ด ๋ง์ด ์์ผ๋ฉฐ ์ฌ๊ธฐ์ ์ฝ๊ฐ์ ๋ ธ์ด์ฆ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด ์ธ ๊ฐ์ง๋ ํฐ ํด์์ ์ทจํ๊ธฐ ์ ์ ์๋๋ฅผ ๋ด์ผ ํ๋ ๊ฐ์ฅ ์ค์ํ ์ธ ๊ฐ์ง์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก, ๋ด๊ฐ ์์ ํ๋ ๋๋ถ๋ถ์ ๋ชจ๋ ๊ฒ์ ์ค๋ก์ง EF6 ๋๋ฌธ์ net4x์์ ์ด๋ฃจ์ด์ง๋๋ค. EFCore... ์... :trollface:
@stefanolson
๊ณต์ ์ฝ๋๋ฅผ .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ถ๋ฆฌํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ .NET Framework์ WPF ๋ฐ ASP.NET๊ณผ .NET Core ๋ฐ ๊ธฐํ .NET Core ์ ํ๋ฆฌ์ผ์ด์
์ ASP.NET์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@JimBobSquarePants
Windows ํธํ ํฉ์ด .NET Core์ ์ผ๋ถ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. .NET Core ์์ ์๋ Windows ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. Linux ์ ์ฉ ๊ธฐ๋ฅ์ ๋
ธ์ถํ๋ Linux ์ ์ฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค๊ณ ์์ํ ์ ์์ต๋๋ค.
Windows ํธํ ํฉ์ ๊ธฐ์กด .NET Framework ์ฝ๋ ๊ธฐ๋ฐ์ ๋ ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋๋ก ํด์ค๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ถ๋ช ํ ๋๊ตฐ๊ฐ .NET Core๋ก ์ ํํ ํ์๋ ImageSharp์ ๊ฐ์ ๋ ๋์ ์๋ฃจ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ด์ผ ํฉ๋๋ค.
@stefanolson
.NET Core์์ WPF ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์ง๋ง Windows์์๋ง ์คํ๋๋ Windows ์ ์ฉ WPF ํฉ์ ๋ง๋ค ์๋ ์์ต๋๋ค.
์ด GitHub ๋ฌธ์ ๋ ๋
์ผ IT ๋ด์ค ์ฌ์ดํธ์์ ์ธ๊ธ๋์์ต๋๋ค.
https://www.golem.de/news/asp-net-core-2-0-microsoft-veraergert-net-entwickler-mit-support-entscheidung-1705-127712.html
@danielcrabtree ์๊ฒ ๊ฐ์ฌํฉ๋๋ค. ํธํ์ฑ ํฉ์ ๋ํด ์ฒ์ ๋ค์ ๊ฒ์ ๋๋ค.
System.Xaml์ด ์ด์๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
@alexwiese ์จ ์ฐธ์ง ๋ง์ธ์.
System.Xaml์ด ์ด์๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค.
๊ณ์ํด; ๋ด๊ฐ ๋ฌผ๊ฑฐ์ผ. ์น์ฌ์ดํธ์์ Xaml์ ์ด๋ป๊ฒ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
๊ณ์ํด; ๋ด๊ฐ ๋ฌผ๊ฑฐ์ผ. ์น์ฌ์ดํธ์์ Xmal์ ์ด๋ป๊ฒ ์ฌ์ฉํ๊ณ ์์ต๋๊น?
๋น์ฆ๋์ค ๊ท์น ์์ง์๋ ์ฌ์ฉ๋๋ ํ๋ซํผ ๊ฐ UI("๊ทธ๋ฆฐ ์คํฌ๋ฆฐ" ์ฝ์ ์ ํ๋ฆฌ์ผ์ด์ , Xamarin ์ฑ ๋ฐ Angular SPA ๊ฐ์ ๊ณต์ ๋๋ ํ๋ฉด ํ ํ๋ฆฟ)์ ๋๋ค.
์์ฐ, ์ข์ต๋๋ค. ์ด๋ค ์์ผ๋ก๋ XAML์ XML์ HTML ๋ฐ Javascript๋ก ๋ณํํ๊ณ ์์ต๋๊น? ์ถฉ๋ถํ ๊ณตํํ๋ค ๐
๋น์ ์ด ๋จ์ง ํธ๋กค๋งํ๋ ๊ฒ์ธ์ง ํ์ ํ ์ ์์์ต๋๋ค.
์ ๋ ๋๊ฐ์ด ํ๊ณ ์์ง๋ง ์ค์ ๋ก๋ XAML์ ํฌํ ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด ์์ ์์ ์คํ๋์ง ์๊ณ ๋ ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํ ๋์ ๋๋ค.
์์ฐ, ์ข์ต๋๋ค. ์ด๋ค ์์ผ๋ก๋ XAML์ XML์ HTML ๋ฐ Javascript๋ก ๋ณํํ๊ณ ์์ต๋๊น? ์ถฉ๋ถํ ๊ณตํํ๋ค ๐
๋น์ฐํ ์๋์ง; ๋จผ์ JSON์ผ๋ก ๋ณํ ์ค์ ๋๋ค ๐
์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์ธ์ฉํ๊ณ ์๋ ์ด ์ฃผ์ ์ ๋ํ ๋ ๋ค๋ฅธ ๋ด์ค ๊ธฐ์ฌ: https://www.infoq.com/news/2017/05/ASPNET-Core-2
@cwe1ss ์์ฑ์๋ @Grauenwolf์ ๋๋ค.
@alexwiese @yaakov-h ์ด์ ๋ํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฝ๊ณ ์ถ์ต๋๋ค. ๊ฝค ํฅ๋ฏธ๋กญ๊ฒ ๋ค๋ฆฌ๊ณ ๋ด๊ฐ ์ต์ํ ๊ฒ๊ณผ๋ ๋ค๋ฅธ ์ผ๋ จ์ ๋์ ๊ณผ์ ๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ ๋ง ๋์๋ค. ASP.NET Core๋ ํ์ํ ๋ ๋ ๊ฑฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ ์ ์์ ๋ ํฉ๋ฆฌ์ ์ธ ํ๋งค์์ต๋๋ค. ์ ํญ๋ชฉ์ผ๋ก ์ํํ ์ ์๋ ๊ฒฝ์ฐ ๋ช ๊ฐ์ง๋ฅผ ์กฐ์ ํ๊ณ .NET Core๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
์ด ๋ณ๊ฒฝ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ์๋๋ฉด ์ ํ ์ ํ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํญ์ ๋ชจ๋ ์ข ์์ฑ์ ๋ฏธ๋ฆฌ ์ดํดํ์ง ๋ชปํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ์ํ์ด ์ปค์ง๋๋ค.
๋๋ ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ์ด๋ป๊ฒ ํด์๋ ๊ฐ์ผ ํ ๋ฐฉํฅ์ผ๋ก ์งํํ๋ ค๋ ์๊ตฌ๋ฅผ ์ดํดํ์ง๋ง ์ฌ์ฉ์๋ฅผ ๋ค์ ๋จ๊ฒจ ๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ค์ ์ ํ๊ฐ ์๋๋ผ ์ด๋ํ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ๋ง์ ์๋ ํ์ฌ๋ฅผ ๋ฒ์ด๋์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์์ ํ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ์ด๋ํ ์๋ ์์ต๋๋ค. ์ง์งํ๊ฒ, ๋น์ ์ ๊ทธ ์ํ์ ๊ณผ์ ํ๊ฐํ๊ณ ์์ต๋๋ค.
์ด๊ฒ์ ๊ฒฐ๊ตญ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ ์์ง์์ด์ง๋ง ๋น ๋ฅด๋ฉด 2019๋ ๋ง์ด๋ 2020๋ ์ ๋ ๊ฐ๊น์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ๋น์ ์ ์ฌ์ ํ โโํผํฉ์ ์ ํํ ์ฌ๋๋ค์ ์ง์ํ๊ธฐ ์ํ ์ฅ๊ธฐ์ ์ธ ๋ชจ๋ธ์ ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์๋์ค, ASP.NET Core 1.x๋ ๊ฑฐ๊ธฐ์ ๋ํ ๋ต์ด ์๋๋๋ค. ๋ฏธ์ฑ์ํ ์ํ๋ ์์ผ๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๊ฐ ์ฉ์ดํ ๊ณผ๋๊ธฐ ๋จ๊ณ๋ก ๊ด์ฐฎ์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก ์ด๊ธฐ์๋ ์ ํฉํ์ง ์์ต๋๋ค. ์ด๋ฐ ํ๋ซํผ์ ๊ฐ๋ฐํ๋ ์ฌ๋๊ณผ ์ฌ์ฉํ๋ ์ฌ๋์ ๋ง์๊ฐ์ง์๋ ํฐ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ด ๋ฐฉํฅ์ ์ฌ๊ณ ํด ์ฃผ์ญ์์ค.
@davidfowl netcore์ฉ edge.js์ ๊ฐ์ ๊ฒ์ ์ด๋ป์ต๋๊น? API ์๋น์๊ฐ ํ๋ซํผ ๊ฒ์ฌ๋ฅผ ๋ด๋นํ๊ฒ ํ๊ณ netfx์ netcore ๊ฐ์ ๊ฐ๋ ฅํ ํ์์ ์ธํฐํ์ด์ค๋ ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์ ์ถฉ๋ถํฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด ํ ํ๋ฆฟ์ด ์ ๊ฑฐ๋ฉ๋๊น?
ํ์ฌ VS2017์ ๊ตฌ์์ก์ต๋๋ค.
์์ ํ ์ฉ๋ฉํ ์ ์๋ ํ์๋ฆฌ, ์ด๊ฒ์ ๋ค์ ์ด๊ฒ์ด ์ ์ฑ๊ธฐ์ ๋๋ฆฌ ์ฑํ๋ ์ค๋น๊ฐ ๋์ง ์์ ์ฅ๋๊ฐ ๊ธฐ์ ์์ ์ฆ๋ช ํฉ๋๋ค.
๋ฉ์ง ๋ผ์ด๋์ ์ฝ๋ฉ ๊ฒฝํ์ ๊ฐ๊ณ ๊ณ์ ์ฌ๋ฌ๋ถ๊ป ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ธ๋ก๊ทธ ํญ๋ชฉ๊ณผ ํธ์ํฐ์์ ๋น๋ ์ ์๊ณ (๋ง์ธ!), ๋งํฌ๋์ธ ํ๋กํ๊ณผ ์ด๋ ฅ์๋ฅผ ๊ฐ์ ํ ์ ์๊ณ (๋ง์ธ^2), ์ฌ๋ฌ๋ถ ์์ ์๋ ๋ชจ๋ ๋ฆด๋ฆฌ์ค ํํฐ, ์๋ , ์๋ฃ ๋ฐ ๋ฌผ๊ฑด์ ์ ๋งํด ๋ณด์ด์ง๋ง .. ๋๊ฐ ๊ทธ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ๋๊น? ๊ธฐ์ ์ ๋์์ผ๋ก ํ๊ณ ๋๊ท๋ชจ ์ฑํ๊ณผ ๊ฒฌ๊ณ ํ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ์ํ์ญ๋๊น? ๋๋ ์ผ๋ถ ์คํํธ์ ํํผ๋ค๋ง?!?
"full Span"์ ๋ํ ์๊ฒฌ์ ์ ์ฌ์ ์ผ๋ก .NET Framework์ ํฌํจ๋์ง ์์ ์ ์๋ค๋ ์ ์ ๋ํด ์ฌ๊ฐํ๊ฒ ์ฐ๋ คํ๊ณ ์์ต๋๋ค. ์ ์ฒด Span์ด .NET Framework์ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ฉํ๋ API๋ ์ด๋ฅผ ๋ฏธ๋์ ๋ทํ์ค์ผ๋ก ๋ง๋ค ์ ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๋ฐ๋ผ์ ๊ณ ์ฑ๋ฅ ๊ตฌ๋ฌธ ๋ถ์์ ์ฌ์ฉํ๊ฑฐ๋ ๋ ธ์ถํ๋ ํ๋ซํผ ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์ต๋๊น? ์ด๋ ์ฐ๋ฆฌ๊ฐ ์์ ํ์ง ์์ ์ฌ์ฉ์ ์ ์ ๊ตฌํ์ ์๊ตฌ์ ์ผ๋ก ํจ๊ณผ์ ์ผ๋ก ๊ณ ์ํ๊ณ ์์์ ์๋ฏธํฉ๋๋ค...
ํฌ๋ก์ค ํ๋ซํผ์ด ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํ๋ฉด netstandard๋ฅผ ๋์์ผ๋ก ํด์ผ ํ์ง๋ง ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ASP.NET Core๋ ๋ฌด์์ด๋ผ๊ณ ์ธ๊ธํฉ๋๊น? ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard์ ๋ํ ์ง์์ ์ค๋จํ๊ณ .NET Core๋ก ์ ํํ๋๋ก ๊ถ์ฅํ์๊ฒ ์ต๋๊น? ๋ค์ ์ฃผ์ ๋ฒ์ ์ JSON.NET ๋๋ ๋ฌด์์ด๋ netstandard๋ฅผ ์ญ์ ํด์ผ ํฉ๋๊น? ๊ทธ๊ฒ์ ํ์คํ ๋น ๋ฅธ ๊ตฌ๋ฌธ ๋ถ์๊ณผ ํจ๊ป ํ ์ ์์ต๋๋ค!
์ฐธ๊ณ Java๋ Netty(https://netty.io/)์ ์ญํธํ๋๋ ๋ฐฉ์์ผ๋ก ๋ณต์ฌ ์์ด ๋น ๋ฅธ IO๋ฅผ ์ถ๊ฐํ ์ ์์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ด ์ง๋ฌธ์ ๊ธฐ๊บผ์ด ์๋ตํด ์ฃผ์ ๋ถ๋ค๊ป ๊ฐ์ฌํ๋ค๋ ๋ง์ ์ ํ๊ณ ์ถ์ต๋๋ค. ๋ต๋ณ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค...
@shanselman ๋น ๋ฅธ ์ด๋์ ํนํ ASP.Net ํ๊ณผ ๊ฐ์ด ํธํ์ฑ์ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ ํธํ๋๋ ๋ฐฉ์์ผ๋ก ์ฌ๋ฌผ์ ๋์์ธํ๋ ํ์ ๊ฒฝ์ฐ ๊ณ ๊ทํ ๋ชฉํ์ ๋๋ค. ๋๋ ๊ทธ๋ค์ด ๋ฌธ์ ์์ญ์ ์ผ๋ง๋ ๋จ์ํํ๊ธฐ๋ฅผ ์ํ๋์ง ์๊ณ ์์ผ๋ฉฐ ๊ทธ๊ฒ์ ์ง์ํ์ง๋ง ...
๋น ๋ฅด๊ฒ ์ด๋ํ๋ ๋์์ ๊ณ ๊ฐ๊ณผ "๋จ์ด์ง๋ ๊ฒ"๋ ์ข์ง ์์ต๋๋ค. ๋น์ ์ ๊ณ ๊ฐ(์ ํฌํจ)์ ๊ธฐ์กด ์ฑ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์๋นํ ๋ ๊ฑฐ์ ์ํํธ์จ์ด์ ์๊ฐ ํฌ์๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋น์ ์ ์ฐ๋ฆฌ๋ฅผ ๊ทธ๋ฅ ๋๋๊ณ ์ฐ๋ฆฌ๊ฐ ๋ฐ๋ฅด์ง ์๊ฑฐ๋ ๋ฐ๋ผ๊ฐ ์ ์๋ ๊ณณ์ผ๋ก ๊ฐ ์ ์์ต๋๋ค.
.Net core๋ก ์ด๋ํ ์ ์๊ณ ์ง๊ธ๋ถํฐ ์ ์ด๋ ์ผ์ ๊ธฐ๊ฐ ๋์ Full Framework๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ณ ๊ฐ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. Full Framework์์ ๋ฒ์ด๋๋ฉด ๋ง์ ์ฌ๋๋ค์ด ์ด์ ๋ฒ์ ์ ์ข์ด๋๊ณ .Net ์ธ๊ณ์์ ํฐ ๋ถ์ด์ ์ผ์ผํค๊ฒ ๋ฉ๋๋ค.
@JimBobSquarePants System.Drawing
๋ถ๋ถ์์ ๋ ๋ฒ์งธ์
๋๋ค. System.Drawing
๋ฅผ ๋ค์ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ํด ๋ค๋ฅธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ช ๊ฐ์ง ๋
ผ์๊ฐ ์์ต๋๋ค. ์ด ์ค๋ ๋์ ์ผ๋ถ ์๊ฒฌ์ ๊ธฐ๋ฐ์ผ๋ก Windows์ ๋จผ์ "ํธํ ํฉ"์ด ์๊ณ ๊ทธ ๋ค์ System.Drawing
์ ๋ํ ๋ชจ๋ OS-es๊ฐ ์๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค.
๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๊ฒผ๋์ง, Mono์ libgdiplus๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋์ง ์ฌ๋ถ๊ฐ ๊ถ๊ธํฉ๋๋ค.
์ ๊ฐ ๋ณด๊ธฐ์๋ ๋ช ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฌ๋๋ค์ด ์ ๋ง๋ก ๋ณด๊ณ ์ถ์ดํ๋ ๊ฒ์ .NET ํ๋ซํผ์ ๋น์ ์ ๋ํ ์ค๋ช ์ ๋๋ค. ์ด๋ค ๋ฐฉํฅ์ผ๋ก ์ผ์ด ์งํ๋ ๊น์? ์ ์ฒด ํ๋ ์์ํฌ๊ฐ ๋ฒ๊ทธ ์์ ๋ฑ๋ง ์์ ํ์ง๋ง ์๋ก์ด ๊ธฐ๋ฅ์ ์์ ํ์ง ์์ต๋๊น? .NET Core์ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด ์ด๋ค ์์ ์ด ์ํ๋๊ณ ์์ผ๋ฉฐ ์ธ์ ์์ํ ์ ์์ต๋๊น? ์ด๊ฒ์ ์ค๋ช ํ๋ฉด ์ฌ๋๋ค์ด ์ง๊ธ ๋๋ผ๊ณ ์๋ ๋ถ์์ ์ํํ๋ ๋ฐ ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
@davidfowl HTTP 2.0์ ๊ดํ ๊ฒ๋ง์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๋ง HTTP 2.0์ ๊ดํ ๊ฒ์ด๋ผ๋ฉด HTTP 2.0 ์ง์์ ์ ์ธํ๊ณ ASP.NET Core 2.0 ๋์ NetFX๋ฅผ ๊ฐ์ง ์ ์์ต๋๊น? ์ปค๋ฎค๋ํฐ๊ฐ ์ ๋ง๋ก ์ํ ๊ฒฝ์ฐ NetFX์์ HTTP 2.0์ ์ํํ ์ ์๋๋ก ํ๋ฌ๊ทธํ ๋ชจ๋ธ์ ์ฌ์ฉํ ์๋ ์์ต๋๊น?
@cokkiy @popcatalin81 @xprzemekw ๊ฑด์ค์ ์ธ ๋ง์ด ์๋๋ผ๋ฉด ๋๊ธ์ ์ผ๊ฐํด ์ฃผ์ธ์. ์ด๋ฐ ๋๊ธ์ ๋๊ตฌ์๊ฒ๋ ๋์์ด ๋์ง ์์ต๋๋ค.
@davidfowl https://github.com/aspnet/Home/issues/2022#issuecomment -300141134์์ ์ค๋ช ํ ๋๋ก ์ด๋ํด์ผ ํ๋ ์ ๋นํ ์ด์ ๊ฐ ์์ต๋๋ค.
์ฐ๊ธฐํ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(์: asp.net core 3.0).
System.Drawing
๊ต์ฒดSystem.DirectoryServices
office xml sdk
์ ๋ํ ์ธ๊ธ์ด ์์์ง๋ง 2017-05-01 https://www.nuget.org/packages/DocumentFormat.OpenXml/ ํ์ฌ netstandard์์ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.ํ์ง ์๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฑด์ค์ ์ธ ์๊ฒฌ์ ์๋ ์ด ์ธ ๊ฐ์ง ์๋๋ฆฌ์ค ์ค ํ๋๋ฅผ ๋ณด๊ณ ์ถ์ ์ด์ ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋์ ์๋ฃจ์ ์ ์ ์ํ๋ ๊ฒ์ ๋๋ค. ๋์/๋น๋์๋ฅผ ํํํ๊ณ ์ถ๋ค๋ฉด "๋ฐ์" ๋ฒํผ์ ์ฌ์ฉํ์ธ์.
@์ฟ ํค๋ชฌ์คํ
์ฌ๋๋ค์ .net ์ฝ์ด๋ก ์ด๋ํ ์๋ ์์ด ๋ ๊ฑฐ์ ์ข ์์ฑ์ด ์๋ asp.net ์ฝ์ด๋ก ์ฑ์ ์ด์ํ์ต๋๋ค.
์์ ํ ๋์ํฉ๋๋ค. Microsoft๊ฐ ASP.NET Core๊ฐ .net Core์ .net ํ๋ ์์ํฌ ๋ชจ๋์์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ AspNet Core 1.x์ ๊ทธ๋๋ก ๋๋ ๊ฒ์ ๊ณต์ ํ์ง ์์ต๋๋ค.
๋ง์ง๋ง ์์ฝ์ ๊ฝค ์ข์ต๋๋ค. ํ๋ ๊ฐ์ง๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
1.) .NET Core๋ก Windows ์๋น์ค๋ฅผ ์์ฑํ ์ ์์ด์ผ ํฉ๋๋ค(*NIX ํ๋ซํผ์ ๋ฐ๋ชฌ์ ๋ค๋ฅด๊ฒ ์๋ํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค). ๋ฐ๋ผ์ ServiceBase๋ ์ฌ์ ํ ํ์ํ๋ฉฐ ์ด๋ EF์ ํจ๊ป ๋์ ์ฐ์ ์์์ ๋๋ค.
2.) .NET Core๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋ฆฝ ์คํํ ์๋น์ค๋ฅผ ์์ฑ ํ๊ณ ๊ธฐ์กด์ ์ ์ฒด ํ๋ ์์ํฌ ๊ธฐ๋ฐ .NET ์์ฉ ํ๋ก๊ทธ๋จ(์ฆ, Windows Forms/WPF ์ฑ์ ๋ฌด๋ฃ ์๋น์ค) ๋ด์์ ์ถ๊ฐ ๋ก ํธ์คํ ํ์ฌ ํ์ฅํ ์ ์์ด์ผ ํฉ๋๋ค.
ํ์๋ ํ๋ ์ปท์ ๋ง๋ค๊ณ ์ ๊ท ๊ฐ๋ฐ์ ์์ํ ์ ์๋ ๋๋ฆฐ ๋ง์ด๊ทธ๋ ์ด์ ์๋๋ฆฌ์ค์ ์ค์ ๋ก ํ์ํฉ๋๋ค.
์์ ํ ๋์ํฉ๋๋ค. Microsoft๊ฐ ASP.NET Core๊ฐ .net Core์ .net ํ๋ ์์ํฌ ๋ชจ๋์์ ์๋ํ ๊ฒ์ด๋ผ๊ณ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด์ AspNet Core 1.x์ ๊ทธ๋๋ก ๋๋ ๊ฒ์ ๊ณต์ ํ์ง ์์ต๋๋ค.
๋ํ ๊ธฐ์กด(์ ์ฒด ํ๋ ์์ํฌ) .NET ํ๋ก์ ํธ์์ (ASP) .NET Core ํ๋ก์ ํธ๋ฅผ ์ฐธ์กฐํ ์ ์๋ค๋ ์ฌ์ค๋ก ์ธํด .csproj ๋ฐ msbuild๋ก์ ๋๊ท๋ชจ ๋ณ๊ฒฝ์ด ์ฃผ๋ก ๋ณ๋ช ๋์์์ ๋ค์ ํ ๋ฒ ๊ฐ์กฐํ๊ณ ์ถ์ต๋๋ค.
์ด ๋ณ๊ฒฝ์ผ๋ก ์ธํด ํ์๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค(์ ์ด๋ ๊ฐ์ฅ ํฐ ASP.NET ๋ถ๋ถ์ ๊ฒฝ์ฐ). ๊ทธ๋ ๋ค๋ฉด ๋น์์๋ ํธํ์ฑ์ด ๊ฐ์ฅ ์ค์ํ์ง๋ง(๋ง์ ๊ณ ํต์ ์ผ์ผ์ผฐ์ง๋ง) ์ง๊ธ์ ๊ทธ๋ ์ง ์์ ์ด์ (๊ทธ๋ฆฌ๊ณ ๋ค์ ๋ง์ ๊ณ ํต์ ์ผ๊ธฐํจ)๋ ๋ฌด์์ ๋๊น?
๋ฏธ์ ๋๋ ์คํธ๋ ์ค ๋ฐ์์ผํด. ๊ทธ๋ฌ๋ ๊ฑฐ์ 500๊ฐ์ ๋๊ธ์ด ์์ต๋๋ค. ์ด ๋ฌธ์ ์ ๋ํด Microsoft ์ง์์ผ๋ก ์ฐธ์ฌํ๋ฉด ๋ ๊ฐ์ง ์ต์
์ด ์์ต๋๋ค.
1: ๋ฌธ์ ์์๊ฑฐ
2: ๋ด ๊ฒฐ์ ์ ๋ํด ๋ค์ ์๊ฐํด๋ณด๊ธฐ
@gingters xamarin, asp.net, uwp ๋ฐ ๊ธฐํ ๋ชจ๋ ๊ฒ์ด ์ฝ๋๋ฅผ ๊ณต์ ํ๊ณ ๋ค์ดํฐ๋ธ ์ฝ๋์ ๊ฐ์ ๋ค๋ฅธ ํ๋ก์ ํธ ์ ํ๋ ์ฐธ์กฐํ ์ ์๋๋ก csproj ๋ณ๊ฒฝ์ ์ฃผ๋ก _.net_ ์ฝ์ด์ฉ์ด์์ต๋๋ค.
๋ํ asp.net core 2 ํ๋ก์ ํธ๊ฐ ๋ค์ compat shim์ ํตํด ์ ์ฒด ํ๋ ์์ํฌ ํ๋ก์ ํธ๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ํฉ๋๋ค.
@qmfrederik
์ปค๋ฎค๋ํฐ๊ฐ ์ ๋ง๋ก ์ํ ๊ฒฝ์ฐ NetFX์์ HTTP 2.0์ ์ํํ ์ ์๋๋ก ํ๋ฌ๊ทธํ ๋ชจ๋ธ์ ์ฌ์ฉํ ์๋ ์์ต๋๊น?
๊ทธ๋ค์ ๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ค์ ์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์๊ฐ์๋ ๊ทธ๋ค์ด ๊ธฐ์ /๋๊ธฐ์ ์ ์ค์ ์๊ตฌ ์ฌํญ์ด๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ๋๋ ๋ฏธ๊ฐ๋ฐ ๋ถ์ผ ์ด์ธ์ ๋ค๋ฅธ ๋ฌธ์ ์ ๋์ฒํด์ผ ํ ํ์์ฑ์ ๋ํด ์๊ฐํ๊ณ ์ถ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์์งํ ๋งํด์ ๊ณผ๊ฑฐ์ ๊ธฐ๋ ๊ด๋ฆฌ๋ ํ๋ซํผ ๊ฐ ์ฝํ ์ธ ๋ฅผ ์ฒ์ฒํ ํ์ฅ/๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋์์ ๊ธฐ์กด ์ฑ์ ์ฒ์ฒํ ํ์ฅ/๋ง์ด๊ทธ๋ ์ด์ ํ๋ ค๋ ๋น์ฆ๋์ค๋ฅผ ์์ ํ ๋์์ผ๋ก ํ์ต๋๋ค. ๋ฐ๋ผ์ ์ด ์์ง์์ ์ด์ ์ ๊ธฐ๋ ๊ด๋ฆฌ์ ์์ ํ ์ผ์นํ์ง ์์ต๋๋ค.
@aL3891
xamarin, asp.net, uwp ๋ฐ ๊ธฐํ ๋ชจ๋ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ค๋ฉด
๋ค. ์ ํํ. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์๋ .NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ WPF/Windows Forms ์ฑ๋ ํฌํจ๋ฉ๋๋ค. ์ด์ .NET Core 2๋ก ์ด๋ํ๋ ค๋ ๊ฒฝ์ฐ์๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard2.0
๋ฅผ ๋์์ผ๋ก ํ ์ ์๋ ์ด์ ๋ฅผ ์ ํํ ์ค๋ช
ํ ์ ์์ต๋๊น?
์ง๊ธ๊น์ง netcoreapp
๋ฅผ ํฌ๋ก์ค ํ๋ซํผ ์คํ ํ์ผ(csproj ์คํ ํ๋ก์ ํธ์์๋ง ์ฌ์ฉ)์ ์ด๋ฆ์ผ๋ก ์๊ฐํ์ง๋ง ํ๋ซํผ์ผ๋ก ๊ฐ์ฃผํ ์ ์ ์์ต๋๋ค . ์ด์ ์ค์ ํ๋ซํผ์ผ๋ก ๊ฐ์ฃผํด์ผ ํฉ๋๊น? ์ ์, ์ด๋ป๊ฒ ์ฐ๋ฆฌ๊ฐ ์ด ํฐ๋ฌด๋์๋ ์ ํ์ ํ๊ฒ ๋์์ต๋๊น?
netcoreapp2.0
์ ๋ชฉํ๋ก ์ผ์ ์ด์ ์ ๊ทผ๊ฑฐ๋ฅผ ์์ง๋ง ์ ๋ ์ด ์์ง์์ด ๋๋ฌด ์๊ธฐ์์กฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์์ฝ์์คํ
์ ์ค๋น๊ฐ ๊ฑฐ์ ์๋ฃ๋์ง ์์์ผ๋ฉฐ, ๋งค์ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ข
์์ฑ(๊ทธ๋ฆฐํ๋ ๊ฐ๋ฐ์ ์ฌ์ฉํ๋ ค๋ ์ข
์์ฑ ํฌํจ)์ด netstandard๋ฅผ ๋์์ผ๋ก ํ์ง ์์ผ๋ฉฐ ๋์์ด ๋ ์ง ์ฌ๋ถ๋ ๋ถ๋ถ๋ช
ํฉ๋๋ค. Azure์ฉ ํญ๋ชฉ์ ํฌํจํ์ฌ netstandard๋ฅผ ๋์์ผ๋ก ํ์ง ์๋ Microsoft ํจํค์ง ๋ฐ SDK๋ ๋งํ ๊ฒ๋ ์์ต๋๋ค.
๊ทธ๋ฅ ๋ญ๊ฐ๋ฅผ ๋์ง๊ธฐ ์ํด: Windows์์ ์คํํ ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ก .NET Core 2.0์ ํด๋ฆฌํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๊น์? ์ด๋ฏธ P/Invoke๊ฐ ์์ผ๋ฏ๋ก API ํ๋ฉด์ ์ฑ์ฐ๊ธฐ ์ํด ์ธ๊ด ํจํค์ง ๋ค์ ๋ฉ์ง๊ฒ ํฌ์ฅ๋ ์ผ์ข ์ NETFX/Invoke๊ฐ ์์ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ, ๋๋ ์ฐ๋ฆฌ ์ค ๋๊ตฌ๋ $#$ netstandard2.0
net461
๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์ ์ฌ์ฉํ๊ณ ์ถ์ด _์ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋จ์ง ์ข
์์ฑ์ด ํ ์ ์๊ฑฐ๋(API ๋๋ฝ) ์ด๊ธฐ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์
๋๋ค. '(ํฌ๊ธฐ๋จ, ์ํ์ง ์์ ๋ฑ) ๋ณ๊ฒฝ. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ํจํค์ง ๊ฐ๋ฐ์์๊ฒ ์๊ฐ๊ณผ ๋งค์ฐ ๋ช
ํํ๊ฒ ์ ๋ฌ๋ ๊ณํ์ ์ ๊ณตํด์ผ ํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ์ธ์ ์ด๋ป๊ฒ ๋ฐ์ํ๋์ง, ์ด์ฉ๋ฉด ๋ทํ์ค์ ๋์์ผ๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ๋ ์ ๊ณตํด์ผ ํฉ๋๋ค.
@xoofx
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard2.0์ ๋์์ผ๋ก ํ ์ ์๋ ์ด์ ๋ฅผ ์ ํํ ์ค๋ช ํ ์ ์์ต๋๊น?
์ ์ฒด ํ๋ ์์ํฌ(์ ์ด๋ 4.6.1
)๋ netstandard 2.0
๋ฅผ ์ค์ํด์ผ ํ๊ณ ํ์ํ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์ ๊ฐ ์ดํดํ๋ ํ(์ ๊ฐ ํ๋ ธ๋ค๋ฉด ๋๊ตฐ๊ฐ ์ ๋ฅผ ์์ ํด ์ฃผ์ธ์) ๊ฐ๊น์ด ๋ฏธ๋์ ๋ํ ์ ์ฒด ํ๋ ์์ํฌ์ ํฌํจ๋์ง ์์ต๋๋ค.
์ ๊ฐ ํฅ๋ฏธ๋กญ๊ฒ ์๊ฐํ๋ ํ ๊ฐ์ง๋ "๋น์ ์ด๋ ๋ฌด์์
๋๊น?"์ ๋ํ ์ ์ฒด ์ง๋ฌธ๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. System.Drawing
๊ฐ ์์ฃผ ์ธ๊ธ๋ฉ๋๋ค.
ํด๋์ค(์: System.Drawing.Color์ ๊ฐ์ ๊ตฌ์กฐ์ฒด์ ๋ฌ๋ฆฌ) System.Drawing์ ์ ์ด๋ .net Framework 3.5 ์๋ ์ดํ๋ก ๋ช ๋ ๋์ ASP.net์์ ์ง์๋์ง ์์๊ธฐ ๋๋ฌธ์ ํฅ๋ฏธ๋กญ์ต๋๋ค. ๋ฌธ์์์:
System.Drawing ๋ค์์คํ์ด์ค ๋ด์ ํด๋์ค๋ Windows ๋๋ ASP.NET ์๋น์ค ๋ด์์ ์ฌ์ฉํ๋๋ก ์ง์๋์ง ์์ต๋๋ค. ์ด๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ ์ ํ ์ค ํ๋์์ ์ด๋ฌํ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์๋น์ค ์ฑ๋ฅ ์ ํ ๋ฐ ๋ฐํ์ ์์ธ์ ๊ฐ์ ์๊ธฐ์น ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ง์๋๋ ๋์์ Windows ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฌผ๋ก ๋ง์ ๊ฒฝ์ฐ์ ํจ๊ณผ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์ ์ด์จ๋ ์ค์ ๋ก GDI+๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ ์ง์๋์ง ์๋ ํ๋์ ์์กดํ๋ ๊ฒ์ด ์ข์ ์๊ฐ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ ผ์ํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ์๋ ๊ฒ์ด ์๋๋๋ค.
ํ์ง๋ง .net Core ๋ฐ ASP.net Core์ ๋ํ ํ์ฌ ๋น์ ์ด ๋ฌด์์ธ์ง ๊ถ๊ธํฉ๋๋ค. ์ข์ ์์ด๋์ด๋ฅผ ๋ค์ ๊ตฌํํ๊ณ ์ค๋๋ cruft(์ผ๋ช ".net - Good Parts")๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๊น? ์ด ๊ฒฝ์ฐ System.Drawing์ ๊ฐ์ ธ์ค๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์๋๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฒด .net Framework๋ฅผ ๋ค์ค ํ๋ซํผ, ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๋์ Mono๋ก ๋ค์ ์์ฑํฉ๋๊น?
๋๋ ์ด๋ ์ชฝ์ด๋ ๋ ผ์ํ๋ ๊ฒ์ด ์๋๋ผ ๋จ์ง ์๊ณ ์ถ์ต๋๋ค. ๋๋ .net๊ณผ .net Core ํ์ด ์ฝ๊ฐ์ ์ํผ ํ์์ ํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์ ์๋ก ์์ํด์ ์ง๊ธ์ ํ์๋ผ๊ณ ๋๋ผ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ Windows์์ .net Framework๋ฅผ ์ ์งํ๋ ๊ฒ์ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค(์ ๋ ์ฌ๊ธฐ์์ ์ ์์ ์ ํ๋ก์ ํธ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ์ ๋ ๊ณ ์ฉ์ฃผ๋ฅผ ์ํด ์ํคํ ์ฒ๋ฅผ ์ฃผ๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค). .net Framework๋ ์ ๋ง ์ ์๋ํ๋ฉฐ Windows Server 2016์์ ์ต์ 2027๋ ๊น์ง ์ง์๋ฉ๋๋ค.
.net Framework๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ฌผ๋ก ํํ์ ๋๋ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด, HTTP/2 ์ง์์ ๋ค๋ฅธ ์น ์คํ๋ณด๋ค ํจ์ฌ ๋ฆ๊ฒ ๋์ฐฉํ๊ณ ์ ์ฒด OS ์ ๊ทธ๋ ์ด๋๊ฐ ํ์ํ์ต๋๋ค. ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์์ ํด ์ฃผ์ธ์. ํ์ง๋ง ๋ด๊ฐ ์๋ ํ Windows์์ ASP.net์ ์ฌ์ฉํ์ฌ HTTP/2๋ฅผ ์ํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ์๋ฒ 2012 R2. ๊ทธ๋ฌ๋ ์ด๋ฌํ ํํ์ ํ์ ์ ์ง์ ๋ํ ๊ฐ๋ ฅํ ๋ณด์ฆ์ด ์์ผ๋ก 10๋ ๋์ ์ง์๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋งํ ๊ฐ์น๊ฐ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์๋ก์ด ๊ฐ๋ฐ์ ์ํ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ํด ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.net ๋ก๋๋งต์ ๋ณด๊ณ ์ถ์ต๋๋ค. ASP.net MVC 6, Web API 3, SignalR 3 ๋ฑ์ ๋ํ ๊ณํ์ ๋ฌด์์ ๋๊น? ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ์ธ๋์ Visual Basic 6/Classic ASP(.net)์ ๋๋ค.
๋น ๋ฅธ ์๋๋ก ๊ตฌํ๋๋ ์ข์ ๊ฒ๋ค์ด ๋ง์ด ์๊ธฐ ๋๋ฌธ์ .net Core์ ์ง์คํ๋ ๊ฒ์ด ASP.net Core์ ์ต์ ์ ์ด์ต์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ํ ์ฒ์์ผ๋ก .net Core ์๋ก์ด ๊ฐ๋ฐ์ ์ํด ์์ฐ ์ค๋น๊ฐ ์๋ฃ๋์์ต๋๋ค. ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ , ํ์ ํ๊ณ , ๊ธฐ๋ณธ์ ์ผ๋ก Node.js๊ฐ ๊ทธ๋ ๊ฒ ์ฑ๊ณต์ ์ด์๋ ์ผ์ ํ์ญ์์ค(๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค๋ง์ ์์ ์ฑ/ํ์ ๋๋ผ๋ง๊ฐ ์์์์ ๊ธฐ์ตํ์ญ์์ค, io.js ์ฐธ์กฐ).
์ฌ๊ธฐ์ ๋๊ธ์ ๋ฌ๊ณ ์๋ ํ์ ๋ชจ๋ ์ฌ๋์๊ฒ ๊ฐ์ฌ์ ์ธ์ฌ๋ฅผ ์ ํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ ๋ค์ํ ๊ด์ ์ ๊ฐ์ง ๊ธด ์ค๋ ๋์ด์ง๋ง ์๋ฏผ ํ ๋ก ์ ๋๋ค. @davidfowl ์ด "๊ทธ๋์, ์ด์ํ๊ธฐ ์ํด ์ค์ ๋ก ๋ฌด์์ ๋์น๊ณ ์์ต๋๊น?" ์ด ์ค๋ ๋์์๋ง ์ ์ฉํ ๋ต๋ณ์ ์ป์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ์ฌ .net Framework์ ์๋ ์ฌ๋๋ค์ด ํ์ฌ์ ASP.net์ด ๊ธฐ๋ณธ์ ์ผ๋ก "์๋ฃ"๋๊ณ ๋ชจ๋ ์๋ก์ด ๊ฐ๋ฐ์ด ASP.net Core์์ ์ผ์ด๋ ๊ฒ์ด๋ผ๋ _๋๋_์ ๋๋ผ๋ ๊ฒ์ ์ค์ ๋ก ์ ํจํ ๋๋ ค์๊ณผ ์ข์ ์ด๊ธฐ๋ ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก Visual Basic 6 ์ฌ์ฉ์๊ฐ "VB.net์ผ๋ก ์ด๋ํ๊ฑฐ๋ ์ง๊ธ๋ถํฐ ๋ช ๋ ํ์ ์ข์ด๋ ์์ ์ ์ฐพ์ผ์ญ์์ค"๋ผ๋ ๋ง์ ๋ค์์ ๋ ์ด๋ป๊ฒ ๋์์ต๋๊น?
.net Core์์ ASP.net Core 2.0์ ๋๋ผ์ด ์น ์คํ์ผ๋ก ๋ง๋๋ ์์ ์ ๋ ๋ฐฐ๋ก ๋๋ฆฌ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ฝ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ผ๋จ ๊ทธ๊ฒ์ ์ฌ์ฉํ ์ ์์ ๊ฒ์ธ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ์ข์ ๋ถ๋ถ์ด ์ฌ์ ํ ๊ธธ์ ์ฐพ์ ๊ฒ์ด๋ผ๋ ํ์ ์ ๊ฐ๊ฒ ๋๋ฉด ๊ทธ๋ค์ Classic ASP.net ์คํ์ผ๋ก.
์ด์จ๋ ๋ด ํก์ค์์ค๋ก ์ถฉ๋ถํฉ๋๋ค. ํ์ด ํ๊ธฐ์๋ ๋งค์ฐ ์ด๋ ค์ด ๋ฌธ์ ์ด๊ณ ๋๋ ๋น์ ์ด ๋ถ๋ฝ์ง ์์ต๋๋ค. ๋ด๊ฐ(๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ ์๋ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค)์ด ์ํ๋ ๊ฒ์ ์ ์ฒด ์ํ๊ณ๊ฐ ์ด๋๋ก ๊ฐ๊ณ ์๋์ง์ ๋ํ ์ฝ๊ฐ์ ๋ช ํ์ฑ์ ๋๋ค.
๋ด๊ฐ ์ดํดํ๋ ํ(๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ๋๊ตฐ๊ฐ ๋๋ฅผ ์์ ํด ์ค), ์ ์ฒด ํ๋ ์์ํฌ๋ netstandard 2.0์ ์ค์ํด์ผ ํ๊ณ ๊ฐ๊น์ด ์ฅ๋์ ์ ์ฒด ํ๋ ์์ํฌ์ ์์ ํ์๊ฐ ์๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ฐ์ฌ ํด์! ์ด๋ค ๊ธฐ๋ฅ์ด ์๋์ง ์ ํํ ์๊ณ ์ถ์ต๋๋ค. @davidfowl ์์์ HTTP2๋ฅผ ์ธ๊ธํ ์ด์ ์ค ํ๋๋ ๋ฌด์์
๋๊น? ๋ถ๋ฆฌ๋ System.Http2
์ด์
๋ธ๋ฆฌ๋ก ๊ตฌํ๋ ์ ์๋ ํ๋กํ ์ฝ์ด ์ด๋ป๊ฒ ์ ์ฒด .NET ํ๋ซํผ์ ํฌํฌํ ์ ์์ต๋๊น? ๋๊ตฐ๊ฐ๊ฐ ์ ์ฒด ์ถ๋ก ์ ๋ํด ๋ ์์ธํ ์๋ ค์ค ์ ์์ต๋๊น?
@gingters ๊ทธ๋ฌ๋ ๋ถ๊ฐ๋ฅํ์ง๋ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ ํ .netstandard๋ฅผ ๋์์ผ๋ก ํ ์ ์์ผ๋ฉฐ 46๊ณผ ์ฝ์ด ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. asp.net ์ฝ์ด _itself_๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
@xoofx https://github.com/aspnet/Home/issues/2022#issuecomment -300141134
๋ฌปํ๊ณ ์ฐ๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ๊ฒ์:
๋ฐ๋ผ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ค๋ฉด ๊ฒฐ๊ตญ ๋ท ํ๋ ์์ํฌ๋ฅผ ๋์ฒดํ๋ ๋ทํ์ค์ ๊ฐ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ ํํ์ง ์์ต๋๋ค. ์ด๋ป๊ฒ ๊ทธ๋ฐ ๊ฒฐ๋ก ์ ๋ด๋ฆฌ์ จ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. .NET Standard๋ ํญ์ ์ด๋ฅผ ์ง์ํ๋ ๊ฐ ๋ฐํ์์ ํ์ ์งํฉ์ ๋๋ค.
๊ทธ๊ฒ์ ๋ช ๋ฒ ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ๋๋ ์ฌ๊ธฐ์ ๋ฏธ์น ๊ฒ๋ค์ ๋์ง๊ณ ์ถ์ต๋๋ค. ๋ด๊ฐ ๋งํ๋ ค๋ ๊ฒ์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ์ง ์๋ฌด โโ์๊ด์ด ์์ผ๋ฉฐ, ์ด ์์ ์์ ๋ชจ๋ ์ถ์ธก์ ๋๋ค. ์ฌ๋ฌ ์ฌ๋๋ค์ด .NET Standard ๋์ .NET Core๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ ์ด์ ๋ฅผ ๋ฌป์ต๋๋ค.
Span<T>
๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ์ด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด Buffer<T>
๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค. String ๋ฐ Array๊ฐ 0 ํ ๋น์ด ํ์ํ ์ฌ๋ผ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์๋ก์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ์๋ฏธ์ผ ์ ์์ต๋๋ค.Span<char>
๋ฐ Span<byte>
๋ฅผ ์ฌ์ฉํ๋ Int, UInt ๋ฑ(TryParse)์ ๋ํ ์ค๋ฒ๋ก๋๊ฐ ๋ฐ์ํฉ๋๋ค.Span<byte>
๋ฅผ ์ฌ์ฉํ๋ ์๋ก์ด ์ธ์ฝ๋ฉ ๋ฃจํด์ผ๋ก ์ด์ด์ง๋๋ค.Buffer<T>
๋ฐ Span<T>
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ท ์ผํ ๋ฐฉ์์ผ๋ก ๋ํ๋ผ ์ ์์ผ๋ฉฐ Span<T>
๋๋ Buffer<T>
์ ์ฌ์ฉํ๋ ๋ฏธ๋ฆฌ ๊ณ ์ ๋ ๋ฒํผ๋ฅผ ์ ๋ฌํ ์ ์๋๋ก ๋คํธ์ํน ์คํ์ ์
๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํฉ๋๋ค. ํต์ฌ ํ๋ฆฌ๋ฏธํฐ๋ธ๋ฅผ ์์ ํ ์ ์๋ ๋ฅ๋ ฅ์ด ์๋ค๋ฉด, ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ๋ค์ ๋ถ๊ธฐํ์ฌ ๋น์ทํ๊ฒ ๋ณด์ด์ง๋ง ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ASP.NET Core https://github.com/aspnet/Common/tree/dev/src/Microsoft.Extensions.Primitives ๋ด์ ์์ฒด BCL์ ๊ฐ์ง๊ณ ์๋ ์ด์ ์ ๋๋ค.
๊ทธ๊ฒ์ .NET์ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ์ ์ํฅ์ ๋ฏธ์น๋ ๊ฐ๊น์ด ์์ผ ๋ด์ ์ฐ๋ฆฌ๊ฐ ์ํํ๋ ๊ฒ์ ๋ณผ ์ ์๋ ๋ฌด์์ ๋คํ์์ต๋๋ค.
์๋ ํ์ธ์. ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ํ ๋ก ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ์ค๋ ๋๋ ์๊ณ๋์ ๋๋ฌํ์ผ๋ฉฐ ๋์ผํ ์ง๋ฌธ ์ค ์ผ๋ถ๊ฐ ์์ฒญ๋๊ณ ๋ค์ ๋ต๋ณ๋๊ณ ์์ต๋๋ค. ์ด์ ์ ํ๊ฒ ์ด์ ๐ .
@aL3891
asp.net ์ฝ์ด ์์ฒด๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ASP.NET Core 2๋ฅผ Windows ์๋น์ค๋ก ํธ์คํ ํ๋ ๊ฒ์ ์ค๋จํฉ๋๋ค(.NET Core์๋ ๋ชจ๋ API๊ฐ ์๊ณ TopShelf๋ ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํ ์ค์). ์ด๊ฒ์ ์ค์ ๋ก ๊ฝค ๊ฐ๋ ฅํ ์ ํ์ ๋๋ค. ๋ํ ๊ธฐ์กด WPF/Windows Forms ์ฑ ๋ด์์ ํธ์คํ ๋๋ .NET Core 2 ์๋น์ค ํ์ฅ์ ํธ์คํ ํ๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค. ์ด๋ ๋ ๊ฑฐ์ ์ฑ๊ณผ์ ํตํฉ ์ฌ์ฉ ์ฌ๋ก์์ ์ผ๋ฐ์ ์ธ ์๋๋ฆฌ์ค์ ๋๋ค.
.NET ์ ์ฒด์์ ์ฌ์ฉํ ์ ์๋ Span<T>
์ ๋น ๋ฅธ ๋ฒ์ ์ ์ ๋ง ์ด์ํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด Microsoft๋ Roslyn์ ์๋๋ฅผ ์ด๋ป๊ฒ ๋์ผ๊น์? ๊ทธ๋ค์ ๋น ๋ฅธ Span<T>
๋ฐ ๋๋ฐ ๊ธฐ์ ์ ๊ฐ์ง๊ณ ์์ง๋ง ์ง๊ตฌ์์ ๋ชจ๋ Visual Studio ์ค์น์์ ๊ทธ๊ฒ์ ์ฌ์ฉํ์ง๋ ์์ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด ... ์ ์น? MS์ ํธ๋ฆฌ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํ ๋งํผ ์ฉ๊ฐํ ๊ด๋ฆฌ์๊ฐ ์๊ธฐ ๋๋ฌธ์ .NET ์ ์ฒด์ ๋ ๋ง์ ๋
ธ๋ ฅ์ ๊ธฐ์ธ์ฌ์ผ ํ๋ค๊ณ ์?
๊ทธ๋ฌ๋ ์ค๋ ๋์ค์ //build์์ ํผ์ง ๋ฌด์ง๊ฐ์ ์์ ๋ง์ผํ blabla ํ๋ด์ ๋ง์น๊ฒ ํ์ง ๋ง์ญ์์ค. ๋๋ MS๊ฐ ๋ชจ๋ ๊ฒ์ด ์ ์ ์ด๊ณ ํ์ฑ์ ๋๋จธ์ง ๋ถ๋ถ์ด ์ฌ์ ํ ๋๊ตด์ ์ด๊ณ ์๋ค๋ ์ฅ๋ฐ๋น ๊ทธ๋ฆผ์ ๊ทธ๋ฆด ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
@davidfowl ์ฌ๊ธฐ์์ ๋ ธ๋ ฅํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทํ์ ํต์ฐฐ๋ ฅ๊ณผ ๋ต๋ณ์ ๋ถ๋ช ํ ๋ง์ ์ฌ๋๋ค์๊ฒ ๋์์ด ๋์์ต๋๋ค. ๐
@gingters ์๋๋ฆฌ์ค ์ธํธ๋ฅผ ์ ๋์ ์ผ๋ก ์ ํํ์ง๋ง ์ ์ฒด netstandard/csproj ๋ ธ๋ ฅ์ด ๊ทธ๋ก ์ธํด ๋ญ๋น๋์ง ์๋๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋๋ค.
@davidfowl ์ด ๋ด์ค๋ฅผ ์ฐ์ฐํ ์ ํ๋๋ฐ ์กฐ๊ธ ๋ฌด์ญ์ต๋๋ค. ์ง๊ธ๊น์ง๋ .NETStandard 2.0๊ณผ์ ํธํ์ฑ์ ์ง์ํ๋ฉด ์ ์ฒด ํ๋ ์์ํฌ์์ ๊ณ์ ์คํํ๋ฉด์ ๊ฒฐ๊ตญ ๋ด ์ ํ๋ฆฌ์ผ์ด์ ์์ ASP.NET Core 2.0์ ์ฌ์ฉํ๋๋ก ์ ํํ ์ ์๋ค๊ณ ํ์ ํ์ต๋๋ค. ๋ด๊ฐ ์์ ์ ์์ ํ ๋์น๊ณ ์์ง ์๋ ํ, ๊ทธ๊ฒ์ ๋ ์ด์ ๋ถ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.
๋ฐฉ๊ธ ์ต์ ๋ฒ์ ์ API ๋ถ์๊ธฐ๋ฅผ ์คํํ๋๋ฐ ๋ด๊ฐ ์์กดํ๋ .NET Standard 2.0์ ๋๋ฝ๋ API๊ฐ ๋ง์ด ์์ต๋๋ค. ๊ทธ ์ค ์ผ๋ถ๋ ๊ณ ํต์ค๋ฝ๋๋ผ๋ ์ ๊ฑฐํ ์ ์์ต๋๋ค(์: System.Configuration).
๋ค๋ฅธ ์ฌ๋๋ค์ ์์ง ๋ชจ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ๋ ๋ฐํ์ ์ฝ๋ ์์ฑ์ ์ฌ์ฉํ๊ณ System.Reflection.Emit.ILGenerator, TypeBuilder ๋ฑ์ ์์กดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ๋ค์ ๊ทธ๋ฅ ์ ๊ฑฐํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ์ ํ์ ํต์ฌ ๋ถ๋ถ์ ๋๋ค.
API Analyzer๋ก ๋ ํ๊ณ ๋ค์๊ณ ๊ทธ ์ค ์ผ๋ถ๊ฐ .NET Core 2.0 + Extensions์์ ๋ค๋ฃจ๋ ๊ฒ์ผ๋ก ๋ณด์ด์ง๋ง ์ฌ์ ํ ๋ค์ API๊ฐ ๋๋ฝ๋์ด ์์ต๋๋ค.
M:System.AppDomain.DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.Collections.Generic.IEnumerable{System.Reflection.Emit.CustomAttributeBuilder})
M:System.AppDomain.DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.String)
M:System.AppDomain.DefineDynamicAssembly(System.Reflection.AssemblyName,System.Reflection.Emit.AssemblyBuilderAccess,System.String,System.Boolean,System.Collections.Generic.IEnumerable{System.Reflection.Emit.CustomAttributeBuilder})
M:System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(System.String,System.Boolean)
M:System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(System.String,System.String,System.Boolean)
M:System.Reflection.Emit.AssemblyBuilder.DefineVersionInfoResource
M:System.Reflection.Emit.AssemblyBuilder.Save(System.String)
M:System.Reflection.Emit.AssemblyBuilder.Save(System.String,System.Reflection.PortableExecutableKinds,System.Reflection.ImageFileMachine)
M:System.Reflection.Emit.ILGenerator.MarkSequencePoint(System.Diagnostics.SymbolStore.ISymbolDocumentWriter,System.Int32,System.Int32,System.Int32,System.Int32)
M:System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(System.String)
M:System.Reflection.Emit.ModuleBuilder.DefineDocument(System.String,System.Guid,System.Guid,System.Guid)
M:System.Reflection.Emit.TypeBuilder.CreateType
https://apisof.net/catalog ์์ ์ฝ๊ฐ ๋๋ฌ๋ณธ ๊ฒฐ๊ณผ API ๋ถ์๊ธฐ ์ถ๋ ฅ๊ณผ ์ ๋ณด๊ฐ ๋ค๋ฅธ ๊ฒ ๊ฐ์ต๋๋ค. ์ฆ, ๋ถ์๊ธฐ๊ฐ ์ง์ํ์ง ์๋ ๊ฒ์ผ๋ก ํ์ํ ์ผ๋ถ API๊ฐ ์ฌ๊ธฐ์ ๋์ด๋ฉ๋๋ค(TypeBuilder.CreateType). ๊ทธ๋์ ๋๋ ๊ด์ฐฎ์์ง ๋ชจ๋ฅด์ง๋ง ์๋ํ๊ธฐ ์ ๊น์ง๋ ์ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๊ฒ๋ค์ ํ์คํ ๋๋ฝ๋์์ต๋๋ค(์: AssemblyBuilder.Save(...)
๊ฒฐ๋ก : ASP.NET Core 2.0์ ์ ์ฒด ํ๋ ์์ํฌ ์คํ์ ์ถ๊ฐํ๊ณ ์ด์ ์ข ์์ฑ์ ์ ์งํ ์๋ ์์ต๋๋ค. .NET Standard 2.0๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋์ ๋ด๊ฐ ํ์ํ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๋ค๋ฃจ๋ ์ ์ผํ API์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ Big Bang์ ASP.NET Core 2.0์ผ๋ก ์ด์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ ์ ASP.NET Core 2.0์์ ์ ์น ์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. ๊ทธ๋์, ๊ทธ๊ฒ์ ์ค์ ๋ก ๋น ๋ฑ ๋ค์์ ์ง์ง ๋น ๋ฑ ์ด ๋ค๋ฐ๋ฅด๋ ๊ฒ์ ๋๋ค.
@davidfowl ์์ธํ ๋ด์ฉ ๊ฐ์ฌํฉ๋๋ค.
์ ๋ ์ ์ ์ผ๋ก .NET Core์ ๊ด์ฌ์ด ์๊ณ ์ค์ ๋ก .NET Full Framework์ ๋ํด์๋ ๋ณ๋ก ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค... ํ์ง๋ง netstandard2.0
์ ๋ํด์๋ ๋๋ถ๋ถ์ .NET ์ ์ฒด ํ๋ ์์ํฌ API๋ฅผ ๊ฐ์ ธ์๊ธฐ ๋๋ฌธ์ ์ ๊ฒฝ์ ์ผ์ต๋๋ค. 2.0
๋ฒ์ ์ "์ ํฉ" ๋ฒ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ์ฆ, ์ฌ๋๋ค์ด .NET Full์์ .NET Core๋ก ์ฝ๋๋ฅผ ๋ง์ด๊ทธ๋ ์ด์
ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค... ์ ์ฒด ํ๋ ์์ํฌ๋ ์์ํ... ํ์ง๋ง netstandard2.0
๊ฐ ๊ฒฐ๊ตญ ์ PCL์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค...
๊ณตํํ๊ฒ๋ .NET ์ ์ฒด ํ๋ ์์ํฌ๋ ์ด์ ์ํด ๊ณํ์ด ํ์ํฉ๋๋ค( System.Drawing
๋ณด๋ฅ? SkiaSharp
๊ฐ ๋ ์ข๊ณ ํฌ๋ก์ค ํ๋ซํผ์
๋๋ค). .NET Core 2.0์ด ์งํํ๋๋ก ํ์ญ์์ค. ์์ ์ ์ ์๋ ฅ!
@davidfowl ์ฒ์์๋ API์ ๊ด๋ จํ์ฌ Net Core๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋๋ ์ ์ฒด ํ๋ ์์ํฌ์ ํ์ ์งํฉ์ด ๋์ด์ผ ํ์ผ๋ฉฐ Core์ ๊ด๋ จ๋ ๋ชจ๋ API ๋ณ๊ฒฝ ์ฌํญ์ ๋ ๋ค์ ์ ์ฉ๋์ด์ผ ํ์ต๋๋ค. ๊ทธ๊ฒ์ ์ ์ด๋ ์ด๊ธฐ ์ฝ์์ด์์ต๋๋ค ...์ด ์๋ก์ด (์๋ฌด๋์๋) ๋ฐฉํฅ์ผ๋ก ์ง๊ธ์ ์ํฉ์ด ๋งค์ฐ ๋ค๋ฅด๊ฒ ๋ณด์ ๋๋ค.
๋ง์ํ์ ๊ฒ๋ค์ ๋ชจ๋ ํ๋ฅญํฉ๋๋ค. ์ง๊ธ ๋น์ฅ ๊ฐ๊ณ ์ถ์ง๋ง, ๊ทธ๊ฒ๋ค์ด ํฌ๊ฒ ํ์ํ Full Framework์์๋ ํ์ฌ Span์ด ์๋ WPF ์ฑ์์ ์์
ํ๊ณ ์์ต๋๋ค.
ํ๋ ์์ํฌ๋ฅผ ๋ฐ์ ์ํค๋ ค๋ ๊ฒ์ ์์ ํ ์ดํดํ ์ ์์ต๋๋ค. ์ดํดํ ์ ์๋ ๊ฒ์ ์ ๊ธฐ์กด ๊ณ ๊ฐ๊ณผ ์ด๋ฌํ ๋ถํ ์ ๋ง๋ค๊ณ ํ์ฌ ์ฃฝ์ด๊ฐ๋ ํ๋ซํผ์ ์ข์ด์ํค๋ ๊ฒ์ ๋๊น? ์ ์ฒด ํ๋ ์์ํฌ?
@popcatalin81 (์ผ์ด ๋๋ฌด ์ฃผ์ ์์ ๋ฒ์ด๋๊ธฐ ์ ์, ๊ทธ๋ฌ๋ ๋งจ์คํ๋ ์ธ์ด ๋ ์ํ์ด ์์) - Span
@popcatalin81 with netstandard2.0
WPF
๋ฐ System.Drawing
๋ .NET Core์์ ์คํ๋ ๊ฒ์ผ๋ก ์์ํ ์ ์์ต๋๋ค(Windows ์ ์ฉ, ๋ถ๋ช
ํ ๋น Windows ํ๋ซํผ... ), afaik, ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ CLR ํน์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ง ์์ต๋๋ค... netstandard2.0
๋ก ๋ค์ ์ปดํ์ผํ๋ฉด ๋ฉ๋๋ค. (.NET ๋ถ๋ถ๋ง, ๊ธฐ๋ณธ ๋ถ๋ถ์ ๋์ผ - wpf ๊ตฌ์ฑ ์์ง ๋๋ System.Drawing์ ๋ํ Win32 ๊ธฐ๋ฅ์ ๋ํ ์ง์ ํธ์ถ...)
๋๋ ์ ์ฒด "ํต์ฌ" ์ฌ์ ์ ๋ด๊ฐ ํด์ผ ํ ๋งํผ ๋ฐ์ ํ๊ฒ ๋ฐ๋ฅด์ง ์์์ผ๋ฉฐ, ๋ฐ๋ผ์ ๋์๊ฒ ์ ๋ง ๋์ ๋๋ ๋ช ๊ฐ์ง ์ฌํญ์ด ์์ต๋๋ค.
์ฒ์์๋ ASP.NET ํ์ด ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค๋ณด๋ค ๋จผ์ ๋๊ฒฉํ๋ ๊ฒ ๊ฐ์์ต๋๋ค(๋๋ ์ ์ด๋ ๊ทธ๊ฒ์ ๋ํด ๋น๋์ ๋ฐ๊ณ ์์์ต๋๋ค). ๊ทธ๋ฐ ๋ค์ ๋ค์ ๊ตฐ๋ฆผํ์ผ๋ฉฐ ์ง๊ธ์ ์ด๋ฏธ ์ธ๊ธ๋ ์ด์ ๋ก ๋ค์ ์์ ๋ก์์ ธ์ผ ํฉ๋๋ค. ๊ทธ๊ฒ์ด ๊ณต์ ํ ํ๊ฐ์ ๋๊น?
๊ทธ๋ ๋ค๋ฉด ํ์ฌ ์ง๋ฉดํ๊ณ ์๋ ๋ง์ ์ด๋ ค์์ ์์ํ ์ ์์๊ณ ์๋ก์ด ์ต์ ASP.NET/.NET์ ์ฒ์๋ถํฐ ๋ ๋ฆฝ ์คํํ์ด์ด์ผ ํ์ต๋๋ค.
์ด ์ค๋ ๋ ์ ์ฒด์์ ๋ด๊ฐ ๋ณด๊ณ ์๋ ์ฃผ์ ๋ฌธ์ ๋ ์ฌ๋๋ค์ด ๋ ์ด์ ์ ํจํ์ง ์์ ์ฝ์๊ณผ ๊ฐ์ ์ ๊ธฐ๋ฐ์ผ๋ก ์๋นํ ํฌ์๋ฅผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด ๋ง์ ๊ฒ์ ํผํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ด๊ฐ ๊ธฐ์ง๋ฅผ ๋ฒ์ด๋ฌ๋?
@davidfowl @DamianEdwards @shanselman
net462
๋ฅผ ๋์์ผ๋ก ํ๋ ํ๋ก๋์
ํ๊ฒฝ์ ๋ช ๊ฐ์ง ASP.NET Core 1.x ์ฑ์ด ์์ต๋๋ค. ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์๋ ๋ค์์คํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
๋๋ค. netstandard2.0 ์์
์งํ ์ค์ธ API ์ฐธ์กฐ์์ ๋ค์์คํ์ด์ค๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
1. ADFS ํตํฉ:
โข System.IdentityModel.Protocols.WSTrust
โข System.IdentityModel.Tokens
โข ์์คํ
.์๋น์ค ๋ชจ๋ธ
โข ์์คํ
.์๋น์ค ๋ชจ๋ธ.๋ณด์
2. Atom / RSS ํผ๋ ์์ฑ:
โข System.ServiceModel.์ ๋์ผ์ด์
์์ผ๋ก netcoreapp2.0
๋ฅผ ๋์์ผ๋ก ํ๋ ์ด๋ฌํ ๊ธฐ์กด ์ฑ์ ์ป๊ณ ์ถ์ต๋๋ค. ๊ฐ ๊ฒฝ์ฐ์ ๋ด๊ฐ ์ทจํ ์ ์๋ ์ต์ ์ ์กฐ์น๋ ๋ฌด์์
๋๊น? ์๋ฅผ ๋ค์ด ๊ธฐ์กด NuGet ํจํค์ง๋ฅผ ๋์ณค์ต๋๊น? ์๋๋ฉด ํฅํ ๋ฆด๋ฆฌ์ค๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๊น?
๋๋ฅผ ์ ์ฒด ์คํ์ผ๋ก ๋ชฐ์๋ฃ๋ ๋ง์ ๊ฒ๋ค์ด ์๋๋ฐ, ์์ด๋ฌ๋ํ๊ฒ๋ ๋๋ถ๋ถ์ด Microsoft ๊ธฐ์ ์ ๋๋ค. CRM Dynamics SDK, Azure SDK, XLST ๋ค์์คํ์ด์ค ์ง์, ํค๋๋ฆฌ์ค ADAL ๋ก๊ทธ์ธ(์ ์ฒด ์คํ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ) ๋ฑ...
์ด ๋ณ๊ฒฝ ์ฌํญ์ .Net Core๋ฅผ ์กฐ๊ธฐ์ ์ฑํํ ๋งํผ ์ถฉ๋ถํ ์ฉ๊ฐํ๊ฑฐ๋ ์ด๋ฆฌ์์ ์ด๋ฏธ ์์ ๊ฐ๋ฐ์ ๊ธฐ๋ฐ์ ๋ ๋ถ๋ฆฌํ ๋ฟ์ ๋๋ค.
@davidfowl
์ฐ๋ฆฌ๋ ๋ค์์ HTTP2 ์ง์์ ํ๊ณ ์์ผ๋ฉฐ ์๋ก์ด API๊ฐ ํ์ํฉ๋๋ค.
๋๋ ๊ทธ ์ ์ ๋ถ๋ถ์ ์ผ๋ก๋ง ์ดํดํ๋ค. HTTP/2์ ๊ฒฝ์ฐ ์ฃผ์ ์ฐจ๋จ๊ธฐ๋ TLS์ ๋ํ ALPN ์ง์์ด๋ฏ๋ก ์ง๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ CoreFx ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ด๋ จ ์์ฒญ์ ๋ํ ์๊ฒฌ์ ๋ฐ๋ฅด๋ฉด .NET Core 2.0์์๋ ์ ๋์ ๋ฐ์ํ์ง ์์ต๋๋ค. ๋์ค์ (2.2? 3.0?) HTTP/2 ๊ด์ ์์ ASP.NET Core๊ฐ corefx 2.0 ๋๋ .netstandard 2.0์ ์์กดํ๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค. ์ด์จ๋ ์๋ํ์ง ์์ต๋๋ค. ๋์ค์ ๋ฒ์ ๋ฒํธ๊ฐ ๋ค์ ์ฆ๊ฐํ ๋๋ง.
๊ฒ๋ค๊ฐ HTTP/2 ๋ฌธ์ ๋ ์ ์ฒด ํ๋ ์์ํฌ๊ฐ ์๋๋ผ ์ฃผ๋ก ์น์๋ฒ(Kestrel)์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. "์ฌ๋ฌ ๊ฐ์ง๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๋ณด๊ธฐ ํํ๋ค"๋ ์ด์ ์ธ์ .NET ํ์ค์ ๋ํ HTTP/2 ์ง์ ๋ฐ ํฅํ .NET Core ๋ฒ์ ์ ๋ํ ์ง์ ์์ด ์น ์๋ฒ๋ฅผ ๊ฐ์ง ์ ์๋ ์ด์ ๊ฐ ์์ต๋๋ค.
@davidfowl ์ด ์ ์ฒด ํ ๋ก ์์ ์ค์ ๋ก ๋ค๋ฃจ์ง ์์ ํ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ธฐ์ ์ ๋ฐฐ๊ฒฝ์ ์ถฉ๋ถํ ์ดํดํ๊ณ ์์ผ๋ฉฐ ๊ทํ์ ์ถ๋ก ์ ์ ์ ์ผ๋ก ๋์ํฉ๋๋ค. ํนํ SignalR๊ณผ ๊ฐ์ ํ์ฌ ๋๋ฝ๋ ๋ฌธ์ ์ ์ด ํฅํ 1.x ์ง์๊ณผ ํจ๊ป ์ถ๊ฐ๋ ๊ฒฝ์ฐ 1.x(์ ์ฌ์ ์ผ๋ก ์ง์ ๊ธฐ๊ฐ์ด ์ฐ์ฅ๋ ์ ์์)๋ฅผ ์ ์งํ๋ ๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ ์๋ฃจ์ ์ด ๋ ๊ฒ์ด๋ผ๋ ๋ฐ ๋์ํฉ๋๋ค. ์ฌ๊ธฐ์์ ๋ ผ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋๋ถ๋ถ์ ๋ํด.
๊ทธ๋ฌ๋ ๋ฌธ์ ๋ ๊ธฐ์ ์ ์ธ ์ฑ๊ฒฉ์ด ์๋๋ผ ์ฌ๋ฆฌ์ ์ธ ๋ฌธ์ ์ ๋๋ค. ์ฌ๊ธฐ์์ ์ผ๋ถ๊ฐ ์ง์ ํ๋ฏ์ด ASP.NET Core์ ์ฑํ์ ์์ง ์ด๊ธฐ ๋จ๊ณ์ ๋๋ค. ๋ณด๋ด๋ ค๋ ๋ฉ์์ง์ ๋ํด ์๊ฐํด ๋ณด์ญ์์ค. ๊ณง 2.x ๋ฒ์ ์ ์ถ์ํ๊ณ ์ฆ์ ๋ฒ์ 3.x์ ๋ํ ์ ๋ต์ ๊ณํ์ ์์ํ ๊ฒ์ ๋๋ค. ๋ชจ๋ ์ผ๋ฐ ๊ณต๊ฐ(์ผ๋ฐ์ ์ผ๋ก ์ข์ ์ผ์)์ ๋๋ค. ๊ทธ ๊ฒฐ๊ณผ, ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด 2.x๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ํ์ ์๊ตฌ ์ฌํญ์ด ์๊ณ 1.x๋ฅผ ์ง์ํ์ฌ ํฉ๋ฆฌ์ ์ธ ๊ธฐ์ ์๋ฃจ์ ์ ์ ๊ณตํ๋๋ผ๋ ์ฌ๋๋ค์ ๋จธ๋ฆฌ์๋ ๊ธฐ์กด ๋ฒ์ 3์ ๋ํ ์์ ์ด ์ด๋ฏธ ์์ ๋ "๋ฒ์ 1"์ ๋ํ ์๋ฃจ์ ์ ์ฆ๊ฐ์ ์ด๊ณ ์์ฉํ ์ ์๋ ์ฌ๋ฆฌ์ ์ฅ์ ๋ฌผ์ด ๋ ๊ฒ์ ๋๋ค. ์ฌ๋๋ค์ด ๊ธฐ์กด ํ๋ก์ ํธ๋ฅผ ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ง ์๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ์ถฉ๋ถํ ์์์ ์๋ ฅ์ด ์๊ธฐ ๋๋ฌธ์ ์์ ์ ํญ๋ชฉ์ .NET Core๋ก ์ด์ํ์ง ์๋ ๋ญ/๊ณ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ค์ ์ํ์ด ์์ต๋๋ค. ์ ์ฌ์ ์ผ๋ก ์ค๋ซ๋์ ์ฑํ๋ฅ ์ ํจ์ฌ ๋ ๋ฆ์ถ์ญ์์ค.
์ผ๋ถ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด ๋ถ๋ช ํ ๋ง์ ์ฌ๋๋ค์ด ์ด ์์ง์์ด ์ด๋ ์์ ์ ์จ๋ค๋ ๊ฒ์ ์๊ณ ์์์์๋ ๋ถ๊ตฌํ๊ณ ์ด ์ญ๊ฐ์ด ๊ทธ๋ ๊ฒ ๋นจ๋ฆฌ ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ์์ํ์ง ๋ชปํ์ต๋๋ค. ๋ํ ์ง๋ ๋ช ๋ฌ ๋์ ์ฐ๋ฆฌ๋ 2.x(.NET Core, .NET Standard ๋ฑ)๊ฐ ์ํฉ์ ์์ ํํ๊ณ ํตํฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๋ง์ ๋ํ, ์ธํฐ๋ทฐ ๋ฐ ๊ฒ์๋ฌผ์ ๋ฃ๊ณ ์ฝ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ง์ ์ฌ๋๋ค์ด "2.x"๋ "์ฑ์ํ"์ ํด๋นํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ด ์ฃผ์ฅ์ด ์ผ๋ง๋ ๊ธฐ์ ์ ์ผ๋ก ๊ทผ๊ฑฐ๊ฐ ์๋์ง ์ฌ๋ถ์ ์๊ด์์ด ๋ง์ ๋๋ค. 2.x์ โโ๋ํ ํฅ๋ถ์ ์กฐ์ฑํ๊ณ ์ด์ 1.x์ ํต์ฌ ๊ธฐ๋ฅ์ ์งง์ ์๊ฐ ์์ ์ ๊ฑฐํ ๋ฐฉ์์ ๊ฐ์ฅ ๋ถํํ ์กฐ์น์์ต๋๋ค. ํ๋ฉด์ ์ผ๋ก๋ ์ฌ๊ธฐ์์ ๊ธฐ์ ์ ์ธ ์ธ๋ถ ์ฌํญ์ ๋ํด ๋ ผ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ์ธ์์ ๋๋๋ฆฌ๊ณ 1.x๊ฐ ASP.NET Core๋ก์ ํ์คํ ๋ง์ด๊ทธ๋ ์ด์ ๋์์ด๋ผ๋ ๊ด๋ฒ์ํ ์ ๋ขฐ์ ํ์ ์ ๋ค์ ์ค์ ํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์์ง ๊ฒ์ ๋๋ค.
์ ๊ฐ์ธ์ ์ธ ๊ถ์ฅ ์ฌํญ์ .NET Framework๋ฅผ ์ง์ํ๋ ๋ง์ง๋ง ์ฃผ์ ๋ฆด๋ฆฌ์ค๋ก 2.0์ ๋ฆด๋ฆฌ์คํ๋ ๊ฒ์ด์ง๋ง ํด๋น ์ง์์ ์ค๋จํ๋ ๋ฐ 1๋ ์ด์์ด ๊ฑธ๋ฆฌ๋ ๋์ 3.x๋ก ํจ์ฌ ๋ ๋นจ๋ฆฌ ์ด๋ํฉ๋๋ค. ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ผ๋์ ๋๊ณ ๋ถ๊ฐ๋ฅํ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ์ ์ ๊ธฐ๋ฅ์ 3.x๋ฅผ ์ฌ์ฉํ๊ณ 2.0์ด ์ถ์๋๋ ์ฆ์ 3.x ์์ ์ ์์ํ์ญ์์ค. ์ด๋ฅผ ํตํด ํ ๋ฒ์ ์ฌ๋ฌ ํํ์ ๋ฐ์ ์ ์์ต๋๋ค. 1.x์ ๋ํ ์๋ ์ง์ ๊ณํ์ ์ ์งํ ์ ์์ต๋๋ค. ์ฌ๋๋ค์ 2.x์์ .NET ์ง์์ ๋ฐ์ต๋๋ค. ์ด ์ง์์ ์ง๋ ๋ช ๋ฌ ๋์ ๋จธ๋ฆฟ์์ "์ฑ์ํ" ๋ฒ์ ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. ๊ทธ๋ค์ ์ด์ 3.x๊ฐ ํด๋น ์ง์์ ์ค๋จํ ๊ฒ์ด๋ผ๋ ์ฌ์ค๊ณผ ํ์ํ ๊ฒฝ์ฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต์ ๊ณํํ ์ถฉ๋ถํ ์๊ฐ์ ์๊ณ ์์ผ๋ฏ๋ก ์์ ์๊ฒ "์ต์ ๋ฐ ์ต๊ณ "๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค. ๋ํ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ํ๋ ๋งํผ ๋น ๋ฅด๊ฒ ASP.NET Core๋ฅผ ๋ฐ์ ์์ผ ์๋๋ฅผ ๋ฆ์ถ ํ์๊ฐ ์์ต๋๋ค(๋๋ ๋งค์ฐ ์งง์ ์๊ฐ ๋์๋ง).
๋ค์ ๋งํ์ง๋ง, ๊ทธ ์ ์์ ๋ค๋ฅธ ๋ฒ์ ๊ด๋ฆฌ ์ธ์ ์ ์ ์ฉํ์ ๋ฟ ํ์ฌ ๊ทํ๊ฐ ํ๋ ค๋ ๊ฒ๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์์ต๋๋ค. ์ด ๋ณ๊ฒฝ ์ฌํญ์ด ์ต๊ทผ์ ์ ์ฉ๋์๋ค๋ ์ฌ์ค์ ๊ธฐ์ ์ ์ผ๋ก ๋ค์ ์ ์๋ ฅ์ผ๋ก ์ ์งํ ์ ์์ ๋๊น์ง ๊ธฐ์ ์ ์ผ๋ก ์ฝ๊ฐ์ ํํด์ผ ๋ฟ์ด์ง๋ง ์ด๋ฌํ ์ฌ๋ฆฌ์ ๋ฌธ์ ๋ฅผ ํ๋ฅญํ๊ฒ ํผํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
/cc @DamianEdwards @shanselman
๋น๋ ์ Microsoft Shrink๋ฅผ ๋ฐํํฉ๋๋ค. (๋ฏธ์, ์ ํญํ ์ ์์์ด)
WHY์ ๋ํ ๋ชจ๋ ๋ถ๋ถ์์ @MisterGoodcat ์ ๋์ํ์ง๋ง ๊ฐ์ ์ ๊ฒฐํจ/์๊ตฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด Microsoft๊ฐ ์ ๋ง๋ก ํ์ํ์ง ๊ถ๊ธํฉ๋๋ค.
.NET Framework๋ ์๋ ๋์ ์์ ์ ์ด๊ธฐ๋ ํ์ง๋ง ๋๋ฆฌ๊ฒ ์์ง์์ต๋๋ค. ๊ฑฐ์ ๋ชจ๋ ์ข ๋ฅ์ .NET ์ฑ์ ์ ์ง ๊ด๋ฆฌํ๋ ์ฌ๋์ผ๋ก์ ์ ๋ ์ด์ ๋ํด ๋ญ๊ฐ ์กฐ์น๋ฅผ ์ทจํด์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์ด์ฉ๋ฉด "๋น์ฐธํ ์ํฉ์์ ๋ฒ์ด๋๋ ๊ฒ"์กฐ์ฐจ ์ด์ Microsoft๊ฐ ๋ค๋ฅธ ์ต์ ๋์ .NET Core๋ฅผ ์ ํํ์ผ๋ฏ๋ก ์๊ฐ์ด ์ง๋๋ฉด ์ต์ ์ด ์ ๊ณต๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ฌธ์ ๋ Microsoft๊ฐ ๊ณผ๊ฑฐ์ ์๋นํ ๋ ธ๋ ฅ์ด ๋ชจ๋ ์๋์ผ๋ก ํฌํ ๋์ง๋ ์๋๋ค๋ ๋งน๋ชฉ์ ์ธ ๊ฒฝํฅ์ ๋ณด์ฌ์ค๋๋ค.
๊ฐ๋ฐ์ ๋ฐ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ค์ ์ ๋๋ ๊ฒ์ผ๋ก ์ ๋ช ํ ํ์ฌ์ ๊ฒฝ์ฐ Microsoft๊ฐ ์์ฒด ์ข ์์ฑ ํํ๋ก๋ง ์ฐจ๋จ๊ธฐ๋ฅผ ์๊ตฌํ๋ ๊ฒ์ ๋งค์ฐ ๊ทผ์์์ ์ ๋๋ค. DirectoryServices์ Drawing์ด ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ฐจ๋จ๊ธฐ๋ผ๋ ์ฌ์ค์ ๋๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ฑฐ๋ ๋น์ค์ฉ์ ์ด๊ฑฐ๋ ์์ฒญ๋๊ฒ ๋น์ผ ๋ด๋ถ ๊ตฌ์ฑ ์์, ํ์ฌ ๊ตฌ์ฑ ์์ ๋ฐ COM Interop์ ๋ชจ๋ ๊ธด ๊ผฌ๋ฆฌ์ ์ด๋จธ๋๊ฐ ์๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ ์์ต๋๋ค( ํนํ ์ ๊ทธ๋ ์ด๋์ ํํ๋ก) ํ๊ธฐ ์ํด ๊ฐ์ ธ์ต๋๋ค.
Microsoft๊ฐ ์์ฒด์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ ์์ ์ ์ํํ๊ณ ์๋์ง ํ์ธํ๊ธฐ ์ํด BCL ๋๋ ํ์ฅ๋ .NET Framework(WCF ๋ฑ)์ ์์ฒด ํญ๋ชฉ์ ๋ํด ์ง๋ฌธํ๊ณ ์๋ค๋ ์ฃผ์ฅ์ ์ดํดํ์ง๋ง ๋์ผํ ์ง๋ฌธ์ด ์ ์ฒด ํ๋ซํผ์ ์ด๋ํฉ๋๋ค. ์ผ์ ๋จ๊ณ์์ .NET Framework๋ฅผ ๋ชจ๋ ์ญ์ ํ ๊ณํ์ด๋ผ๋ฉด ์ด๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์ต๋๊น? ๊ทธ๋ฆฌ๊ณ ์ต๊ทผ์ ๊ฒฐ์ ์ด ๋ด๋ ค์ก๋ค๋ฉด ๋น์์ ๊ทธ ์ฌ์ค์ ์๋ฆฌ์ง ์๊ฒ ์ต๋๊น? ์ ์ฐ๋ฆฌ์ ์ด์ผ๊ธฐํ๊ณ ์๋ดํ์ง ์๊ฒ ์ต๋๊น? ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ ์ ํ ๋ถ์์ ํ์ง๋ ์๋๋ค๋ ๊ฒ์ ์ดํดํ์ง๋ง ์ด ์ค๋ ๋์์ MVP, ๊ฐ์ฅ ์ด๋ ฌํ ์ง์ง์ ๋ฐ ๊ฐ์ฅ ํ๋์ ์ธ ์ฌ์ฉ์๊ฐ ์ด๊ฒ์ ๋์ด ๋ฉ์ด์ง๋ ๊ฒ์ ๋ณผ ๋ Microsoft๊ฐ ๊ณ ๊ฐ์ ๋ํด ์กฐ๊ธ์ด๋ผ๋ ๊ด์ฌ์ ๊ฐ๊ณ ์๋ค๋ ์ฌ์ค์ ํ์ ์ด ์์ต๋๋ค. .
๊ทธ๋ฆฌ๊ณ ์ ๊ฐ "๋ง์ดํฌ๋ก์ํํธ"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์ฝ๋ค๋ ์ฃผ์ฅ๋ ์ดํดํฉ๋๋ค. ๋ฌดํํ ๋ฅ๋ ฅ์ด ์๋ ๊ฐ์ธ๋ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ ๊ฒ์ ์๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๊ฐ์ฒ ๊ฐ์ ๋จ์ผ์ฒด์์ ์์ฒญ๋ ๋ ธ๋ ฅ์ ์๊ตฌํ์ง ์์ต๋๋ค. ๋๋ ์์ฌ ์ํต, ์ ์ง, ์กด๊ฒฝ์ ์๊ตฌํฉ๋๋ค. ์ด ์ ํ์ ๋ํด ์์ ํ๊ณ ๊ณ ๊ฐ์๊ฒ ์ํฅ์ ์ค ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ง๋ค๊ณ ์ ํ ๋ ์ฃผ์ฌ์๋ฅผ ๊ตด๋ฆฌ๋ ๋์ ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํ์๊ธฐ ๋ฐ๋๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด ๊ธฐ์ฌ๋ฅผ ์ฐ๊ณ , ๋น์ ์ ํ๋ซํผ์ ์ ํํ๊ณ , ๋น์ ์ด ์ณ์ ์ผ์ ํ ๋ ๊ทธ๊ฒ์ ํผ๋จ๋ฆฌ๊ณ (์๋ฅผ ๋ค์ด, ๋ฌด๋ณด์ ์ปค๋ฎค๋ํฐ ํ์์ธ Ben Adams๊ฐ ์ง์ธ ์ ์๋ ๊ธฐ์ฌ๋ฅผ ํ ์ ์ฒด ์ฑ๋ฅ ํฅ์์ ๋ํด ์ฌ๋๋ค์๊ฒ ์๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ์ด) ์ปค๋ฎค๋ํฐ ์คํ ๋์ ์ ์์ฒญํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์๋ฐฉํฅ์ผ๋ก ์งํ๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ฅผ ํ์ฑ๊ธฐ ์ด์์ผ๋ก ์ฌ์ฉํ์ญ์์ค. ์ฐ๋ฆฌ๋ ์ด๋ฐ ์์ผ๋ก ๋ฐ์ํ์ง ์์ ์ ์์ต๋๋ค.
@Bartmax core, asp.net core, asp.net core non-core, netstandardbanana, .net, system.web์ ์ฐจ์ด์ ์ ๋ํด ๋ชจ๋ ์ฌ๋์๊ฒ ํ์ 2์๊ฐ ๊ณผ์ ์ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. asp.net 5(6์ ์๋ฏธํฉ๋๋ค).
๊ทธ๋ฆฌ๊ณ ๋ก๋๋งต๊ณผ ์๋๋ฅผ ๋ณด๋ค ๋ช
ํํ๊ฒ ์ ๋ฌํ์ธ์.
์์ง ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋์ง ๋ชปํ๋ ์ฌ๋๋ค์ ์ํ ์์ ์ฌํญ์ ์๋๋๋ค. ๊ธธ์ ๋ฐ๋ผ ์ด๋๊ฐ์ ์ฐ๋ฆฌ๋ ๋ ๊ฐ์ ์ปค๋ฎค๋ํฐ๋ก ๋๋ ๊ฒ์ ๋๋ค.
์๋ฒฝํ ์ธ๊ณ์์ asp.net ์ฝ์ด๋ ์ฝ์ด์์ ๋ ๋น ๋ฅด๊ณ .net์์ ์ฌ์ฉํ ์ ์๋ ์ผ๋ถ ๋ ์ ๊ธฐ๋ฅ์ ๊ฐ์ง ์๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๊ฒ๋ค์ ๋ท์คํ ๋ค๋(netstandard)๊ฐ ๋ ๊ฒ์ด๊ณ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๋ค์ ์ ์ด๋ ์์ธก ๊ฐ๋ฅํ ๋ฏธ๋๋ฅผ ์ํด ํฌ๋ก์ค ์ปดํ์ผ(cross compile)๋ ๊ฒ์ ๋๋ค. ๋ ๊ฑฐ์ ํ๋ก์ ํธ์์ ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ ์ฒด asp.net ๋ถ๋ถ ๋์ ๋ถํธ์คํธ๋ฉ ๋ถ๋ถ๋ง ๋ค๋ฅผ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์ ํต์ฌ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์ ์์ ์ธ asp.net ๊ฐ๋ฐ์ ์์ ์ด ๋๊ตฌ์ธ์ง ๋ณด์ง ์๊ณ ์์ผ๋ก ๋์๊ฐ๋ ๋ฐ ์์ ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
๊ฝค ๋ง์ C++/CLI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ์ฌ๋์ผ๋ก์ ์ด ์ ์ฌ์ ์ธ ๋ณ๊ฒฝ์ผ๋ก ์ธํด ๋์ฐํ ์ต์ ์ด ์๊ฒผ์ต๋๋ค.
1) ์๋ก์ด ๊ธฐ๋ฅ์ด๋ ๋ณด์ ์์ ์ฌํญ์ ํ์ฉํ ๊ธฐํ ์์ด ํ์ฌ์ ์์ ์ ์ธ asp.net ์ฝ์ด ๋ฒ์ ์ ์์ํ ์ ์งํ์ญ์์ค.
2) ์ด๋ค ๊ณ ๊ฐ๋ ๋จ ํ ํผ๋ ์ง๋ถํ๊ณ ์ถ์ง ์์ ๋ชจ๋ C++/CLI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ต์ฒดํ๋ ๋ฐ ์์ฒญ๋ ์๊ฐ(๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก ๋)์ ํฌ์ํ์ญ์์ค.
3) asp.net ์ฝ์ด๋ฅผ ์์ ํ ํฌ๊ธฐ
๋๋ ์ด ๋ณํ๊ฐ ๋ฏธ๋์ ํ์ํ๋ค๋ ๊ฒ์ ์ดํดํ ์ ์๊ณ ๋๋ ๊ทธ๊ฒ์ ์ฐฌ์ฑํฉ๋๋ค. ๋ด๊ฐ ์ดํดํ๊ณ ๋ฐ์๋ค์ผ ์ ์๋ ๊ฒ์ ๊ธฐ๊ฐ์ด๋ค. ์ด ์ ๋ ๊ท๋ชจ์ ๊ฒ์ ๋ฒ์ 3.x ๋๋ 4.x์ ๋ค๊ฐ์ค๋ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก 1๋ ์ ์ ๋ก๋๋งต ๋ชฉํ๋ก ๋ฐํํ๊ณ ๋ค์ ๋ฒ์ ์์ ๋ฒ๋ฆฌ์ง ์๋ ๊ฒ์ ๋๋ค....
@davidfowl netcore์ฉ edge.js์ ๊ฐ์ ๊ฒ์ ์ด๋ป์ต๋๊น? API ์๋น์๊ฐ ํ๋ซํผ ๊ฒ์ฌ๋ฅผ ๋ด๋นํ๊ฒ ํ๊ณ netfx์ netcore ๊ฐ์ ๊ฐ๋ ฅํ ํ์์ ์ธํฐํ์ด์ค๋ ๋๋ถ๋ถ์ ์๋๋ฆฌ์ค์ ์ถฉ๋ถํฉ๋๋ค.
๋์๊ฒ ์ด๊ฒ์ ์ด์์ ์ธ ์๋ฃจ์ ์ฒ๋ผ ๋ณด์ ๋๋ค.
1) netfx ์ฝ๋๊ฐ netcore์์ ์คํ๋๋์ง ์ฌ๋ถ๋ฅผ ์ถ์ธกํ ํ์๊ฐ ์์ต๋๋ค. netfx ๋ฐํ์, in-process๋ฅผ ์ฌ์ฉํฉ๋๋ค.
2) ์ฝ์ด๋ฅผ ์ต์ ํ์ง ์์ต๋๋ค
3) ์๋ก์ด Core API๊ฐ ๋์คํ๋์ด ๊ฐ๋ฐ์๋ค์ด netfx ๊ณต๊ฐ์์ ๋ฐ์ํ์ง ์๋ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋ฎ์ ๋ฒ์ ์ netstandard์ ๋ํ ์ง์์ ์ค๋จํ ์ ์๋ค๋ฉด ๋ฐ๋ ๋ฐฉํฅ์ ๋ํ ๋ค๋ฆฌ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด์ค ํ๋ซํผ ASP.NET Core๋ฅผ ์ ์ํ๋ ๊ฒฝ์ฐ ์๋ก์ด ๋ฌธ์์ด ๋ฐ ๋ฒ์ ๊ธฐ๋ฅ ์์ด ์ด์ .NET์์ ์คํ๋๊ณ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ์๋ .NET Core 2์์ ์คํ๋๋ ๊ฒ์... ๊ธ์์. ์ฝ๋๋ฅผ ํตํด ์ดํด๋ณด์ญ์์ค.
๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ค์์ ๋ชจ๋ ์น ํ๋ ์์ํฌ๋ ๋ค์์ ์ํํฉ๋๋ค.
๋ฐ๋ผ์ ์น ํ๋ ์์ํฌ๋ฅผ ๊ตฌ์ถํ ๋ ์ ๋ง๋ก ํ์ํ ๊ฒ์ _BOBTRUES_๋ฅผ ์ดํดํ๋ ์ ์์ค ๊ธฐ๋ณธ ์์๋ผ๋ ๊ฒ์ด ๋ง์ด ๋ฉ๋๊น?
๊ทธ๋ฆฌ๊ณ ์์ฑ ์ค์ธ ์ฝ๋์ ๋๋ถ๋ถ์ด _BOBTRUES_์ ์ข ์๋์ด ์์ง๋ง _BOBTRUES_๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅด๋ ๋ค๋ฅธ ๋ฐํ์๋ ์ง์ํด์ผ ํ๋ ๊ฒฝ์ฐ ํด๋น ์ฝ๋๋ฅผ ๋ชจ๋ ๋ ๋ฒ ์์ฑํ๊ฒ ๋๋ฉฐ ๋ชจ๋ ์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ด๋ ๋ณต์กํ ๋น๋ ํ์ผ๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค. . ๊ทธ๋ฆฌ๊ณ ์ ์ฒด .NET์ด _BOBTRUES_๋ฅผ ์ดํดํ๋ ๋ฐ๋ง ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์๋ ํ ์น ํ๋ ์์ํฌ๋ฅผ _๊ต์ฅํ_ ๋ง๋ค๋ ค๊ณ ํ๋ ๋์์ ๋ชจ๋ ์ฝ๋๋ฅผ ์ค๋ณต์ผ๋ก ์์ฑํ๊ณ ํธ์งํด์ผ ํฉ๋๋ค. ๋ํ Mono, UWP, Xamarin, Unity3D ๋ฐ _BOBTRUES_ ์๊ตฌ ์ฌํญ์ ์ถ๊ฐํ๋ NETStandard๋ฅผ ๊ตฌํํ๋ ๊ธฐํ ๋ชจ๋ ๊ฒ, ๋๋ถ๋ถ์ ์ฒ์๋ถํฐ _BOBTRUES_์ ๋ํด ์ค์ ๋ก ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค.
๋ฌผ๋ก ์ด ๋ชจ๋ ์ฝ๋๋ฅผ ๋ ๋ฒ ์์ฑํด์ผ ํ๋ ์ ์ผํ ์ด์ ๋
System.* ๋นํธ๋ ์ ์ณ๋๊ณ ๋ค๋ฅธ ๋ง์ ํจํค์ง์ ๋ํด ASP.NET Core ์ฌ์ฉ์๊ฐ ์ ์ฒด .NET์์ ์คํํ ์ ์๋ค๋ ๊ฒ์ ์๋ฉด NETStandard๋ก์ ํฌํธ๋ฅผ ๋ฏธ๋ฃจ๋ ๊ฒ์ ์ ๋นํํ๊ธฐ๊ฐ ์ข ๋ ์ฌ์์ง๊น์? _"์, ์ฐ๋ฆฌ๋ ASP.NET Core๋ฅผ ์ง์ํ์ง๋ง ์ง๊ธ์ ์ ์ฒด .NET์์๋ง ์ง์ํฉ๋๋ค..."_ Linux ์ปจํ ์ด๋์์ .NET Core ์ฑ์ ์คํํด์ผ ํ๊ฑฐ๋ Mac์์ ๊ฐ๋ฐํ๋ ค๋ ์ฌ๋๋ค์๊ฒ๋ ๊ทธ๋งํผ ์ค๋ง์ค๋ฝ์ต๋๋ค. , ๊ทธ๋ฆฌ๊ณ "์ง๊ธ์ ๋ฒ์ X๋ฅผ ์ ์งํ๋ ๊ฒ" ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. NHibernate๋ ์๊ณ OData๋ ์๊ณ EF6๋ ์๊ณ ์๋ฌด ๊ฒ๋ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ด Microsoft ๋ด๋ถ ๋ฐ ์ธ๋ถ ํ์ด ํจํค์ง๋ฅผ NETStandard 2.0์ผ๋ก ์ ์ ํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ Windows ์๋ฒ์์ ์์ ํ ์คํ๋๋ ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ _๋ชจ๋ _ ASP.NET ๊ฐ๋ฐ์*๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฐ ํ์ํ ๋ฐ์ง๋ผ๋ฉด .NET์ด๋ฉด _์ข์ ์ผ_์ ๋๋ค.
@JamesNK ๊ฐ ํ์๋ง ์์ฑํ๋๋ก ์ง์ํ ์๊ฒฌ์ ํนํ ์์ ์ ํ์๋ฅผ ์ญ์ ํ๋ค๋ ์ ์ ๊ณ ๋ คํ๋ฉด ์ ๋ง ๊ณ ๊ธ์ค๋ฝ์ต๋๋ค. ๊ทธ๋ ํ๋ซํผ์ ๋ฐ์ ์ํค๊ธฐ ์ํด ์์ ์ ์๊ฐ์ ์ผ์ต๋๋ค.
์, ์ ์ฒด ์คํ์ ๋๋ฆฌ๊ฒ ์ด๋ํ์ง๋ง ํ๋ ์์ํฌ๋ฅผ ์ ์๊ฐ์ด ์๋ค๋ ์๋ฏธ์ด๊ธฐ๋ ํฉ๋๋ค. ์ผ๋ฐ ํ๋ ์์ํฌ์์ ์ํํ ์์ ์ด ์์ง ๋ง์ด ์์ผ๋ฏ๋ก ์์งํ .Net ์ฝ์ด์ ๊ฐ์ ๊ฒ์ด ํ์ํ ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํฌ๋ก์ค ํ๋ซํผ์ด ์ฐ๋ ค๋๋ ๊ฒฝ์ฐ Xamarin์ ๊ตฌ์ ํ์ผ๋ฉฐ ๊ฑฐ์ โโ๋ชจ๋ ๊ฒ์์ .Net์ ์คํํฉ๋๋ค. ๋งํ ์๊ณ๋ฅผ ํฌํจํฉ๋๋ค.
์๋ง๋ ๋ก๋๋งต?
์ฐ๋ฆฌ๋ ํ ์๋ฒ์ง์ ์์ค ์ฝ๋๋ฅผ ์ฝ์ ์ ์๊ณ ๊ทธ๋ค์ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ ์ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ๋ฐค์ ๋ฌด์งํ์ต๋๋ค! .
Asp.net Core๊ฐ ์ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? Kฤฑlฤฑรงdaroฤlu๋ ๋ฆฌ๋์ญ ์์ง์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ์ด๊ฒ์ด Microsoft ๋ด์ธ๋ถ์ ํ์ด ํจํค์ง๋ฅผ NETStandard 2.0์ผ๋ก ์ ์ ํ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ์ฌ Windows ์๋ฒ์์ ์คํ ์ค์ธ ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ASP.NET ๊ฐ๋ฐ์*๊ฐ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฐ ํ์ํ ๋ฐ์ง๋ผ๋ฉด .NET, ๊ทธ๋ ๋ค๋ฉด ์ข์ ์ผ์ ๋๋ค.
@markrendle ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ASP.NET Core ๋ ผ๋ฆฌ๋ฅผ ๋ฐ๋๋ค๋ฉด netstandard๊ฐ ์๋ netcoreapp์ผ๋ก ์ด๋ํ์ง ์์๊น์? ๊ฒฐ๊ตญ ๊ทธ๋ค์ ์๋ก์ด API์ ์ด์ ๋ ๋๋ฆด ์ ์์ต๋๊น? ์ netstandard๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๊น? ASP.NET์ ๊ฒฐ๊ตญ ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ ๋ฟ์ ๋๋ค.
์ ๊ฒฝ์ฐ๋ ์ด ์ค๋ ๋์ ๋ค๋ฅธ ๋ง์ ์ฌ๋๋ค์ด ์ธ๊ธํ ๊ฒ๊ณผ ์ ํํ ๋์ผํฉ๋๋ค. ์ ํฌ ํ์ฌ์๋ .NET Core์์ ์ ๋ ์ฌ์ฉํ ์ ์๋ ๋ง์ ์์ ๋ด๋ถ ๋ฐ ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๋ ๋๊ท๋ชจ SaaS ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ์์ผ๋ก์ ๊ณํ์ ํญ์ ์ ์ฒด .NET ํ๋ ์์ํฌ์์ ASP.NET Core๋ก ์ด๋ํ ๋ค์ ์ฒ์ฒํ, 5๋ ์ด์์ ๊ฑธ์ณ ์ด๋ฌํ ํ์ฌ ๊ตฌ์ฑ ์์์ ๋ํ ๋์ฒดํ์ ์ฐพ๋ ๊ฒ์ด์์ต๋๋ค. ์ด (๋น)๋ฐํ๋ ์ด๋ฌํ ๊ณํ์ ์์ ํ ํผ๋์ ๋น ๋จ๋ ธ์ต๋๋ค.
ASP.NET Core๊ฐ .NET Desktop ํ๋ ์์ํฌ์์ ์คํ๋์ง ์๋๋ค๋ ์ธ์์ ๋ฐ์์ต๋๋ค. ํธ์ง . ์ค๋ช ์ ํ์ด์ง์๋ ASP.NET Core๊ฐ ์ ์ฒด .NET Framework์์ ์คํ๋๋ค๊ณ ๋ช ์๋์ด ์์ผ๋ฏ๋ก ์ง์์ ๋ถ๋ช ํ ์๋ฏธํฉ๋๋ค.
์๋ฌด๋ ์ด๋ฏธ ์ด๊ฒ์ ์ ์ํ์ง ์์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ค๋ฅธ ์ต์ ์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๊ฒฐ๊ตญ ASP.NET Core๋ ์คํ ์์ค์ ๋๋ค. ์ฆ, ๋ ๊ฐ์ง ๋ค๋ฅธ ๋ฒ์ ์ ASP.NET Core๊ฐ ์์ ์ ์์ต๋๋ค.
ASP.NET Core: ๊ธฐ์กด ๋น๋์ธ .NET Core(netcoreapp2.0)๋ฅผ ๋์์ผ๋ก ํฉ๋๋ค.
"ASP.NET Core Standard" : .NET Standard(netstandard1.* ๋ฐ net4*)๋ฅผ ๋์์ผ๋ก ํ๊ณ ํ์์ ๋ฐ๋ผ .NET Desktop Framework ๋ฐ ๊ธฐํ ํ์ค ํ๋ซํผ์์ ์คํ๋๋ ๋ ๋ค๋ฅธ ๋น๋์
๋๋ค.
Core ๋น๋๋ .NET Core์ ์ฐ๊ฒฐ๋์ง๋ง Core Standard ๋น๋๋ netstandard1.* ๋ฐ net4*, ๊ทธ๋ฆฌ๊ณ ์ดํ .NET standard 2.0+์์ ์ฌ์ฉ ๊ฐ๋ฅํ ํญ๋ชฉ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๋ ๋๋ฆฌ๊ฒ ์์ง์ด์ง๋ง ๋ ํธํ๋ฉ๋๋ค. .NET Core๋ ์ ๊ท ๋ฐ ์ ์ ๊ธฐ์ ์ ๋ ์ ํฉํ ์ ์๊ณ Standard๋ ๋ธ๋ผ์ดํ๋, ๋ง์ด๊ทธ๋ ์ด์ ๋ฐ ๊ธฐ์ ์ ์ ํฉํ ์ ์์ต๋๋ค.
Microsoft ํ์ด ์ ํํ ๊ฒฝ๋ก๋ ๊ธฐ๋ณธ ์ต์ ์ผ๋ก ์๋ฏธ๊ฐ ์์ผ๋ฉฐ Core๋ ํ๋ ์์ํฌ์ ๋ฏธ๋์ ๋๋ค. ํํธ, netstandard์ ๋ํ ์ถ๊ฐ ๋ชฉํ๋ฅผ ์ ์งํ๋ ๊ฒ์ ์ต์ํ์ ๋ ธ๋ ฅ์ผ๋ก ๋ฌ์ฑํ ์ ์์ด์ผ ํฉ๋๋ค. ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ๋ ์ ์์ต๋๋ค. ํธํ์ฑ์ ๊ด์ ์์ ์ค์ ๋ก Microsoft์์๋ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค.
์ด๊ฒ์ "ASP.NET Core Standard"๊ฐ ๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ป์ง ๋ชปํ ์๋ ์์ง๋ง ์ด ๋ถ๊ธฐ๋ ํธํ์ฑ์ ์ํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ ํ์ค ํ๋ ์์ํฌ์์ ์ง์๋๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค๋ ํ์ ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ํ์ค ๋ถ๊ธฐ๋ Github์์ ๋ฌด๊ธฐํ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์์ ๋ด์ฌ์๋ ์์ ๋ฐ ์ ๋ฐ์ดํธ๋ฅผ Core ๋ถ๊ธฐ์์ ํ์ค ๋ถ๊ธฐ๋ก ์ด์ํ ์ ์์ต๋๋ค.
์ค๋ซ๋์ ASP.NET Core์์ .NET Desktop ํ๋ ์์ํฌ ํธํ์ฑ์ ์ ์งํ ์ ์์๋ค๋ฉด ๋ค๋ฅธ ๋น๋๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๊ฒ์ด ๊ทธ๋ ๊ฒ ํฐ ์ฅ์ ๋ฌผ์ด ์๋์์ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ๋ง์ .NET ํ๋ก์ ํธ๋ ์ผ๋ถ ์กฐ๊ฑด๋ถ ์ปดํ์ผ ๋ฌธ์ ์ฌ์ฉํ์ฌ protobuf-net๊ณผ ๊ฐ์ ๋ค์ค ๋์์ ๋ํด ๋์ผํ ์์ ์ ์ํํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก Active Directory ๋ฐ System.Drawing์ด ํ์ํ ์ฌ์ฉ์๋ ASP.NET Core Standard๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง Windows๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ฉด ํด๋น ์ฝ๋๋ฅผ .NET Core๋ก ์ฝ๊ฒ ์ด์ํ ์ค๋น๊ฐ ๋์ด ์๊ณ ํฅํ ์ง์ ๋ถ์กฑ์ ์ํ์ด ์์ต๋๋ค.
๋๋ ๊ทธ ํ์ด ๊ทธ๋ฐ ์ง์ ์ ์ ๊ณตํ ์ ์๋์ง๊ฐ ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ASP.NET๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๊ฒ์ด ํ์ํ ์ ์์ต๋๋ค. .NET Framework์์ .NET Core๋ก์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํด์ผ ํ๋ ํ์์ฑ ๋๋ฌธ์ ์ด๋ ์์ ์์๋ ์ด๋ฌํ ์ ํ์ ์์ ์๋ฃจ์ ์ด ํ์ํ๊ฒ ๋ ๊ฒ์ ๋๋ค. ์ํํธ์จ์ด๋ ์ ์ฐํ๋ฉฐ ์ด๋ฌํ ์ข ๋ฅ์ ์๋ฃจ์ ์ ์ฌ์ฉํ๋ฉด ํ์ํ ์ ํ์ ์ํํ๊ฒ ์ํํ ์ ์์ต๋๋ค.
์ด ์์ ์ ์ํํ๋ ์ถ๊ฐ ๋ ธ๋ ฅ์ ์ปค๋ฎค๋ํฐ ์ ์ฒด์ ์ ๊ณตํ ํจ์ฌ ๋ ํฐ ์ฑํ ๋ฐ ๋ ๋์ ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ ๋น๊ตํ ๋ ์์ ํฌ์๋ก ๊ฐ์ฃผ๋์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ฒ ๋ช ์ ์ฌ์ฉ์๊ฐ ๋ ๋ง๋ค๋ ๊ฒ์ ๋ ๊ฐ์ ๋ชฉํ๋ฅผ ์ ์งํ๋ ์์ ์ ์์ํ๊ธฐ ์ํด ํ๋ก์ ํธ์ ๋ ๋ง์ ๊ธฐ์ฌ๋ฅผ ํ๋ ๋ฐ ํ์คํ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
@๋ฒค์ฒญ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ ASP.NET Core ๋ ผ๋ฆฌ๋ฅผ ๋ฐ๋๋ค๋ฉด netstandard๊ฐ ์๋ netcoreapp์ผ๋ก ๋์ด๊ฐ์ง ์์๊น์? ๊ฒฐ๊ตญ ๊ทธ๋ค์ ์๋ก์ด API์ ์ด์ ๋ ๋๋ฆด ์ ์์ต๋๊น? ์ netstandard๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๊น? ASP.NET์ ๊ฒฐ๊ตญ ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ผ ๋ฟ์ ๋๋ค.
๊ธ์์, ๋ง์ฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ _BOBTRUES_์ ๋ํ ์๋ก์ด ๊ธฐ๋ณธ ์์์ ํ๋ ์์ํฌ ์์ค ์ง์์ผ๋ก ์์ฒญ๋ ์ด์ ์ ์ป์ ์ ์๋ ๊ฒ์ ์์ฑํ๋ค๋ฉด ์๋ง๋ ๊ทธ๊ฒ์ด ์ดํด๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. , btw). ๊ทธ๋ฌ๋ ํจํค์ง์ ์ฝ๋๊ฐ _BOBTRUES_ ๋๋ ๊ทธ ์ค ์ด๋ ๊ฒ์๋ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๋ฉด netstandard20
netcoreapp20
๋ฅผ ์์ฑํ๋ ค๋ฉด ํนํ ์ ์ ์ ์ฐจ๋ ค์ผ ํฉ๋๋ค. .
@markrendle ๊ทธ๋ ๋ค๋ฉด Newtonsoft.JSON์ด ๋ค์ ๋ฒ์ ์ ์ํด ๊ทธ๋ ๊ฒ ํ๊ณ 1๋ ๊ธฐ๊ฐ์ ๊ธฐ์กด ๋ฒ์ ์ ๋ํ ์ง์์ ์ค๋จํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๊น? ๊ตฌ๋ฌธ ๋ถ์, IO ๋ฐ ๊ณ ์ฑ๋ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard ๋ฐ .NET Framework์ ๋ํ ์ง์์ ์ค๋จํ๊ธฐ ์์ํ๋ ๊ฒ์ ๋ง์กฑํ์ญ๋๊น?
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ์:
@vectorix : ๊ทธ๋ฌ์ต๋๋ค. ASP.NET Core ๋ฌธ์์ ์ฒซ ๋ฒ์งธ ํ์ด์ง์ธ ASP.NET Core ์๊ฐ ๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
๋ค์ ๋จ๊ณ
...
ASP.NET Core ์ฑ์ .NET Core ๋๋ .NET Framework ๋ฐํ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ ์ .NET Core์ .NET Framework ์ค์์ ์ ํ์ ์ฐธ์กฐํ์ธ์.
...
.NET Framework(์ ์ฒด)๋ฅผ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ช ํํ๊ฒ ์ค๋ช ํ๋ ํ์ด์ง๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ ์ฅ, ๊ทธ ๋น๊ต ํ์ด์ง๋ ์ฌ์ง์ด ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
.NET Framework๋ ๋ง์ ๊ธฐ์กด ์๋๋ฆฌ์ค์์ ๊ณ์ํด์ ์์ฐ์ค๋ฌ์ด ์ ํ์ด ๋ ๊ฒ์ด๋ฏ๋ก ๋ชจ๋ ์๋ฒ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด .NET Core๋ก ๋์ฒด๋์ง ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก BOBTRUES๋ x๊ฐ ์ ์๋ โโํ์์กฐ์ฐจ ์๋ netstandard x์ ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ๋ง์ผ๋ก๋ ๋ง์กฑํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฑ๋ฅ์ ๊ด์ฌ์ด ์๋ค๋ฉด netstandard๊ฐ ์ด๋ฏธ ์ฃฝ์๋ค๊ณ ๋งํ๋ ๊ฒ์ ๋๋ค...
5์ผ ํ BUILD ์ด๋ฒคํธ๋ฅผ ์์ํฉ๋๋ค.
Microsoft๊ฐ ๋ฐํ๋ฅผ ํ๊ณ ๋น์ ๊ณผ ๋ก๋๋งต์ ๋ชจ๋ ์ฌ๋๊ณผ ๊ณต์ ํ ์ ์๋๋ก ๊ธฐ๋ค๋ ค ๋ณด๊ฒ ์ต๋๋ค.
@CMircea : ์ง์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๊ฒ์ ์ฐธ์ผ๋ก ๋ถ๋ช ํฉ๋๋ค. ํ์ด์ง์ ๋ฌธ์์ ์ ์ ์ ๋ฐ๋ฅด๊ธฐ ์ํด์๋ .NET Desktop Framework์์ ํธํ์ฑ์ ์ ์งํ๋ ๊ฒ์ด ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค.
Azure์์ ํธ์คํ ๋๋ .NET462๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ASP.NET Core 1.1 ํด๋ผ์ด์ธํธ์ ๋ํ ๋๊ท๋ชจ ์์ ์ ๋ฐฉ๊ธ ์๋ฃํ์ต๋๋ค. MS Access db๋ฅผ ์ ๋ก๋ํ์ฌ ์ฌ์ดํธ์ ๋ฐ์ดํฐ ์๋ก ๊ณ ์นจ์ ์ํํ๊ณ Azure SQL๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ ์ด ๊ฒฝ๋ก๋ก ์ด๋ํด์ผ ํ์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด๊ฒ์ ํ ์ ์๋ ์ ์ผํ ๋ฐฉ๋ฒ์(๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ํ๋ ์ผ์ด์์ต๋๋ค) ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ์ ๋ ์ด์ด ์ข๋ค๋ฉด ์ด ์๋ฃจ์ ์ด 1, 2, 3๋ ๋์๋ง ์ง์๋ ๊ฒ์ด๋ผ๊ณ ๊ณ ๊ฐ์๊ฒ ๋งํด์ผ ํ๋ ์ ์ฅ์ ์๊ณ ์ถ์ง ์์ต๋๋ค. ์ก์ธ์ค ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด ์ ์ฒด ํ๋ก์ธ์ค๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ ์ ํ ์ฌํญ์ด ์๋๋๋ค. ์ ๋ ๋ช ๋ ๋์ ๋ ธ๋ ฅํด ์์ต๋๋ค!
Access db๋ฅผ ์ฝ๊ธฐ ์ํ ๋ ๋์ ์ต์ ์ด ์๊ฑฐ๋ ๋ก๋๋งต ์ด๋๊ฐ์ ์๋ค๋ฉด ์ ๋ ๊ธฐ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด๊ฒ์ ์ฐ๋ ค๋ฉ๋๋ค.
@bencyoung ํฐ ์ฐจ์ด์ ์ JSON.NET์ด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ ๊ฒ์ ๋๋ค. ASP.NET Core๋ ์์ฉ ํ๋ก๊ทธ๋จ ๋ชจ๋ธ์ธ ๋ฐ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๋ ๊ฐ๋ฅํ ํ ๊ด๋ฒ์ํ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด .NET Standard๋ฅผ ๋์์ผ๋ก ํ๋ ค๋ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ด๊ฐ ๊ฐ์ง ์ ์๋ ์ง๋ฌธ์ .NET Standard์ ํธํ๋๋ ASP.NET Core์ ๋ ์ด์ด๊ฐ ์ผ๋ง๋ ๋๋ฉฐ, ๋ท์ฝ์ด๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์ ๋ฌด์์ ๋๊น? .NET Standard์ ๋ํด ์์ฑํ ์ ์ฝ๋๊ฐ ์์ง๋ง ASP.NET Core ๊ณ์ธตํ ์ธก๋ฉด์ ๋ํ ์ฐธ์กฐ๊ฐ ์์ง๋ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ฆ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์๊ฐ netstandard ๋์ netcore๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒ์ ๋ง์ ์๋ ์์ง๋ง ๋ง์ ์ ์ฌ์ ํ๋ก์ ํธ์์ ํธํ์ฑ์ด ์ ํ๋ ์ํ์ด ์๋ ๋ฐ๋ฉด ASP.NET Core๋ (ํ์ฌ) ํน์ ๋ฐํ์์์ ์คํ๋๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ์์์ ์ ํํฉ๋๋ค.
@Antaris ASP.NET์ ๋ด๊ฐ ์๋ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. Kestrel์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋๋ค. ํ์ฌ ์ํ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ASP.NET Core๋ฅผ ์์ฒด ํธ์คํ ํ ์ ์์ต๋๊น?
@benchyoung ๊ณต์ ํ ์์ , ๋ด ๋ถ๋ถ์์ ๋์ ํํ.
๋ด๊ฐ ๋งํ๊ณ ์ ํ๋ ๊ฒ์(๋งํ๋ _right_ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์๋ค๋ฉด) ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ธฐ ์ํด ASP.NET Core(์คํ์ผ๋ก)๋ฅผ ํน์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ์ ๋ฐ๋ผ ๋ค์ํ ๋ฐฉ์์ผ๋ก JSON.NET๊ณผ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ASP.NET Core์ ์์ง์ด๋ ๋ถ๋ถ์ ์๊ฐํ๋ฉด Razor์ ๊ฐ์ ๊ฒ์ ์ฌ์ ํ โโ.NET Standard์ ๋ํด ๋น๋๋๋ฉฐ ์ด๋ฌํ ๊ฒ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๋ชจ๋ธ์์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ง์ด ๋ผ?
์คํดํ์ง ๋ง์ธ์. ์ ๋ ํ ์ ๊ทผ ๋ฐฉ์๊ณผ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์นํธํ๋ ๊ฒ์ด ์๋๋๋ค. ํ์ง๋ง netfx์์ ํฅํ ํธํ์ฑ์ ๋ฐ๋ผ ๋ ๊ฑฐ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํตํฉ/์ ๊ทธ๋ ์ด๋ํ๋ ๋์ ๋ช ๊ฐ์ง ๋ฏธ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ์์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฐ ์๋ฏธ์์ ๋๋ ํธํ์ฑ ํฅ์(netfx์ ASP.NET Core 2+)์ ๋ํ ์ธ์ ์ฃผ์์ ๋ง์ ๊ฐ์ค์น๋ฅผ ์ถ๊ฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@Antaris ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ฐ์ฌํฉ๋๋ค! ์ฐ๋ฆฌ๋ Windows ์๋น์ค ๋ด์์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ํด WCF ์๋น์ค์ ๋์ผํ ํ๋ก์ธ์ค์์ REST API๋ฅผ ์์ฒด ํธ์คํ ํฉ๋๋ค....
์์ฐ, Microsoft์ ๋์ฐํ ๊ฒฐ์ ์ ๋๋ค. ๋จผ์ .NET Core๊ฐ ์๋ก์ด .NET์ด ๋ ๊ฒ์ด๋ฉฐ Microsoft๋ ๊ฐ๋ฅํ ํ ๋ง์ ์ด์ API๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ์ด์ ๊ทธ๋ค์ ์ ์ฒด ํ๋ ์์ํฌ๋ก ASP.NET Core ํ๋ก์ ํธ๋ฅผ ์์ํ์ฌ Microsoft๋ฅผ ์ ๋ขฐํ๋ ์ฌ๋๋ค์ ๋ค์ ๋จ๊ฒจ๋๊ณ ์์ต๋๋ค. ๋๋ ๋งค์ผ .NET์ ๋ํ ๋ฏฟ์์ ์์ด๊ฐ๊ณ ์์ต๋๋ค. Golang์ ์๋ฒฝํ์ง ์์ง๋ง ๋๋ ์ด ๋ ๋งค๋ ฅ์ ์ผ๋ก ๋ณด์ด๊ณ ์์ต๋๋ค...๋๊ตฐ๊ฐ ๋์น์ฑ์ง ๋ชปํ๋ค๋ฉด... ์ ์ ๋ ๋ง์ ๊ด์ฌ์ ๋ฐ๊ณ ์์ต๋๋ค. ๋๋ Microsoft๊ฐ Java ์ปค๋ฎค๋ํฐ์ ๋ฌด๋ฅ๋ ฅ์ ๋จ๊ธฐ๊ฐ์ ์ด์ฉํ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง .NET Core๋ ์์ ํ ์ค๋ง์ด์๊ณ ์ฐ๋ฆฌ๋ ์ง๋ 2๋ ๋์ ๊ฑฐ์ ๋ฌผ์ ๋ฐ๊ณ ์์์ต๋๋ค. ๊ทธ ๋๊ฐ๋ก ํฌ๋ก์ค ํ๋ซํผ(Windows Nano์ ์ปจํ ์ด๋์์ .NET์ ์คํํ ์ ์๋ค๋ ์ฌ์ค์ ๊ด์ฌ์ ๊ฐ์ง)๊ณผ ์์ฒญ๋ ๋ณต์ก์ฑ(๋ง๋ ์๋๋ ๋์ฐํ ๋๊ตฌ, F# ์ง์(VS) ์ง์ ์์, .NET Standard ๋น๊ณ )์ด ์์ต๋๋ค.
์ ๋ฐ์ดํธ: ์ฌ๊ธฐ์์ ๋ช ๊ฐ์ง ์์ง ์๊ฐ๋ฝ์ด ๋ณด์ ๋๋ค. ํ์ง๋ง ์ด๋ชจํฐ์ฝ์ผ๋ก ์๋ฏธ ์๋ ๋ํ๋ฅผ ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ;) ๋์ํ์ง ์๋ ๊ฒ์ ๋ฌด์์ ๋๊น?
ํ๋ซํผ ๊ฐ ์ง์์ ๋ด๊ฐ ASP.NET Core๋ก ์ ํํ ์ฃผ๋ ์ด์ ์ด๋ฉฐ, ์ ํผ์๋ง์ ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ASP.NET Core์ ์ ์ผํ ๊ฐ์ ์ฌํญ์ ์๋๋๋ค. ๋ฌผ๋ก ํ๋ ์์ํฌ์ ๋งค์ฐ ํ์ํ ๋ชจ๋์ ๊ตฌ์กฐ์ ๊ฐ์ด ์๋ ์ ๊ฑธ์ณ ์ฑ์ฅํ ๊ฒ์ด ๋ ์์ต๋๋ค. Buildin DI๋ ์๋กญ์ต๋๋ค.
ASP.NET ์ฝ์ด์ ํจ๊ป ์ด์ 4.x ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ๋์๊ฒ ์ข์ ์ ์ถฉ์์ผ๋ก ๋ณด์ ๋๋ค. ๋์ ๊ฐ์ OS/Linux ํฌ์ ๊ฐ์ ๋ก ์ฐฝ์ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ Windows๊ฐ ์ ๋ง๋ก ํ์ํ ํ์ฌ(์: AD ์ธ์ฆ)๋ Windows๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ๋ง์ดํฌ๋ก์ํํธ๊ฐ ์ ์ด ์ข์ ์ค๋๋ฅผ ๊นจ๊ณ ์๋์ง ์ดํด๊ฐ ๋์ง ์๋๋ค. ํนํ ์ง๊ธ์ ์ด์ 4.x ํ๋ ์์ํฌ์ ๋ง์ ์ค์ํ ๋ค์์คํ์ด์ค๊ฐ ์์ง ASP.NET Core๋ก ์ด์๋์ง ์์ ๊ฒฝ์ฐ์ ๋๋ค.
@DMWOO7 .NET Core์ ASP.NET Core๋ฅผ ํผ๋ํ์ง ๋ง์ญ์์ค.
.NET Core์ ASP.NET Core๋ฅผ ํผ๋ํ์ง ๋ง์ญ์์ค.
์์ด๋ฌ๋. ๐
@MartinJohns ๋ ๋ช ํํ๊ฒํ๊ธฐ ์ํด ๋ด ๊ฒ์๋ฌผ์ ์ ๋ฐ์ดํธํ์ต๋๋ค.
@๋ฒค์ฒญ
๋ฐ๋ผ์ Newtonsoft.JSON์ด ๋ค์ ๋ฒ์ ์ ์ํด ๊ทธ๋ ๊ฒ ํ๊ณ 1๋ ๊ธฐ๊ฐ์ ๊ธฐ์กด ๋ฒ์ ์ ๋ํ ์ง์์ ์ค๋จํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค. ๊ตฌ๋ฌธ ๋ถ์, IO ๋ฐ ๊ณ ์ฑ๋ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard ๋ฐ .NET Framework์ ๋ํ ์ง์์ ์ค๋จํ๊ธฐ ์์ํ๋ ๊ฒ์ ๋ง์กฑํ์ญ๋๊น?
๊ฐ์ธ์ ์ผ๋ก ์ ๋ ์ปจํ ์ด๋์ Linux ์๋ฒ์์ ์คํํ ์น ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๊ณ ์ ์์ ๊ณผ ์ ์์ ์ ์ฌ์ฉ ์ฌ๋ก ์ธ์๋ ๋ค๋ฅธ ์ฌ๋์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. ์ด ์ค๋ ๋.
์ง์งํ๊ฒ, ๋๋ JSON.NET์ด netstandard
์ ๋ํ ์ง์์ ์ค๋จํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ์ง ์์ ๊ฒ์ด์ง๋ง ๋๊ตฐ๊ฐ๊ฐ ๋ ์ต์ ํ๋ for -์น ๊ฐ๋ฐ netcore
API.
.NET์ Python 3์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ๋ช ๋ ์ ์ Core๊ฐ ๋ฐํ๋ ์ดํ๋ก ์ด๋ฐ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
ASP.NET Core ๋์ netcoreapp2.0์ ๊ฐ๋ ๊ฒ์ด ๊ฐ์ฅ ํฉ๋ฆฌ์ ์ ๋๋ค. .NET Core๋ ์ฌ๋ฌ ํ๋ซํผ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ ์ ์๋ ์๋ก์ด ์์๊ณผ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ต๋๋ค. Windows์ฉ์ผ๋ก ์์ฑ๋ ๋ชจ๋ API๋ฅผ ๋์ด๋ค ๋๋ ๊ฒ์ ๊ธฐ์ฐจ ์ฌ๊ณ ๊ฐ ์ผ์ด๋๊ธฐ๋ง์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ๊ฒ์ ๋๋ค. Python 3์ ๋น์ ๋ ํ๋ฅญํ๊ณ Python 3๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ข์, ์ค๋ ๋๋ฅผ ์ฝ์ ํ ๋๋ ์ฝ๊ฐ ๋ค๋ฅธ ๊ฒฌํด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ถ๋ช ํ ํ๊ณ๊ฐ ์์ต๋๋ค.
Microsoft๋ฅผ ๋ฐ๋ฅด๋ ์ฌ๋์ด๋ผ๋ฉด ๋๊ตฌ๋ .NET Core๊ฐ .NET Framework๋ณด๋ค ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ์ป์ ์ ์๊ณ ๊ฒฐ๊ตญ .NET Framework๊ฐ ์ ์ง ๊ด๋ฆฌ ์ ์ฉ ๋ชจ๋๊ฐ ๋ ์ ์๋ค๋ ์๊ฐ์ ํ์ ๊ฒ์ ๋๋ค. ๋ํ ๋๋ฝ๋ API๊ฐ ์ถ๊ฐ๋๋ ๋์ ์ ์ฒด .NET Framework์ ๊ธฐ๋ฅ ํจ๋ฆฌํฐ๋ฅผ ์ ๊ณตํ ์๋๊ฐ ์์์์ด ๋งค์ฐ ๋ถ๋ช ํฉ๋๋ค.
ASP.NET Core๊ฐ .NET Framework์์ ์คํ๋๋ค๋ ์ฌ์ค์ ํตํด ์ ๋ ๊ฐ๋ฐ์ ์ ๋์ ์์ ์ ๊ณ์ ๊ด๋ จ์ฑ์ ์ ์งํ๊ณ ๋ชจ๋ ๋ฉ์ง ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ๋ฉด์ ํ๋ ์์ํฌ์ ์ ์ฒด ๊ธฐ๋ฅ(๋ฐ OS). ASP.NET Core์์ ๋ช ๊ฐ์ง ๊ฐ๋จํ ์น ํ์ด์ง๋ฅผ ์๋ํ๊ณ ๋ ํฐ ์น ํ์ด์ง๋ ์์ํ ๊ณํ์ด์์ต๋๋ค. ์ฌ์ค ์ ๋ .NET Framework์ ASP.NET Core์์ ๋ชจ๋ ์๋ก์ด ๊ฐ๋ฐ์ ํ ๊ณํ์ด์์ต๋๋ค. ๊ธ์์, ๋ ์ด์์ ์ ๋ ๊ฒ ๊ฐ์์.
๋ช ๊ฐ์ง ์ง๋ฌธ์ ๋ตํ๊ฒ ์ต๋๋ค(ํน์ ์์ ์์ด):
1.x๊ฐ ์๋ ASP.NET Core 2.x์ธ ์ด์
ํ์คํ Razor Pages. ๊ทธ๊ฒ ์ ๊ฐ ์ฃผ๋ก ์ผํ๋ ๋ฐฉ์์
๋๋ค. ์์ ์ฑ๊ณผ ๋ค๋ฅธ ์ฌ๋๋ค์ด "์ฑ์๋"๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๋ค๋ฅธ ๊ฒ์ด์ง๋ง ์์ ์ฌํญ์ด ๋ฐฑํฌํธ๋์ด์ผ ํ๋ค๋ ์ ์์ด ์์์ต๋๋ค. ํด๋ง์ด ๋ถํ ๋๋ฉด ํฐ ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ๊ทธ๊ฒ์ 3.x๋ก ์ฐ๊ธฐํ๋ ๊ฒ์ด ํธ๋ฆญ์ ํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
ASP.NET์ด ์๋ ASP.NET Core๊ฐ ํ์ํ ์ด์
๊ธ์์, ์ด ์ฃผ์ ์ ๋น์ถ์ด ๋ณผ ๋ ๊ทธ๊ฒ์ ๊ณต์ ํ ์ง๋ฌธ์
๋๋ค. ์์ ํ .NET Framework๊ฐ ์๋ ๊ฒฝ์ฐ ASP.NET Core๋ ์ ์์ ๋ฐ๋ผ ๊ฐ์น๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ต์ ์คํ, ํ๊ทธ ๋์ฐ๋ฏธ, ํตํฉ API ๋ฐ MVC, ์ต์ ๊ธฐ๋ฅ. ์ ์ฒด .NET Framework๊ฐ ์์ผ๋ฉด ๊ทธ๋ค์ง ๋ง์ง ์์ต๋๋ค. ์ค์ ๋ก ASP.NET์ผ๋ก ๋์๊ฐ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ์๋ฃจ์
์ธ ๊ฒ ๊ฐ์ต๋๋ค.
์๋ก์ด ๊ธฐ๋ฅ ๋๋ ํธํ์ฑ?
100% ์๋ก์ด ๊ธฐ๋ฅ. ๊ทธ๋ฌ๋ ๋ฌธ์์ด์ UTF-8(๋ฐ 4๋ฐ์ดํธ ๋ฌธ์!)๋ก ์ ํํ๊ฑฐ๋ ์ํคํ
์ฒ ๋ฆฌํฉํ ๋ง์ ํธํ ๊ฐ๋ฅํ ๋ณ๊ฒฝ ์ฌํญ์
๋๋ค. ๊ธฐ๋ฅ์ ๊บผ๋ด๋ ๊ฒ์ ์๋๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ๋ .NET Framework์ ๊ธฐ๋ฅ
๋ด๊ฐ ๊ฑฑ์ ํ๋ ํฐ ๊ฒ๋ค:
System.Drawing ๋ค์์คํ์ด์ค ๋ด์ ํด๋์ค๋ Windows ๋๋ ASP.NET ์๋น์ค ๋ด์์ ์ฌ์ฉํ๋๋ก ์ง์๋์ง ์์ต๋๋ค. ์ด๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ ์ ํ ์ค ํ๋์์ ์ด๋ฌํ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๋ฉด ์๋น์ค ์ฑ๋ฅ ์ ํ ๋ฐ ๋ฐํ์ ์์ธ์ ๊ฐ์ ์๊ธฐ์น ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ง์๋๋ ๋์์ Windows ์ด๋ฏธ์ง ๊ตฌ์ฑ ์์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ด ๋ชจ๋ ์น ์ด๋ฏธ์ง ์์ ์ WIC๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ช ๋ ๋์ ๊ถ์ฅ๋ ๊ธฐ์ ์ ์ด์ํ์ง ์๊ณ ์ง์๋์ง ์์ ์ด์ ๊ธฐ์ ์ ์ฝ๊ฐ ์ค๋งํ ๊ฒ์ ๋๋ค(๋๋ถ๋ถ์ ๊ณ ๊ฐ์ด ์๊ตฌํ๋ ์ฌํญ์ด๋ผ๋ฉด ์ดํดํ ์ ์์).
๊ฒฐ๊ตญ ์ด๊ฒ์ ์ ์ ์ผ๋ก ๋น์ฆ๋์ค ๊ฒฐ์ ์
๋๋ค. ์ ์๊ฒ ์์ ํ .NET Framework๊ฐ ์๋ ASP.NET Core๋ ์์ฑํ ์ ์๋ ํญ๋ชฉ์ ์ ํํ๋ฉฐ ํ์ฌ๋ก์๋ ์ด๋ฅผ ์ฌ์ฉํ ์ค๋๋ ฅ ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. ์ํฉ์ด ๋ฐ๋๊ฑฐ๋ ๋ด ์ํ์ด ๊ทธ๊ฒ์ ๋ฌ๋ ค ์๋์ง ์ฌํ๊ฐํ๊ฒ ๋์ด ๊ธฐ์ฉ๋๋ค.
ํ์ง๋ง ๋ด๊ฐ ํ๋ซํผ์ ์๋ ์๋ ๊ทธ๊ฒ์ ์ค์ํ์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ธ๊ธฐ ์๋ ์ด๋ฆ๊ณผ ๋๊ธฐ์
๊ณ ๊ฐ์ด ์๋์ง ์ฌ๋ถ๊ฐ ์ค์ํฉ๋๋ค. ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์
์ด Azure์์ ์ข
๋ฃ๋๊ณ ๋ด ์ ํ๋ฆฌ์ผ์ด์
์ด ์ข
๋ฃ๋์ง ์๋์ง ์ฌ๋ถ๊ฐ ์ค์ํฉ๋๋ค. ๋ฐ๋ผ์ ํ๋ ์์ํฌ๋ฅผ ์ ์งํ๋ ๋ชจ๋ ๊ฒ๊ณผ ํจ๊ป ํ๋ ์ดํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฌํ ๋ณํ๊ฐ ์์กด๊ณผ ๊ฒฝ์๋ ฅ์ ์ ์งํ๋์ง ์ฌ๋ถ๋ ๋ ๋ค๋ฅธ ๋ฌธ์ ์ ๋๋ค. ํ์ง๋ง ๊ณต์ ํ๊ฒ ๋งํ์๋ฉด, ์์์ ๋งํ ๊ฒ์ฒ๋ผ .NET Framework ๋ฐฐ๊ฒฝ ์ง์์ด ์๋ ์ฌ๋๋ค์ ๋์์ผ๋ก ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ๋ ์ ํํ ๊ฐ์น๊ฐ ์๊ฑฐ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ๊ฐ์ ์ฌ๋๋ค์ด ๋ ์ธ๊ณ์์ ๊ฐ์ฅ ์ข์ ๊ฒ์ ๊ฐ์ง ์ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ ๊ฒฐ์ ์ ๊ฐ์์ค๋ฝ๊ณ ์ด์ฉ๋ฉด ๋ถ๊ณตํํ๊ธฐ๋ ํ์ง๋ง, ๊ฐ๋ฐ ์ค์ธ ์ต์ ๊ธฐ์ ๋ก ์์ ํ ๋ ํญ์ ์ํ์ด ๋ฐ๋ฆ ๋๋ค. ํ์ฌ .NET Framework์ ํจ๊ป .csproj์์ ๋ฐ์ํ์ผ๋ฉฐ ์์ผ๋ก๋ ๊ทธ๋ด ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ถ์ . ์ ๊ฐ์ค๋ฝ๊ฒ๋ ์ด "์ ํ ์ ๋ฌ๋์ง ์์" ๊ฐญ ์ฑ์ฐ๊ธฐ ์ญํ ์ด ์ด์ ์ ์ง์ ๋์ง ์์์ต๋๋ค. ๋๋ msbuild ํ๋ก์ ํธ ์์คํ ์ ์ง์ํ๊ณ ์์์ง๋ง .NET Framework๊ฐ ๋ช ๋ฌ ์์ ๊ณํ์์ ๋ฒ์ด๋ฌ๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ๋ค๋ฉด ๋๋ ๊ทธ๊ฒ์ ๋ํด ๊ด์ฌ์ ๊ฐ์ง ์์์ ๊ฒ์ ๋๋ค(๋๋ ๋ด๊ฐ ๋งํด์ผ ํ๋ค๊ณ ๋๊ผ์ต๋๋ค). ํฐ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๊ฒ์ ๊ด์ฐฎ๊ณ , ์ ํ๋ ๊ฒ๋ณด๋ค ๋ฆ๊ฒ ํ๋ ๊ฒ์ด ๋ซ๋ค๊ณ ์๊ฐํ์ง๋ง, ํ๊ฒ ์ฒญ์ค์ด ์ผ๊ด์ ์ด๋ผ๋ฉด ๋์์ด ๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๊ตญ ์ด๊ฒ์ ์ ์ ์ผ๋ก ๋น์ฆ๋์ค ๊ฒฐ์ ์ ๋๋ค.
๋ฌธ์ ๋ ๋ง์ดํฌ๋ก์ํํธ๊ฐ ๋ถํ์ค์ฑ์ ๋ง๋ค๊ณ ์๋ค๋ ์ ์ด๋ค. ๋๊ธฐ์ ์ ๋ถํ์ค์ฑ์ ์ซ์ดํฉ๋๋ค. Microsoft๋ ํธํ์ฑ์ ์์ด์์ต๋๋ค(์ข๋ ๋์๋ , ๋ด ๋ถ๋ฆ์ด ์๋). ๊ทธ๋ฐ ๋ค์ .NET Core๊ฐ ๋ฑ์ฅํ์ต๋๋ค...ํธํ์ฑ์ด ๊นจ์ง๊ณ ...์ข์ ์์์ด ์์ต๋๋ค. ์ด์ API๋ฅผ ๋ค์ ์ถ๊ฐํ ๊ฒ์ ๋๋ค. .. ์ด์ ์ด ASP.NET Core 2.0 ์ค๋จ์ด ์์ต๋๋ค.
๋๊ธฐ์ ์ ์ง๋ฃจํ๊ณ ์์ ์ ์ธ ๊ธฐ์ ์คํ์ ์ข์ํฉ๋๋ค. ์ ์ ๊ธฐ์ ์ ๊ด์ฌ์ ๋ ๊ฐ๊ณ Microsoft๊ฐ ์ด๋ค ๊ทธ๋ฃน์ ๊ธฐ์๊ฒ ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@GiorgioG ๊ธฐ์กด ์ฑ์ ์ฌ์ฉํ๋ ๋๊ธฐ์ ์ด ASP.NET Core๋ก ์ ํํ๋ ค๋ ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํจ์ ์ด๋ ๋ญ๊ฐ ๋ ๋น์ทํด ๋ณด์ ๋๋ค.
@miloush ์ ๋ ๋ฏธ๋๋ฅผ ์ํ ์ค๋น๊ฐ ๋ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ธฐ์กด ์ฝ๋ ๊ธฐ๋ฐ์ .NET Standard/ASP.NET Core๋ก ์ฒ์ฒํ ์ ํํ์ง๋ง ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํํ๋ ๊ฒฝ์ฐ ์ฝ๋๋ฅผ ๋์ค์ .NET Core์ ํธํ๋๋๋ก ๋ฐฐ์นํ๋ฏ๋ก ๋ค์์ ์ํํ ํ์๊ฐ ์์ต๋๋ค. ์ด์ ์์คํ ์ ๋ํ ์ง์์ด ์ค๋จ๋๋ฉด ๊ฑฐ๋ํ, ํ ๋ฒ์ ๋ชจ๋ ๋ณํ์ ์ค์งํฉ๋๋ค.
์ด์ ๊ธฐ์ ์ .NET Standard๋ก ๋ณํํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๋ฉ์ง ๋ณด์กฐ์ ๋ฅผ ์์ ํ ๋ง์ ์ผ ํ๊ฑฐ๋ ์ ํ ๋ง์์ง ์์์ผ ํฉ๋๋ค.
@miloush - ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core 1.1๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core 2.0์ผ๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ ๋ฐ์๋ค์ฌ์ง ์ ์๋์? ๊ทธ ๋ฐฐ์ ํ ์ฌ๋์๊ฒ๋ ๊ฝค ๋์ฐํ๊ฒ ๋ค๋ฆฝ๋๋ค.
@miloush .Net ์ฝ์ด๊ฐ ๋ ์์ฐ์ ์ด๊ธฐ ๋๋ฌธ์(์ฌ๊ธฐ์ ๋ชจ๋ ๊ธฐ์ ๋ฐ์ ์ ์ด๊ฑฐํ๊ณ ์ถ์ง๋ ์์ต๋๋ค. ์์๋ค์ํผ, API/MVC ์ปจํธ๋กค๋ฌ, ํ๊ทธ ๋์ฐ๋ฏธ, ํ์งํ ์ง์์ ๋ณํฉํ์ต๋๋ค) ๋น์ฆ๋์ค๊ฐ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ค์ด ์ผ๋ฐ์ ์ผ๋กํ์ง ์๋ ๊ฒ์ ๋ถ์ฐ์์ฑ์ ๊ฐ๋นํ ์ ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ์์ ์ฆ๋ถ์ผ๋ก ์ํํด์ผํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฑ ์ ๊ทธ๋ ์ด๋์ ๋๋ค.
์ด์ ๋ฒ์ ์ ๋ํ ์ง์์ด ์ค๋จ๋๋๋ผ๋ ์ ๊ฒฝ ์ฐ์ง ์์ ์ ์์๋ ์คํํธ์ ์๊ฒ๋ ์์ ํ ๋ค๋ฆ ๋๋ค. ๊ทธ๋ค์ ์ ์ฐ์ด ์์ผ๋ฉฐ ์ด๋ฐ ์ข ๋ฅ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
@popcatalin81 - ์ด ๋ชจ๋ ์์ ์ ์ ์ฒด ํ๋ ์์ํฌ๋ก๋ ๋๋ฌํ ์ ์์ต๋๋ค. ํ๋๋ ๋ค๋ฅธ ํ๋์ ์ถฉ๋ํ์ง ์์ต๋๋ค. ๋ฌธ์ ๋ ํ๋์ ๋ค๋ฅธ ํ๋์ ๊ฐ๋ฐ ์๋์ ๋๋ค. ์ ๋ MS๊ฐ ๋ง์ดํฌ๋ก- ๋ฒค์น๋งํฌ ์ฐจํธ์์ ์ข์๋ณด์ด๋ ์๋น์ค ํ๋ ์์ํฌ์ ์ง์ฐฉ์ด ๋ ๊ฒ ๊ฐ๋ค.
๋ค์์ ์์ฒญํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
"3๊ฐ์ ๋ฐํ์, ํ๋์ ํ์คโฆ .NET Standard: Visual Studio 2017์ ๋ชจ๋ ๊ฒ"
Build https://channel9.msdn.com/ ์์ 45๋ถ ๋์ ๋ ๋ช ์ Scott๊ณผ ํจ๊ป ์ธ๊ธํ ๋ด์ฉ์ด ์์ต๋๊น?
@adrianlmm ๊ด๋ จ์ด ์์ง๋ง ์๋ฐํ ๊ด๋ จ๋์ง๋ ์์ง๋ง ๋ง์ดํฌ๋ก ์๋น์ค koolaid๋ฅผ ์์ง ๋ง์์ง ์์์ต๋๊น? ๊ทธ๊ฒ์ ์์ฒญ๋ ๋ณต์ก์ฑ(๋น๋/๋ฐฐํฌ/์ด์/๋ฌธ์ ํด๊ฒฐ ๋ฑ)์ ์ถ๊ฐํ๊ณ ๋๋ถ๋ถ์ ํ์ฌ๋ ์ด๋ฅผ ํ์๋ก ํ์ง ์์ต๋๋ค(์ผ๋ง๋ ๋ง์ ํ์ฌ์์ ์ถ๊ฐ๋ ์ด์ ๋ณต์ก์ฑ์ ๋ณด์ฅํ๋ ์ํ์ ํ์ฅ์ฑ์ด ํ์ํฉ๋๊น?). ์ ๋ ๋ชจ๋ ์ ํ๋ ์ปจํ ์คํธ๋ฅผ ์ง์งํ์ง๋ง ์ฐ๋ฆฌ๋ ๊ทธ๋ ๊ฒ ํ๊ธฐ ์ํด 50๊ฐ์ ๋ง์ดํฌ๋ก ์๋น์ค๊ฐ ํ์ํ์ง ์์ต๋๋ค.
@GiorgioG ๋ด ์ง๋ฌธ์ ์ฒ์์ ASP.NET Core 1.1๋ก ์ด๋ํ๋ ์ด์ ์์ต๋๋ค. ๊ธ์์. ๊ทธ๋ฆฌ๊ณ ์ ๊ธฐ๋ถ์ด ๊ฐ์ฅ ์ข์ ๋ ์ ์๋๋๋ค. ํ์คํ ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ง์ด๊ทธ๋ ์ด์ ํด์ผ ํ ํฐ ์ฝ๋๋ฒ ์ด์ค๊ฐ ์์ผ๋ฉฐ ๋ ํฐ ํฌ์๋ฅผ ์ปค๋ฐํ๊ธฐ ์ ์ ์ํฉ์ด ์ด๋ป๊ฒ ํด๊ฒฐ๋๋์ง ๊ธฐ๋ค๋ฆด ๊ฒ์ ๋๋ค. ๋ด ๋ง์ ์์ฐ์ด ์์ด๋ ASP.NET Core์์ ๋ ํฐ ์ ์น ์ฌ์ดํธ ๊ฐ๋ฐ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋๊ตฌ๋ฅผ ์ป๊ธฐ ์ ์ ์ฐ๊ธฐํ๊ณ ๋ฏธ๋๊ฐ ์กฐ๊ธ ๋ช ํํด์ก์ต๋๋ค. ๊ทธ๋ ๊ฒ ๋์ ๊ฒฐ์ ์ ์๋ ๊ฒ์ผ๋ก ํ๋ช ๋์์ต๋๋ค. (๋ฉด์ฑ ์กฐํญ: ๋ค์ ํ ๋ฒ ์ ๋ ํฐ ๋น์ฆ๋์ค ์ฝ๋๋ฒ ์ด์ค๋ก ์ด ๊ฒฐ์ ์ ํ ํ์๊ฐ ์์์ต๋๋ค.
๋๋ ์ฌ๋๋ค์ ๋น๋ํ๋ ๊ฒ์ด ์๋๋๋ค(์์ ๊ฒ๋ค๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค). ๊ทธ๋ฆฌ๊ณ ์ ๋ ํ์คํ ์๋๋ฐฉ์ ๋ณํธํ๊ณ ์ถ์ง ์์ต๋๋ค. ASP.NET Core๊ฐ .NET Framework๋ฅผ ์์ํ ์ง์ํ๋ค๋ฉด ์ ๋ง ๊ธฐ์ ๊ฒ์ ๋๋ค!
RTM๊ณผ ์๋ก์ด ํด์ฒด์ธ ์๊ตฌ์ฌํญ์ด ์์ ์ง 6๊ฐ์์ด ์ง๋ ์ง๊ธ, ๋ณํ์ ๋ถํ์ค์ฑ์ด ๋ฌธ์ ์ธ ๋๊ธฐ์ ์ด ์ด๋ป๊ฒ ๊ทธ ์ํฉ์ ๋น ์ง๊ฒ ๋์๋์ง ์ ์ดํด๊ฐ ๋์ง ์์ต๋๋ค.
@miloush ์ฐ๋ฆฌ๋ 1๋ ๋๊ฒ ".NET Core๊ฐ ์์ ํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค." ์ด๋ค ์์ ์์ ์ฌ๋๋ค์ ์ค์ ๋ก ์์ํ๊ณ ํ๋ก์ ํธ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ;)
@milush ๊ทธ๋ค์ ASP.NET Core์ ๊ฐ์ ์ฌํญ์ ํ์ฉํ๊ณ ์ถ์์ง๋ง ์ฌ์ ํ .NET ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณต์์ ์ผ๋ก๋ .NET๊ณผ .NET Core ์ค์์ ์ ํํ ์ ์๋ค๊ณ ๋ช ์๋์ด ์์ต๋๋ค. ์ด์ ๊ทธ๋ค์ ๊ฐ์๊ธฐ ๋งค์ฐ ๋์ ์ํฉ์ ๋์์ต๋๋ค. ๊ทธ๋ค์ ASP.NET Core ๋ฒ์ 2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ ์ ์๊ณ ๋ฒ์ 1.x์์ ๋ฉ์ถ๊ฒ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ์์ ์์ 1.x์ ๋ํ ์ง์์ด ๊ณ ๊ฐ๋๊ณ 1.x์ ๋ํ ์๋ก์ด ๊ธฐ๋ฅ๋ ๋์ค์ง ์์ ๊ฒ์ ๋๋ค.
@GiorgioG , ์ง๊ธ๊น์ง ์ ํ๋ก์ ํธ์ .Net ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ผ๋ฉฐ Full Framework์์ ๋ค๋ฅธ ๊ฒ์ผ๋ก Asp.Net ์ฝ์ด๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ์ต๋๋ค. ๋ ๋ค ํ์ฑ ํ๋ก์ ํธ์ ๋๋ค.
Net Core๋ฅผ ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๋ ๊ฒ์ ์๋๋๋ค. ํ์ง๋ง ์ฌ์ค ์์ง ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค! ๊ทธ๊ฒ ๋ฌธ์ ์ผ. ํ๋ ์๊ฐ์ ์ ์ด๋๊ณ ํ์ค์ธ๊ณ๋ฅผ ๋จผ์ ์๊ฐํด์ผ์ง...
@MartinJohns ๋๋ ๊ทธ๊ฒ์ ์ป์์ต๋๋ค. ๋๋ ๋๊ฐ์ ์ํฉ์ ์์ต๋๋ค.
๋๋ ์ง๊ธ ๊ทธ๊ฒ์ด ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ์ง์ํ์ง ์๋๋ค๋ฉด ์ฐ๋ฆฌ์ ๋ค๊ฐ์ค๋ ํ๋ก์ ํธ์ ๋ง์ ์ด๋ ค์์ ๊ฒช์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ pact-net-core ๊ฐ ๊ทธ ์ค ํ๋์ ๋๋ค.
ASP.NET Core ๋ฐ MVC๋ฅผ ์ญ์ ํ ์ ๋ฐ์ ์์ต๋๋ค. ASP.NET Core MVC์ ๋ํ ์ง์ ์ค๋จ
๊ทธ๋์ ์ฐ๋ฆฌ๋ .NET์ ๋ฒ ํธ๋จ์ ๋์ฐฉํ์ต๋๋ค. ๋๋ดํ ์์ง์ Microsoft, ์ฑ๊ณผ๊ฐ ์๋์ง ๋ด ์๋ค.
ASP.NET Core ๋ฐ MVC๋ฅผ ์ญ์ ํ ์ ๋ฐ์ ์์ต๋๋ค. ASP.NET Core MVC์ ๋ํ ์ง์ ์ค๋จ
@shanselman ์ด๊ฒ์ ๊ฒฐ์ ํ๊ธฐ์๋ ๋๋ฌด ์ด๋ฅด์ง ์์ต๋๊น? ์ด๊ฒ์ ๋งํ๋ ๊ณต๊ฐ ๋ฐํ/๊ฒ์๋ฌผ์ด ์์ต๋๊น?
.NET Framework์ ASP.NET Core 1.1์์ ๋ช ๊ฐ์ง ์ ํ๋ก์ ํธ๋ฅผ ์ํํ์ต๋๋ค. ์ด์ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ์ด๋ฅด๋ ๋ค๊ณ ํด์ ๊ธฐ์์ง ์์ต๋๋ค. ์ด์ ASP.NET์์ ์์ ์ ์ํํ์ผ๋ฉด ํฉ๋๋ค.
Scott์ ์ง๊ธ Build์ ์ด์ผ๊ธฐ๋ฅผ ๋๋๊ณ ์์ต๋๋ค. ์๋ง๋ ์ด ์ฐ์ค ์ค์ด๋ ์งํ์ ์์์ด ์์ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์์ ์์ค๊ณํ ์ ์์ต๋๋ค: https://channel9.msdn.com/?wt.mc_id=build_hp
๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌ ํฉ๋๋ค @NickCraver
ํฐํผ์ปฌ ๋ง์ดํฌ๋ก์ํํธ.
๊ฑฐ์ 3-40๋
ํ์ ๊ทธ๋ค์ ๊ด์ฐฎ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ฐ๋ฐํ ์ ์์์ต๋๋ค.
๊ฑฐ์ 20๋
- ์๋ช
์ด ์๋ ํ๋ ์์ํฌ ์์ > ๋ฏธ๋ ํฌ๋ง์ด ์๋ 1๋
.
๊ทธ๊ฑฐ์ผ!.
์์ง์๊ฐ๋ฝ์ ์น์ผ์ธ์๋ ์ฌ์ค์ ๋ณํ์ง ์์ต๋๋ค.
๋ฉด์ฑ ์กฐํญ: ์์ 500๊ฐ ์ด์์ ๋๊ธ ์ค _๋ชจ๋_๋ ์ฝ์์ง๋ง ๋ง์ด ์ฝ์ง๋ โโ์์์ต๋๋ค.
์ ๋ฅผ ์ง์ฆ๋๊ฒ ํ๋ ๊ฒ์ MS๊ฐ ๊ณ์ ์ ๊ทธ๋ ์ด๋ํด์ผ ํ๋ ๊ฒ์ฒ๋ผ ํ๋ํ๊ณ "๋ฌด์์ด ๋น์ ์ ๋ฐฉํดํฉ๋๊น?"๋ผ๊ณ ๋ฌป๋ ๊ฒ์ ๋๋ค.
์ ์ฅ, ๋ง์ ๊ทธ๋ง! ๐ก .NET Core๋ .NET fx๋ฅผ ๋์ฒดํ ์ค๋น๊ฐ ๋์ง ์์์ต๋๋ค. ์ค๋์ด ์๋๋ผ 1๋ ํ์!
๋ค์์ ์ (.NET fx์์ ์คํ๋๋ ASP.NET Core 1.1 ํ๋ก์ ํธ)๋ฅผ ์ ์งํ๋ ๊ฒ์ ๋๋ค.
@davidfowl
๊ทํ์ ์๊ฒฌ์ .NET fx๊ฐ ์์ํ ๊ตฌ์์ผ๋ก ๋ณํด๊ฐ๊ณ ์๋ค๋ ๋๋์ ์ค๋๋ค... fx์์ HTTP/2๋ฅผ ์ง์ํ์ง ์์ ๊ณํ์
๋๊น?
์ฃ์กํ์ง๋ง ๋ง์ ์์
์ .NET fx๋ก ์ด์ํด์ผ ํฉ๋๋ค. ํด๋น ํ๋ซํผ์ ์ฃฝ์ง ์์์ต๋๋ค. WPF ์ฑ์์ HTTP/2๋ฅผ ์ํํ๋ ค๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
๊ฐ์ ์ฌํญ์ด .NET Core์ ๋ ๋นจ๋ฆฌ ์ ๋ฌ๋๋์ง ๋๋ ์ผ๋ถ ์ค์ํ์ง ์์ ๊ฐ์ ์ฌํญ์ด Core ์ ์ฉ์ธ์ง๋ ์๊ดํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ .NET Core๋ ๊ณง .NET fx๋ฅผ ๋์ฒดํ์ง ์์ต๋๋ค.
์ค๋๋ .NET fx์์ ์น ์ฑ์ ๋น๋ํ๊ธฐ ์ํ MS ์ง์นจ์ ๋ฌด์์ ๋๊น(.NET Core์์๋ ๋ถ๋ช ํ ํ ์ ์๊ธฐ ๋๋ฌธ์)?
์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋งํ๋ ๊ฒ์ ์๋์ง๋ง(๊ทธ๋ ์ง ์์ต๋๋ค), ์ฃฝ์ ํ๋ซํผ์ด ์๋ ์ด์์๋ ํ๋ซํผ์ ์๊ณ ์ถ์ต๋๋ค. ๋๋ฆฌ๋๋ผ๋ ์ ์ง ๊ด๋ฆฌ๋๊ณ ํ์ํ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ๋ ๊ฒ.
๋ํ Microsoft๋ ๋ค์์ ๊ณ ๋ คํ์ญ์์ค.
ASP.NET Core 2.0์ด .NET fx 5.0์์ ์คํ๋๋ ๊ฒฝ์ฐ ์ด๋ ์ ์๊ฐ์ ๊ตฌ์ฑํ ์ ์๋ ์
๊ทธ๋ ์ด๋์
๋๋ค.
.NET 5.0์ ์ถ์ํ๋ ์๊ธฐ๋ ASP.NET Core 2.0๋ณด๋ค ํจ์ฌ ๋ฆ์ ๊ฒฝ์ฐ์๋ ์ค์ํ์ง ์์ผ๋ฉฐ .NET 4.6์์ ์
๊ทธ๋ ์ด๋ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๋ ์ค์ํ์ง ์์ต๋๋ค. _๋์๊ฒ๋ ์
๊ทธ๋ ์ด๋ ๊ฒฝ๋ก์ ๋ฏธ๋๊ฐ ์์ต๋๋ค._
ASP.NET Core 2.0์ด .NET Core _only_์์ ์คํ๋๋ ๊ฒฝ์ฐ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ ๊ฐํ ๊ฒ์
๋๋ค.
๋ด๊ฐ ์ํ๋ ๋งํผ, ๋๋ fx์์ core๋ก ๋ค์ _years_์ ๋ง์ด๊ทธ๋ ์ด์
์ ๋ณผ ์ ์์ต๋๋ค. ์ด์ ๋ ์๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
@Kukkimonsuta ๋ ์์ ์ต๊ณ ์ ์์ฝ ์ค ํ๋์
๋๋ค. ์ ๊ฒฝ์ฐ์๋ Core-on-netfx๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ํ ๊ฒฐ์ ์์ธ์ netstandard
compat์ผ๋ก ์งํ๋์ง ์์ ๋ค๋ฅธ OSS ๋๊ตฌ ์ธํธ์ ํจ๊ป EF Core v EF6์ด์์ต๋๋ค.
์ด ํ ๋ก ์์ ํ ๊ฐ์ง ๋ถ์ํ ์ ์ @davidfowl ๊ณผ ๊ทธ์ ์๋ต์๊ฐ ์๋ก "๊ณผ๊ฑฐ ์ด์ผ๊ธฐ"ํ๋ค๋ ๊ฒ์ ๋๋ค. ํ๋ก์ด๊ณ ์ธ์์ ๋ํ ๊ทธ์ ์๋ต์ "์์์ง๋ง ์ ๋ง๋ก ํ์ํ API๋ ๋ฌด์์ ๋๊น?"์ ๋๋ค. ์ด๊ฒ์ ๋ํ์ ์ด์ ์ ๋ค์ ๋ง์ถ๋ ค๋ ์นญ์ฐฌํ ๋งํ ์๋์ด์ง๋ง, ๊ทธ๋ (๋ฌด์์์ ์ผ๋ก) ์ค์ํ ๋ฌธ์ ๋ฅผ ์จ๊ธฐ๊ณ ์์ต๋๋ค. ๊ทธ์ (๋ฐ @shanselman ์) ๋ค๋ฅธ ์๋ต์ ์ด๊ฒ์ด ASP.NET Core๊ฐ "๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์์ผ๋ก ๋์๊ฐ๋" ์ํ๋ฅผ ์ ์งํ๋ ๋ฐ ํ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ค์ ํ ๋ฒ ์นญ์ฐฌํ ๋งํ ๋ชฉํ์ด์ง๋ง, ๋ ๋ค์ ํต์ฌ ๋ฌธ์ ๋ฅผ ์ํํฉ๋๋ค. (๋ ๊ฐ์ง ์จ๊ฒจ์ง ๋ฌธ์ ๋ชจ๋ ์ผ๋ฐ์ ์ผ๋ก OSS์ ํต์ฌ "์ํ๋ ๋ฌธ์ "์ธ ๊ฒฝํฅ์ด ์์ต๋๋ค.)
@MisterGoodcat ์ด ๊ฒฉ์ฐจ๋ฅผ ์ขํ๋ ค๋ ์๋์์ ์ฃผ์ฅํ ๊ฒ์ฒ๋ผ ์ด๊ฒ์ ๋จ์ํ ์ฌ๋ฆฌ์ /๊ฐ์ ์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. @GiorgioG ๋ "๋ถํ์ค์ฑ"์ด "๋๊ธฐ์ "์ด ์ข์ํ์ง ์๋ ๊ฒ์ด๋ผ๊ณ ์ฃผ์ฅํ๋ฉด์ ๋ชฉํ์ ๋ ๊ทผ์ ํ์ต๋๋ค.
๋ฌธ์ ๋ ๊ทผ๋ณธ์ ์ผ๋ก ๋น์ฉ ์ ๋๋ค. ๋ถํ์ค์ฑ์ผ๋ก ์ธํ ๋น์ฉ๊ณผ ๋์์์ด ๋ณํํ๋ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ต์ ์ํ๋ก ์ ์งํ๋ ๋ฐ ๋๋ ๋น์ฉ. ์ด๋ "๋๊ธฐ์ "๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๊ฐ๋ฐ์ ์๊ฒ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ๊ธ์ ์ ์ธ ์ธก๋ฉด์์๊ฐ ์๋๋ผ(์ ๋ถ) ์๊ฐ, ์คํธ๋ ์ค, ๋ฐ๋ผ์ ๋น์ฆ๋์ค ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ ์ ์ํ๊ณ ์์ ์๊ฒ ์คํํ ์ ์๋ ๋ฅ๋ ฅ(์)์ด ํ์คํฉ๋๋ค.
" ์ด๋ค ๋๋ฝ๋ API๊ฐ ์ ๋ง๋ก ํ์ํ๊ฐ์? "์ ๋ํ ๋์ ๊ณผ์ ์๋ต์ ๋ค์ ์๊ฐํด ๋ด ์๋ค. ์๋นํ ํ๋ก์ ํธ ๋๊ตฌ ์ฒด์ธ์ ํตํด ๊ทธ ์ง๋ฌธ์ ์ถ์ ํ๊ณ ์๋ง๋ ์ 3์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋๋์๊ฐ ๊ฒ์ ๋๋ค. ์ด ์ง๋ฌธ์ ๋ตํ๋ ๊ฒ๋ง ์ผ๋ก๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋น์ฉ์ ๊ณ ๋ คํ๊ธฐ ์ ์ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค.
" ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ์์ผ๋ก ๋์๊ฐ๊ธฐ "๋ ์ด๋ป์ต๋๊น? ๋ค์ ๋งํ์ง๋ง, ๋ชจ๋ "์์ผ๋ก ๋์๊ฐ" ๋๋ง๋ค ๊ฐ๋ฐ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ต์ ์ํ๋ก ์ ์งํด์ผ ํ๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค . ์ด๊ฒ์ ์ง์ ๊ณผ ํจ๊ป ์ ๊ณต๋๋ ํ์ต/์ฌ์ฉ ์ฐจ์ด๋ฟ ์๋๋ผ ํ์ต ๊ณก์ ๊ณผ ์๋ก์ด ์ธ์ฌ๋ฅผ ์ฐพ๊ณ ํ๋ จํ๋ ๋น์ฉ์๋ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ฐ์ฅ ๋ฌธ์ ๊ฐ ๋๋ ๊ฒ์ ์ค๋๋๊ณ ์ด์ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ข ์์ฑ์ "์ฃ์ง ์ผ์ด์ค"๊ฐ ๊ณ ๋ คํ ๊ฐ์น๊ฐ ์๋ ๋ฌธ์ ๊ฐ ์๋๋ผ๋ ์ผ๋ถ์ ํ๋์ ๋๋ค. ๋ฌผ๋ก ๋๊ตฌ๋ ๊ฐํ๊ณ ์ถ์ ๊ณณ์ ์๋์ง๋ง ๊ธฐ์ ์ ๋ถ์ฑ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ดํด ๊ด๊ณ์๊ฐ ์๋ ์ฌ๋์ ์ผ์ ์ ๋ฐ๋ผ ์ง์ด์ ธ์ผ ํ๋ ๋น์ฉ์ด ์๋๋๋ค .
์ด์ ์ด๋ฌํ ๋น์ฉ์ด ์ฌ์ํ์ง ์์ง๋ง ์ฐ๋ฆฌ ๋ชจ๋๋ ์ด ์์ ๋ผ์ธ์์ ๋น์ฉ์ ์๊ณ ์์ํฉ๋๋ค. ์ฌ์ค, .NET Core๋ก์ ์ด๋์ด๋ผ๋ ์ธก๋ฉด์์ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ๊ฐ์ ๋ก ์คํ๋์ง ์๋๋ผ๋ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ์ด ์ณ์ ์ผ์ด๋ผ๊ณ ์์ํ๊ณ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฌธ์ :
@shanselman ์ด ์คํ ์์ค ASP.NET ๋ฒํผ์ ๋๋ ์ ๋ ์ ๋ Vegas์ ๊ธฐ์กฐ ์ฐ์ค์ ์์์ต๋๋ค. ๊ทธ ์ดํ๋ก MS๋ OSS ์ชฝ์ผ๋ก๋ง ๋์๊ฐ๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ํญ์ ์ง๋ฌธ๊ณผ ํจ๊ป ์์ต๋๋ค. OSS์ ์ฅ์ ๊ณผ ํจ๊ป "๋์ ๊ฒ"๋ Microsoft ์ค๋ฆฌ์ ์ค๋ฉฐ๋ค๊น์? ๋ค์ ๋งํด์, ์ฐ๋ฆฌ๊ฐ ์ป๋ ๊ฒ๊ณผ ๊ตํํ์ฌ ์๋ ๊ฒ์ ๋ฌด์์ ๋๊น? ์ฌ๊ธฐ์์ ์ฐ๋ฆฌ๊ฐ ๋ณด๊ธฐ ์์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ ๋ค๋ฅธ ๊ฒ์ ์ ์ณ๋๊ณ : ์ด ์์ง์์ด ๋ชจ๋ ๋๊ตฌ/๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ง ๊ด๋ฆฌ์๊ฐ ์ค์ ๋ก netfx
์์ ์์ผ๋ก ๋์๊ฐ ์ ์๋๋ก ํ๋ "๋ฐ์ง ํฅ"์ด ๋ ๊ฒ์ด๋ผ๋ @markrendle ์ ์์ด๋์ด์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํ์ง๋ง ๋ ๊ฐ์ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฒซ์งธ, ํ์๋ผ์ธ์ผ๋ก ์ถฉ๋ถํ์ ๊ฒ์
๋๋ค. ๋ฒ์ M.0์ด ์ผ๋ฐ์ ์ผ๋ก .NET Core์ ASP.NET Core๋ฅผ ํก์ํ๋ N๋
๋ฒ์ ์ฃผ๊ธฐ์ ๋ํ ๋ฐํ๊ฐ ์์๋ค๋ฉด "๊ณ ์ "์ผ๋ก ์ถฉ๋ถํ์ ๊ฒ์
๋๋ค. ๋๋ (๋งํ์๋ฉด) ๋ด๊ฐ ์๋นํ๋ ๋๊ตฌ์ ์ ์ง ๊ด๋ฆฌ์์ ๋ํด ๊ทธ๊ฒ์ ํ๋๋ฅด๋ ์ต์ด์ ์ฌ๋ ์ค ํ๋๊ฐ ๋ ๊ฒ์
๋๋ค. ๋์งธ, ์ด ๋ฐํ์ ํจ๊ป(๊ทธ๋ฆฌ๊ณ ๋ถ์ ์ ์ธ ๋ฐ์์ ๋ํ ๋ฐ์์ ๋ณด๊ธฐ ์ํด ์จ์ ๋ค์ด์ฐ ํ) ํนํ ASP.NET(MVC ๋๋ Core)์ ์ค์ ์ ๋ ๋๊ตฌ๋ ์ด์ netstandard
์ ๋ํ ๊ฑฑ์ ์ ์์ ๊ฒ ๋ ๊ฒ์
๋๋ค. compatํ๊ณ .NET Core๋ก ๋ฐ๋ก ์ด๋ํ์ฌ .NET ํ๊ฒฝ์ ๋์ฑ ์ธ๋ถํํฉ๋๋ค.
์ฐธ๊ณ ๋ก .NET Core 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ ์ข
๋ฃ๋์์ต๋๋ค.
https://www.microsoft.com/net/core/preview
Asp.net ์ฝ์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์ ๋ฆด๋ฆฌ์ค ์ ๋ณด๋ฅผ ์ฝ์ด๋ณด๋ฉด Full .Net ํ๋ ์์ํฌ๋ฅผ ์ง์ํ์ง ์๋ ๊ฒ์ ๋ํ ๋ด์ฉ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ด๋ฏธ ๋นํธ ๋จ์๋ก ์๋ฃ๋์์ต๋๋ค. ๊ทธ๋ ์ง ์์ต๋๊น?
๋ด ๋๋ ค์ ์ค ํ๋๊ฐ ํ์ธ๋์์ต๋๋ค.
MS Build ํ ํฌ์ ๊ฑฐ์ ์ง์ ์ ์ธ ์ธ์ฉ๋ฌธ: "NuGet์ ๋ชจ๋ ๊ฒ ์ค 70%๋ .NET Standard 2 API์ ํธํ๋ฉ๋๋ค... ๊ทธ๋ฆฌ๊ณ WinForms ๋ฐ WPF์ ๊ฐ์ ๊ฒ์ด ์๋ ์ ์ผํ ๊ฒ์ ๋ชจ๋ ํ๋ซํผ์ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. . ๊ทธ๋ฌ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ๊ฑฐ๊ธฐ์ ์์ต๋๋ค. ์ฌ์ปดํ์ผ์ด ์์ต๋๋ค. ๊ทธ๋ฅ ์๋ํฉ๋๋ค."
์ด๊ฒ์ ๋ฏฟ์ ์ ์์ ์ ๋๋ก ์คํด์ ์์ง๊ฐ ์์ต๋๋ค.
@PabloAlarcon ์ด๊ฒ์ ๋น์ ์ด ์ฐพ๊ณ ์๋ ๋ณํ์ ๋๋ค:
https://github.com/aspnet/Mvc/commit/1c5e4176069ea20671e1738ac599e544633f47ce
ํ๋ซํผ ๋์์ผ๋ก net46
์ ๋ํ ์ง์์ ์ค๋จํ๊ณ ๋๋ถ๋ถ์ ํ๋ก์ ํธ ํ์ผ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค.
- <TargetFrameworks>net46;netstandard1.6</TargetFrameworks>
+ <TargetFramework>netcoreapp2.0</TargetFramework>
๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ด ๋ณ๊ฒฝ์ ์ํ๋ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- <TargetFrameworks>net46;netstandard1.6</TargetFrameworks>
+ <TargetFramework>netstandard2.0</TargetFramework>
์ค, ๊ฐ์ฌํฉ๋๋ค. ํ์ง๋ง ๋ฐฉ๊ธ ๊ฒ์๋ Preview 1์ ๋ฆด๋ฆฌ์ค ์ ๋ณด๋ฅผ ์๋ฏธํ์ต๋๋ค. https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0.0-preview1.md
@PabloAlarcon ๋ด ์๊ฐ์ ์ฌ๊ธฐ์์ ๋ ํฐ ๋ฌธ์ ์ค ํ๋๋ ์ด ๋ฌธ์ ์ ๋ํ ์ฌ์ ์์ฌ ์ํต์ ์์ ํ ๋ถ์กฑ์ด์์ต๋๋ค. ํ์ฌ Build์ ์ฐ์ฌ์กฐ์ฐจ๋ ์ํ๊ณ์ ๋ํ ์๋ชป๋ ์ ๋ณด/ํต๊ณ๋ฅผ ์ธ์ฉํ๊ณ ์์ต๋๋ค.
๊ทธ๋ค์ ๋ชจ๋ ๋๋ถ๋ถ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ netstandard2.0
์ ํธํ ๊ฐ๋ฅํ๋ค๊ณ ์ฃผ์ฅํ๊ณ ์์ต๋๋ค. ์ฆ, ๋ชจ๋ ๊ณณ์์(๊ฒฐ๊ตญ) ์คํ๋์ด์ผ ํ์ง๋ง ์ด ๋ณ๊ฒฝ์ ์ค์ ๋ก ํ๋ก์ ํธ๊ฐ MVC ๋ฐฉํฅ์ผ๋ก ์จ์ฌ๋ ๊ฒฝ์ฐ .NET Core ๋ฐํ์ ์์๋ง ์คํํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์ด๋ ASP.NET Core 2 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฆด๋ฆฌ์ค ์ ๋ณด๊ฐ ์๋๋ผ .NET Core 2 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฆด๋ฆฌ์ค ์ ๋ณด์ ๋๋ค. ์ด ๋ณ๊ฒฝ ์ฌํญ์ https://github.com/aspnet/home/releases/2.0.0-preview1 ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฑฐ๊ธฐ์ ์๋ ค์ง ๋ฌธ์ ์ ์ฃผ์ ๋ณ๊ฒฝ ๋ชฉ๋ก์ด ์์ด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค... ํ์ง๋ง ๊ฑฐ๊ธฐ์์ ์ฌ์ฉํ ์ ์๋ ์ ์ผํ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ๊ฒฐ๊ณผ๊ฐ ์๋ github ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
๋ด ๋์, ๋๋ ๋ ํ์ด์ง๋ฅผ ๋ชจ๋ ์ฝ์์ง๋ง .net ํต์ฌ ํ์ด์ง๋ฅผ ๋ณต์ฌํ์ต๋๋ค.
์ฌ์ ํ ๋์ผํ, ์๋ฌด ์ธ๊ธ๋ ๋ณด์ด์ง ์์ต๋๋ค.
@marcrocny ๋น์ ์ ๋ด๊ฐ "๋ฌด์จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ?"๋ผ๊ณ ์๊ฐํ ์ด์ ๋ฅผ ํจ์ฌ ๋ ์ ํํํ์ต๋๋ค. ์ง๋ฌธ์ ๋ด๊ฐ ํ ์์๋ ๊ฒ๋ณด๋ค ์ค์ ๋ฌธ์ ์์ ๋ฒ์ด๋๋ฏ๋ก ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์๋กญ๊ณ ๋ฐ์ง์ด๋ ํ๋ก ํ ๊ฐ ํ์ํ์ง ์์ผ๋ฉฐ ํฉ๋ฆฌ์ ์ธ ๊ธฐ๊ฐ ๋ด์ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ๊ณ ์์ ์ ์ด๊ณ ๋ ์ค์ํ๊ฒ๋ ์ ์ ๋์ ์ง์๋์ด์ผ ํฉ๋๋ค.
10๋ฌ๋ฌ๋ HTTP2๊ฐ ์์ ํ .Net์ผ๋ก ์ค์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํฉ๋๋ค.
ASP.Net Core์ ์ปค๋ฎค๋ํฐ ํฌํฌ๊ฐ ํ์ํ ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ฒ์์ ASP.NET Core๋ก ์ ํํ ์ด์ ์ ๋ฐ๋ผ ์ ์ฒด .NET Framework ๋ฐ NancyFX ๋ก ๋ค์ ์ ํํ๋ ๊ฒ์ด ์ผ๋ถ ์ต์ ์ผ ์ ์์ต๋๋ค.
@dbus0 ๋ฌธ์ ๋ Microsoft ํ๋ ์์ํฌ์ ์ ์ฑํ ์ถ๋ณต๋ฐ์ ๋ ์ ๋ ๋๋ฉด ์ด๋ฅผ ์ง์ํ๋ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฝ์์คํ ์ ๊ฐ๊ฒ ๋๋ค๋ ๊ฒ์ ๋๋ค(ASP.NET๊ณผ ๋น๊ต)
์น์ฉ ASP.NET์ ๋ฒ๋ฆฌ๋ ค๋ ๊ฒฝ์ฐ .NET์ด ์๋ ๊ธฐ์ ์คํ IMO๋ฅผ ์ ํํ๋ ๊ฒ์ด ๋ ๋์ ์ ์์ต๋๋ค.
๋๊ตฐ๊ฐ aspnet core 2.0์์ ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋งํ ์ ์์ต๋๊น?
์ฌ๋ฌ๋ถ, ๋น์ ์ ํ๋ ์๋ฆ๋ค์ ๋ .NET ํ๋ ์์ํฌ๋ฅผ ์ฃฝ์ด๊ณ ์์ต๋๋ค. .NET์ ๊ด๋ฆฌํ๋ linuxesque ๋ฐฉ์์ ๋ชจ๋ ๊ฒ์ ๊ฑฐ๋ํ ํดํน์ฒ๋ผ ๋ณด์ด๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค. MS-dev์ ๋ชจ๋ ๊ฒ์ด ์๋ง์ถ์ด์ฒ๋ผ ๋ณด์ด๊ธฐ ์์ํ๊ณ ์ฐ๊ฒฐ์ด ๋์ด์ ธ ๋ชจ๋ ํ/์ ํ์ด ๋จ๋ ์ผ๋ก ์งํ๋ฉ๋๋ค. ๋ฒ ํ์ ๋ชจ๋ ๊ฒ, InProgress์ ๋ชจ๋ ๊ฒ, ํฐ ๊ฑฐ์ธ์ด ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง ๋ณด์, ๋๋ด์ ํ๊ณ , ์์ง ๊ทธ๋ ๊ฒ ํ์ง ์๊ธฐ๋ก ์ฝ์ํ์ต๋๋ค..., ๊ทธ๊ฒ ์ ๋ง ํ์ํ๊ฐ์? ์์ ? ๋ฑ๋ฑ. ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ฐ ๊ฒ์ ์ํ๋ค๋ฉด PHP์ Linux์ ํฌ์ํ์ฌ ํจํค์ง Z๊ฐ ํธํ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ X๊ฐ ์ปค๋ Y์ ์ด๋ป๊ฒ ์๋ํ์ง ์๋์ง ํ ๋ก ํ๋ ์ฌ๋ฏธ๋ฅผ ๋๊ผ์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ฌ๋ฏธ๋ฅผ ์ํด ๋ชจ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค.
๋ํ ํ์ด "๋ ๋น ๋ฅด๊ฒ ์์ง์ด๊ธฐ", "๊ธฐํ ํ์ํ๊ธฐ" ๋ฑ๊ณผ ๊ฐ์ ๋ง์ผํ ๋งํธ๋ผ ๋ค์ ์จ๋ ๊ฒ์ด ์ซ์ต๋๋ค. ๊ฐ์ง ๊ธฐ์ ์ ์ด์ ๋ค์ ๋น์ฆ๋์ค ๋ชฉํ๋ง ์จ๊ธฐ๋ ๊ฒ๋ฟ์ ๋๋ค. ์ํ๊ณ ๊ณณ๊ณณ์์ "์ด๊ฒ์ ์คํ ์์ค์ ๋๋ค - ์ค์ค๋ก ํด๊ฒฐํ์ธ์"๋ผ๋ ๋ต๋ณ์ ๋ณด๊ธฐ ์์ํ์ต๋๋ค. ๋ด๊ฐ ์ดํดํ๋ ๋ฐ๋ ์ฐ๋ฆฌ๊ฐ ๋ ์ด์ ๋ง์ MS ๊ธฐ์ , ํนํ ๊ทธ๊ฒ์ด ์ด๋๋ก ๊ฐ๊ณ ์๊ณ ๊ทธ ์ด์ ๋ฅผ ์์ง ๋ชปํ๋ .NET Core๋ฅผ ์ ๋ขฐํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ ์ด๋ฏธ ๋งค์ฐ ํ๊ฐ ๋ฌ์ง๋ง ํธํ๋์ง ์๋ ๋ฒ์ ์ ๊ด๊ธฐ ๋ฐ .NET Core์ ๋ชจ๋ ์์ค ๋ฐ ๊ฐ๋ฐ ์ํ(ASP.NET Core๊ฐ RC์์ ๋ชจ๋ ๊ฒ์ ๋ณ๊ฒฝํฉ๋๊น? ์ ์ ๋ฐ...)์์ ๋ณ๊ฒฝ ์ฌํญ์ ๊นจ๋ ๊ฒ์ด์ง๋ง ์ฌ์ค์ ๊ฐ๋ฐ์์ด์ ๊ฐ๋ฐ์๋ก์ ๋น์ฆ๋์ค ์ฌ์ฉ์๋ Core 1.0์ด ์ง์ํ์ง ์๋ ๋ฐ๋ฉด Core 1.1์ด ์ง์ํ์ง ์๋ ๋ฐฉ์์ ๋ํ ๋์๋ ํ ๋ก ์ ์์ํ๊ธฐ ์ํด ํ์ฌ๋ฅผ ๋์ ํ์ฌ Core์ ํฌ์ํ๋๋ก ๊ถ์ฅํ๊ฑฐ๋ ๊ฒฐ์ ํ ์๋ ์์ต๋๋ค. 2.0์๋ง ์๋ ์๋ก์ด ๊ธฐ๋ฅ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ 2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ... ๋ฌด์? ๋๋ดํ๋๊ฑฐ์ผ?
๊ทธ๋ฆฌ๊ณ ์ด๋ฐ ์ข ๋ฅ์ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ธํด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ฌ๋๋ค์ด ์ํ๋ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ์ํด ๋ฆ์ ์๊ฐ์ ์๋ก์ด ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ๊ธฐ ์ํด ์ฌ๋๋ค์ด ์ค์ ๋ก ์ฌ์ฉํ๋ ๋ค์์คํ์ด์ค๋ ๊ธฐ๋ฅ์ ์ดํดํ๋ ๊ฒ์ ์ค์ํ์ง ์์ต๋๋ค. ๋น์ ์ ๋ด๊ฐ ๋ณธ ์ต์ ์ ํ๋์ผ๋ก ์ผ์ ๋จ๋ฝ์ํค๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๋ก์ด XYZ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐํํ๊ณ ์ฌ๋๋ค์๊ฒ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ง์ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ์ด๋ฅธ ๊ณํ์ด ์๋๋๋ค. ๊ทธ๋ค์ด ํ ์ ์๋ค๋ฉด ์ด๋ค ์ด์ ๋ก๋ ๋ถ์ด์ ๋๋ค. v8.0 ๊ธฐ๋ฅ์ด ์๋ค๋ ์ ์ ์ ์ธํ๊ณ v8.0์์ ์์ ํ๋ ๊ฒฝ์ฐ์๋ v1.0์ "์ง์"ํ ๊ฒ์ด๋ฏ๋ก ์ฐ๋ฆฌ์ ์ง์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ถ์ด ํ๋ค๋ค๊ณ ๋ถํํ๊ณ ๋งํ ๋ ๋ฑ์ ๋๋๋ฆฌ๋ ๊ฒ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ง๋ 2๋ ๋์ ์ผ๋ง๋ ๋ง์ MS ๊ธฐ์ ์ ๋จ์ด๋จ๋ ธ๋์ง ๋ฏฟ์ ์ ์์ต๋๋ค. 1998๋ ์ดํ๋ก Microsoft ๋งค์ฅ์ด ๋ ์ดํ๋ก ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ ๊ฒ ํ ์ ์์ ๊ฑฐ๋ผ๊ณ ๋ ์๊ฐํ์ง ๋ชปํ์ต๋๋ค. ์ ์ฅ, ์ฐ๋ฆฌ ์ง์ญ์์๋ ".NET ์ ํ" ๋๋ "Windows ์ ํ"์ผ ๋ ํญ์ ๊ณ ์ฉ๋๊ณ ์์ต๋๋ค. Windows -> ์ ํ) ํ์ง๋ง ์ค๋๋ ์ ํ๋ก์ ํธ๋ฅผ ์ํ ๊ธฐ์ ์ ์ ํํด์ผ ํ ๋ ์ผ๋ฐ์ ์ผ๋ก ๋งํด์ .NET ํ๋ ์์ํฌ๋ฅผ ์ ์งํ๋ ๊ฒ์ด ์ ์ ์ ์ธ์ง ํญ์ ๊ถ๊ธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ์คํ, ์ด ๊ธ์ ์ฝ๊ณ ๋๋ฉด .NET Core์ ๋ํ ๋ชจ๋ ํฌ์๋ ์ต์ํ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ดํดํ ๋๊น์ง ์ค๋จ๋ ๊ฒ์ ๋๋ค. .NET Core 1.1์ด 2.0๊ณผ ํธํ๋์ง ์๊ฑฐ๋ ๋๊ตฐ๊ฐ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์คํ ํ๊ธฐ ์ํด ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋ ์์ ๋ณ๋์ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ณ ๊ฐ์๊ฒ ์ ์ด๊ฒ์ ๊ฒ์ ๋ค์ ์์ฑํด์ผ ํ๋์ง ์ค๋ช ํ ์์ง๋ ์๊ฐ์ด ์ ํ ์์ต๋๋ค. ํ์ํ์ง๋ง "OLD"๊ฐ 3๊ฐ์ ์ ์ ๋ฆด๋ฆฌ์ค๋ ๋ฒ์ ์ ์๋ฏธํ๋ ํ๋ ์์ํฌ์ "์ด์ " ๋ฒ์ ๊ณผ ํธํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ ์ ์ง ๊ด๋ฆฌ(MAYBE)๋์ง๋ง ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณต๋์ง ์๋ "์ด์ " ๋ฒ์ ๋๋ฌธ์ ์ ๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค.
๊ทธ๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ์ฐ๋ฆฌ๋ก ํ์ฌ๊ธ .NET ํ๋ ์์ํฌ๋ฅผ ์ ์ฒด์ ์ผ๋ก ์ฌ๊ณ ํ๊ฒ ๋ง๋ค๊ณ .NET ํ๋ ์์ํฌ๋ฅผ ์ฌ๊ณ ํ๋ค๋ ๊ฒ์ Windows๋ฅผ ์ฌ๊ณ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค๋ ๊ฒ์ ์์์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ Windows๋ฅผ ์ฌ๊ณ ํ๋ค๋ ๊ฒ์ Microsoft๊ฐ ํ์ํ์ง ์ฌ๊ณ ํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. vNext์์ ์ง์๋๋ ๊ธฐ๋ฅ์ ์ดํดํ๊ณ vCurrent์ ๋น๊ตํ์ฌ vNext์ ํธํ๋๊ธฐ ์ํด ๋ฒ ํ ๋๋ ์ํ ๋ฆด๋ฆฌ์ค๋ฅผ ๋์์ผ๋ก ๊ฐ๋ฐ์ ์์ํ ์ ์๋์ง ์ดํดํ๊ธฐ ์ํด GitHub ๋๋ ์ผ๋ถ ๋ชจํธํ ํฌ๋ผ์ ๋ค์ง๋ ๊ฒ์ ์ฐ๋ฆฌ์๊ฒ ๋ฌ๋ ค ์์ง ์์ต๋๋ค. ํน์ ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ์ด์ ๋ฒ์ ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๋ ๊ฒ์ ํ ๋จ๊ณ์์ ์๋ฏธ๊ฐ ์์ง๋ง ์ต์ข ์ ์ด์ง ์์ ๋ฆด๋ฆฌ์ค๋ฅผ ๋์์ผ๋ก ๊ฐ๋ฐํ๋ ๊ฒ์ ์ฐ๋ฆฌ์ ์ํ์ด๋ฉฐ ๋ช ๋ฌ ํ์ ๋ค์ ์ด ๊ด๊ธฐ๋ฅผ ์์ํ๊ธฐ ์ํด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ "๋ฏผ์ฒฉํ" ๊ฒ์ด ์๋๋ผ ๋ง์ ์์ ์๊ฐ์ ๊ฐ์ง ์์ด๋ค์ ๋๋ค.
๋๋ ํญ์ ๋ด๊ฐ ๊ฒ์ด์ธ ๋ฅผ ๊ทธ๋ฆฌ์ํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์์ง๋ง ๋ฐ๋จธ๋ ๊ทธ๋ฆฌ์ํ ์ ์์ ๊ฑฐ๋ผ๊ณ ๋ ์๊ฐํ์ง ๋ชปํ์ต๋๋ค. ์ํ์ด, ์๋ค์.
์ ์๊ฐ์๋ .NET Core๋ก ์์ ํ ์ ํํ๊ธฐ์๋ ๋๋ฌด ์ด๋ฆ ๋๋ค. ํ์ฌ ๋ง์ ํ์ฌ ํ๋ ์์ํฌ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ฌ .NET Core๋ฅผ ์ง์ํ์ง ์์ต๋๋ค. NServiceBus๋ฅผ ์๋ก ๋ค์ด ๋ณด๊ฒ ์ต๋๋ค. ์ต์ํ ASP .NET Core 3๊น์ง .NET Framework๋ฅผ ์ง์ํ์ญ์์ค...
๊ณต์(๊ด๋ จ) ๋ฐํ
https://blogs.msdn.microsoft.com/webdev/2017/05/10/aspnet-2-preview-1/
1ํธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
์ด ASP.NET Core 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ์ ์ .NET Core 2.0 SDK๋ง ์ง์ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด .NET Core, Mono ๋ฐ .NET Framework์์ ์คํ๋ ์ ์๋๋ก .NET Standard 2.0์ ASP.NET Core 2.0์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
ํ์ด ๋น๋ ์ ์ ๋ง์ง๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋์ ASP.NET Core 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ .NET Standard 2.0 ์ธ๋ถ์ ์๋ API๋ฅผ ํ์ฉํ์ฌ .NET Framework์์ ์คํ๋์ง ์๋๋ค๋ ์ฌ์ค์ด ๋ฐํ์ก์ต๋๋ค. ์ด ๋๋ฌธ์ ์ฐ๋ฆฌ๋ .NET Framework์์ ASP.NET Core 1.x ์์ฉ ํ๋ก๊ทธ๋จ์ ASP.NET Core 2 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฐ๋ฐ์๊ฐ ์ค๋จ๋์ง ์๋๋ก ๋ฏธ๋ฆฌ ๋ณด๊ธฐ 1์ด .NET Core๋ง ์ง์ํ๋๋ก ์ ํํ์ต๋๋ค.
๋ฉ์ง ๋ฐฑํ๋ฌ๋ง.
.NET Framework๋ฅผ ์ญ์ ํ๊ธฐ ์ํ ์ด ์ค๋ ๋์ ๋ชจ๋ ํผ๋๋ฐฑ๊ณผ "์ ๋นํ"๋ ๋จ์ง ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ํ ๊ฒ์ด์์ต๋๊น?
์ฌ๊ธฐ์๋ ๋ง์์ ๋ณํ๊ฐ ๋ฐํ๋์ง ์์๋ค๋ ์ ์ ์ฃผ๋ชฉ...
@benaadams
์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด .NET Core, Mono ๋ฐ .NET Framework์์ ์คํ๋ ์ ์๋๋ก .NET Standard 2.0์ ASP.NET Core 2.0์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
"์ฐ๋ฆฌ๋ ํญ์ Eastasia์ ์ ์์ ํด์๋ค"
์์์ด ๋์ง๋ง ์์ ๊ณต์ ASP.NET Core ํ์์ ์ผ๋ถ ๋๊ธ์ _๋งค์ฐ_ ๋ค๋ฅธ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ์ต๋๋ค.
.NET ํ๋ ์์ํฌ์ ๊ด๋ จํ์ฌ ASP.NET Core์ ์ค๊ธฐ์ ๋ฏธ๋์ ๋ํ ๊ณต์ ์ฑ๋ช ์ ๋ถํ๋๋ฆฝ๋๋ค.
MS๋ netstandard์ ํธํ๋๋ ASP.NET Core๋ฅผ ์ ์งํ๊ธฐ ์ํด ์ต์ ์ ๋คํ๊ณ ์์ต๋๊น?
ASP.NET Core 2.0 ๋ฆด๋ฆฌ์ค๋ฟ๋ง ์๋๋ผ(4.7์ผ ํ์๋ ์์).
์ฌ๊ธฐ์์ ๋จธ๋ฆฌ์ํ ์ํฉ์ ๋ํด ์ด์ผ๊ธฐํ์ญ์์ค. ๋ฌด์จ ์ผ ์ด์ผ ? :์๊ฐ:
๋ฉ์ง ๋ฐฑํ๋ฌ๋ง.
.NET Framework๋ฅผ ์ญ์ ํ๊ธฐ ์ํ ์ด ์ค๋ ๋์ ๋ชจ๋ ํผ๋๋ฐฑ๊ณผ "์ ๋นํ"๋ ๋จ์ง ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ฅผ ์ํ ๊ฒ์ด์์ต๋๊น?
์ด๋ด, ์ด๊ฒ์ ๋ํด ๊ฑฐ์๊ธฐํ์ง ๋ง์ญ์์ค. ๊ทธ๋ค์ ASP.NET Core๊ฐ ๋ฌด์์ด์ด์ผ ํ๋์ง์ ๋ํ ๋น์ ์ ๊ฐ์ง๊ณ ์์๊ณ ๋ง์ ํผ๋๋ฐฑ์ ๋ฐ์์ผ๋ฉฐ ํผ๋๋ฐฑ์ ๊ฒฝ์ฒญํ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค ASP.NET ํ ๐
@davidfowl
.NET Framework์์ ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด์ ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝํ ๊ฒ์ด ์ธ์ ์ ๋๊น?
.Net Framework 4.6์์๋ ๋ ๋ค. ์ด๊ฒ์ ์์ ํ ์๋ก์ด .Net Framework 4.7 ๋ค์ ์๊ณ 2๋ ์ด ์ฑ ๋์ง ์์ ๋ง์ด๋ ๋ฒ์ ์ ๋๋ค.
๋ฌธ์์ด๊ณผ ๋ฐฐ์ด์ด .Net Framework์์ ๋ณ๊ฒฝํ๊ธฐ ์ด๋ ค์ด ๊ฒ์ฒ๋ผ ๋ค๋ฆฌ๋์ง ํ์ ํ ์ ์์ต๋๋ค.
@JamesNK
๋ง์ ํผ๋๋ฐฑ์ ๋ฐ์๊ณ , ํผ๋๋ฐฑ์ ๊ฒฝ์ฒญํ์ต๋๋ค.
๊ทธ ๊ฒ์ด์๋ค? ํผ๋๋ฐฑ ์ค ์ ์ด๋ ์ผ๋ถ๋ ๋ถ์ถฉ๋ถํ ์์ฌ์ํต์ ๋ํด ๋ถํํ๊ณ ์์์ต๋๋ค. ์ด์ ์ฐ๋ฆฌ๋ MS์ ์ฌ๋๋ค์ด ์ด ์ค๋ ๋์์ ํ ๊ฐ์ง๋ฅผ ๋งํ๊ณ ์์ต๋๋ค. ์ฝ๊ฐ ๋ ์ต๊ทผ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ค๋ฅธ ๊ฒ์ ๋งํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ด๋ ๋ฏธ๋์ ๋ํ ์ ๋ณด๊ฐ ์์ต๋๋ค.
๋๋ ์ ์ด๋ MS์ ๋๊ตฐ๊ฐ๊ฐ ์ด ์ค๋ ๋์ ๋ํ๋์ ASP.NET 2.0์ ๋ํ ๋ง์์ ๋ฐ๊ฟจ๊ณ .Net Framework๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ฐจ๊ธฐ ๋ฒ์ ์ ์ํ ํ ์ด๋ธ์ ์์ง ๋จ์ ์๋ค๊ณ ๋งํ๊ธธ ๊ธฐ๋ํ์ง๋ง ๊ฐ๋ฅํ ๋นจ๋ฆฌ ์๋ ค์ค ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๋ ๋ง์ด (๋๋ ์ค์ ์ํฉ์ด ๋ฌด์์ด๋ ) ์๊ณ ์์ต๋๋ค.
๋๋ ์ ์ด๋ MS์ ๋๊ตฐ๊ฐ๊ฐ ์ด ์ค๋ ๋์ ๋ํ๋์ ASP.NET 2.0์ ๋ํ ๋ง์์ ๋ฐ๊ฟจ๊ณ .Net Framework๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์ฐจ๊ธฐ ๋ฒ์ ์ ์ํ ํ ์ด๋ธ์ ์์ง ๋จ์ ์๋ค๊ณ ๋งํ๊ธธ ๊ธฐ๋ํ์ง๋ง ๊ฐ๋ฅํ ๋นจ๋ฆฌ ์๋ ค์ค ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๋ ๋ง์ด (๋๋ ์ค์ ์ํฉ์ด ๋ฌด์์ด๋ ) ์๊ณ ์์ต๋๋ค.
๊ทธ๋ค์ ๋ฐฉ์ด์์(๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ ํ ์ ์ฒ๋ฆฌ๋์ง ์์๋ค๊ณ ์๊ฐํฉ๋๋ค), ์ ์ฒด ํ์ ๊ฑฐ์ ๋น๋์ ์์ต๋๋ค. ๋๋ ์ฐ๋ฆฌ๊ฐ ๊ณง ์ฌ๊ธฐ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋ฃ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ๋ฉฐ์น ๋ง์ ์ด ๊ฒฐ์ ์ผ๋ก ์ธํด ์๋ฌด๋ ์ถ์ด ๋ฐ๋์ง ์์ ๊ฒ์ ๋๋ค.
์ด๋ด, ์ด๊ฒ์ ๋ํด ๊ฑฐ์๊ธฐํ์ง ๋ง์ญ์์ค.
์ ๋ ์ค๋๊ณผ ์ด์ ํ๊ณผ ์ ์ฌ ์๊ธฐ ๋ชจ๋์์ ์ด๊ฒ์ด ํฅํ 12๊ฐ์ ๋์ ์ฐ๋ฆฌ์๊ฒ ๋ฏธ์น ์ํฅ๊ณผ ๊ธฐ์ ์ ๋ต์ ๋ณํ์ โโ๋ํด ๋ ผ์ํ๋ ๋ฐ ๋ช ์๊ฐ์ ๋ณด๋์ง๋ง "์ฃ์กํฉ๋๋ค!"๋ผ๋ ๋ง๋ง ๋ค์์ต๋๋ค.
๋๋ ๋ณํ๋ฅผ ํ์ํ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๊ท๋ฅผ ๊ธฐ์ธ์ธ ๊ฒ์ ๊ฐ์ฌํฉ๋๋ค. ๋ด๊ฐ ๊ฑฐ์๊ธฐ๊ฐ ๋๋ ค๊ณ ํ๋ ๊ฒ์ ์๋์ง๋ง, ์ด๊ฒ์ ๋ํ ์ปค๋ฎค๋์ผ์ด์ ์ _ํ๊ฐ ๋ฌ_์ต๋๋ค.
์ฐ๋ฆฌ๋ .NET Core์์ ํด๊ฒฐํ๊ณ ์ ํ๋ ์ฃผ์ ์ฌํญ ์ค ํ๋๋ก ๋ฌธ์์ด์ ์๋ณํ์ต๋๋ค. ์๋ง์ ์์ด๋์ด๊ฐ ์์ง๋ง ๊ทธ ์ค ํ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด์ utf8๋ก ์ค์ ํ๋ ๊ฒ์ ๋๋ค(์๋ง์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์์ง๋ง ์ฌ๊ธฐ์์ ๋ฐ๋ผ์ค์ธ์).
์ฐ๋ฆฌ๊ฐ ์์ ํ๊ณ ์ถ์ ๋ ๋ค๋ฅธ ๊ฒ์ ๋ฐฐ์ด/๋ฌธ์์ด์ ์ ๋ ดํ ์กฐ๊ฐ, ์ธ์ ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ ๋๋ค. ์คํฌ์ ์ถ๊ฐํ์ต๋๋ค๋ฒํผ๋ฅผ ๋ณด๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋ํ๋ด๊ธฐ ์ํด. String ๋ฐ Array๊ฐ 0 ํ ๋น์ด ํ์ํ ์ฌ๋ผ์ด์ค๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ์๋ก์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ค๋ ์๋ฏธ์ผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋งค๋ฒ ๋ฐฐ์ด์ ํ ๋นํ์ง ์๋ ๋ถํ ์ ํ์ฉํ๋ String์ ๋ํ ์๋ก์ด ๋ฉ์๋๋ก ์ด์ด์ง๋๋ค.
์ด๋ก ์ธํด Span์ ์ฌ์ฉํ๋ Int, UInt ๋ฑ(TryParse)์ ๋ํ ์ค๋ฒ๋ก๋๊ฐ ๋ฐ์ํฉ๋๋ค.๋ฐ ์คํฌ .
์ด๊ฒ์ Span์ ์ฌ์ฉํ๋ ์๋ก์ด ์ธ์ฝ๋ฉ ๋ฃจํด์ผ๋ก ์ด์ด์ง๋๋ค..
์์ถฉ๊ธฐ๋ฐ ์คํฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ท ์ผํ ๋ฐฉ์์ผ๋ก ํํํ ์ ์๋๋ก ํ๊ณ Span์ ์ฌ์ฉํ๋ ๋ฏธ๋ฆฌ ๊ณ ์ ๋ ๋ฒํผ๋ฅผ ์ ๋ฌํ ์ ์๋๋ก ๋คํธ์ํน ์คํ์ ์ ๊ทธ๋ ์ด๋ํ๋ ค๊ณ ํฉ๋๋ค. ๋๋ ๋ฒํผ .
Kestrel์ 2.x ์๊ฐ ํ๋ ์(ํ์ฌ 2.1์ ๋ชฉํ๋ก ํจ)์ HTTP2๋ฅผ ๊ตฌํํ๋ฉฐ ALPN์ ์ํํ๋ ค๋ฉด SSL ์คํธ๋ฆผ์ ๋ํ ์๋ก์ด API๊ฐ ํ์ํฉ๋๋ค(https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation).
.NET Core์ Http ํด๋ผ์ด์ธํธ๋ ์ด์ค ์คํธ๋ฆฌ๋ฐ์ ์ง์ํ๋ฏ๋ก ์น ์์ผ์ด ์๋ ๋จ์ผ http ์์ฒญ์ ํตํด ์๊ทธ๋๋ฌ์์ http๋ฅผ ํตํ ์คํธ๋ฆฌ๋ฐ ๋์ ์ ๊ตฌํํ ์ ์์ต๋๋ค.
HttpClient ๋ฐ System.Net.Http์์ ํค๋ ํ์ ๊ตฌํ์ ๋ถ๊ธฐํ๊ณ ๊ฐ์ ํ ์ ์๋๋ก ์ด๋ฆ์ ๋ณ๊ฒฝํ์ต๋๋ค(https://github.com/aspnet/HttpAbstractions/tree/d1d9bceff56cb44a194ae36923ce687e5e353006/src/Microsoft.Net.Http.Headers). .NET Framework์ .NET Core๋ฅผ ๋ชจ๋ ์ง์ํ๋๋ก ํฉ๋๋ค. .NET Core์๋ ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ ๋ณต์ฌ๋ณธ์ด ์์ต๋๋ค. ๊ฐ์ ํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค(์ฌ์ฉํ ์ ์์).
์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์๋ก์ด ์๋๋ฆฌ์ค๋ฅผ ๋ฐํ ์๋ก์ด API๊ฐ ํ์ํ ์๋ก์ด ์ค๋ ๋ฉ ๊ธฐ๋ณธ ์์๊ฐ ๋ง์ด ์์ต๋๋ค(https://github.com/dotnet/corefx/issues?q=is%3Aopen+is%3Aissue+ ์ ์%3Adavidfowl+label%3Aarea-System.Threading), ์ด๊ฒ๋ค์ ์ ๊ฐ ๊ฐ์ธ์ ์ผ๋ก ์ ์ถํ ๊ฒ ์ค ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค.
RIP ํ๋ ํ๋ซํผ. asp.net ํต์ฌ ํ์ด ์์์ ์๋ฃจ์ ์ ๋ฐ์ ๊ฒฝ์ฐ.
์ ๋ ์ค๋๊ณผ ์ด์ ํ๊ณผ ์ ์ฌ ์๊ธฐ ๋ชจ๋์์ ์ด๊ฒ์ด ํฅํ 12๊ฐ์ ๋์ ์ฐ๋ฆฌ์๊ฒ ๋ฏธ์น ์ํฅ๊ณผ ๊ธฐ์ ์ ๋ต์ ๋ณํ์ โโ๋ํด ๋ ผ์ํ๋ ๋ฐ ๋ช ์๊ฐ์ ๋ณด๋์ง๋ง "์ฃ์กํฉ๋๋ค!"๋ผ๋ ๋ง๋ง ๋ค์์ต๋๋ค.
๋๋ ๋ณํ๋ฅผ ํ์ํ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ๊ท๋ฅผ ๊ธฐ์ธ์ธ ๊ฒ์ ๊ฐ์ฌํฉ๋๋ค. ๋ด๊ฐ ๊ฑฐ์๊ธฐ๊ฐ ๋๋ ค๋ ๊ฒ์ ์๋์ง๋ง, ์ด๊ฒ์ ๋ํ ์์ฌ ์ํต์ ํ๊ฐ ๋ฌ์ต๋๋ค.
๊ทธ๋ค์ด ์ปค๋ฎค๋ํฐ์ ๋ง์ ๋ฃ๊ณ (๊ฒ๋ณด๊ธฐ์) ์ง๋ก๋ฅผ ๋ฐ๊พผ ๊ฒ์ ๋ํด ํ๊ฐ ๋์ จ์ต๋๊น? ์๋ฃ๋์ง ์์ ์ผ์ ์๊ฐ์ ๋ณด๋ด๋ ๊ฒ์ ์ปค๋ฎค๋ํฐ๋ Microsoft์ ์๋ชป์ด ์๋๋๋ค.
์ข์ ์์!
์ด๊ฒ์ด ๊ธฐ๋ณธ์ ์ผ๋ก utf8 ๋ฌธ์์ด์ ๋์น๊ณ @davidfowl ์ด ์ธ๊ธํ ๋ค๋ฅธ ์ฅ์ (.NET Core์์ ์คํ ์ค์ธ ๊ฒฝ์ฐ)์ ๋์น๊ณ ์๋ค๋ ์๋ฏธ๊ฐ ์๋๊ธธ ๋ฐ๋๋๋ค.
"ASP.NET Core 2.0์ ๋ํ .NET ๋ฐ์คํฌํฑ ์ง์ ์์" ๊ณํ์ด ๋ง์นจ๋ด ์ทจ์๋์์ผ๋ฏ๋ก ์ด์ ์ด ์ค๋ ๋๋ฅผ ๋ซ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์๊ฐ์ ๋ด์ด ์ด ์ค๋ ๋์ ์ฐธ์ฌํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์์ฌํ ์ฌ์ง ์์ด ์ด๋ Microsoft ์ฑ ์์๋ค์ด ์ปค๋ฎค๋ํฐ์ ์์ํ๊ฑฐ๋ ์ผ๋ฐฉ์ ์ธ ๊ฒฐ์ ์ด ์ ์ฒด ์ํ๊ณ์ ๋ฏธ์น๋ ์ค์ ์ํฅ์ ์ธก์ ํ์ง ์๊ณ ๋ ๋ง์ง๋ง ์๊ฐ์ ์ด๋ฌํ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์กฐ์ฉํ ์ฑํํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.
๊ฐ์์ ์๊ฒฌ์ ๋ค๋ฅด์ง๋ง ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ด ๋ณํ์ ๋ํด ์ง์งํ ํ ๋ก ์ ํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๊ฒ์ ๋ถ๋ช ํ ์์ฒญ๋ - ๊ทธ๋ฆฌ๊ณ ์ ๋ก ์๋ - ์ฑ๊ณต์ ๋๋ค(150๋ช ์ ์ฐธ๊ฐ์์ 600๊ฐ ์ด์์ ๋ฉ์์ง, woot!)
์ด๋ ๊ฒ ํ๋ฅญํ ์ปค๋ฎค๋ํฐ๊ฐ ์คํ๋๋ ๊ฒ์ ๋ณด๋ ๊ฒ์ ๋๋์ต๋๋ค. ์ ๋ ๊ทธ ์ผ๋ถ๊ฐ ๋ ๊ฒ์ ๋งค์ฐ ์๋์ค๋ฝ๊ฒ ์๊ฐํฉ๋๋ค.call_me_hand:
@davidfowl @DamianEdwards @shanselman ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ์ ์ถ์ ํจ์ฌ ๋ ์ฝ๊ฒ ๋ง๋ค์ด ์ฃผ๋ฉฐ, ์ฐ๋ฆฌ๋ ๋ ๋ง์ ๊ฒ์ฒ๋ผ ์ง๊ธ ๋ถํ์ค์ฑ ์์ด ๋ง์ด๊ทธ๋ ์ด์ ๊ณํ์ ์ถ์งํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ASP.NET ํ์ ์ด์์ ์ด์ง ์๋ค๋ ๊ฒ์ ์๊ณ ์์ง๋ง, ์ง์ฌ์ผ๋ก ์ด๊ฒ์ด ํ๋ซํผ์ ์ฑ์ฅ์ ์ํ ํ์์ ์์ ์ต์ ์ ์กฐ์น๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ค๋ ๋๋ ์์ฐ์ ์ด์ง ์์ ๋๊ธ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ๋๋ผ์ธ ์ ๋๋ก ์ ์ฒ๋ฆฌ๋์์ต๋๋ค. ์์ฃผ, ์์ฃผ ๋๋ฌผ๊ฒ ์๋ฐฑ ๊ฐ์ ๋๊ธ์ด ์๋ ๋ฌธ์ ์ ์ ์ ํ์ ์ ์ฉํ ๋ด์ฉ์ด ํฌํจ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค( @davidfowl , ๋น์ ์ ๊ต์ฅํฉ๋๋ค).
ํ๋ซํผ์ด ์ง์์ ์ค๋จํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ ์ ์์ ์ฌ์ฉ์๋ฅผ ๋ค์ ๋จ๊ฒจ๋๋ ํจ์ฌ ์ฌ์ด ์ต์ ์ด ๋๊ธฐ๋ฅผ ํฌ๋งํ ๋ 3.0๊ณผ ํจ๊ป ์ด ํ ๋ก ์ ํ๊ธฐ๋ฅผ ๊ณ ๋ํฉ๋๋ค. ๊ทธ๊ฒ์ ์ป์ ์ ์๋๋ก ์ต์ ์ ๋คํ๊ฒ ์ต๋๋ค.
์ด ๊ฒฐ๊ณผ๋ ๊ด์ฐฎ์ ๋ณด์ ๋๋ค. ๋ชจ๋ ๊ฒ์ ํต์ฌ์ผ๋ก ์ฎ๊ธธ ๊ณํ๊ณผ ํจ๊ป ์กฐ๋ง๊ฐ ๋ก๋๋งต์ ๋ง๋ค ์ ์์ ๊ฑฐ๋ผ ํ์ ํฉ๋๋ค. ์ผ์ ๊ธฐ๊ฐ ๋์ ๋ชจ๋ ์ฌ๋์ด ์ด์ ๋ํด ๋ฏธ๋ฆฌ ์๊ณ ์์ ๋ฟ์ ๋๋ค. :)
๋ํ ๋ด ์๊ฐ์ ๋จ๊ธฐ๊ณ ์ถ์์ต๋๋ค... ASP.NET ํ์ด ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ ๋ฃ๊ณ ์ ์ํ๊ฒ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์์๋ ๊ฒ์ ๋ณด๋ ์ ๋ง ๊ธฐ์ฉ๋๋ค. ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ์ .NET ํ๋ ์์ํฌ์ ๊ถ๊ทน์ ์ผ๋ก ๋ชจ๋์ ๋ฒ์ํ๋ .NET ๋ฏธ๋๋ฅผ ์ํ ์ต๊ณ ์ ์ ๋ต์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ถ๋ถ์ ์ฑํ์ด ๊ธฐ์กด .NET ๊ฐ๋ฐ์๋ก๋ถํฐ ๋์ฌ ๊ฒ์ผ๋ก ์์๋๋ .NET Core ์์ฒด์ ์ฑํ์ ๊ธฐ์กด ์ฝ๋ ๊ธฐ๋ฐ์ ASP.NET์ ์๋ก์ด ๊ฐ๋ฐ ๋ชจ๋ธ๋ก ๊ณ์ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ ๊ฒ์ ๋๋ค.
๋๋ ๋ํ ์ค์๊ฐ ์์๋ค๋ ์ ์ ๋ํด ์๋ชป์ด ์์ต๋๋ค. ํนํ ๊ณต๊ฐ์ ์ผ๋ก ๊ฐ๋ฐํ ๋ ์ค์ํ ๋ถ๋ถ์ ์ฐ๋ฆฌ๊ฐ ์ค์๋ก๋ถํฐ ๋ฐฐ์ธ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. OSS์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ค ํ๋๋ ํผ๋๋ฐฑ์ ์กฐ๊ธฐ์ ์ป์ ์ ์์ด ํ๋ก์ ํธ์ ๋ฏธ๋์ ์ฌ์ฉ์๋ฅผ ์ํ ์ต์์ ๊ณผ์ ์ ๋ํด ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ASP.NET ํ์ด ์ฌ๊ธฐ์์ ํ ์ ์์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ํ ๋ฉ์์ง์ด ํ๋ก์ ํธ์ ๋ฐฉํฅ, ๋น์ ๋ฐ ๋ก๋๋งต ๋ชจ๋์ ์ผ๋ง๋ ์ค์ํ์ง, ์ผ๋ฆฌ ์ด๋ตํฐ์ ๊ฐ์ฅ ์ถฉ์ฑ์ค๋ฌ์ด ์ดํด ๊ด๊ณ์์ ์ ๋ต์ ๊ฒฐ์ ์ ์ํ ๊ธฐ์ด๋ฅผ ํ์ฑํ๋ ๋ฐฉ๋ฒ, ๊ธฐ๋ณธ ์ ์์ ์ ์ํ ๋ ์ปค๋ฎค๋ํฐ๋ฅผ ์ฐธ์ฌ์ํค๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํ์ง๋ฅผ ๋ฐ๋ณตํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ๋ซํผ์ ๋ํ ๊ธฐ์กด ๋ฐ ๋ฏธ๋ ํฌ์์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ.
๋ง์ง๋ง์ผ๋ก ๋ด๊ฐ Github์์ ํ๋ฐํ ๊ฐ๋ฐํ 9๋ ์ค ์ด ์ค๋ ๋๋ ๋ด๊ฐ ์ฐธ์ฌํ ๊ฒ ์ค ๊ฐ์ฅ ํ๋์ ์ธ ์ค๋ ๋์ด๋ฉฐ ๋๋ถ๋ถ์ ๋๊ธ์ ์ฌ๋ ค ๊น๊ณ ์ ์คํ๊ฒ ๋จ์ ์ ์์ด ์ผ๋ง๋ ๋ง์ ๊ฐ๋ฐ์๊ฐ ์ฌ์ ํ .NET์ ๊ด์ฌ์ ๊ฐ๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๋ .NET์ ๋ฏธ๋์ ์ข์ ์ง์กฐ์ ๋๋ค. NET์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ASP .NET Core๋ฅผ ์ฑํํ๊ณ MS๋ฅผ ๋ฐ๋ผ .NET Standard ๋ฐ .NET Core๊ฐ ํ์ฑํํ ํฅ๋ฏธ์ง์งํ๊ณ ๋ค๋ฉด์ ์ธ ๋ฏธ๋๋ก ๋์๊ฐ๊ณ ์ ํฉ๋๋ค. ์์ผ๋ก์ ํฅ๋ฏธ์ง์งํ ์๊ฐ๋ค!
Microsoft๋ฅผ ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@davidfowl @DamianEdwards @shanselman ๊ฐ์ฌํฉ๋๋ค.
๋ง์ดํฌ๋ก์ํํธ ๊ฐ์ฌํฉ๋๋ค
ํ๋ฆฌ ์! ๋ด๊ฐ ๋์น ๋จ๊ฑฐ์ด ํผ๋์ ๋ฌด์์ ๋๊น? ๊ฒฐ๊ตญ ๊ฒฐ๊ณผ๊ฐ ์ด๋ป๋ ๊ฐ์ ๋ท๋ท ์ํ๊ณ๊ฐ ์ฝํ๋์ง ์๊ณ ๊ฐํ๋๊ธฐ๋ฅผ ๋ฐ๋ ๋ฟ์ ๋๋ค. ํ์ ์ ์๋ํ๊ณ ์ด๋ ์์ ์์ ๊ณผ๊ฑฐ๋ฅผ ์ฐจ๋จํด์ผ ํ๋ ๊ฒ์ ๊ด์ฐฎ์ง๋ง, ๋ค์ Python 2 ๋ 3์ด ๋๊ธฐ ์ํ ์ฐธ์กฐ๋ ๋ชจ๋ ๋๋ฌด ํ์ค์ ์ ๋๋ค. ๋ด ์์ ์ ํ๋ก์ ํธ์ ๊ฐ์ธ์ ์ผ๋ก ์ํฅ์ ๋ฐ์ง๋ ์์์ง๋ง ์ฌ๊ธฐ์์ ๋ชจ๋ ๊ฐ๋ฐ์ ์ง์์ ๋ณผ ์ ์์ด ๊ธฐ์ฉ๋๋ค. ์ ํ์ด ์ ํ์ ๋ฏธ์น๋ ์ํฅ์ ๋ํ ์์ธํ ์์ ํจ๊ป ์ ํ์ ํฐ ๊ด์ฌ์ ๊ฐ๊ณ ์๋ ์ด ๋ชจ๋ ์ฌ๋๋ค์ ์ด ์ปค๋ฎค๋ํฐ๊ฐ ์ผ๋ง๋ ๊ฐ๋ ฅํ์ง ํ์ธ์์ผ์ค๋๋ค. ์ด ์ปค๋ฎค๋ํฐ๋ฅผ ๋๋ณด๊ณ ์ ์งํด ์ฃผ์ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
๋ชจ๋ ์ํ์ด!
.NET์ OSS๋ฅผ ์ํ ํฌ์์!!
@davidfowl @DamianEdwards @shanselman ํผ๋๋ฐฑ์ ๋ค์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ํ ๊ฐ์ ๋ ํ๋ซํผ ์ด์์ฑ์ ์ํด .NET Standard๋ฅผ ๋์์ผ๋ก ์์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์กฐ์ง ๋ด์์ ํ ๋ก ์ ์์ํด์ฃผ์ ์ ๊ฐ์ธ์ ์ผ๋ก ๊ฐ์ฌํฉ๋๋ค. ์ ํฌ๋ง์ WinForms ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ASP.NET Core ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ์ ๊ณต์ ๋๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ .NET Standard 2.0์ผ๋ก ๋์์ผ๋ก ์ง์ ํ์ฌ ์ค์ ๋ก .NET Core์์ ASP.NET Core ์ ํ์ ์คํํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋ฏธ๋์.
๋ฒ์ 3.0์์ ๋ค์ ๋ง๋์?
๊ธ์ ์ ์ธ ๋ฉ๋ชจ : ์ด๊ฒ์ ๋ณ๊ฒฝํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒ์ ๊ธฐ์๊ฒ ์๊ฐํฉ๋๋ค. ๊ฐ๋ฐ์๋ก์์ ์ ์ถ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ค๊ณ .Net์์ ๋ฐฐ์ฐ๊ณ ๊ฐ๋ฐํ๋ ๋ฐ ์๊ฐ๊ณผ ์๋์ง๋ฅผ ํฌ์ํ๋ ๊ฒ์ ๋ํ ์ ๋นํ๋ฅผ ์ ๋นํํฉ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
๊ธ์, ๋๋ ์์ ํ netFx์ ๋ํ ์ง์์ ์ค๋จํ๋ ๊ฒ์ด ์ค์๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๋ฐ๋๋ก, ์ ์ผํ ์ค์๋ ASP.NET Core๊ฐ ์ฒ์๋ถํฐ ์ ์ฒด netFx๋ฅผ ์ง์ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฆ, ASP.Net Core๋ ์ ์ฒด netFx๋ฅผ ์ง์ํ ์ ์์ด์ผ ํฉ๋๋ค. .Net Core์ฉ์ผ๋ก ํน๋ณํ ์ ์๋ ์น ํ๋ ์์ํฌ์ฌ์ผ ํฉ๋๋ค.
ASP.Net Core๋ ํน์ ๋ฒ์ ์ .Net Standard๋ฅผ ๊ตฌํํ๋ .Net Core ์์ ์์ด์ผ ํ๋ฉฐ ์ ์ฒด netFx์ ๊ด๋ จ์ด ์์ด์ผ ํฉ๋๋ค.
ASP.Net Core ์ฑ์ .Net Core๊ฐ ์คํ๋ ์ ์๋ ํ ๋ชจ๋ ํ๋ซํผ/OS์์ ์คํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ํ๋ซํผ๋ณ ๊ธฐ๋ฅ์ ์ง์ํ๋ ๊ฒ์ด ์๋๋ผ ์คํํ๋ ๊ธฐ๋ฅ์ ๊ดํ ๊ฒ์ ๋๋ค. Windows ๊ด๋ จ ๊ธฐ๋ฅ์ด ์ ๋ง๋ก ํ์ํ ๊ฒฝ์ฐ Windows๋ฅผ ์ง์ํ๋ ๋ค์ค ๋์ ๋๊ฒ ํจํค์ง๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋์ ASP.Net์ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
๊ทธ๋์ ํ์ด ํ๋ ค๊ณ ํ๋ ๊ฒ์ด ์ค์๋ฅผ ๋ฐ๋ก์ก์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ถํํ๋ ๋ํฌ๋ค์ ์ฑ๊ณต์ ์ผ๋ก ๊ทธ๋ค์ ๋ง์๋ค.
BTW, ์๋ง๋ "ASP.Net Core"๋ฅผ ".Net Core์ฉ ASP"๋ก ๋ณ๊ฒฝํ๊ณ "ASP.Net"์ ".Net Framework์ฉ ASP"๋ก ๋ณ๊ฒฝํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ดํด๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ๋ถ์ด ํ์๋ก ํ๋ ๊ฒ์ ์ค์ ๋ก ์ผ์ข ์ "ASP.Net Standard" ๋๋ "ASP for .Net Standard"์ ๋๋ค.
@davidfowl @DamianEdwards @shanselman ๋ํ ๊ฒฐ์ ์ ๋ํด ๊ฐ์ฌ๋ฅผ ํํ๊ธฐ ์ํด ์ ๋ชฉ์๋ฆฌ์ ๋์ฐธํ์ต๋๋ค.
.NET Framework๋ ์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ค์ํ๋ฉฐ ์ฐ๋ฆฌ๊ฐ ์์กดํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ง ์๋ ํ ์ ๋ ๊ทธ ์ด์์ผ๋ก ๋์๊ฐ์ง ์์ ๊ฒ์ ๋๋ค.
์ปค๋ฎค๋ํฐ์ ๋ฑ๋กํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์ง์ ํ ์คํ ์์ค์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค
์ข์ ์์! :) ์ ๋ขฐํ ์ ์๊ณ ์ ๋ขฐํ ์ ์๋ ๋ฏธ๋์ ๋ํ ์ ๋ขฐ๊ฐ ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์๊ฒ ํต์ฌ์ด๋ผ๋ ์ฌ์ค์ Microsoft๊ฐ ์ด์ ์์์ผ๋ฉด ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋จธ์ง ์์ ๋ค์๋ ์ด๋ฌํ ์ค์๋ฅผ ํ์ง ์์ ๊ฒ์ ๋๋ค.
์ ๋ฒ์จ ์ถํํ๋์ง ์์งํ ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ด ๋ฌธ์ ์์ Fowler์ Edward์ ์ง์ ๊ณผ ๋ชจ์๋๋ฉฐ, ๊ทธ๋ค์ ์์ง ๊ทธ๋ค์ ์ง์ ์ ์ฒ ํํ๊ฑฐ๋ ์์ ํ์ง ์์์ต๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ค๋ฅธ ์ฌ๋์ธ Jeffrey๊ฐ ์์ฑํ์ต๋๋ค. ์ด๋ฒ ํธ์์๋ .NET ์ง์ ์ค๋จ์ด ์๋์ ์ธ ๊ฒฐ์ ์ด๋ผ๊ณ ์ธ๊ธํ์ต๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ๊ทธ๋ค์ ์ง์ ๋ถ์กฑ์ด "๋ฐ๊ฒฌ"๋์๋ค๊ณ ์ธ๊ธํฉ๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์๋ ์ปค๋ฎค๋ํฐ์ ๋ฐฑ์ฌ๋์ ์ดํ์ ๊ณํ์ ๋ณ๊ฒฝํ๋ค๋ ์ธ๊ธ์ด ์์์ต๋๋ค.
๊ทธ๋์ ์์ง๊น์ง๋ ๋ช ํ์ฑ์ด ๋ถ์กฑํฉ๋๋ค. ํ์ ๋ค๋ฅธ ๊ตฌ์ฑ์์ ์ํด ๋ชจ์๋๋ ์ง์ .
@DamianEdwards @davidfowl : ์ด ๋ฌธ์ ์ ๋ํด ๋ช ํํ ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น?
@PinpointTownes : ์๊ฐ๋งํผ ๋ช ํํ์ง ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด์ด์ผ ํฉ๋๋ค.
@MartinJohns์ ํจ๊ปํฉ๋๋ค. ์ด๊ฒ์ ASP.NET Core๊ฐ @davidfowl์ด ์ธ๊ธํ .NET Core์ ๋น ๋ฅด๊ฒ ์งํ๋๋ ๊ฐ๋ฐ๋ก๋ถํฐ ์ด์ต์ ์ป์ง ๋ชปํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
์ ๋ ํ์์ ์ธ ์ ์ฅ์ ๋๋ค. ์ฐจ๋์ ์๊ฐ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ฃผํํ๊ธฐ ์ํด ๋ค๋ก ์ ๋ ธ์ง๋ง, ์ด์ ์๊ฐ ์ํฉ์ ์ ๋๋ก ํ์ ํ์ง ๋ชปํ๋ค๋ ์ฆ๊ฑฐ๋ ๊ทธ ์ด๋ ๋๋ณด๋ค ๊ฐ๋ ฅํฉ๋๋ค.
์ฌ๊ธฐ์์ ์ผ์ด๋๊ณ ์๋ ์ผ, ๋ณด๋ ์๋ฃ/๋ธ๋ก๊ทธ์์ ์ผ์ด๋๊ณ ์๋ ์ผ, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ด๋ถ์ ์ผ๋ก ์ผ์ด๋๊ณ ์๋ค๊ณ ์ถ๋ก ํด์ผ ํ๋ ์ผ ์ฌ์ด์ ๋ถ์ผ์น๋ ๋์ฐํฉ๋๋ค. ์ฌ๊ธฐ ๊ณ ๊ฐ์ ๋ ์์ ์ฐ๋ฆฌ๋ ํฅํ X๋ ๋์ ์ฐ๋ฆฌ ์ฌ์ ์์ MS๋ฅผ ์ ๋ขฐํ๋ ๊ฒ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ์ด๊ฒ์ ์ ๋ขฐ๋ฅผ ์ป์ผ๋ ค๋ ์๋์ ๋ํด ์ถฉ๊ฒฉ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
์ญ์ฌ๋ฅผ ๋ณด์ญ์์ค:
Build๊ฐ ์ง๋์น๊ฒ ํ๋ คํ wankfest์ธ ๊ฒ์ ์ ๊ฐ์ ๋๋ค. ์ด์ ๋ Scotts์ ์ผ์์ ํ๋ ํ๋ช ํ ์ผ์ ํ์ํฌ์ธํธ๋ฅผ ๋ฒ๋ฆฌ๊ณ ์ค๊ฐ์ ํ๋ผ์คํฑ ์์์ 6๋ช ์ ์์ .NET ์ฌ๋๋ค์ ์ํ๋ ๊ฒ์ด์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ ์ ์ ์ฅ์ ํฉ๋ฆฌ์ ์ผ๋ก ์ค๋ช ํ๋ฉด์ ๋จ์๋ต๊ฒ ๋ฅ์ ์ธ๋๋ค.
๋์ ๊ทธ๋ค์ ๋ฐฉ์ ๋์๋ค๋๋ ์ฝ๋ผ๋ฆฌ๋ฅผ ์์ ํ ๋ฌด์ํ๊ณ ์ด์ ์ฒ์์๋ ์๋ฌด ์ผ๋ ์์๋ ์ฒ ํ๋ ค๊ณ ํฉ๋๋ค.
์๋ชป๋ ๊ฒฐ์ ๊ณผ ๋ฐ์ ์ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์์ฐ์ค๋ฌ์ด ๋ถ๋ถ์ด๋ฉฐ OSS๋ฅผ ์ฌ์ฉํ๋ฉด ๋ณผ ์ ์์ต๋๋ค. ๊ด์ฐฎ์ต๋๋ค. ๊ธฐ์ ์ํ๋ ๊ทธ๋ ์ง ์์ต๋๋ค.
.NET์ MS๊ฐ Azure๋ฅผ ํ๋งคํ๊ธฐ ์ํ ๋๊ตฌ์ด๋ฉฐ, ์ด๋ ๋จ์ง ๊ฐ๋ฐ ํ๋ ์์ํฌ๋ฅผ ์ ํํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ํฐ ์ฅ๊ธฐ์ ์ ๋ขฐ๊ฐ ํ์ํ ์ ์์ ๋๋ค. ์ด๋ฒ ์ฃผ ์ ๋ขฐ ๊ตฌ์ถ์ ์ด๋ป๊ฒ ์งํ๋๊ณ ์์ต๋๊น?
์ฌ๊ธฐ์์ @MartinJohns ๋ฅผ ๋ ๋ฒ์งธ๋ก ์ง์ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํ๋์ด ๋ฌด๋์ง ๊ฒ์ด๋ฏ๋ก netstandard2.0์ ๋์์ผ๋ก ์ง์ ํ ์ ์์์ง๋ง ์ด์ ๋ ํ ์ ์์ต๋๋ค. (๋ฌผ๋ก ๊ฐ๋ฅํฉ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ ์ด์ ๋ ์์ง๋ง @davidfowl ๋ฐ @DamianEdwards ์ ๋ฐ๋ฅด๋ฉด ํ์ํ์ต๋๋ค.) ๊ทธ๋ค์ ์ด์ ์ด๊ฒ์ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ, ์ง๊ธ ๊ฒฐ์ ๋ ๊ฒ์ ๋ฌด์์ธ๊ฐ? //build์ ๋ชจ๋ ๊ฒ์ ์๊ณ ์์ง๋ง ์๋ฌด๋ ์ด ์ค๋ ๋์ ์์ ์ฝ๊ฐ์ ์ค๋ช ์ ํ ์ ์์ ์ ๋๋ก ์ธ๋ ฅ์ด ๋ถ์กฑํ์ง ์์ต๋๋ค. ์๋๋ฉด ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ข์ํ๋ Microsoft ์ง์์๊ฒ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ๋ฐฑ์ฑ๋์ ํตํด ์์ฒญํด์ผ ํฉ๋๊น? ๋๋ ์ ๋ง๋ก ๊ทธ๋ ์ง ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ด์ 2๋ช ์ Scotts ์ผ์์ ํ๋ ํ๋ช ํ ํ๋์ ํ์ํฌ์ธํธ๋ฅผ ๋ฒ๋ฆฌ๊ณ 6๋ช ์ .NET ์ ๋ฐฐ๋ค์ ๋ฌด๋ ํ๊ฐ์ด๋ฐ์ ์๋ ํ๋ผ์คํฑ ์์์ ์ํ๊ณ ๊ทธ๋ค์ ์ ์ฅ์ ํฉ๋ฆฌ์ ์ผ๋ก ์ค๋ช ํ๋ฉด์ ๋จ์๋ค์ด ํ๋๋ฅผ ์ทจํ๋ ๊ฒ์ด์์ต๋๋ค.
@willdean Build ๊ธฐ์กฐ์ฐ์ค์ด๋ Scottยฒ์ ์ธ์ ์ ๋ณด๋ ๋๋ค์์ ์ฌ๋๋ค์ ์ ์ด์ ์ด๋ฐ ์ผ์ด ๋ฒ์ด์ง๊ณ ์๋ค๋ ๋จ์๊ฐ ์์์ต๋๋ค. ๊ทธ๋ค์ด ์ด ์ฌ๊ณ ๋ฅผ ๋น ์์ผ๋ก ๋์ด๋ค์ด๊ณ ์ถ์ง ์์๊ธฐ ๋๋ฌธ์ ์์ญ๋ง ๋ช ์ ๊ฐ๋ฐ์๊ฐ ๋จ์ง ์ค์์๊ณ ์ด์จ๋ ๊ฒฐ์ ์ ๋ค์ ๋ด๋ฆฌ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค๋ฉด ์ด ์ค๋ ๋๋งํผ ํผ๋์ค๋ฌ์ ํ๋ค๋ ๊ฒ์ ์ถฉ๋ถํ ์ดํดํ ๋งํฉ๋๋ค.
Build :smile ํ ํ์ ์ฝ๊ฐ์ ์ฌ์ ๋ฅผ ์ฃผ๊ณ ์ข์ ์ค๋ช /์ฌํ ํ๊ฐ๋ฅผ ๊ธฐ๋ํด ๋ณด๊ฒ ์ต๋๋ค.
Build ๊ธฐ์กฐ ์ฐ์ค์ด๋ Scottยฒ์ ์ธ์ ์ ๋ณธ ๋๋ค์์ ์ฌ๋๋ค์ ์ ์ด์ ์ด๋ฐ ์ผ์ด ๋ฒ์ด์ง๊ณ ์๋ค๋ ๋จ์๊ฐ ์์์ต๋๋ค.
๊ทธ๊ฒ์ ์ ๋นํ ์ง์ ์ ๋๋ค.
@FransBouma netstandard2.0 ์ ์ง์ํ ์ ์์ง๋ง ํด๋ฆฌํ, ํฌ๋ก์ค ์ปดํ์ผ ๋ฐ ์ถ๊ฐ ์ฝ๋ ์ธก๋ฉด์์ ๊ณ ํต์ค๋ฌ์ธ ๊ฒ์ ๋๋ค. ์ผ๋ถ ๊ธฐ๋ฅ์ http2์ ๊ฐ์ ํน์ ์ ๊ธฐ๋ฅ์ด ๋ฐฐ์น๋ ๋๊น์ง ๊ตฌํํ๋ ๊ฒ์ด ์ค์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ๋ถ๊ฐ๋ฅํ ๊ฒ์ ์๋๋๋ค. ๋ชจ๋๊ฐ ํ๊ณ ์ถ์ง ์์ ๋ง์ ์ถ๊ฐ ์์ ์ ๋๋ค.
์ ์ฒด ํต์ฌ ์ํ๊ณ๋ ํ์ ๊ณผ ๋ ๊ฑฐ์ ์ง์ ์ฌ์ด์ ๊ท ํ์ ์ด๋ฃจ๋ ํ์์ ๋๋ค. ์ฐ๋ฆฌ๋ ๊ฒฐ๊ตญ ์ฝ์ด์ ๋๋ถ๋ถ์ ๊ฒ์ ํฌํจํ ๋งํผ ์ถฉ๋ถํ ๋ ๊ฑฐ์ ์ง์์ด ํ์ํ์ง๋ง ์ฝ์ด๋ฅผ ๋งค๋ ฅ์ ์ธ ํ๋ซํผ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด์๋ ์ถฉ๋ถํ ํ์ ์ด ํ์ํฉ๋๋ค.
๋๋ ์ข์ ์ฌํ ์กฐ์ฌ๋ฅผ ํฌ๋งํ์ง๋ง ์ฌ๊ธฐ์์ ํด๊ฒฐํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ฒ์ํ๋ฉด ์ด๊ฒ์ด ๋ฌธ์ ์ธ์ง ๋ชฐ๋๋ 99%๋ฅผ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
@hallatore "๋ชจ๋๊ฐ ํ๊ณ ์ถ์ง ์์ ๋ง์ ์ถ๊ฐ ์์
์
๋๋ค."
๋๋ ๋น์ ์ ๋๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๋ด์ผ๋ถํฐ ์นํ๊ฒฝ ํ๋์ ์์ํ๊ณ ์ถ์ง๋ง ์๋ฌด๋ "๋"์๊ฒ ๊ทธ๋ฐ ์ ํ๊ถ์ ์ฃผ์ง ์์ต๋๋ค... ์๋ํ๋ฉด ํ์ค์ ...
ASP.Net์ 17๋ ๋์ ๊ตฌ์ถ๋ CMS, ํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ตฌ์ฑ ์์, ์ํํธ์จ์ด๊ฐ ํฌํจ๋ "์ํ๊ณ"๋ผ๋ ์ฌ์ค์ ์์ง ๋ง์ญ์์ค. ๋น์ ์ ๋น์ ์ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ์ ๊ณต์ ๋จ์ด๋จ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๋น์ ์ ๋ชจ๋ ๋ค์ ๋จ๊ฒจ๋๋ ๊ฒ์ ์๋ฏธํ๋๋ผ๋ ์ ๋ง๋ก ๋ฉ์ง ๋ฌธ์์ด์ ์ฌ์ฉํ๊ณ ์ถ๋ค๊ณ ๋งํ ์ ์์ต๋๋ค ... ๋น์ ์ "๊ทธ๋ฅ ํ ์ ์์ต๋๋ค"... ๊ทธ๊ฒ์ ๋น์ ์ด ํ ์์๋ ์ต์ ์ ๊ฒ์ ๋๋ค ์ง์ ์ปค๋ฎค๋ํฐ.
๋ฐ์ ์ ํ์ฉํ๊ณ ์ถ๋ค๋ฉด ๋ฐ๋์ ํ๋ซํผ๋ณ ์ฝ๋ ๊ฒฝ๋ก๋ฅผ ๊ตฌ์ถํ๊ณ ํ์ฉํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ด ํ๋ซํผ ์ฐจ์ด๋ฅผ ํ์ฉํ๋๋ก ์ ํ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ์ํฉ์์๋ ์ํ๊ณ์ ๋๋ถ๋ถ์ "ํ์"๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ํ๋ช ํ ์ ํ์ด ์๋๋๋ค.
@ํ ๋ผํ ๋
๊ทธ๋ค์ netstandard2.0์ ์ง์ํ ์ ์์ง๋ง ํด๋ฆฌํ, ํฌ๋ก์ค ์ปดํ์ผ ๋ฐ ์ถ๊ฐ ์ฝ๋ ์ธก๋ฉด์์ ๊ณ ํต์ค๋ฌ์ธ ๊ฒ์ ๋๋ค. ์ผ๋ถ ๊ธฐ๋ฅ์ http2์ ๊ฐ์ ํน์ ์ ๊ธฐ๋ฅ์ด ๋ฐฐ์น๋ ๋๊น์ง ๊ตฌํํ๋ ๊ฒ์ด ์ค์ง์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ ์๋ ์์ต๋๋ค.
์๋. ์ฝ๋, C#์ ์์ฑํ๊ณ ์คํํ๋ฉด ๋ฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด .net full์์ ๋ถ๋ช ํ ํ ์ ์๋ ์ผ์ ๋ชฉ๋ก์ ์ฝ์์ ๋ ์ง์งํ๊ฒ ์์ด์ผ ํ๊ณ ๊ทธ๊ฒ ๋๋ฌธ์ .net full๋ก ํด์์ ์ทจํด์ผ ํ์ต๋๋ค. ๊ทธ๋ฅ ์ ์น์ ๋๋ค. ์ฐ๋ฆฌ ์ธ๋ถ์ธ์ .NET ์ ์ฒด์์ ๋งค์ฐ ๋น ๋ฅธ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๊ณ ์ด๋ฌํ API๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๊ณ ์ด๋ฅผ ์ต๋ํ ํ์ฉํด์ผ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๋ ๊ฒ ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ํด๊ฒฐํด์ผ ํ๋ ๋์ผํ ๋ฌธ์ ๋ ํด๊ฒฐํฉ๋๋ค. ๊ทธ๋ค์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๊ทธ๋ค์ ๋จ์ง ๊ทธ๋ ๊ฒ ํ๊ณ ์ถ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์งํ ๋งํด์ ๋๋ ๋๋ฌด ๋์๊ณ ๋ ์ด์ ์ฌ๊ฐํ๊ฒ ๋ฐ์๋ค์ด๊ธฐ์๋ Microsoft ๋น๋๋ฅผ ๋๋ฌด ๋ง์ด ๋ค๋ฃจ์์ต๋๋ค. ๋ด๋ถ ์ ์น๋ฅผ Redmond์ ์ ์งํ๊ณ ์ฌ์ฉ์(์ฐ๋ฆฌ!)๊ฐ ์ด๋ก ์ธํด ๊ณ ํต์ ๋ฐ์ง ์๋๋ก ํ์ญ์์ค. ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ฌ๋ฌ ๋ฒ ๊ทธ๋ ๊ฒ ํ์ผ๋ฏ๋ก ์ฃผ์ํ์ญ์์ค.
๋๋ ์ข์ ์ฌํ ์กฐ์ฌ๋ฅผ ํฌ๋งํ์ง๋ง ์ฌ๊ธฐ์์ ํด๊ฒฐํ๊ธฐ์ ์ถฉ๋ถํฉ๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ฒ์ํ๋ฉด ์ด๊ฒ์ด ๋ฌธ์ ์ธ์ง ๋ชฐ๋๋ 99%๋ฅผ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค ๊ฒ์ ๋๋ค.
์, ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฌ๋ฐ๋ฅธ ์ฅ์๊ฐ ์๋๋๋ค. ์ด ์ค๋ ๋๋ ์ง๊ธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ํ ์๋ฒฝํ ์ฅ์์ ๋๋ค.
@FransBouma
Core์๋ asp.net core ๋ฐ kestrel์ ๋ํ ์ฐ๊ตฌ๋ก ์ธํด ๋ง๋ค์ด์ง ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ C#์ด ์๋๋ผ ์ฝ๋๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์ ์กด์ฌํ์ง ์๋ ๊ฒ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
@davidfowl ์ด ๋งํ๋ฏ์ด. ํ์ฌ ๋๋ถ๋ถ์ ํญ๋ชฉ์ ๋ํ ํด๋ฆฌํ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ํด๋ฆฌํ์กฐ์ฐจ ํ ์ ์๋ ๊ฒ๋ค์ ๋ณด๊ธฐ ์์ํ์ต๋๋ค. ์ด๋ ๊ทธ๋ค์ด ๋ฌผ๊ฑด์ ์ญ์ ํ๊ฑฐ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ฒด ํ๋ ์์ํฌ์ ์ฝ์ด๋ก ๊ฐ์ ธ์ค๋ ๋ฐ ํ์ํ ์์ ์ ๋ฐฉ๋ํ๊ณ ํจ์ฌ ๋ ๊ธด ์๊ฐ ํ๋ ์์ ํ์๋ก ํฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ๊ท ํ ์กฐ์ ์์ ์ผ๋ก ๋์๊ฐ๋๋ค. ์ ์ฒด ํ๋ ์์ํฌ ๋๋ฌธ์ ์ฝ์ด๋ฅผ ์ ํํด์ผ ํฉ๋๊น, ์๋๋ฉด ์ฝ์ด๊ฐ asp.net์ด ํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ ๋น ๋ฅธ ์๋๋ก ํ์ ํ ์ ์์ด์ผ ํฉ๋๊น?
์ ๊ทธ๋ค์ด ํต์ฌ๋ง์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๋์ง ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ํ ํ๋ ์์ํฌ๋ฅผ ์ง์ํ๋ ์์ ํ ๊ธฐ์ ์ ์ธ ๊ด์ ์์๋ ๊ทธ๋ค์ด ์ง๊ธ ์ค๋ช ํด์ผ ํ๋ ๋ง์ ๊ฒ๋ค์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ๋ ์ฝ์ด๋ง์ ์ํ ์ค๋น๊ฐ ๋์ด ์์ง ์์ผ๋ฉฐ(๋ถ๋ช ํ ์ ์ ์๋ฏ์ด), ๊ทธ์ ๋ํ ๋๊ฐ๋ ๋ ๋ณต์กํ asp.net ์ฝ์ด ๊ฐ๋ฐ์ ๋๋ค.
@hallatore ํธํ์ฑ์ ๊นจ๊ณ ์ถ๋ค๋ฉด ๋ฏธ๋ฆฌ ์๋ฆฌ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์๋ฆฝ๋๋ค. ์ด๋ค ์์ผ๋ก๋ ํฌ์ํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด๊ฒ์ ์ด๋ ์ ๋ ์ฌ์ฉ์๋ฅผ ๊ฐ๋ ๋๊ฐ์ด๋ฉฐ ์ฌ์ฉ์๋ฅผ ๊ฐ๋ ๊ฒ์ ์ฑ๊ฐ์ ๊ฒ์ด ์๋๋ผ ์ฑ ์์ ๋๋ค.
๋๋ ์ฐ๋ฆฌ๊ฐ ๋ ๋ง์ ํ๋ซํผ์ ์ง์ํ๋ ๊ฒ์ด ๋ ๋ง์ ์์ ์ธ์ง ์ฌ๋ถ์ ๋ํด ํ ๋ก ํ๊ณ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์. ๋น์ฉ์ด ๋์์๋ก ์ฝ๋ ๊ฒฝ๋ก๊ฐ ๋ ๋ณต์กํด์ง๋ ๋ฑ์ ๋๋ค. ์ด ๋น์ฉ์ ์์ ๊ณ ๋จ์ผ ํ๋ซํผ์ ์ ํํ ์ ์์ต๋๊น? ์ปค๋ฎค๋ํฐ์ ๋ชฉ์๋ฆฌ๋ฅผ ์๋ฏธํ๋ ์ฌ๊ธฐ์ ์๋ ๋๋ถ๋ถ์ ๋ต๋ณ์ ํ์ฌ๋ก์๋ ์ํ๊ณ๊ฐ ์ค๋น๋์ง ์์๋ค๊ณ ๋งํฉ๋๋ค. ์ด๊ฒ์ ์ผ์ข ์ ์ค๊ฐ ํด๊ฒฐ์ฑ ์ ์ฐพ๋ ์ฑ ์ ์๋ ์ผ์ ์๋ฏธํฉ๋๋ค.
@ํ ๋ผํ ๋
Core์๋ asp.net core ๋ฐ kestrel์ ๋ํ ์ฐ๊ตฌ๋ก ์ธํด ๋ง๋ค์ด์ง ๋ง์ ์๋ก์ด ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์์ต๋๋ค. ๊ทธ๊ฒ์ C#์ด ์๋๋ผ ์ฝ๋๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์ ์กด์ฌํ์ง ์๋ ๊ฒ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
์, ๊ทธ๋ผ ์ด์ํ์ธ์. ๋ ๋ค ์์ ํ๊ณ ์๋๋ฐ ์ ๋ฌธ์ ๊ฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฐธ๊ณ : ๊ทธ๋ค์ ๋จ์ํ netstandard2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ์ฌ ์ฝ๋๋ฅผ ํฌํ ํ ์ ์์ต๋๋ค. ๋๋ ๋ ๋์ ๋ฐฉ๋ฒ์ .net ์ฝ์ด์์ ๋ ๋น ๋ฅธ ๊ตฌํ์ ๋ชฉํ๋ก ํ๋ shim์ ๋ง๋ค๊ณ .net ์ ์ฒด์์ ๋ ๋๋ฆฐ ๊ตฌํ์ ๋ชฉํ๋ก ํฉ๋๋ค(์: nuget์ lib ์ฌ์ฉ).
ORM์ ๋ฐ์ดํฐ ๋ฆฌ๋๋ก๋ถํฐ ์ด๊ณ ์ ํ๋ก์ ์ ์ ์ป๊ธฐ ์ํด ๋ฐํ์์ IL์ ์์ฑํฉ๋๋ค. ์๋ฌด๋ ๋๋ฅผ ๋์ ํด ํด๊ฒฐํด์ฃผ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ 'ํ ์ ์๋ค!'๊ณ ํ๊ณต์ ์์ ๋์ง์ง ์๋๋ค. ๋ค๋ฅธ ์ฌ๋์ด ํญ์ ์ ํํ์ง ์์ ๋ ๋จ์ํ ํ๊ณ ๋ค์ด ์๋ํ๋๋ก ํด์ผ ํ๋ ์ ์ฌํ ๋ฌธ์ ๊ฐ ์์์ ๊ฒ์ ๋๋ค. ์ด์ ๊ทธ๋ค๋ ๊ทธ๋ ๊ฒ ํด์ผ ํฉ๋๋ค.
ํ์ฌ ๋๋ถ๋ถ์ ํญ๋ชฉ์ ๋ํ ํด๋ฆฌํ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ํด๋ฆฌํ์กฐ์ฐจ ํ ์ ์๋ ๊ฒ๋ค์ ๋ณด๊ธฐ ์์ํ์ต๋๋ค. ์ด๋ ๊ทธ๋ค์ด ๋ฌผ๊ฑด์ ์ญ์ ํ๊ฑฐ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋ณ๊ฒฝํด์ผ ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ์ฒด ํ๋ ์์ํฌ์ ์ฝ์ด๋ก ๊ฐ์ ธ์ค๋ ๋ฐ ํ์ํ ์์ ์ ๋ฐฉ๋ํ๊ณ ํจ์ฌ ๋ ๊ธด ์๊ฐ ํ๋ ์์ ํ์๋ก ํฉ๋๋ค.
์ฃ์กํ์ง๋ง 'ํด๋ฆฌํ'ํ ์ ์๋ ๊ฒ์ ๋ฌด์์ ๋๊น? ์, ๊ทธ๋ค์ .NET ์ ์ฒด๋ฅผ ์๋ง์ผ๋ก ๋ง๋ค๊ณ ์ฑ๋ฅ์ ๋์ฐํฉ๋๋ค. ๊ฒฝ์๊ณผ ๊ฐ์ ์ฑ๋ฅ์ ๋ด๋ ค๋ฉด ํ๋ ์ ํ์ ํด์ผ ํฉ๋๋ค. ์, ํด๊ฒฐํ์ธ์. ์ด๋ ํ ๊ตฌ์์ด ์๋๋ผ ํต์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ญ์์ค. Java์์๋ ํด๊ฒฐํ ์ ์๊ณ ์ฑ๋ฅ์ด ๋๋๊ณ ํต์ฌ API๋ฅผ ๊นจ๊ฑฐ๋ ๋ ๋ฒ์งธ ํ๋ซํผ์ ๋ง๋ค์ง ์์์ผ๋ก์จ ํด๊ฒฐํ์ต๋๋ค. ๊ทธ๊ฒ์ ๋จ์ง ์ํํธ์จ์ด์ ๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ๋์ผํ๊ฒ ์ ์งํ๊ณ ๋ฐฑ์๋๋ฅผ ํด๊ฒฐํ์ญ์์ค. ์, ๊ทธ๊ฒ์ ๋ง์ ์์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ์๋ฅผ ๋ค์ด ORM์ ๋จ์ํ๋ ๊ฒ์ด ํ๋ฃป๋ฐค ์ฌ์ด์ ์๋ฃ๋๋ค๊ณ ์๊ฐํ์ญ๋๊น? :) ์๋๋ฉด ์น ์๋น์ค๋ฅผ ์ ์ํํ์ฌ ๋๊ธฐ์ ์ ์ค์ํ ๋น์ฆ๋์ค ๋ก์ง์ ์คํํ ์ ์๋๋ก ํ์๊ฒ ์ต๋๊น? ์๋, ๋ ธ๋ ฅ์ด ํ์ํฉ๋๋ค. ๊ด์ฐฎ์ต๋๋ค.
์ฌ๊ธฐ ๋ฐฉ์ ์๋ ์ง์ง ์ฝ๋ผ๋ฆฌ๋ .NET์ผ๋ก ๊ฐ๋ ์ฐจ ์๊ณ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋๋ค. ๋๋ ๋ ๋์: ๊ด๋ฆฌ๊ฐ ๋ถ์กฑํฉ๋๋ค. ๋๋ ๊ทธ๋ค์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊นจ์ง์ง ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ์ญ์์ค. Win32๋ฅผ ๋ณด๋ฉด ํ๊ธฐ์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ ์ ์ด ์์ต๋๋ค. ๋ฌผ๊ฑด์ ๋จ์ํ ์๋ํฉ๋๋ค. ์, ์ํฉ์ด ์ฑ์ฅํ๊ณ ๋ชจ๋ ๊ฒ์ ์๋ผ๋ด๊ณ ์ถ์ดํ๋ ์ฌ๋๋ค์ ๊ทธ๋ฃน์ด ๋ ์ด ๊ฐ์๋ก ์ปค์ง ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ค์ํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ํ๋ ์ค์ํ์ง๋ง ์ง๊ธ์ ๊ทธ๋ค์ง ์ค์ํ์ง ์์ ๋ถ๋ถ์ด ์๋ ์ํํธ์จ์ด๋ฅผ ์ฒ๋ฆฌํ์ง๋ง ์ด๋ฅผ ๋จ๊ธธ ์๋ ์์ต๋๋ค/ ์ฌ๋๋ค์ ์ฝ๋๋ฅผ ๊นจ๋จ๋ฆด ์ ์์ผ๋ฏ๋ก ์๋ผ๋ด๊ฑฐ๋ ๋ณ๊ฒฝํ์ง ๋ง์ญ์์ค.
๊ทธ๋ฐ ๋ค์ ๊ท ํ ์กฐ์ ์์ ์ผ๋ก ๋์๊ฐ๋๋ค. ์ ์ฒด ํ๋ ์์ํฌ ๋๋ฌธ์ ์ฝ์ด๋ฅผ ์ ํํด์ผ ํฉ๋๊น, ์๋๋ฉด ์ฝ์ด๊ฐ asp.net์ด ํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ ๋น ๋ฅธ ์๋๋ก ํ์ ํ ์ ์์ด์ผ ํฉ๋๊น?
๋ช ๋ฒ์ด๋ ์ธ๊ธํ์ง๋ง ๊ฐ์ ์๋๋ก ์ ์ฒด ํ๋ ์์ํฌ์์ ํ์ ํ ์ ์๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ .net full์์ ์์ฒด ์ํํธ์จ์ด๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฌธ์์ด ์ง์์ ๋ณ๋ชฉ ํ์์ด ์๋ค๋ ๊ฒ์ ์์ง๋ง ๋ณต์ฌํ์ง ์๋ ๋ฌธ์์ด์ด ํ์ํ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ๋ง๋ค๊ณ ๊ณ์ ์งํํ์ญ์์ค. ์, ๋ค์ 10๋ ๋์ ์์ ๊ฑฐ๋ฅผ ํ ์ ์์ต๋๋ค. ์ผ๋ง๋ ์ถํ์ง, ๋๋ ํด๋น ํด๋์ค๋ฅผ ์๊ฐํ๊ณ ๋น ๋ฅธ ํญ๋ชฉ์ ๊ตฌ์ถํ๊ณ ๋ฐ์ ํ ์ ์์ต๋๋ค. ์ ๋ ์ต๊ทผ์ win32์์ C++/x64 ์ด์ ๋ธ๋ฌ์ ๋ํด ๊ณตํํ๊ฒ ๊ณต์ ํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ๊ฑฐ๊ธฐ์์ ๋ฌธ์์ด์ ์ฌ์ ์ํ ํ์๊ฐ ๋ช ๋ฒ์ด๊ณ ๋ถ๋ช ํ ์๋ฌด๋ ๋์ ๋ผ์ง ๋ชปํ๋ค๋ฉด .net์์ ์ฐ๋ฆฌ๋ ์์ ํ ๊ด์ฐฎ์ ๊ฒ์ ๋๋ค. ๋ด ๋ง์, ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ ๊ฐ์ง ๋ฌธ์์ด ์ ํ(char ๋ฐ string์ ๋ฐฐ์ด)์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ ๊ทธ๋ค์ด ํต์ฌ๋ง์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๋์ง ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ ํ ํ๋ ์์ํฌ๋ฅผ ์ง์ํ๋ ์์ ํ ๊ธฐ์ ์ ์ธ ๊ด์ ์์๋ ๊ทธ๋ค์ด ์ง๊ธ ์ค๋ช ํด์ผ ํ๋ ๋ง์ ๊ฒ๋ค์ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ํ๊ณ์ ์ปค๋ฎค๋ํฐ๋ ์ฝ์ด๋ง์ ์ํ ์ค๋น๊ฐ ๋์ด ์์ง ์์ผ๋ฉฐ(๋ถ๋ช ํ ์ ์ ์๋ฏ์ด), ๊ทธ์ ๋ํ ๋๊ฐ๋ ๋ ๋ณต์กํ asp.net ์ฝ์ด ๊ฐ๋ฐ์ ๋๋ค.
๋ฏฟ๊ฑฐ๋ ๋ง๊ฑฐ๋, ๋๋ ๊ทธ๋ค์ด .NET ์ ์ฒด์์ ๋ฒ์ด๋๊ณ ์ถ์ดํ๋ ์ด์ ๋ฅผ ์ถฉ๋ถํ ์ดํดํฉ๋๋ค. ๋ด ๋ง์, ๋ด ๋ฐํ์/API๊ฐ 14๋ ๋ ๊ณณ์์, ๋๋ ์ด์ ๊ทธ๊ฒ์ ์ผ๋ถ์์ ๋ฒ์ด๋๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ํ ๊ทธ๋ ๊ฒ ํ ์ ์๋ค๋ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค. ๋จ์ํ ์ฌ์ค ๋๋ฌธ์ ๋ด ๊ณ ๊ฐ์ด ๊ทธ๋ก ์ธํด ์์ฒ๋ฅผ ์ ์ ๊ฒ์ด๊ณ ๊ทธ๊ฒ์ ๊ทธ๋ค๊ณผ ๋์๊ฒ ์ข์ง ์์ต๋๋ค. ํ๋ซํผ/๋ฐํ์/API๋ฅผ ์์ฑํ ๋ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค ์ดํ์๋ ๋ฒ์ด๋ ์ ์๋ ๊ธธ์ ์๋ค๋ ์ ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. API๋ ๊ทธ ์๊ฐ๋ถํฐ ๊ณ ์ ๋์ด ์์ต๋๋ค. ์ฐ๋ ๊ธฐ๋ฅผ ๋ ์ด์ ์ฌ์ฉํ์ง ์์ ์ ์์ง๋ง ์ฌ์ฉ์๊ฐ ์์๋๋๋ก ์ ๊ฑฐํ ์๋ ์์ต๋๋ค. Angular 1.x->2.x, python 2.x->3.x, ์์ ๋ก ์ถฉ๋ถํฉ๋๋ค.
netstandard ํจํค์ง์์ BCL ํ๋ฆฌ๋ฏธํฐ๋ธ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ํจํค์งํ ์ ์์ต๋๋ค. System.String ๋ฐ System.Int32๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค๋ฅธ BCL์ด ํ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํ ๋ชจ๋ ์ ๋ฐ์ดํธ๋ ์ด์ ๋ฒ์ ์ ๋ํ ํ์ฌ ์์น ์ ๋ฐ์ดํธ์ด๊ธฐ ๋๋ฌธ์ ๋์ผํ ์๋๋ก ์ ์ฒด ํ๋ ์์ํฌ์์ ํ์ ํ ์ ์์ต๋๋ค(๋ฌธ์ํ๋์ง ์์ ๊ธฐ๋ฅ ํฌํจ). ํน์ง). .NET Core์์ ๋ ๋น ๋ฅด๊ฒ ํ์ ํ ์ ์๋ ์ด์ ๋ .NET Core์ ์๋ก ๋ค๋ฅธ ๋ชจ๋ ๋ฒ์ ์ ๋์์ผ๋ก ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ ๋์ผํ ์๋ฒ์์ ์คํ๋๊ณ ๊ฐ๊ฐ ๊ณ ์ ํ ๋ฐํ์ ๋ณต์ฌ๋ณธ์ ์ฌ์ฉํ๋๋ก ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๊ฒ ์์ ์ ๋๋ค. ๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ ์ ์๋๋ก ๊ตฌ์ถํ์ต๋๋ค. ์ด์ ๊ทธ๋ค์ ๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ ์ ์๋ ์ด์ ์ ์ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ทธ ์ค์๊ฐ ์ฒ์๋ถํฐ ASP.NET Core์์ ์ ์ฒด .NET์ ์ง์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฒ์๋ถํฐ ๊นจ๋ํ ํด์์ ์ทจํ์ด์ผ ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ทธ ์ค์๊ฐ ์ฒ์๋ถํฐ ASP.NET Core์์ ์ ์ฒด .NET์ ์ง์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์์งํ ๋งํด์, ๊ทธ๋ค์ ์ด๊ฒ์ ์๊ฒฉ์ผ๋ก ์คํํ ์ ์๊ฒ ํ๊ธฐ ์ํด 2.0 ํด๋ง๊ณผ compat shim์ด ํ์ํ์ต๋๋ค. ๊ทธ๋์ IMO, ์ด๊ฒ์ด ๊ทธ๋ค์ด ํ ์ ์๋ ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ์ ๋๋ค. ์ง์ฐ์ ์ฌ๋๋ค์ด ์ ํ์ ์ง์ฐ์ํค๊ณ ์ฌ์ฉ์๋ฅผ ์ผ๋ง๋ ์ซ์ดํ๋์ง Microsoft์ ๊ณ ํจ์ ์ง๋ฅด๋ ๊ฒ์ ์ง์ฐ์ํต๋๋ค. ์ด๋ค ์ข ๋ฅ์ ๊ฒฝ๊ณ ์ ํจ๊ป ์ด๋ฐ ์ผ์ ํ ๋๋ง๋ค ์ฌ๋๋ค์ ๊ทธ๊ฒ์ ๋ํด ๋งํ ๋ง์์ ์์ ๊ฒ์ ๋๋ค.
์์งํ ๋งํด์, ์ด ์ค๋ ๋์ ๋๋ถ๋ถ์ .NET ์ปค๋ฎค๋ํฐ์ ๋ํด ์ ๋ฅผ ๋งค์ฐ ์ฌํ๊ฒ ๋ง๋ญ๋๋ค.
netstandard ํจํค์ง์์ BCL ํ๋ฆฌ๋ฏธํฐ๋ธ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ํจํค์งํ ์ ์์ต๋๋ค. System.String ๋ฐ System.Int32๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค๋ฅธ BCL์ด ํ์ํฉ๋๋ค.
๋ค, ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ ๊ฐ ๋งํ๊ณ ์ ํ๋ ๋ฐ๊ฐ ์๋๋๋ค. ์ผ๋ถ ์ฌ๋๋ค์ด ๊ทธ๋ฐ ๊ด์ ์์ ๋ด ๊ฒ์๋ฌผ์ ์๋ชป ํด์ํ๋ ๊ฒ์ ๋ด ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ ๊ฐ ์๋ํ ๋ฐ๊ฐ ์๋๋๋ค. ํ ์ ์๋ค๋ฉด ์ฌ๊ธฐ์์ ์ฃผ์ ๊ฐ ๋๋ ์๋ฅผ ๋ค์ด๋ณด๊ณ ์ถ์ต๋๋ค. ๋ด ORM ๋ด์์๋ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ ์์ฑํ๊ธฐ ์ํด ๋ฌธ์์ด ์ฐ๊ฒฐ์ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ ORM์ ๋ํด ์์ฒญ๋ ์ค๋ฒํค๋์ ๋๋ค. ์ด๋ฅผ ์ํด ๊ธฐ๋ณธ ๋ฌธ์์ด ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ด๋ ์ ๋ ๋์์ด ๋์ง๋ง ๋ชจ๋ ๋ณต์ฌ์์ ๋ณด๊ธฐ ํํด์ง๋๋ค. ๊ทธ๋์ ๋ณต์ฌ๋ฅผ ํฌ๊ฒ ์ํํ๊ฑฐ๋ ์์ ํผํ๋ ํน์ ํด๋์ค๋ฅผ ๋์ ํ์ต๋๋ค. ์ด๊ฒ์ ๋ฌธ์์ด ์ ํ์ผ๋ก ์ถฉ๋ถํ ๋ ์ฌ์ฉํ ์ ์๊ณ ๋ฌธ์์ด ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ API์ ํจ๊ป ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋จ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ ์ด ๊ฐ์ฅ ํ์๋ก ํ๋ ๊ณณ, ์ฆ ์์ ์ ์ฝ๋๋ฅผ ํตํ ํซํจ์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ _ํจ์ฌ_ ์ด์์ ์ธ ๊ฒ์ด ์๋๋ฉฐ, ์ด๊ฒ์ ํผํ ์ ์๋ค๋ฉด ๋ถ๋ช ํ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ธ์์ ์ง์ ๋ถํ๊ณ ์ฐ๋ฆฌ๊ฐ ํ์ด์ฃผ๋ ๊ฒ๋ค์ ์์ํ ๊ฑฐ๊ธฐ์ ๋จธ๋ฌผ๋ฌ ์์ต๋๋ค. ์ด๋ฏธ ๋์จ ๊ฒ์ ๋ณ๊ฒฝํ ์ ์์ผ๋ฏ๋ก _๊ทธ ์ํฉ์ ๋์ฒํด์ผ ํฉ๋๋ค_. ์ด์ ๋ํ ์๋ฃจ์ ์ค ํ๋๋ ์ด๋ฌํ ์ ํ๊ณผ ํจ๊ป ์๋ํ๋ ์ ์ ํ๊ณผ ์ ์ฝ๋๋ฅผ ๋์ ํ๋ ๊ฒ์ ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์๋ ๋์ ๋ชจ๋ ์ฃผ์ OS API์์ ์ฌ์ฉ๋์์ผ๋ฉฐ ์๋ฑํ ๋ถ๋ถ์ด ๋ณด๊ธฐ์ ์ข์ง๋ ์์ง๋ง ๊ต์ฐฉ ์ํ์ ๋จธ๋ฌด๋ฅด๋ ๋์ ์์ผ๋ก ๋์๊ฐ ์ ์๋ ์ ์ฆ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ต์ฐฉ ์ํ์ ๋จธ๋ฌด๋ฅด๋ ๋์ ์์ผ๋ก ๋์๊ฐ๋ ๋ ๋ค๋ฅธ ์ ์ฆ๋ ๋ฐฉ๋ฒ์ ์ฆ์คํ๋ ์ฌ๋๋ค์ด ์ด์จ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ซ์ดํ๊ณ ๊นจ๋จ๋ฆด ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๋ ๊ฒ์ ๋๋ค(์ฐธ์กฐ, Angular 2+ ๋ฐ Python 3, ๋ ๋ค ์ ์๋ํจ).
@NickCraver 3.0์ด๋ 2.2์ด๋ 23.5์ด๋ ๊ฐ์ ๊ทธ๋ค์ด ๋ง์นจ๋ด ์ด ํด์์ ์ทจํ ๋๋ง๋ค ๋ ์ฝฉ ๊ฐค๋ฌ๋ฆฌ์์ ์ค๋๋ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ง์ ์ธ๋ถ์ง์๊ณผ ์ฐข๊น์ด ์์ ๊ฒ์ด๋ผ๊ณ 100๋ฌ๋ฌ๋ฅผ ๊ฑธ๊ฒ ์ต๋๋ค.
๊ต์ฐฉ ์ํ์ ๋จธ๋ฌด๋ฅด๋ ๋์ ์์ผ๋ก ๋์๊ฐ๋ ๋ ๋ค๋ฅธ ์ ์ฆ๋ ๋ฐฉ๋ฒ์ ์ฆ์คํ๋ ์ฌ๋๋ค์ด ์ด์จ๋ ๋ฌด์ธ๊ฐ๋ฅผ ์ซ์ดํ๊ณ ๊นจ๋จ๋ฆด ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ๋ฐ์๋ค์ด๋ ๊ฒ์ ๋๋ค(์ฐธ์กฐ, Angular 2+ ๋ฐ Python 3, ๋ ๋ค ์ ์๋ํจ).
ํ์ ํ๋. ๋ ๋ค ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค. 'OS API' ๋ฐฉ๋ฒ์ ๋ณด๊ธฐ ํํ๊ณ ์๋ ์ ๊ฑธ์ณ ๋ง๋ค๋ฅธ ๊ณจ๋ชฉ์ด ๋ง์ ๋๊ท๋ชจ API๋ก ์ด์ด์ง๋๋ค. 'Angular/python' ๋ฐฉ๋ฒ์ ์ฌ๋๋ค์ ์ ๊ทธ๋ ์ด๋ ๊ฒฝ๋ก๋ฅผ ๊นจ๊ณ ์ปค๋ฎค๋ํฐ๋ฅผ ๋ถํ ํฉ๋๋ค(๊ฐ๋์ ์ธ๊ณ๊ฐ ์ผ๋ง๋ ํํธํ๋์๋์ง ๋ชจ๋ฆ ๋๋ค). ASP.NET ์ฝ์ด์ ๋น์ถ์ด ๋ณผ ๋ ์ด๋ค ๊ฒฝ๋ก๊ฐ ๋ ๋์์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ธฐ์ ์ ์ธ ๊ด์ ์์๋ ๋ฌผ๋ก Python ๊ฒฝ๋ก๊ฐ ๋ ์ข์ต๋๋ค. ์์ ์ฑ ๊ด์ ์์ ๋ณผ ๋ iMHO๋ฅผ ์ฃฝ์ด๊ณ ์์ต๋๋ค.
Angular ์ธ๊ณ์ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ "์ค, ๊ทธ๋, ๊ทธ๊ฒ _ํจ์ฌ_ ๋ ๋์์ก์ด" ํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ์ต๋๋ค. Python์ ํ์ฌ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ ์ธ์ด ์ค ํ๋์ด๋ฉฐ Python 3์ด ์ด๋ฅผ ์ฃผ๋ํ๊ณ ์์ต๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ๋๋ ๊ทธ ์ค์๊ฐ ์ฒ์๋ถํฐ ASP.NET Core์์ ์ ์ฒด .NET์ ์ง์ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฒ์๋ถํฐ ๊นจ๋ํ ํด์์ ์ทจํ์ด์ผ ํฉ๋๋ค.
๋ถ๋ช ํ ๊ทธ ์์ด๋์ด์๋ ์ฝ๊ฐ์ ๋น์ฉ ์ ๊ฐ์ด ์์ง๋ง MS๊ฐ ์์ ํ ์ง๋ฐฐ์ ์ธ ์์น๋ฅผ ๊ตฌ์ถํ ๋ฐฉ์๊ณผ ์์ ํ ๋ฐ๋์ ๋๋ค.
์ด๋ ๋งค์ฐ ์ด๋ ค์ด ๊ธฐ์ ์ ๋ฌธ์ ์ด์ ๋ง๋ํ ๋น์ฉ์ด ๋๋ ํํ์ด์์ง๋ง, ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์์ ์ ์ํํด์ผ ํ๋ ์ ์ฒด ์ธ๋์ ์ฌ๋๋ค์๊ฒ MS๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก ๋๋ต์ ์ผ๋ก ๊ทธ๋ค์ ํธ์์ ํ์ ์์ผ์ฃผ์์ต๋๋ค.
๊ธฐ์ ์ ์ผ๋ก Win32/Win16 interop ์ด์ผ๊ธฐ๋ Win3 -> Win95 -> WinNT์์ DOS ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ๊ฒ๊ณผ ๊ด๋ จ๋ ๋ด์ฉ์ ๋๋์๋ณด๊ณ ์ด๋ฅธ๋ค์ด ์ผ๋ง ์ ์ ๊ฑด๋ฌผ์ ๋ ๋ฌ๋์ง ๊ถ๊ธํดํ์ง ์๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค.
@๋งํฌ๋ ๋ค
Angular ์ธ๊ณ์ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ด "์ค, ๊ทธ๋, ๊ทธ๊ฒ ํจ์ฌ ๋ซ์ง"ํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ์ต๋๋ค.
์์งํ Angular๋ฅผ .NET ๋ฐํ์๊ณผ ๋น๊ตํ๊ณ ์ถ์ต๋๊น? ๋๋ถ๋ถ์ ์ฌ๋๋ค์ ์ฆ์ .NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ค์ ์ผ๋ก ๊ทธ๋ค์ ๊ทธ๋ ๊ฒ ํ ์ ์์ต๋๋ค. ๋ง์ ์ข ์์ฑ์ ์ฌ์ฉํ ์ ์๊ฑฐ๋ ์ํ์ด ๋๋ฌด ๋๊ฑฐ๋ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ญ๋๋ค.
@๋งํฌ๋ ๋ค
Angular ์ธ๊ณ์ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ด "์ค, ๊ทธ๋, ๊ทธ๊ฒ ํจ์ฌ ๋ซ์ง"ํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ์ต๋๋ค. Python์ ํ์ฌ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ ์ธ์ด ์ค ํ๋์ด๋ฉฐ Python 3์ด ์ด๋ฅผ ์ฃผ๋ํ๊ณ ์์ต๋๋ค.
Python 3์ด ๋์จ ์ง 9๋ ์ด ์ง๋ฌ๊ณ ๋ง์นจ๋ด ์ ํ๋ก์ ํธ์ ์ฌ์ฉํ ๊ธฐ๋ณธ Python์ด ๋๊ณ ์๋ค๋ ์ฌ์ค์ ๋ฌธ์ํํ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ต์ OSX๋ฅผ ์คํํ๋ Mac์ Python 2.7.12์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. ๋ด NAS๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
Angular๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ช ์๊ฐ ๋ง์ Angular2๋ก ์ด์ํ ์ ์๋ ์กฐ๊ทธ๋งํ ๋ฐ๋ชจ ์ฑ์ ์์ฑํ๋ ๊ฒฝ์ฐ ์ข์ต๋๋ค. ํ์ค ์ธ๊ณ์์๋ 2-3๋ ๋ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๊ฒ์ด ์ฌ์ด ์ผ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ฌ์ ํ Angular 1์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ด์ํ๋ ๋ฐ ์๊ฐ๊ณผ ๋น์ฉ์ด ์์๋๋ฉฐ ๊ธฐ์ ์ ์ ๋น์ฑ์ ์ํฉ๋๋ค.
@๋ธ๋๋์์จ
์์งํ ๋งํด์, ์ด ์ค๋ ๋์ ๋๋ถ๋ถ์ .NET ์ปค๋ฎค๋ํฐ์ ๋ํด ์ ๋ฅผ ๋งค์ฐ ์ฌํ๊ฒ ๋ง๋ญ๋๋ค.
์ฒ์์ ์ฐ๋ฆฌ๋ฅผ ์ฌ๊ธฐ๊น์ง ์ค๊ฒ ํ ๊ทธ๋ค์ ์ค์์ ๋ํด ์ฌ๊ธฐ ์๋ Microsoft์ ๋ฐ์ ๋น๋ํ์ง ์์ผ์๊ฒ ์ต๋๊น? .NET Core๋ ์์ ํ ์ค๋จ๋์ด์ผ ํ์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ทธ๋ ์ง ์์์ต๋๋ค. ์ด๋ฆ์ ".NET Core"๋ก ์ง์ ํ๋ค๋ ์ฌ์ค์... .NET์ Core๊ฐ ์๋ค๋ ๊ฒ์ ์๊ณ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. .NET์ด๋ ๋ฌด์์ ๋๊น? ์ง๋ 15๋ ๋์ .NET Full Framework์์ต๋๋ค. ๋ง์ดํฌ๋ก์ํํธ๊ฐ ๊นจ๋ํ ํด์์ ์ํ๋ค๋ฉด, ๋ค์ ๋์๊ฐ์ ๋ชจ๋ ์ด์ API๋ฅผ ๋ค์ ๋์ ํ๊ณ ์ฌ๋๋ค์ด ์ด์ ์ธ๊ณ์ ์ ์ธ๊ณ ์ฌ์ด์์ ์ ํํ๊ฒ ํ๋ ๊ฒ๋ณด๋ค ์ด์ ์ถฉ์คํ ์๋ก์ด ์ด๋ฆ์ ์ ํํ์ด์ผ ํ์ต๋๋ค. ๊ทธ๋ค์ด ์ง๊ธ ๋ฐฑ ํ๋ฌ์ ๋ฐ๊ณ ์๋ ๊ฒฐ์ ์ ๋ค์ ์ธ ๊ฐ์ง ์ํฉ ์ค ํ๋์ ํ๋ก์ ํธ๋ฅผ ๋จ๊ฒผ์ ๊ฒ์ ๋๋ค.
Microsoft๊ฐ ์์ผ๋ก ๋์๊ฐ ์ ์ฒด ํ๋ ์์ํฌ์์ ASP.NET Core 2.0์ ์ง์ํ์ง ์๋๋ค๊ณ ๊ฐ์ ํ๋ฉด ์ํฉ 1 ๋ฐ 2์ ์ฌ๋๋ค์ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ASP.NET Core 2.0์ผ๋ก ์ด๋ํ๋ ๋ช ํํ๊ณ ํ์ค์ ์ธ ๊ฒฝ๋ก๊ฐ ์์์ต๋๋ค. ์ํฉ 1์ ์ฌ๋๋ค์ ์ดํดํ ์ ์์ง๋ง ์ํฉ 2์ ์ฌ๋๋ค์ ์ ๋นํ๊ฒ ํ๋ฅผ ๋ผ ๊ฒ์ ๋๋ค. ์ํฉ 2๋ ์๊ท๋ชจ ๊ทธ๋ฃน์ผ ์ ์์ง๋ง, ์ด๊ฒ์ ํ ์ฌ๋์ด ์ ์ง ๊ด๋ฆฌํ๋ ์์ ์คํ ์์ค ํ๋ก์ ํธ๊ฐ ์๋๋ผ Microsoft์ ๊ดํ ๊ฒ์ ๋๋ค. ๊ธฐ์ /์ฌ๋์ ์๊ณ๋ ์ด๋ฌํ ์์คํ ์ ๋ฌ๋ ค ์์ต๋๋ค. ๊ทธ๋ค์ด Microsoft์ ์์กดํ ์ ์๋ค๋ฉด ๋ค์ ๋ฒ์ ๊ทธ๋ค์ด ํ๋ซํผ์ ์ฌ์ฉํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์ฅ๋ดํ ์ ์์ต๋๋ค. ์ ๋ขฐ๊ฐ ์ค์ํฉ๋๋ค. Microsoft ์คํ ์ฌ์ฉ์ ๊ณ ๋ ค ์ค์ธ ์์ ์์ ์๋๋ฐฉ์ ์ด๊ฒ์ ๊ฒฝ๊ณ ์ ์ด์ผ๊ธฐ๋ก ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
๋๋ ์ด ๋ฌธ์ ์ ๋ํ ์ฑ ์์ .NET Core์ Microsoft์ ๋์ฐํ ๋ฉ์์ง/๋ง์ผํ /๋ค์ด๋ฐ์ ๋ก๋๋ค. ํญ์ ๋ชจ๋ ์ฌ๋์ ๊ธฐ์๊ฒ ํ ์๋ ์์ง๋ง ์ ํฌ์ ์ ๋ฐ์ ์ฒ์๋ถํฐ ์ฌ๋ฐ๋ฅธ ๊ธฐ๋์น๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
@MartinJohns ์ด์ ๋๊ธ์ ๋ต๊ธ์ ๋ฌ์์ต๋๋ค.
@markrendle ์ ์์ด? ์ค๋ช ํด์ฃผ์ธ์. "API๊ฐ ๊ฑฐ์ ๊ฐ๋ค"๋ฉด ๋ฌธ์์ด๊ณผ ๊ฐ์ ๊ทผ๋ณธ์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ฐ ์์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. API์ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋ ๊ฒฝ์ฐ .Net Core์์ ๋๊ตฐ๊ฐ๊ฐ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ์๋ง ๋ณ๋์ ํจํค์ง๊ฐ ๋ ์ ์์ต๋๊น?
์ข์์ ์ฌ๋ฌ๋ถ - Internet Explorer๋ฅผ ์๊ฐํ์ญ์์ค. Microsoft๋ _๋ง์นจ๋ด_ ๊ทธ๊ฒ์ ์์ ๊ณ ์์ต๋๋ค. ๋ฌผ๋ก ๊ทธ๋ค์ ๊ต์ฒด ๋ธ๋ผ์ฐ์ ์ธ Edge๊ฐ ์ฌ์ ํ ์์ฅ์์ ํ์ด๋ ๋๊น์ง ๋๋ฌด ์ค๋ ๊ธฐ๋ค๋ ธ์ต๋๋ค. ๋๊ตฌ๋ ํฌ๋กฌ๋ง ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ์ ํ ์ฌ๋๋ค์ด IE๋ฅผ ์ฌ์ฉํ๋ ๊ณณ์ด ๋ง์ด ์์ต๋๋ค. ์๋ํ๋ฉด ์ต์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋๋ก ์ฑ์ ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐ ๋น์ฆ๋์ค ๊ฐ์น๊ฐ ์๊ณ ์ฌ์ ํ Microsoft๊ฐ ํ๋ฌ๊ทธ๋ฅผ ๋๋ฌด ์ฒ์ฒํ ๋ฝ๋ ๊ฒ์ ๋ํด ๋ถํํ๋ ์ฌ๋๋ค์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
ASP.NET Core๋ ์ง๋ 15๋ ์ ๋ ๋์ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ฐฐ์ด ๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก .NET์ ๋์ฒดํ๋ ค๋ Microsoft์ ์ ์์ ๋๋ค. ์๋ก์ด ASP.NET Core ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉด์ ๊ฐ๋ฐ์๊ฐ .NET Windows ํ๋ ์์ํฌ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๊ฒ์ IE 9์ ๋งค์ฐ ํก์ฌํฉ๋๋ค. .Net 4.x์ ๋ํ ์ง์์ ํด๋น OS์ ์ง์ ์๋ช ๊ณผ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ์ ์งํํฉ๋๋ค.
@glennsills IE์ Edge ๊ฐ์ ํํ์ด ๋๋ฝ๋์์ต๋๋ค. Edge์์ ์ผ๋ถ ๊ธฐ๋ฅ์ด ์๋ํ์ง ์๊ธฐ ๋๋ฌธ์ IE๋ ์ฌ์ ํ Windows์ ํจ๊ป ์ ๊ณต๋ฉ๋๋ค. Edge๊ฐ ๋ด ์์ ์ VPN์ ์ง์ํ์ง ์๋๋ค๊ณ ํด์ ํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ด์ฐฎ์ต๋๋ค...๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์ ๋๋ค. ์์ ํ ๋ค๋ฅธ ์ด๋ฆ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ActiveX๋ฅผ ์ง์ํด์ผ ํ๋ค๋ ์ ์ ๊ฒฌ์ด ์์ต๋๋ค. ;)
@glennsills ์ด๋ค ์ค์๋ฅผ ๋งํฉ๋๊น?
@markrendle "Angular ์ธ๊ณ์ ๊ฑฐ์ ๋ชจ๋ ์ฌ๋๋ค์ด "์ค, ์, ํจ์ฌ ๋ซ์ต๋๋ค"๋ผ๊ณ ๋งํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ํ์ต๋๋ค."
๋น์ ์ ์ด์ ๊ฐ์ ๋์ ์๋ฅผ ์ ํํจ์ผ๋ก์จ ๋น์ ์ ์ฃผ์ฅ์ ์ ๋ง๋ก ํด๋กญ๊ฒ ๋ง๋ค๊ณ ์์ต๋๋ค. ์ด์จ๋ ์ ํ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ์ธํด ๋ฆฌ๋๊ฐ ์์ค๋์์ต๋๋ค(๋น์ ํฐ ์ฐจ์ด๋ก ๊ฐ์ง).
python 3๊ณผ ๋์ผํฉ๋๋ค. ๋จํธํ๋ ๋ช ๋
๋์ ๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ์ถ์ง๋ ฅ์ ์ฃฝ์์ต๋๋ค.
๊ทธ๋์ ์ ๋ ์ฌ๊ธฐ์ ๋ญ๊ฐ๋ฅผ ์ดํดํ๋ ค๊ณ ํฉ๋๋ค.
.Net Remoting์ ์ฌ์ฉํ๋ ์ด์ Asp ์น ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ Asp .Net ํต์ฌ MVC ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ณํํ ๊ณํ์ด์์ต๋๋ค. ๋ด ๊ณํ์ ์ฐ๋ฆฌ ์์คํ
์์ ๊ทธ ์ฐ๋ ๊ธฐ๋ฅผ ์ ๊ฑฐํ ๊ธฐํ๋ฅผ ์ป์ ๋๊น์ง .Net Remoting์ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ ์๋ฆฌ์ ๋ฐ๋ฅด๋ฉด Asp .Net Core 2.0์ ๋์์ผ๋ก ํ๋ฉด ์ด ์์
์ ์ํํ ์ ์์ต๋๊น? ํ์ง๋ง Net Core 1.1์ ๋์์ผ๋ก ํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ์๊ฒ ์ต๋๊น?
@wbuck ์ด์ ํ์ฌ ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํด ๋น๋ํ ์ ์๋ ๊ฒ์ ASP.NET Core 2.0์ ๋จ์ผ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ์ ์๋ง ์๋ค๋ ์ด์ผ๊ธฐ์ ๋๋ค. ์๋ง๋ 2.0-preview-2์์ ์ด ๊ธฐ๋ฅ์ ๋ค์ ๊ฐ์ ธ์ฌ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ํ์ฌ๋ก์๋ 1.1์ ๋์์ผ๋ก ํ ์ ์์ง๋ง 2.0-preview-1์ ๋์์ผ๋ก ํ ์ ์์ต๋๋ค.
์ฅ๊ธฐ์ ๋ฏธ๋๊ฐ ๋ฌด์์ธ์ง ๋๊ฐ ์๊ฒ ์ต๋๊น? ์ ์ฒด ํ๋ ์์ํฌ๊ฐ ๊ฒฐ๊ตญ์๋ ์ญ์ ๋ ๊ฒ์ด ๋ถ๋ช ํฉ๋๋ค. ๊ธฐ๊ฐ์ ๋๊ตฌ๋ ์ถ์ธกํ ์ ์์ต๋๋ค.
@popcatalin81 ์ฌ๋ฌ ํ๋ซํผ์์ ์คํํ๋ ค๋ ๊ฒฝ์ฐ COM ๊ฐ์ฒด์ ์ก์ธ์คํ๋ ๊ฒ์ ํ์คํ ์ค์์ ๋๋ค. Windows์์๋ง ์คํํ๋ ค๋ ๊ฒฝ์ฐ '์ค์'๊ฐ ์๋ ์ ์์ง๋ง ํฌ๋ก์ค ํ๋ซํผ์ด ๋๊ณ ์ ํ๋ ๊ฒฝ์ฐ ์ด์ ๊ฐ์ ๊ฒ๋ค์ด ๋ง์ด ์์ต๋๋ค. AspNET๊ณผ IIS์ ๊ฒฐํฉ์ ๋ํด ์๊ฐํด ๋ณด์ญ์์ค. ๋น์์๋ ๊ด์ฐฎ์์ง๋ง ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์คํ์ด ๋งค์ฐ ๋ณต์กํด์ก์ผ๋ฉฐ(Windows์์๋) ๋ค๋ฅธ ์น ์๋ฒ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ASP.NET์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ข ์์ฑ ์ฃผ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ปจํธ๋กค๋ฌ์ ๊ฐ์ ๋จ์ ํ ์คํธ๋ฅผ ์ค์ ๋ก ๋ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์๊ฐ์ ํ๋ฆ๊ณผ ์ฌ๋๋ค์ด ์ผ์ ํ๋ ๋ ๋์ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ์์ธ '์ค์'๊ฐ ์๋๋๋ค.
@GiorgioG - ๋ค, ๊ทธ๊ฒ ์ ์์ ์ ๋๋ค. Windows 10์์๋ IE์ Edge ์ค์์ ์ ํํ ์ ์์ง๋ง _์ ํ_ํด์ผ ํฉ๋๋ค. Edge์์ IE ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ด๋ ์๋์ ์ธ ๊ฒ์ ๋๋ค. IE์ Edge ๊ธฐ๋ฅ์ ํ ํ๋ก์ธ์ค์์ ๋์์ ์๋ํ๊ฒ ํ๋ ๊ฒ์ ํ์ดํธ ํซ ์๋ง์ด ๋ ๊ฒ์ ๋๋ค. ๋ํ IE์ ๋ํ ํฅํ ์ง์์ ๋ฒ๊ทธ ์์ ์ผ๋ก ์ ํ๋ฉ๋๋ค. Microsoft๊ฐ 10๋ ์ ์ ์ด ์์ ์ ์ํํ๋ค๋ฉด Edge๋ ์ง๊ธ๋ณด๋ค Chrome์ ํจ์ฌ ๋ ๊ฒฝ์๋ ฅ์ด ์์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ Microsoft๋ ๊ฝค ์ค๋ซ๋์ .NET Classic์ ๊ณ์ ์ง์ํด์ผ ํ์ง๋ง ๋ฒ๊ทธ ์์ ๋ชจ๋์ ๊ฐ๊น์ต๋๋ค. Asp.Net Core๋ ํ๋ซํผ ๊ฐ ๊ฐ๋ฐ ์ฉ์ด์ฑ๊ณผ ์ฑ๋ฅ์ ์ค์ ์ ๋์ด์ผ ํฉ๋๋ค.
์ทจ์์ ๋ํ ๊ณต์ ๋ฐํ๊ฐ ์์ต๋๊น?
@pantonis
์ด์ ๋ํ ๊ณต์ ๋ฐํ๊ฐ ์์ต๋๊น?
์๋ ์์ด. ๋ค๋ฅธ ํ์๋ค์ ์๋ฐ๋ ์ง์ ์ด ์์ต๋๋ค. @DamianEdwards ์ @davidfowl ์ ์ด๋ฒ ํธ์์ ์ง์ ์ค๋จ์ ๊ณ ์์ ์ผ๋ก ๊ฒฐ์ ํ๋ค๊ณ ๋ฐํ์ต๋๋ค. Jeffrey๋ ASP.NET ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ .NET์ ๋ํ ์ง์์ด ๊ณ์๋ ๊ฒ์ด๋ผ๊ณ ์ผ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ์๋ก๋ฅผ ์ธ๊ธํ์ง ์์์ต๋๋ค.
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ,
์ด๋ฒ์๋ ๋ฌธ์ ์ค๋ ๋์ ๋ฐ์ด ๋ค์ง ์์์ง๋ง ๋ฉ์์ง์ ๋ฐฉํฅ์ ์์ ํ๋ ๋ฐ ๊ฑธ๋ฆฐ ์๊ฐ์ ๋งค์ฐ ๋ง์กฑํฉ๋๋ค.
๋๋ BUILD ์ ์ ๋ชจ๋ ๊ฒ์ด ์๋ํ๋๋ก ํ๊ธฐ ์ํด ๋ง์ง๋ง ์๊ฐ์ ์ด๊ธฐ ๊ฒฐ์ ์ด ๋ด๋ ค์ก๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. .NET Standard 2.0์ ์คํํ๊ฒ ๋ค๋ ์์ฌ๋ฅผ ๋ฐํ๋ ๊ฒ๋ ๋งค์ฐ ์์ฌ์ด ๋ฉ๋๋ค.
๋ชจ๋ ๋น์์ฐ์ ์ธ ์๊ฒฌ์๋ ๋ถ๊ตฌํ๊ณ ๋น ๋ฅธ ํผ๋๋ฐฑ๊ณผ ์ฐ๋ฆฌ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๊ธฐ ์ํด ๋ ธ๋ ฅํ .NET ํ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๋งค์ฐ ๊ฐ์ฌํฉ๋๋ค.
@MartinJohns ์ค ์ด๋ฐ.. ๊ทธ๋์ ๋๊ฐ ๋ง๋์?
@wbuck
๋ฏธ๋์ .NET Remoting์ ์ฌ์ฉํ๋ ๊ฒ์ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ฝ์ํจ์ผ๋ก์จ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์์งํฉ๋๋ค. Remoting์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ ๋๋ก ์๋ํ์ง ์์์ง๋ง ์ฌ๋๋ค์ด ๊ณผ๊ฑฐ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์(Microsoft์ ๋๊ตฐ๊ฐ๊ฐ ์ด๊ฒ์ด ์ข์ ์์ด๋์ด๋ผ๊ณ ๋งํ๊ธฐ ๋๋ฌธ์ ๊ณต์ ํ๊ฒ ๋งํด์) ์ฌ์ ํ ์ฌ์ฉํ๊ณ ์ถ์ดํฉ๋๋ค. WEB API๋ฅผ ํตํด ASP.NET Core ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ณด์ ์ก์ธ์คํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ๊ณ ์์ฃผ ์ค๋๋ .NET @@frameworks์์ ํธ์ถํ ์ ์์ต๋๋ค.
๋ด ๋๋ฃ๊ฐ '์๋ก์ด ๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ค๋จํด์ผ ํ๋ค'๊ณ ๋งํ ์ ์ด ์์ต๋๋ค. .NET Remoting์ ์ง์ํ๋ ASP.NET ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฒ์ด ๋ฐ๋ก ๊ทธ ์ผ์ ๋๋ค.
@pantonis ์์งํ, ์๋ฌด ์๊ฐ์ด ์์ต๋๋ค. ์ด ํธ์ ์๋ ๋ง์ ์ฌ๋๋ค์ ๋์ค์ ๋์๊ธฐ ๋๋ฌธ์ ์ด ํธ์ ์ธ๊ธ๋ ๊ฒฐ์ ์ ๋๋๋ฆฌ๋ ๊ฒ์ผ๋ก ์ฆ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ทจํฉ๋๋ค. ํ์ง๋ง ์ด๋ฒ ํธ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ง์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ๊ฒ์ผ๋ก ๋ฏฟ๊ณ ์์ผ๋ฉฐ ์์ง๊น์ง ๋ช ํํ ์ ์ฅ์ ๋ด๋์ง ๋ชปํ๊ณ ์์ต๋๋ค.
@pantonis ๊ฐ์ฅ ์ต๊ทผ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๊ณต์ ๋ฐํ์ ๋๋ค.
https://blogs.msdn.microsoft.com/webdev/2017/05/10/aspnet-2-preview-1/
1ํธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
์ด ASP.NET Core 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ ๋ฒ์ ์ .NET Core 2.0 SDK๋ง ์ง์ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด .NET Core, Mono ๋ฐ .NET Framework์์ ์คํ๋ ์ ์๋๋ก .NET Standard 2.0์ ASP.NET Core 2.0์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.
ํ์ด ๋น๋ ์ ์ ๋ง์ง๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋์ ASP.NET Core 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ .NET Standard 2.0 ์ธ๋ถ์ ์๋ API๋ฅผ ํ์ฉํ์ฌ .NET Framework์์ ์คํ๋์ง ์๋๋ค๋ ์ฌ์ค์ด ๋ฐํ์ก์ต๋๋ค.
์ด ๋๋ฌธ์ ์ฐ๋ฆฌ๋ .NET Framework์์ ASP.NET Core 1.x ์์ฉ ํ๋ก๊ทธ๋จ์ ASP.NET Core 2 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ ๊ฐ๋ฐ์๊ฐ ์ค๋จ๋์ง ์๋๋ก ๋ฏธ๋ฆฌ ๋ณด๊ธฐ 1์ด .NET Core๋ง ์ง์ํ๋๋ก ์ ํํ์ต๋๋ค.
@benaadams ๊ทธ๋ฌ๋ ํด๋น ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ง์ ์ ์ฌ๊ธฐ์ ์์ฑ๋ ์ง์ ๊ณผ ์๊ด ๊ด๊ณ๊ฐ ์์ต๋๋ค. ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ๊ทธ๋ค์ "๋ฐ๊ฒฌ"๋์๊ณ "๋ฏธ๋ฆฌ๋ณด๊ธฐ 1 ์ง์"์ ์ ํํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ์ด๋ฒ ํธ์์ ๊ทธ๋ค์ ๋ด๋ด ๋ค๋ฅธ ๊ฒ์ ์ธ๊ธํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ์ฌ๊ธฐ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์ ํ ๋ก ์ ๋ํด ์ธ๊ธํ์ง ์์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด ๋ฌธ์ ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์๋ ์ง์ ์ ๋ํ ๊ณต์ ์น์ธ์ ์ป์ ์ ์๋ค๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ๋๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด ์ฌ๊ธฐ์์ ์ด๋ฃจ์ด์ง ํ ๋ก ์ ์ธ์ ํ๋๋ก ํ์ญ์์ค. ์๋ก ๋ค๋ฅธ ์ฌ๋๋ค์ด ์๋ก์ ์ง์ ์ ์๊ณ ์์์ ์ ์ ์๋ ๊ฒ์ ๋๋ค.
๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ์ ๋๋ ๋น๊ณต์ ์ปค๋ฎค๋ํฐ ํ ๋ก ์ ๋ถ๋ช ํ ๋์ฒดํ๋ ๊ณต์ ์ปค๋ฎค๋์ผ์ด์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ด ์์ ํ ์ผ์นํ์ง ์๋๋ค๋ฉด, ์ฐ๋ฆฌ ๋ชจ๋๋ ๊ธฐ์ ์ปค๋ฎค๋์ผ์ด์ ์ ์๊ธ์ฑ์ ์ดํดํ๊ณ ์์ผ๋ฉฐ ์ ์ ํ ์ฒญ์ค์๊ฒ ์ฌ๋ฐ๋ฅธ ์ด์ผ๊ธฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ๊ธฐ์ ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ๋ณด๋ค ๋ ์ค์ํ ์ ์๋ค๊ณ ํ์ ํฉ๋๋ค.
ํน์ ์ฌ๋๋ค์ด ์์ ์ ๋ง์ด๋ ๋ฌด์์ธ๊ฐ๋ฅผ ๋จน๊ฒ ํ๋ ค๊ณ ํ ํ์๊ฐ ์์ต๋๋ค. ์ค์ํ ๊ฒ์ ์ ํํ ๋ฐฉํฅ์ด ์ฐ๋ฆฌ๊ฐ ์์ ํ๊ฒ ์ถ๋ก ํ ์ ์๊ณ ํผ๋๋ฐฑ์ ๋ฐ์ํ๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ๋ณด์ธ๋ค๋ ๊ฒ์ ๋๋ค.
Microsoft๊ฐ ํผ๋์ ํด์ํ๋ ์ฑ๋ช ์ ๋ฐํํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. MS, ํ ์ ์์ด!!!
@pantonis @MartinJohns
MS์ ์์๋์ด ์์ง ์๊ธฐ ๋๋ฌธ์ ๋น๊ณต์์ ์ผ๋ก๋ง ํ์ธํ ์ ์์ต๋๋ค.
์ด์ ์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์์ผ๋ก์ ๊ณํ์ด๋ฉฐ asp.net ์ฝ์ด์์ ์์
ํ๋ ์ฌ๋๋ค์ ๊ทธ๊ฒ์ ๋งค์ฐ ๋ง์ด ๋์ํฉ๋๋ค.
tl;dr: ์ด๊ฒ์ ์์ผ๋ก์ ๊ณํ์ ๋๋ค: https://blogs.msdn.microsoft.com/webdev/2017/05/10/aspnet-2-preview-1/
@pantonis ๊ณต์ ๋ฐํ๋ ๊ณต์ ์ ์ฅ์ ๋๋ค.
์ฑ๋ช ?
@PinpointTownes : ์๊ฐ๋งํผ ๋ช ํํ์ง ์์ผ๋ฏ๋ก ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด์ด์ผ ํฉ๋๋ค.
์๋ฃ ๐
@pantonis ๋ ์์ ๋ช ๊ฐ์ง ์๊ฒฌ์ผ ๋ฟ์ ๋๋ค.
https://github.com/aspnet/Home/issues/2022#issuecomment -300774201
Microsoft๊ฐ ํผ๋์ ํด์ํ๋ ์ฑ๋ช ์ ๋ฐํํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. MS, ํ ์ ์์ด!!!
๊ทธ๋ค์๊ฒ ๊ณตํํ๊ฒ ๋งํ์๋ฉด, ๊ทธ๋ค์ ์ด๋ฒ ์ฃผ์ ์ฌ๊ธฐ์์ ์๊ฐ์ ๋ญ๋นํ๊ธฐ์๋ ์ด๋ฒ ์ฃผ์ ๊ฐ์๋ ์ด -ํฅ๋ถ ์ํ์์ ์ด๋ฆฌ์ ๋ฆฌ ๋ฐ์ด๋ค๋๋๋ผ ๋๋ฌด ๋ฐ์ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ๊น์ง ์ ๊ณต๋ .NET Core์ ๋ํ ๋ชจ๋ ์ค๋ช ์ด ์ธ์์ ์ดํด ์์ค์ ๋ฎ์ถ๋ ์ญํ ์ ํ๋ค๋ ์ ์ ๊ฐ์ํ ๋ ๊ทธ๋ฅ ๊ฑฐ์ง๋ง์ ํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ๊น์ง ์ฝ์ผ์๋ ๋ถ๋ค์๊ฒ ์ข ๋ ๋ช ํํ๊ฒ ํ๊ธฐ ์ํด...
๋ณด๋ค ์ต๊ทผ์ ๊ณต์ ๋ฐํ๊ฐ ์ด ์ค๋ ๋์ ๋ด์ฉ๊ณผ ๋ชจ์๋๋ ๊ฒฝ์ฐ ๊ณต์ ๋ฐํ๊ฐ ์ด ์ค๋ ๋์์ ์ด์ ์ ๋งํ ๊ฒ๋ณด๋ค ์ฐ์ ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผํด์ผ ํฉ๋๋ค.
๊ณต์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ > GitHub ๋๊ธ
์ด๋์๋ ๊ธฐ๋ก๋์ง ์์์ง๋ง ์ ์๊ฒ๋ ์ด ๊ท์น์ด ์ค๋ซ๋์ ์ ํจํ์ต๋๋ค.
@MaximRouiller
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ @benaadams ๋ ์๋ง ์๊ณ ์์ ๊ฒ์
๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ช ์๊ฐ ์ ์ @davidfowl๊ณผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด์ต๋๋ค. ๋ฐํ๊ฐ ๋ง์ต๋๋ค.
ํธ์ง: ์ด ๋ฐํ: https://blogs.msdn.microsoft.com/webdev/2017/05/10/aspnet-2-preview-1/
@hallator ์ด๋ค ๋ฐํ? Jeffrey ๋๋ ๋ค๋ฅธ ์ฌ๋์ ASP.NET ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์?
๊ทธ๋ฅ ๋๋ฌ
์ง์ ์ .NET Framework๊ฐ ASP.NET 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ 1์์ ์ง์๋์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค์ ๊ทธ ์ดํ์ ๊ทธ๊ฒ์ ์ง์ํ ๊ณํ์ ๋๋ค. ํ๋์ ๋ ์ด์ ๋ฌด๋์ง์ง ์์ต๋๋ค.
์ฌ์ค ์ดํ์ ๊ทธ๊ฒ์ ๋ํด ๊ณ์ํด์ ๋ถํํ๋ ๊ฒ; ๊ทธ๋ค์ด ๋ ์ฐธ์ฌํ๊ณ , ์์ด๋์ด๋ฅผ ๋ ์ ๊ฒ ๊ณต์ ํ๊ณ , ์ด๊ธฐ ๋จ๊ณ์ ์ฌ๋๋ค์ ๋ ์ฐธ์ฌ์์ผ ํจ์ฌ ๋์ค ๋จ๊ณ์์ ์ฌ๋๋ค์๊ฒ ์๋ฆฌ๋ ๊ฒ์ ์ ๋นํํ ๊ฒ์ ๋๋ค. ๋ ์์์ ์ผ๋ก ๋ถ์๋ ๋ฐ์์ผ๋ก; ๋ฐฉํฅ์ ๋ฐ๊พธ๊ธฐ๊ฐ ๋ ์ด๋ ค์ธ ๋.
๋น์ ์ด ๋ณด๊ธฐ์ ์๋ชป๋ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ํด ๋๊ตฐ๊ฐ์๊ฒ ๋ฐ์ด๋ ๋ค๋ฉด; ๊ทธ๋ฐ ๋ค์ ๊ทธ๋ค์ ๊ทํ์ ํผ๋๋ฐฑ์ ๋ฐ๋ผ ๋ง์์ ๋ฐ๊ฟ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฒฐ์ ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฝ๋ฅผ ๋ฌธ์ง๋ฅด๋ฉด ๋ฏธ๋์ ๊ด๊ณ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๊น? ์ ๋ง ๋นจ๋ฆฌ ๊ณ ์ฅ์ด ๋ ๊ฒ์ ๋๋ค.
๋ ์๋กญ๊ณ ๋ ์ด๋ฆฐ MS; ๊ฐ๋ฐ์ ๋ฐ ๊ณ ๊ฐ๊ณผ ์ง์ ์ํตํ๋ ๊ฒ์ ํฅ๋ฏธ์ง์งํฉ๋๋ค. ๋น์ ์ ํ๋์ด ๊ทธ๊ฒ์ ํ์ํ๊ณ ๋ชจ๋ ๊ฒ์ด ๋จผ์ ํ๋ณด ์น์ธ์ ๊ฑฐ์ณ์ผ ํ๋ค๊ณ ํด๋ ํ์ง ๋ง์ญ์์ค. ๊ทธ๊ฑด ๋๊ตฌ์๊ฒ๋ ์ข์ง ์์ต๋๋ค.
์ข ๋ ์ ๋ฌธ์ ์ด ๋์ด ๋ ๋์ ์ํ๊ณ๋ฅผ ์ํด ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ํจ๊ป ์์ผ๋ก ๋์๊ฐ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํ์ญ์์ค.
@benaadams ๋ช ํํ ์์ฌ ์ํต์ ์ํ๋ ๊ฒ๊ณผ ๋ถ๋ง์ ํผ๋ํ๊ณ ์์ต๋๋ค. ์ด๊ฒ์ ๋จ์ธ์ปจ๋ ๋๊ตฐ๊ฐ๋ฅผ ๋ชฐ์๋ด๋ ค๋ ์๋๊ฐ ์๋๋ผ ๊ทธ๋ค์ด ๋ ์ฐธ์ฌํ๊ณ ํผ๋์ ์์ ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค. ๋น์ ์ ๊ทธ๋ค์ด ์ฐ๋ฆฌ์ ํผ๋๋ฐฑ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง์์ ๋ฐ๊ฟจ๋ค๊ณ ๋งํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์๋ ์ด์ ๋ํ ์ธ๊ธ์ด ์์ผ๋ฏ๋ก ์์ ํ ์ด๊ฒ์ด ์ฌ์ค์ด๋ผ๊ณ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค.
์ด ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋๋ก ๋ฐํ๋์ง ์์์ต๋๋ค. ๋ถ๋ช ํ ๋๋๋ ค์ง ๊ฒฐ์ ์ ์ ๋๋ก ๋ฐํ๋์ง ์์์ต๋๋ค. ์ ์ ์ฐธ์ฌ๊ฐ ์๋๋ผ ๋ ๋ง์ ์ฐธ์ฌ๋ฅผ ์ํฉ๋๋ค.
@MartinJohns ๊ณต๊ฐ ๋ฐํ์์ ๋น์ ์ NOW์ IS์ ๋ํด ์ด์ผ๊ธฐํฉ๋๋ค.
๋น์ ์ด ์ด๋ป๊ฒ ๊ทธ ์ง์ ์ ๋๋ฌํ๋์ง๊ฐ ์๋๋๋ค. ์ฌ์ค์ ์ ํํ @benaadams ๊ฐ ๋งํ ๊ฒ์ ๋๋ค.
^์ฌ๊ธฐ์ ๋ ์๊ณ GIF ์ฝ์ ^
@benaadams๊ฐ ๋์ํ์ต๋๋ค. ์๊ฐ ๋ด์(์ฆ, //๋น๋ ํ) ์ข ๋ ๊ธฐ์ ์ ์ธ ์ ๋ณด๊ฐ ์ ๊ณต๋๋ ๊ฒ์ด ์ข์ ์๋ ์์ต๋๋ค. @davidfowl ์ด .net full์์ ํ๊ธฐ ์ด๋ ค์ ๋/์ด๋ ค์ ๋ ํญ๋ชฉ ๋ชฉ๋ก์ ๋ํ ๊ฒฐ๊ณผ์ ๊ทธ ์ด์ ๊นจ๋ํ ํด์์ด ํ์ํ์ต๋๋ค. ์ด ์ค๋ ๋์ ๋น๊ณต์์ ์ธ ๊ฐ๋ฐ์ ๋ ๊ฐ๋ฐ์๊ฐ ์๋ ๋ค๋ฅธ ๊ณณ์์ ์ํํด์ผ ํ ์ด์ ๊ฐ ์์ต๋๋ค. IMHO๋ aspnetcore 2.0์์ ํ์ฌ ๊ธฐ๋ํ ์ ์๋ ๊ฒ๊ณผ ํ์ฌ ์ด ๊ธฐ๊ฐ์ ์ํํ ์ ์์ผ๋ฏ๋ก ์ฐ๊ธฐํด์ผ โโํ๋ ๋ฏธ๋ ๊ณํ์ ๋ํ ๋ ๋ง์ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ฌ๊ธฐ์ ์จ์ด โโ์๋/์ค์ง ์ค๋ ๋๋ฅผ ์ฝ๊ณ (๊ทธ๋ฆฌ๊ณ ๊ฒฐ๋ก ์ ๋์ถํ...) ์ฌ๋๋ค๊ณผ ์ฌ์ ํ ์์ฌ์ด ์๋ ์ฌ๋๋ค์ ์ ๋ขฐ๋ฅผ ํ๋ณตํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฉฐ์น ๋์ ๋งค์ฐ ๊ธธ๊ณ ์ข์ ํ ๋ก ์ ์งํํ๊ธฐ ๋๋ฌธ์ ๊ฐ์์ค๋ฌ์ด ์นจ๋ฌต๊ณผ ์ด ํ ๋ก ์ ๋ํ ์ธ๊ธ ์์ด ๋ธ๋ก๊ทธ์ ๋ฐํ์์ ์ง์ ๋๋ ๊ฒ๋ณด๋ค ์ด ์ค๋ ๋์์ '๊ณต์' ๋ฐํ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. .
๋ฐํ๊ฐ ๋ง๋ค๋ฉด ์ด๊ฒ์ ๋ฌผ๋ก ์ข์ ์์์ด๋ผ๋ ์ฌ์ค์ ๋ณํ์ง ์์ต๋๋ค.
์ด๊ฒ์ ๋ํด ๋ฏธ์ํ์ง๋ง ๋๋ ์ด๊ฒ์ ๋ํ ์ดํด๋ฅผ ๋ช ํํํ๊ณ ์ถ์ต๋๋ค
์์ ๋ค์ด์ด๊ทธ๋จ์ ์๋ก ์ฌ์ฉํ๋ฉด ์ค์ ๋ก ASP.NET Core์ ๋ฏธ๋๊ฐ ์๋ ์ ํ๋ก ์ธํด ์ค์ ๋ก .NET Standard ๊ณ์ธต์ ๋ฐฐ์น๋๋ ๊ฒ์ด ์๋๋ผ ASP.NET Core๊ฐ .NET Core์ ๋ฐฐ์น๋๋ค๋ ์ฌ์ค์ ๋งํ๋ ๊ฒ์ ๋๊น? ์ด๊ฒ์ ๋ฏธ๋ ๋ฒ์ ์ด ๋ฌด์์ด๋ 2.0 ๋๋ 3.0 ๋ฑ์ ์์ ๊ฒ์ ๋๋ค.
์๋ฅผ ๋ค์ด:-
.NET ์ฝ์ด -> ASP.NET
์๋๋ฉด ์ฌ์ ํ .NET Standard -> .NET Core -> ASP.NET Core์
๋๊น?
@lilpug ๊ทธ๊ฒ์ ์ํฉ์ ์ ํ์ํค๋ ์ค๋ช ์ ๋ํ ๋ด (์ธ๊ธฐ์๋ ;-) ์์ ์ ๋ณด์ฌ์ฃผ๋ ์ผ์ข ์ ๋ค์ด์ด๊ทธ๋จ์ ๋๋ค. ".NET ํ์ค"์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฉฐ ASP.NET Core๋ .NET Framework์ ํผ์ด์ธ ์์ ์์ ์์ผ๋ฉด ์ ๋ฉ๋๋ค.
๋ค์ด์ด๊ทธ๋จ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ชป๋์์ผ๋ฉฐ ๋ฌด์ํด์ผ ํฉ๋๋ค.
์๋ ํ์ธ์ @willdean ๋ ์ ์ ํ ๋ ๋์ ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
ํ์ง๋ง ์์งํ ๋งํด์ .NET Standard๋ฅผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ง์ ํ์ง ์๊ณ ์์๋ ์์น๋ฅผ ๋ ๋ง์ด ๊ฐ๋ฆฌํค๊ธฐ ์ํด ์์ ๋ก ์ฌ์ฉํ์ต๋๋ค.
๋ ์ ์ ํ ๋ ๋์ ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๊น?
์๋์, ๋๋ ๊ทธ๊ฒ์ด ๋ค์ด์ด๊ทธ๋จ์ ํํ์ ๋ฌด์ํ๊ฑฐ๋ ์ ์ด๋ ๋ด๊ฐ ๋ณธ ๋ชจ๋ ๋ค์ด์ด๊ทธ๋จ์ ์์ฑ์์ ๋ฅ๋ ฅ์ ๋ฌด์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. @shanselman (์ปค๋ฎค๋์ผ์ดํฐ ์ ๋ฅํ )์ด ๋ชจ๋ ๊ฒ์ ์ค๋ช ํ๋ ค๊ณ ํ๋ ๊ธฐ์ฌ๋ฅผ ์์ฑํ ๋์๋ ๊ณต์ํ๊ฒ ํํํ๊ธฐ์๋ "์ฉ์ดํ์ ์ ํ์ฑ"์ด ์๋ฉ ๋์ต๋๋ค.
๋ง์ ์ฝ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๋ค์ด์ด๊ทธ๋จ์ ".net ํ์ค"์ ๋ฃ์ผ๋ ค๋ ๋ชจ๋ ์๋๋ ์คํจํฉ๋๋ค. ์๋ํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ API ์ฌ์์ด๊ณ ๊ทธ ์กด์ฌ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ง๊ตํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
ASP.NET ํ์ Angular๊ฐ ์๋ ASP.NET์ ์ ์ง ๊ด๋ฆฌํด์ผ ํ๋ ๋ถ๋ด์ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค. ๊ทธ๋ค์ ๋ํ Microsoft๋ฅผ ๋์ ํ์ฌ ๋งํ๋ ๋ถ๋ด์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ณต์์ ์ผ๋ก๋ ์ฌ์ค์ด ์๋ ์๋ ์์ต๋๋ค. ์ด๋ ๋น๊ณต์์ ์ผ๋ก ์ณ๊ณ ASP.NET ํ์ด ํ๋ ์ผ(๋๋ ํ์ง ์๋ ์ผ)์ด ์ ์ฒด์ ์ถฉ๊ฒฉํ๋ฅผ ๋ณด๋ธ๋ค๋ ์๋ฏธ์ด๊ธฐ๋ ํฉ๋๋ค. ์ ์ฒด ์ํ๊ณ์ ์ํฅ์ ๋ฏธ์น๊ณ Microsoft์ ์ฐ์ ์์๋ฅผ ์ง๊ฐ์ ์ ์ผ๋ก ๋ฐ์ํฉ๋๋ค.
๋น ๋ฅธ ์๋ AD์ ๋ํ ์ง์์ ๋๋ค. ์ด๊ฒ์ด ์ด๋ป๊ฒ ์ ํ ์ฌํญ์ผ๋ก ๊ฐ์ฃผ๋ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ ๋ ์ข์ ์ ์ AD๊ฐ ์ธํฐ๋ท ์ด์ ์๋์ ์ ๋ฌผ์ธ ๊ฒ์ด ํ์คํ๊ณ ์กฐ๋ง๊ฐ ์ฌ๋ผ์ง ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฌ๋ Microsoft/DNF๊ฐ AD๋ฅผ ๊ณต์ ASP.NET Core ํ๋ ์์ํฌ(์ฌ๋ฆ ์ ์ ์ถ๊ฐ๋ ๊ฒ์ด๋ผ๋ ๋ง์ฐํ ์ฝ์ ์ ์ธ...), ๋ฉ์์ง๋ ๊ธฐ์ ์ด Microsoft ์์ฒด์์ ์ ์ธ๋๋ค๋ ๊ฒ์ ๋๋ค. ๋๋ถ๋ถ์ Microsoft ์ ํ์ด ์๋ํ๋ ค๋ฉด AD๊ฐ ํ์ํ๋ค๋ ์ ์ ์ ์ธํ๊ณ Microsoft๋ AD ์ง์์ด ๊ทธ๋ค์ง ์ค์ํ์ง ์๋ค๊ณ ์๊ฐํ๋ ๋์ AD๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ๊ฐ์ํ ํด๋ฌ์คํฐ๋ฅผ ๊ตฌ์ถํ ์ ์๋ค๊ณ ์ผ๋ง๋ ํ์ ํฉ๋๊น? ๋ค์์ ์ถ๊ฐํ์ง ์๋ ํ ๋ณด๋ด๋ ๊ฒ์ ํ์คํ ์๋ชป๋ ๋ฉ์์ง์ ๋๋ค. ์ง๊ธ๋ถํฐ ์ธํ๋ผ์ AD ์ถ๊ฐ๋ฅผ ์ค์งํ์ญ์์ค. Microsoft์์ ๊ฐ๋ฐ์ด ๋จ์ ๋ ๋ฐฉ์์ผ๋ก ์งํ๋๊ณ ์๋ค๊ณ ๋งํ์ ๋ ์๋ฏธํ๋ ๋ฐ๋ ๋ฐ๋ก ์ด๊ฒ์ด์์ต๋๋ค.
ASP.NET ํ์ ์ด ์ค๋ ๋์์ ์ฌ๋๋ค์ด ๋ฌด์ธ๊ฐ๋ฅผ ์ธ๊ธํ ๋ ์๊ธฐ ์ ๊ธด๊ธ ํ์๋ฅผ ์ด๊ณ ๋ฏธ์น ๋ฏ์ด ์ ๋ณด๋ฅผ ์ฐพ๊ณ ์์ ์ด ์๋ชป๋ ์ ํ์ ํ๋ค๊ณ ์๊ฐํ๋ค๋ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค. ASP.NET์ ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํ๋ ๊ฒฝ์ฐ ๋ฌด์ํ ์ ์๋ ๋จ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ผ ํต์ฌ ๊ธฐ์ (๋ง์ฅ๋ ์๋)์ด๊ธฐ ๋๋ฌธ์ ์ค์ ์ธ๊ณ์์ ์ผ์ด๋๋ ์ผ์ ๋๋ค. ๊ทธ๋์ ์ฌ๋ฌ๋ถ์ ์์ ์ฑ์ ์ํ๊ณ ํต์ฌ ๊ธฐ์ ๋ก ์์ ํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๋ ์ํฉ๋๋ค.
๋ ๋ค๋ฅธ ์ด๋ฆฌ์์ ์: ์ธ๊ธฐ ์๋ IdentityServer4๋ ASP.NET Core 1.1๋ง ์ง์ํ๋ฏ๋ก ๋๊ตฌ๋ ์ง Core 1.0 ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ์ง๊ณ ์๋๋ฐ ๋ณํํ ์ ์๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น? ๋ฒ์ ์ด... ๋ญ... 4๊ฐ์์ผ ๋ ์ด์ ํ๋ ์์ํฌ๋ฅผ ์ ์งํ์ง ์์ผ๋ ค๋ฉด ๋ณํํด์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ๊ณต์ ํ๋ค๊ณ ์๊ฐํ์ญ๋๊น? ๊ทธ๊ฒ์ ๊ทธ๋ค์๊ฒ ๋ฌ๋ ค ์์ต๋๊น? ์ ๋. ๊ฐ๋ฐ์๋ฅผ ๋ถ์ด์ํค๊ณ ์ค๊ธฐ์ ์ผ๋ก ๋จ์ํ ์ฌ๋๋ค์ ๊ฐ์ ๋ก ์ ํ์ํค๋ ์ํ์ด ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ํผํ ์ ์๋ ๊ฒฝ์ฐ์๋ง ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๊ณตํ๋ ๊ฒ์ ๊ทํ์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค.
์์งํ ์ด ์ญ์ถ์ ์ ์๋ฌด ๊ฒ๋ ํด๊ฒฐํ์ง ๋ชปํฉ๋๋ค. ์คํ ์์ฑ .NET์ด ์ต์ ์ ์ ํ์ด์๊ณ ๋๋ถ๋ถ Microsoft์ ์ดํ์ ์์ํ๋ค๋ ๊ฒ์ ์๊ณ ์์์ต๋๋ค. ์ด ์ค๋ ๋์์ ๋๋ณด๋ค ๋จผ์ ๋งํ๋ฏ์ด .NET์ ๊ธฐ๋ณธ์ ์ผ๋ก Azure๋ฅผ ์ง์ํ๋ ๋๊ตฌ์ ๋๋ค.
๊ฐ๋ฐ์๋ค์ด ๊ทธ ๋ณํ๋ฅผ ๋ฐ์๋ค์ด๊ณ ์ถ์ดํ์ง ์๋ ๊ฒ์ ์๋๋๋ค(๋๋ ๋๊ตฐ๊ฐ๊ฐ ์ฐ๋ฆฌ๊ฐ ํ์์ ๋จธ๋ฆฌ ์๊น์ ๋ํด ํ ๋ก ํ๋ ๊ฒ์ฒ๋ผ ํ์คํ๋ ์ฌ๋์ด ๋งํ ๊ฒ์ฒ๋ผ). ๊ทธ๋ค์ ์๋ฝํ์ง๋ง ์์งํ Microsoft๋ ์ด ์ ํ์ ๋ฌด๊ฒ๋ฅผ ๋์ง ์๊ณ ๋ณํ๋ฅผ ์ถ๊ตฌํ๋ ๋ฐ ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋น์ฆ๋์ค ๋ชฉํ. ์ฐ๋ฆฌ๋ ์์ ํ .NET ํ๋ ์์ํฌ๋ฅผ ์ง์ํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ฉฐ ๊ทธ๊ฒ์ด ์ ์น๋ผ๋ ๊ฒ์ ์๊ณ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ๋น์ฆ๋์ค ๋ฐ์ธ๊ณผ ์๊ฒฌ์ ๋ชจ๋ ๊ธฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์ ์ ์ธ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์ค์ํฉ๋๋ค. ์ด ์ค๋ ๋๊ฐ UTF8 ๋ฌธ์์ด์ด ์๋๋ผ ์ฌ๋๋ค์ด ์๊ณ๋ฅผ ์ํด ์ด๋ฌํ ๊ธฐ์ ์ ์์กดํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ๊ฐ๋ฅด์ณ์ฃผ์ง ์์๋ค๋ฉด ์์งํ...
ASP.NET ํ์ ๋๋ฌด ๋ง์ ์ฑ ์์ด ์์ต๋๊น? ์๋ง๋. ๊ทธ๋ ๋ค๋ฉด ์ด๋ฌํ ๊ฒฐ์ ์ ์ ์ฒด ์ํ๊ณ์ ํ๋ซํผ์ ๋ํ ์ฑ ์์ ์ง๋ "์ํผํ"์ ๋งก๊ธฐ์ญ์์ค.
๋๋ ๊ทธ๊ฒ์ด GitHub์์ ์ด๋ป๊ฒ ๋ ผ์๋ ์ ์๋์ง์กฐ์ฐจ ๋ชจ๋ฆ ๋๋ค.
@willdean ok "๋ค์ด์ด๊ทธ๋จ์ด ์๋" ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฐฐ์นํ ์ ์์ต๋๋ค. :),
์๋ฅผ ๋ค์ด .NET Standard 2.0์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋ํ๋ฉด ASP.NET Core(.NET Core)์์ ์ง์๋ฉ๋๋ค(ํฅํ ํ๋ช ํจ). ๊ทธ๋ ๋ค๋ฉด "NET Standard -> .NET Core -> ASP.NET Core"๋ฅผ ์๋ฏธํฉ๋๋ค. " ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ .NET Core๊ฐ ์ค๋จ๋๊ณ NET Standard์ ๊ธฐ๋ฐ์ ํ์ฉํ์ง ์์ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
@lilpug ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ .NET Standard์ธ ๊ฒฝ์ฐ ์ ๋ ์ด์ด์ ๋ชจ๋ ํญ๋ชฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ด์ด๊ทธ๋จ๊ณผ ๊ฐ์ด .NET Framework, .NET Core, Xamarin, Mono, Unity ๋ฑ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
.NET Standard๋ ๊ฐ๋ฅํ ์ต๋ ๋๋ฌ ๋ฒ์๋ฅผ ํ์ฉํ๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ด์์ ์ผ๋ก ์ค์ํด์ผ ํ๋ ๊ฒ์ ๋๋ค(๋ฒ์ ์ด ๋ฎ์์๋ก ๋๋ฌ ๋ฒ์๊ฐ ์ปค์ง).
์์ ๋ ์ด์ด๋ ์ฑ ๋ชจ๋ธ์ ๋๋ค. exe/์คํ ํ์ผ์ด ๋ฌด์์ธ์ง. ๊ทธ๊ฒ๋ค์ ์ต์ข ์ข ์ ์ ๋๋ค.
๋ฐ๋ผ์ .NET Framework exe๊ฐ ์์ผ๋ฉฐ Windows์์๋ง ์คํ๋ฉ๋๋ค.
Xamarin ์คํ ํ์ผ iOS, Android, OSX์์ ์คํ๋ฉ๋๋ค(๊ฐ๊ฐ์ ๋ํด 3๊ฐ์ ๋ค๋ฅธ ์คํ ํ์ผ์ด ํ์ํจ).
.NET Core exe๋ ์์ ํ ์ด์ ๊ฐ๋ฅํ๊ณ dotnet ์คํ๊ธฐ donet my.dll
๋ก ์คํํ๊ฑฐ๋ ํน์ ํ๋ซํผ Windows, Linux, MacOS, Tizen์ฉ์ผ๋ก ํน๋ณํ ๋์์ด ์ง์ ๋ ์คํ ํ์ผ์ ๋ง๋ค๊ณ ํด๋น ํ๋ซํผ์์๋ง ์คํํ ์ ์์ต๋๋ค. ๋์ผํ ์ฝ๋์์ ๋ชจ๋ ํน์ ํ๋ซํผ์ ๋ํ ๋์ ์คํ ํ์ผ(์์ฒด ํฌํจ)์ ์ถ๋ ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ ๊ฒ ํ๊ณ ์ถ๋ค๋ฉด.
์๋ฅผ ๋ค์ด .NET Standard 2.0์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋ํ๋ฉด ASP.NET Core(.NET Core)์์ ์ง์๋ฉ๋๋ค.
๋ค; ๊ทธ๋ฆฌ๊ณ ํญ์ ๊ทธ๋ฌ๋ค. ASP.NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํน๋ณํ .NET Core๋ฅผ ๋์์ผ๋ก ํ์ฌ .NET Core์์๋ง ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ASP.NET Core์์ .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ด ๋ฌธ์ ์์ ์ ๊ธฐ๋ ์ด๋ค ๊ฒ์ผ๋ก๋ ์ํฅ์ ๋ฐ์ง ์์์ต๋๋ค.
@benaadams ํจ์ฌ ๋ ์ดํด๊ฐ๋๋ ์ด๊ฒ์ ๋ํด ๋๋จํ ๊ฐ์ฌํฉ๋๋ค.
๋ฏธ๋์ ์ต์ข ๊ฒฐ๊ณผ๋ ASP.NET Core์์ .NET ์ ์ฒด ํ๋ ์์ํฌ์ ๋ํ ์ง์์ ์ค๋จํ๋ ๊ฒ์ด๋ฏ๋ก ๋ค์ ๋ฆด๋ฆฌ์ค์ด๋ ํฅํ ๋ฆด๋ฆฌ์ค์ด๋ .NET Standard์์ "๊ฐ๋ฅํ ๊ฒฝ์ฐ" ๋น๋๋ฅผ ์์ํ๋ ๊ฒฝ์ฐ ํฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํด ์๊ณ ์ถ์์ต๋๋ค. .NET Framework 4.6+๊ฐ ์๋๋ผ ASP.NET Core๋ฅผ ์ฌ์ฉํ๊ณ ๋ค๋ฅธ ๊ณ์ธต๊ณผ ๋ ์ ํธํ๋๋๋ก ํ๋ ๋ฐ ๋์์ด ๋๋ค๋ฉด ๋ฏธ๋์ ๋ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
ํ๋ด์ ๋ด์ผ์ด๋ฏ๋ก ์ฐ๋ฆฌ๋ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค.
@lilpug
์ข์ "๋ค์ด์ด๊ทธ๋จ์ด ์๋"๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฃ์ ์ ์์ต๋๋ค. :),
์๋ฅผ ๋ค์ด, .NET Standard 2.0์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋ํ๋ฉด ์ด๊ฒ์ด ASP.NET Core(.NET Core)์์ ์ง์๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด "NET Standard -> .NET Core -> ASP.NET Core"๋ฅผ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ด๋ .NET Core๊ฐ ์ค๋จ๋๊ณ NET Standard์ ๊ธฐ๋ฐ์ ํ์ฉํ์ง ์์ ๊ฒ์์ ์๋ฏธํฉ๋๋ค.
์ธํฐํ์ด์ค๋ก .NET ํ์ค์ ์ฐธ์กฐํ์ญ์์ค. ์ด ํด๋์ค๋ .NET ์ฝ์ด์ .NET ์ ์ฒด์ 2๊ฐ์ง ํด๋์ค๋ก ๊ตฌํ๋ฉ๋๋ค. ๋ค๋ฅธ ๊ตฌํ๋ ์กด์ฌํฉ๋๋ค(์: xamarin ๋ฐ UWP). ์ด๊ฒ์ ๋ฌผ๋ฆฌ์ ์ธํฐํ์ด์ค๊ฐ ์๋๋ผ ์์ ์ ๋๋ค. ์ด์ _์ธํฐํ์ด์ค_๋ฅผ ๋์์ผ๋ก ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋ฐํ์์ .net ์ฝ์ด์ ํด๋์ค์ด๋ .net ์ ์ฒด์ ํด๋์ค์ด๋ ํด๋น ์ธํฐํ์ด์ค์ ๊ตฌํ์ผ๋ก ์์ ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ netstandard2.0์์๋ .net core, .net full, xamarin, uwp์ ๊ฐ์ ๋ค์ํ ํ๋ซํผ์์ ๊ตฌํ ๋๋ API ์ธํฐํ์ด์ค๊ฐ ์ ์๋์์ต๋๋ค. ๋ฐ๋ผ์ netstandard2.0๊ณผ ํธํ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฆ, ํด๋น ํ์ค API ์ ์์ ์๋ API ๋ง ์ฌ์ฉํ๋ฏ๋ก ํด๋น ์ธํฐํ์ด์ค๊ฐ ๊ตฌํ๋ ๋ชจ๋ ํ๋ซํผ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์คํ๋ฉ๋๋ค.
ASP.NET core 2.0์ด netstandard2.0๊ณผ ํธํ๋๋ค๋ ๊ฒ์ netstandard2.0์ API๋ง ํ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฏ๋ก ASP.NET core 2.0์ netstandard2.0์ด ๊ตฌํ ๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋ฉ๋๋ค.
(ํธ์ง) drats, @benaadams ๊ฐ ์ ๋ฅผ ์ด๊ฒผ์ต๋๋ค.
.NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ .NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ @lilpug ๋ ๋ชจ๋ ๋ฌธ์ ๊ฐ ์๊ณ ๋ฏธ๋์ ๋๋นํ ์ ์์ต๋๋ค.
์ ๊ธฐ๋ ์ฐ๋ ค๋ ํ์ฌ .NET Standard์ ํธํ๋์ง ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ์ฌ๋๋ค์ ์ํ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ .NET Core 2.0์์ ์คํํ ์ ์์ต๋๋ค.
ASP.NET Core ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ .NET Core 2.0 ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ง๋ค์ด์ง๋ฉด ์ ์ฒด ํ๋ ์์ํฌ์์ ์คํํ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค(.NET Standard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ณ์ ์ฌ์ฉํ ์ ์์).
ํผ๋๋ฐฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ์ฃผ์ ๊ด์ฌ์ฌ๋ ์ฒซ ๋ฒ์งธ ์ค๋ ๋๊ฐ ๋ค์๊ณผ ๊ฐ์ด ์์๋์๋ค๋ ๊ฒ ์ ๋๋ค.
์ค๋ ์ผ์ฐ ๋๋ถ๋ถ์ ASP.NET Core 2.0 ํจํค์ง๋ netstandard1.* ๋ฐ net4* ๋์ netcoreapp2.0์ ๋์์ผ๋ก ์ ๋ฐ์ดํธ๋์์ต๋๋ค.
.NET Full Framework๋ฟ ์๋๋ผ .NET Standard์ ๊ธฐ๋ณธ ๊ณ์ธต๋ ์ญ์ ํ๋ ๊ฒ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์๋ค๋ ์ฌ์ค์ด ๊ฑฑ์ ์ค๋ฌ์ ์ต๋๋ค.
์ ๋ฆฌํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค ๐
์ฌํ์ ๋ํด ๋ด๊ฐ ์ง์งํ๊ฒ ์ค๋ช ํ๊ณ ์ถ์ ๊ฒ์ด ์์ต๋๋ค.
ํ์ด ๋น๋ ์ ์ ๋ง์ง๋ง ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋์ ASP.NET Core 2.0 ๋ฏธ๋ฆฌ ๋ณด๊ธฐ๊ฐ .NET Standard 2.0 ์ธ๋ถ์ ์๋ API๋ฅผ ํ์ฉํ์ฌ .NET Framework์์ ์คํ๋์ง ์๋๋ค๋ ์ฌ์ค์ด ๋ฐํ์ก์ต๋๋ค.
Kestrel๊ณผ ๊ฐ์ด netstandard1.3
๋ฐ net46
๋ฅผ ํ๊ฒํ
ํ๋ ๊ฒฝ์ฐ(๋ค๋ฅธ ํจํค์ง๋ ์ ์ฌํ ํ๊ฒ์ ๊ฐ์ง). ".NET Standard 2.0 ์ธ๋ถ์ API ํ์ฉ"์ ์ด๋ป๊ฒ ๋ฉ๋๊น?
AFAIK, netstandard2.0
๋ netstandard1.3
_and_ net46
์ ์์ ์งํฉ์ด๋ฏ๋ก API๋ฅผ ์ฌ์ฉํ์ฌ ์คํ์ ๋ฐฉํดํ๋ ์ํฉ์์ ์ด๋ป๊ฒ ๋๋ ์ ์๋์ง ํ์ธํ๊ธฐ ์ํด ๊ณ ์ฌํ๊ณ ์์ต๋๋ค. .NET ํ๋ ์์ํฌ์์. ๊ทธ ํ๋ก์ ํธ๋ ์ด๋ป๊ฒ ์ปดํ์ผ๋ ๊น์? ์ข์ต๋๋ค. ๋ช ๊ฐ์ง ์ถ๊ฐ API๊ฐ ์๋ ๋ณ๋์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์๋ ์์ง๋ง ์ด๋ฌํ ํจํค์ง๋ฅผ ์ฐธ์กฐํ๋ ค๋ฉด ๋ชจ๋ ๋์ ํ๋ ์์ํฌ๋ฅผ ์ง์ํด์ผ ํฉ๋๋ค.
ํ์คํ bait-n-switching ๋ฐ ์ฐธ์กฐ ์ด์ ๋ธ๋ฆฌ ๋ฑ์ ๋ํด ๋ญ๊ฐ๊ฐ ์์ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์์ ์ดํดํ์ง ๋ชปํ๋ ๊ฒ์ ๋๊น, ์๋๋ฉด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋๊ธ์ด ์ด๊ฒ์ด ๊ฒฐ์ฝ ์ผ์ด ์๋ ์ฒํ๋ ๋ฐฉ๋ฒ์ผ ๋ฟ์ ๋๊น? ๐
๋ํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ง์ ์ ์ด๋ฌํ ๋ณ๊ฒฝ์ ์๋๋ฅผ ํ์๊ฐ ์์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? .NET Framework๋ ํ ์คํธ ๋งคํธ๋ฆญ์ค์ ์ผ๋ถ๊ฐ ์๋๋๊น?
@adrianlmm ๊ณ ๋ง์ ์น๊ตฌ.
์ด๊ฒ์ ๋ ๋ง์ ํผ๋์ ์ผ๊ธฐํ๋ ์ง์ ์ฌ๋ถ์ ๋ํ ์๊ฒฌ์ ์ข ๋ฃํด์ผ ํฉ๋๋ค. ๋ง์ํ์ ๋๋ก ์ด๋ฒคํธ ๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ์ต๋๋ค
๊ทธ๋ฆฌ๊ณ ์ด ์ค๋ ๋๋ฅผ ์ฒ์ ๋ณด๋ ์ฌ๋์ด ์ด ๊ธด ์ค๋ ๋๋ฅผ ๋ชจ๋ ์ฝ์ ํ์๊ฐ ์๋๋ก ์ฌ๊ธฐ์ ๋ง์ง๋ง ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์. ๋์ ์ด๋ฒคํธ์ ๋ํ ๋งํฌ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
@khellang
@benaadams ๊ฐ ์๊ณ ์์ ์๋ ์์ต๋๋ค.
๋๋ ๊ทธ๊ฐ ์ฝ์ด ์ธ๋ถ์์ ์๋ํ์ง ์๋ ํญ๋ชฉ์ ํฌํจํ๋ ์ผ๋ถ pull ์์ฒญ(์๋ง๋ ์ด๋ฏธ ๋ณํฉ๋์์ต๋๊น?)์ ๊ฐ์ง๊ณ ์๋ค๊ณ ํ์ ํฉ๋๋ค.
@khellang ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํจ PR๊ณผ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ค๋ช ์ด ์์ ํ ์ผ์นํ์ง ์์ต๋๋ค.
์ฌ์ค์ด ์ค์ ๋ก ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ค๋ช
๋ ๋๋ก๋ผ๋ฉด(์ต์ข
์คํ, ์์ ๋ณ๊ฒฝ) #if NET46
์ฝ๋ ๋ก๋๊ฐ ์ด ๋ณ๊ฒฝ์ ์ผ๋ถ๋ก ์ ๊ฑฐ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์ด ๋ณ๊ฒฝ์ ์ผ๋ถ๋ก
#if NET46
์ฝ๋ ๋ก๋๊ฐ ์ ๊ฑฐ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
@willdean ๋ค, ์ข์ ์ง์ ์ ๋๋ค. ๋์ ํ๋ ์์ํฌ๋ง ๋ณ๊ฒฝํ๋ฉด ์์์ ์ ์๊ฐ ์ฌ๋ผ์ง๊ณ ์ฝ๋(์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ์์) ยฏ\_(ใ)_/ยฏ
๊ทธ ๋์ ๊ณต์์ ์ธ ๊ณต์์ ์ฐพ๋ ์ฌ๋๋ค์ ์ํด @migueldeicaza ๋ .Net Standard 2(๋ฐ๋ผ์ NetFx)์ ASP.NET Core 2๊ฐ ๊ณต์ ๊ณํ์์ ๋ฑ๋ก์ ํตํด ํ์ธํ ๊ฒ ๊ฐ์ต๋๋ค. https://www.theregister.co .uk/2017/05/11/microsoft_backtracks_we_are_going_to_support_net_framework_with_aspnet_core_20/
.NET Framework์์ ํธํ์ฑ ์ ์ง์ ๊ด๋ จ๋ ์ ์ถฉ์์ ์ด๋ป์ต๋๊น? ๊ทธ๋ฌ๋ฉด ASP.NET Core๊ฐ ์ง์ฐ๋๊ฑฐ๋ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๊น?
de Icaza๋ ์กฐ๊ฑด๋ถ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ "ํ์ ํ๊ณ ์ฑ๊ณผ๋ฅผ ์ถ๊ตฌํ๋ ๊ฒ์ด ๋ต์ ๋๋ค. ๊ณตํต ๋ถ๋ชจ๋ฅผ ๋ชฉํ๋ก ํ๋ฉด์ ํ ์ ์๋ ์ผ์ ์คํํธ๋ผ์ด ์์ต๋๋ค. ๋น์ ์ ํญ์ ์๋ก์ด ๊ฒ์ ๋ฐํ ์ ์์ต๋๋ค.โ ์ด๋ PC์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค๋๋ ํ๋์จ์ด์์ ๊ณ์ ์คํ๋๋ฉด์๋ ์ต์ CPU ๋๋ GPU ํ์ ์ ์ง์ํ ์ ์๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ฌํฉ๋๋ค. "CPU์ ์๋ก์ด ๊ธฐ๋ฅ์ด ์์ผ๋ฉด ์ด๋ฅผ ์ฌ์ฉํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ด์ ์ฝ๋๋ก ํด๋ฐฑํฉ๋๋ค."
์ด์ ๋๊ธ์ ๋ช ํํ ํ๊ธฐ ์ํด ์์ด๋ฒ๋ฆฐ ๊ฒ ๊ฐ์์ Angular 2๋ฅผ ์ธ๊ธํ ์ด์ ๋ ์ด์ ๋๊ธ์ด Angular 2๋ฅผ ์ธ๊ธํ๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ํ๋ฅญํ ๋น์ ๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฆ, Angular ํ์ด AngularJS๋ฅผ ๋น๋ํ๋ฉด์ ๋ฐฐ์ด ๊ฒ์ ES2016 ๋ฐ TypeScript์ ํํ๋ก ์ฌ์ฉํ ์ ์๋ ์๋ก์ด ๊ธฐ์ ์ ์ ์ฉํ๊ณ ๊ธฐ์กด์ ๋๋ฆฐ ํ๋ถํ ๋ธ๋ผ์ฐ์ ๋ฐ ๋ชจ๋ฐ์ผ ๊ฒฝํ์ ๊ตฌ์ถํ๋ ๋ฐ ๊ธฐํ๊ธ์์ ์ผ๋ก ๋ ๋์ _new_๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ํฌ๋ฐํ๊ณ CPU ์ง์ฝ์ ์ธ ์ฝ๋์ ๋๋ค. ๊ทธ๋ค์ ์ฑ๊ณตํ๊ณ Angular๊ฐ ๋ ์ข์ต๋๋ค.
์์ ํ .NET ํ๋ ์์ํฌ๋ ๊ทธ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ์ ๊ฐ์ฅ ์ข์ ๊ฒ์ ์๋๋๋ค. ์ ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ, ๊ณ ์ฑ๋ฅ, ๋น์ฉ์ ๋ฏผ๊ฐํ ๋ถ์ฐ ์๋น์ค ์ธ๊ณ์๋ ์ ํฉํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด .NET Core๊ฐ ๊ตฌ์ถ๋ ์ธ๊ณ์ด๋ฉฐ ๋์์์ด ๋ณํํ๊ณ ์์ต๋๋ค. ASP.NET Core๋ TechEmpower Round 14 ์์ 10์์์ 15์๋ก ํ๋ฝํ์ต๋๋ค. ์ง๋ ๋ช ๊ฐ์ ๋์ ์๋ก์ด ๊ฒ๋ค์ด ๋ฑ์ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋์, ๋ฒค์น๋งํฌ๊ฐ ์ ๋ถ๋ ์๋์ง๋ง ์ค์ํ๋ฉฐ ๊ฒฝ์๋ ฅ์ด ์ค์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๋ฌ๋ถ, ์ด๋ฒ ์งํ์ ์๋ฅผ ํ๋ช
ํ๊ฒ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค. .NET Core 2.0, NetStandard2 ๋ฐ ๊ธฐ์กด .NET ํจํค์ง์์ ํฅ์๋ ํธํ์ฑ(๋ ๋ง์ ์ค์ netstandard
ํจํค์ง ๋ฆด๋ฆฌ์ค)์ด ์ ์ฒด .NET์์ Core๋ก ์ด๋ํ ์ ์์์ ์๋ฏธํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ์ญ์์ค. ๊ทธ๋ฌ๋ ์๋ฐฑ๋ง ์ค์ ๋ ๊ฑฐ์ ์ฝ๋๊ฐ ์ฌ์ ํ ์ต์
์ด ์๋๋ผ๋ ๊ฒ์ ์๋ฏธํ๋ค๋ฉด ์๋ง๋ ๊ทธ๊ฒ์ ์ ์ด ๋น์ ์๊ฒ ASP.NET 4.7์ ๋จธ๋ฌผ๋ผ๊ณ ๋งํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
@tbprince
์ด ์ค๋ ๋๊ฐ UTF8 ๋ฌธ์์ด์ด ์๋๋ผ ์ฌ๋๋ค์ด ์๊ณ๋ฅผ ์ํด ์ด๋ฌํ ๊ธฐ์ ์ ์์กดํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ๊ฐ๋ฅด์ณ์ฃผ์ง ์์๋ค๋ฉด ์์งํ...
ํต์ฐฐ๋ ฅ ์๋ ๊ฒ์๋ฌผ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ํนํ ์์ ๋ผ์ธ์ IMHO๊ฐ ๋งค์ฐ ํต์ฐฐ๋ ฅ์ด ์์ต๋๋ค.
@willdean Asp.Net Core๊ฐ ๋ชฉํ๋ก ์ผ์ ๋ ๋ฌผ๊ฑด์ด ์ ์ ํ netstandard2x
ํ๋ซํผ์ ์์ ๊ฒ์ด๋ผ๋ ๊ธฐ๋๊ฐ ์์ ์ ์์ต๋๋ค.
@FransBouma
์ฝ๊ฐ ์์ด๋ฌ๋ํ๊ฒ ๋ณด์ ๋๋ค. ๋๋ ๊ทธ๊ฒ์ ๋ฐ์๋ค์ธ๋ค. ํ์ง๋ง ๋๋ ์์ฒญ๋๊ฒ ์ง์งํ๋ค.
@stefanolson @alexwiese @yaakov-h XAML Standard 1.0์ Build https://github.com/microsoft/xaml-standard ์์ ๋ฐฉ๊ธ ๋ฐํ๋์์ต๋๋ค.
@markrendle ์ Mark๋ฅผ ์ฌ๋ํ์ง๋ง ์ฌ๊ธฐ์ ํฐ ๊ทธ๋ฆผ์ ๋์น๊ณ ์์ต๋๋ค. TechEmpower ๋ฒค์น๋งํฌ๋ ํฐ ํ์์ ๋ณด๋ฉด ์ฌ์ํ๊ณ ํ๋ฃจ์ ์๋น ๋ถ๋ถ์ NETFX ์ฝ๋๋ฅผ ์ฑ๋ฅ ์ต์ ํํ๋ ์์ ์ผ๋ก ๋ณด๋ด๋ ์ฌ๋์ผ๋ก์ ๋งํ๊ณ ์ถ์ต๋๋ค. ASP.NET Core ํ์ ๋ค๋ฅธ ๊ฒฝ์ ๊ธฐ์ ๊ณผ ์งํ ์ํฉ์ ๋น๊ตํ๋ ์๋จ์ผ๋ก ์ด๋ฅผ ๊ณ ๋ คํ ์ ์์ผ๋ฉฐ Node.JS์ ๊ฐ์ ๋ค๋ฅธ ํ๋ซํผ์์ .NET Core๋ก ์ ์ ๊ท ์ธ๋ ฅ์ ๋์ด๋ค์ด๋ ๋ฐ ์ํฅ์ ๋ฏธ์น ์ ์์ง๋ง ์ฑ ์์ด ์๋ ๊ฐ๋ฐ์์๊ฒ๋ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ํ์ฌ IIS์ Windows์์ ์คํ๋๋ ๋์ ๋น์ฆ๋์ค ๊ฐ์น๋ก ์์ฒ์ต ๋ฌ๋ฌ๋ฅผ ์ฐฝ์ถํ๋ ๊ฒ์ ์ฑ๋ฐฐ๊ฐ ์๋๋ผ ์ข์ ๊ธฐ๋ฅ์ผ ๋ฟ์ ๋๋ค.
๊ฒ๋ค๊ฐ .NET์ ์ด๋ฏธ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ์ ๋๋ค. ๊ทธ ์๋ฏธ๊ฐ ๋ฌด์์ด๋ ๊ฐ์ ์ ๋ ๋๊ท๋ชจ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ (ํ๋ฃจ์ ์์ต ๊ฑด์ ์์ฒญ)์ ์คํํ์ผ๋ฉฐ ์ด๋ฅผ ์ํํ๋ ๋ฐ Docker๋ Linux๊ฐ ํ์ํ์ง ์์์ต๋๋ค. ์ด ์ค๋ ๋์๋ ๋ด๊ฐ ์์ฌํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ํฐ ๊ท๋ชจ์ ์์ ์ ์ํํ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๋ ๋์ ์ฑ๋ฅ(ํธ์ง: ๋ ๋์ ๋ฐฐํฌ ํ๊ฒฝ) ์ธก๋ฉด์์ .NET Core๊ฐ ์ ๊ณตํ๋ ๊ฒ์ ์ํ์ง ์๋๋ค๋ ์๋ฏธ๋ ์๋์ง๋ง ์ค๋๋ ๊ธฐ์ ์ ์ผ๋ก ๊ทธ ๊ท๋ชจ์ ๋๋ฌํ๋ ๊ฒ์ ๋ง์ ์ ์๋ ๊ฒ์ ์์ต๋๋ค.
ํ๋ฃจ์ ์์ต ๋ฌ๋ฌ๋ฅผ ์์ง์ด๋ ๊ธ์ต ์ ํ๋ฆฌ์ผ์ด์ , ํ์์๊ฒ ์น๋ฃ๋ฅผ ์ ๊ณตํ๋ ์๋ฃ ์ ํ๋ฆฌ์ผ์ด์ , ์๋์ง ์์ฐ ๋ฐ ์๋น๋ฅผ ๊ด๋ฆฌํ๋ ์๋น์ค, ์ด์ก ์์คํ ์ ๋ํ ์ค์๊ฐ ์์ ๋ชจ๋ํฐ๋ง์ ๊ตฌ์ถํ๋ ASP.NET / NETFX ๊ฐ๋ฐ์์๊ฒ ์๋ ค์ฃผ์ญ์์ค. ์ธ์์ ๊ทธ๋ค์ "๋ ๊ฑฐ์" ์ฝ๋๋ฅผ ๋ฒ๋ฆฌ๊ณ ๋ค์ ์์ํด์ผ ํฉ๋๋ค. ์ด ๊ฐ๋ฐ์๋ค์ ASP.NET ํ์ด ์ฒ์์ ๊ณ ์ฉ๋ ์ด์ ์ ๋๋ค. ๊ทธ๋ค์ MSDN ๋ผ์ด์ ์ค, ๋๊ท๋ชจ Azure ์ํฐํ๋ผ์ด์ฆ ๊ณ์ฝ, ๋๊ท๋ชจ Office ๊ตฌ๋ ๋ฐ ์์ฑ, ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ์๊ธ์ ์ง์ํ๋ ๋๊ท๋ชจ SQL Server ๋ฐฐํฌ๋ฅผ ๊ตฌ๋งคํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ์ ์์์ ๋๋ค.
์ด ์ฌ๋๋ค์ด ์ค๋ ๋์์ ๋งํ๋ ๊ฒ์ "์ด๋ค ์์ผ๋ก๋ , ๋ชจ์์ด๋ ํํ๋ก๋ ์์ ์ด์ต์ ์ํด ์ด ์ ๋์ ๋ณํ๋ฅผ ๊ฒฝ์์ง์๊ฒ ํ๋งคํ ์๋ ์์ต๋๋ค."์ ๋๋ค. ์ด๋น ์์ฒญ ์ฒ๋ฆฌ๋์ด 10๋ฐฐ ํฅ์๋๋ ๊ฒ์ ๋น์ฆ๋์ค ํ๋์ ์ค๋จ๊ณผ ๋น๊ตํ ๋ ์ข์ ์ ์ถฉ์์ด ์๋๋๋ค. ํนํ ๋ ๊ธฐ์ ์ ๊ฒฉ์ฐจ๊ฐ ์ค๋๋ ๊ณผ ๊ฐ์ ์ํฉ์์ ๊ฐ์๊ธฐ ํ๋ซํผ์ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. @NickCraver ๋ ์ด ์ค๋ ๋์์ ํด๋น ๋ฌธ์ ๋ฅผ SO์ ๋ํด ์์ธํ ์ค๋ช ํ์ต๋๋ค. ๊ฒฝ์ ์ ์ธ ํ๋ซํผ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋น์ฆ๋์ค์ ์ง์์ ์ธ ๊ด์ฌ๊ณผ ๋ณํํ์ฌ ์ํ๋์ด์ผ ํฉ๋๋ค. ์ด ๊ฐ๋ฐ์๋ค์ Luddites๋ ๋ฐ๋ณด๊ฐ ์๋๋๋ค. ๊ทธ๋ค์ ๊ธ์ฌ๋ฅผ ์ง๋ถํ๋ ๊ธฐ์ ์ ํ์ค์ ์ ์ฝ์ ๋ฐ๊ณ ์์ผ๋ฉฐ, ์์ ์ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ณ ๊ฐ์ ํด๋น ๊ธฐ์ ๊ณผ ๊ณ ๊ฐ์ ์ํ ์์ฒญ๋ ์ด์ ์์ด ์ํํธ์จ์ด๋ฅผ ํ๋ซํผ ๋ณ๊ฒฝํ๊ธฐ ์ํด ๋ช ๊ฐ์ ๋๋ ๋ช ๋ ์ ์ฌ๋ ๊ฒ์ ์ฉ๋ฉํ์ง ์์ ๊ฒ์ ๋๋ค.
์ฌ๊ธฐ์๋ .NET์ ๊ณผ๊ฑฐ์ ์ํด ์ ์ฝ์ ๋ฐ์ง ์๋ ๋ฏธ๊ฐ๋ฐ ๋ฏธ๋๋ฅผ ์ํ๋ ์ฌ๋๋ค ๊ณผ ๊ทธ๊ฒ์ ๊ฐ์ง ์ ์๊ธฐ๋ฅผ ์ํ์ง๋ง ์ง๊ธ ๋น์ฅ์ ๊ฒฝ์ ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ์ง ์๋ค๋ ๊ฒ์ ์ธ์ํ๋ ์ฌ๋๋ค์ ๋ ์ง์ ์ฌ์ด์ ๋ถ๋ช ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ํ์ ๊ทธ๋ฃน์ ์ด๋ฏธ ๋ ผ์์์ ์น๋ฆฌํ์ผ๋ฉฐ .NET ํ๋ซํผ์ ๊ฐ์ฅ ํฐ ์๋น์๋ฅผ ๊ตฌ์ฑํ๋ ์ฌ์ฉ์์ด๊ธฐ ๋๋ฌธ์ ๋น์ฐํ ๊ทธ๋ ์ต๋๋ค. ์๋ก์ด ๊ธฐ์ ์ ๋น ๋ฅด๊ฒ ์ฑํํ ์ฌ์ ๊ฐ ์๋ ๋ ๋ฆฝ ์ด์์๋ ์ฐ๋ฆฌ์ ๊ฐ์ ๋ฐฐ์ ๊ฐํ๊ฒ ๋ ๊ฒ์ด์ง๋ง Visual Studio, Code, MSFT์ ๋ฐ์ด๋ OSS ๋๊ตฌ ๋ฑ์ ๋ฌด๋ฃ ๋ฒ์ ์ ๋ํ ๋๊ฐ๋ก ์ง๋ถํ๋ ๋๊ฐ์ ๋๋ค. ์.
๊ธฐ์ /NETFX ์ฌ์ฉ์๊ฐ ๋ ๋์ ๋ฒค์น๋งํฌ์ ์ด๋ฆ์ผ๋ก ์ผ์ข ์ ๊ธฐ์ ์ ์์์ฑ์ ๊ตด๋ณตํ๋ ๊ฒ์ ์คํ ๋ถ๊ฐ๋ฅํ ์๊ตฌ์ ๋๋ค. MSFT๊ฐ ์ฉ๊ฐํ ์ผ ์ ํ๊ณ NETFX๋ฅผ NET Core์ ๋ณ๋ ฌ๋ก ๋ ์ข๊ฒ ๋ง๋๋ ๊ฒ์ด ๋ ๋ซ์ต๋๋ค . ๊ณ ๊ฐ์ด ์ด ์ค๋ ๋์์ ์๊ตฌํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
.NET์ ํฐ ํ ํธ์ด๋ฉฐ ์ ๋ Microsoft๊ฐ .NET Core ๋ฐ .NET Standard๋ฅผ ํตํด ์ด๋ฅผ ๋ ํฌ๊ฒ ๋ง๋ค๊ธฐ ์ํด ํ๋ ๋ ธ๋ ฅ์ ๊ฐํํ๋ฉฐ ์ด๋ฌํ ๋ ธ๋ ฅ์ ์ปค๋ฎค๋ํฐ์์ ์ฐฌ์ฌ๋ฅผ ๋ฐ๊ณ ์ง์ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ 15๋ ์ด์ NETFX(๋ฐ ํด๋น ์ฌ์ฉ์)๋ฅผ ์ฑํํ ํ ์๋๋ฅด์ง ์๊ณ ๋ฒ๋ ค์ผ ํ๊ณ ์ํ์ ธ์ผ ํ๋ ์ผ์ข ์ ๋ถํธํ ์ ์ฐ์ผ๋ก ๋ฌด์ํ๋ ๊ฒ์ ๊ธฐ๊ปํด์ผ ์ด์กฐ์ ๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ๋ ํ๋ซํผ์ด ๊ฐ๋ผ์ง๋ ๊ฒ์ด ์ด๋ช ์ด๋ผ๋ฉด ํด๋น ๊ฐ๋ฐ์์ ํ๋ ฅํ์ฌ ๊นจ๋ํ๊ณ ์ ์ง์ ์ธ ๋ง์ด๊ทธ๋ ์ด์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ASP.NET Core / .NET Core๊ฐ .NET๊ณผ์ ๊ด๊ณ ์์ด ์์ ํ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ธ๋๋ํ๋๋ฉด ๊ฐ์ฅ ์ข์์ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋์ Microsoft๋ฅผ ์ง์ํ๊ณ ๊ทธ๋ค์๊ฒ๋ ์ฑ ์์ ๋ฌผ๋ฆฝ์๋ค.
@๋งํฌ๋ ๋ค
์์ ํ .NET ํ๋ ์์ํฌ๋ ๊ทธ ์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ์ ๊ฐ์ฅ ์ข์ ๊ฒ์ ์๋๋๋ค. ์ ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ, ๊ณ ์ฑ๋ฅ, ๋น์ฉ์ ๋ฏผ๊ฐํ ๋ถ์ฐ ์๋น์ค ์ธ๊ณ์๋ ์ ํฉํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด .NET Core๊ฐ ๊ตฌ์ถ๋ ์ธ๊ณ์ด๋ฉฐ ๋์์์ด ๋ณํํ๊ณ ์์ต๋๋ค. ASP.NET Core๋ TechEmpower Round 14์์ 10์์์ 15์๋ก ํ๋ฝํ์ต๋๋ค. ์ง๋ ๋ช ๊ฐ์ ๋์ ์๋ก์ด ๊ฒ๋ค์ด ๋ฑ์ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋์, ๋ฒค์น๋งํฌ๊ฐ ์ ๋ถ๋ ์๋์ง๋ง ์ค์ํ๋ฉฐ ๊ฒฝ์๋ ฅ์ ๊ฐ์ถ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ฌ๋ฌ๋ถ, ์ด๋ฒ ์งํ์ ์๋ฅผ ํ๋ช ํ๊ฒ ์ฌ์ฉํ์๊ธฐ ๋ฐ๋๋๋ค. .NET Core 2.0, NetStandard2 ๋ฐ ๊ธฐ์กด .NET ํจํค์ง์์ ํฅ์๋ ํธํ์ฑ(๋ ๋ง์ ์ค์ netstandard ํจํค์ง ๋ฆด๋ฆฌ์ค)์ด ์ ์ฒด .NET์์ Core๋ก ์ด๋ํ ์ ์์์ ์๋ฏธํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ์ญ์์ค. ๊ทธ๋ฌ๋ ์๋ฐฑ๋ง ์ค์ ๋ ๊ฑฐ์ ์ฝ๋๊ฐ ์ฌ์ ํ ์ต์ ์ด ์๋๋ผ๋ ๊ฒ์ ์๋ฏธํ๋ค๋ฉด ์๋ง๋ ๊ทธ๊ฒ์ ์ ์ด ๋น์ ์๊ฒ ASP.NET 4.7์ ๋จธ๋ฌผ๋ผ๊ณ ๋งํ๋ ๊ฒ์ผ ์ ์์ต๋๋ค.
๋๊ฐํ๊ฒ ํ๋ํ์ง ๋ง๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ฏธ๋์ ๋ ธ๋ ฅ์ ์ด๋์ ๋ฐ์ณ์ผ ํ๋์ง ์ง์ํ์ง ๋ง์ญ์์ค. ์ผ๋ง๋ ๋ง์ ์๊ฐ, ๋ ธ๋ ฅ, ํ์ ๋ฐ ์๊ณ๊ฐ ๊ฑธ๋ ค ์๋์ง ๋ชจ๋ฆ ๋๋ค. ๋ชจ๋๊ฐ ์์ ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ทํ๋ณด๋ค ๋ ์ ์๊ณ ์ด๋๋ฅผ ๋ฐ์ณ์ผ ํ๋์ง ๋ชจ๋ฆ ๋๋ค. ๋ก๋๋งต์ด ๋ช ํํด์ง๋ฉด ๊ฐ๋ณ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆด ๊ฒ์ ๋๋ค.
ASP.NET ํ์ ๊ณต์ ๋๋ณ์ธ์ ์ค๋น๊ฐ ์๋ฃ๋๋ฉด ๊ณต์ ๋ฐํ์ ์ฝ์์ ํ ๊ฒ์ ๋๋ค. ์ ํํ ํ๋ซํผ์ ๋ฏธ๋ ๋ฐฉํฅ์ ๋ํ ๋ ๋ช ํํ ๊ทธ๋ฆผ์ ์ป์ ํ ๋ชจ๋ ์ฌ๋์ด ์ค์ค๋ก ๋ฌด์์ ํด์ผ ํ ์ง ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ์ฒ๋ผ.
๋น์ ์ ๋จ์ผ ๋ฒค์น๋งํฌ๋ฅผ ๋ณด๊ณ ์ค๋ ๋์๊ณ ๊ทธ๊ฒ์ด ์ ๋ขฐ ํ๊ดด, ๋ถํ์ค์ฑ ์์ฑ, ๊ธฐ์กด ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๋๋ถ๋ถ๊ณผ 15๋ ์ ํฉ๋ฆฌ์ ์ธ ์ธ์ด ๋ฐ ํ๋ซํผ ์งํ ํฌ๊ธฐ์ ๋ํ ์ผ์ข ์ ์ ๋นํ๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ํคํ ์ฒ๊ฐ ํ์ํ ์ ์์ง๋ง ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ํฌ์ํ๋ฉด์ ์ต๋ ์ฑ๋ฅ์ ๋ฐํํ๋ ๊ฒ์ด ์ ๋ถ๋ ์๋๋๋ค. ๊ฐ์ฅ ๋น ๋ฅธ ํ๋ ์์ํฌ๋ ๋๋ถ๋ถ ์๋ ค์ง์ง ์์์ผ๋ฉฐ ์์ 3๊ฐ ํ๋ ์์ํฌ๋ C/C++๋ก ์์ฑ๋์์ต๋๋ค. ๊ฐ๋ฅํ ๊ฐ์ฅ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ํ๋ค๋ฉด C/C++์์ ์ ๊ตญ์ ๊ฑด์คํ์ธ์. .NET Core๋ ์ ๋ ์ ์์ ๋๋ฌํ์ง ๋ง์ญ์์ค. Kestrel์ ์ฌ์ ํ โโ์ญ๋ฐฉํฅ ํ๋ก์ ๋ค์์ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด ํ๋ก์๋ ๋ฏธ๋ฏธํ ๊ฐ์ ์ฌํญ์ ๊ด๊ณ์์ด ๋ฌด์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ๋ ๋นจ๋ฆฌ ์๋ํ ๊ถ๋ฆฌ๋ฅผ ์ป๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ๋ ๋น ๋ฅธ ์ฑ๋ฅ์ ์ํ์ง๋ง ๊ฐ์น๋ฅผ ์ฐฝ์ถํ๊ณ ์๋ฃจ์ ์ ์ ๊ณตํ๊ธฐ๋ฅผ ์ํฉ๋๋ค. ํ๋ซํผ์ ๋๋ถ๋ถ์ ํ๋ ์์ํฌ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ ์๋จ์ด๋ฉฐ, ๊ทธ ๊ฐ์น๋ฅผ ํจ์ฌ ๋ฅ๊ฐํ๋ ๋ฐฐ๊ฐ๋๋ ๋ถ๊ฐ ๊ฐ์น ์๋ฃจ์ ์์ฑ์ ์ฉ์ดํ๊ฒ ํ๋ ์กฐ๋ ฅ์์ ๋๋ค. ํ๋ซํผ ์์ฒด.
์์ผ๋ก ๋์๊ฐ ์ ์๋ ์ต์ ์ ๊ธธ์ ASP.NET ํ์ด ์ฐ๋ฆฌ๋ฅผ ์ํด ์ค๋นํ ๋ชจ๋ ๊ณํ์ ๋ฐ์๋ค์ด๊ณ ํ๋ซํผ์ ์์ผ๋ก ๋์๊ฐ๋๋ก ๋๊ธฐ ์ํด ์ฐ๋ฆฌ ์์ ์ ์ญํ ์ ํ๋ ๊ฒ์ ๋๋ค.
ํนํ ๋ด ์์ฉ ํ๋ก๊ทธ๋จ์ด Active Directory์ ์์กดํ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ํด ๋ง์ ์ฐ๋ ค๊ฐ ์์ต๋๋ค. Active Directory ์ก์ธ์ค๋ฅผ ์ํ .NET Core ์๋ฃจ์ ์ด ํ์ฌ ์๊ฑฐ๋ ์์ผ๋ก๋ ์์ ๊ฒ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
@twilliamsgsnetx Active Directory๊ฐ ์ต๋๋ค. ์์ 100๊ฐ ๋๊ธ์๋ ์ข์ ๊ธ์ด ์์ต๋๋ค.
@hallator ๋ค, ๋ฐฉ๊ธ Scott์ ๊ฒ์๋ฌผ์ ์ฝ๊ณ ์์์ต๋๋ค. ์ข์ ์ผ... ๋ง์ดํฌ๋ก์ํํธ๊ฐ ๋ง์ดํฌ๋ก์ํํธ ์ ํ์ ๋ํ ์๋ฃจ์ ์ ์ ๊ณตํ์ง ์๋ ๊ฒ์ ์ถ๊ตฌํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์์ต๋๋ค. ํค.
๊ฐ์ฌ ํด์! :+1:
@hallatore ์ต๊ทผ ์ถ์๋ Preview์์ Active Directory ์ง์์ด ๊ฐ๋ฅํ์ง ์๊ณ ๊ณ์ญ๋๊น? ์๋๋ฉด ์์ง ์ฌ๋ฆ ์ค์ผ๋ก ์์ ๋์ด ์์ต๋๊น? AD ํตํฉ์ด ํ์ํ ์ ๊ท ํ๋ก์ ํธ๊ฐ ์๋๋ฐ Core๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
@adam3039 , .NET Framework ์์ ์์ ์๋ ๊ฒฝ์ฐ ํ์ฌ Core 1.x์์ AD๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. System.DirectoryServices๋ ๋์ค์ ๋ค์ .NET Core 2.x ๋ฏธ๋ฆฌ ๋ณด๊ธฐ์์ ์ ๊ณต๋ ๊ฒ ๊ฐ์ต๋๋ค.
@snickler ์ค๋ช ๊ฐ์ฌํฉ๋๋ค! .NET Framework ์์ ์ Core ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ Azure AD ์ธ์ฆ ์ต์ ๋ง ๋ณด์์ต๋๋ค. ๋ ์กฐ์ฌํ๊ฒ ์ต๋๋ค!
๋ฒค์น๋งํฌ์ ์์ ์ ์์ ์๋๊ฐ ์๋๋ผ ๋์ผํ ํ๋์จ์ด์์ ํจ์ฌ ๋ ๋์ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ ๋ฅ๋ ฅ์ ๋๋ค. ์ด๋ ๋น์ฆ๋์ค ๊ฐ์น ์ ๊ณต๊ณผ ์ง์ ์ ์ผ๋ก ๊ด๋ จ๋ ํจ์ฌ ์ ์ ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ์ ๋๋ฑํ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ํด์๋ฉ๋๋ค. ์ด๋ ํ์ฌ ํ๋์จ์ด ์ค์ ๋๋ ํด๋ผ์ฐ๋ ์ฝ์ ์ 10๋ถ์ 1๋ก ์์คํ ์ ์คํํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋ฟ๋ง ์๋๋ผ .NET Core๋ ์ต์ ํจํด๊ณผ ์ฌ๋ก๋ฅผ ์ง์ํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ ํจ๊ณผ์ ์ผ๋ก ์์ ํ๊ณ , ๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ๊ณ ํ์ ํ๋ฉฐ, ๋น์ฆ๋์ค๋ฅผ ์ํ ๋ ๋ง์ ๋ ๋์ ์๋ฃจ์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
๋๋ ๋ํ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋๋ ๋๋ถ๋ถ์ ์์คํ ์ ๋ํด ํ ๋ฒ์ ํ๋์ ๋ชจ๋๋ฆฌ์ ๋ฉ์ด๋ฆฌ๋ก ๊ฒฌ๊ณ ํ๊ณ ๊ฐ๋ ฅํ ์๋น์ค ์งํฅ ๋๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ก์ ์ ์ ํ๊ฒ ๊ณํ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๊ถ์ฅ๋์ด์ผ ํ๋ค๊ณ ๊ฐ๋ ฅํ ๋ฏฟ์ต๋๋ค. ์ผ๋ถ ํ์ผ์ด๋ ์ฝ๋ ์ค์ ๋ณต์ฌํ์ฌ ์ ํ๋ก์ ํธ์ ๋ถ์ฌ๋ฃ์ ์ ์๋ ๊ฒฝ๋ก๊ฐ ์๋ค๋ ๊ฒ์ ์ ๋ง ์ข์ ์ผ์ ๋๋ค. ๋น์ ์ COBOL์์ 4GL ๋๋ ๋ฌด์์ด๋ ๊ฐ์ ๋ชจ๋ ๊ฒ์ ๋ค์ ์์ฑํด์ผ ํ์ต๋๋ค. ์ด๊ฒ์ด ์ฌ์ ํ ๋ง์ COBOL์ด ์ธ์์ ์ด์ํ๋ ์ด์ ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ต์ ์ ์๋๋ฆฌ์ค๊ฐ ์ค์ ๋ก ์์ ํ Windows ASP.NET ๋ฐ IIS์ ๊ฐํ ๊ฒฝ์ฐ ๋ฐ์ํ ์ ์๋ ์ต์ ์ ์ํฉ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋๋ค. ์ฌ๋ฌ๋ถ์ ๊ณ์ํด์ ์์ผ๋ก ๋์ฌ ๋ฉ์ง C# ํญ๋ชฉ์ ๋ชจ๋ ์ป๊ฒ ๋ ๊ฒ์ด๋ฉฐ .NET Core์ ๋ค์ด๊ฐ๋ ์ด๋ฌํ ๊ฒ๋ค์ ๊ฒฐ๊ตญ ์ฌ๋ฌ๋ถ์๊ฒ ์ ๊ณต๋ ๊ฒ์ ๋๋ค. ๋จ์ง ์กฐ๊ธ ๋ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ ๋๋ค.
@mythz ๋๋ ์ฌ๋๋ค์ด ํด์ผ ํ๋ค๊ณ ์ ์ํ ๊ฒ์ด ์ ํํ ๋น์ ์ด ํด์ผ ํ๋ค๊ณ ๋งํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
@๋งํฌ๋ ๋ค
๋ฒค์น๋งํฌ์ ์์ ์ ์์ ์๋๊ฐ ์๋๋ผ ๋์ผํ ํ๋์จ์ด์์ ํจ์ฌ ๋ ๋์ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ์ ๊ณตํ๋ ๋ฅ๋ ฅ์ ๋๋ค. ์ด๋ ๋น์ฆ๋์ค ๊ฐ์น ์ ๊ณต๊ณผ ์ง์ ์ ์ผ๋ก ๊ด๋ จ๋ ํจ์ฌ ์ ์ ํ๋์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ์ ๋๋ฑํ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ผ๋ก ํด์๋ฉ๋๋ค. ์ด๋ ํ์ฌ ํ๋์จ์ด ์ค์ ๋๋ ํด๋ผ์ฐ๋ ์ฝ์ ์ 10๋ถ์ 1๋ก ์์คํ ์ ์คํํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ๋ฟ๋ง ์๋๋ผ .NET Core๋ ์ต์ ํจํด๊ณผ ์ฌ๋ก๋ฅผ ์ง์ํ๋ฏ๋ก ๊ฐ๋ฐ์๋ ๋ ํจ๊ณผ์ ์ผ๋ก ์์ ํ๊ณ , ๋ ๋น ๋ฅด๊ฒ ๋ฐ๋ณตํ๊ณ ํ์ ํ๋ฉฐ, ๋น์ฆ๋์ค๋ฅผ ์ํ ๋ ๋ง์ ๋ ๋์ ์๋ฃจ์ ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ด๊ฒ์ด .NET Core๊ฐ ์ด๋ฏธ ์ํํ๊ณ ์๊ณ ์ด๋ฏธ ๋ฐ์ด๋ ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์ฑ๋ฅ์ ์ด์ ์ ๋ง์ถ๋ ์ด์ ์ ๋๋ค. ๊ฐ์ฅ ๋น ๋ฅธ C๋ณด๋ค .NET Core 4.2๋ฐฐ ๋ ๋น ๋ฅธ 10๋ฐฐ ๋ ๋์ ์ฌ์ฉ๋ฅ ์์น๋ฅผ ์ด๋์์ ๋์ด์ค๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ์ต์์ ์ซ์๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ ์ค์ ์ํฌ๋ก๋๋ฅผ ์ ๊ณตํ๋ ์ฆ์ ์ด๋ฌํ ์ซ์๊ฐ ์ฃผ๋ณํ๋๊ธฐ ๋๋ฌธ์ ํฐ ์ฐจ์ด๋ฅผ ๋ง๋ค์ง ์์ ๊ฒ์ ๋๋ค. ๋๋ ๋น์ฆ๋์ค ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ค์ํ๊ณ .NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ ์กฐ์ง์ ๋ ๋น ๋ฅธ ์ฑ๋ฅ ์์น๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ค์ํ์ง ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ํธํ์ฑ ๋ฑ
๊ฐ์ฅ ๊ฐ์น ์๋ ์ธํฐ๋ท ์์ฐ์ ๊ฐ์ฅ ๋น ๋ฅธ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋์ ์ธ์ด๋ก ๊ตฌ์ถ๋์์ต๋๋ค. ๋ ์ค์ํ ๊ฒ์ ํ๋ถํ๊ณ ํ๊ธฐ์ฐจ๊ณ ์์ฐ์ ์ด๋ฉฐ ์์ ์ ์ธ ์ํ๊ณ์ ๋๋ค. ๊ทธ๋ค์๊ฒ ํ์ฅ์ฑ์ ์์ ์ฑ๋ฅ๋ณด๋ค ๋ ์ค์ํ๋ฉฐ, ์์ ์ฑ๋ฅ๋ณด๋ค ๋ ์ค์ํ ์ฐ์ํ ์บ์ฑ ์ ๋ต์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฅ ๋๋ฆฐ ํ๋ ์์ํฌ๋ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๋๋ ๋ํ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋๋ ๋๋ถ๋ถ์ ์์คํ ์ ๋ํด ํ ๋ฒ์ ํ๋์ ๋ชจ๋๋ฆฌ์ ๋ฉ์ด๋ฆฌ๋ก ๊ฒฌ๊ณ ํ๊ณ ๊ฐ๋ ฅํ ์๋น์ค ์งํฅ ๋๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ก์ ์ ์ ํ๊ฒ ๊ณํ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ด ๊ถ์ฅ๋์ด์ผ ํ๋ค๊ณ ๊ฐ๋ ฅํ ๋ฏฟ์ต๋๋ค.
๋ฐ๋ผ์ ์ด์ ์๋ ๋ฌด์๋ณด๋ค๋ ์ต๋ ์ฑ๋ฅ์ด ๊ฐ์ฅ ์ค์ํ์ผ๋ฉฐ ์ด์ ๋ ์์ ์์คํ ์ ๋ฆฌํฉํฐ๋งํ์ฌ ๋ ๋ง์ ๋คํธ์ํฌ ํ์ ๋์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ ๋ชจ๋ ์ฌ์ฉ ์ฌ๋ก์ ๋ชจ๋ ์์คํ ์ ๋ง์ ์ฒ๋ผ ๋ ์ข๊ฒ ๋ง๋ค ์ ์๋ ์์ ๋จผ์ง ๊ธฐ์ ์ด ์๋๋๋ค. @NickCraver ๋ ์ด๋ฏธ ์ด๊ฒ์ด StackOverflow์ ์ ํฉํ์ง ์์ ์ด์ ๋ฅผ ๋ค๋ฃจ๊ณ ์์ผ๋ฉฐ Basecamp ๋ฐ ๊ธฐํ ๋ง์ ์ ๋ช ํ ์ ๊ณ ๋ฆฌ๋์๊ฒ๋ ์ ํฉํ์ง ์์ต๋๋ค. ๋ชจ๋๋ฆฌ์์ ๋จผ์ ์ฌ์ฉํ๊ฑฐ๋ ์์คํ ์ ๋ชจ๋ํํ์ฌ ๋ ์ ์ ์ ์ถฉ์์ผ๋ก ๋ ๋ง์ ์ด์ ์ ์ป์ ์ ์๋ค๊ณ ์ ์ํ์ญ์์ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์์ ์์คํ ์ ๋ฆฌํฉํ ๋งํ๊ณ ๋ค์ ์์ฑํ๋ ๊ฒ์ ๊ณ ๊ฐ ๊ฐ์น๋ฅผ ์ ๊ณตํ์ง ์๋ ๋ฆฌ์์ค๋ฅผ ์ ๋๋ก ์ฌ์ฉํ์ง ์๋ ๊ทผ๋ณธ์ ์ธ ์ฃ์ด๋ฏ๋ก ๋ฏธ๊ฐ๋ฐ ํ๋ก์ ํธ์์ ๋ ์๋ฏธ๊ฐ ์์ต๋๋ค.
@mythz ๋๋ ์ฌ๋๋ค์ด ํด์ผ ํ๋ค๊ณ ์ ์ํ ๊ฒ์ด ์ ํํ ๋น์ ์ด ํด์ผ ํ๋ค๊ณ ๋งํ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๊ทธ๋ ์ง ์์ต๋๋ค.
์ฐธ๊ณ ๋ก .NET Standard 2.0 ๋ฐ .NET Core 2.0์ https://channel9.msdn.com ์์ 11:54:00 ๋ถํฐ ๋ผ์ด๋ธ๋ก ํด๊ฒฐ๋์์ต๋๋ค. ๋น๋์ค์ ๋ํ ์ง์ ๋งํฌ ๋ ์์ต๋๋ค.
๋ชจ๋ ์ฐ๋ ค๊ฐ ๊ณต์์ ์ผ๋ก ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ค์ฝง ํํฐ:
๊ณํ์ ASP.NET Core 2.0์ด ๋ฏธ๋ฆฌ ๋ณด๊ธฐ 2์์ .NET Framework์์ ์๋ํ๋๋ก ํ๋ ๊ฒ์ ๋๋ค.
Github๋ .NET์ด ๋ฌด์์ธ์ง์ ๋ํ ๊ถํ์ด ์์ต๋๋ค. ๋ธ๋ก๊ทธ(.NET ๋ธ๋ก๊ทธ ๋๋ ASP.NET ๋ธ๋ก๊ทธ)๋ ํ์ด ์ค์ ๋ก ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ ์ค์ธ ์์ ์ ๋ํด ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ณณ์ด๋ฉฐ, ์ฌ๊ธฐ์ ๋๊ตฌ๋ฅผ ์ด๋ํ ๊ณณ์ ๋๋ค. ๋ฑ๋ฑ.
WinForms, WPF๋ Windows ๊ธฐ๋ฅ์ด๋ฉฐ .NET Core๋ .NET์ ๊ต์ฐจ ํ๋ซํผ ํน์ง์ด๋ฏ๋ก Windows ์ ์ฉ ism์ .NET Core๋ก ์ด๋ํ์ง ์์ ๊ฒ์ ๋๋ค... ๊ณ ๊ฐ์๊ฒ ๋งํ๊ณ ์ถ์ ๋ด์ฉ . NET Framework๋ ์๋ฌด๋ฐ๋ ๊ฐ์ง ์์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ .NET Framework๋ฅผ ์์ํ ์ง์ํ ๊ฒ์ด๋ฏ๋ก ๋ชจ๋ ์ด์ ์ฝ๋๋ฅผ .NET Core๋ก ์ฎ๊ฒจ์ผ ํ๋ค๋ ๊ฐ๋ฐ๊ฐ์ ๋๋ผ์ค ํ์๋ ์์ต๋๋ค. .NET Core๋ก ์ด๋ํ๋ ์ด์ ๋ ํ๋ซํผ ๊ฐ์ ์ํ๊ฑฐ๋ ์์ ํ ๋๋ํ ์๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
.NET Core๋ Windows์ ์ผ๋ถ๊ฐ ์๋๊ณ ๋ณ๋ ฌ์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ .NET Framework๋ณด๋ค ๋น ๋ฅด๊ฒ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชฉํ๋ ๋ชจ๋ ์ฌ๋์ด .NET Framework์์ .NET์ผ๋ก ์ฑ์ ์์ ํ ์ฎ๊ฒจ์ผ ํ๋ค๊ณ ๋งํ๋ ๊ฒ์ด ์๋๋๋ค. Core, WinForms, WPF ๋๋ WCF๋ฅผ ์คํํ๋ ๊ฒฝ์ฐ .NET Framework์์ ์คํํ๊ธฐ์ ์ข์ ์ํฌ๋ก๋์ด๋ฉฐ ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์์ ์ ์์ํ ์ง์ํ ๊ฒ์ ๋๋ค. ์ด๋ํด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ๋ง๊ณ ํฌ๋ก์ค ํ๋ซํผ์ ์ํ๊ฑฐ๋ ์ ์ฒด๋ฅผ ๋๋ํ ์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ํด์ผ ํฉ๋๋ค.
๊ทธ๋ค์ ์์ ์ฑ๋ 9 ์คํธ๋ฆผ์์ ์ด์ ๋ํด ๋ต๋ณํ์ต๋๋ค.
์ด ์ค๋ ๋์ ๋ค๋ฅธ MS ๊ฐ๋ฐ์๊ฐ ์์ ์ง์ ์๋ ๋ถ๊ตฌํ๊ณ ๊ฝค ํ์คํ๊ฒ ๋ค๋ฆฝ๋๋ค.
๋ชจ๋ ํ๋ฅญํ ํ ๋ก ์ ๋๋ค.
์ฌ๊ธฐ์ ๋ด 2์ผํธ๋ ASP.NET Core๊ฐ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ .NET Core์ ์ฌ์ฉ์ ์ด์งํ๋ Microsoft์ ๊ฐ์ฅ ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๋ ๊ฒ์ ๋๋ค.
ํธํ์ฑ์ ์ง์ํ๊ธฐ ์ํด .NET Standard๋ฅผ ๋ง๋ค๊ณ .NET์ ๋ค์ํ ๋ฒ์ ์ ๊ฑธ์ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ asp.net ์ฝ์ด์์ NETSTANDARD2.0์ ๋์์ผ๋ก ํด์ผ ํ๋ฏ๋ก ๋ชจ๋ ๊ณณ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ผ๋ง๋ ๋ฉ์ง๊ฐ์? ํฌํจ๋ ์น ์๋ฒ ์๋๋ฆฌ์ค๋ฅผ ์ง์ํ๊ธฐ ์ํด Xamarin ์ฑ ๋๋ WPF ์ฑ ๋ด์์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ASP.NET Core๊ฐ ์ฒ์๋ถํฐ (ํธ์คํ , ์๋ฒ ๋ฑ) ๋ถ๋ฆฌ๋์ด ์์ต๋๋ค.
๊ทธ๋ค์ด ๋ณด๊ณ ์๋ ๊ทธ๋ฆผ์ .NET Core๊ฐ ๋ชจ๋ ๊ณณ์์ ์คํ๋ ์ ์๊ธฐ ๋๋ฌธ์ .NET์ ๋ค๋ฅธ ํน์ง์ ์ง์ํ ํ์๊ฐ ์์ผ๋ฉฐ ASP.NET Core์ ํฅํ ์๊ตฌ API ์๊ตฌ ์ฌํญ์ ์ง์ํ๊ณ ASP๋ฅผ ๋ฌถ๊ธฐ ์ํด ๋น ๋ฅด๊ฒ ๋ณํํ๋ ์๋ก์ด ํญ๋ชฉ์ผ๋ก ๊ณ์ ์ด๋ํ๋ค๋ ๊ฒ์ ๋๋ค. .NET Core์ .NET Core.
๋๋ ๊ทธ๋ค์ด .NET Core์์ ASP.NET Core๋ฅผ ๊ณ์ ์ฑ์ฅ์ํค๊ธฐ ์ํด ์ํ๋ ์ด๊ณ ๊ธ API๊ฐ ๋ฌด์์ธ์ง ์ ํํ ๋ชจ๋ฅด์ง๋ง ์๋ง๋ ๊ทธ๊ฒ์ ๋ ๋ค๋ฅธ ์ด์ผ๊ธฐ์ผ ๊ฒ์ ๋๋ค. ์์ ์ ASP.NET Core๋ ๋ ๋ค๋ฅธ LIBRARY์ผ ๋ฟ์ด๋ฉฐ ๊ทธ๋๋ก ์ ์ง๋์ด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ ์ฒด .NET Framework๋ ์์ง ์์ฑ๋๊ฐ ๋์ผ๋ฉฐ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค์ต๋๋ค. ๋ง์ ๊ธฐ์ ๊ณ ๊ฐ(์ ํฌํจ)์ด ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ .NET Framework์์ ASP.NET Core๋ฅผ ๊ณ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ์ํฉ๋๋ค.
๊ฐ์ฌ ํด์
์ฐธ๊ณ ๋ก .NET Standard 2.0 ๋ฐ .NET Core 2.0์ https://channel9.msdn.com ์์ ๋ผ์ด๋ธ๋ก ํด๊ฒฐ๋์์ต๋๋ค... ๋ชจ๋ ์ฐ๋ ค๊ฐ ๊ณต์์ ์ผ๋ก ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
MS ๋ด๋ถ์ ์ ์น๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์์ธํ๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉด ๋น๋์ค์์ ๋ค์ ๋ชจํธํ ์์ ์ฃผ์๊ฐ ์ด ์ค๋ ๋์ ๋ํ ์ด๊ธฐ ๊ธฐ์ฌ์๋ค์ ๊ณต๊ฐ์ ์ผ๋ก ๋ฒ์ค ์๋์ ๋์ง๋ ๊ฒ์ ํผํ๊ธฐ ์ํ ๋ ธ๋ ฅ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๊ธฐ์ ์ ๋ถ์ ์ง์ ๋ฐ์๋ฅผ ๋ณด๋ด๊ณ ์ถ์ง๋ ์์ง๋ง ์๋ง๋ ์ด ๊ฒฝ์ฐ์๋ ์ค์ ๋ก ๋ ํฐ ์ด์ต์ ์ํ ๊ฒ์ผ ์ ์์ต๋๋ค.
์ด์ ๋ฐ์ ๋น๋ฆฌ๋ ค๋ฉด "์์ผ๋ก, ์ค์ธ์๋์!"
@๋งํฌ๋ ๋ค
๊ทธ๋ฆฌ๊ณ ์ต์ ์ ์๋๋ฆฌ์ค๊ฐ ์ค์ ๋ก ์์ ํ Windows ASP.NET ๋ฐ IIS์ ๊ฐํ ๊ฒฝ์ฐ ๋ฐ์ํ ์ ์๋ ์ต์ ์ ์ํฉ๊ณผ๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ๋๋ค. ์์ผ๋ก ๋์ฌ ๋ฉ์ง C# ํญ๋ชฉ์ ๋ชจ๋ ์ป์ ์ ์์ผ๋ฉฐ .NET Core์ ๋ค์ด๊ฐ๋ ์ด๋ฌํ ํญ๋ชฉ์ ๊ฒฐ๊ตญ์๋ ์ป์ ์ ์์ต๋๋ค. ์๊ฐ์ด ์กฐ๊ธ ๋ ๊ฑธ๋ฆด ๋ฟ์ ๋๋ค.<
์ด๊ฒ์ด ๋ฐ๋ก ์ด ์ค๋ ๋์ ์์ ์ค ํ๋์ ๋๋ค. ๋ฐ๋ผ์ก๋ ๋ฐ 6๊ฐ์์์ 1๋ ์ด ๊ฑธ๋ฆฌ๋๋ผ๋ asp.net ์ฝ์ด๊ฐ .net ํ๋ ์์ํฌ์์ ์คํ๋ ์ ์๋ค๋ฉด ์ฐ๋ฆฌ ๋๋ถ๋ถ์ ๋งค์ฐ ๋ง์กฑํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ด๊ฐ ๋ฐ์ ์ธ์์ asp ํ์ด ์์ ํ ๋ถ๋ฆฌํ๊ณ .net ํ๋ ์์ํฌ์์ ์คํํ ์ ์๋ ์ํ๋ก ๋๋์์ค์ง ์๊ธฐ๋ฅผ ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฅ๊ธฐ์ ์ธ ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌ ๊ณํ์ ์๋ฆฝํ๊ธฐ ์ํด ๊ณ ๊ฐ์๊ฒ ์ฑ ์์ด ์๋ ์ฐ๋ฆฌ๋ฅผ ๋งค์ฐ ์ด๋ ต๊ฒ ๋ง๋๋ ๊ฒ์ ๋ฏธ๋ ๊ณํ์ ๋ํ ๋ช ํ์ฑ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@mythz ๊ทธ๋ ์ต๋๋ค.
์์ผ๋ก ๋์๊ฐ๋ ๊ฐ์ฅ ์ข์ ๊ธธ์ ASP.NET ํ์ด ์ฐ๋ฆฌ๋ฅผ ์ํด ์ค๋นํ ๋ชจ๋ ๊ณํ์ ๋ฐ์๋ค์ด๊ณ ํ๋ซํผ์ ์์ผ๋ก ๋์๊ฐ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ฐ๋ฆฌ ์์ ์ ์ญํ ์ ํ๋ ๊ฒ์ ๋๋ค.
@stefanolson ๋น์ ์ ๋๋ฅผ ์คํดํ์ต๋๋ค. ๋๋ ๋ถ๋ช ํ ์ถฉ๋ถํ ๋ช ํํ์ง ์์์ต๋๋ค. ์ด๋ค ์ด์ ๋ก๋ .NET Core์์ ์คํ๋๋ ASP.NET Core๊ฐ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ์ง์ (์: C++/CLI ํญ๋ชฉ)์ ๋๋ฌํ์ง ๋ชปํ๊ณ ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ๊ฑฐ๋ ์ํคํ ์ฒ๋ฅผ ๋ฆฌํฉํฐ๋งํ ์ ์๋ ๊ฒฝ์ฐ Classic ASP๋ฅผ ์ ์งํ์ธ์. .NET MVC/WebAPI ๋๋ WebForms.
(์ฐธ๊ณ ๋ก ์ ๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๋ง์นจ๋ด WebForms kerfuffle์์ ์ด๋ํ์์ ์์์ต๋๋ค. ๊ทธ ์ฌ๋๋ค์ ๊ณ์ ์งํํ๊ณ ์์ต๋๋ค.)
@markrendle ๊ทธ๊ฒ์ ๋ถ๋ช ํ ์ธ๊ธ ๋ ๊ฒ์ด ์๋๋๋ค.
@markrendle WebForms to MVC๋ ์์ ํ ๋ค๋ฅธ ์์ ์ฃผ์ ์์์ต๋๋ค. UI ๋ ์ด์ด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ฟ์ด์์ต๋๋ค. ์ฌ์ ํ ๋์ผํ ๋ฐฑ์๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ์์ฑ ๋ฑ์ ์ํํ ์ ์์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ๋ํด ์ ํ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ ผ์๋๋ ๊ฒ์ ๋ด UI ์ฝ๋๋ฟ๋ง ์๋๋ผ ๋ด ๋ชจ๋ ์ฝ๋์์ ํธํ์ฑ์ ์์ ํ ๊นจ๋จ๋ฆฌ๋ ๊ฒ์ ๋๋ค. ์ค์ ๋ก UI ์ฝ๋๋ ์๋ง๋ ๊ฐ์ฅ ์ด์ ๊ฐ๋ฅํ ๋ถ๋ถ์ผ ๊ฒ์ ๋๋ค.
@stefanolson ์ด์ฉ๋ฉด ๋น์ ๊ณผ ๋น์ ์ ์ฝ๋์๊ฒ WebForms์์ MVC๋ก์ ์ ํ์ ์ฌ์ ์ง๋ง ๋ง์ ์ฌ๋๋ค์๊ฒ๋ ์์ ํ .NET์์ Core๋ก ์ง๊ธ์ฒ๋ผ ๊ทน๋ณตํ ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์์ ์ ์ฌ์ ํ โโ์ ํจํฉ๋๋ค. ์ฝ๋๋ฅผ ASP.NET Core๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์๋ค๋ฉด ํ์ง ๋ง์ญ์์ค.
WebForms -> MVC5 ์ ํ ์ค๊ฐ์ @stefanolson @markrendle , ์ด๊ฒ์ MVC/MVC2์์๋ ๊ทน๋ณตํ ์ ์์๊ณ MVC5์์๋ ๋ํ์ต๋๋ค. ASP .NET Core 3 ์ด์์ด ๋ ์ฌ์ด ์ ํ์ด ๋ ์ ์๋ค๋ ์ ์์ ๋น์ทํ ์ํฉ์ ์์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ WebForms Coolaid HARD๋ฅผ ๋ง์ ์ฌ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํ ์ค์ ๋งํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ViewState ๊ณค๊ฒฝ์ ๋น ์ง์ง ์์๊ธฐ ๋๋ฌธ์ ๊ตฌ์๋ฐ์์ต๋๋ค. ํ๋ ์์ํฌ -> ํต์ฌ ์ ํ์์ ์ค์ํ ๊ฒ์ ์ ํ์ ์ํ ์์ ์ ์ด๊ณ ๋ช ํํ๋ฉฐ ๋ฌธ์ํ๋ ๊ณํ์ ๊ฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์์ธก ๊ฐ๋ฅํ ๋ฏธ๋์ .NET Standard์ ์์ฑ๋ ์ฝ๋๊ฐ ์ด์ ๊ฐ๋ฅํ๊ณ ๋ ธ๋ ฅ์ ๋ญ๋นํ์ง ์๋๋ค๋ ๊ฒ์ด ๋ถ๋ช ํ ๊ตฌ๋ณ์ด ์๋ค๋ฉด ์ด์ ๊ด๋ จํ์ฌ ๋ฐ์ํ๋ ๋ถํ์ค์ฑ์ด ๋ฌธ์ ์ ๋๋ค. NET Standard๋ก ์ด๋ํ๊ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๋ํฉ๋๋ค.
๊ทธ ๋ชฉํ๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ข์ง ์์ ์ผ์ด๋ฉฐ, ์ด๋ ์ฌ๋ฌ๋ถ์ด ํ๋ ๋ชจ๋ ๊ฒ์ด ํ๋ก์ ํธ์ ๊ด์ ๋ชป์ด ๋ฐํ ์ ์์์ ์๋ฏธํ๊ฑฐ๋ ~Python 2.x~ .NET Framework 4.x์ ์ค๋ซ๋์ ๊ฐํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
ํจ๋ฌ๋ค์์ ๋ณํ์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฐ๋ฅธ ํจ๋ฌ๋ค์์ ์ฌ์ฉํ์ง ์๋ ์ฌ๋๋ค์
ํ๋ ์๊ฐ์ ๋ณด๋ผ ์ ์์ต๋๋ค.
๋๋ ๋ง์ ์ฌ๋๋ค์๊ฒ HttpContext.Current๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ๊ฒฝ๊ณ ํ์ต๋๋ค... ์์ง...
์ง๊ธ๋ ์ฐ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์ฑ์ ๋ค์ ์ดํ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์
๋๋ค.
์ปจํ
์คํธ ๊ฐ์ ๋ฐ๋ผ ์๋ง์ ์ฝ๋๊ฐ ์์ต๋๋ค.
WebForms ์ฟจ์์ด๋์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋ฒคํธ, ์
๋ฐ์ดํธ ํจ๋,
๋ฑ ... ์ฌ์ ํ ASMX๋ฅผ ์ฌ์ฉํ์ฌ jQuery๋ก AJAX๋ฅผ ์ํํ ์ ์์ต๋๋ค. ๋ ํ๋ค์์ง๋ง
๊ทธ๊ฒ์ ๊ทธ๊ฒ์ ํ๋ "์ฌ๋ฐ๋ฅธ" ๋ฐฉ๋ฒ์ด์์ต๋๋ค. ์ด๋ฌํ ์ข
๋ฅ์ ์ฑ์์ ์ค์ํํ๋ ๊ฒ์
MVC๊ฐ ๋์ค๋ฉด ๋ ์ฌ์์ก์ต๋๋ค.
๋๊ฐ์ ์ผ์ด ์ง๊ธ ์ผ์ด๋๊ณ ์์ต๋๋ค. ํจํด์ด ๋ฐ๋๊ณ ์์ผ๋ฉฐ
"์ข์ ๊ดํ"์ผ๋ก ๊ฐ์ฃผ๋๋ ๊ฒ๋ ์งํํ์ต๋๋ค. ์ ์์ฑ๋ ๋ชจ๋ ์ฝ๋๋
์ด์ ๋ฐฉ์(๊ณก๋ฌผ์ ๋ํ)์ ์ด์ ์ ์์ ํ ์ฌ๊ณ ๋์ด์ผ ํฉ๋๋ค.
์์ผ๋ก ๋์๊ฐ ๋ค.
๋ฌด์์ธ์ง ์๋ ๊ฒ ์ธ์ ์ฌ์ด ์ ํ ๊ณํ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
"๊ณก๋ฌผ ๋ฐ๋"์ ๊ทธ๊ฒ์ ๊ณ ์น๋ ๋ฐฉ๋ฒ. ์ด์๋์ง ์์ API๋ ํฌํจํ์ง ์์ต๋๋ค.
๋ฌผ๋ก ๊ฑฐ๊ธฐ. ๊ทธ๊ฒ์ ์์ ํ ๋ค๋ฅธ ๋ฌธ์ ์
๋๋ค.
2017๋
5์ 12์ผ ๊ธ์์ผ ์คํ 3:29 Aren Blondahl [email protected]
์ผ๋ค:
@stefanolson https://github.com/stefanolson @markrendle
WebForms -> MVC5 ์ค๊ฐ์ https://github.com/markrendle
์ง๊ธ ์ ํํ๋ ๋์ ์ด๊ฒ์ MVC/MVC2๋ก ๊ทน๋ณตํ ์ ์์๊ณ MVC5์์๋ ๋ํ์ต๋๋ค.
์ฐ๋ฆฌ๋ ASP .NET Core 3 ๋๋ ๊ทธ ์ด์์ด ๋ ์ ์๋ ์ ์ฌํ ์ํฉ์ ์์ ์ ์์ต๋๋ค.
๋ ์ฌ์ด ์ ํ.๊ทธ๋ฌ๋ WebForms coolaid HARD๋ฅผ ๋ง์ ์ฌ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋งํ์ต๋๋ค.
์ ํ ์ค. ์ฐ๋ฆฌ๋ HARD๋ก ๋ด๋ ค๊ฐ์ง ์์๊ธฐ ๋๋ฌธ์ ๊ตฌ์๋ฐ์๋ค
ViewState ๊ณค๊ฒฝ. Framework -> Core์ ๋ฌด์์ด ์ค์ํ ๊ฑฐ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ ํ์ ์ ํ์ ๋ํ ์ ๋ขฐํ ์ ์๊ณ ๋ช ํํ๋ฉฐ ๋ฌธ์ํ๋ ๊ณํ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.์ด์ ๊ด๋ จํ์ฌ ๋ฐ์ํ๋ ๋ถํ์ค์ฑ์ด ๋ฌธ์ ์ ๋๋ค.
.NET์ ์์ฑ๋ ์์ธก ๊ฐ๋ฅํ ๋ฏธ๋ ์ฝ๋์ ๋ํ ๋ช ํํ ๊ตฌ๋ณ
ํ์ค์ ์ด์ ๊ฐ๋ฅํ๋ฉฐ ๋ญ๋น๋์ง ์๋ ๋ ธ๋ ฅ์ ์ค๋๋ ํ๋ก์ ํธ์ ๋์์ด ๋ฉ๋๋ค.
.NET Standard์์ ์ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ์ ํ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ณ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด๋ํฉ๋๋ค.๊ทธ ๋ชฉํ๊ฐ ๋ณ๊ฒฝ๋ ์ ์๋ค๋ฉด ๊ทธ๊ฒ์ ์ข์ง ์๊ณ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋น์ ์ ํ๋ก์ ํธ์ ๊ด์ ๋ชป์ด ๋ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด Python์ ๊ฐํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
2.x .NET Framework 4.x ์ค๋ ์๊ฐ.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/aspnet/Home/issues/2022#issuecomment-301165679 ๋๋ ์์๊ฑฐ
์ค๋ ๋
https://github.com/notifications/unsubscribe-auth/AAMx6CoEdzs_Ys5a8W7Ri7lwfBqcIGUdks5r5LMIgaJpZM4NReOn
.
์, ์ด ์ค๋ ๋๋ ๋กค๋ฌ์ฝ์คํฐ ์ฌํ์ด์์ต๋๋ค.
ํธ์ง: ์ค์ ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์๋ ํญ๋ชฉ์ ๋ํ ํธ์ธ์ฅ๋ด์ ์ ๊ฑฐํ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ํฌ์คํธ ๋๊น์ง ์ฝ์ด๋ณด๋ ๋ชจ๋ ๊ณ ๋ฏผ์ด ์์์ผ๋ก ํ๋ ธ์ต๋๋ค.
@poter134 ์ํด . ์ค๋ ๋๋ฅผ ์ฝ์์ต๋๊น? ์๊ฒ ์ต๋๋ค. ๊ธธ์ง๋ง ์ฌ์ ํ... ๋ชจ๋ ๊ฒ์ด ํด๊ฒฐ๋์์ต๋๋ค. ๊ทธ๊ฒ์ ์ฌ๊ณ ์๋ค. ASP.NET Core์ ๋ค์ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ(๋ฐ ์ต์ข ๋ฒ์ )๋ ๋ค์ .NET Framework๋ฅผ ์๋ฏธํ๋ .NET Standard๋ฅผ ์ง์ํฉ๋๋ค.
@PinpointTownes ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ณ ๊ฒฐ๋ก ์ด ๋์๋ค๋ ์๋ฆผ(์๋จ)์ ์ถ๊ฐํด์ผ ํ ๊น์?
๊ณต๋ ์์ ์์๊ฒ ์ ๊ธ ๋ฐ ์ ํ์ ์ ์ํ ์๋ ์์ต๋๋ค. ๋๋ ๋ชจ๋ ๊ฒ์ด ๋งํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฌ๊ณผ - ๋ฐฉ๊ธ ๋น๋์ค์ ๋์ฐฉํ์ต๋๋ค! ๊ทธ๊ฒ์ ์๋ก์ ๋๋ค. ์๋ง ๋งจ ์์ ์์ฝ์ 75%๋ฅผ ์ฝ๊ณ ์ ๋งํ๋ ๋์ ๊ฐ์ ์ฌ๋๋ค์๊ฒ ๊ฐ์ฅ ์ข์ ๊ฒ์ ๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ๊ณ https://channel9.msdn.com/Events/Build/2017/C9L18 ์ ๋ช ํํ ํ๋ ๋น๋ ๋น๋์ค์ ๋งํฌํ ์ ์์ต๋๋ค.
@PinpointTownes ๋ฌธ์ ๋ฅผ ์ข ๋ฃํ๊ณ ๊ฒฐ๋ก ์ด ๋์๋ค๋ ์๋ฆผ(์๋จ)์ ์ถ๊ฐํด์ผ ํ ๊น์?
์๋ฃ:+1:
@PinpointTownes , ์ฐ๋ฆฌ ์ปค๋ฎค๋ํฐ๋ ์ฐ๋ฆฌ ํธ์์ ์ฐ๋ฆฌ์ ์์ฌ ์ํต์ ์ฒญ์ํด์ผ ํ๋๋ฐ ์ฝ์ง ์์ต๋๋ค. ๋ฌธ์ , ์๊ฒฌ ๋ฑ์ด GitHub์ ๊ฒ์๋๋ ๋น์จ์ด ๋๋ฌด ๋์ ์๊ท๋ชจ aspnet ํ์ด ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ ํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ์ฐ๋ฆฌ์ .net ์ฝ์ด ๋ค์ ์๋ ์ฌ๋๋ค ์ฌ์ด์ ์ด๋ฌํ ๋น๋์นญ์ฑ์ asp.net ์ปค๋ฎค๋ํฐ ์คํ ๋์ ์์ ์ ๋ํ๋๋ฉฐ, ์ด๋ ๊ทธ๋ค๋ก๋ถํฐ ์ฐ๋ฆฌ์๊ฒ ๊ฑฐ์ ๋ ์ ์ ์ผ๋ก ๋จ๋ฐฉํฅ ํ๋ฆ์ ๋๋ค. ์๋ง๋ ์ฐ๋ฆฌ๋ ์ผ๋ถ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์๊ณผ .Net ํ ์ฌ์ด์ ์ถ๊ฐ ๋ ์ด์ด๋ฅผ ํฌํจํ์ฌ Skype ํ์ ๋๋ ์คํ ๋์ ์์ ์ ์ ๋ฑ์ ์ ๋ฌํ ์ ์๋ค๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๊ตฌํํ๊ธฐ ์ด๋ ค์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์๋ง๋ ์ปค๋ฎค๋ํฐ๊ฐ ์๋นํ ํฌ๊ธฐ ๋๋ฌธ์ ๊ณ ๋ คํด์ผ ํ ๋ฐฉํฅ์ผ ๊ฒ์ ๋๋ค.
@ponant : ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ด์ ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ์ฆ, ๋น์ ์ด ์ด๋ค ์ฌ๋์๊ฒ ๋ณด๊ณ ํ๊ณ ๊ทธ ์ฌ๋์ด ๊ทธ๊ฒ์ ์ ๋ฌํด์ฃผ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ ๊ฒ์ ๋๋ค. ์๋์, ์ปค๋ฎค๋ํฐ๋ ๋ฌธ์ ๋ฅผ ์๋ ๊ทธ๋๋ก ๊ฒ์ํ ์ ์์ด์ผ ํ๋ฉฐ ํ์ ๊ณ์ ์งํํ๋ ค๋ ๋ฌธ์ ๋ฅผ ์ ํํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ง์ ์์ ์ด๋ผ๋ฉด (์ปค๋ฎค๋ํฐ๊ฐ ์๋๋ผ) ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ์ฒ๋ฆฌํ ์ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด github ๋ฌธ์ ๋ณด๋ค ๋ ๋์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ์์ ์ด ์ผ๋ จ์ ๋ฒ๊ทธ ๋ณด๊ณ ์์ ํผํฉ๋จ), ์์ ํด์ผ ํ๋ ๋ฌธ์ ์ ์ง๋ฌธ์ ์ ๊ฑฐํ๋ ์์ฒด ๋ ์ด์ด๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ปค๋ฎค๋ํฐ์์ ๊ฐ์ฅ ํฌ๋ช ํ IMHO๋ ์ด๋ค ๋ฌธ์ ๊ฐ ์ ํ๋์๋์ง ํ์ธํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ฌธ์ ์ ๋ํ ํผ๋๋ฐฑ๋ ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ธ๋ ๋ฐ์ค๋ก ์ ๋ฌ๋๋ฉด ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ํต์ ํ ์ ์์ต๋๋ค.
์์ง ๋ง์ธ์. PR, ๊ธฐ์ฌ ๋ฐ ๋ฒ๊ทธ ์์ ๋ ํ ์ ์์ต๋๋ค. ์ง๊ธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์๋ ์์น๋ฅผ ๋ถ๋ช ํ ์์๋์ธ์ ๐
@FransBouma , ํฌ๋ช ์ฑ์ ๊ดํด์๋ ๊ทํ์ ์๊ฒฌ์ ๋์ํ๋ฉฐ ๋ ์ด์ด๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ๋์ ์๊ฐ์ด๋ผ๋ ๊ฒ์ ์ธ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ์ ๋ณด๋ฅผ GitHub์ ๋ฒ๋ฆฌ๊ณ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ๊ฒฝ์ฐ ๋ถํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์ ์ ๋ณด์ ์๋๋นํ ๊ฒฝ์ฐ ํ์ ์ดํดํด์ผ ํฉ๋๋ค. GitHub๋ณด๋ค ๋ ๋์ ๋๊ตฌ๋ ํ์๋ฐ์ ๊ฒ์ด๋ฉฐ ํจ๊ป ์๋ํ๊ณ ์ฌ์ฉ์์ ๋ชฉ์๋ฆฌ๋ณด๋ค ๋ ํ๋์ ์ ๋๋ค.
์ MS ์น๊ตฌ๋ค์ ์์ ์ ๋ฐฐ์ฐ์ง ์์์ต๋๊น? ๋ชจ๋ ๊ฒ์ ๊นจ๋จ๋ฆฌ๋ ์ ๋ฐ์ดํธ๋ WP 7.x์์ 8์์ ์ผ์ด๋๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก .NET Core์ ํํ๊ณผ ์์ฅ์ ์ฃฝ์ผ ๊ฒ์ ๋๋ค.
ASP.NET 4์์ ASP.NET Core๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ด๋ ต๊ณ ์ฅ๊ธฐ์ ์ผ๋ก ๊ณ ํต์ค๋ฌ์ด ์งํ์ ๋๋ค. ๋ ์ด๋ ต๊ฒ ๋ง๋ค์ง ๋ง์ญ์์ค.
๊ทธ๋ค์ MSDN ๋ผ์ด์ ์ค, ๋๊ท๋ชจ Azure ์ํฐํ๋ผ์ด์ฆ ๊ณ์ฝ, ๋๊ท๋ชจ Office ๊ตฌ๋ ๋ฐ ์ด๋ฌํ ๋๊ตฌ์ ์์ฑ, ๊ฐ๋ฐ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ์๊ธ์ ์ง์ํ๋ ๋๊ท๋ชจ SQL Server ๋ฐฐํฌ๋ฅผ ๊ตฌ๋งคํฉ๋๋ค.
๊ทธ๋์ ์ด๊ฒ์ ์ผ๋ฑ์ ์น๊ฐ์ด ์ด์ฝ๋ ธ๋ฏธ์ ๊ฐ์ ์ ๊ฐ๋ก๋ง๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ์ข์์.
@markrendle Microsoft๋ ํ์ฌ ๋งค์ฃผ 20์ต ๋ฌ๋ฌ ์ด์์ ์์ต์ ์ฌ๋ฆฌ๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ์์ง๋์ด๋ง ํ๋ก์ ํธ๋ฅผ ๋ ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋งค์ผ 4์ต ๋ฌ๋ฌ์ ๋น์ฉ์ผ๋ก ์ ์ฒด .NET ํ์ด Tech Tomato๋ผ๋ ํ์ฌ์ ์์์์ฑ๋ ๋ฒจ๊ธฐ์์ ๊ณผ๋ถํ๋ ์๋ฒ์์ ๋งค์ผ ๋น๋๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ ์ค์ ์ผ๋ก ํํธ์๋ NuGet์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ ๊ฒ์ ๊ธฐ๋ํฉ๋๋ค. ํ์ฌ 78k DLL์ ์ค์นํ๋ ค๋ฉด 200MB์ ๋ฉํ๋ฐ์ดํฐ๊ฐ ํ์ํฉ๋๋ค. https://github.com/NuGet/Home/issues/4448
์๋ง๋ Microsoft๊ฐ GitHub๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ์ ํํ ๋ฐฉ์์ผ ์ ์์ง๋ง ์ต์ข ์ฌ์ฉ์ ์ปค๋ฎค๋์ผ์ด์ ์ ๋์ฐํ๊ณ ํ ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ์ ์ปค๋ฎค๋ํฐ์ ๊ด์ฌ์ ์ถฉ๋ถํ ๋๊ธฐ ์ ์ ๋ฒ๊ทธ ๋ณด๊ณ ์๋ฅผ ์กฐ๊ธฐ์ ๋ง๊ฐํ๊ณ ๋ฌธ์ ๋ฅผ ๋ถํ ํ๊ธฐ ์ํ ๊ฒฝ์์ผ๋ก ๋ณํฉ๋๋ค.
๊ทธ๋ฌ๋ Microsoft๊ฐ ์์ UserVoice ์์ฒญ์ ๋ฌด์ํ๊ณ ์์ ํ๊ธฐ์ ์ฌ๋ฏธ ์์ด ๋ณด์ด๋ ๋ชจ๋ ๊ฒ์ด "๋ฐฑ๋ก๊ทธ"๋ก ํ๊ทธ๊ฐ ์ง์ ๋๋ฉด ๊ณต๊ฐ์ ์ผ๋ก ์์ ์ ์ํํ๋ ์์ ์ด ๋ฌด์์ ๋๊น? ๋ค, ๋ฐ์์๊ตฐ์. ์๊ฒ ์ต๋๋ค. ๋น์ ์ ์ ์ ๋ฐ๋นด๋ค. ์ด์ ๋น์ ์ ๋ฐ์ ๋ฟ๋ง ์๋๋ผ ๊ณต๊ณต ์ปค๋ฎค๋ํฐ ์ฌ๋จ์ ์ฒ๋ฆฌํ๊ธฐ์๋ ๋ฐ์ฉ๋๋ค.
์ ๋๋ก ์ด์๋์ง ์์ 1990๋ ๋ ์น ํฌ๋ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์คํธ๋ ์ค๋ฅผ ๋ฐ์ ๊ด๋ฆฌ์๋ ์์๋๋ก ๋ฐ์ํฉ๋๋ค. ์ค๋๋ ์ค๋ ๋์์ ๋๊ธ์ด ์ ๋นํ๊ฒ ์ฌ๋ผ์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ณ ์ ๊ฒฝ์์ง์ ์ปค๋ฎค๋ํฐ์ ๋ถ๋ ธ๋ฅผ ์ง์ ์ํค๊ฒ ๋ค๊ณ ์ฝ์ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ์ฌํญ์ ์ดํํ์ง ์์ต๋๋ค.
https://github.com/dotnet/cli/issues/5328
https://github.com/dotnet/corefx/issues/17522
์ผ๋ถ Microsoft ์ง์์ GitHub๋ฅผ ์์ฉํ๊ณ , ๋ง์ ์ง์์ด ํ์ํ ์๊ฐ์ ๊ด๋ฆฌํ ์ ์๋ค๊ณ ๊ฒฐ์ ํ์ผ๋ฉฐ, ๋ค๋ฅธ ์ง์์ GitHub ์ค๋ ์๊ฐ ๋์ด ์๋ฌด ๋์๋ ๋์ง ์์ต๋๋ค. Logitech ๋ง์ฐ์ค ์คํฌ๋กค ํ ์ ๋ํ ๊ทน์ฐฌ.
๊ทธ๋์ ์ ๋ 1992๋ ๋ถํฐ ๊ทธ๋ฌ๋ ๊ฒ์ฒ๋ผ ๋ด๋ถ ์ฐ๋ฝ์ฒ๋ก ์ด๋ฉ์ผ์ ๋ณด๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฒซ ๋ฒ์งธ ๋ต์ฅ์๋ ๋ถ๊ฐํผํ๊ฒ ์ด GitHub ํญ๋ชฉ์ด ์์ ํ ๋ฒ์ด๋ ๋ฐฉ๋ฒ์ด ์ธ๊ธ๋์ด ์์ต๋๋ค.
๋ง์ฐ์ค ํ ์ ๋ํด ๋๋ฅผ ๋ฏฟ์ง ์์ @PureKrome ์ ์ํด ํธ์งํ์ญ์์ค.
๋ง๋ถ์ฌ์, Hanselman์ด ๊ฒฐ์ ์ ๋ณํธํ๋ ์ด ์ค๋ ๋์ ๋ํ๋ฌ์ ๋ ๋๋ ๊ทธ๊ฒ์ด ๋ค์งํ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์์์ต๋๋ค. Microsoft๊ฐ ๋ฌด์์ ํ๊ณ ์๋์ง ์๊ณ ์ถ๋ค๋ฉด ๊ทธ์ ๋ธ๋ก๊ทธ๋ฅผ ์ฝ๊ณ ๊ธฐ์ ์ด ์์ ํ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ ๋๊น์ง 6๊ฐ์์ ๊ธฐ๋ค๋ฆฌ์ญ์์ค.
์ฐธ๊ณ : 2.0.0-preview2 ๋ฐ .NET Framework์ ๋ํ ์ผ๋ถ ์ ๋ณด https://github.com/aspnet/Announcements/issues/243
@chadwackerman ์ค์ ๋ก .NET ๊ฐ๋ฐ์ 20์ต ๋ฌ๋ฌ๋ฅผ ๋ชจ๋ ์ธ ์ ์๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ๊ทธ ์ค ์ผ๋ถ๋ ํ์ฅ์ง, ์นดํ์ธ ์๋ฃ, Azure ๋ฐ์ดํฐ ์ผํฐ์ ๊ฐ์ด ์ด๋ฆฌ์์ง๋ง ํ์์ ์ธ ๊ฒ๋ค์ ์ฌ์ฉ๋ฉ๋๋ค.
@oldrev
์ MS ์น๊ตฌ๋ค์ ์์ ์ ๋ฐฐ์ฐ์ง ์์์ต๋๊น? ๋ชจ๋ ๊ฒ์ ๊นจ๋จ๋ฆฌ๋ ์ ๋ฐ์ดํธ๋ WP 7.x์์ 8์์ ์ผ์ด๋๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก .NET Core์ ํํ๊ณผ ์์ฅ์ ์ฃฝ์ผ ๊ฒ์ ๋๋ค.
์๋ง๋ ๊ทธ๋ค์ ๊ทธ๋ฌ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ ๋ง์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ด ์์์ ๊ฒ์ ๋๋ค.
ASP.NET 4์์ ASP.NET Core๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ด๋ ต๊ณ ์ฅ๊ธฐ์ ์ผ๋ก ๊ณ ํต์ค๋ฌ์ด ์งํ์ ๋๋ค. ๋ ์ด๋ ต๊ฒ ๋ง๋ค์ง ๋ง์ญ์์ค.
๋๋ ์งํ์ด ์ด๋ ต๊ณ ๊ณ ํต์ค๋ฝ๊ณ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ด๋ผ๋ ๋ฐ ์ ์ ์ผ๋ก ๋์ํ๋ฉฐ MS ์ฌ๋๋ค๋ ๊ทธ๊ฒ์ ์๊ณ ์๋ค๊ณ ํ์ ํฉ๋๋ค(์งํ์ ๋ ์ฝ๊ฒ ๋ง๋ค ๊ฒ์ธ์ง ์ฌ๋ถ๋ ๋ค๋ฅธ ์ด์ผ๊ธฐ์ ๋๋ค)
์กฐ๊ธ ๋ค๋ก ๋ฌผ๋ฌ์์ ์ฐ๋ฆฌ ํ์ ASP.net์์ ASP.NET ์ฝ์ด ์ด์ธ์ ๋ค๋ฅธ ๊ฒ์ผ๋ก ์ ํํ ๊ฐ๋ฅ์ฑ์ ํ๊ฐํ์ง๋ง MS ๊ธฐ์ ์ ๋ํ ์ข ์์ฑ์ด ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์ ๊ฒฐ์ ์ ์ด๋ ต์ง ์์ต๋๋ค. ๊ฒฐ๊ตญ ํ์ค์ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค.
MS๋ ์์ ์ ์ค์๋ฅผ ๋ฐ๋ณตํ๊ณ Microsoft.Data.Sqlite
์ ์ฅ์ https://github.com/aspnet/Microsoft.Data.Sqlite/pull/370 ์์ ์ ์ฒด .NET์ ๋ํ ์ง์์ ์ค๋จํ๋ ค๊ณ ํฉ๋๋ค.
์ปค๋ฎค๋ํฐ์ ์ด๋ค ํ ๋ก ๋ ์๊ณ ์ด๋ค ๋ฐํ๋ ์์ด.
@alexvaluyskiy ๋น์ ์ด ๋ฌด์์ ํ๊ณ ์๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. net451
์ netstandard2.0
๋ก ๋์ฒดํ๋ฏ๋ก .NET ์ง์์ด ์ค๋จ๋์ง ์์ต๋๋ค. netstandard2.0
๋ .NET 4.6.1์์ ์ง์๋ฉ๋๋ค.
@MartinJohns TFS์ ๋ชจ๋ ๋ณ๊ฒฝ ์ฌํญ์ ํฐ ๋ณ๊ฒฝ ์ฌํญ์ด๋ฉฐ ๋จผ์ ๋ฐํํ๊ณ ๋
ผ์ํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
.NET 4.5.2
๋ ์ฌ์ ํ MS์์ ์ง์ํ๋ฉฐ Microsoft.Data.Sqlite
๋ ๊ทธ ์์์ ์คํํ ์ ์์ต๋๋ค. MS๊ฐ ์ง์์ ์ค๋จํ๊ณ ์ฌ์ฉ์๊ฐ net4.6.1
๋๋ netstandard2.0
๋ก ์
๋ฐ์ดํธํ๋๋ก ๊ฐ์ ํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
.NET ๋ฒ์ ์ ์ ๋ฐ์ดํธํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ๋ฌ ๋์ ๋ฐํ์์ด ์๋ .NET Standard 2.0๋ง ์ง์ํ๋ฉด ๋๋ฏ๋ก ์ ์ง ๊ด๋ฆฌ ๋น์ฉ์ด ์ ๊ฐ๋ฉ๋๋ค. .NET์ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ ํ ์ง์ํ๊ณ ์์ง๋ง ์ต์ ๋ฒ์ ์ผ ๋ฟ์ ๋๋ค.
๋ง์ดํฌ๋ก์ํํธ๊ฐ .NET 1.0๊น์ง ๋ชจ๋ ํจํค์ง๋ฅผ ์ง์ํด์ผ ํ๋ค๋ ์๋ฏธ์ ๋๊น?
์ผ๋ถ ๋ฒ์ ์์๋ netstandard๋ก ์๋ ดํด์ผ ํฉ๋๋ค.
@irwiss ๊ทธ ๋๊ธ์ ๋ณ๋ก ๋์์ด ๋์ง ์์ต๋๋ค. ๊ทธ๋ ์ด๋์๋ ํจํค์ง๊ฐ .NET 1.0๊น์ง ์ง์๋์ด์ผ ํ๋ค๊ณ ์์ํ์ง ์์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ "์์ง ์ง์๋๋ค"๊ณ ์ธ๊ธํ๋๋ฐ, ๋ง์ต๋๋ค. .NET 4.5.2๋ ์์ ๋ ์๋ช ์ข ๋ฃ ์์ด 2017๋ 5์ 3์ผ ํ์ฌ ๊ณต์์ ์ผ๋ก ์ง์๋๋ ๋ฒ์ ์ ๋๋ค(https://support.microsoft.com/en-us/help/17455/lifecycle-faq-net-framework).
์ง์๋๋ .NET ๋ฒ์ ์ ์ง์ํ๋ ๊ฒ์ ๋ฌด๋ฆฌํ ์์ฒญ์ด ์๋๋๋ค.
@MartinJohns ์ด๋ ์ชฝ๋ ์์งํ ๋์์ด ๋์ง ์์ต๋๋ค. sqlite ๋ฌธ์ ์ ๋ํ ์ด๊ธฐ ๋งํฌ๋ ์๋ชป๋ ์ ์ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ผ๋ฉฐ ๊ตฌ๋ฉ์ (์ฌ์ํ 4.5.2 ๋ 4.6.1 ํ ๋ก ์ผ๋ก) ์ฌ๊ตฌ์ฑํ๋ ค๊ณ ์๋ํ์ต๋๋ค. ์ฝ๊ฐ์ ์ถ๊ฐ ํ๊ธฐ๋ ์ข์ ์๊ฐ์ด ์๋์์ต๋๋ค.
๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ๋ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด๊ฒ ์ ๊ฒ ๋ท๋ท์ด ๋ง์ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด๊ฑด ์ ๋ง ๋ฏธ์น ์ง์ด์ผ. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ถ์ ํฉ๋๊น?
ํ ๊ณณ์์ ๋ค๋ฅธ ๊ณณ์ผ๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ํ ์ ์ ํ ๋ฌธ์๊ฐ ์์ต๋๋ค.
์ฒ์์๋ DLL ์ง์ฅ์ด ์์๊ณ ์ด์ ํจํค์ง ์ง์ฅ์ด ์์ต๋๋ค... ๋ ๋ง์ ๊ฒ์ด ๋ณ๊ฒฝ๋ฉ๋๋ค.... ;)
์ด ์ค๋ ๋๋ฅผ ์ ๊ทธ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ์ด๊ฒ์ GitHub ๋ฌธ์ ๊ฐ ์๋๋ผ ์ฑํ ํ์์ ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
@MaximRouiller ๋ด๊ฐ ์ด์ ๋ถํฐ netcoreapp1.1์์ netcoreapp2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๊ธฐ ์ํด ๊ฒช์๋ ์ง์ฅ์ ์์๋ ๋ถ์ด๋ผ๋ฉด.
์ ๋ฅผ ๋ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ ๋งํฌ๋ฅผ ์๊ณ ์๋ค๋ฉด ์ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๊ฐ์ฌ ํด์
@smithaitufe ๊ทธ๊ฒ์์ด ๋ฌธ์ ์ ๋ค์ ๊ด๋ จ์ด ์์ต๋๋ค. ๋์ ์ ๋ฌธ์ ๋ฅผ ์ฝ๋๋ค.
@PinpointTownes @Eilon
์ด ์ค๋ ๋๋ฅผ ์ ๊ทธ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? ๋๊ธ์ ๋จ ๋ชจ๋ ์ฌ๋์ 100๊ฐ ์ด์์ ์ด๋ฉ์ผ์ ๋ณด๋ด ์ ์ค๋ ๋์ ์ํด ์์ ์ ์๋ ์๋ก์ด ํ๋์ ๋ํด ์๋ฆฝ๋๋ค.
@MaximRuiller ๋๋ ๊ทธ๊ฒ์ ๊ฒช์์ง๋ง ๋์์ด๋์ง ์์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ทธ ๋ธ๋ก๊ทธ์์ ์ด๊ฒ์ ์ฝ์์ต๋๊น?
*
์ ๋ฐ์ ์ผ๋ก ์ด ํ๋ ์์ํฌ ์
๋ฐ์ดํธ๋ ๋ช ๊ฐ์ง ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ธํ๊ณ ๋น๊ต์ ์ํํ ์
๊ทธ๋ ์ด๋ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ทธ๋ฌ๋ ๊ทน๋๋ก ์ค๋ง์ค๋ฌ์ด ํ ๊ฐ์ง๋ SDK, ๋ฐํ์, ๋๊ตฌ ๋ฐ ์ด๋ค์ด ํตํฉํ๋ ๋ชจ๋ ๋ค๋ฅธ ๋ฒ์ ์ ํ์ฐ์
๋๋ค. ํนํ ๊ทธ๊ฒ๋ค์ด ๋ชจ๋ ๋ค๋ฅธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋จ๊ณ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ ฌ๋์ง ์์ ๊ฒฝ์ฐ ํนํ ๊ทธ๋ ์ต๋๋ค.
*
๋๋ ๊ทธ๊ฒ์ ์๋์ํฌ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
@Rutix ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๋ฐฉ๋ฒ์ ์์๋ผ ๊ฒ์ด๋ค
์ฌ๊ธฐ์ ์ผ๋ถ ํ ๋ก ์ ๋ฐ๋ฅด๋ฉด ์ด ๋ฌธ์ ๊ฐ ๊ณง ์ถ์๋ Preview 2 ๋ฆด๋ฆฌ์ค์์ ์์ ๋์๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ทธ๊ณ ์์ต๋๋ค. ASP.NET Core ๋ณ๊ฒฝ ์ฌํญ ๋๋ ๋ฌธ์ ์ ๋ํ ์ถ๊ฐ ์ง๋ฌธ์ด ์๋ ๊ฒฝ์ฐ ํด๋น ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ ๋ฌธ์ ๋ฅผ ์ ์ถํ์ธ์. ์ด๋์ ํ์ผ์ ์ ์ถํด์ผ ํ ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค๋ฉด Home ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ฌธ์ ๋ฅผ ๊ธฐ๋กํ๊ณ ์ ๋ฅผ (@Eilon) ํ๊ทธํด ์ฃผ์๋ฉด ์ฌ๋ฐ๋ฅธ ์ฅ์๋ฅผ ์ฐพ๋ ๋ฐ ๋์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ์ด๊ฒ์ด ์ฒ์์ ๋ฌด์์ด WTF ์๊ฐ์ธ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ๋ณด์ด๋ ๊ฒ๋ณด๋ค ๋ ์ด์ํ๊ธฐ ๋๋ฌธ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์ด๋ฐ ์์ผ๋ก ์๊ฐํ์ญ์์ค. WPF๋ netstandard2.0์ด ์๋๋ฉฐ net461+์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์ผ๋ฉฐ ๊ด์ฐฎ์ต๋๋ค. ์ต์ ํ๋์ด ์์ง๋ง netstandard ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ASP.NET Core 2.0์ Core 2.0์ ์ต์ ํ๋์ด ์์ง๋ง ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ์ ์์ต๋๋ค. ์๋ง๋ฆฐ๋ ๋๊ฐ์ต๋๋ค.
.NET Core๋ ๋๋ํ ์์ผ๋ฉฐ ๋น ๋ฅด๊ฒ ์์ง์ด๊ณ ์์ต๋๋ค. .NET(์ ์ฒด) ํ๋ ์์ํฌ๊ฐ ์ด๋ํ ์ ์๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋น ๋ฆ ๋๋ค. .NET Core 2.0(.NET Standard์ SUPERSET์) ์์ ASP.NET Core 2.0์ ๋น๋ํ๋ฉด NetFx ๋๋ Netstandard๋ณด๋ค ๋น ๋ฅด๊ฒ ๋น๋ํ ์ ์์ต๋๋ค.
NetCore > Net Standard > NetFx๋ ๊ฐ๋ฐ ์๋์ ํ์ ์ ๊ดํ ๊ฒ์ ๋๋ค.
ํฌ์ธํธ๋ ์๋ก์ด ์์ ์ ํ๋ค๋ฉด netstandard20์ ๋๋ค. ์ด์ net461+ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ ๊ทธ ์ค ๋๋ถ๋ถ์ ASP.NET Core 2.0์์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.
.NET Framework์์ ์คํ๋๋ ASP.NET Core 1.1์ 2.0 ๋ฆด๋ฆฌ์ค ํ 1๋ ๋์ ์์ ํ ์ง์๋ฉ๋๋ค. ํด๋น ์ํฌ๋ก๋๋ ์ต์ 2018๋ 7์๊น์ง ์์ ํ ์ง์๋ฉ๋๋ค.
.NET Core 2์์ ๋๋ฝ๋ ๋๋จธ์ง ํฐ ๊ฒฉ์ฐจ๋ System.DirectoryServices ๋ฐ System.Drawing์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฒ ์ฌ๋ฆ์ Windows์ .NET Core์์ ๋ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ Windows ํธํ ํฉ์ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ ๋ชจ๋์๊ฒ ํ์ํ ๊ฒ์ net461+์์ ์คํํ๊ธฐ ์ํด ASP.NET Core 2.0์ด ํ์ํ๋ค๊ณ ์๊ฐํ๋ ์ด์ ์ ๋ํ ๋ช ํํ ๋ชฉ๋ก/์ดํด์ ๋๋ค.