<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Juan Fernando Alzate</title>
    <description>The latest articles on DEV Community by Juan Fernando Alzate (@juanalz).</description>
    <link>https://dev.to/juanalz</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F732550%2F7367ba55-a046-4e59-ad2c-fdd2db982fb6.jpg</url>
      <title>DEV Community: Juan Fernando Alzate</title>
      <link>https://dev.to/juanalz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/juanalz"/>
    <language>en</language>
    <item>
      <title>Nomus: Normalización de strings en .NET</title>
      <dc:creator>Juan Fernando Alzate</dc:creator>
      <pubDate>Fri, 23 Oct 2026 15:55:32 +0000</pubDate>
      <link>https://dev.to/juanalz/nomus-normalizacion-de-strings-en-net-210d</link>
      <guid>https://dev.to/juanalz/nomus-normalizacion-de-strings-en-net-210d</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Es ahí cuando paquetes como &lt;strong&gt;Nomus&lt;/strong&gt; entran a intervenir.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  ¿Qué es Nomus?
&lt;/h2&gt;

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

&lt;h2&gt;
  
  
  ¿Qué problema resuelve?
&lt;/h2&gt;

&lt;p&gt;Cuando trabajas con múltiples sistemas, es común encontrarte con distintos formatos de nombres:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs que usan &lt;code&gt;camelCase&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Bases de datos con &lt;code&gt;snake_case&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Clases en &lt;code&gt;PascalCase&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;URLs en &lt;code&gt;kebab-case&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;em&gt;Nomus elimina ese problema con una API simple y directa.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Funcionalidades principales
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Detecta:&lt;/strong&gt; Detecta automáticamente el formato original del texto (&lt;strong&gt;UpperCase, PascalCase, TrainCase, etc&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convierte:&lt;/strong&gt; Convierte texto fácilmente entre múltiples formatos de manera intuitiva:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PascalCase → &lt;code&gt;HolaMundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;camelCase → &lt;code&gt;holaMundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;kebab-case → &lt;code&gt;hola-mundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;snake_case → &lt;code&gt;hola_mundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Title Case → &lt;code&gt;Hola Mundo&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todo esto en una sola línea de código, sin necesidad de expresiones regulares complejas ni lógica personalizada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Empecemos
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Instalación:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opción 1:&lt;/strong&gt; Desde Visual Studio, damos clic derecho en el nombre del proyecto, seleccionamos &lt;strong&gt;&lt;em&gt;Manage NuGet Packages → Browse → Nomus&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbnw7l52ka9u7jimrzoly.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbnw7l52ka9u7jimrzoly.png" alt="opción 1" width="799" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opción 2:&lt;/strong&gt; Desde la &lt;em&gt;consola&lt;/em&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dotnet add package Devjavu.Nomus
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Implementación:
&lt;/h2&gt;

&lt;p&gt;Uso rápido&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Ejemplo práctico&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Supongamos que tenemos este modelo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class UsuarioDto
{
    public string NombreCompleto { get; set; }
    public string FechaRegistro { get; set; }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Por defecto, ASP.NET Core ya convierte a &lt;code&gt;camelCase&lt;/code&gt;, pero si necesitas &lt;strong&gt;control total o formatos personalizados&lt;/strong&gt;, puedes usar &lt;strong&gt;Nomus&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Transformamos el modelo con Nomus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using Devjavu.Nomus;

var data = new Dictionary&amp;lt;string, object&amp;gt;()
{
    { "NombreCompleto", "Juan Alzate" },
    { "FechaRegistro", "2026-01-01" }
};

var transformed = data.ToDictionary(
    key =&amp;gt; Nomus.ToCamelCase(key.Key),
    value =&amp;gt; value.Value
);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "nombreCompleto": "Juan Alzate",
  "fechaRegistro": "2026-01-01"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podemos ir mas allá y crear un helper reutilizable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public static class NomusExtensions
{
    public static Dictionary&amp;lt;string, object&amp;gt; ToCamelCaseKeys(this object obj)
    {
        var dict = obj.GetType()
            .GetProperties()
            .ToDictionary(
                prop =&amp;gt; Nomus.ToCamelCase(prop.Name),
                prop =&amp;gt; prop.GetValue(obj)
            );

        return dict;
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lo usamos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var usuario = new UsuarioDto
{
    NombreCompleto = "Juan Alzate",
    FechaRegistro = "2026-01-01"
};

var response = usuario.ToCamelCaseKeys();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Bonus: generar slugs para URLs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Podemos utilizar Nomus para SEO o rutas limpias:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;string titulo = "Curso de .NET para Principiantes";
string slug = Nomus.ToKebabCase(titulo);

// resultado: "curso-de-net-para-principiantes"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ¿Por qué usar Nomus?
&lt;/h2&gt;

&lt;p&gt;Porque te permite:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reducir código repetitivo.&lt;/li&gt;
&lt;li&gt;Evitar errores en conversiones manuales.&lt;/li&gt;
&lt;li&gt;Mantener consistencia en tu proyecto.&lt;/li&gt;
&lt;li&gt;Mejorar la legibilidad del código.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y lo más importante: &lt;strong&gt;enfocarte en lógica de negocio, no en manipulación de strings&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusión
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Nomus&lt;/strong&gt; 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.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>nomus</category>
      <category>spanish</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Nomus: String Normalization in .NET</title>
      <dc:creator>Juan Fernando Alzate</dc:creator>
      <pubDate>Thu, 22 Oct 2026 21:50:44 +0000</pubDate>
      <link>https://dev.to/juanalz/nomus-string-normalization-in-net-7al</link>
      <guid>https://dev.to/juanalz/nomus-string-normalization-in-net-7al</guid>
      <description>&lt;p&gt;When you work simultaneously with APIs, databases, and frontend applications, it’s almost inevitable to run into inconsistencies in naming conventions. In the modern .NET development ecosystem, where multiple layers and systems with different rules coexist, what may seem like a minor detail to the team often becomes a constant source of friction within the code.&lt;/p&gt;

&lt;p&gt;That’s where packages like Nomus come into play.&lt;/p&gt;

&lt;p&gt;In this article, I’ll show you how to install the &lt;strong&gt;Nomus&lt;/strong&gt; package in &lt;strong&gt;.NET&lt;/strong&gt; and how to implement it with a practical example — but before we begin, let’s define:&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Nomus?
&lt;/h2&gt;

&lt;p&gt;It’s a NuGet package designed for applications in &lt;strong&gt;.NET 8.0 and above&lt;/strong&gt;, aimed at simplifying &lt;strong&gt;string normalization and conversion between different casing styles&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What problem does it solve?
&lt;/h2&gt;

&lt;p&gt;When working with multiple systems, it’s common to encounter different naming formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;APIs that use &lt;code&gt;camelCase&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Databases with &lt;code&gt;snake_case&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Classes in &lt;code&gt;PascalCase&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;URLs in &lt;code&gt;kebab-case&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without the right tool, you end up writing manual logic for each case — which not only takes time but also introduces inconsistencies.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Nomus eliminates this problem with a simple and straightforward API.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Detect:&lt;/strong&gt; Automatically detects the original text format (&lt;strong&gt;UpperCase, PascalCase, TrainCase, etc&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Convert:&lt;/strong&gt; Easily converts text between multiple formats in an intuitive way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PascalCase → &lt;code&gt;HolaMundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;camelCase → &lt;code&gt;holaMundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;kebab-case → &lt;code&gt;hola-mundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;snake_case → &lt;code&gt;hola_mundo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Title Case → &lt;code&gt;Hola Mundo&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All of this in a single line of code, without the need for complex regular expressions or custom logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s Get Started
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Installation:&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Option 1:&lt;/strong&gt; From Visual Studio, right-click on the project name, select &lt;em&gt;Manage NuGet Packages → Browse → Nomus&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmnx8x4lwjbg3iov98ayb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmnx8x4lwjbg3iov98ayb.png" alt="option 1" width="720" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Option 2:&lt;/strong&gt; From the console:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet add package Devjavu.Nomus
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Implementation
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Quick usage:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Nomus&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Detect naming style&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;detected&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;DetectNamingStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"votesUsers"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// "camelCase"&lt;/span&gt;

&lt;span class="c1"&gt;// PascalCase&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;p&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToPascalCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"user_votes_details"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// UserVotesDetails&lt;/span&gt;

&lt;span class="c1"&gt;// camelCase&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToCamelCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"UserVotesDetails"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// userVotesDetails&lt;/span&gt;

&lt;span class="c1"&gt;// snake_case&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToSnakeCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"userVotesDetails"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// user_votes_details&lt;/span&gt;

&lt;span class="c1"&gt;// kebab-case&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;k&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Naming&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToKebabCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"userVotesDetails"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="c1"&gt;// user-votes-details&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Practical Example&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Suppose we have this model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UserDto&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;FullName&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;RegistrationDate&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;By default, ASP.NET Core already converts to camelCase, but if you need &lt;strong&gt;full control or custom formats&lt;/strong&gt;, you can use &lt;strong&gt;Nomus&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Let's transform the model with Nomus:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Devjavu.Nomus&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Dictionary&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;object&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;()&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;"FullName"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Jhon Alzate"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="s"&gt;"RegistrationDate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"2026-01-01"&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;transformed&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToDictionary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Nomus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToCamelCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Key&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="k"&gt;value&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;value&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Value&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"fullName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jhon Alzate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"registrationDate"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-01-01"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can go further and create a reusable helper:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;NomusExtensions&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="n"&gt;Dictionary&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;object&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;ToCamelCaseKeys&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="kt"&gt;object&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;dict&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetType&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetProperties&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToDictionary&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;prop&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Nomus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToCamelCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                &lt;span class="n"&gt;prop&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;prop&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;obj&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Usage:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;usuario&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;UsuarioDto&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;FullName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Jhon Alzate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;RegistrationDate&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"2026-01-01"&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;usuario&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToCamelCaseKeys&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Bonus: generate URL Slugs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use Nomus for SEO or clean routes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;title&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;".NET Course for Beginners"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;slug&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Nomus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToKebabCase&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;titulo&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// result: "net-course-for-beginners"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why use&amp;nbsp;Nomus?
&lt;/h2&gt;

&lt;p&gt;Because it allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduce repetitive code&lt;/li&gt;
&lt;li&gt;Avoid errors in manual conversions&lt;/li&gt;
&lt;li&gt;Maintain consistency in your project&lt;/li&gt;
&lt;li&gt;Improve code readability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And most importantly: &lt;strong&gt;focus on business logic, not string manipulation&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Nomus&lt;/strong&gt; is a lightweight yet powerful tool that solves a common problem in software development. If you work with multiple naming formats in&amp;nbsp;.NET, this package can save you time and headaches.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>nomus</category>
      <category>nuget</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
