.NET 10 출시 / 릴리스 노트 전문 (한국어 번역)

@al6uiz 님께서 ​제가 올렸던 초안을 원문에 맞게 다시 한번 다듬어주셨습니다. 감사합니다! :person_bowing:

.NET 10은 3년간 지원되는 장기 지원(LTS) 릴리스로, 압도적인 성능 향상과 함께 AI, 웹, 크로스 플랫폼 개발을 위한 혁신적인 기능을 통합합니다. 특히, C# 14의 간결한 문법Microsoft Agent Framework를 통한 지능형 멀티 에이전트 시스템 구축 능력은 개발 생산성을 극대화하며, Native AOT 및 Aspire 통합을 통해 빠르고 관찰 가능한 프로덕션 앱을 손쉽게 배포할 수 있도록 돕습니다. 지금 바로 .NET 10으로 업그레이드하여 미래 지향적인 애플리케이션 개발의 모든 이점을 누리세요.

1. .NET 10 출시 개요 및 지원 정책

  • 장기 지원(LTS) 릴리스 지정: .NET 10은 장기 지원(LTS) 릴리스로 지정되며, 2028년 11월 10일까지 3년간 지원될 예정이다.

  • 업그레이드 권장 사항: 프로덕션 애플리케이션은 확장된 지원 기간, 중요한 성능 향상, 그리고 새로운 기능을 활용하기 위해 .NET 10으로 업그레이드하는 것이 강력히 권장된다.

  • 다운로드 및 도구 가용성: .NET 10 다운로드와 함께 Visual Studio 2026 및 Visual Studio Code용 C# Dev Kit 업데이트가 현재 제공되고 있다.

  • 출시 행사: .NET 팀, 파트너, 그리고 커뮤니티는 .NET Conf 2025에서 .NET 10의 새로운 기능을 선보이고 있으며, 관련 세션과 키노트 영상을 시청할 수 있다.

2. 활발한 .NET 커뮤니티 및 생태계 현황

  • 커뮤니티 기여: .NET 10 출시는 커뮤니티의 이슈 제기, 풀 리퀘스트, 코드 리뷰, 피드백 등의 기여 덕분에 가능했다.

  • 생태계 성장: .NET 생태계는 지속적으로 번성하고 있으며, NuGet에는 478,000개 이상의 패키지가 등록되어 있고, 이들은 8천억 회 이상 다운로드되었다.

  • 주요 사용자: H&R Block, Geocaching, Chipotle, Fidelity 등 전 세계 수천 개의 회사와 Microsoft 내부 제품 및 서비스(Xbox, Bing, Microsoft Graph, Azure Cosmos DB, Microsoft Exchange, Microsoft Teams, Microsoft Copilot 등)가 핵심 애플리케이션 구축에 .NET을 신뢰하고 사용하고 있다.

3. 압도적인 성능 향상

  • 최고 속도의 .NET: .NET 10은 런타임, 워크로드, 언어 전반에 걸친 개선을 통해 역대 가장 빠른 .NET 버전이다.

주요 성능 개선 사항

  • JIT 컴파일러 향상: 더 나은 인라이닝(inlining), 메서드 디버추얼라이제이션(method devirtualization), 그리고 구조체 인수에 대한 코드 생성 개선이 이루어졌다.

  • 하드웨어 가속: 최첨단 Intel 실리콘을 위한 AVX10.2 지원과 고급 벡터화를 위한 Arm64 SVE가 지원된다.

  • Arm64 쓰기 장벽 개선을 통해 GC(가비지 컬렉션) 일시 중지 시간이 8~20% 감소되었다.

  • NativeAOT 개선: 미리 컴파일된 앱이 더 작고 빨라졌다.

  • 런타임 최적화: 향상된 루프 인버전(loop inversion) 및 스택 할당 전략이 측정 가능한 성능 향상을 제공한다.

4. C# 14 및 F# 10 언어 개선 사항

4.1. C# 14 주요 기능

  • C#의 인기: C#은 2025년 GitHub Octoverse 보고서에서 상위 5위 안에 랭크될 정도로 세계에서 가장 인기 있는 프로그래밍 언어 중 하나로 남아 있다.

  • Field-backed properties: 명시적인 지원 필드(backing fields) 없이 속성 선언을 단순화하며, 컴파일러가 지원 필드를 자동으로 생성하여 코드를 더 깔끔하고 유지보수하기 쉽게 만든다.

  • Extension properties and methods: 인터페이스 및 정적 멤버를 포함하여 소유하지 않은 형식에 멤버를 추가할 수 있게 되어 확장 형식이 훨씬 강력해졌다.

