Compartir vía


Desarrollo con Visual F# en Visual Studio

En este artículo se incluye información sobre las características de Visual Studio para el desarrollo de F#.

Instalación de la compatibilidad con F#

Para desarrollar con F# en Visual Studio, instale primero la carga de trabajo desarrollo de escritorio de .NET si aún no lo ha hecho. Las cargas de trabajo de Visual Studio se instalan a través del Instalador de Visual Studio, que puede abrir seleccionando Herramientas>Obtener herramientas y características.

Carga de trabajo de desarrollo de escritorio de .NET en Visual Studio

Características del proyecto de F#

Hay varias plantillas de proyecto y elemento disponibles para F# en Visual Studio. En la imagen siguiente se muestran algunas de las plantillas de proyecto de F# para .NET Core y .NET Standard:

Plantillas de proyecto de F# en Visual Studio

En la imagen siguiente se muestran algunas de las plantillas de elemento de F#:

Plantillas de elementos de F# en Visual Studio

Para obtener más información sobre las plantillas de elementos para el acceso a datos, consulte Proveedores de tipos de F#.

En la tabla siguiente se resumen las características de las propiedades del proyecto para F#:

Configuración del proyecto ¿Se admite en F#? Notas
Archivos de recursos
Configuración de compilación, depuración y referencia
Multifocalización
Icono y manifiesto No Disponible a través de las opciones de línea de comandos del compilador.
Servicios de cliente de ASP.NET No
ClickOnce No Use un proyecto de cliente en otro lenguaje .NET, si procede.
Nomenclatura segura No Disponible a través de las opciones de línea de comandos del compilador.
Publicación y control de versiones de ensamblados No
Análisis de código No Las herramientas de análisis de código se pueden ejecutar manualmente o como parte de un comando posterior a la compilación.
Seguridad (cambiar los niveles de confianza) No

Diseñador de proyectos

El Diseñador de proyectos consta de varias páginas de propiedades del proyecto agrupadas por funcionalidad relacionada. Las páginas disponibles para proyectos de F# son principalmente un subconjunto de las disponibles para otros lenguajes y se describen en la tabla siguiente. Los vínculos se proporcionan a la página del Diseñador de proyectos de C# correspondiente.

Página Diseñador de proyectos Vínculos relacionados Descripción
Aplicación Página Aplicación, Diseñador de proyectos Permite especificar las propiedades y la configuración de nivel de aplicación, como si va a crear una biblioteca o un archivo ejecutable, qué versión de .NET tiene como destino la aplicación e información sobre dónde se almacenan los archivos de recursos que usa la aplicación.
Construir Página Compilar, Diseñador de proyectos Permite controlar cómo se compila el código.
Eventos de compilación Página Eventos de compilación, Diseñador de proyectos Permite especificar comandos que se ejecuten antes o después de una compilación.
Depurar página Depurar , diseñador de proyectos Permite controlar cómo se ejecuta la aplicación durante la depuración. Esto incluye qué comandos usar y cuál es el directorio de inicio de la aplicación y los modos de depuración especiales que desea habilitar, como código nativo y SQL.
Paquete (solo SDK de .NET) No disponible Permite definir metadatos del paquete NuGet al publicar como un paquete NuGet.
Rutas de acceso de referencia Administrar referencias en un proyecto Permite especificar dónde buscar ensamblados de los que depende el código.
Recursos (solo SDK de .NET) No disponible Permite generar y administrar un archivo de recursos predeterminado.

Configuración específica de F#.

En la tabla siguiente se resumen las opciones de configuración específicas de F#:

Página Diseñador de proyectos Configuración Descripción
Construir Generación de llamadas finales Si está seleccionado, habilita el uso de la instrucción del lenguaje intermedio de Microsoft (MSIL). Esto hace que el marco de pila se reutilice para las funciones recursivas de cola. Equivalente a la --tailcalls opción del compilador.
Construir Otras marcas Permite especificar opciones adicionales de línea de comandos del compilador.

Características del editor de código y texto

En F#, se admiten las siguientes características del código de Visual Studio y los editores de texto:

Característica Descripción ¿Se admite en F#?
Comentario automático Permite comentar o quitar la marca de comentario de secciones del código.
Formato automático Reformate el código con sangría y estilo estándar. No
Favoritos Permite guardar lugares en el editor.
Cambiar sangría Sangrías o sangrías líneas seleccionadas.
Sangría inteligente Aplica sangría y desentrada automáticamente el cursor según las reglas de ámbito de F#.
Buscar y reemplazar texto Permite buscar en un archivo, un proyecto o una solución y, posiblemente, cambiar texto.
Vaya a la definición de la API de .NET. Cuando el cursor se coloca en una API de .NET, muestra el código generado a partir de metadatos de .NET. No
Ir a la definición de la API definida por el usuario Cuando el cursor está en una entidad de programa que definió, mueve el cursor a la ubicación del código donde se define la entidad.
Ir a la línea Permite ir a una línea específica de un archivo, por número de línea.
Barras de navegación en la parte superior del archivo Permite saltar a ubicaciones en el código, por ejemplo, nombre de función.
Directrices de estructura de bloques Muestra instrucciones que indican ámbitos de F#, que se pueden mantener sobre para obtener una vista previa.
Esquematización Permite contraer secciones del código para crear una vista más compacta.
Tabify Convierte espacios en pestañas.
Colorización de tipos Muestra los nombres de tipo definidos en un color especial.
Búsqueda rápida. Consulte Búsqueda rápida, Buscar y reemplazar ventana. Permite buscar en un archivo o proyecto.
Ctrl+Haga clic en Ir a definición. Permite mantener presionada la tecla Ctrl y hacer clic en un símbolo de F# para invocar Ir a definición.
Ir a Definición desde QuickInfo Símbolos que se pueden hacer clic en la información sobre herramientas que invocan Ir a definición.
Ir a Todo Habilita la navegación global de coincidencia aproximada para todas las construcciones de F# a través de Ctrl+T.
Cambio de nombre en línea Cambia el nombre de todas las apariciones de un símbolo insertado.
Buscar todas las referencias Busca todas las apariciones de un símbolo en un código base.
Simplificación de la corrección de código de nombre Quita calificadores innecesarios para símbolos de F#.
Eliminación de la corrección de código de instrucción sin open usar Quita todas las instrucciones innecesarias open de un documento.
Corrección de código de valor sin usar Sugiere cambiar el nombre de un identificador sin usar para subrayado.

