La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ADO.NET y SQL Server 2005 David Salgado MVP C#

Presentaciones similares


Presentación del tema: "ADO.NET y SQL Server 2005 David Salgado MVP C# "— Transcripción de la presentación:

1 David Salgado MVP C# david.salgado@muxu.net
ADO.NET y SQL Server 2005 David Salgado MVP C# © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Agenda ADO.NET Motores de BBDD Modo Conectado Modo Desconectado
Integración con XML Motores de BBDD SQL Server 2005

3 Agenda ADO.NET Motores de BBDD Modo Conectado Modo Desconectado
Integración con XML Motores de BBDD SQL Server 2005

4 ADO.NET Clases, interfaces, estructuras y tipos que gestionan el acceso a los datos desde .NET (no sólo BBDD) Enfocado al desarrollo en n-capas con XML como pilar Los que vienen por defecto System.Data.OleDb System.Data.SqlClient System.Data.Odbc ( vs.net 2003 ) System.Data.Oracle ( vs.net 2003 ) Personalizados

5 Componentes de ADO.NET ADO.NET WinForm WebForm Otros
Consumidores de datos Proveedores de datos WinForm DataSet DataAdapter WebForm Command Connection Otros DataReader

6 Componentes de ADO.NET Proveedores de datos Modo Desconectado
xxxConnection xxxCommand xxxDataReader xxxDataAdapter Modo Desconectado DataAdapter, DataSet

7 DataSet Objeto estrella en ADO.NET
Representa una caché de datos en memoria Contiene DataTables Lee y escribe datos y esquemas en XML Serializable Puede ser tipado o no tipado: El tipado se apoya en un esquema XML (.XSD) para generar la clase El tipado tiene ventajas: Conoce la estructura © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 DataSet DataTable DataSet DataColumn DataTable DataRow Relations
Constraints XML Schema © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9 DataAdapter DataAdapter Base de datos SelectCommand InsertCommand
UpdateCommand DeleteCommand DataSet TableMappings © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 ADO.NET ( alternativas )
Capa de acceso a BBDD Capa de negocio Clientes ( windows, web, smartclient … ) Capa de Acceso a BBDD XConnection XDataAdapter XCommand SqlConnection ODBCConnection OleDbConnection …… XDataReader DataSet © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

11 © 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12 Modo Conectado Modo Desconectado
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

13 ADO.NET ¿Como escoger? Que exista el modelo desconectado no quiere decir que lo usemos para todo El acceso conectado es más rápido Escenarios desconectados Navegación en una aplicación Windows Entornos móviles Cómo decidir Arquitectura “Patterns & Practices” Building Blocks

14 Agenda ADO.NET Motores de BBDD Modo Conectado Modo Desconectado
Integración con XML Motores de BBDD SQL Server 2005

15 Integración con XML XML como almacén de información
Relación con el DataSet DataSet ds = new DataSet(); ds.ReadXml(“archivo.xml”); ds.Tables[0].Rows….. ds.WriteXml(“archivo.xml”); APIs de trabajo con XML DOM, SAX, XPath Vendrán: XPath2, XQuery

16 ADO.NET Integración con XML
Capa Presentación Windows forms Aplicación.Exe DataSet Internet Intranet Capa Negocio Web forms IE DataSet DataAdapter DataSet Xml DataAdapter Capa Datos Negocio a Negocio © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

17 XML como almacén de información
© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

18 Agenda ADO.NET Motores de BBDD Modo Conectado Modo Desconectado
Integración con XML Motores de BBDD SQL Server 2005

19 Curioso… ¿Por qué no nos gustan las BBDD a los desarrolladores?
Ejercicios 3FN SQL = Simple Query Language No optimizamos, no hacemos trucos,…. Eso es sólo académicamente 

20 Motores de Base de Datos Orientados a archivo
La base de datos se encuentra en un archivo Implicaciones Acceso desde el cliente Ineficiente en accesos simultáneos Para trabajar con aplicaciones distribuidas: Replicarlos en los equipos Directorios compartidos, FTPs… Ejemplos: Clipper, MS Access (.mdb)

21 Motores de Base de Datos Orientados a servidor
Ya no trabajamos contra un archivo, trabajamos contra un servicio Preparado para accesos simultáneos Cliente / Servidor Ejemplos: SQL Server, Oracle, Informix, DB2, PostgreSQL…

22 Motores de Base de Datos Mitos, Leyendas y el sexo de los ángeles
Bases de Datos Orientadas a Objetos Motores de persistencia SI ObjectSpaces, Hibernate, … ¿Qué debemos hacer? ( básico ) Transact-SQL (T-SQL) Evitar select * from …; Evitar búsquedas like ‘%tal’ Crear índices, pero no demasiados Se obtienen buenas sugerencias desde el DTA (Database Tuning Advisor ) Definir el esquema de BD en 3FN Claves primarias, externas, etc. Partir de un buen diseño y desnormalizar según necesidades del desarrollo Motor de persistencia: capa entre la app y la BD que se encarga de transformar los objetos a modelo relacional y viceversa © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