추가 C# 14 기능

  • First-class Span<T> conversions: 고성능 Span 작업에 대한 암시적 변환을 지원한다.

  • Null-conditional assignment: ?.= 연산자를 사용하여 더 깔끔한 널 안전 할당 코드를 작성할 수 있다.

  • Parameter modifiers in lambdas: 명시적 형식 없이 람다에서 ref, in, 또는 out 매개변수를 사용할 수 있다.

  • Collection expression extensions: params에 대한 ..expression과 스프레드 구문 [..expression]이 지원된다.

  • Enhanced overload resolution: [OverloadResolutionPriority] 특성을 통해 더 나은 메서드 선택이 가능하다.

  • Partial properties and constructors: 속성, 생성자, 이벤트를 포함하여 부분 멤버(partial members) 스토리를 완성한다.

  • ref struct interface implementations: 제로 할당 패턴으로 더 나은 성능을 제공한다.

4.2. F# 10 주요 기능

  • F# 10의 목표: F# 10은 명확성, 일관성, 성능에 중점을 둔 개선 릴리스로, 일상적인 코드에 의미 있는 향상을 제공한다.

언어 개선 사항

  • Scoped warning suppression: #warnon#nowarn과 함께 사용하여 특정 코드 섹션 내에서 경고를 활성화하거나 비활성화함으로써 컴파일러 진단에 대한 정밀한 제어를 제공한다.

  • Access modifiers on auto property accessors: 장황한 지원 필드 없이 공개적으로 읽을 수 있지만 비공개적으로 변경 가능한 속성을 생성할 수 있다.

  • ValueOption optional parameters: 선택적 매개변수에 [<Struct>] 속성을 적용하여 힙 할당된 option 대신 구조체 기반 ValueOption<T>를 사용하여 성능이 중요한 코드에서 할당을 제거한다.

  • Tail-call support in computation expressions: 빌더가 ReturnFromFinalYieldFromFinal 메서드를 통해 꼬리 호출 최적화를 선택할 수 있게 되었다.

  • Typed bindings without parentheses: 계산 표현식에서 괄호 없이 let! x: int = fetchA()와 같은 자연스러운 형식 주석을 작성할 수 있다.

코어 라이브러리 및 성능

  • and! in task expressions: let! a = fetchA() and! b = fetchB()와 같은 관용적인 구문으로 여러 작업을 동시에 대기할 수 있다.

  • Type subsumption cache: 형식 관계 검사를 메모이제이션(memoized)하여 컴파일 및 IDE 응답 속도를 높인다.

  • Parallel compilation preview: LangVersion=preview를 통해 그래프 기반 형식 검사, 병렬 IL 코드 생성, 병렬 최적화가 기본적으로 활성화된다.

  • Better trimming by default: 자동 생성된 대체(substitutions)가 F# 메타데이터 리소스를 제거하여 게시된 앱 크기를 줄인다.

5. .NET 라이브러리: 보안 및 현대적 API

5.1. 포스트 양자 암호화 (Post-Quantum Cryptography, PQC)

PQC 중요성

양자 컴퓨팅의 발전으로 포스트 양자 암호화의 중요성이 커지고 있으며, .NET 10의 확장된 PQC 지원은 기존 시스템과의 호환성을 유지하면서 양자 위협에 대비할 수 있도록 돕는다.

  • Windows CNG 지원: Windows 암호화 API를 사용하여 ML-DSA 및 ML-KEM 알고리즘을 사용할 수 있다.

  • Enhanced ML-DSA: 향상된 보안 특성을 위한 HashML-DSA 변형이 추가되었다.

  • Composite ML-DSA: 전통적인 알고리즘과 양자 저항 알고리즘을 결합한 하이브리드 접근 방식을 통해 심층 방어(defense-in-depth)를 제공한다.

5.2. 향상된 네트워킹 및 기타 라이브러리 개선

향상된 네트워킹

  • WebSocketStream: 사용하기 쉽고 효율적인 단순화된 WebSocket API가 제공된다.

  • TLS 1.3 on macOS: 모든 주요 플랫폼에서 최신 TLS 지원이 이루어진다.

  • Windows process group support: Windows에서 더 나은 프로세스 관리가 가능하다.

  • 성능 최적화: HTTP, 소켓, WebSocket 전반에서 할당이 감소하고 처리량이 향상되었다.

추가 라이브러리 개선 사항

  • JSON 향상: 더 안전한 역직렬화를 위해 중복 속성을 허용하지 않으며, 향상된 직렬화 설정과 고성능 시나리오를 위한 PipeReader 지원이 추가되었다.

  • 암호화 업데이트: 규정 준수 시나리오에서 안전한 키 래핑을 위한 AES KeyWrap with Padding이 추가되었다.

  • 시스템 업데이트: 향상된 진단, 네이티브 코드와의 더 나은 상호 운용성, 향상된 컬렉션이 포함된다.

6. Aspire 13: 분산 앱 오케스트레이션 및 관찰 가능성

  • Aspire의 역할: Aspire는 내장된 텔레메트리, 서비스 검색, 클라우드 통합을 통해 관찰 가능하고 프로덕션 준비가 된 분산 앱을 쉽게 구축할 수 있도록 한다.

  • Aspire 13의 주요 개선 사항: .NET 10과 함께 출시되는 Aspire 13은 폴리글랏(polyglot) 개발, 최신 워크플로, 엔터프라이즈 배포를 위한 주요 개선 사항을 포함한다.

