AYUDA .NET

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

El método NewGuid() en una clase Guid se usa comúnmente 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 proporcionará 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. También exploraremos la biblioteca IronPDF.

¿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 la función Guid.NewGuid(). 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);
    }
}
Imports System
Friend Class Program
	Shared Sub Main()
		Dim newGuid As Guid = Guid.NewGuid()
		Console.WriteLine(newGuid)
	End Sub
End Class
$vbLabelText   $csharpLabel

En este código, el método Guid.NewGuid() crea un nuevo GUID usando internamente un generador de números aleatorios y Console.WriteLine muestra el GUID recién generado en la consola.

Estructura y formato de GUID

Un GUID consiste en 32 dígitos hexadecimales, típicamente mostrados en un formato de 8-4-4-4-12 (por ejemplo, e02fd0e4-00fd-090A-ca30-0d00a0038ba0). Cuando se convierte a una cadena usando el método ToString(), 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);
Dim newGuid As Guid = Guid.NewGuid()
Dim guidString As String = newGuid.ToString()
Console.WriteLine(guidString)
$vbLabelText   $csharpLabel

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. Esto se realiza utilizando el método Guid.Parse(). 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);
Dim guidString As String = "e02fd0e4-00fd-090A-ca30-0d00a0038ba0"
Dim parsedGuid As Guid = Guid.Parse(guidString)
Console.WriteLine(parsedGuid)
$vbLabelText   $csharpLabel

En este código, el método Guid.Parse() convierte la cadena de texto de nuevo 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 (==), por lo que puedes 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.");
}
Dim guid1 As Guid = Guid.NewGuid()
Dim guid2 As Guid = Guid.NewGuid()
If guid1 = guid2 Then
	Console.WriteLine("The two GUIDs are the same.")
Else
	Console.WriteLine("The two GUIDs are different.")
End If
$vbLabelText   $csharpLabel

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

Errores comunes al utilizar GUID

  1. Asumir que los GUID son secuenciales: Los GUID son aleatorios, y el método NewGuid() 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 de 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 el rendimiento en grandes bases de datos si no se indexan correctamente. 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 trabajen con cualquier versión de .NET pueden generar fácilmente GUIDs utilizando el método Guid.NewGuid().

GUID vs UUID

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

Uso de IronPDF con GUID

C# Nuevo GUID (Cómo Funciona Para Desarrolladores): Figura 1 - IronPDF

IronPDF es una biblioteca PDF para generar PDFs desde HTML y otras operaciones de 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}");
    }
}
Imports System
Imports IronPdf
Friend Class Program
	Shared Sub Main()
		' Generate a new GUID object for the PDF filename
		Dim pdfId As Guid = Guid.NewGuid()
		Dim filename As String = $"{pdfId}.pdf"
		' Create a PDF document using IronPDF
		Dim renderer = New ChromePdfRenderer()
		Dim pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")
		' Save the PDF with the unique filename
		pdfDocument.SaveAs(filename)
		Console.WriteLine($"PDF saved as: {filename}")
	End Sub
End Class
$vbLabelText   $csharpLabel

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

C# New GUID (Cómo Funciona para Desarrolladores): Figura 2 - Consola de Salida de Visual Studio

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

Conclusión

C# Nuevo GUID (Cómo Funciona Para Desarrolladores): Figura 3 - Licenciamiento

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 método Guid.NewGuid() facilita la generación de una nueva instancia de un GUID, asegurando 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 eso ofrecemos una prueba gratis. Puede evaluar el rendimiento del software sin costo alguno. Si lo encuentra beneficioso, las licencias comienzan en $749.

Chipego
Ingeniero de software
Chipego tiene una habilidad natural para escuchar que le ayuda a comprender los problemas de los clientes y a ofrecer soluciones inteligentes. Se unió al equipo de Iron Software en 2023, después de estudiar una licenciatura en Tecnología de la Información. IronPDF e IronOCR son los dos productos en los que Chipego se ha centrado, pero su conocimiento de todos los productos crece día a día, a medida que encuentra nuevas formas de ayudar a los clientes. Disfruta de lo colaborativa que es la vida en Iron Software, con miembros del equipo de toda la empresa que aportan su variada experiencia para contribuir a soluciones eficaces e innovadoras. Cuando Chipego está lejos de su escritorio, a menudo se le puede encontrar disfrutando de un buen libro o jugando al fútbol.
< ANTERIOR
Unión discriminada en C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Indexadores de C# (Cómo funciona para desarrolladores)