← Back to list

Nomus: Normalización de strings en .NET

Cuando trabajas simultáneamente con APIs, bases de datos y aplicaciones frontend, es casi inevitable encontrarte con inconsistencias en las…

Juan Fernando Alzate · 2026-04-19 00:01 · 0 claps · 2.6 min read
#programming #software-development #nomu #package #nuget-package
Open on Medium ↗
Wiki topics: GEN · Genomics & Sequencing 💻 · Programming 🌐 · Web Development

Nomus: Normalización de strings en .NET

Cuando trabajas simultáneamente con APIs, bases de datos y aplicaciones frontend, es casi inevitable encontrarte con inconsistencias en las convenciones de nomenclatura. En el ecosistema moderno de desarrollo con .NET, donde conviven múltiples capas y sistemas con reglas distintas, lo que al equipo parece un detalle menor termina convirtiéndose en una fuente constante de fricción dentro del código.

Es ahí cuando paquetes como Nomus entran a intervenir.

En este artículo te enseñaré a instalar el paquete Nomus en .Net y a implementarlo con un ejemplo práctico, pero antes de empezar definamos:

¿Qué es Nomus?

Es un paquete NuGet diseñado para aplicaciones en .NET 8.0 y superiores, cuyo objetivo es simplificar la normalización y conversión de strings entre distintos estilos de casing.

¿Qué problema resuelve?

Cuando trabajas con múltiples sistemas, es común encontrarte con distintos formatos de nombres:

  • APIs que usan camelCase
  • Bases de datos con snake_case
  • Clases en PascalCase
  • URLs en kebab-case

Sin una herramienta adecuada, terminas escribiendo lógica manual para cada caso —lo que no solo consume tiempo, sino que introduce inconsistencias.

Nomus elimina ese problema con una API simple y directa.

Funcionalidades principales

Detecta: Detecta automáticamente el formato original del texto (UpperCase, PascalCase, TrainCase, etc).

Convierte: Convierte texto fácilmente entre múltiples formatos de manera intuitiva:

  • PascalCaseHolaMundo
  • camelCaseholaMundo
  • kebab-casehola-mundo
  • snake_casehola_mundo
  • Title CaseHola Mundo

Todo esto en una sola línea de código, sin necesidad de expresiones regulares complejas ni lógica personalizada.

Empecemos

Instalación:

Opción 1: Desde *Visual Studio, damos clic derecho en el nombre del proyecto, seleccionamos Manage NuGet Packages → Browse → Nomus*

Opción 2: Desde la consola:

dotnet add package Devjavu.Nomus

Implementación:

Uso rápido

using Nomus;

// Detect naming style
var detected = Naming.DetectNamingStyle("votesUsers");
// "camelCase"

// PascalCase
var p = Naming.ToPascalCase("user_votes_details");
// UserVotesDetails

// camelCase
var c = Naming.ToCamelCase("UserVotesDetails");
// userVotesDetails

// snake_case
var s = Naming.ToSnakeCase("userVotesDetails");
// user_votes_details

// kebab-case
var k = Naming.ToKebabCase("userVotesDetails");
// user-votes-details

Ejemplo práctico

Supongamos que tenemos este modelo:

public class UsuarioDto
{
    public string NombreCompleto { get; set; }
    public string FechaRegistro { get; set; }
}

Por defecto, ASP.NET Core ya convierte a camelCase, pero si necesitas control total o formatos personalizados, puedes usar Nomus.

Transformamos el modelo con Nomus:

using Devjavu.Nomus;

var data = new Dictionary<string, object>()
{
    { "NombreCompleto", "Juan Alzate" },
    { "FechaRegistro", "2026-01-01" }
};

var transformed = data.ToDictionary(
    key => Nomus.ToCamelCase(key.Key),
    value => value.Value
);

Resultado:

{
  "nombreCompleto": "Juan Alzate",
  "fechaRegistro": "2026-01-01"
}

Podemos ir mas allá y crear un helper reutilizable:

public static class NomusExtensions
{
    public static Dictionary<string, object> ToCamelCaseKeys(this object obj)
    {
        var dict = obj.GetType()
            .GetProperties()
            .ToDictionary(
                prop => Nomus.ToCamelCase(prop.Name),
                prop => prop.GetValue(obj)
            );

        return dict;
    }
}

Lo usamos:

var usuario = new UsuarioDto
{
    NombreCompleto = "Juan Alzate",
    FechaRegistro = "2026-01-01"
};

var response = usuario.ToCamelCaseKeys();

Bonus: generar slugs para URLs

Podemos utilizar Nomus para SEO o rutas limpias:

string titulo = "Curso de .NET para Principiantes";
string slug = Nomus.ToKebabCase(titulo);

// resultado: "curso-de-net-para-principiantes"

¿Por qué usar Nomus?

Porque te permite:

  • Reducir código repetitivo.
  • Evitar errores en conversiones manuales.
  • Mantener consistencia en tu proyecto.
  • Mejorar la legibilidad del código.

Y lo más importante: enfocarte en lógica de negocio, no en manipulación de strings.

Conclusión

Nomus es una herramienta ligera pero poderosa que resuelve un problema cotidiano en el desarrollo de software. Si trabajas con múltiples formatos de nomenclatura en .NET, este paquete puede ahorrarte tiempo y dolores de cabeza.


메타데이터
post_id
372652288d72
slug
nomus-normalización-de-strings-en-net-372652288d72
url
https://medium.com/@devjavu/nomus-normalizaci%C3%B3n-de-strings-en-net-372652288d72
canonical_url
https://medium.com/@devjavu/nomus-normalizaci%C3%B3n-de-strings-en-net-372652288d72
author_url
https://medium.com/@devjavu
status
ok
fetched_at
2026-06-21 19:25:17