핵심 하이라이트

  • 현대적인 개발 경험: CLI 향상, 간소화된 프로젝트 구성을 위한 단일 파일 AppHost 지원, 단순화된 템플릿을 통한 빠른 온보딩이 가능하다.

  • 원활한 빌드 및 배포: 프론트엔드 앱을 위한 내장 정적 파일 사이트 지원, 더 빠른 릴리스를 위한 강력한 배포 병렬화, 프로덕션 준비가 된 컨테이너 워크플로가 제공된다.

  • 엔터프라이즈 인프라: 애플리케이션 전반에서 일관되게 작동하는 유연한 연결 문자열 및 인증서 신뢰 관리가 가능하다.

추가 기능

  • Simplified AppHost SDK: Aspire.AppHost.Sdk를 유일한 프로젝트 SDK로 설정할 수 있다.

  • AddCSharpApp 지원: AddProject의 대안으로 새로운 CSharpAppResourceAddCSharpApp이 제공된다.

  • Enhanced security: 민감한 구성 데이터를 위한 인코딩된 매개변수와 사용자 정의 가능한 리소스 인증서 신뢰가 가능하다.

  • Dashboard improvements: 유연한 인증을 위한 OpenID Connect 클레임 구성이 추가되었다.

다른 플랫폼과의 연동 (Polyglot Development)

  • .NET 애플리케이션이 Python, JavaScript 또는 기타 언어로 작성된 서비스와 통합될 때 Aspire 13은 이를 원활하게 만든다.

  • 개발자는 포괄적인 디버깅 지원, 자동 생성된 Dockerfile, 모든 플랫폼에 걸친 통합된 환경 변수 패턴을 통해 .NET AppHost에서 전체 분산 애플리케이션을 오케스트레이션할 수 있다.

7. 인공지능 (AI) 기능 통합

7.1. Microsoft Agent Framework (MAF)

  • MAF의 목적: MAF는 Semantic Kernel과 AutoGen의 장점을 통합하여 지능형, 에이전트 기반 AI 시스템 구축을 단순화한다.

  • AI 워크플로 구축: 단일 AI 에이전트를 구축하거나 여러 에이전트를 오케스트레이션하는 데 필요한 패턴과 인프라를 제공하며, 최소한의 코드로 정교한 AI 워크플로를 생성할 수 있다.

지원되는 워크플로 패턴

  • Sequential workflows: 에이전트가 정의된 순서로 실행되며, 이전 에이전트의 출력이 다음 에이전트에게 입력된다.

  • Concurrent workflows: 여러 에이전트가 병렬로 작업하여 더 빠른 처리를 가능하게 한다.

  • Handoff workflows: 컨텍스트 및 요구 사항에 따라 에이전트가 동적으로 제어를 전달한다.

  • Group chat: 에이전트들이 대화를 통해 복잡한 문제를 해결하기 위해 협력한다.

  • Magentic: 전담 관리자(manager)가 전문화된 에이전트 팀을 조정한다.

  • 도구 통합 및 프로덕션 지원: 간단한 C# 함수든 전체 MCP(Model Context Protocol) 서버든 도구를 원활하게 통합할 수 있으며, 종속성 주입, 미들웨어 파이프라인, OpenTelemetry를 통한 관찰 가능성을 기본적으로 지원하여 프로덕션 준비가 되어 있다.

AI Agent Web API 템플릿

  • Microsoft.Agents.AI.ProjectTemplates 패키지에 포함된 새로운 aiagent-webapi 템플릿을 사용하여 ASP.NET Core를 통해 서버 호스팅 에이전트를 빠르게 구축할 수 있다.

  • 이 템플릿은 에이전트를 호스팅하고 표준 HTTP 엔드포인트로 노출하는 ASP.NET Core Web API 프로젝트를 생성한다.

  • Microsoft Agent Framework Dev UI가 포함되어 있어 웹 기반 테스트 하네스를 통해 에이전트와 워크플로를 시각화하고 검증할 수 있다.

AG-UI 프로토콜 지원

  • MAF는 풍부한 에이전트 사용자 인터페이스 구축을 위한 AG-UI 프로토콜을 지원한다.

  • AG-UI는 스트리밍 UI, 프론트엔드 도구 호출, 공유 상태 관리 등을 쉽게 구축할 수 있는 경량 이벤트 기반 프로토콜이다.

  • Microsoft.Agents.AI.Hosting.AGUI.AspNetCore 패키지를 사용하여 에이전트에 대한 AG-UI 엔드포인트를 쉽게 매핑할 수 있다.

  • 기존 AG-UI 클라이언트 프레임워크(예: CopilotKit)를 사용하거나, Microsoft.Agents.AI.AGUI 패키지의 새로운 .NET AG-UI 채팅 클라이언트를 사용하여 .NET MAUI 또는 Blazor와 같은 .NET UI 프레임워크로 자체 UI 경험을 구축할 수 있다.