23 Motores de Base de Datos SQL Server 2000
Notification Services Notificaciones & Alertas Data Transformation Services ETL SQL Server Engine Relational Database Engine Reporting Services Informes Empresariales Herramientas de Gestión Herramientas de desarrollo Replication Services Replicación de Datos Analysis Services OLAP & Data Mining © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

24 Motores de Base de Datos
Integración del CLR en el motor Soporte HTTP (Servicios Web  endpoints) Nuevo tipo de datos: XML Mejoras en T-SQL Service Broker Nuevo modelo de seguridad Mejoras en administración Service Broker: Tsql: tenía pésima gestión de errores Acceder a objetos externos a sqlserver: # xp_cmdshell ejecutamos programa externo y resultado a una tabla # SP_OACreate y demás © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

25 Replication Auto-tuning Replication Agents Oracle Publication Improved Blob Change Tracking Replication Monitor OLAP and Data Mining Analysis Management Objects Windows Integrated Backup and Restore Web Service/XML for Analysis DTS and DM Integration New Data Mining Algorithms Auto Packaging and Deployment Data Transformation Services New Architecture (DTR + DTP) Complex Control Flows Control Flow Debugging For Each Enumerations Property Mappings Full Data Flow Designer Full DTS Control Flow Designer Graphical Presentation of Pkg Execution Immediate Mode and Project Mode Package (Advanced) Deployment Tools Custom Tasks and Transformations Reporting Services Multiple Output Formats Parameters (Static, Dynamic, Hierarchical) Bulk Delivery of Personalized Content Support Multiple Data Sources STS (Web Parts, Doc Libraries) Visual Design Tool Charting, Sorting, Filtering, Drill-Through Scheduling, Caching Complete Scripting Engine Scale Out architecture Open XML Report Definition Notification Services & SQL Server CE Database Maintenance Backup and Restore Enhancements Checksum Integrity Checks Dedicated Administrator Connection Dynamic AWE Fast Recovery Highly-available Upgrade Online Index Operations Online Restore Parallel DBCC Parallel Index Operations Management Tools New Management Studio MDX Query Editor Version Control Support XML/A SQLCMD Command Line Tool Performance Tuning Profiler Enhancements Profiling Analysis Services Exportable Showplan Exportable Deadlock Traces MDAC SNAC Microsoft Installer base setup Support for Active Directory Deployment SQL Client .NET Data Provider Server Cursor Support Asynch Security All Permissions Grantable Fine Grain Administration Rights Separation of Users and Schema Data encryption primitives .NET Framework Common Language Runtime Integration User-defined Aggregates User-defined Data Types User-defined Functions SQL Server .NET Data Provider Extended Triggers Data Types Managed SQL Types New XML Datatype Varchar (MAX) Varbinary (MAX) SQL Server Engine New Message Service Broker HTTP Support (Native HTTP) Database Tuning Advisor Multiple Active Result Sets Persisted Computed Columns Snapshot Isolation Level Scale Up Partitioning VIA support NUMA support Database Failure and Redundancy Fail-over Clustering (up to 8 node) Enhanced Multi-instance Support Database Mirroring Database Snapshots XML XQUERY Support XML Data Manipulation Language FOR XML Enhancements XML Schema (XSD) Support MSXML 6.0 (Native) .Net XML Framework Full-text Search Indexing of XML Datatype

26 Programación en el motor
¿Qué se puede programar en el motor? Consultas y modificaciones sobre los datos Disparadores (triggers) Agrupar funcionalidad en procedimientos almacenados Funciones definidas de usuario …. Es más, debe programarse el servidor  XQuery – consulta sobre tipo de datos XML T-SQL – extensión a SQL NET integrado en el motor - lenguajes Cada cosa es para lo que es 

27 Programación en el Motor Ejemplos T-SQL
CREATE PROCEDURE nchar(5) AS SELECT OrderID, OrderDate, RequiredDate, ShippedDate FROM Orders WHERE CustomerID ORDER BY OrderID -- Exec CustOrdersOrders ‘ander’

