Visión general de XPO ORM
XPO (eXpress Persistent Objects) es una herramienta de mapeo objeto-relacional (ORM) para .NET Framework, .NET Core y .NET Standard 2.0. Gestiona la creación de bases de datos y la persistencia de objetos, permitiendo que los desarrolladores se enfoquen en la lógica de negocio. Soporta flujos de trabajo como Code First, Model First y Database First.
Inicio rápido
Instalación vía NuGet
Para usar XPO sin funciones de diseño de Visual Studio, instala el paquete con el siguiente comando:
dotnet add package DevExpress.Xpo
Configuración de base de datos y esquema
Este ejemplo ilustra cómo crear una base de datos y definir una tabla utilizando XPO:
using DevExpress.Xpo;
using DevExpress.Xpo.DB;
using DevExpress.Xpo.Metadata;
class ConfiguradorApp
{
static void InicializarBD()
{
string cadenaConn = MSSqlConnectionProvider.GetConnectionString("localhost", "DemoBD", "admin", "contraseña_segura");
IDataLayer capa = XpoDefault.GetDataLayer(cadenaConn, AutoCreateOption.DatabaseAndSchema);
using (var sesion = new Session(capa))
{
sesion.UpdateSchema(typeof(Empleado));
}
}
}
public class Empleado : XPObject
{
public Empleado(Session sesion) : base(sesion) { }
public string Nombre { get; set; }
public string Correo { get; set; }
}
Inserción de datos
Para agregar registros, se utiliza un UnitOfWork:
using (var uow = new UnitOfWork(capa))
{
var nuevoEmpleado = new Empleado(uow)
{
Nombre = "Ana López",
Correo = "ana.lopez@ejemplo.com"
};
uow.CommitChanges();
}
Consulta de datos
Para recuperar información, se emplea LINQ a través de una sesión:
using (var sesion = new Session(capa))
{
var empleados = sesion.Query<empleado>().Where(e => e.Nombre.Contains("López")).ToList();
foreach (var emp in empleados)
{
Console.WriteLine($"Nombre: {emp.Nombre}, Correo: {emp.Correo}");
}
}</empleado>
Casos de uso y recomendaciones
Aplicaciones prácticas
XPO es adecuado para sistmeas empresariales de alto rendimiento, como plataformas de gestión de recursos, aplicaciones de comercio en línea y herramientas de análisis.
Mejores prácticas
- Emplear Code First: Permite iterar rápidamente los modelos de negocio durante el desarrollo.
- Optimizar consultas: Usa índices y mecanismos de caché disponibles en XPO para mejorar el rendimiento.
- Implementar pruebas unitarias: Valida la lógica de negocio con capas de datos simuladas.
Ecosistema y herramientas
Integración con DevExpress
XPO es parte del ecosistema DevExpress, que ofrece controles de interfaz de usuario para WinForms, WPF, ASP.NET y Blazor, facilitando el desarrollo de aplicaciones completas.
Comparación con otros ORMs
XPO se puede comparar con soluciones como Antity Framework Core y NHibernate. Las pruebas de rendimiento se encuentran en la carpeta Benchmarks del proyecto.