7.2. Microsoft.Extensions.AI 및 VectorData

  • 통합 추상화 제공: Microsoft.Extensions.AI 및 Microsoft.Extensions.VectorData는 AI 서비스를 애플리케이션에 통합하기 위한 통합된 추상화를 제공한다.

IChatClient 인터페이스

  • IChatClient 인터페이스는 OpenAI, Azure OpenAI, GitHub Models, Ollama 등 모든 공급자와 일관된 API를 통해 작동한다.

  • 이를 통해 코드를 다시 작성할 필요 없이 공급자를 쉽게 전환하거나 여러 백엔드를 지원할 수 있다.

통합 추상화 지원 기능

  • Provider flexibility: 코드 변경 없이 AI 공급자 간 전환이 가능하다.

  • Middleware pipeline: 모든 AI 호출에 캐싱, 로깅 또는 사용자 지정 동작을 추가할 수 있다.

  • Dependency injection: 익숙한 .NET 패턴을 사용하여 AI 서비스를 등록할 수 있다.

  • Telemetry: AI 사용 모니터링을 위한 OpenTelemetry 지원이 내장되어 있다.

  • Vector data: 벡터 데이터베이스 및 의미 검색을 위한 통합된 추상화가 제공된다.

  • 호환성: 이러한 구성 요소는 Microsoft Agent Framework, Semantic Kernel 및 자체 AI 구현과 원활하게 작동한다.

7.3. Model Context Protocol (MCP) 지원

  • MCP의 역할: .NET은 외부 도구 및 서비스로 AI 에이전트를 확장하기 위한 MCP(Model Context Protocol) 지원을 제공한다.

  • 표준화된 접근: MCP는 AI 에이전트가 데이터 소스, API 및 도구에 표준화된 방식으로 액세스할 수 있도록 하여 에이전트를 더 유능하고 다재다능하게 만든다.

  • MCP 서버 구축: .NET AI 템플릿을 설치하고 MCP 서버 템플릿을 사용하여 MCP 서버를 빠르게 구축하고 게시할 수 있다.

  • C# MCP SDK: C# MCP SDK는 정기적인 릴리스를 통해 최신 프로토콜 업데이트를 구현하며, 성장하는 MCP 생태계와의 호환성을 보장한다.

MCP를 통한 AI 에이전트 기능

  • 데이터베이스 및 API에 안전하게 액세스할 수 있다.

  • 명령 및 워크플로를 실행할 수 있다.

  • 파일을 읽고 수정할 수 있다.

  • 비즈니스 시스템과 통합할 수 있다.

  • 전문화된 도구 및 서비스를 사용할 수 있다.

  • 생태계 조성: MCP는 AI 에이전트가 외부 리소스와 상호 작용하는 방식을 표준화하여 .NET 생태계 전반에서 AI 기능을 구축, 공유 및 구성하는 것을 더 쉽게 만든다.

8. ASP.NET Core: 웹 앱 및 API 개발 개선

8.1. ASP.NET Core 핵심 개선 사항

  • 주요 초점: 이번 릴리스는 보안, 관찰 가능성 및 진단, 성능, 개발자 생산성에 중점을 두어 최신 웹 경험 구축을 위한 더 강력한 도구를 제공한다.

  • 자동 메모리 풀 축출: 장기 실행 애플리케이션에서 더 이상 필요하지 않은 메모리를 메모리 풀이 보유하는 문제를 해결하기 위해 자동 축출 기능이 도입되어, 유휴 메모리를 시스템에 반환하여 애플리케이션의 메모리 사용량을 줄이는 데 도움이 된다.

  • 웹 인증(Passkey) 지원: ASP.NET Core Identity는 WebAuthn 및 FIDO2 표준 기반의 패스키(passkey)를 지원하여 더 안전한 암호 없는 인증 경험을 구축할 수 있게 한다.

  • Native AOT 향상: webapiaot 템플릿에 OpenAPI 지원이 기본적으로 포함되며, 새로운 AOT 친화적인 유효성 검사를 통해 문서화된 미리 컴파일된 API를 더 쉽게 구축할 수 있다.

8.2. Blazor: 생산적인 컴포넌트 기반 웹 개발

컴포넌트 상태 지속성

  • 선언적 상태 지속성: 사전 렌더링(prerendering) 중 상태 지속이 훨씬 간단해졌으며, [PersistentState] 특성을 사용하여 보존해야 할 상태를 선언적으로 표시할 수 있다.

  • 회로 상태 지속성: Blazor 회로(circuits)가 네트워크 중단에 더 탄력적으로 대응하며, 장기간 연결이 끊긴 후 회로가 축출되기 전에 컴포넌트 상태가 자동으로 지속되어 사용자가 작업을 잃지 않도록 한다.

  • 회로 일시 중지 및 재개: 새로운 API를 통해 회로를 "일시 중지"하고 "재개"할 수 있어 비활성 클라이언트에 대한 리소스를 확보하여 서버 확장성을 개선한다.

