La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Entity Framework Desarrollador vs. DBA Enrique Puig Nouselles

Presentaciones similares


Presentación del tema: "Entity Framework Desarrollador vs. DBA Enrique Puig Nouselles"— Transcripción de la presentación:

1 Entity Framework Desarrollador vs. DBA Enrique Puig Nouselles
DPE (Data Platform Engineer) Solid Quality Mentors

2 Objetivos Por parte del desarrollador: Por parte del DBA:
Saber que es EF Ventajas de EF Por parte del DBA: Conocer principales preocupaciones como DBA. Conocer como enfrentarnos a Aplicaciones EF.

3 AGENDA Introducción Modelo Ventajas para el desarrollador Demo
Punto de vista del DBA Conclusiones Preguntas

4 Introducción ADO.NET Entity Framework permite a los desarrolladores crear aplicaciones de acceso a datos programando con un esquema conceptual en lugar de programar directamente con un esquema de almacenamiento relacional. ¿Qué conseguimos? Reducimos cantidad de código Simplificamos el mantenimiento de este tipo de aplicaciones Copyright © Solid Quality Mentors. All rights reserved.

5 Modelo de almacenamiento
El modelo de datos EDM (Entity data model) Fichero *.edmx Esquema conceptual (Entidades) Modelo de almacenamiento Mapeo Entidades-Tablas Esquema Almacenamiento Fichero *.ssdl Esquema conceptual Fichero *.csdl El modelo conceptual es una capa que nos abstrae de la base de datos. Vamos a distinguir 3 componentes: Por un lado tenemos el Modelo de almacenamiento, donde se encuentran las BDs y los objetos como tablas, relaciones, indices etc… Por otro lado vamos a tener el esquema conceptual donde estarán todas las ENTIDADES (que no son mas que clases que cuando se instancian se convierten en objetos, que a fin de cuentas es con lo que el desarrollador mas agusto está y mejor sabe hacer) y una capa intermedia que nos mapeara las entidades y los atriubutos con las tablas y sus campos. De modo que si por ejemplo vamos a crear una BD que gestione los pedidos de los clientes, en el modelo relacional tendremos la tabla Pedido y la tabla Clientes con una relacion 1 a muchos (1 cliente realizara muchos pedidos y un pedido será de un único cliente). En cambio en el modelo conceptual tendremos una clase Cliente con una coleccion de Pedidos y un Pedido con un objeto cliente. De modo que dado un Cliente podré recorrer sus pedidos sin necesidad de consulta y lo mismo con pedido, tendré toda la información del cliente que lo realizó sin realizar ninguna consulta. Todo esto, los 3 componentes se encuntran empaquetados en un fuchero con extnsion .edmx que es el entuty data model o modelo de entidades de datos que es lo que vamos a tener realmente en nuestros proyectos VS. Desarrollar con EF contra un modelo conceptual en vez de programar contra un modelo relacional nos proporciona una serie de ventajas como…. Mapeo Fichero *.msl

6 Ventajas para el desarrollador
Alternativas a TSQL LinQ to Entities Entity SQL Reducción de líneas de código de la capa de datos Capacidad de crear la BD a partir del modelo Mayor seguridad frente a SQL Injections Abstracción total de la Base de datos Servidor de base de datos SQL Server Oracle MySQL

7 Creación de la base de datos a partir del modelo conceptual (model first).
Inserciones, borrados y modificaciones DEMO

8 Hasta Ahora… Muchas ventajas para el desarrollador.
Creación BD desde cero. Operaciones contra la BD. Inserciones Borrado Modificación Sin escribir nada en T-SQL

