Universidad Abierta Para Adultos.
(UAPA)
Escuela:
Informática gerencial
Asignatura:
Programación III
Facilitad@r:
Loida Charles Ramírez Loida charles
Participante:
Smarlim Mejía Cabrera
Tema:
Tarea 4
Fecha:
29/06/2024
[Link] en la web acerca de las diferentes fuentes de accesos a datos y
su implementación.
En el desarrollo de aplicaciones en C#, existen diversas fuentes de acceso a datos
y sus implementaciones, las cuales pueden ser adaptadas según los requisitos
específicos del proyecto. Aquí te presento algunas de las más comunes:
1. [Link]
[Link] es una de las formas más básicas y tradicionales de acceder a bases
de datos en .NET. Proporciona un conjunto de clases para conectar a bases de
datos, ejecutar comandos y gestionar los resultados. Es flexible y permite un
control preciso sobre las operaciones de la base de datos.
2. Entity Framework (EF)
Entity Framework es un ORM (Object-Relational Mapper) que permite a los
desarrolladores trabajar con una base de datos usando objetos .NET, eliminando
la necesidad de la mayoría del código de acceso a datos. EF permite realizar
operaciones CRUD (Create, Read, Update, Delete) de manera más sencilla y
proporciona características como el seguimiento de cambios, validaciones y
mapeo de relaciones complejas.
3. Dapper
Dapper es un micro ORM que se enfoca en proporcionar una manera rápida y
eficiente de ejecutar queries SQL y mapear resultados a objetos .NET. Es mucho
más ligero que EF y puede ser una buena opción cuando se necesita rendimiento
y simplicidad en las operaciones de acceso a datos.
4. LINQ to SQL
LINQ to SQL es una herramienta que permite a los desarrolladores trabajar con
datos relacionales usando LINQ (Language Integrated Query). Aunque es más
limitada que EF y no ha sido actualizada activamente, sigue siendo una opción
viable para aplicaciones sencillas.
5. NHibernate
NHibernate es otro ORM que proporciona una rica funcionalidad para mapeo
objeto-relacional. Es muy similar a EF en los términos de características y es
altamente configurable, lo que puede ser ventajoso en aplicaciones complejas.
Implementación en C#
[Link]
using [Link];
string connectionString = "your_connection_string";
using (SqlConnection connection = new SqlConnection(connectionString))
[Link]();
string query = "SELECT * FROM Courses";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = [Link]();
while ([Link]())
[Link]($"{reader["CourseID"]}, {reader["CourseName"]}");
}
Entity Framework
using (var context = new SchoolContext())
var courses = [Link]();
foreach (var course in courses)
[Link]($"{[Link]}, {[Link]}");
Repositorios y Unit of Work
El patrón de repositorio encapsula la lógica de acceso a datos y promueve la
separación de preocupaciones. En combinación con el patrón Unit of Work, que
maneja transacciones, se puede obtener una arquitectura limpia y mantenible.
public interface ICourseRepository : IRepository<Course>
// Define additional methods specific to Course
public class CourseRepository : ICourseRepository
private readonly SchoolContext _context;
public CourseRepository(SchoolContext context)
_context = context;
public Course Add(Course course)
return _context.[Link](course).Entity;
// Implement other methods...
Acceso a múltiples bases de datos
Para acceder a múltiples bases de datos, se pueden crear implementaciones
específicas de la interfaz del DAL (Data Access Layer) para cada sistema de
gestión de bases de datos (DBMS).
public interface IDataAccess
void ExecuteQuery(string query);
}
public class SqlDataAccess : IDataAccess
public void ExecuteQuery(string query)
// Implementation for SQL Server
public class MySqlDataAccess : IDataAccess
public void ExecuteQuery(string query)
// Implementation for MySQL
}
2) Crear interfaz de usuario con acceso a datos, siguiendo las orientaciones
de tu facilitador.