성능 및 안정성

  • 최적화된 프레임워크 스크립트: Blazor 프레임워크 스크립트가 사전 압축되고 핑거프린팅된 정적 웹 자산으로 제공되어 로드 성능을 개선하고 적절한 캐싱을 보장한다.

  • WebAssembly 사전 로딩: 초기 로드 시간을 개선하기 위해 Blazor Web Apps는 이제 Link 헤더를 사용하여 프레임워크 자산을 자동으로 사전 로드하며, 독립 실행형 WebAssembly 앱도 고우선순위 자산 다운로드의 이점을 얻는다.

  • 응답 스트리밍 기본 활성화: Blazor WebAssembly 앱에서 HttpClient 응답이 기본적으로 스트리밍되어 대용량 응답 처리 시 성능을 개선하고 메모리 사용량을 줄일 수 있다.

폼 및 유효성 검사

  • 향상된 폼 유효성 검사: 새로운 소스 생성기 기반 시스템을 사용하여 중첩된 객체 및 컬렉션 항목을 자동으로 유효성 검사할 수 있으며, 이는 고성능이며 AOT 호환된다.

  • 새로운 InputHidden 컴포넌트: 폼에서 숨겨진 입력 필드를 렌더링하기 위한 새로운 컴포넌트가 제공된다.

개발자 경험

  • 자동화된 브라우저 테스트: WebApplicationFactory가 Playwright와 같은 브라우저 자동화 도구를 사용한 엔드투엔드 테스트를 지원하여 자동화된 UI 테스트 작성을 용이하게 한다.

  • JavaScript Interop 개선: JavaScript 객체의 인스턴스를 생성하고, 생성자를 호출하며, 동기 및 비동기 API를 사용하여 속성을 직접 읽거나 수정할 수 있게 되어 상호 운용성이 더욱 강력해졌다.

  • 향상된 “Not Found” 처리: Router 컴포넌트에서 전용 “Not Found” 페이지를 지정할 수 있으며, NavigationManager.NotFound() 메서드를 통해 서버 측 렌더링 또는 대화형 렌더링 중에 “Not Found” 응답을 쉽게 트리거할 수 있다.

  • QuickGrid 향상: QuickGrid 컴포넌트에 RowClass 매개변수가 추가되어 데이터에 따라 행에 사용자 지정 CSS 클래스를 적용할 수 있으며, 열 옵션 UI 숨기기를 명시적으로 처리할 수 있다.

8.3. 빠르고 현대적인 API 구축 (Minimal APIs 및 OpenAPI)

OpenAPI 개선 사항

  • OpenAPI 3.1 기본 지원: ASP.NET Core는 이제 OpenAPI 3.1 문서를 생성하며, 최신 JSON Schema 초안을 지원하여 널 허용 형식(nullable types)의 표현을 개선한다.

  • XML Comments 통합: OpenAPI 소스 생성기가 C# XML 주석을 자동으로 사용하여 생성된 OpenAPI 문서에 설명, 요약 및 기타 문서 필드를 채운다.

  • YAML OpenAPI 문서: OpenAPI 문서를 YAML 형식으로 제공할 수 있어 JSON보다 사람이 읽기 쉬운 대안을 제공한다.

  • 향상된 응답 설명: ProducesResponseType 특성에 선택적 Description 매개변수가 포함되어 API 응답에 더 많은 컨텍스트를 제공할 수 있다.

Minimal APIs 향상

  • 내장 유효성 검사: AddValidation()을 호출하여 쿼리, 헤더 및 요청 본문 매개변수에 대한 자동 유효성 검사를 활성화할 수 있다.

  • 유효성 검사가 실패하면 프레임워크는 유효성 검사 세부 정보와 함께 자동으로 400 Bad Request 응답을 반환하며, 이는 DataAnnotations와 함께 작동하고 중첩된 객체 및 컬렉션을 지원한다.

  • Server-Sent Events (SSE) 지원: 새로운 TypedResults.ServerSentEvents() 메서드를 통해 단일 HTTP 연결을 통해 클라이언트에 실시간 업데이트를 쉽게 스트리밍할 수 있다.

  • 사용자 정의 가능한 오류 응답: IProblemDetailsService와 유효성 검사 로직을 통합하여 일관되고 사용자 정의된 오류 응답을 생성할 수 있다.

