컴파일러는 해당 코드의 구문 및 의미 체계의 유효성을 검사할 때 애플리케이션 코드의 자세한 모델을 빌드합니다. 이 모델을 사용하여 소스 코드에서 실행 가능한 출력을 빌드합니다. .NET 컴파일러 플랫폼 SDK는 이 모델에 대한 액세스를 제공합니다. 점점 더 IntelliSense, 리팩터링, 지능형 이름 바꾸기, "모든 참조 찾기" 및 "정의로 이동"과 같은 IDE(통합 개발 환경) 기능을 사용하여 생산성을 향상합니다. 코드 분석 도구를 사용하여 코드 품질을 개선하고 코드 생성기를 사용하여 애플리케이션 생성을 지원합니다. 이러한 도구가 더 스마트해짐에 따라 애플리케이션 코드를 처리할 때 컴파일러만 만드는 모델에 점점 더 많이 액세스해야 합니다. 이것은 Roslyn API의 핵심 임무입니다. 불투명한 상자를 열고 도구와 최종 사용자가 컴파일러가 코드에 대해 가지고 있는 풍부한 정보를 공유할 수 있도록 합니다. Roslyn을 통해 소스 코드를 입력하고 개체 코드를 출력하는 비명시적 번역기가 되는 대신, 컴파일러는 플랫폼이 됩니다. 이는 도구 및 애플리케이션에서 코드 관련 작업에 사용할 수 있는 API입니다.
.NET 컴파일러 플랫폼 SDK 개념
.NET 컴파일러 플랫폼 SDK는 코드 중심 도구 및 애플리케이션을 만들기 위한 진입 장벽을 크게 낮춥니다. 메타 프로그래밍, 코드 생성 및 변환, C# 및 Visual Basic 언어의 대화형 사용, 도메인별 언어에 C# 및 Visual Basic 포함과 같은 영역에서 혁신을 위한 많은 기회를 만듭니다.
.NET 컴파일러 플랫폼 SDK를 사용하면 코딩 실수를 찾아 수정하는 분석기 및 코드 수정을 빌드할 수 있습니다. 분석기는 구문(코드 구조) 및 의미 체계를 이해하여 수정해야 하는 사례를 검색합니다. 코드 수정은 분석기 또는 컴파일러 진단에서 발견한 코딩 실수를 해결하기 위한 하나 이상의 제안된 수정 사항을 제공합니다. 일반적으로 분석기와 관련 코드 수정은 단일 프로젝트에 함께 패키지됩니다.
분석기 및 코드 수정은 정적 분석을 사용하여 코드를 이해합니다. 코드를 실행하거나 다른 테스트 이점을 제공하지 않습니다. 그러나 종종 버그, 지속 불가능한 코드 또는 표준 지침 위반으로 이어지는 사례를 지적할 수 있습니다.
.NET 컴파일러 플랫폼 SDK를 사용하면 분석기 및 코드 수정 외에도 코드 리팩터링을 빌드할 수 있습니다. 또한 C# 또는 Visual Basic 코드베이스를 검사하고 이해할 수 있는 단일 API 집합을 제공합니다. 이 단일 코드베이스를 사용할 수 있으므로 .NET 컴파일러 플랫폼 SDK에서 제공하는 구문 및 의미 체계 분석 API를 활용하여 분석기 및 코드 수정을 더 쉽게 작성할 수 있습니다. 컴파일러에서 수행하는 분석을 복제하는 대규모 작업에서 해제된 경우 프로젝트 또는 라이브러리에 대한 일반적인 코딩 오류를 찾고 수정하는 보다 집중적인 작업에 집중할 수 있습니다.
더 작은 이점은 분석기 및 코드 수정이 더 작고 Visual Studio에서 로드할 때 프로젝트의 코드를 이해하기 위해 고유한 코드베이스를 작성한 경우보다 훨씬 적은 메모리를 사용한다는 것입니다. 컴파일러와 Visual Studio에서 사용하는 것과 동일한 클래스를 활용하여 고유한 정적 분석 도구를 만들 수 있습니다. 즉, 팀이 IDE의 성능에 큰 영향을 주지 않고 분석기 및 코드 수정을 사용할 수 있습니다.
분석기 및 코드 수정을 작성하기 위한 세 가지 주요 시나리오가 있습니다.
팀 코딩 표준 적용
많은 팀에는 다른 팀 구성원과의 코드 검토를 통해 적용되는 코딩 표준이 있습니다. 분석기 및 코드 수정은 이 프로세스를 훨씬 더 효율적으로 만들 수 있습니다. 코드 검토는 개발자가 팀의 다른 사용자와 작업을 공유할 때 발생합니다. 개발자는 의견을 얻기 전에 새 기능을 완료하는 데 필요한 모든 시간을 투자했을 것입니다. 개발자가 팀의 관행과 일치하지 않는 습관을 강화하고 있는 동안 몇 주가 지날 수 있습니다.
분석기는 개발자가 코드를 작성할 때 실행됩니다. 개발자는 즉시 지침을 따르도록 권장하는 즉각적인 피드백을 받습니다. 개발자는 프로토타입 생성을 시작하는 즉시 규격 코드를 작성하는 습관을 쌓습니다. 이 기능이 사람들의 검토를 받을 준비가 되면 모든 표준 지침이 엄격히 준수됩니다.
팀은 팀 코딩 사례를 위반하는 가장 일반적인 사례를 찾는 분석기 및 코드 수정을 빌드할 수 있습니다. 이러한 기능을 각 개발자의 컴퓨터에 설치하여 표준을 적용할 수 있습니다.
팁 (조언)
자체 분석기를 빌드하기 전에 기본 제공 분석기를 확인합니다. 자세한 내용은 코드 스타일 규칙을 참조하세요.
라이브러리 패키지와 함께 지침 제공
NuGet의 .NET 개발자가 사용할 수 있는 다양한 라이브러리가 있습니다. 이들 중 일부는 Microsoft, 타사 회사 및 커뮤니티 구성원 및 자원 봉사자의 다른 회사에서 왔습니다. 이러한 라이브러리는 개발자가 해당 라이브러리에 성공할 수 있을 때 더 많은 채택과 더 높은 검토를 받습니다.
설명서를 제공하는 것 외에도 라이브러리의 일반적인 잘못된 사용을 찾아 수정하는 분석기 및 코드 수정을 제공할 수 있습니다. 이러한 즉각적인 수정은 개발자가 더 빨리 성공하는 데 도움이 됩니다.
NuGet에서 라이브러리를 사용하여 분석기 및 코드 수정을 패키지할 수 있습니다. 이 시나리오에서는 NuGet 패키지를 설치하는 모든 개발자도 분석기 패키지를 설치합니다. 라이브러리를 사용하는 모든 개발자는 실수 및 제안된 수정 사항에 대한 즉각적인 피드백의 형태로 팀의 지침을 즉시 받습니다.
일반 지침 제공
.NET 개발자 커뮤니티는 환경을 통해 잘 작동하는 패턴과 가장 잘 피할 수 있는 패턴을 발견했습니다. 여러 커뮤니티 구성원이 권장되는 패턴을 적용하는 분석기를 만들었습니다. 우리가 더 많은 것을 배울 때, 항상 새로운 아이디어의 여지가있다.
이러한 분석기는 Visual Studio Marketplace 에 업로드하고 개발자가 Visual Studio를 사용하여 다운로드할 수 있습니다. 언어와 플랫폼의 초보자들은 수락된 관행을 빠르게 배우고 .NET 여정 초기 단계에서 더 일찍 생산성을 발휘하게 됩니다. 이러한 사례가 더 널리 사용됨에 따라 커뮤니티는 이러한 관행을 채택합니다.
원본 생성기
원본 생성기는 컴파일 시간에 만들고 컴파일에 추가할 수 있는 코드인 컴파일 시간 메타프로그래밍을 사용하도록 설정하는 것을 목표로 합니다. 원본 생성기는 실행하기 전에 컴파일 내용을 읽고 추가 파일에 액세스할 수 있습니다. 이 기능을 사용하면 사용자 C# 코드와 생성기 관련 파일을 모두 검색할 수 있습니다. 원본 생성기 쿡북을 사용하여 증분 원본 생성기를 빌드하는 방법을 알아볼 수 있습니다.
다음 단계
.NET 컴파일러 플랫폼 SDK에는 코드 생성, 분석 및 리팩터링을 위한 최신 언어 개체 모델이 포함되어 있습니다. 이 섹션에서는 .NET 컴파일러 플랫폼 SDK에 대한 개념적 개요를 제공합니다. 자세한 내용은 빠른 시작, 샘플 및 자습서 섹션에서 확인할 수 있습니다.
다음 5개 항목에서 .NET 컴파일러 플랫폼 SDK의 개념에 대해 자세히 알아볼 수 있습니다.
시작하려면 .NET 컴파일러 플랫폼 SDK를 설치해야 합니다.
설치 방법 - Visual Studio 설치 프로그램
Visual Studio 설치관리자에서 .NET 컴파일러 플랫폼 SDK를 찾는 방법에는 두 가지가 있습니다.
Visual Studio 설치 관리자를 사용하여 설치 - 워크로드 보기
.NET 컴파일러 플랫폼 SDK는 Visual Studio 확장 개발 워크로드의 일부로 자동으로 선택되지 않습니다. 선택적 구성 요소로 선택해야 합니다.
- Visual Studio 설치 관리자 실행
- 수정을 선택합니다.
- Visual Studio 확장 개발 워크로드를 확인합니다.
- 요약 트리에서 Visual Studio 확장 개발 노드를 엽니다.
- .NET 컴파일러 플랫폼 SDK에 대한 확인란을 선택합니다. 선택적 구성 요소 아래에서 마지막으로 찾을 수 있습니다.
필요에 따라 DGML 편집 기에서 시각화 도우미에 그래프를 표시할 수도 있습니다.
- 요약 트리에서 개별 구성 요소 노드를 엽니다.
- DGML 편집기 상자의 확인란을 선택합니다.
Visual Studio 설치 관리자를 사용하여 설치 - 개별 구성 요소 탭
- Visual Studio 설치 관리자 실행
- 수정을 선택합니다.
- 개별 구성 요소 탭 선택
- .NET 컴파일러 플랫폼 SDK에 대한 확인란을 선택합니다. 컴파일러, 빌드 도구 및 런타임 섹션 아래에 맨 위에 있습니다.
필요에 따라 DGML 편집 기에서 시각화 도우미에 그래프를 표시할 수도 있습니다.
- DGML 편집기의 확인란을 체크합니다. 코드 도구 섹션에서 찾을 수 있습니다.
.NET