시나리오 및 기술 참조

.NET 대한 GitHub Copilot 현대화는 scenariosskills 통해 현대화하는 데 도움이 됩니다.

  • Scenarios는 .NET Framework에서 .NET 10으로 업그레이드하는 등 주요 업그레이드 목표를 위한 엔드투엔드 관리 워크플로입니다. 시나리오는 평가, 계획 및 작업별 실행과 같은 전체 수명 주기를 조정합니다.
  • 기술은 EF6를 EF Core로 변환하거나 WCF를 CoreWCF로 교체하는 등 특정 업그레이드 작업에 중점을 두는 기능입니다. 업그레이드하는 동안 에이전트가 관련 코드를 발견하면 기술이 자동으로 활성화됩니다.

에이전트는 C# 및 Visual Basic 프로젝트를 모두 지원합니다.

팁 (조언)

이름을 기억할 필요가 없습니다. 원하는 항목(".NET 10"으로 업그레이드, ", "replace Newtonsoft.Json") 에이전트가 올바른 시나리오 및 기술을 자동으로 로드합니다. 당신은 또한 물어 볼 수 있습니다: "당신은 나를 도울 수 있습니까?"

시나리오

시나리오는 에이전트의 최상위 업그레이드 워크플로입니다. 대화를 시작할 때 에이전트는 목표에 가장 적합한 시나리오를 식별하고 단계별로 안내합니다.

시나리오 용도 예제 프롬프트
.NET 버전 업그레이드 이전 .NET 버전에서 .NET 8 이상으로 프로젝트를 업그레이드합니다. "내 솔루션을 .NET 10"
SDK 스타일 변환 레거시 프로젝트 파일을 최신 SDK 스타일 형식으로 변환합니다. "프로젝트를 SDK 스타일로 변환"
Newtonsoft.Json 업그레이드 Newtonsoft.Json을 솔루션 전체에서 System.Text.Json으로 대체합니다. "Newtonsoft.Json에서 업그레이드"
SqlClient 업그레이드 System.Data.SqlClient를 Microsoft 업그레이드합니다. Data.SqlClient. "최신 패키지로 SqlClient 업데이트"
Azure Functions 업그레이드 Azure Functions in-process에서 격리된 작업자 모델로 업그레이드합니다. "내 Azure Functions 업그레이드"
에이전트에 의미 체계 커널 SK 에이전트에서 Microsoft 에이전트 프레임워크로 업그레이드합니다. "내 SK 에이전트 업그레이드"

엔드투엔드 연습은 핵심 개념을 참조하세요.

.NET 버전 업그레이드

가장 일반적인 시나리오입니다. 프로젝트를 이전 .NET 변형에서 최신 버전으로 업그레이드합니다.

출처 목표/타겟
.NET Framework(모든 버전) .NET 8 이상
.NET Core 1.x-3.x .NET 8 이상
.NET 5 이상 .NET 8 이상

에이전트는 종속성 그래프를 분석하고, NuGet 호환성을 확인하고, 호환성이 손상되는 변경 내용을 식별하고, 솔루션에 가장 적합한 전략(상향식, 하향식 또는 한 번에 모두)을 사용하여 작업 계획을 만듭니다. 프로젝트에 형식 변환이 필요한 경우 에이전트는 업그레이드의 일부로 자동으로 처리합니다.

SDK 스타일 변환

대상 프레임워크를 변경하지 않고 레거시 .csproj.vbproj 파일을 최신 SDK 스타일 형식으로 변환합니다. 에이전트는 버전 업그레이드 중에 변환을 자동으로 처리합니다. 필요한 경우 이 시나리오를 독립적으로 실행합니다.

Newtonsoft.Json 업그레이드

솔루션 전체에서 Newtonsoft.Json 대체합니다System.Text.Json. 사용자 지정 변환기, 특성, [JsonProperty]JObject/JArray 사용량 및 serialization 설정을 처리합니다.

SqlClient 업그레이드

System.Data.SqlClient에서 Microsoft.Data.SqlClient 업그레이드합니다. Encrypt=true 기본 동작 변경 및 연결 문자열 차이점을 처리합니다.

업그레이드 Azure Functions

in-process 호스팅 모델에서 Program.csHostApplicationBuilder 사용하여 격리된 작업자 모델로 Azure Functions 업그레이드합니다. Application Insights 업그레이드를 포함합니다.

Microsoft 에이전트 프레임워크에 의미 체계 커널

의미 체계 커널 에이전트(ChatCompletionAgent, OpenAIAssistantAgent)에서 Microsoft 에이전트 프레임워크로 업그레이드합니다. 패키지 및 API 패턴을 업데이트합니다.

업그레이드 기술: 일반

프로젝트 유형에 적용되는 범용 업그레이드 기술입니다.

기술 용도
SDK 스타일로 변환 레거시 프로젝트 파일을 최신 SDK 스타일 형식으로 변환합니다. 다중 프로젝트 솔루션에 대해 토폴로지 순서 지정을 사용합니다.
autofac을 .NET DI Autofac을 완전히 제거하고 모든 등록을 기본 제공 ASP.NET Core 종속성 주입으로 업그레이드합니다.
.NET Autofac을 DI 컨테이너로 유지하지만 ASP.NET Core 통합을 현대화합니다.
암호화 네임스페이스 업그레이드 와 같은 System.Security.Cryptography 형식에 X509Certificate2 대한 네임스페이스 분할을 SignedCms수정합니다.
Newtonsoft를 System.Text.Json으로 업그레이드 에서 Newtonsoft.Json전체 업그레이드 변환기, 특성, 동적 형식 및 설정을 처리합니다.
에이전트에 의미 체계 커널 업그레이드 의미 체계 커널 에이전트 API를 Microsoft 에이전트 AI Framework로 업그레이드합니다.
MSMQ로 업그레이드. 메시징 System.Messaging(.NET Framework에만 해당)에서 .NET Core용 MSMQ.Messaging 업그레이드합니다.
중앙 패키지 관리로 변환 를 사용하여 Directory.Packages.props프로젝트별 NuGet 패키지 버전 관리를 중앙 집중식 패키지 관리로 변환합니다.
C# 버전 현대화 최신 언어 기능을 사용하도록 C# 코드를 업그레이드합니다(C# 7.0~15). 기계적 변경 내용을 dotnet format 일괄 처리하고 의미 체계 변환에 LLM 판단을 사용합니다.
C# nullable 참조 업그레이드 nullable 참조 형식을 사용하도록 설정하고 모든 CS86xx 경고를 체계적으로 해결합니다. 출시 전략, 주석 지침 및 프레임워크 관련 고려 사항을 다룹니다.

업그레이드 기술: 데이터 액세스

Entity Framework, LINQ to SQL 및 SQL 클라이언트 라이브러리를 포함하여 데이터 액세스 계층을 업그레이드하기 위한 기술입니다.

기술 용도
EDMX를 Code-First로 업그레이드 EF6 Database-First(.edmx) 모델을 EF Core Code-First로 변환합니다. 데이터베이스에서 엔터티를 스캐폴드합니다.
EF DbContext 업그레이드 ASP.NET Core 종속성 주입에 DbContext 등록합니다. EF6에서 EF Core로의 패턴과 기존 EF Core 패턴을 모두 처리합니다.
EF6 Code-First EF Core로 업그레이드 EF6 Code-First EF Core로 업그레이드합니다. 패키지를 교환하고, 네임스페이스를 업데이트하고, 바꾸기 및 EntityTypeConfigurationDbModelBuilder.
Microsoft 업그레이드. Data.SqlClient 에서 System.Data.SqlClient업그레이드합니다. Encrypt=true 기본 변경 내용 및 연결 문자열 차이점을 처리합니다.

기술 업그레이드: 웹 및 ASP.NET

ASP.NET Framework 애플리케이션을 ASP.NET Core 업그레이드하기 위한 기술입니다.

ASP.NET Framework 업그레이드

기술 용도
ASP.NET Framework를 Core로 업그레이드 컨트롤러, 뷰, 미들웨어, 인증 및 구성을 포함하여 ASP.NET Framework(MVC/WebAPI)에서 ASP.NET Core 포괄적으로 업그레이드합니다.
ASP.NET ID 업그레이드 ASP.NET MVC ID를 ASP.NET Core ID(IdentityDbContext, UserManager, SignInManager 및 인증 미들웨어 포함)로 업그레이드합니다.
Global.asax 업그레이드 Global.asax 수명 주기 이벤트(Application_Start, Application_Error)를 ASP.NET Core Program.cs 및 미들웨어로 변환합니다.
OWIN을 미들웨어로 업그레이드 OWIN/Katana 미들웨어(IAppBuilder, OwinMiddleware)를 ASP.NET Core 해당 항목으로 대체합니다.
OWIN 쿠키 인증 업그레이드 OWIN 쿠키 인증 미들웨어를 ASP.NET Core 쿠키 인증으로 업그레이드합니다.
OWIN OAuth를 JWT로 업그레이드 OWIN OAuth 전달자 토큰 인증을 ASP.NET Core JWT 전달자 인증으로 업그레이드합니다.
OWIN OpenID Connect 업그레이드 OWIN OpenID Connect 미들웨어를 ASP.NET Core OpenID Connect 인증으로 업그레이드합니다.

MVC 기능

기술 용도
MVC 인증 업그레이드 ASP.NET MVC 인증을 ASP.NET Core ID 및 인증 미들웨어로 업그레이드합니다.
MVC 번들 업그레이드 System.Web.Optimization 번들을 직접 <script>/<link> 태그 또는 최신 번들로 변환합니다.
MVC 구성 업그레이드 web.configapp.config 설정을 ASP.NET Core 구성 시스템(appsettings.json, 환경 변수)으로 업그레이드합니다.
MVC 콘텐츠 협상 업그레이드 콘텐츠 협상 패턴 및 포맷터를 ASP.NET Core 업그레이드합니다.
MVC 컨트롤러 업그레이드 MVC 및 WebAPI 컨트롤러를 ASP.NET Core 컨트롤러 패턴으로 업그레이드합니다.
MVC 종속성 주입 업그레이드 DI 컨테이너 등록을 ASP.NET Core 기본 제공 종속성 주입으로 업그레이드합니다.
MVC 필터 업그레이드 전역 MVC 필터(FilterConfig, GlobalFilters)를 ASP.NET Core 미들웨어 및 필터 파이프라인으로 변환합니다.
MVC HTTP 파이프라인 업그레이드 HTTP 모듈 및 처리기를 ASP.NET Core 미들웨어로 업그레이드합니다.
MVC HttpContext 업그레이드 System.Web.HttpContext 사용량을 ASP.NET Core HttpContext 업그레이드합니다.
MVC 로깅 업그레이드 로깅을 Microsoft.Extensions.Logging 업그레이드합니다.
MVC 모델 바인딩 업그레이드 모델 바인딩 패턴을 ASP.NET Core 모델 바인딩으로 업그레이드합니다.
MVC Razor 보기 업그레이드 Razor 보기, 레이아웃 및 보기 구성 요소를 ASP.NET Core Razor로 업그레이드합니다.
MVC 라우팅 업그레이드 RouteCollection 라우팅을 ASP.NET Core 엔드포인트 라우팅(MapControllerRoute, 특성 라우팅)으로 변환합니다.
MVC 세션 상태 업그레이드 세션 상태를 ASP.NET Core 분산 세션으로 업그레이드합니다.
MVC 정적 파일 업그레이드 정적 파일 처리를 ASP.NET Core 정적 파일 미들웨어로 업그레이드합니다.
MVC System.Web 어댑터 업그레이드 System.Web 어댑터를 사용하여 ASP.NET Framework에서 ASP.NET Core 증분 업그레이드합니다.
MVC 유효성 검사 업그레이드 유효성 검사 특성 및 패턴을 ASP.NET Core 유효성 검사로 업그레이드합니다.

WCF

기술 용도
WCF를 CoreWCF로 업그레이드 서버 쪽 WCF 서비스를 .NET 6 이상에 대해 CoreWCF 업그레이드합니다. 호스팅, 바인딩, 동작 확장 및 비동기 계약을 변환합니다.

기술 업그레이드: 클라우드 및 Azure

기술 용도
Azure Functions 시작 in-process Startup 클래스에서 Program.cs 사용하여 격리된 작업자 모델로 Azure Functions 업그레이드합니다.
v2 IHostApplicationBuilder 사용하여 v2 호스팅 패턴으로 Azure Functions 업그레이드합니다.
Azure Key Vault 레거시 Azure Key Vault SDK를 최신 Azure.Security.KeyVault 라이브러리로 업그레이드합니다.
Azure Service Bus 레거시 Azure Service Bus SDK를 최신 Azure.Messaging.ServiceBus 라이브러리로 업그레이드합니다.
Azure Storage 레거시 Azure Storage SDK를 최신 Azure.Storage 라이브러리로 업그레이드합니다.

기술 업그레이드: 라이브러리

기술 용도
ADAL을 MSAL로 업그레이드 ADAL(Azure Active Directory 인증 라이브러리)을 MSAL(Microsoft 인증 라이브러리)으로 업그레이드합니다.
ASP.NET SignalR ASP.NET SignalR을 ASP.NET Core SignalR로 업그레이드합니다.
본드 인터페이스 업그레이드 Microsoft Bond serialization을 최신 대안으로 업그레이드합니다.
데이터 EDM을 OData로 업그레이드 형식을 Data.Edm OData 라이브러리로 업그레이드합니다.
데이터 OData를 OData Core로 업그레이드 Microsoft.Data.OData Microsoft.OData.Core 업그레이드합니다.
Data Services 클라이언트 업그레이드 WCF Data Services 클라이언트를 최신 OData 클라이언트로 업그레이드합니다.
PowerShell SDK 업그레이드 Microsoft.PowerShell.SDK 패키지를 사용하여 PowerShell 모듈을 Windows PowerShell 5.1에서 PowerShell 7+로 업그레이드합니다.
SPA 서비스를 SPA 프록시로 업그레이드 Microsoft.AspNetCore.SpaServices SPA 프록시 호스팅 모델로 업그레이드합니다.
System.Spatial 업그레이드 Microsoft.SpatialSystem.Spatial 최신 공간 대안으로 업그레이드합니다.
WebAPI CORS 업그레이드 System.Web.Http.Cors ASP.NET Core CORS 미들웨어로 업그레이드합니다.
WebAPI OData 업그레이드 WebAPI OData를 ASP.NET Core OData로 업그레이드합니다.

기술이 활성화되는 경우

에이전트는 업그레이드 세션이 전개됨에 따라 점진적으로 기술을 로드합니다.

언제 어떻게 되나요?
세션 시작 에이전트는 일치하는 시나리오 및 코드베이스와 즉시 관련된 모든 기술을 로드합니다.
실행 중 에이전트는 작업을 통해 작업할 때 EDMX 파일, WCF 서비스 또는 OWIN 미들웨어와 같은 특정 업그레이드 패턴이 발생할 때 요청 시 특수 기술을 추가로 로드합니다.
요청시 언제든지 에이전트에 모든 기술을 사용하도록 요청할 수 있습니다. 예를 들어 "WCF를 CoreWCF로 업그레이드하도록 도와주세요" 또는 "EF6 업그레이드 기술 사용"을 참조하세요.

기술 로드를 관리할 필요가 없습니다. 에이전트가 자동으로 처리합니다. 필요한 내용을 설명하기만 하면 됩니다.

사용자 고유의 기술 만들기

내부 프레임워크 업그레이드, 코딩 규칙 또는 사용자 지정 업그레이드 워크플로와 같은 코드베이스와 관련된 에이전트 패턴을 학습하는 사용자 지정 기술을 만듭니다.

리포지토리() 또는 사용자 프로필(.github/skills/%UserProfile%/.copilot/skills/)에 기술을 배치하면 에이전트가 자동으로 기술을 선택합니다.

사용자 지정 기술을 만드는 방법에 대한 자세한 내용은 사용자 지정 업그레이드 지침 적용을 참조하세요.