28 Programación en el Motor Ejemplos T-SQL
@vchLoginName varchar(255) = '', create proc dbo.dt_isundersourcecontrol @vchPassword varchar(255) = '', @iWhoToo int = 0 /* 0 => Just check project; 1 => get list of objs */ as set nocount on int int = 0 varchar(100) = 'SQLVersionControl.VCS_SQL' int = 0 int = 0 varchar(255) int = (select objectid from dbo.dtproperties where property = 'VCSProjectID') varchar(255) varchar(255) varchar(255) varchar(255) exec 'VCSProject', @vchProjectName OUT exec OUT exec 'VCSSQLServer', @vchServerName OUT exec 'VCSSQLDatabase', @vchDatabaseName OUT if = '') = null if = '') = null if = '') = null if = '') = null if is null) or is null) or is null) or is null) begin RAISERROR('Not Under Source Control',16,-1) return end = 1 /* Get List of Procs in the project */ OUT <> 0 GOTO E_OAError = @vchPassword = OUT create table #ObjectList (id int identity, vchObjectlist varchar(255)) = 'STUB' is not null = OUT if = '') = null if is not null) insert into #ObjectList (vchObjectlist ) select vchObjectlist from #ObjectList order by id CleanUp: E_OAError: goto CleanUp = 'STUB' is not null begin = ster.dbo.sp_OAMethod @iStreamObjectId, 'GetStream', @iReturnValue OUT <> 0 GOTO E_OAError if = '') = null if is not null) insert into #ObjectList (vchObjectlist ) end

29 Prodecimiento almacenado desde ADO.NET
Algunos escenarios interesantes ( Fernando G. Guerrero, dotnetmania ) *Regular expressions *Gestión avanzada de cadenas de caracteres *Criptografía *Gestión del registro de eventos *Acceso a ficheros *Acceso a biblioteca de funciones financieras *Ejecución de complejas operaciones matemáticas *Cálculo geométrico *Funciones de agregación complejas © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

30 Programación en el Motor .NET
Se desarrolla con Visual Studio 2005 Depuración, puntos de interrupción :O Los ensamblados se almacenan en SQL Server 2005 Permite extender el sistema Funciones escalares Tipos Triggers Agregados Procedimientos Acceso a datos SQL Engine CLR Hosting Layer Acceso a datos inprocess: Acceso a datos dentro de un proceso de SQL Server No utilices DataSets si hay cualquier otro modo de hacerlo Salvo que tu padre sea fabricante de módulos de memoria Utiliza SqlDefinition (comandos preparados) en vez de SqlCommand SQL OS Windows © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

31 Procedimiento almacenado
Desarrollar, desplegar y depurar con Visual Studio 2005 Algunos escenarios interesantes ( Fernando G. Guerrero, dotnetmania ) *Regular expressions *Gestión avanzada de cadenas de caracteres *Criptografía *Gestión del registro de eventos *Acceso a ficheros *Acceso a biblioteca de funciones financieras *Ejecución de complejas operaciones matemáticas *Cálculo geométrico *Funciones de agregación complejas © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 Permission Sets Variables static: cuidado pq coarta la escalabilidad, si cae un clr, caen todos ;) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

33 Programación en el Motor
¿Cuándo .NET? Procesos complejos Impuestos, descuentos, cálculos matemáticos Acceso a recursos externos Ficheros, sockets, Servicios web, … Proceso de imágenes Aplicaciones científicas Gestión de cadenas Depuración Localización

34 Tecnología Utilizada SQL Server 2005
T-SQL A la vieja usanza…. varchar(200) = 'Microsoft Corporation|SQL Server|2003|SQL-CLR| |11:32:00|Document|3.b.3' SELECT + '|', 0 + 1, + '|', 0 + 1) ), + '|', + '|') + 1, + '|', + '|') + 1) - + '|') - 1 ), + '|', + '|', + '|') + 1) + 1, + '|', + '|', + '|') + 1) + 1) - + '|') + 1) - 1 ), + '|') + 1) + 1) + 1, + '|') + 1) + 1) + 1) - + '|') + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 ) varchar(200) = 'Microsoft Corporation|SQL Server|2003|SQL-CLR| |11:32:00|Document|3.b.3' + '|', 0 + 1) ), + '|', 0 + 1, SELECT + '|', + '|') + 1, + '|') + 1) - + '|', + '|') - 1 ), + '|', + '|', + '|') + 1) + 1, + '|', + '|', + '|') + 1) + 1) - + '|') + 1) - 1 ), + '|') + 1) + 1) + 1, + '|') + 1) + 1) + 1) - + '|') + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) - 1 ), + '|') + 1) + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), + '|', + '|', + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 )

35 Tecnología Utilizada SQL Server 2005
Ahora tenemos la posibilidad de… public static void SplitString() { string s; s = “Microsoft Corporation|SQLServer|2003|SQL-CLR| |22:00:00|Document|3.b.3“; string[] miArray = s.Split(s, "|"); } © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

36 Recursos www.siquelnet.com [1] www.portalsql.com [2] www.helpdna.net
News de Microsoft  Grupo de usuarios de SqlServer [1] y [2]

37 ¿ Preguntas ? Gracias 

38 © 2004, 2005 Microsoft Corporation. Todos los derechos reservados.
Esta presentación tiene propósito informativo únicamente. Microsoft no ofrece ninguna garantía , expresa o implítica, en este documento. © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Descargar ppt "ADO.NET y SQL Server 2005 David Salgado MVP C# "

Presentaciones similares


Anuncios Google