9 Punto de vista del DBA Seguridad Rendimiento y carga del servidor
¿Quién accede a mis datos?¿A que datos tiene acceso? SQL injections Rendimiento y carga del servidor ¿Por qué la aplicación va lenta? ¿Por qué el servidor está tan sobrecargado? ¿Cómo traduce LinQ/EntitySQL? Seguridad: SQL injection: Como las consultas ya no las controla el DBA, una de sus preocupaciones va a ser la vulnerabilidad contra SQL Injections. Además, otra de las preocupaciones son los permisos que van a tener las aplicaciones. Rendimiento: El rendimiento es otra de las grandes preocupaciones, ya que a veces pasa que los desarrolladores podemos olvidarnos del rendimiento en la BD. Además con LinQ, debido a todas las facilidades que ofrece al desarrollador es muy facil generar queries ineficientes. Y por ultimo, el uso de LinQ nos genera cierta incertidumbre a la hora de saber que es lo que realmente s eva a ejecutar en la BD ya que EF traduce estas consultas en LINQ a TSQL. Vamos a hablar mas detalladamente sobre estos 2 aspectos y vamso a empezar con la seguridad… Copyright © Solid Quality Mentors. All rights reserved.

10 Seguridad Aplicaciones tradicionales ADO.NET Aplicaciones EF
Permisos a lo estrictamente necesario Permisos de ejecución a los procedimientos almacenados Aplicaciones EF Permiso a tiempo parcial para creacion (en periodo de desarrollo) Ya no se conceden permisos únicamente a los procedimientos Tablas, Esquemas y campos. Lo mismo que las aplicaciones tradicionales que no usaban procedimientos. Menos vulnerable a SQL Injections Consultas parametrizadas

11 Rendimiento Principal problema: Consultas lentas 
No conocemos la eficiencia de la aplicación a priori. Los desarrolladores somos excelentes con .NET Pero no somos DBAs. No desarrollamos con los mismos volúmenes de datos ni el mismo hardware. EF es una herramienta poderoso ‘Un gran poder conlleva una gran responsabilidad’ (Peter Parker – Spiderman) Como usar bien ‘el poder’: Elaborar una buena consulta LinQ. Mapeo de procedimientos CRUD. Eager Loading vs. Lazy Loading

12 DEMO Escenario: Programar métodos de consultas
Consultas mediante con lazy loading y Eager Loading. Consultas con LinQ to Entities Consultas con Procedimientos almacenados DEMO

13 Conclusiones Fácil de programar aplicaciones de acceso a datos. 
‘ Un gran poder conlleva una gran responsabilidad ‘ La tecnología no es la culpable, sino el uso que hagamos de ella. Procedimientos almacenados para obtener el mejor rendimiento. Copyright © Solid Quality Mentors. All rights reserved.

14 Preguntas?

15 Serie de webcasts Webcast Speaker Fecha Data Access, Modeling & the Developer Sergio Carrillo Enero 19 Project Oslo Enero 21 SQL Server Data Services Enrique Puig Enero 26 Application & Multi-Server Management Ruben Pertusa Enero 28 Entity Framework from the DBA's eyes Febrero 4 PowerPivot : Client Experience Alejandro Leguizamo (SQL Server MVP) Febrero 9 PowerPivot : SharePoint IT Experience José Quinto Febrero 11 PowerPivot : Data Analysis Expressions Ildefonso Mas Febrero 24 Reporting Services : Report Builder Server Mode Enhancements Carlos Martinez Marzo 2 Reporting Services : Component Library Overview Marzo 9 Reporting Services : Map Overview Marzo 11 Regístrate en

16 Más acciones desde TechNet
Para ver los webcast grabados sobre éste tema y otros temas, diríjase a: Para información y registro de Futuros Webcast de éste y otros temas diríjase a: Para mantenerse informado sobre todos los Eventos, Seminarios y webcast suscríbase a nuestro boletín TechNet Flash en ésta dirección: Descubra los mejores vídeos para TI gratis y a un solo clic: Para acceder a toda la información, betas, actualizaciones, recursos, puede suscribirse a Nuestra Suscripción TechNet en:

17 Mas información

18 Preguntas?

19 GRACIAS


Descargar ppt "Entity Framework Desarrollador vs. DBA Enrique Puig Nouselles"

Presentaciones similares


Anuncios Google