.NET 10 Preview 6 is now available! - .NET Blog

๋‹ท๋„ท 10 ํ”„๋ฆฌ๋ทฐ 6๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๊ฐ€์ง€ ํŠน์ง• ์ ์ธ ๊ฒƒ์„ ์งš์–ด๋ณด๋ฉด ๋‹ค์Œ์ด ๋ˆˆ์— ๋•๋‹ˆ๋‹ค.

7๊ฐœ์˜ ์ข‹์•„์š”

dnx๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ ์ƒ๊ฐ๋‚˜๋Š”๊ฒŒ ์•„์ฃผ ์˜ค๋ž˜ ์ „(?) ASP.NET 5์˜ ๋Ÿฐํƒ€์ž„ ๋ช…๋ น์–ด๊ฐ€ dnx์˜€์ฃ . ์ €๋Š” ๊ทธ๋•Œ์˜ ๊ธฐ์–ต์ด ์—†๊ธด ํ•ฉ๋‹ˆ๋‹ค๋งŒ์€.

1๊ฐœ์˜ ์ข‹์•„์š”

์–‘์ž ๋‚ด์„ฑ ์•”ํ˜ธํ™”๋ผ๋‹ˆโ€ฆ ๋ฌด์„ญ๋„ค์š”

1๊ฐœ์˜ ์ข‹์•„์š”

ํ˜น์‹œ ์ฐธ์กฐํ•˜๋Š” #:package ํ˜น์€ #:project ๊ฐ€ SourceGenerator ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ๊ฒฝ์šฐ ์–ด๋–ค์‹์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€? ์–ด๋–ป๊ฒŒ ํ‘œ๊ธฐํ•ด์•ผํ•˜๋Š”์ง€? ์— ๋Œ€ํ•œ ๋‚ด์šฉ ์—†์„๊นŒ์š”?

NativeAot ๊ฐ€ ๋””ํดํŠธ๋กœ ๋ฐฐํฌ๋˜๊ฒŒํ• ์…ˆ์ด๋ผ๋ฉด ์†Œ์Šค์ƒ์„ฑ๊ธฐ๋˜ํ•œ ์ค€ํ•„์ˆ˜์ ์ด๊ฒŒ ๋ ํ…๋ฐ ์ด์Šˆ๋ผ๋˜๊ฐ€ ์•„๋ฌด๋Ÿฐ ์–ธ๊ธ‰๋„ ์ฐพ์•„๋ณผ์ˆ˜๊ฐ€ ์—†๋„ค์š”โ€ฆ devblog๋‹ต๋ณ€๋Œ€๊ธฐ์ค‘

1๊ฐœ์˜ ์ข‹์•„์š”

๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ์— ์–ธ๊ธ‰๋œ ์ฝ”๋“œ๋ณด๋‹ค ์ข€ ๋” ๊ฐ„์†Œํ™”๋œ ํ˜•ํƒœ๋กœ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์˜ ํŠน์„ฑ์„ ์‚ด๋ ค๋ณธ ์ฝ”๋“œ๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ ์ด ๋ฐฉ๋ฒ•์˜ ๊ฒฝ์šฐ, CallerFilePathAttribute๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ํ•˜๋“œ์ฝ”๋”ฉ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ๋…๋ฆฝ์ ์ธ ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” Environment.CurrentDirectory ๋“ฑ์˜ ์†์„ฑ์œผ๋กœ ๋Œ€์ฒดํ•ด์•ผ ํ•˜๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

#!/usr/bin/env dotnet

await Console.Out.WriteLineAsync($"Hello, World! from {GetFilePath()}, {GetDirectoryPath()}");

// ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ๋Š” File-based App์œผ๋กœ ์‹คํ–‰ํ•  ๋•Œ์—๋งŒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
#pragma warning disable 8321
static string GetFilePath([System.Runtime.CompilerServices.CallerFilePath] string s = "") => s;
static string? GetDirectoryPath() => Path.GetDirectoryName(GetFilePath());
#pragma warning restore 8321

๊ทธ๋ฆฌ๊ณ  .cs ํ™•์žฅ์ž๋ฅผ ์•ˆ๋ถ™์—ฌ๋„ ์ผ๋ฐ˜ ์…ธ ์Šคํฌ๋ฆฝํŠธ์ฒ˜๋Ÿผ ์“ธ ์ˆ˜ ์žˆ๋Š”๊ฑด ํฐ ๋งค๋ ฅ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ใ…Žใ…Ž ๋‹ค๋งŒ ์ผ๋ฐ˜ ์…ธ ์Šคํฌ๋ฆฝํŠธ๋ž‘ ๋‹ค๋ฅด๊ฒŒ ๋นŒ๋“œ ๊ณผ์ •์ด ํ™”๋ฉด์— ์ตœ์ดˆ ํ•œ ๋ฒˆ์€ ๋‚˜ํƒ€๋‚˜๊ณ , ํŒŒ์ผ ์ด๋ฆ„์ด๋‚˜ ๊ฒฝ๋กœ๊ฐ€ ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ๋‹ค์‹œ ๋นŒ๋“œ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ๋ถ€๋ถ„์€ ๋ช…ํ™•ํ•œ ํ•œ๊ณ„์ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (File-based App ์ž์ฒด๋Š” DLR ๊ธฐ๋ฐ˜์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ)

1๊ฐœ์˜ ์ข‹์•„์š”