Para obtener información general sobre la edición de código en Visual Studio y las características del editor de texto, vea Escribir código en el editor.

Características de IntelliSense

En la tabla siguiente se resumen las características de IntelliSense admitidas y no admitidas en F#:

Característica Descripción ¿Se admite en F#?
Implementación automática de interfaces Genera códigos auxiliares de código para los métodos de interfaz.
Fragmentos de código Inserta código de una biblioteca de construcciones de codificación comunes en temas. No
Palabra completa Guarda la escritura completando palabras y nombres a medida que escribes.
Finalización automática Cuando está habilitada, hace que la palabra complete seleccione la primera coincidencia mientras escribe, en lugar de esperar a que seleccione una o presione Ctrl+Espacio.
Finalización de la oferta para símbolos en espacios de nombres sin abrir Con la finalización automática, se sugiere un símbolo coincidente que resida en un espacio de nombres sin abrir, lo que ofrece que se complete con la instrucción correspondiente open cuando se selecciona.
Generación de elementos de código Permite generar código auxiliar para una variedad de construcciones. No
Lista de miembros Al escribir el operador de acceso a miembros (.), muestra los miembros de un tipo.
Organizar usings/Open Organiza los espacios de nombres a los que se hace referencia mediante instrucciones en C# o directivas open en F#. No
Información de parámetros Muestra información útil sobre los parámetros a medida que escribe una llamada de función.
Información rápida Muestra la declaración completa de cualquier identificador del código.
Finalización automática de llaves Completa automáticamente las construcciones de sintaxis de tipo llave de F# de manera transaccional.

Para obtener información general sobre IntelliSense, consulte Uso de IntelliSense.

Características de depuración

En la tabla siguiente se resumen las características que están disponibles al depurar código de F#:

Característica Descripción ¿Se admite en F#?
Ventana Automático Muestra variables automáticas o temporales. No
Puntos de interrupción Permite pausar la ejecución de código en puntos específicos durante la depuración.
Puntos de interrupción condicionales Habilita los puntos de interrupción que prueban una condición que determina si la ejecución debe pausarse.
Editar y continuar Permite que el código se modifique y compile mientras depura un programa en ejecución sin detener y reiniciar el depurador. No
Evaluador de expresiones Evalúa y ejecuta código en tiempo de ejecución. No, pero se puede usar el evaluador de expresiones de C#, aunque debe usar la sintaxis de C#.
Depuración histórica Permite entrar en el código ejecutado previamente.
Ventana Locales Muestra valores y variables definidos localmente.
Ejecutar hasta el cursor Permite ejecutar código hasta que se alcanza la línea que contiene el cursor.
Paso a paso por instrucciones Permite avanzar la ejecución y pasar a cualquier llamada de función.
Paso a paso por encima Le permite avanzar en la ejecución en el marco de pila actual y pasar después de cualquier llamada de función.

Para obtener información general sobre el depurador de Visual Studio, vea Depuración en Visual Studio.

Herramientas adicionales

En la tabla siguiente se resume la compatibilidad con F# en las herramientas de Visual Studio.

Herramienta Descripción ¿Se admite en F#?
Jerarquía de llamadas Muestra la estructura anidada de las llamadas de función en el código. No
Métricas de código Recopila información sobre el código, como recuentos de líneas. No
Vista de clases Proporciona una vista basada en tipos del código de un proyecto. No
Ventana de lista de errores Muestra una lista de errores en el código.
F# Interactivo Permite escribir código F# (o copiar y pegar) y ejecutarlo inmediatamente, independientemente de la compilación del proyecto. La ventana interactiva de F# es un bucle Read, Evaluate, Print (REPL).
Examinador de objetos Permite ver los tipos en un ensamblado. Los tipos de F# tal como aparecen en ensamblados compilados no aparecen exactamente al crearlos. Puede examinar la representación compilada de tipos de F#, pero no puede ver los tipos tal como aparecen en F#.
Resultados (Ventana) Muestra la salida de compilación.
Análisis de rendimiento Proporciona herramientas para medir el rendimiento del código.
Ventana Propiedades Muestra y habilita la edición de propiedades del objeto en el entorno de desarrollo que tiene el foco.
Explorador de servidores Proporciona maneras de interactuar con una variedad de recursos de servidor.
Explorador de soluciones Permite ver y administrar proyectos y archivos.
Lista de tareas Permite administrar elementos de trabajo relacionados con el código. No
Proyectos de prueba Proporciona características que le ayudan a probar el código. No
Caja de herramientas Muestra pestañas que contienen objetos arrastrables, como controles y secciones de texto o código.

Consulte también