Adfines.Net.Puky Se trata de un paquete NuGet desarrollado especificamente para la plataforma .NET. Este paquete proporciona a los desarrolladores herramientas utiles para trabajar con aplicaciones de consola y para la lectura del archivo appsettings.json en sus proyectos. Entre las funcionalidades que ofrece se incluyen: la capacidad de escribir en la consola con o sin salto de linea, la representacion de vistas, la visualizacion de porcentajes mediante barras de progreso, y la implementacion de entradas seguras para la captura de datos.
Especificidad para la plataforma .NET: El paquete esta disenado exclusivamente para ser utilizado en proyectos basados en la plataforma .NET.
Herramientas para aplicaciones de consola: Proporciona funcionalidades especificas para facilitar el desarrollo de aplicaciones de consola.
Lectura del archivo appsettings.json: Incluye capacidades para leer y trabajar con el archivo de configuracion appsettings.json, comunmente utilizado en proyectos .NET.
Escritura en consola: Ofrece la posibilidad de escribir en la consola, con opciones para incluir o omitir saltos de linea segun sea necesario.
Representacion de vistas: Facilita la creacion y visualizacion de vistas dentro de aplicaciones de consola.
Visualizacion de porcentajes con barras de progreso: Incluye herramientas para representar visualmente el progreso de una tarea mediante barras de progreso y porcentajes.
Entrada segura de datos: Implementa mecanismos para garantizar la seguridad en la captura de datos por parte del usuario.
Estas caracteristicas lo convierten en una herramienta util y versatil para desarrolladores que trabajan en proyectos .NET, especialmente en aplicaciones de consola que requieren interaccion con el usuario y manejo de configuraciones.
Instalar Adfines.Net.Puky con nuget.org
Puedes instalar Adfines.Net.Puky desde NuGet Package Manager en Visual Studio o usando la CLI de .NET. Para instalarlo desde la linea de comandos, ejecuta: dotnet add package Adfines.Net.Puky --version 1.0.0
dotnet add package Adfines.Net.Puky --version 1.0.0
Para soporte, correo electronico: adfines.net@gmail.com
Puedes buscar documentacion sobre el proyecto en la siguiente <<web>>
Digita en consola con saltos de linea.
using Adfines.Net.Puky;
//Establece un titulo para el terminal
Bash.Title("Titulo de la consola");
//Da un salto de linea
Bash.Jump();
//Limpia tola la pantalla
Bash.Cls();
//Borra la linea actual en la consola
Bash.Erase();
//Borra N cantidad de lineas de la consola
Bash.Erase(5);
//Escribe en pantalla con color por defecto (args opcionales)
Bash.Write("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Verde (args opcionales)
Bash.Success("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Rojo (args opcionales)
Bash.Error("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Amarillo (args opcionales)
Bash.Warning("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Blanco (args opcionales)
Bash.Message("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Morado (args opcionales)
Bash.Sweet("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
Bash
La clase Bash
de la libreria Adfines.Net.Puky
proporciona metodos utiles para interactuar con la consola en aplicaciones .NET. A continuacion, se describen sus funcionalidades y parametros:
Permite definir un titulo para la ventana de la consola.
title
: Texto que se mostrara como titulo.Inserta un salto de linea en la consola. No requiere parametros.
Elimina todo el contenido de la pantalla de la consola. No requiere parametros.
Borra el contenido de la linea actual en la consola. No requiere parametros.
Borra un numero especifico de lineas desde la posicion actual del cursor hacia arriba.
lines
: Numero de lineas a borrar.Escribe un mensaje en la consola utilizando el color por defecto. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion (ej. {0}
, {1}
).args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color verde, ideal para indicar operaciones exitosas. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color rojo, util para mostrar errores o advertencias criticas. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color amarillo, ideal para advertencias o mensajes de precaucion. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color blanco, util para mensajes informativos o neutrales. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color morado, ideal para resaltar mensajes de manera personalizada. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.format
:
Cadena de texto que puede incluir marcadores de posicion (ej. {0}
, {1}
) para insertar valores dinamicos.
args
:
Valores que se utilizan para reemplazar los marcadores de posicion en la cadena format
. Pueden ser cadenas, numeros, fechas, etc.
Digita en consola sin saltos de linea.
using Adfines.Net.Puky;
//Establece un titulo para el terminal
Shell.Title("Titulo de la consola");
//Da un salto de linea
Shell.Jump();
//Limpia tola la pantalla
Shell.Cls();
//Borra la linea actual en la consola
Shell.Erase();
//Borra N cantidad de lineas de la consola
Shell.Erase(5);
//Escribe en pantalla con color por defecto
Shell.Write("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Verde
Shell.Success("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Rojo
Shell.Error("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Amarillo
Shell.Warning("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Blanco
Shell.Message("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
//Escribe en pantalla con color Morado
Shell.Sweet("parametros {0} con {1}-n cantidad de argumentos", "string,int,etc.", 1);
Shell
La clase Shell
de la libreria Adfines.Net.Puky
ofrece funcionalidades similares a la clase Bash
, pero con una diferencia clave: escribe en la consola sin saltos de linea automaticos, lo que permite un mayor control sobre la salida de texto. A continuacion, se describen sus metodos y parametros:
Permite definir un titulo para la ventana de la consola.
title
: Texto que se mostrara como titulo.Inserta un salto de linea en la consola. No requiere parametros.
Elimina todo el contenido de la pantalla de la consola. No requiere parametros.
Borra el contenido de la linea actual en la consola. No requiere parametros.
Borra un numero especifico de lineas desde la posicion actual del cursor hacia arriba.
lines
: Numero de lineas a borrar.Escribe un mensaje en la consola utilizando el color por defecto. No anade saltos de linea automaticos. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion (ej. {0}
, {1}
).args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color verde, ideal para indicar operaciones exitosas. No anade saltos de linea automaticos. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color rojo, util para mostrar errores o advertencias criticas. No anade saltos de linea automaticos. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color amarillo, ideal para advertencias o mensajes de precaucion. No anade saltos de linea automaticos. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color blanco, util para mensajes informativos o neutrales. No anade saltos de linea automaticos. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.Escribe un mensaje en color morado, ideal para resaltar mensajes de manera personalizada. No anade saltos de linea automaticos. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.args
: Valores que reemplazan los marcadores de posicion.format
:
Cadena de texto que puede incluir marcadores de posicion (ej. {0}
, {1}
) para insertar valores dinamicos.
args
:
Valores que se utilizan para reemplazar los marcadores de posicion en la cadena format
. Pueden ser cadenas, numeros, fechas, etc.
Shell
y Bash
La principal diferencia entre Shell
y Bash
es que Shell
no anade saltos de linea automaticos al escribir en la consola. Esto permite un mayor control sobre la salida de texto, especialmente util cuando se necesita escribir en la misma linea o concatenar mensajes.
Digita un cuadro con el titulo que se le coloque dentro.
using Adfines.Net.Puky;
//Establece un titulo para el terminal
Head.Title("Titulo de la consola");
//Da un salto de linea
Head.Jump();
//Limpia tola la pantalla
Head.Cls();
//Borra la linea actual en la consola
Head.Erase();
//Borra N cantidad de lineas de la consola
Head.Erase(5);
//Escribe en pantalla con color por defecto
Head.Write("parametros {0} con {1}-n cantidad de argumentos");
//Escribe en pantalla con color Verde
Head.Success("parametros {0} con {1}-n cantidad de argumentos");
//Escribe en pantalla con color Rojo
Head.Error("parametros {0} con {1}-n cantidad de argumentos");
//Escribe en pantalla con color Amarillo
Head.Warning("parametros {0} con {1}-n cantidad de argumentos");
//Escribe en pantalla con color Blanco
Head.Message("parametros {0} con {1}-n cantidad de argumentos");
//Escribe en pantalla con color Morado
Head.Sweet("parametros {0} con {1}-n cantidad de argumentos");
Head
La clase Head
de la libreria Adfines.Net.Puky
se enfoca en crear un cuadro en la consola que envuelve el texto digitado dentro, proporcionando una presentacion visualmente organizada. A diferencia de Bash
y Shell
, Head
no se limita a escribir texto en la consola, sino que lo muestra dentro de un cuadro con un titulo personalizable. A continuacion, se describen sus metodos y parametros:
Permite definir un titulo para el cuadro que se mostrara en la consola.
title
: Texto que se mostrara como titulo del cuadro.Inserta un salto de linea en la consola. No requiere parametros.
Elimina todo el contenido de la pantalla de la consola. No requiere parametros.
Borra el contenido de la linea actual en la consola. No requiere parametros.
Borra un numero especifico de lineas desde la posicion actual del cursor hacia arriba.
lines
: Numero de lineas a borrar.Escribe un mensaje dentro de un cuadro en la consola utilizando el color por defecto. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion (ej. {0}
, {1}
).Escribe un mensaje dentro de un cuadro en color verde, ideal para indicar operaciones exitosas. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.Escribe un mensaje dentro de un cuadro en color rojo, util para mostrar errores o advertencias criticas. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.Escribe un mensaje dentro de un cuadro en color amarillo, ideal para advertencias o mensajes de precaucion. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.Escribe un mensaje dentro de un cuadro en color blanco, util para mensajes informativos o neutrales. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.Escribe un mensaje dentro de un cuadro en color morado, ideal para resaltar mensajes de manera personalizada. Admite cadenas con formato.
format
: Cadena de texto con marcadores de posicion.format
:{0}
, {1}
) para insertar valores dinamicos.Head
, Bash
y Shell
A diferencia de Bash
y Shell
, que se enfocan en escribir texto directamente en la consola, Head
envuelve el texto dentro de un cuadro visual, lo que permite una presentacion mas organizada y atractiva. Esto es especialmente util para resaltar mensajes importantes o agrupar informacion de manera estructurada.
Pinta en consola una tabla con los objetos que se le inserten en una lista X.
using Adfines.Net.Puky;
//Crea un objeto List<?> como ejemplo
List<string> example = [ "Ganesha", "Ponki", "Cody", "Tommy" ];
//Establece un titulo para el terminal
Record.Title("Titulo de la consola");
//Da un salto de linea
Record.Jump();
//Limpia tola la pantalla
Record.Cls();
//Borra la linea actual en la consola
Record.Erase();
//Borra N cantidad de lineas de la consola
Record.Erase(5);
//Escribe en pantalla con color por defecto
Record.Write(example);
//Escribe en pantalla con color Verde
Record.Success(example);
//Escribe en pantalla con color Rojo
Record.Error(example);
//Escribe en pantalla con color Amarillo
Record.Warning(example);
//Escribe en pantalla con color Blanco
Record.Message(example);
//Escribe en pantalla con color Morado
Record.Sweet(example);
Record
La clase Record
de la libreria Adfines.Net.Puky
esta disenada para mostrar listas de objetos en forma de tabla en la consola, lo que facilita la visualizacion estructurada de datos. A diferencia de Bash
, Shell
y Head
, Record
se enfoca en pintar tablas a partir de listas, lo que la hace ideal para mostrar colecciones de datos de manera organizada. A continuacion, se describen sus metodos y parametros:
Permite definir un titulo para la tabla que se mostrara en la consola.
title
: Texto que se mostrara como titulo de la tabla.Inserta un salto de linea en la consola. No requiere parametros.
Elimina todo el contenido de la pantalla de la consola. No requiere parametros.
Borra el contenido de la linea actual en la consola. No requiere parametros.
Borra un numero especifico de lineas desde la posicion actual del cursor hacia arriba.
lines
: Numero de lineas a borrar.Muestra una tabla en la consola con los elementos de una lista, utilizando el color por defecto.
list
: Lista de objetos que se mostraran en la tabla.Muestra una tabla en la consola con los elementos de una lista, utilizando color verde. Ideal para resaltar operaciones exitosas.
list
: Lista de objetos que se mostraran en la tabla.Muestra una tabla en la consola con los elementos de una lista, utilizando color rojo. Util para resaltar errores o advertencias criticas.
list
: Lista de objetos que se mostraran en la tabla.Muestra una tabla en la consola con los elementos de una lista, utilizando color amarillo. Ideal para advertencias o mensajes de precaucion.
list
: Lista de objetos que se mostraran en la tabla.Muestra una tabla en la consola con los elementos de una lista, utilizando color blanco. Util para mensajes informativos o neutrales.
list
: Lista de objetos que se mostraran en la tabla.Muestra una tabla en la consola con los elementos de una lista, utilizando color morado. Ideal para resaltar mensajes de manera personalizada.
list
: Lista de objetos que se mostraran en la tabla.list
:Record
, Bash
, Shell
y Head
A diferencia de las otras clases, Record
se especializa en mostrar datos en forma de tabla, lo que la hace ideal para presentar colecciones de datos de manera estructurada. Mientras que Bash
y Shell
se enfocan en escribir texto directamente en la consola, y Head
envuelve el texto en un cuadro, Record
organiza los datos en filas y columnas para una mejor visualizacion.
Para entrada de datos desde consola.
Al tener la capacidad de recibir tantos parametros solamente se hara como ejemplo el metodo Success, pero se pueden seguir utilizando los metodos como: Write, Success, Error, Warning, Message, Sweet. El ejemplo en pantalla mostraria el color en consola verde.
Tipo de dato puede ser: string, double & int; Si el tipo de dato es diferente a estos el metodo devolvera error.
using Adfines.Net.Puky;
var o = Ask<string>.Write
(
question: "Digite su nombre",
min: null,
max: null,
errorMessage: null,
allowNull: true,
regex: null,
completeEraseWithError: false,
lineEraseWithError: false,
turnRedWithError: true,
hideText: false
);
Ask
La clase Ask
de la libreria Adfines.Net.Puky
esta disenada para facilitar la entrada de datos desde la consola, proporcionando una forma flexible y personalizable de solicitar informacion al usuario. Admite tipos de datos como string
, int
y double
, y permite validar la entrada mediante parametros como longitud minima/maxima, expresiones regulares, mensajes de error personalizados y mas. A continuacion, se describen sus metodos y parametros:
Ask<T>.Write
Este metodo solicita al usuario que ingrese un valor desde la consola y lo devuelve como el tipo de dato especificado (string
, int
o double
). Ademas, permite personalizar la pregunta, las validaciones y el comportamiento en caso de errores.
Parametros:
question
(obligatorio): Un string
que se muestra como pregunta al usuario.min
(opcional):string
: Longitud minima de caracteres permitidos.int
o double
: Valor minimo permitido.null
.max
(opcional):string
: Longitud maxima de caracteres permitidos.int
o double
: Valor maximo permitido.null
.errorMessage
(opcional): Mensaje de error personalizado que se muestra si la entrada no cumple con las validaciones. Por defecto: null
.allowNull
(opcional): Permite que el usuario deje la entrada vacia. Por defecto: true
.regex
(opcional): Expresion regular (Regex
) para validar el formato del texto ingresado. Por defecto: null
.completeEraseWithError
(opcional): Si es true
, borra toda la consola cuando ocurre un error. Por defecto: false
.lineEraseWithError
(opcional): Si es true
, borra la linea actual cuando ocurre un error. Por defecto: false
.turnRedWithError
(opcional): Si es true
, cambia el color del texto a rojo cuando ocurre un error. Por defecto: true
.hideText
(opcional): Si es true
, oculta el texto que el usuario esta digitando (util para contrasenas). Por defecto: false
.Tipo de retorno:
Devuelve el valor ingresado por el usuario como el tipo de dato especificado (string
, int
o double
). Si el tipo de dato no es compatible, se lanzara un error.
Para mostrar proceso de datos con su barra de prograso
Se hara como ejemplo el metodo: Success, pero se pueden seguir utilizando los metodos como: Write, Success, Error, Warning, Message, Sweet. El ejemplo en pantalla mostraria el color en consola verde.
using Adfines.Net.Puky;
int total = 750;
for (int i = 1; i <= total; i++)
{
Load.Success(i, total);
Thread.Sleep(50);
}
Load
La clase Load
de la libreria Adfines.Net.Puky
esta disenada para mostrar una barra de progreso en la consola, lo que resulta util para visualizar el avance de tareas que involucran un proceso iterativo, como la carga de datos o la ejecucion de un bucle. A continuacion, se describen sus metodos y parametros:
Load.Success(int current, int total)
Muestra una barra de progreso en la consola, indicando el progreso actual en relacion con el total. El color de la barra de progreso es verde, lo que la hace ideal para representar operaciones exitosas o en curso.
current
: Valor actual del progreso (por ejemplo, la iteracion actual en un bucle).total
: Valor total que representa el 100% del progreso.Leer informacion de appsetting.json
using Adfines.Net.Puky;
using Newtonsoft.Json.Linq;
var value = Apset<JObject>.G("AdfinesGaneshaNet.SqlServer");
Bash.Success(value);
Apset
La clase Apset
de la libreria Adfines.Net.Puky
esta disenada para leer y acceder a la informacion almacenada en el archivo appsettings.json
de manera sencilla y eficiente. Utiliza genericos para permitir la lectura de valores especificos y admite dos sobrecargas para manejar casos en los que las propiedades no existan. A continuacion, se describen sus metodos y parametros:
Apset<T>.G(string path, bool allowNull = false)
Este metodo permite leer un valor especifico del archivo appsettings.json
utilizando un path (ruta) para acceder a la propiedad deseada. El tipo de dato devuelto depende del generico T
especificado.
Parametros:
path
: Ruta en formato de cadena (string
) que indica la ubicacion de la propiedad en el archivo appsettings.json
. Por ejemplo: "AdfinesGaneshaNet.SqlServer"
.allowNull
(opcional): Si es true
, permite que el metodo devuelva null
en caso de que la propiedad no exista. Si es false
, lanzara una excepcion si la propiedad no se encuentra. Por defecto: false
.Tipo de retorno:
Devuelve el valor de la propiedad especificada en el archivo appsettings.json
, convertido al tipo generico T
. Si el tipo de dato no coincide con el especificado, se lanzara un error.
{
"AdfinesGaneshaNet": {
"SqlServer": {
"Ip": "ID",
"Port": 0,
"PoolSize": "",
"Bdd": "",
"User": "",
"Password": "",
"Error": "",
"Warning": ""
}
}
}
En el caso del ejemplo anterior el metodo retornara todo el objeto: SqlServer, si se quiere ser mas especifico:
using Adfines.Net.Puky;
using Newtonsoft.Json.Linq;
var ip = Apset<string>.G("AdfinesGaneshaNet.SqlServer.Ip");
Bash.Success(ip);
var port = Apset<int>.G("AdfinesGaneshaNet.SqlServer.Port");
Bash.Success(port);