AI SYNTHESIZED • 150 SHEETS
v1.0.0


🌐 .NET Framework Cheatsheet Completo 🌐

El .NET Framework es una plataforma de desarrollo de software integral creada por Microsoft. Es un entorno de ejecución de aplicaciones y un conjunto de bibliotecas de clases que proporciona un modelo de programación consistente para construir una amplia gama de aplicaciones, incluyendo web, escritorio, móviles y servicios.

⚠️ NOTA IMPORTANTE: El .NET Framework está en modo de mantenimiento, lo que significa que Microsoft ya no añade nuevas características, solo correcciones de errores y actualizaciones de seguridad. Para nuevos proyectos, se recomienda encarecidamente utilizar la plataforma .NET (que es cross-platform, de código abierto y la evolución moderna del .NET Core y .NET Framework). Este cheatsheet es para comprender y trabajar con aplicaciones existentes basadas en .NET Framework.


1. 🌟 Conceptos Clave

  • Plataforma de Desarrollo: Un entorno completo para construir, desplegar y ejecutar aplicaciones.
  • Código Gestionado (Managed Code): El código C#, VB.NET, etc., es compilado a un lenguaje intermedio (CIL/MSIL) y ejecutado por el Common Language Runtime (CLR).
  • Independencia del Lenguaje: Permite escribir aplicaciones en varios lenguajes (C#, VB.NET, F#) que pueden interactuar entre sí.
  • “Write Once, Run Anywhere” (WORA): Similar a Java, el código compilado puede ejecutarse en cualquier sistema que tenga el .NET Framework instalado.
  • Biblioteca de Clases Extensa (FCL): Proporciona una vasta colección de clases reutilizables para tareas comunes (E/S, red, bases de datos, UI).
  • Recolección de Basura (Garbage Collection): El CLR gestiona automáticamente la memoria, liberando objetos no utilizados.
  • Windows-Only: El .NET Framework está diseñado y es compatible solo con sistemas operativos Windows.

2. 🛠 Arquitectura y Componentes Principales

  • CLR (Common Language Runtime): El “motor” del .NET Framework. Responsabilidades:
    • JIT (Just-In-Time) Compilation: Compila el CIL/MSIL a código nativo en tiempo de ejecución.
    • Garbage Collection (GC): Gestión automática de memoria.
    • Type Safety: Asegura que el código accede a la memoria de forma segura.
    • Exception Handling: Manejo de errores.
    • Seguridad: Mecanismos de seguridad de código.
    • Thread Management: Gestión de hilos.
  • FCL (Framework Class Library): La biblioteca de clases base. Proporciona funcionalidades para:
    • Base Class Library (BCL): Funcionalidades básicas (tipos de datos, E/S, colecciones, redes).
    • ADO.NET: Acceso a datos.
    • ASP.NET: Desarrollo web.
    • Windows Forms: Aplicaciones de escritorio con GUI.
    • WPF (Windows Presentation Foundation): Aplicaciones de escritorio con GUI enriquecida (basada en XAML).
    • WCF (Windows Communication Foundation): Creación de servicios distribuidos.
    • LINQ (Language Integrated Query): Consultas de datos integradas en el lenguaje.
  • CTS (Common Type System): Define cómo se declaran, utilizan y gestionan los tipos en el CLR, permitiendo la interoperabilidad entre lenguajes.
  • CLS (Common Language Specification): Un subconjunto de reglas del CTS que los lenguajes .NET deben seguir para ser interoperables.

3. 🖥️ Modelos de Desarrollo Clave

3.1. Aplicaciones de Escritorio (Desktop)

  • Windows Forms:
    • Un framework de GUI antiguo, pero aún utilizado.
    • Basado en eventos, “arrastrar y soltar” controles en un diseñador visual.
    • Código C# (o VB.NET) maneja los eventos de los controles.
    • Ideal para aplicaciones de negocios simples y rápidas en Windows.
  • WPF (Windows Presentation Foundation):
    • Framework de GUI más moderno y potente.
    • Utiliza XAML (eXtensible Application Markup Language) para definir la UI declarativamente.
    • Fuerte soporte para gráficos 2D/3D, multimedia, animaciones.
    • Basado en el patrón MVVM (Model-View-ViewModel) para una mejor separación de preocupaciones.
    • Ideal para aplicaciones de escritorio visualmente ricas y complejas.

3.2. Aplicaciones Web

  • ASP.NET Web Forms:
    • Modelo de desarrollo web “estado-completo” (stateful) con eventos de servidor y postbacks.
    • Componentes de servidor que emulan controles de escritorio.
    • Ideal para desarrollo rápido de sitios web simples con enfoque en arrastrar y soltar.
    • Considerado obsoleto para nuevos proyectos.
  • ASP.NET MVC (Model-View-Controller):
    • Un framework web que sigue el patrón MVC.
    • Más control sobre el HTML y el ciclo de vida de la solicitud.
    • Basado en rutas, controladores, acciones y vistas (usando Razor Syntax).
    • Ideal para APIs RESTful y aplicaciones web más complejas con buena separación de preocupaciones.
  • ASP.NET Web API:
    • Framework para construir servicios HTTP (APIs RESTful).
    • Puede coexistir con ASP.NET MVC o funcionar de forma independiente.
    • Retorna datos en JSON, XML, etc.

3.3. Servicios

  • WCF (Windows Communication Foundation):
    • Framework para construir servicios distribuidos y orientados a la arquitectura SOA (Service-Oriented Architecture).
    • Soporta múltiples protocolos (HTTP, TCP, MSMQ) y formatos de datos (SOAP, REST).
    • Muy configurable, pero puede ser complejo de usar.
    • Considerado obsoleto para nuevos proyectos en favor de ASP.NET Web API/gRPC en .NET.

3.4. Aplicaciones de Consola

  • Programas que se ejecutan en la línea de comandos. Útil para scripts, herramientas de backend, etc.

4. 📚 Namespaces y Clases Comunes

  • System: Tipos de datos fundamentales (Object, String, Int32, Boolean, DateTime, Guid), E/S de consola (Console).
  • System.Collections.Generic: Colecciones genéricas (List<T>, Dictionary<TKey, TValue>, HashSet<T>).
  • System.IO: Operaciones de entrada/salida de archivos y streams (File, Directory, StreamReader, StreamWriter).
  • System.Linq: Extensiones para consultas LINQ (Enumerable).
  • System.Net: Networking (HttpClient, HttpWebRequest).
  • System.Text: Manipulación de cadenas (StringBuilder, codificaciones).
  • System.Threading.Tasks: Programación asíncrona (Task, async, await).
  • System.Windows.Forms: Clases para Windows Forms.
  • System.Windows: Clases base para WPF.
  • System.Data: Clases para ADO.NET (acceso a bases de datos).
  • System.Xml: Procesamiento de XML.
  • System.Reflection: Inspección de metadatos de tipos en tiempo de ejecución.

5. 🧰 Herramientas Esenciales

  • Visual Studio IDE: El entorno de desarrollo integrado principal para .NET Framework. Proporciona diseñadores visuales, depuración avanzada y plantillas de proyecto.
  • NuGet: El gestor de paquetes para el ecosistema .NET. Permite instalar, actualizar y gestionar librerías de terceros.
  • MSBuild: El sistema de compilación para proyectos .NET. Define cómo se construyen los proyectos.
  • .NET Framework Developer Pack: Necesario para desarrollar aplicaciones para una versión específica de .NET Framework.
  • SQL Server Management Studio (SSMS): Para gestionar bases de datos SQL Server, comunes en aplicaciones .NET Framework.

6. ✨ Características/Paradigmas Clave

  • Programación Orientada a Objetos (OOP): Basada en clases, objetos, herencia, polimorfismo, encapsulación y abstracción.
  • Delegados y Eventos: Fundamentales para el desarrollo basado en eventos (UI, servicios).
  • Genéricos: Permiten escribir código más reutilizable y tipo-seguro al trabajar con colecciones y algoritmos.
  • LINQ (Language Integrated Query): Permite escribir consultas de datos directamente en el código C# (o VB.NET) para colecciones, bases de datos (LINQ to SQL, LINQ to Entities) y XML.
  • Programación Asíncrona (async/await): Permite escribir código asíncrono y no bloqueante de forma más legible, esencial para aplicaciones responsivas y escalables.
  • Manejo de Excepciones: Uso de bloques try-catch-finally para manejar errores en tiempo de ejecución.
  • Reflexión: Capacidad de un programa para examinarse a sí mismo (y sus tipos) en tiempo de ejecución.
  • Atributos: Metadatos declarativos que se pueden añadir a código para influir en el comportamiento en tiempo de ejecución o en la generación de código.
  • Modelo de Componentes (COM Interop): Permite la interacción con componentes COM heredados, común en entornos empresariales.

7. 💡 Buenas Prácticas y Consideraciones

  • Gestión de Recursos (using Statement): Siempre utiliza el using statement para objetos que implementan IDisposable (ej. StreamReader, conexiones a bases de datos) para asegurar que los recursos se liberen correctamente, incluso si ocurren excepciones.
  • Manejo de Nulos: A partir de C# 8, los tipos anulables (?) y operadores como ?. (acceso condicional) y ?? (coalescencia nula) ayudan a escribir código más seguro y a prevenir NullReferenceException.
  • Manejo de Errores Robustos: Implementa una estrategia de manejo de excepciones global y granular, evitando capturar Exception de forma genérica.
  • Logging: Configura un sistema de logging (ej. Log4net, NLog) para registrar eventos y errores de la aplicación.
  • Rendimiento: Considera la gestión de memoria (GC), la programación asíncrona y la optimización de consultas (LINQ) para mejorar el rendimiento.
  • Seguridad: Aplica principios de seguridad como la validación de entrada, autenticación/autorización robusta, y el principio de menor privilegio.
  • Pruebas Unitarias: Escribe pruebas unitarias para tu código (ej. con NUnit, xUnit) para asegurar la calidad y facilitar el mantenimiento.
  • Despliegue: Para aplicaciones de escritorio, se usa ClickOnce o Windows Installer. Para web, IIS (Internet Information Services).
  • Migración: Si estás trabajando con una aplicación .NET Framework y consideras la modernización, evalúa la migración a la plataforma .NET para obtener beneficios como cross-platform, rendimiento mejorado y acceso a nuevas características.

Este cheatsheet te proporciona una referencia completa y concisa del .NET Framework, cubriendo su arquitectura, modelos de desarrollo, componentes clave y las mejores prácticas para comprender y mantener aplicaciones existentes basadas en esta plataforma.

Descarga completada