Escritura de documentación para proyectos C#: de la A a la Z

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Escritura de documentación para proyectos C#: de la A a la Z

\n\n

La documentación de calidad es la clave del éxito y el mantenimiento de un proyecto C#. Ayuda a los desarrolladores a comprender rápidamente el código, facilita la incorporación de nuevos miembros al equipo y reduce la cantidad de errores. En este artículo, analizaremos el proceso completo de creación de documentación para un proyecto C# (.NET): desde los fundamentos de los comentarios XML hasta la generación automática de sitios web atractivos.

\n\n

1. Fundamentos de los comentarios XML en C#

\n\n

La forma estándar de documentar el código en C# son los comentarios XML. Se escriben antes de la declaración de una clase, método, propiedad u otro elemento y comienzan con tres barras ///. El compilador de C# reconoce estos comentarios y puede generar un archivo XML de documentación.

\n\n

Estas son las etiquetas básicas que usará con más frecuencia:

\n\n
    \n
  • <summary> — descripción breve del elemento.
  • \n
  • <param name="nombre"> — descripción del parámetro del método.
  • \n
  • <returns> — descripción del valor devuelto.
  • \n
  • <exception cref="Tipo"> — descripción de la excepción que puede lanzar el método.
  • \n
  • <example> — ejemplo de uso.
  • \n
  • <remarks> — notas adicionales.
  • \n
\n\n

Ejemplo de un comentario XML correcto para un método:

\n\n
/// <summary>\n/// Calcula el factorial de un número entero no negativo.\n/// </summary>\n/// <param name="n">Número entero no negativo.</param>\n/// <returns>Factorial del número n.</returns>\n/// <exception cref="System.ArgumentException">Se lanza si n es menor que 0.</exception>\n/// <example>\n/// <code>\n/// int result = Factorial(5);\n/// // result es igual a 120\n/// </code>\n/// </example>\npublic static int Factorial(int n)\n{\n    if (n < 0)\n        throw new ArgumentException("n no puede ser negativo", nameof(n));\n\n    int result = 1;\n    for (int i = 1; i <= n; i++)\n    {\n        result *= i;\n    }\n    return result;\n}
\n\n

2. Documentación de clases y propiedades

\n\n

No olvide documentar no solo los métodos, sino también las clases mismas, así como sus propiedades y campos. Esto es especialmente importante para las API públicas que serán utilizadas por otros desarrolladores.

\n\n

Para las propiedades, use las etiquetas <summary> y <value> (para describir el valor almacenado):

\n\n
/// <summary>\n/// Representa un usuario del sistema.\n/// </summary>\npublic class User\n{\n    /// <summary>\n    /// Identificador único del usuario.\n    /// </value>\n    public int Id { get; set; }\n\n    /// <summary>\n    /// Nombre completo del usuario.\n    /// </summary>\n    /// <value>Cadena que contiene el nombre y apellido.</value>\n    public string FullName { get; set; }\n\n    /// <summary>\n    /// Crea un nuevo usuario.\n    /// </summary>\n    /// <param name="id">Identificador.</param>\n    /// <param name="fullName">Nombre completo.</param>\n    public User(int id, string fullName)\n    {\n        Id = id;\n        FullName = fullName ?? throw new ArgumentNullException(nameof(fullName));\n    }\n}
\n\n

3. Generación del archivo XML y compilación de la documentación

\n\n

Para obtener un archivo XML a partir de sus comentarios, debe configurar el proyecto. En Visual Studio o a través del archivo .csproj, agregue:

\n\n
<PropertyGroup>\n  <GenerateDocumentationFile>true</GenerateDocumentationFile>\n  <DocumentationFile>bin\\$(Configuration)\\$(TargetFramework)\\$(AssemblyName).xml</DocumentationFile>\n  <NoWarn>$(NoWarn);1591</NoWarn> <!-- Desactiva la advertencia sobre comentarios faltantes, si es necesario -->\n</PropertyGroup>
\n\n

Después de compilar el proyecto, obtendrá un archivo XML que se puede utilizar para crear un sitio web de documentación atractivo utilizando herramientas como DocFX o Sandcastle.

Blogs

Book Recommendations