AYUDA .NET

Nuevo GUID de C# (Cómo funciona para desarrolladores)

Kannaopat Udonpant
Kannapat Udonpant
23 de octubre, 2024
Compartir:

EnMétodo NewGuid() en una clase Guid se utiliza habitualmente para crear un identificador único global(GUID). Un GUID es un número entero de 128 bits que puede utilizarse en todos los ordenadores y redes para identificar información de forma única sin riesgo de duplicados. Este artículo ofrece una guía detallada sobre cómo trabajar con GUIDs(Identificadores únicos globales) en C#, centrándose en usos prácticos, ejemplos y fragmentos de código. Exploraremos laBiblioteca IronPDF también.

¿Qué es un GUID?

UN GUID(Identificador único global) es un identificador único utilizado en el desarrollo de software. En .NET Framework, los GUID se representan como una estructura Guid dentro del espacio de nombres System. Los GUID se utilizan a menudo como claves primarias en bases de datos, así como para otros fines en otros sistemas en los que se necesitan identificadores únicos entre sistemas.

Generación de GUID en C#

Para generar un nuevo GUID en C#, se utiliza el método Guid.NewGuid() función se utiliza. Este método crea una nueva instancia de un objeto GUID y garantiza que cada GUID generado sea único. Internamente, los GUID se generan mediante un generador de números aleatorios para garantizar que no haya dos GUID con el mismo valor.

He aquí un sencillo ejemplo de código para generar un nuevo GUID:

using System;
class Program
{
    static void Main()
    {
        Guid newGuid = Guid.NewGuid();
        Console.WriteLine(newGuid);
    }
}
using System;
class Program
{
    static void Main()
    {
        Guid newGuid = Guid.NewGuid();
        Console.WriteLine(newGuid);
    }
}

En este código, el Guid.NewGuid() crea un nuevo GUID utilizando un generador de números aleatorios interno y Console.WriteLine envía el nuevo GUID generado a la consola.

Estructura y formato de GUID

Un GUID consta de 32 dígitos hexadecimales, que suelen mostrarse en un formato de 8-4-4-4-12(e.g., e02fd0e4-00fd-090A-ca30-0d00a0038ba0). Cuando se convierte a una cadena mediante la función ToString() método, el GUID se representa en este formato. Esta representación facilita el almacenamiento de GUID en formatos basados en texto, como JSON, XML o bases de datos.

El siguiente ejemplo de código muestra cómo convertir un GUID en una cadena:

Guid newGuid = Guid.NewGuid();
string guidString = newGuid.ToString();
Console.WriteLine(guidString);
Guid newGuid = Guid.NewGuid();
string guidString = newGuid.ToString();
Console.WriteLine(guidString);

Este código convierte el GUID en una cadena y la emite.

Análisis de cadenas GUID

A veces, es posible que tenga que volver a convertir una cadena en un objeto GUID. Para ello se utiliza Guid.Parse() método. Si la cadena tiene el formato correcto, se convertirá en una instancia GUID. Si el formato es incorrecto, se lanzará una excepción.

He aquí un ejemplo de código:

string guidString = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0";
Guid parsedGuid = Guid.Parse(guidString);
Console.WriteLine(parsedGuid);
string guidString = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0";
Guid parsedGuid = Guid.Parse(guidString);
Console.WriteLine(parsedGuid);

En este código, la función Guid.Parse() convierte la cadena en un objeto GUID.

Comparación de dos GUID

Los GUID pueden compararse para ver si son iguales o no. La estructura Guid implementa el operador de igualdad(==)para que pueda comparar dos objetos GUID directamente.

He aquí un ejemplo:

Guid guid1 = Guid.NewGuid();
Guid guid2 = Guid.NewGuid();
if (guid1 == guid2)
{
    Console.WriteLine("The two GUIDs are the same.");
}
else
{
    Console.WriteLine("The two GUIDs are different.");
}
Guid guid1 = Guid.NewGuid();
Guid guid2 = Guid.NewGuid();
if (guid1 == guid2)
{
    Console.WriteLine("The two GUIDs are the same.");
}
else
{
    Console.WriteLine("The two GUIDs are different.");
}

En este código, se comparan los dos GUID. Dado que cada GUID generado por Guid.NewGuid() es único, el resultado será normalmente "Los dos GUID son diferentes"