8.4. 향상된 관찰 가능성 및 진단

  • 새로운 내장 메트릭: ASP.NET Core는 Blazor, 인증 및 권한 부여, Identity, 그리고 새로운 메모리 풀을 포함한 주요 구성 요소를 모니터링하기 위한 풍부한 새로운 메트릭 세트를 포함한다.

  • 향상된 Blazor 추적: Blazor Server 추적이 향상되어 회로 활동에 대한 더 자세한 정보를 제공함으로써 실시간으로 문제를 진단하기 쉽게 만든다.

  • Blazor WebAssembly 진단 도구: Blazor WebAssembly 애플리케이션을 위한 새로운 진단 도구가 제공되어 CPU 성능 프로파일을 수집하고, 메모리 덤프를 캡처하며, 런타임 메트릭을 수집할 수 있다.

9. .NET MAUI: 네이티브 크로스 플랫폼 앱 구축

플랫폼 업데이트

  • Android 16 (API 36 & 36.1): 최신 플랫폼 기능을 포함한 바인딩이 제공된다.

  • iOS 26.0: 최신 iOS 기능을 위한 바인딩이 제공된다.

  • Marshal methods enabled: 기본적으로 마샬 메서드가 활성화되어 시작 성능이 향상되었다.

컨트롤 향상

  • HybridWebView: 플랫폼별 사용자 정의를 위한 새로운 초기화 이벤트(WebViewInitializing, WebViewInitialized), InvokeJavaScriptAsync 오버로드, JavaScript 예외 처리가 추가되었다.

  • Web request interception: BlazorWebViewHybridWebView에 대해 헤더 수정, 요청 리디렉션 또는 로컬 응답 제공이 가능하다.

  • CollectionView/CarouselView: 향상된 iOS 핸들러가 이제 기본값으로 설정된다.

  • MediaPicker: 자동 EXIF 처리, PickMultipleAsync를 사용한 다중 파일 선택, 이미지 압축 지원이 추가되었다.

  • SafeArea management: 새로운 SafeAreaEdges API를 통해 여러 플랫폼을 지원하도록 향상되었다.

  • Secondary toolbar items: iOS 및 macOS에 보조 도구 모음 항목이 추가되었다.

XAML 개선 사항

  • Global and implicit XML namespaces: 선택적 기능으로, 반복적인 네임스페이스 선언을 제거하여 XAML 마크업을 단순화한다.

  • New XAML source generator: 컴파일 타임 XAML 처리를 통해 더 빠른 빌드 시간과 더 나은 IntelliSense 지원을 제공한다.

추가 하이라이트

  • Aspire 통합: 텔레메트리 및 서비스 검색을 포함하는 새로운 프로젝트 템플릿이 제공된다.

  • Diagnostics: ActivitySource 및 메트릭을 사용한 포괄적인 레이아웃 성능 모니터링이 가능하다.

  • Quality focus: 안정성과 성능에 대한 지속적인 개선이 이루어졌다.

10. Entity Framework Core 10: 고급 데이터 액세스

10.1. Azure SQL 및 SQL Server 지원

  • Vector search support: 새로운 vector 데이터 형식과 VECTOR_DISTANCE() 함수를 완벽하게 지원하여 SQL Server 2025 및 Azure SQL Database에서 의미 검색 및 RAG와 같은 AI 워크로드를 가능하게 한다.

  • JSON data type: SQL Server 2025의 네이티브 json 형식을 자동으로 사용하여 더 나은 성능과 안전성을 제공하며, JSON_VALUE()RETURNING 절을 사용하여 전체 LINQ 지원으로 쿼리할 수 있다.

  • Custom default constraint names: 기본 제약 조건의 이름을 지정하거나 모든 제약 조건에 대해 자동 이름 지정을 활성화할 수 있다.

10.2. Azure Cosmos DB 지원

  • Full-text search: FullTextContains, FullTextContainsAll, FullTextContainsAny, FullTextScore 함수를 사용하여 관련성 점수와 함께 효율적인 텍스트 검색을 활성화한다.

  • Hybrid search: RRF (Reciprocal Rank Fusion) 함수를 사용하여 벡터 유사도와 전체 텍스트 검색을 결합하여 AI 검색 정확도를 개선한다.

  • Vector search GA: 벡터 유사도 검색이 향상된 모델 빌딩 API와 소유 참조 엔터티(owned reference entities) 지원을 통해 프로덕션 준비가 완료되었다.

10.3. 복합 형식 및 JSON 처리 개선

  • Optional complex types: 복합 형식을 널 허용(nullable)으로 표시하여 더 유연한 데이터 모델을 만들 수 있다.

  • JSON mapping: 복합 형식을 단일 JSON 열에 매핑할 수 있으며, 전체 LINQ 쿼리 지원과 ExecuteUpdate를 통한 효율적인 대량 업데이트가 가능하다.

  • Struct support: 적절한 값 의미론(value semantics)을 가진 복합 형식에 대해 클래스 대신 .NET 구조체(structs)를 사용할 수 있다.

  • ExecuteUpdate for JSON: JSON 열 속성을 효율적으로 대량 업데이트할 수 있으며, 전체 문서를 로드하지 않고 속성을 제자리에서 업데이트한다.

