SlideShare una empresa de Scribd logo
Facultad de Ciencias Informáticas
Desarrollo de Aplicaciones Web
Unidad 2 Programación web en el
servidor
PhD(c). Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
luis.aguas@utm.edu.ec
Objetivos de Desarrollo Sostenible
Meta
4.7 De aquí a 2030, asegurar que todos los alumnos adquieran
los conocimientos teóricos y prácticos necesarios para promover
el desarrollo sostenible, entre otras cosas mediante la educación
para el desarrollo sostenible y los estilos de vida sostenibles, los
derechos humanos, la igualdad de género, la promoción de una
cultura de paz y no violencia, la ciudadanía mundial y la
valoración de la diversidad cultural y la contribución de la cultura
al desarrollo sostenible
El dinero no es la clave del éxito; la libertad para
poder crear lo es - Nelson Mandela
Resultado de Aprendizaje
• Diseñar un producto de
software en el que se
apliquen principios de
diseño, para que sea
robusto, fácil de mantener
y modificar
Contenido
• Unidad 2 Programación web en
el servidor
• 2.2 Lenguajes para desarrollo
web en el servidor
• 2.2.1 Mapeo de objeto-
relacional (ORM)
Que es Entity Framework?
• Entity Framework (EF) es un ORM
(object-relational mapper) que
permite a los desarrolladores en
.NET trabajar con datos
relacionales usando objetos
específicos del dominio. Elimina la
necesidad de escribir la mayoría
de código de acceso a datos. Es
un mecanismo automatizado para
acceder y consultar datos en una
base de datos y trabajar con los
resultados.
Componentes de Entity Framework
• EDM (Entity Data Model)
• Conceptual Model
• Storage Model
• Mapping
• LINQ to Entities
• Entity SQL
• Object Service
• Entity Client Data Provider
• ADO.Net Data Provider
Que es un ORM? Object-Relational Mapping
• Mapeo objeto-relacional (más conocido por su nombre en inglés, Object-
Relational mapping, o sus siglas O/RM, ORM, y O/R mapping) es una
técnica de programación para convertir datos entre el sistema de tipos
utilizado en un lenguaje de programación orientado a objetos y la
utilización de una base de datos relacional, utilizando un motor de
persistencia.
• Nota: En la práctica esto crea una base de datos orientada a objetos virtual,
sobre la base de datos relacional. Esto posibilita el uso de las características
propias de la orientación a objetos (básicamente herencia y polimorfismo)
Principales ORM del Mercado
• Java: EJB, Hibernate, Athena Framework, Java Data Objects.
• .NET: ADO.NET Entity Framework, Linq to SQL, nHibernate,
DataObjects.NET.
• PHP: CakePHP, FuelPHP, Qcodo, Readbean, Zend Framework
• Phyton: Django, SQLObject, Storm, Tryton.
• Ruby: ActiveRecord, Datamapper, iBATIS
Que es un Entity Object?
• Por default el Entity Data
Model genera
EntityObjects que son
derivados de entidades
(tablas/vistas)
Que es un POCO Object?
• POCO (Plain Old CLR Object):
- Las clases POCO es una clase la cual no depende de ninguna clase base de un
Framework especifico.
Que es Linq?
• Definición: Languaje Integrated Query
• Linq simplemente es una expresión tipo Query en
nuestro código, similar a un Query de SQL en nuestra
base de datos.
• Es aplicable sobre colecciones:
• Listas
• Arreglos
• XML
• Tablas de base de datos
Acceso a datos con ADO.NET
Acceso a datos con Linq:
• Fácil:
List<Customer> customers = from c in Customers
where c.FirstName == “Test”
select c;
• Rápido de codificar y legible:
List<Customer> customers = dbContext.Customers.Where(c =>
c.FirstName == “Test”).ToList();
Linq vs Native SQL
• Ventajas:
1.No hay cadenas mágicas como las que se pueden generar en
sentencias SQL (Prevención de Inyección).
2.Intellisense.
3.Un desarrollo mas rápido.
4.Autogeneración de objetos de dominio que pueden ser proyectos
reusables.
5.Lazy loading.(Cargado de objetos relacionados sobre demanda)
6.Lambda expressions y extension methods.
Linq vs Native SQL
• Desventajas:
1.Depuración (Debugging).
2.Consultas complejas traen como resultado problemas de
rendimiento.
3.Sobrecarga al crear consultas.
4.Los Índices de base de datos no son usados adecuadamente.
Estilos a seguir en Entity Framework
• Code First
• Model First
• Database first
Consideraciones para Performance
• Múltiples Entity Models (múltiples contextos).
• Desactivar el trackeo si no es necesario (Mejora el rendimiento):
SubwayDB context = new SubwayDB();
context.Configuration.AutoDetectChangesEnabled = false;
// Do bulk insert ....... // Change it back
context.Configuration.AutoDetectChangesEnabled = true;
• Usar SQL Projection:
var users = from u in context.UserAccounts where u.Active == true
select new { FirstName = u.FirstName, LastName = u.LastName, Email = u.Email };
Consideraciones para Performance
• Usar el tipo de coleccion apropiado:
IQueryable<UserAccount> IEnumerable<UserAccount>
- Filtra desde la base de datos - Filtra desde el lado del cliente
- Soporta Lazy loading - No soporta Lazy loading.
• Usar Queries compilados:
- Aplicar a los Queries comunmente utilizados para mejorar el rendimiento (Performance).
• Usar Paginados de información del lado del servidor:
int pageSize=10,startingPageIndex=2;
var users = context.UserAccounts.Take(pageSize).Skip(startingPageIndex * pageSize) .ToList();
Consideraciones para Performance
• Caching:
- Caching Interno
• Rápida ejecución estilo Micro-ORM estilo Sql Query en base de datos
y ExecuteStoreQuery (SP):
var query = ContextManager.CurrentContext.Database.SqlQuery<TransactionObjectList>( "EXEC sp_GetTransactionList @RoleID, @UserID, @RegionID, @Lookup,
@TransactionsStatus, @DateFrom, @DateTo, " + "@AmountFrom, @AmountTo, @DeliveryMethod, @AdminMenu, @StoreNumber, @HasDiscount, @CateringMenu, "
+ "@DevelopmentStores, @WithCustomerAbuse, @WithTotalPrice, @minGrandTotal, @maxGrandTotal, @EnteredToSubshop, " + "@ExcludeZeroBalance,
@StoreIsRemoved, @marketID, @Page,@PageSize,@sortdir,@sort", sqlparameters);
• Lazy Vs Eager loading (Cuando seleccionar Lazy loading)
Consideraciones para Performance
• Evitar el uso del método Contains
En Linq, el método Contains es usado para verificar la existencia de un valor. Este es
convertido a una sentencia “WHERE IN” en SQL, lo cual causa una degradación del
performance.
• Depuración y Optimización de Linq Query:
- Usar SQL Profiler
- Dividir la consulta a múltiples consultas (múltiples sentencias JOIN a tablas)
• Estrategias para manejo de Herencia en Entity Framework:
- Jerarquía por Tabla (TPH)
- Tabla por Tipo (TPT)
- Tabla por Clase concreta (TPC):
Consideraciones para Performance
• Jerarquía por Tabla (TPH)
- Permite polimorfismo por de-normalización de esquema
de SQL y utiliza una columna como tipo discriminador que
contiene esta información.
Discriminador = 3 Tipos
Consideraciones para Performance
• Tabla por Tipo (TPT)
- Representa una relación tipo “is a” (herencia), como una
relación tipo “has a” (Foreign key).
Consideraciones para Performance
• Tabla por Clase Concreta (TPC)
- Descarga las relaciones de polimorfismo y herencia
completamente desde el esquema SQL.
Gracias
Somos UTM

Más contenido relacionado

Similar a S8-DAW-2022S1.pptx

EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
Luis Fernando Aguas Bucheli
 
Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...
Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...
Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...
Antoni Riveros
 
Seminario html5
Seminario html5Seminario html5
Seminario html5
UDECI
 
CV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LSTCV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LST
jose martinez
 
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdfTabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
MIGUELANGELDORADOJAR
 
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Denodo
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
Carlos Camacho
 
2-Unidad 1. Arquitectura de Diseño
2-Unidad 1. Arquitectura de Diseño2-Unidad 1. Arquitectura de Diseño
2-Unidad 1. Arquitectura de Diseño
Luis Fernando Aguas Bucheli
 
Tarea 2.1.1 info pagina web
Tarea 2.1.1 info pagina webTarea 2.1.1 info pagina web
Tarea 2.1.1 info pagina web
GrupoLEAZ
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Socialmetrix
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptx
carrilloja98
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
RolitoChc1
 
Sistema de gestor de base de datos
Sistema de gestor de base de datosSistema de gestor de base de datos
Sistema de gestor de base de datos
Liliana del Pilar Tolentino More
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
Luis Fernando Aguas Bucheli
 
Base de datos
Base de datosBase de datos
Base de datos
humberto morles arias
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
Software Guru
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
Javier Condori Flores
 
Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero. Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero.
GustavoMartin46
 
Clase 11
Clase 11Clase 11
Clase 11
Gabriela
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
Luis Fernando Aguas Bucheli
 

Similar a S8-DAW-2022S1.pptx (20)

EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...
Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...
Qué SGBD (Sistema de Gestor de BD) y tecnologías utilizan: Facebook, Twitter,...
 
Seminario html5
Seminario html5Seminario html5
Seminario html5
 
CV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LSTCV_JMartinez_esp_1115_LST
CV_JMartinez_esp_1115_LST
 
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdfTabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
Tabla de 5 SGBD_Dorado Jarero Miguel Angel_Base de Datos 2.pdf
 
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
Mejorar la toma de decisiones y reducir costes con el Logical Data Warehouse ...
 
Web framework ligeros y micros en java barcamp 2014
Web framework ligeros y micros en java   barcamp 2014Web framework ligeros y micros en java   barcamp 2014
Web framework ligeros y micros en java barcamp 2014
 
2-Unidad 1. Arquitectura de Diseño
2-Unidad 1. Arquitectura de Diseño2-Unidad 1. Arquitectura de Diseño
2-Unidad 1. Arquitectura de Diseño
 
Tarea 2.1.1 info pagina web
Tarea 2.1.1 info pagina webTarea 2.1.1 info pagina web
Tarea 2.1.1 info pagina web
 
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
Conferencia MySQL, NoSQL & Cloud: Construyendo una infraestructura de big dat...
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptx
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
 
Sistema de gestor de base de datos
Sistema de gestor de base de datosSistema de gestor de base de datos
Sistema de gestor de base de datos
 
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
2-Unidad 1: Arquitectura de Diseño-1.1 MVC-Desarrollo
 
Base de datos
Base de datosBase de datos
Base de datos
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
DESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEBDESARROLLO RAPIDO DE APLICACIONES WEB
DESARROLLO RAPIDO DE APLICACIONES WEB
 
Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero. Cómo construir tu propia data platform. From zero to hero.
Cómo construir tu propia data platform. From zero to hero.
 
Clase 11
Clase 11Clase 11
Clase 11
 
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos 7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
 

Más de Luis Fernando Aguas Bucheli

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
Luis Fernando Aguas Bucheli
 
P-S2.pptx
P-S2.pptxP-S2.pptx
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
P-S3.pptx
P-S3.pptxP-S3.pptx
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S1.pptx
P-S1.pptxP-S1.pptx
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx

Más de Luis Fernando Aguas Bucheli (20)

EFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptxEFC-ISW-Luis Fernando Aguas.pptx
EFC-ISW-Luis Fernando Aguas.pptx
 
P-S2.pptx
P-S2.pptxP-S2.pptx
P-S2.pptx
 
EBTS-S1.pptx
EBTS-S1.pptxEBTS-S1.pptx
EBTS-S1.pptx
 
P-S3.pptx
P-S3.pptxP-S3.pptx
P-S3.pptx
 
EBTS-S4.pptx
EBTS-S4.pptxEBTS-S4.pptx
EBTS-S4.pptx
 
P-S4.pptx
P-S4.pptxP-S4.pptx
P-S4.pptx
 
P-S1.pptx
P-S1.pptxP-S1.pptx
P-S1.pptx
 
EBTS-S3.pptx
EBTS-S3.pptxEBTS-S3.pptx
EBTS-S3.pptx
 
EBTS-S2.pptx
EBTS-S2.pptxEBTS-S2.pptx
EBTS-S2.pptx
 
PDIDTI-S7.pptx
PDIDTI-S7.pptxPDIDTI-S7.pptx
PDIDTI-S7.pptx
 
PDIDTI-S4.pptx
PDIDTI-S4.pptxPDIDTI-S4.pptx
PDIDTI-S4.pptx
 
PDIDTI-S2.pptx
PDIDTI-S2.pptxPDIDTI-S2.pptx
PDIDTI-S2.pptx
 
PDIDTI-S1.pptx
PDIDTI-S1.pptxPDIDTI-S1.pptx
PDIDTI-S1.pptx
 
PDIDTI-S8.pptx
PDIDTI-S8.pptxPDIDTI-S8.pptx
PDIDTI-S8.pptx
 
PDIDTI-S6.pptx
PDIDTI-S6.pptxPDIDTI-S6.pptx
PDIDTI-S6.pptx
 
PDIDTI-S5.pptx
PDIDTI-S5.pptxPDIDTI-S5.pptx
PDIDTI-S5.pptx
 
PDIDTI-S3.pptx
PDIDTI-S3.pptxPDIDTI-S3.pptx
PDIDTI-S3.pptx
 
TIC-S4.pptx
TIC-S4.pptxTIC-S4.pptx
TIC-S4.pptx
 
TIC-S3.pptx
TIC-S3.pptxTIC-S3.pptx
TIC-S3.pptx
 
TIC-S2.pptx
TIC-S2.pptxTIC-S2.pptx
TIC-S2.pptx
 

Último

tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
munozvanessa878
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
raul958375
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
brandonsinael
 
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTINilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
OrlandoRomanEcheandi
 
NOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctricaNOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctrica
gabyp22
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
JuanCarlos695207
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
JaimmsArthur
 
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdfGRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
Jose Calderas
 
Cuadro sinoptico de clasificacion de las industrias.pdf
Cuadro sinoptico de clasificacion de las industrias.pdfCuadro sinoptico de clasificacion de las industrias.pdf
Cuadro sinoptico de clasificacion de las industrias.pdf
LizetGuadalupeHernan
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
jahirrtorresa
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
michiotes33
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
jhunior lopez rodriguez
 
OPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdf
OPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdfOPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdf
OPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdf
AlejandroContreras470286
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
FernandoRodrigoEscal
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
sebastianpech108
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
LuisAngelGuarnizoBet
 
Graficas de Control, problemas resueltos, minitab
Graficas de Control, problemas resueltos, minitabGraficas de Control, problemas resueltos, minitab
Graficas de Control, problemas resueltos, minitab
XIOMARAANTONELLACAST
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
FantasticVideo1
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
OmarPadillaGarcia
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
MaraManuelaUrribarri
 

Último (20)

tipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdftipos de energias: la Energía Radiante.pdf
tipos de energias: la Energía Radiante.pdf
 
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapasexposicion sobre los tipos de cortes de rolas para la produccion de chapas
exposicion sobre los tipos de cortes de rolas para la produccion de chapas
 
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptxPRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
PRES 3. METROLOGÍA DE GASES Y RADIACIONES IONIZANTES.pptx
 
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTINilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
ilovepdf_merged (2) (1)-4-51.pdfORLANDOMARTIN
 
NOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctricaNOM-001-SEDE-2012.pdf instalación eléctrica
NOM-001-SEDE-2012.pdf instalación eléctrica
 
Calculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajosCalculo-de-Camaras-Frigorificas.pdf para trabajos
Calculo-de-Camaras-Frigorificas.pdf para trabajos
 
INGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completaINGLES_LISTA_DE_VOCABULARIO una lista completa
INGLES_LISTA_DE_VOCABULARIO una lista completa
 
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdfGRAFICAS AÑOSsssssssss (2022 - 2023).pdf
GRAFICAS AÑOSsssssssss (2022 - 2023).pdf
 
Cuadro sinoptico de clasificacion de las industrias.pdf
Cuadro sinoptico de clasificacion de las industrias.pdfCuadro sinoptico de clasificacion de las industrias.pdf
Cuadro sinoptico de clasificacion de las industrias.pdf
 
Infografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdfInfografía de operaciones básicas....pdf
Infografía de operaciones básicas....pdf
 
Material magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulasMaterial magnetismo.pdf material del electromagnetismo con fórmulas
Material magnetismo.pdf material del electromagnetismo con fórmulas
 
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCECOMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
COMPARACION DE PRECIOS TENIENDO COMO REFERENTE LA OSCE
 
OPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdf
OPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdfOPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdf
OPERACIONPLANTA_CLASE14_CLASE15_BOMBAS_FLOTACIONSELECTIVA.pdf
 
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptxINVENTARIO CEROO Y DINAMICAA FABRIL.pptx
INVENTARIO CEROO Y DINAMICAA FABRIL.pptx
 
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
AE  34 Serie de sobrecargas aisladas_240429_172040.pdfAE  34 Serie de sobrecargas aisladas_240429_172040.pdf
AE 34 Serie de sobrecargas aisladas_240429_172040.pdf
 
DIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicosDIAGRAMA ELECTRICOS y circuito electrónicos
DIAGRAMA ELECTRICOS y circuito electrónicos
 
Graficas de Control, problemas resueltos, minitab
Graficas de Control, problemas resueltos, minitabGraficas de Control, problemas resueltos, minitab
Graficas de Control, problemas resueltos, minitab
 
Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024Sesión 03 universidad cesar vallejo 2024
Sesión 03 universidad cesar vallejo 2024
 
Uso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptxUso de equipos de protección personal.pptx
Uso de equipos de protección personal.pptx
 
Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.Las operaciones básicas en la construcción.
Las operaciones básicas en la construcción.
 

S8-DAW-2022S1.pptx

  • 1. Facultad de Ciencias Informáticas Desarrollo de Aplicaciones Web Unidad 2 Programación web en el servidor PhD(c). Luis Fernando Aguas Bucheli +593 984015184 @Aguaszoft luis.aguas@utm.edu.ec
  • 2. Objetivos de Desarrollo Sostenible Meta 4.7 De aquí a 2030, asegurar que todos los alumnos adquieran los conocimientos teóricos y prácticos necesarios para promover el desarrollo sostenible, entre otras cosas mediante la educación para el desarrollo sostenible y los estilos de vida sostenibles, los derechos humanos, la igualdad de género, la promoción de una cultura de paz y no violencia, la ciudadanía mundial y la valoración de la diversidad cultural y la contribución de la cultura al desarrollo sostenible
  • 3. El dinero no es la clave del éxito; la libertad para poder crear lo es - Nelson Mandela
  • 4. Resultado de Aprendizaje • Diseñar un producto de software en el que se apliquen principios de diseño, para que sea robusto, fácil de mantener y modificar Contenido • Unidad 2 Programación web en el servidor • 2.2 Lenguajes para desarrollo web en el servidor • 2.2.1 Mapeo de objeto- relacional (ORM)
  • 5. Que es Entity Framework? • Entity Framework (EF) es un ORM (object-relational mapper) que permite a los desarrolladores en .NET trabajar con datos relacionales usando objetos específicos del dominio. Elimina la necesidad de escribir la mayoría de código de acceso a datos. Es un mecanismo automatizado para acceder y consultar datos en una base de datos y trabajar con los resultados.
  • 6. Componentes de Entity Framework • EDM (Entity Data Model) • Conceptual Model • Storage Model • Mapping • LINQ to Entities • Entity SQL • Object Service • Entity Client Data Provider • ADO.Net Data Provider
  • 7. Que es un ORM? Object-Relational Mapping • Mapeo objeto-relacional (más conocido por su nombre en inglés, Object- Relational mapping, o sus siglas O/RM, ORM, y O/R mapping) es una técnica de programación para convertir datos entre el sistema de tipos utilizado en un lenguaje de programación orientado a objetos y la utilización de una base de datos relacional, utilizando un motor de persistencia. • Nota: En la práctica esto crea una base de datos orientada a objetos virtual, sobre la base de datos relacional. Esto posibilita el uso de las características propias de la orientación a objetos (básicamente herencia y polimorfismo)
  • 8. Principales ORM del Mercado • Java: EJB, Hibernate, Athena Framework, Java Data Objects. • .NET: ADO.NET Entity Framework, Linq to SQL, nHibernate, DataObjects.NET. • PHP: CakePHP, FuelPHP, Qcodo, Readbean, Zend Framework • Phyton: Django, SQLObject, Storm, Tryton. • Ruby: ActiveRecord, Datamapper, iBATIS
  • 9. Que es un Entity Object? • Por default el Entity Data Model genera EntityObjects que son derivados de entidades (tablas/vistas)
  • 10. Que es un POCO Object? • POCO (Plain Old CLR Object): - Las clases POCO es una clase la cual no depende de ninguna clase base de un Framework especifico.
  • 11. Que es Linq? • Definición: Languaje Integrated Query • Linq simplemente es una expresión tipo Query en nuestro código, similar a un Query de SQL en nuestra base de datos. • Es aplicable sobre colecciones: • Listas • Arreglos • XML • Tablas de base de datos
  • 12. Acceso a datos con ADO.NET
  • 13. Acceso a datos con Linq: • Fácil: List<Customer> customers = from c in Customers where c.FirstName == “Test” select c; • Rápido de codificar y legible: List<Customer> customers = dbContext.Customers.Where(c => c.FirstName == “Test”).ToList();
  • 14. Linq vs Native SQL • Ventajas: 1.No hay cadenas mágicas como las que se pueden generar en sentencias SQL (Prevención de Inyección). 2.Intellisense. 3.Un desarrollo mas rápido. 4.Autogeneración de objetos de dominio que pueden ser proyectos reusables. 5.Lazy loading.(Cargado de objetos relacionados sobre demanda) 6.Lambda expressions y extension methods.
  • 15. Linq vs Native SQL • Desventajas: 1.Depuración (Debugging). 2.Consultas complejas traen como resultado problemas de rendimiento. 3.Sobrecarga al crear consultas. 4.Los Índices de base de datos no son usados adecuadamente.
  • 16. Estilos a seguir en Entity Framework • Code First • Model First • Database first
  • 17. Consideraciones para Performance • Múltiples Entity Models (múltiples contextos). • Desactivar el trackeo si no es necesario (Mejora el rendimiento): SubwayDB context = new SubwayDB(); context.Configuration.AutoDetectChangesEnabled = false; // Do bulk insert ....... // Change it back context.Configuration.AutoDetectChangesEnabled = true; • Usar SQL Projection: var users = from u in context.UserAccounts where u.Active == true select new { FirstName = u.FirstName, LastName = u.LastName, Email = u.Email };
  • 18. Consideraciones para Performance • Usar el tipo de coleccion apropiado: IQueryable<UserAccount> IEnumerable<UserAccount> - Filtra desde la base de datos - Filtra desde el lado del cliente - Soporta Lazy loading - No soporta Lazy loading. • Usar Queries compilados: - Aplicar a los Queries comunmente utilizados para mejorar el rendimiento (Performance). • Usar Paginados de información del lado del servidor: int pageSize=10,startingPageIndex=2; var users = context.UserAccounts.Take(pageSize).Skip(startingPageIndex * pageSize) .ToList();
  • 19. Consideraciones para Performance • Caching: - Caching Interno • Rápida ejecución estilo Micro-ORM estilo Sql Query en base de datos y ExecuteStoreQuery (SP): var query = ContextManager.CurrentContext.Database.SqlQuery<TransactionObjectList>( "EXEC sp_GetTransactionList @RoleID, @UserID, @RegionID, @Lookup, @TransactionsStatus, @DateFrom, @DateTo, " + "@AmountFrom, @AmountTo, @DeliveryMethod, @AdminMenu, @StoreNumber, @HasDiscount, @CateringMenu, " + "@DevelopmentStores, @WithCustomerAbuse, @WithTotalPrice, @minGrandTotal, @maxGrandTotal, @EnteredToSubshop, " + "@ExcludeZeroBalance, @StoreIsRemoved, @marketID, @Page,@PageSize,@sortdir,@sort", sqlparameters); • Lazy Vs Eager loading (Cuando seleccionar Lazy loading)
  • 20. Consideraciones para Performance • Evitar el uso del método Contains En Linq, el método Contains es usado para verificar la existencia de un valor. Este es convertido a una sentencia “WHERE IN” en SQL, lo cual causa una degradación del performance. • Depuración y Optimización de Linq Query: - Usar SQL Profiler - Dividir la consulta a múltiples consultas (múltiples sentencias JOIN a tablas) • Estrategias para manejo de Herencia en Entity Framework: - Jerarquía por Tabla (TPH) - Tabla por Tipo (TPT) - Tabla por Clase concreta (TPC):
  • 21. Consideraciones para Performance • Jerarquía por Tabla (TPH) - Permite polimorfismo por de-normalización de esquema de SQL y utiliza una columna como tipo discriminador que contiene esta información. Discriminador = 3 Tipos
  • 22. Consideraciones para Performance • Tabla por Tipo (TPT) - Representa una relación tipo “is a” (herencia), como una relación tipo “has a” (Foreign key).
  • 23. Consideraciones para Performance • Tabla por Clase Concreta (TPC) - Descarga las relaciones de polimorfismo y herencia completamente desde el esquema SQL.

Notas del editor

  1. EDM (Entity Data Model): EDM consist three main parts- Conceptual model, Mapping and Storage model.   Conceptual Model: Conceptual model is your model classes and their relationships. This will be independent from your database table design.   Storage Model: Storage model is your database design model which includes tables, views, stored procedures and their relationships and keys.   Mapping: Mapping consist information about how your conceptual model is mapped to storage model.   LINQ to Entities: LINQ to Entities is query language used to write queries against the object model. It returns entities which are defined in the conceptual model. You can use your LINQ skills here.   Entity SQL: Entity SQL is again a query language same as LINQ to Entities. However it is little more difficult than L2E and also developer need to learn it separately.   Object Service: Object service is a main entry point for accessing data from database and to return it back. Object service is responsible for materialization which is process of converting data returned from entity client data provider (next layer) to an entity object structure.   Entity Client Data Provider: The main responsibility of this layer is to convert L2E or Entity SQL queries into SQL query which is understood by underlying database. It communicates with ADO.Net data provider which in turn sends or retrieves data from database.   ADO.Net Data Provider: This layer communicates with database using standard ADO.Net.
  2. EntityObject: By default, the ADO.NET Entity Data Model tools generate EntityObject derived entities. If you check entities created in previous step, it is of this type. When you work with EntityObject derived types, the object context manages the relationships between your objects, tracks changes as they occur, and supports lazy loading in the most efficient manner. However, the EntityObject derived types have strong dependency on the Entity Framework. If you are working with architectures that require persistence ignorance (for example, test- driven development or domain-driven development) or you have existing domain classes, consider using POCO or POCO proxies.
  3. POCO (Plain Old CLR Object): POCO class is the class which doesn’t depend on any framework specific base class. It is like any other normal .net class that is why it is called “Plain Old CLR Objects”. The Entity Framework 4.0 enables you to use existing .net classes together with the data model without making any modifications to the existing .net classes. These POCO entities (also known as persistence-ignorant objects) support most of the same LINQ queries as EntityObject derived entities .
  4. Code First: In the Code First approach, you avoid working with visual model designer (EDMX) completely. You write your POCO classes first and then create database from these POCO classes. Developers who follow the path of Domain-Driven Design (DDD) principles prefer to begin by coding their classes first and then generating the database required to persist their data.   One important thing to understand is that there are two new types introduced for Code First approach, DbContext and DbSet. DbContext is a simplified alternative to ObjectContext and is the primary object for interacting with a database using a specific model. DbSet(Of TEntity) is a simplified alternative to ObjectSet(Of TEntity) and is used to perform CRUD operations against a specific type from the model in Code First approach. Please visit EF Code-First Tutorial to learn code first in detail. Model First: In Model First approach, you create Entities, relationships, and inheritance hierarchies directly on the design surface of EDMX. So in Model First approach, when you add ADO.NET Entity Data Model, you should select ‘Empty Model’ instead of ‘Generate from database’.