Visual Studio에서 Visual F#을 사용하여 개발
이 문서에는 F# 개발을 위한 Visual Studio 기능 관련 정보가 포함되어 있습니다.
F# 설치 지원
Visual Studio에서 F#을 사용하여 개발하려면 .NET 데스크톱 개발이 아직 없는 경우 먼저 설치합니다. 도구가>도구 및 기능 가져오기를 선택하면 열리는 Visual Studio 설치 관리자를 통해 Visual Studio 워크로드를 설치합니다.
F# 프로젝트 기능
Visual Studio의 F#에서 다양한 프로젝트 및 항목 템플릿을 사용할 수 있습니다. 다음 이미지에는 .NET Core 및 .NET Standard에 대한 F# 프로젝트 템플릿 중 일부가 나와 있습니다.
다음 이미지는 몇 가지 F# 항목 템플릿입니다.
데이터 액세스를 위한 항목 템플릿에 대한 자세한 내용은 F# 형식 공급자를 참조하세요.
다음 표에 F#에 대한 프로젝트 속성의 기능이 요약되어 있습니다.
프로젝트 설정 | F#에서 지원되는지 여부 | 주의 |
---|---|---|
리소스 파일 | 예 | |
빌드, 디버그 및 참조 설정 | 예 | |
다중 대상 지정 | 예 | |
아이콘 및 매니페스트 | 아니요 | 컴파일러 명령줄 옵션을 통해 사용할 수 있습니다. |
ASP.NET 클라이언트 서비스 | 아니요 | |
ClickOnce | 아니요 | 해당하는 경우에 다른 .NET 언어에서 클라이언트 프로젝트를 사용합니다. |
강력한 이름 지정 | 아니요 | 컴파일러 명령줄 옵션을 통해 사용할 수 있습니다. |
어셈블리 게시 및 버전 관리 | 아니요 | |
코드 분석 | 아니요 | 코드 분석 도구를 수동으로 또는 빌드 후 명령의 일부로 실행할 수 있습니다. |
보안(신뢰 수준 변경) | 아니요 |
프로젝트 디자이너
프로젝트 디자이너는 관련된 기능을 그룹화하는 여러 프로젝트 속성 페이지로 구성됩니다. F# 프로젝트에 사용할 수 있는 페이지는 주로 다른 언어에 사용 가능한 하위 집합이며 다음 표에 설명되어 있습니다. 링크는 해당하는 C# 프로젝트 디자이너 페이지에 제공됩니다.
프로젝트 디자이너 페이지 | 관련 링크 | 설명 |
---|---|---|
애플리케이션 | 애플리케이션 페이지, 프로젝트 디자이너 | 라이브러리 또는 실행 파일을 만드는지 여부, 애플리케이션이 대상으로 지정하는 .NET의 버전 및 애플리케이션이 사용하는 리소스 파일이 저장되는 위치에 대한 정보와 같은 애플리케이션 수준 설정 및 속성을 지정할 수 있습니다. |
빌드 | 프로젝트 디자이너, 빌드 페이지 | 코드가 컴파일되는 방식을 제어할 수 있습니다. |
빌드 이벤트 | 빌드 이벤트 페이지, 프로젝트 디자이너 | 컴파일 전후에 실행할 명령을 지정할 수 있습니다. |
디버그 | 프로젝트 디자이너, 디버그 페이지 | 디버깅하는 동안 애플리케이션 실행 방식을 제어할 수 있습니다. 사용할 명령 및 애플리케이션의 시작 디렉터리, 네이티브 코드 및 SQL과 같이 활성화하려는 특수한 디버깅 모드가 포함됩니다. |
패키지(.NET SDK에만 해당) | 해당 없음 | NuGet 패키지로 게시하려는 경우 NuGet 패키지 메타데이터를 정의할 수 있습니다. |
참조 경로 | 프로젝트에서 참조 관리 | 코드가 사용하는 어셈블리를 검색할 위치를 지정할 수 있습니다. |
리소스(.NET SDK에만 해당) | 해당 없음 | 기본 리소스 파일을 생성하고 관리할 수 있습니다. |
F# - 특정 설정
다음 표에는 F#에 관련된 설정이 요약되어 있습니다.
프로젝트 디자이너 페이지 | 설정 | 설명 |
---|---|---|
빌드 | Tail 호출 생성 | 선택하는 경우 MSIL(Microsoft Intermediate Language) 명령을 사용할 수 있습니다. 그러면 스택 프레임을 tail 재귀 함수에 다시 사용할 수 있습니다. --tailcalls 컴파일러 옵션과 동일합니다. |
빌드 | 다른 플래그 | 추가 컴파일러 명령줄 옵션을 지정할 수 있습니다. |
코드 및 텍스트 편집기 기능
Visual Studio 코드 및 텍스트 편집기의 다음 기능은 F#에서 지원됩니다.
기능 | 설명 | F#에서 지원되는지 여부 |
---|---|---|
자동 주석 | 코드의 섹션을 주석으로 처리하거나 주석 처리를 제거할 수 있습니다. | 예 |
서식 자동 지정 | 표준 들여쓰기 및 스타일을 사용하여 코드의 서식을 다시 지정합니다. | 아니요 |
책갈피 | 편집기에서 위치를 저장할 수 있습니다. | 예 |
들여쓰기 변경 | 선택한 줄을 들여쓰거나 내어씁니다. | 예 |
스마트 들여쓰기 | F# 범위 지정 규칙에 따라 커서를 자동으로 들여쓰고 들여쓰기를 취소합니다. | 예 |
텍스트 찾기 및 바꾸기 | 파일, 프로젝트 또는 솔루션에서 검색하고 잠재적으로 텍스트를 변경할 수 있습니다. | 예 |
.NET API에 대한 정의로 이동 | .NET API에 커서를 놓으면 .NET 메타데이터에서 생성된 코드를 보여 줍니다. | 아니요 |
사용자 정의 API에 대한 정의로 이동 | 지정한 프로그램 엔터티에 커서를 놓으면 엔터티가 정의된 위치의 코드에서 해당 위치로 커서를 이동합니다. | 예 |
줄 이동 | 줄 번호에 따라 파일에서 특정 줄로 이동할 수 있습니다. | 예 |
파일의 위쪽에 있는 탐색 모음 | 함수 이름과 같은 코드에 있는 위치로 점프할 수 있습니다. | 예 |
블록 구조 가이드 | 미리 보기에 대해 가리킬 수 있는 F# 범위를 나타내는 지침을 보여 줍니다. | 예 |
개요 | 더 간단한 보기를 만드는 코드의 섹션을 축소할 수 있습니다. | 예 |
탭으로 바꿈 | 공백을 탭으로 변환합니다. | 예 |
유형 색 지정 | 정의된 형식 이름을 특별한 색으로 표시합니다. | 예 |
빠른 찾기. 빠른 찾기, 찾기 및 바꾸기 창을 참조하세요. | 파일 또는 프로젝트에서 검색할 수 있습니다. | 예 |
Ctrl+키를 누른 채로 정의로 이동을 클릭 | Ctrl 키를 누른 채로 F# 기호를 클릭하면 정의로 이동을 호출할 수 있습니다. | 예 |
QuickInfo에서 정의로 이동 | 도구 설명 내에서 클릭할 수 있는 기호로, 정의로 이동을 호출합니다. | 예 |
전체로 이동 | Ctrl+T를 통해 모든 F# 구문에 대한 전역, 유사 항목 일치를 탐색할 수 있습니다. | 예 |
인라인 이름 바꾸기 | 기호 인라인의 모든 항목의 이름을 바꿉니다. | 예 |
모든 참조 찾기 | 코드 베이스에서 기호의 모든 발생을 찾습니다. | 예 |
이름 코드 수정 사항 간소화 | F# 기호에 대한 불필요한 한정자를 제거합니다. | 예 |
사용하지 않는 open 문 코드 수정 제거 |
문서에서 모든 불필요한 open 문을 제거합니다. |
예 |
사용하지 않는 값 코드 수정 | 사용하지 않는 식별자의 이름을 바꾸는 것을 밑줄로 제안합니다. | 예 |
Visual Studio의 코드 편집 및 텍스트 편집기의 기능에 대한 일반적인 정보는 편집기에서 코드 작성을 참조하세요.
IntelliSense 기능
다음 표에는 F#에서 지원 및 지원되지 않는 IntelliSense 기능이 요약되어 있습니다.
기능 | 설명 | F#에서 지원되는지 여부 |
---|---|---|
인터페이스 자동 구현 | 인터페이스 메서드에 대한 코드 스텁을 생성합니다. | 예 |
코드 조각 | 일반적인 코딩 구문의 라이브러리에서 항목으로 코드를 삽입합니다. | 아니요 |
단어 자동 완성 | 입력할 때 단어와 이름을 완성시켜 입력을 저장합니다. | 예 |
자동 완성 | 사용하도록 설정하면 사용자가 입력할 때 단어 자동 완성 기능이 사용자가 하나를 선택하거나 Ctrl+스페이스바를 누를 때까지 기다리지 않고 첫 번째 일치 항목을 선택합니다. | 예 |
열려 있지 않은 네임스페이스의 기호에 대한 완성 제공 | 자동 완성 기능을 사용하면 열려 있지 않은 네임스페이스에 상주하는 일치하는 기호가 제안되어 선택하는 경우 해당하는 open 문으로 완성됩니다. |
예 |
코드 요소 생성 | 다양한 구문에 대한 스텁 코드를 생성할 수 있습니다. | 아니요 |
멤버 목록 | 멤버 액세스 연산자(.)을 입력하면 형식의 멤버가 표시됩니다. | 예 |
Usings/Open 구성 | C#의 using 문 또는 F#의 open 지시문에 의해 참조되는 네임스페이스를 구성합니다. | 아니요 |
매개 변수 정보 | 함수 호출을 입력할 때 매개 변수에 대한 유용한 정보를 표시합니다. | 예 |
요약 정보 | 코드의 식별자에 대한 전체 선언을 표시합니다. | 예 |
자동 중괄호 완료 | 트랜잭션 방식으로 자동으로 F# 중괄호 유사 구문을 생성을 완료합니다. | 예 |
IntelliSense에 대한 일반적인 정보는 IntelliSense 사용을 참조하세요.
디버깅 기능
다음 표에는 F# 코드를 디버깅할 때 사용할 수 있는 기능이 요약되어 있습니다.
기능 | 설명 | F#에서 지원되는지 여부 |
---|---|---|
자동 창 | 자동 또는 임시 변수를 보여 줍니다. | 아니요 |
중단점 | 디버깅하는 동안 특정 지점에서 코드 실행을 일시 중지할 수 있습니다. | 예 |
조건부 중단점 | 실행을 일시 중지할지 여부를 결정하는 조건을 테스트하는 중단점을 설정합니다. | 예 |
편집하며 계속하기 | 실행 중인 프로그램을 디버깅할 때 디버거를 중지했다가 다시 시작하지 않으면서 코드를 수정 및 컴파일할 수 있습니다. | 아니요 |
식 계산기 | 런타임에서 코드를 평가하고 실행합니다. | 아니요. 단, C# 식 계산기는 사용할 수 있지만 C# 구문을 사용해야 합니다. |
기록 디버깅 | 이전에 실행된 코드를 시작할 수 있습니다. | 예 |
지역 창 | 로컬로 정의된 값 및 변수를 보여 줍니다. | 예 |
커서까지 실행 | 커서를 포함하는 줄에 도달할 때까지 코드를 실행할 수 있습니다. | 예 |
한 단계씩 코드 실행 | 실행을 발전시키고 함수 호출으로 이동할 수 있습니다. | 예 |
프로시저 단위 실행 | 현재 스택 프레임에서 실행하면서 지난 함수 호출로 이동할 수 있습니다. | 예 |
Visual Studio 디버거에 대한 일반적인 정보는 Visual Studio의 디버깅을 참조하세요.
추가 도구
다음 표에는 Visual Studio 도구의 F#을 위한 지원이 요약되어 있습니다.
도구 | 설명 | F#에서 지원되는지 여부 |
---|---|---|
호출 계층 구조 | 코드에서 함수 호출의 중첩된 구조를 표시합니다. | 아니요 |
코드 메트릭 | 줄 수와 같은 코드에 대한 정보를 수집합니다. | 아니요 |
클래스 뷰 | 프로젝트에서 코드의 형식 기반 보기를 제공합니다. | 아니요 |
오류 목록 창 | 코드의 오류 목록을 보여 줍니다. | 예 |
F# Interactive | F# 코드를 입력(또는 복사 및 붙여넣기)하고, 즉시 실행하여 프로젝트를 독립적으로 빌드할 수 있습니다. F# 대화형 창은 REPL(Read, Evaluate, Print Loop)입니다. | 예 |
개체 브라우저 | 어셈블리에서 형식을 볼 수 있습니다. | 컴파일된 어셈블리에 나타나는 대로 F# 형식은 사용자가 작성한 대로 정확하게 나타나지 않습니다. F# 형식의 컴파일된 표현을 통해 탐색할 수는 있지만, F#에서 나타나는 대로 형식을 볼 수는 없습니다. |
출력 창 | 빌드 출력을 표시합니다. | 예 |
성능 분석 | 코드의 성능을 측정하기 위한 도구를 제공합니다. | 예 |
속성 창 | 포커스가 있는 개발 환경에서 개체의 속성 편집을 표시하고 사용하도록 설정합니다. | 예 |
서버 탐색기 | 다양한 서버 리소스와 상호 작용하는 방법을 제공합니다. | 예 |
솔루션 탐색기 | 프로젝트 및 파일을 보고 관리할 수 있습니다. | 예 |
작업 목록 | 코드와 관련된 작업 항목을 관리할 수 있습니다. | 아니요 |
테스트 프로젝트 | 코드를 테스트하는 데 도움이 되는 기능을 제공합니다. | 아니요 |
도구 상자 | 텍스트 또는 코드의 섹션 및 컨트롤과 같이 끌기 가능한 개체를 포함하는 탭을 표시합니다. | 예 |