Errores comunes al utilizar GUID

  1. Asumiendo que los GUIDs son secuenciales: Los GUIDs son aleatorios, y el NewGuid() el método no genera valores secuenciales. Por lo tanto, no debe asumir que los GUID mantendrán ningún tipo de orden.

  2. Comparaciones de cadenas en lugar de comparaciones GUID: Comparar GUIDs como cadenas puede ser ineficiente. Compare siempre los objetos GUID directamente en lugar de convertirlos en cadenas y comparar los valores de las cadenas.

  3. Uso de GUIDs en grandes bases de datos sin indexación: Los GUIDs pueden ser grandes y pueden afectar al rendimiento en grandes bases de datos si no se indexan adecuadamente. Asegúrese de que sus columnas GUID están indexadas cuando las utilice como claves primarias.

GUIDs en .NET Core y Framework

Los GUID son compatibles tanto con .NET Framework como con .NET Core. El uso de la clase Guid es coherente en las distintas versiones de la plataforma .NET. Por lo tanto, los desarrolladores que trabajan con cualquier versión de .NET pueden generar GUIDs fácilmente utilizando la función Guid.NewGuid() método.

GUID vs UUID

Los GUID son similares a los UUID(Identificadores únicos universales)a menudo, estos términos se utilizan indistintamente. Aunque existen algunas diferencias menores en la especificación, sirven al mismo propósito de generar identificadores únicos.

Uso de IronPDF con GUID

Nuevo GUID de C# (Cómo funciona para desarrolladores): Figura 1 - IronPDF

IronPDF es una biblioteca PDF paragenerar PDF a partir de HTML y otras operaciones PDF en aplicaciones .NET. Puede combinar IronPDF con GUID cuando necesite generar nombres de archivo únicos para sus documentos PDF. De este modo, se garantiza que cada PDF generado tenga un nombre único, evitando la sobrescritura de archivos o conflictos en la nomenclatura. He aquí un sencillo ejemplo de uso de IronPDF con un nuevo GUID:

using System;
using IronPdf;
class Program
{
    static void Main()
    {
        // Generate a new GUID object for the PDF filename
        Guid pdfId = Guid.NewGuid();
        string filename = $"{pdfId}.pdf";
        // Create a PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        // Save the PDF with the unique filename
        pdfDocument.SaveAs(filename);
        Console.WriteLine($"PDF saved as: {filename}");
    }
}
using System;
using IronPdf;
class Program
{
    static void Main()
    {
        // Generate a new GUID object for the PDF filename
        Guid pdfId = Guid.NewGuid();
        string filename = $"{pdfId}.pdf";
        // Create a PDF document using IronPDF
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");
        // Save the PDF with the unique filename
        pdfDocument.SaveAs(filename);
        Console.WriteLine($"PDF saved as: {filename}");
    }
}

Ejecuta el código anterior en Visual Studio y observa el resultado.

Nuevo GUID de C# (Cómo funciona para desarrolladores): Figura 2 - Salida de la consola de Visual Studio

Utilizamos Guid.NewGuid() para crear un GUID aleatorio único para cada archivo PDF. Este GUID se convierte en una cadena y se utiliza como nombre de archivo.

Conclusión

Nuevo GUID de C# (Cómo funciona para desarrolladores): Figura 3 - Licencias

En este artículo, hemos tratado los conceptos básicos de los GUID en C#. Ya has visto cómo generar nuevos GUID, compararlos, analizarlos a partir de cadenas y utilizarlos en escenarios prácticos como bases de datos. El Guid.NewGuid() el método GUID facilita la generación de una nueva instancia de un GUID, garantizando que cada identificador sea único en todos los sistemas. Los desarrolladores que trabajan en .NET pueden confiar en los GUID para proporcionar aleatoriedad y unicidad en sus aplicaciones.

IronPDF entiende la importancia de probar antes de invertir, por lo que ofrecemos unprueba gratuita. Puedes evaluar el rendimiento del software sin costo alguno. Si lo encuentras beneficioso, las licencias comienzan a partir de $749.

Kannaopat Udonpant
Ingeniero de software
Antes de convertirse en ingeniero de software, Kannapat realizó un doctorado en Recursos Medioambientales en la Universidad de Hokkaido (Japón). Mientras cursaba su licenciatura, Kannapat también se convirtió en miembro del Laboratorio de Robótica Vehicular, que forma parte del Departamento de Ingeniería de Bioproducción. En 2022, aprovechó sus conocimientos de C# para unirse al equipo de ingeniería de Iron Software, donde se centra en IronPDF. Kannapat valora su trabajo porque aprende directamente del desarrollador que escribe la mayor parte del código utilizado en IronPDF. Además del aprendizaje entre iguales, Kannapat disfruta del aspecto social de trabajar en Iron Software. Cuando no está escribiendo código o documentación, Kannapat suele jugar con su PS5 o volver a ver The Last of Us.
< ANTERIOR
Unión discriminada en C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Indexadores de C# (Cómo funciona para desarrolladores)