10.4. LINQ 및 쿼리 개선 사항

  • Better parameterized collections: 새로운 기본 변환은 각 값을 별도의 매개변수로 전송하며, 카디널리티 정보를 보존하면서 쿼리 계획 캐싱을 최적화하기 위해 패딩을 추가한다.

  • LeftJoin and RightJoin support: .NET 10의 새로운 LINQ 조인 연산자에 대한 일급 지원이 제공되어 더 간단한 외부 조인 쿼리를 가능하게 한다.

  • Consistent split query ordering: 모든 SQL 문에서 적절한 순서를 통해 분할 쿼리(split queries)의 데이터 일관성 문제가 해결되었다.

10.5. 추가 하이라이트

  • Named query filters: 엔터티 형식당 여러 쿼리 필터를 정의하고 쿼리에서 특정 필터를 선택적으로 비활성화할 수 있다.

  • ExecuteUpdate with regular lambdas: 복잡한 표현식 트리 코드 없이 동적 업데이트 작업을 구축할 수 있다.

  • Security improvements: 인라인 상수가 기본적으로 로그에서 수정(redacted)되며, 원시 SQL API에서 문자열 연결에 대한 분석기 경고가 제공된다.

11. Windows 개발: 현대적인 데스크톱

  • 지속적인 향상: .NET 10은 WinUI 3, WPF, WinForms 전반에 걸쳐 Windows 앱 개발을 지속적으로 향상시킨다.

주요 하이라이트

  • Windows Forms: 향상된 클립보드 처리와 .NET Framework에서 포팅된 UITypeEditors를 통해 더 나은 마이그레이션 지원이 제공된다.

  • WPF: 성능 개선, Fluent 스타일 업데이트, 품질 향상이 이루어졌다.

  • WinUI 3: 최신 Windows App SDK 기능 및 개선 사항이 포함된다.

12. 개발자 도구 및 생산성 환경

12.1. Visual Studio 2026: AI 기반 개발 및 성능 향상

