Repolode
Cysharp

Cysharp/ConsoleAppFramework

Framework CLI de C# sin dependencias ni asignaciones, compatible con AOT y que genera código de análisis y enrutamiento en tiempo de compilación mediante un Source Generator.

Estrellas
2,234
Forks
130
Issues abiertos
2
Último commit
ayer

¿Qué es?

ConsoleAppFramework es una biblioteca de C# para crear aplicaciones de línea de comandos. En lugar de depender de atributos y reflexión en tiempo de ejecución, analiza las expresiones lambda o los métodos que se pasan a ConsoleApp.Run y genera el código de análisis de argumentos y despacho durante la compilación. El resultado es una aplicación sin dependencias del framework en tiempo de ejecución, lo que mantiene pequeño el tamaño del ensamblado y permite la compatibilidad con Native AOT.

El framework está dirigido a .NET 8 con C# 13 y admite comandos síncronos y asíncronos, comandos múltiples y anidados, y alias de comandos. De forma predeterminada, los nombres de las opciones usan lower-kebab-case, y las descripciones y los alias de las opciones se obtienen de los comentarios de documentación XML. La salida de ayuda y de versión se genera como constantes de cadena.

También incluye gestión de Ctrl+C mediante CancellationToken, pipelines de filtros (middleware), gestión del código de salida, validación con DataAnnotations, inyección de dependencias para clases de comandos, opciones globales y análisis mediante ISpanParsable<T> o JSON.

Funciones clave

  • 01Genera código de análisis de argumentos y despacho de comandos en tiempo de compilación, sin dependencias en tiempo de ejecución.
  • 02Admite Native AOT y evita la reflexión y el boxing.
  • 03Gestiona Ctrl+C y SIGTERM mediante CancellationToken para permitir un apagado ordenado.
  • 04Proporciona pipelines de filtros (middleware) alrededor de la ejecución de comandos.
  • 05Genera el texto de ayuda a partir de los comentarios de documentación XML, incluidos los alias de las opciones.
  • 06Admite la validación con DataAnnotations y la inyección de dependencias para clases de comandos.

Casos de uso

  • Crear herramientas CLI pequeñas y de inicio rápido que deban publicarse como binarios Native AOT.
  • Organizar una herramienta de línea de comandos .NET grande en comandos anidados con inyección de dependencias.
  • Escribir herramientas internas de tipo batch que necesiten cancelar de forma segura con Ctrl+C tareas de larga duración.

Inicio rápido

  1. 1

    Añade el paquete NuGet a tu proyecto

    dotnet add package ConsoleAppFramework
  2. 2

    Llama a ConsoleApp.Run en Program con una lambda o un método

Antes de usarlo

  • Requiere .NET 8 o posterior. En los proyectos de .NET 8, hay que establecer explícitamente la versión del lenguaje C# 13.

En colecciones

Temas

Preguntas frecuentes

¿Qué es ConsoleAppFramework?
Framework CLI de C# sin dependencias ni asignaciones, compatible con AOT y que genera código de análisis y enrutamiento en tiempo de compilación mediante un Source Generator. ConsoleAppFramework es una biblioteca de C# para crear aplicaciones de línea de comandos. En lugar de depender de atributos y reflexión en tiempo de ejecución, analiza las expresiones lambda o los métodos que se pasan a ConsoleApp.Run y genera el código de análisis de argumentos y despacho durante la compilación. El resultado es una aplicación sin dependencias del framework en tiempo de ejecución, lo que mantiene pequeño el tamaño del ensamblado y permite la compatibilidad con Native AOT.
¿ConsoleAppFramework es gratuito? ¿Qué licencia tiene?
ConsoleAppFramework es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿ConsoleAppFramework sigue mantenido?
Mantenimiento activo. El último commit de ConsoleAppFramework fue el 6 nov 2026.
¿Para qué puedo usar ConsoleAppFramework?
Crear herramientas CLI pequeñas y de inicio rápido que deban publicarse como binarios Native AOT. Organizar una herramienta de línea de comandos .NET grande en comandos anidados con inyección de dependencias. Escribir herramientas internas de tipo batch que necesiten cancelar de forma segura con Ctrl+C tareas de larga duración.
¿Cómo se instala ConsoleAppFramework?
Añade el paquete NuGet a tu proyecto: dotnet add package ConsoleAppFramework Llama a ConsoleApp.Run en Program con una lambda o un método
¿Dónde consigo ConsoleAppFramework?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/Cysharp/ConsoleAppFramework

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados