BasicLibraryExt 1.0.11
dotnet add package BasicLibraryExt --version 1.0.11
NuGet\Install-Package BasicLibraryExt -Version 1.0.11
<PackageReference Include="BasicLibraryExt" Version="1.0.11" />
<PackageVersion Include="BasicLibraryExt" Version="1.0.11" />
<PackageReference Include="BasicLibraryExt" />
paket add BasicLibraryExt --version 1.0.11
#r "nuget: BasicLibraryExt, 1.0.11"
#:package BasicLibraryExt@1.0.11
#addin nuget:?package=BasicLibraryExt&version=1.0.11
#tool nuget:?package=BasicLibraryExt&version=1.0.11
📦 BasicLibraryExt
Biblioteca común compatible con .NET Framework, .NET Standard y .NET Core/NET moderno.
Incluye métodos de extensión para la clase string y object.
🚀 Instalación
Puedes instalar el paquete desde NuGet ejecutando en tu proyecto:
dotnet add package BasicLibraryExt
O desde la Consola del Administrador de Paquetes en Visual Studio:
Install-Package BasicLibraryExt
📖 Ejemplo de uso
csharp
using System;
using System.Collections.Generic;
using static BasicLibraryExt.FileExtensions;
using BasicLibraryExt;
using System.Collections.Concurrent;
// Convertir a tipo título (Primera letra de cada palabra execpto conectores y a mayuscula algunas siglas conocidas en español)
var titulo = "dirección de impueStos y aduanas naciOnales diaN";
Console.WriteLine(titulo.ToTitleEachWord());
// Convertir mayuscula la primera letra del texto y el resto a maýúsculas
titulo = "dirección de impueStos y aduanas naciOnales diaN";
Console.WriteLine(titulo.ToTitle());
// El método de extensión IsIn devuelve True si el texto de la variable se encuentra dentro de la lista
var nombres = new List<string> { "Ana", "Luis", "Pedro" };
if ("Luis".IsIn(nombres))
{
Console.WriteLine($"Luis está en {string.Join(", ", nombres)}");
}
var permiso = 14;
// El mismo ejemplo anterior pero con numeros
var numeros = new List<int> { 23, 14, 82, 3, 21 };
if (permiso.IsIn(numeros))
{
Console.WriteLine($"{permiso} está en {string.Join(", ", numeros)}");
}
// Determinar si una palabra está contenida dentro de una cadena
var frase = "Colombia tierra querida";
if (frase.StringContains("Tierra")) Console.WriteLine("Existe");
// Quitar espacios innecesarios dentro de una cadena de caracteres
var text = " esta es una prueba fasdf fsdfasd fasd fsdfsd f fdsfdsafas fsdaf ";
Console.WriteLine(text.TrimExcessSpaces());
// Genera el valor en letras de un valor numerico decimal
var precio = 1478292.47M;
Console.WriteLine(precio.ToWords().ToTitle()); // Sin indicar moneda
Console.WriteLine(precio.ToWords(enumMoneda.USD)); // Incluyendo
string ruta = @"C:\Users\MATRIXSQL\source\repos\Bibliotecas\BasicLibraryExt\README.md";
// Este método de extensión valida si un string corresponde a un pathfilename válido
if (ruta.IsPathFileName())
{
// Este método extrae el contenido de un archivo de texto, que pueda leerse como texto plano
// por ejemplo un archivo .txt, .html, .json, etc
var txt = ruta.GetText();
}
// Este es un método estático que puede usarse como si fuera una
// función intrínseca de c# simpre y cuando se declare el using así:
// using static BasicLibraryExt.FileExtensions;
if (FileExists(ruta))
{
Console.WriteLine("El archivo existe");
}
// En método de extensión IsBetween devuelve True si el texto de la variable se encuentra dentro
// del rango de valores determinado por los parámetros valor_inf y valor_sup
if ("1370".IsBetween("1305", "1380"))
Console.WriteLine("1365 está entre 1305 y 1380");
else
Console.WriteLine("N no está entre A y Z");
// *** Ejemplo de uso de los métodos de extensión para objetos ***
object obj = 12345;
// Ejemplo de uso de los métodos de extensión IsNumeric e IsPositiveNumber
if (obj.IsNumeric())
Console.WriteLine($"{obj} es numérico");
if (obj.IsPositiveNumber())
Console.WriteLine($"{obj} es un número positivo");
// Ejemplo de uso del método de extensión As<T> convierte el objeto al tipo especificado
int v = obj.As<int>();
decimal costo = obj.As<decimal>(0m);
// Ejemplo de serialización y DesSerialización
var per = new persona
{
id = 2,
Nombre = "Eduardo Hernández",
Direccion = "Calle 72 # 43 - 27",
Telefono = "3008727643"
};
// Ejemplo para Serialzar
var json = per.ToJson();
// Ejemplo para DesSerializar
var prsn = json.ToObject<persona>();
// Ejemplo de uso de la clase OperatioResult<T>
OperationResult<string> resp = FakeSendMail("prueba.gmail.com", "", "" );
Console.WriteLine(resp.ToString());
Console.WriteLine(resp.Describe());
if (resp.Ok) Console.WriteLine($"TrackId: {resp.Response}");
/// <summary>
/// Método de Ejemplo de la técnica de Objeto Respuesta.
/// Este método simula el envío de un email
/// </summary>
/// <param name="email_adress"></param>
/// <param name="email_message"></param>
/// <param name="display_name"></param>
/// <returns></returns>
public static OperationResult<string> FakeSendMail(
string email_adress,
string email_message = "Esta es una prueba",
string display_name = "")
{
var errors = new List<Error>();
var warnings = new List<Error>();
// Validaciones previas
if (!email_adress.IsValidEmail())
errors.Add(new Error { Source = ErrorSource.BackEnd, Codigo = "E01", Descripcion = $"El email <<{email_adress}>> no tiene un formato válido" });
if (string.IsNullOrWhiteSpace(email_message))
errors.Add(new Error { Source = ErrorSource.BackEnd, Codigo = "E02", Descripcion = "email_message no puede ser un string vacío" });
if (string.IsNullOrWhiteSpace(display_name))
warnings.Add(new Error { Source = ErrorSource.BackEnd, Codigo = "W01", Descripcion = "No se ha especificado un nombre de destinatario" });
// 🚨 Si hay errores de validación, no intento enviar nada
if (errors.Count > 0)
return OperationResult<string>.FromResult(errors: errors, warnings: warnings);
try
{
// Aquí debería ir la llamada real a tu servicio externo
var TrackID = Guid.NewGuid().ToString();
// ✅ Data es el TrackID, y warnings opcionales
return OperationResult<string>.FromResult(TrackID, warnings: warnings);
}
catch (Exception ex)
{
errors.Add(new Error { Source = ErrorSource.ExternalService, Descripcion = $"Excepción al enviar correo: {ex.Message}" });
return OperationResult<string>.FromResult(errors: errors, warnings: warnings);
}
}
// Clase de Ejemplo para serializar y desserializar
public class persona
{
public int id { get; set; }
public string Nombre { get; set; }
public string Direccion { get; set; }
public string Telefono { get; set; }
}
📌 Compatibilidad
✅ .NET Framework 4.8
✅ .NET Standard 2.0
✅ .NET 6
✅ .NET 8
📜 Licencia
Este software es propiedad de SISTEMAS 360 SAS (en adelante “el Licenciante”). Su uso está sujeto a los siguientes términos:
1) Licencia de prueba: El software puede usarse gratuitamente por un periodo de 6 meses a partir de la primera instalación.
2) Licencia comercial: Después del periodo de prueba, el uso requiere la compra de una suscripción mensual o anual. El uso sin licencia activa está estrictamente prohibido.
3) Restricciones:
3.1) Queda prohibida la descompilación, ingeniería inversa, modificación u ofuscación inversa del software.
3.2) No está permitido redistribuir, sublicenciar o revender el software sin autorización escrita del Licenciante.
4. Propiedad intelectual: Este software es propiedad exclusiva del Licenciante. No se transfiere ningún derecho de propiedad al usuario, solo un derecho de uso limitado bajo esta licencia.
5) Limitación de responsabilidad: El software se entrega “tal cual”. El Licenciante no será responsable de daños directos, indirectos o consecuentes derivados de su uso.
6) Terminación: El incumplimiento de estos términos resultará en la terminación automática de la licencia y en la obligación de desinstalar el software.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.8
- System.Text.Json (>= 9.0.8)
-
.NETStandard 2.0
- System.Text.Json (>= 9.0.8)
-
net6.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on BasicLibraryExt:
| Package | Downloads |
|---|---|
|
MtxLog
Biblioteca para Logs diarios (APIs y Apps), compatible con .NET Framework, .NET Standard y .NET moderno |
GitHub repositories
This package is not used by any popular GitHub repositories.