AI 기반 개발

  • Adaptive paste: Copilot이 붙여넣은 코드를 파일의 컨텍스트에 맞게 조정하며, 이름 수정, 서식 지정, 언어 간 번역(예: C++를 C#로)을 자동으로 수행한다.

  • Profiler Copilot Agent: CPU 사용량, 메모리 할당을 분석하고 최적화를 제안하며 BenchmarkDotNet 벤치마크를 생성하는 AI 비서이다.

  • Debugger Agent for unit tests: 실패한 테스트를 자동으로 디버깅하고, 가설을 형성하며, 수정 사항을 적용하고, 솔루션을 반복적으로 검증한다.

  • Code actions at your fingertips: 오른쪽 클릭 컨텍스트 메뉴에서 일반적인 작업(설명, 최적화, 테스트 생성 등)에 대한 즉각적인 Copilot 지원을 제공한다.

  • Copilot URL context: Copilot Chat에서 웹 문서를 직접 참조하여 더 정확한 응답을 얻을 수 있다.

생산성 향상

  • Mermaid chart rendering: Markdown 편집기와 Copilot Chat 응답에서 순서도 및 다이어그램을 직접 시각화한다.

  • Enhanced editor controls: 편집 경험을 극대화하기 위한 고급 여백 기능이 제공된다.

  • File exclusions in search: 검색 결과에 포함되는 파일을 더 잘 제어할 수 있다.

  • Code coverage for all editions: Dynamic code coverage가 Professional 에디션에서도 제공되며, 테스트된 줄이 편집기에서 직접 강조 표시된다.

디버깅 및 진단

  • Inline if-statement evaluation: 인라인 값과 Copilot 통찰력을 통해 조건부 로직을 더 빠르게 디버깅할 수 있다.

  • BenchmarkDotNet project template: 내장된 CPU 프로파일링 및 Copilot 통찰력으로 성능 벤치마킹을 빠르게 시작할 수 있다.

  • CodeLens with Optimize Allocations: 편집기에서 바로 Copilot에게 메모리 집약적인 메서드를 최적화하도록 요청할 수 있다.

  • Profiler Agent thread summarization: 토큰 제한에 접근할 때 컨텍스트를 유지하는 스마트 대화 요약 기능이 제공된다.

  • CMake diagnostics: CMake 프로젝트에서 CPU 사용량, 이벤트 뷰어, 메모리 사용량, 파일 I/O 도구에 대한 전체 지원이 제공된다.

현대적인 경험

  • New look and feel: Fluent UI 디자인 시스템과 11개의 새로운 틴티드 테마, 독립적인 편집기 모양 설정이 적용되었다.

  • Modern settings experience: Tools > Options를 대체하는 간소화되고 사용자 친화적인 설정 인터페이스가 제공된다.

  • SLNX support: 더 깔끔한 버전 관리를 위한 새로운 단순화된 솔루션 형식(SLNX)으로 작업할 수 있다.

  • Performance enhancements: 더 빠른 시작, 더 나은 메모리 관리, 전반적인 응답성 향상이 이루어졌다.

  • Aspire integration: 전문화된 도구 및 템플릿을 통한 Aspire 프로젝트에 대한 원활한 지원이 제공된다.

12.2. GitHub Copilot 및 C# Dev Kit

GitHub Copilot 기능

  • AI completions for C#: 관련 파일의 컨텍스트를 통해 더 나은 C# 코드 완성을 제공한다.

  • Fix code issues: AI 지원 문제 해결이 가능하다.

  • Debug tests: 실패한 테스트 디버깅에 도움을 준다.

  • IEnumerable visualizer: AI 기반 LINQ 표현식을 시각화한다.

  • Modernize to .NET 10: 기존 .NET 애플리케이션을 .NET 10으로 업그레이드하고 현대화하는 데 도움을 주며, 주요 변경 사항, 새 API 및 모범 사례에 대한 지침을 제공한다.

C# Dev Kit for Visual Studio Code 업데이트

  • Solution-less workspace mode: 더 간단한 프로젝트를 위해 자동 솔루션 파일 생성 없이 작업할 수 있다.

  • SLNX support: 새로운 XML 기반 솔루션 형식에 대한 전체 도구 지원이 제공된다.

  • Enhanced Razor editing: Blazor 및 Razor Pages에서 향상된 IntelliSense, 서식 지정, 코드 탐색이 가능하다.

  • Integrated test coverage: 편집기에서 시각적 표시기와 함께 VS Code의 코드 커버리지 UI에 대한 네이티브 지원이 제공된다.

  • Custom project templates: VS Code에서 직접 타사 및 사용자 지정 dotnet new 템플릿으로 프로젝트를 생성할 수 있다.

  • NuGet package management: 통합된 명령으로 패키지를 추가, 업데이트 및 제거할 수 있다.

  • Drag-and-drop file management: 솔루션 탐색기 내에서 프로젝트를 쉽게 재구성할 수 있다.

  • Aspire support: 전체 오케스트레이션 지원을 통해 Aspire 프로젝트를 실행하고 디버깅할 수 있다.

12.3. .NET SDK 및 NuGet CLI 향상

.NET SDK CLI 향상

  • dotnet test에서 통합 테스트 실행을 위한 Microsoft.Testing.Platform 지원이 추가되었다.

  • 인기 있는 셸(bash, fish, PowerShell, zsh, nushell)을 위한 네이티브 탭 완성 스크립트가 제공된다.

  • Docker 파일이나 EnableSdkContainerSupport 없이도 콘솔 앱을 위한 컨테이너 이미지를 네이티브로 생성할 수 있다.

  • dotnet tool exec 및 새로운 dnx 스크립트를 사용한 원샷 도구 실행이 가능하다.

  • 기계가 읽을 수 있는 명령 설명을 위한 --cli-schema를 사용한 CLI 인트로스펙션이 가능하다.

  • 자체 포함, 트리밍 및 AOT 옵션을 가진 여러 RuntimeIdentifiers를 지원하는 플랫폼별 .NET 도구가 제공된다.

  • 게시 및 네이티브 AOT 지원을 통해 향상된 파일 기반 앱이 제공된다.

  • SLNX 솔루션 형식이 지원되며, 이는 사람이 읽기 쉽고 관리하기 쉬운 단순화된 XML 기반 솔루션 파일이다.

NuGet: 보안 및 생산성 향상

  • Enhanced security: .NET 10 프로젝트에 대해 기본적으로 전이적 종속성 감사가 활성화되며, GitHub Advisory Database와의 통합 및 Dependabot 지원을 통해 자동 보안 업데이트가 가능하다.

  • MCP support: NuGet을 통해 MCP 서버를 게시하고 사용할 수 있다.

  • New NuGet.org: 다크 모드가 적용된 새로운 디자인이 제공된다.

  • Vulnerability remediation: dotnet package update --vulnerable 명령을 사용하여 취약한 패키지를 첫 번째 보안 버전으로 업데이트할 수 있다.

13. .NET 10 장기 지원 및 릴리스 일정

  • LTS 지원 기간: .NET 10은 3년간 지원되는 LTS 릴리스이며, 2028년 11월 10일까지 주요 업데이트 및 보안 패치를 받는다.

  • 릴리스 주기: .NET은 짝수 번호 LTS 릴리스(3년 지원)와 홀수 번호 STS(Standard Term Support) 릴리스(24개월 지원)로 구성된 예측 가능한 연간 릴리스 주기를 따른다.

  • STS 지원 연장: 최근 STS 지원이 18개월에서 24개월로 연장됨에 따라, .NET 9와 .NET 8은 .NET 10이 마지막 지원 연도를 시작하는 날과 같은 날인 2026년 11월 10일에 지원이 종료될 예정이다 .

15개의 좋아요