Clase 15 - Tagged.pdf
Document Details
Uploaded by HonorableHeisenberg3670
2024
Tags
Full Transcript
TALLER DE PROGRAMACIÓN Clase N° 15 11 – Septiembre - 2024 CONDICIONES FAVORABLES PARA LA CLASE Mantén todos tus sentidos activos Practica la puntualidad Mantén tu...
TALLER DE PROGRAMACIÓN Clase N° 15 11 – Septiembre - 2024 CONDICIONES FAVORABLES PARA LA CLASE Mantén todos tus sentidos activos Practica la puntualidad Mantén tus dispositivos electrónicos en silencio Respeta el turno de participación PRESENTACIÓN DE LA CLASE MOMENTO PARA RECORDAR Metodología POO Historia Características Calidad en diseño del sistema Elementos de POO Programación por Capas La programación por capas es una metodología que promueve la organización del código en distintos niveles o capas, cada uno con responsabilidades y funciones específicas. Esta técnica es crucial para diseñar aplicaciones escalables, mantenibles y extensibles. En el contexto globalizado del desarrollo de aplicaciones, entender y aplicar la programación por capas es esencial para profesionales que buscan crear software robusto y eficiente. Definición y Principios Fundamentales 1 Separación de Responsabilidades 2 Independencia de Capas Divide las responsabilidades entre distintas capas para Las capas deben ser independientes entre sí. Esto permite facilitar la gestión y mantenimiento del código. Cada capa que las capas puedan ser modificadas o reemplazadas sin debe preocuparse por una tarea específica, minimizando la afectar a las demás. interdependencia entre ellas. 3 Comunicación a través de Interfaces 4 Reutilización y Flexibilidad Las capas se comunican entre sí mediante interfaces bien Permite la reutilización de componentes y módulos y definidas, asegurando que los cambios en una capa no proporciona flexibilidad para adaptar o extender el sistema tengan un impacto directo en las demás. sin necesidad de una reescritura completa. Estructura Típica de una Aplicación por Capas 1 Capa de Presentación La capa de presentación es la interfaz de usuario de la aplicación. Es responsable de capturar la entrada del usuario y mostrar la salida correspondiente. Las características principales de esta capa son: - Interfaz de Usuario (UI): Incluye todo lo relacionado con la interacción del usuario con la aplicación, como formularios, botones, menús, etc. - Validación de Datos: Realiza la validación preliminar de los datos ingresados por el usuario antes de enviarlos a la capa de lógica de negocio. - Comunicación con la Lógica de Negocio: Envía las entradas del usuario a la capa de lógica de negocio y recibe las respuestas para representarlas adecuadamente. 2 Capa de Lógica de Negocio La capa de lógica de negocio contiene la lógica central del software. Es responsable de procesar las entradas recibidas desde la capa de presentación y aplicar las reglas del negocio. Las funciones principales de esta capa son: - Procesamiento de Datos: Realiza todas las operaciones de negocio necesarias, como cálculos, evaluaciones de condiciones y procesamiento de flujos. - Interacción con la Capa de Datos: Solicita y envía datos a la capa de acceso a datos según sea necesario. - Implementación de Reglas de Negocio: Asegura que todas las reglas y políticas del negocio sean seguidas correctamente. 3 Capa de Acceso a Datos La capa de acceso a datos se encarga de la interacción con las bases de datos o cualquier otro almacenamiento persistente. Las características clave de esta capa incluyen: - Conexión a la Base de Datos: Gestiona las conexiones a los sistemas de bases de datos. - Operaciones CRUD: Realiza las operaciones básicas de creación, lectura, actualización y eliminación (CRUD) sobre los datos. - Mapeo de Datos: Traduce los datos de las bases de datos a objetos de negocio y viceversa. Capa de Servicios (Opcional) Exposición de Servicios Proporciona endpoints para que otras aplicaciones o sistemas puedan interactuar con la lógica del negocio. Integración de Sistemas Facilita la comunicación entre diferentes sistemas y servicios. Fachada para la Lógica de Negocio Actúa como una interfaz simplificada para acceder a las funcionalidades complejas de la capa de lógica de negocio. Ventajas de la Programación por Capas Mantenibilidad Escalabilidad Reutilización La programación por capas El diseño por capas facilita la Los componentes desarrollados permite modificar y actualizar escalabilidad de las aplicaciones. en una capa pueden ser una parte del sistema sin afectar Cada capa puede ser optimizada reutilizados en diferentes partes las demás. Esto es crucial para el o ampliada independientemente del sistema o incluso en mantenimiento y evolución del de las demás. diferentes proyectos. Esto software a lo largo del tiempo. reduce los esfuerzos de desarrollo y mejora la eficiencia. Facilidad de Pruebas y Depuración Pruebas Focalizadas Las capas permiten pruebas más focalizadas en unidades específicas del sistema. Aislamiento de Componentes Cada capa representa una unidad independiente que puede ser testeada de manera aislada. Depuración Eficiente La estructura por capas facilita la identificación y corrección de errores en componentes específicos. Aplicación Práctica en C#: Capa de Presentación Código de Ejemplo ```csharp using System; using Biblioteca.BusinessLayer; namespace Biblioteca.PresentationLayer { class Program { static void Main(string[] args) { BookService bookService = new BookService(); Console.WriteLine("Ingrese el título del libro:"); string titulo = Console.ReadLine(); bookService.AddBook(new Book { Title = titulo }); Console.WriteLine("El libro ha sido agregado exitosamente."); } } } ``` Explicación Este código representa la capa de presentación de una aplicación de biblioteca. Interactúa con el usuario para obtener el título de un libro y utiliza la capa de lógica de negocio (BookService) para añadir el libro al sistema. Aplicación Práctica en C#: Capa de Lógica de Negocio Código de Ejemplo ```csharp using Biblioteca.DataLayer; using System.Collections.Generic; namespace Biblioteca.BusinessLayer { public class BookService { private readonly BookRepository _bookRepository; public BookService() { _bookRepository = new BookRepository(); } public void AddBook(Book book) { _bookRepository.Add(book); } public List GetAllBooks() { return _bookRepository.GetAll(); } } } ``` Explicación Este código muestra la capa de lógica de negocio. La clase BookService actúa como intermediario entre la capa de presentación y la capa de acceso a datos, gestionando las operaciones relacionadas con los libros. Aplicación Práctica en C#: Capa de Acceso a Datos Código de Ejemplo ```csharp using System; using System.Collections.Generic; namespace Biblioteca.DataLayer { public class BookRepository { private static List _books = new List(); public void Add(Book book) { _books.Add(book); } public List GetAll() { return _books; } } } ``` Explicación Este código representa la capa de acceso a datos. La clase BookRepository se encarga de gestionar las operaciones de almacenamiento y recuperación de libros, en este caso utilizando una lista en memoria como ejemplo simplificado. Entidad de Negocio en C# Código de Ejemplo Explicación ```csharp namespace Biblioteca.BusinessLayer Esta clase Book representa la entidad de negocio { public class Book { public string Title { get; para un libro. Define las propiedades básicas de un set; } } } ``` libro, en este caso solo el título. En una aplicación real, podría incluir más propiedades como autor, ISBN, etc. Relación con la Plataforma.NET.NET Framework.NET Core Mono y Xamarin Tradicionalmente usado en Una plataforma más reciente, Mono y Xamarin permiten el aplicaciones Windows y Web multiplataforma y de código desarrollo de aplicaciones.NET Forms..NET Framework tiene abierto..NET Core es ideal para en plataformas distintas a soporte robusto para la creación desarrollar aplicaciones Windows, como Linux, macOS, de aplicaciones por capas con modernas y escalables aplicando Android e iOS. Esto es crucial tecnologías como ASP.NET. la arquitectura por capas. para la programación por capas en un contexto global y multiplataforma, asegurando que la lógica de negocio y acceso a datos sean consistentes entre distintas versiones de la aplicación. IDE y Herramientas de Desarrollo Visual Studio El entorno de desarrollo integrado (IDE) como Visual Studio facilita la creación, prueba y depuración de aplicaciones por capas. Visual Studio proporciona herramientas que permiten visualizar y gestionar las distintas capas del aplicativo de manera eficiente. Herramientas de Depuración Visual Studio ofrece potentes herramientas de depuración como puntos de interrupción, inspección de variables, seguimiento de pila y condiciones de interrupción, que son esenciales para el desarrollo y mantenimiento de aplicaciones por capas. Beneficios en el Desarrollo de Software y Manejo de Errores Desarrollo de Software Manejo de Errores La programación por capas contribuye El manejo de errores se vuelve más estructurado y significativamente al ciclo de desarrollo de software. eficiente con la programación por capas. Cada capa Al dividir la aplicación en segmentos manejables, puede implementar su propia lógica de manejo de los desarrolladores pueden trabajar en paralelo en excepciones, capturando y manejando errores antes distintas capas, reduciendo el tiempo de desarrollo de pasar los datos a la capa siguiente. Esto reduce y mejorando la eficiencia. la complejidad y el riesgo de errores críticos en la aplicación final. Herramientas y Tecnologías de Apoyo 1 Entity Framework Entity Framework es una herramienta ORM (Object-Relational Mapping) proporcionada por.NET, que facilita la comunicación entre la capa de acceso a datos y la base de datos. Permite a los desarrolladores manipular datos utilizando objetos en lugar de comandos SQL complicados. 2 RESTful APIs Las APIs RESTful son frecuentemente utilizadas en la capa de servicios, exponiendo funcionalidades de la lógica de negocio a otras aplicaciones o sistemas. ASP.NET Core es una excelente plataforma para el desarrollo de APIs RESTful robustas y seguras. 3 Testing y Mocking Frameworks como NUnit y Moq son esenciales para probar aplicaciones por capas. Permiten crear pruebas unitarias e integrales, simulando diferentes escenarios y asegurando que cada capa funcione correctamente bajo diversas condiciones. Implementación de Seguridad 1 Seguridad en la Capa de Presentación Validación de entradas del usuario, prevención de ataques como XSS y CSRF. 2 Seguridad en la Capa de Lógica de Negocio Aplicación de reglas de negocio, autenticación y autorización de usuarios. 3 Seguridad en la Capa de Acceso a Datos Uso de conexiones seguras, encriptación de datos sensibles. Lenguajes de Programación Orientados a Objetos Definición Los lenguajes de programación orientados a objetos (OOP por sus siglas en inglés) representan un paradigma de programación que emplea 'objetos' y sus interacciones para diseñar aplicaciones y programas de computadoras. Importancia Este paradigma es extensivamente utilizado en el desarrollo moderno de software debido a su capacidad para manejar complejidad, promover el reuso de código y mejorar la mantenibilidad y escalabilidad de las aplicaciones. Lenguajes Populares Entre los lenguajes más populares para OOP se encuentran C++, Java, Python y, dentro del ecosistema de la plataforma.NET, C# y Visual Basic.NET. Conclusión 1 Importancia de la 2 Plataforma.NET y C# 3 Prácticas Esenciales Programación por Capas En combinación con la La correcta aplicación de estructura La programación orientada a plataforma.NET y el lenguaje C#, de control, manejo de excepciones, objetos es un paradigma esencial los desarrolladores pueden y las prácticas de compilación y en el desarrollo moderno de aprovechar un entorno poderoso y depuración son cruciales para software. Los principios de versátil para construir una amplia garantizar la calidad y encapsulación, herencia, variedad de aplicaciones. mantenibilidad del software. Por polimorfismo y abstracción ello, es vital para cualquier permiten crear aplicaciones desarrollador comprender y robustas y escalables. dominar estos conceptos. MOMENTO PARA APLICAR MOMENTO PARA RETROALIMENTAR MUCHAS GRACIAS