CommandLineLite es una librería ligera, intuitiva y sin dependencias innecesarias para manejar argumentos de línea de comandos en aplicaciones .NET.
Ideal para herramientas de consola donde quieres simplicidad, claridad y cero magia detrás del código.
✨ Diseñada para desarrolladores que prefieren escribir código limpio y tener control total del flujo.
- ✅ Sintaxis clara y minimalista
- 🧩 Definición tipada de opciones (
Option<T>) - 🔍 Soporte para alias (
-h,--help) - 📘 Generación automática de ayuda (
Help.Print()) - 🧱 Integración opcional con
appsettings.jsonpara versión - ⚙️ Compatible con
.NET 8y.NET 9
Desde NuGet (próximamente):
dotnet add package CommandLineLiteO simplemente copia los archivos fuente si prefieres mantenerlo interno.
El siguiente ejemplo está disponible en el directorio tests, e ilustra cómo usar CommandLineLite para crear una aplicación de consola con parámetros, validación y ayuda automática.
using CommandLineLite;
public class Opciones : IValidatable
{
public string Nombre { get; set; } = "";
public int Edad { get; set; } = 0;
public bool Verbose { get; set; }
public void Validate()
{
if (string.IsNullOrWhiteSpace(Nombre))
throw new ArgumentException("Debe especificar el nombre con --nombre o -n");
if (Edad <= 0)
throw new ArgumentException("La edad debe ser mayor a 0");
}
}
public static class Program
{
public static void Main(string[] args)
{
// Definir el comando principal
var command = new Command("Ejemplo de uso de CommandLineLite");
// Registrar las opciones que el programa acepta
command.AddOption(new Option<string>(
"--nombre",
"Nombre del usuario",
isRequired: true,
alias: "-n"
));
command.AddOption(new Option<int>(
"--edad",
"Edad del usuario",
defaultValue: 18,
alias: "-e")
);
command.AddOption(new Option<bool>(
"--verbose",
"Muestra mensajes detallados",
alias: "-v"))
;
// Parsear los argumentos en la clase de opciones
var opciones = Parser.Parse<Opciones>(command, args);
// Lógica del programa
Console.WriteLine($"Hola {opciones.Nombre}, tienes {opciones.Edad} años.");
if (opciones.Verbose)
Console.WriteLine("Modo detallado activado.");
}
}lo puedes ejecutar por ejemplo con:
dotnet run -- --nombre Marcos --edad 35 --verbosedotnet run -- --help
Uso: aplicacion [opciones]
Ejemplo de uso de CommandLineLite
Opciones:
--nombre, -n Nombre del usuario
--edad, -e Edad del usuario
--verbose, -v Muestra mensajes detallados
--help, -h Muestra esta ayuda
--version, -v Muestra la versión de la aplicación¿Te resultó útil CommandLineLite?
⭐ Dale una estrella al repositorio
¿Quieres apoyar el desarrollo?
☕ Invítame un café