La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SQL Server 2005 Para Desarrolladores Juan Carlos Heredia Mayer Microsoft Certified Profesional Freelance Consulting

Presentaciones similares


Presentación del tema: "SQL Server 2005 Para Desarrolladores Juan Carlos Heredia Mayer Microsoft Certified Profesional Freelance Consulting"— Transcripción de la presentación:

1 SQL Server 2005 Para Desarrolladores Juan Carlos Heredia Mayer Microsoft Certified Profesional Freelance Consulting

2 Agenda Integración CLR y SQL SERVER 2005 HTTP ENDPOINTS XML SQL SERVER 2005 y ADO.NET 2.0 Integración CLR y SQL SERVER 2005 HTTP ENDPOINTS XML SQL SERVER 2005 y ADO.NET 2.0

3 Para desarrolladores 1.Integración con el Framework.net 2.Tecnologías XML 3.Soporte XQuery 4.SQL Service Broker 5.Mejoras en T-SQL 6.Mejoras en búsquedas Full Text 7.Mejoras en Seguridad 8.Funcionalidades HTTP/SOAP 1.Integración con el Framework.net 2.Tecnologías XML 3.Soporte XQuery 4.SQL Service Broker 5.Mejoras en T-SQL 6.Mejoras en búsquedas Full Text 7.Mejoras en Seguridad 8.Funcionalidades HTTP/SOAP

4 1. SQL Server y.NET La integración de SQL Server con el runtime de.NET tiene las siguientes metas: seguridad confiabilidad rendimiento La integración de SQL Server con el runtime de.NET tiene las siguientes metas: seguridad confiabilidad rendimiento

5 Configure CLR en SQL Server 2005 CLR es una opción de configuración avanzada del servidor Ejecute la siguiente sentencia para deshabilitar el CLR sp_configure show_advanced_options, 1 GO RECONFIGURE GO sp_configure clr enabled, 0 GO RECONFIGURE GO CLR es una opción de configuración avanzada del servidor Ejecute la siguiente sentencia para deshabilitar el CLR sp_configure show_advanced_options, 1 GO RECONFIGURE GO sp_configure clr enabled, 0 GO RECONFIGURE GO

6 VS.NET Project Assembly: TaxLib.dll VB,C#,C++ Compila SQL Server SQL Data Definition: create assembly … create function … create procedure … create trigger … create type … SQL Queries: select sum(tax(sal,state)) from Emp where county = King Runtime hosted by SQL (in-proc) La Experiencia del Desarrollador

7 Cómo importar un assembly existente? Crear el nombre del objeto para el assembly 1 1 Referenciar el Assembly 2 2 Establecer Permisos de Seguridad 3 3 CREATE ASSEMBLY HelperLibrary CREATE ASSEMBLY Contacts CREATE ASSEMBLY HelperLibrary CREATE ASSEMBLY Contacts CREATE ASSEMBLY HelperLibrary FROM '\\Server1\Private\AProject\bin\HelperLibrary.dll' CREATE ASSEMBLY Contacts FROM 'C:\AProject\bin\Contacts.dll' CREATE ASSEMBLY HelperLibrary FROM '\\Server1\Private\AProject\bin\HelperLibrary.dll' CREATE ASSEMBLY Contacts FROM 'C:\AProject\bin\Contacts.dll' CREATE ASSEMBLY HelperLibrary FROM '\\Server1\Private\AProject\bin\HelperLibrary.dll' WITH PERMISSION_SET SAFE -- default value CREATE ASSEMBLY Contacts FROM 'C:\AProject\bin\Contacts.dll' WITH PERMISSION_SET EXTERNAL_ACCESS CREATE ASSEMBLY HelperLibrary FROM '\\Server1\Private\AProject\bin\HelperLibrary.dll' WITH PERMISSION_SET SAFE -- default value CREATE ASSEMBLY Contacts FROM 'C:\AProject\bin\Contacts.dll' WITH PERMISSION_SET EXTERNAL_ACCESS

8 Cómo crear objetos de Base de Datos utilizando Código Manejado Use la sentencia CREATE apropiada 1 1 Referencie el Assembly 2 2 Use el objeto de base de datos 3 3 CREATE PROCEDURE Person.UpdatePhoneList AS EXTERNAL NAME Contacts.PhoneList.SaveList GO CREATE PROCEDURE Person.UpdatePhoneList AS EXTERNAL NAME Contacts.PhoneList.SaveList GO CREATE PROCEDURE Person.UpdatePhoneList AS EXTERNAL NAME Contacts. PhoneList.SaveList GO EXEC Person.UpdatePhoneList CREATE PROCEDURE Person.UpdatePhoneList AS EXTERNAL NAME Contacts. PhoneList.SaveList GO EXEC Person.UpdatePhoneList

9 Proyectos SQL Server en Visual Studio 2005 Proyectos para la creación de objetos de base de datos Automáticamente se incluyen las referencias necesarias sqlaccess.dll System.Data.dll Se incluyen plantillas para cada tipo de objeto Permite su instalación y pruebas inmediatas Proyectos para la creación de objetos de base de datos Automáticamente se incluyen las referencias necesarias sqlaccess.dll System.Data.dll Se incluyen plantillas para cada tipo de objeto Permite su instalación y pruebas inmediatas Stored procedure Trigger User-defined function User-defined type Aggregate

10 Cómo crear Store Procedures Manejados Cree un método estático público en la clase 1 1 Agregue el atributo SqlProcedure para la instalación 2 2 Cree la lógica del store procedure manejado 3 3 public class ContactCode { public static void GetContactNames() { } public class ContactCode { public static void GetContactNames() { } public class ContactCode { [SqlProcedure(Name="GetContactNames")] public static void GetContactNames() { } public class ContactCode { [SqlProcedure(Name="GetContactNames")] public static void GetContactNames() { } public class ContactCode { [SqlProcedure(Name="GetContactNames")] public static void GetContactNames() { SqlCommand cmd = SqlContext.GetCommand(); cmd.CommandText = "SELECT FirstName + ' ' + LastName" + " AS [Name] FROM Person.Contact"; SqlDataReader rdr = cmd.ExecuteReader(); SqlPipe sp = SqlContext.GetPipe(); sp.Send(rdr); } public class ContactCode { [SqlProcedure(Name="GetContactNames")] public static void GetContactNames() { SqlCommand cmd = SqlContext.GetCommand(); cmd.CommandText = "SELECT FirstName + ' ' + LastName" + " AS [Name] FROM Person.Contact"; SqlDataReader rdr = cmd.ExecuteReader(); SqlPipe sp = SqlContext.GetPipe(); sp.Send(rdr); }

11 Cómo crear triggers manejados? Cree un método estático publico en la clase 1 1 Agregue el atributo SqlTrigger para la instalación 2 2 Cree la lógica del Trigger Manejado 3 3 public class ContactCode { public static void Change () { } public class ContactCode { public static void Change () { } public class ContactCode { [SqlTrigger(Name="ContactUpdTrg", Target="Person.Contact", Event="FOR UPDATE")] public static void Change () { } public class ContactCode { [SqlTrigger(Name="ContactUpdTrg", Target="Person.Contact", Event="FOR UPDATE")] public static void Change () { } public class ContactCode { [SqlTrigger(Name="ContactUpdTrg", Target="Person.Contact", Event="FOR UPDATE")] public static void Change () { SqlTriggerContext trg = SqlContext.GetTriggerContext(); if (trg.TriggerAction == TriggerAction.Update) { if (trg.ColumnsUpdated[7] == true) //send to each new contact } public class ContactCode { [SqlTrigger(Name="ContactUpdTrg", Target="Person.Contact", Event="FOR UPDATE")] public static void Change () { SqlTriggerContext trg = SqlContext.GetTriggerContext(); if (trg.TriggerAction == TriggerAction.Update) { if (trg.ColumnsUpdated[7] == true) //send to each new contact }

12 Cómo crear funciones definidas por el usuario manejadas Cree un método estático público en la clase 1 1 Agregue el atributo SqlFunction 2 2 Implemente la función manejada 3 3 public class MyFunctions { public static SqlString GetLongDate(SqlDateTime DateVal) { } public class MyFunctions { public static SqlString GetLongDate(SqlDateTime DateVal) { } public class MyFunctions { [SqlFunction(Name="GetLongDate" )] public static SqlString GetLongDate(SqlDateTime DateVal) { } public class MyFunctions { [SqlFunction(Name="GetLongDate" )] public static SqlString GetLongDate(SqlDateTime DateVal) { } public class MyFunctions { [SqlFunction(Name="GetLongDate" )] public static SqlString GetLongDate(SqlDateTime DateVal) { // Return the date as a long string return DateVal.Value.ToLongDateString(); } public class MyFunctions { [SqlFunction(Name="GetLongDate" )] public static SqlString GetLongDate(SqlDateTime DateVal) { // Return the date as a long string return DateVal.Value.ToLongDateString(); }

13 Cómo crear funciones de agregación manejadas Cree una clase pública 1 1 Agregue los atributos Serializable y SqlUserDefinedAggregate 2 2 Cree los métodos Init, Accumulate, Merge y Terminate 3 3 public class CommaDelimit { } public class CommaDelimit { } [Serializable, SqlUserDefinedAggregate(…)] public class CommaDelimit { } [Serializable, SqlUserDefinedAggregate(…)] public class CommaDelimit { } [Serializable, SqlUserDefinedAggregate(…)] public class CommaDelimit { public void Init() {…} public void Accumulate(SqlString Value) {…} public void Merge(CommaDelimit Group) {…} public SqlString Terminate() {…} } [Serializable, SqlUserDefinedAggregate(…)] public class CommaDelimit { public void Init() {…} public void Accumulate(SqlString Value) {…} public void Merge(CommaDelimit Group) {…} public SqlString Terminate() {…} }

14 Cómo crear tipos definidos por el usuario manejados Cree una clase o estructura pública 1 1 Agregue los atributos Serializable y SqlUserDefinedType 2 2 Maneje la Nulabilidad 3 3 Soporte la conversión de strings 4 4 Provea propiedades públicas para acceder a los datos privados 5 5

15 Cómo instalar los objetos de la base de datos con Visual Studio 2005 Use atributos cuando cree el código manejado 1 1 Use el menú Deploy 2 2 [SqlProcedure(Name="ProcName")] public static void Proc ( )

16

17 2. HTTP Endpoints Es posible configurar un servidor SQL Server como un Servicio Web, que pueda escuchar nativamente llamadas HTTP SOAP, creando lo que es llamado como HTTP Endpoint y definiendo métodos que son expuestos a través de este endpoint. Cuando un HTTP endpoint es creado, este debe tener asignado una dirección URL unica para recibir las llamadas, por ejemplo si se crea un endpoint en la URL "http://servername/sql,", los pedidos SOAP son enviados directamente a esta URL y tomados por http.sys, el cual enrutará el pedido a la base de datos SQL Server que tiene almacenado el endpoint.

18 Creación de un HTTP EndPoint Para crear un endpoint, en primer lugar es necesario la creación de un stored procedure, que en este caso se llama Hello_world en la base de datos master, utilizando el siguiente T-SQL: CREATE PROCEDURE hello_world nvarchar(256)) AS BEGIN as 'message' END Luego use el siguiente código T-SQL para crear el HTTP endpoint, el cual permitirá acceder este stored procedure como si fuera un método Web CREATE HTTP ENDPOINT hello_world_endpoint AS AUTHENTICATON = ( INTEGRATED ), PATH = '/sql/demo', PORTS = ( CLEAR ), STATE = STARTED FOR SOAP ( METHOD 'http://tempuri.org/'.'hello_world' (NAME = master.dbo.hello_world) WITH BATCHES = ENABLED, WSDL = DEFAULT ) Para crear un endpoint, en primer lugar es necesario la creación de un stored procedure, que en este caso se llama Hello_world en la base de datos master, utilizando el siguiente T-SQL: CREATE PROCEDURE hello_world nvarchar(256)) AS BEGIN as 'message' END Luego use el siguiente código T-SQL para crear el HTTP endpoint, el cual permitirá acceder este stored procedure como si fuera un método Web CREATE HTTP ENDPOINT hello_world_endpoint AS AUTHENTICATON = ( INTEGRATED ), PATH = '/sql/demo', PORTS = ( CLEAR ), STATE = STARTED FOR SOAP ( METHOD 'http://tempuri.org/'.'hello_world' (NAME = master.dbo.hello_world) WITH BATCHES = ENABLED, WSDL = DEFAULT )

19

20 3. XML Tipo de Datos XML Primera clase de tipos SQL Es usada como Columna Variable Parámetro Grabe instancias tipificadas o no tipificadas de XML Chequeos de validaciones y de estructura Tipo de Datos XML Primera clase de tipos SQL Es usada como Columna Variable Parámetro Grabe instancias tipificadas o no tipificadas de XML Chequeos de validaciones y de estructura

21 XML Query - XQuery Consulte un documento XML y sus datos Basado en estándares W3C (borrador de trabajo) Métodos en tipos de datos XML Query() Value() Exist() Modify() Consulte un documento XML y sus datos Basado en estándares W3C (borrador de trabajo) Métodos en tipos de datos XML Query() Value() Exist() Modify() INT XML … … Update Modify

22 Características de XQuery FLWR FOR/LET/WHERE/RETURN Incluye XPath 2.0 = 123]) Constructors de Elementos( ) Operadores para preservar el orden Strongly-typed FLWR FOR/LET/WHERE/RETURN Incluye XPath 2.0 = 123]) Constructors de Elementos( ) Operadores para preservar el orden Strongly-typed

23 4. SQL SERVER 2005 – ADO.NET 2.0 Hay muchas cosas nuevas en la siguiente versión de ADO.Net. Desde el nuevo soporte para notificaciones en lo cambios realizados en las consultas, Hasta los MARS (Multiple Active Result Sets). ADO.net evoluciona el acceso y la manipulación de datos de un Dataset, para lograr mejor escalabilidad y flexibilidad. SQL Server 2005 introduce el soporte a notificaciones para las consultas, ahora tú puedes utilizar este soporte para enviar un comando a SQl Server y pedir que una notificación sea generada si ejecutando el mismo comando se producen diferentes resultados de los obtenidos inicialmente. Se puede lograr esto utilizando un objeto de dependencia que detecta cuando los datos han cambiado.

24 SQL SERVER 2005 – ADO.NET 2.0 Multiple Active Result Sets (MARS) Provee la habilidad de tener más de una respuesta pendiente por cada conexión. En particular tener más de un resultado por defecto por cada conexión. Snapshot Isolation Support SQL Server 2005 introduce un nuevo nivel de aislamiento SNAPSHOT. Es un mecanismo de versionamiento para cada registro en las cuales cada versión es grabada para cada lector de datos. Este modelo de aislamiento permite alta disponibilidad para aplicaciones solo lectura, y evita bloqueos de lecturas en ambientes OLTP Multiple Active Result Sets (MARS) Provee la habilidad de tener más de una respuesta pendiente por cada conexión. En particular tener más de un resultado por defecto por cada conexión. Snapshot Isolation Support SQL Server 2005 introduce un nuevo nivel de aislamiento SNAPSHOT. Es un mecanismo de versionamiento para cada registro en las cuales cada versión es grabada para cada lector de datos. Este modelo de aislamiento permite alta disponibilidad para aplicaciones solo lectura, y evita bloqueos de lecturas en ambientes OLTP

25

26 Eventos y Entrenamiento MSDN Webcasts, MSDN Online Seminars, Tech·Ed, PDC, Developer Days MSDN Recursos esenciales para Desarrolladores Servicios de Subscripción InformaciónOnline Programas de Membresía PúblicacionesImpresas Library, OS, Professional, Enterprise, Universal Delivered via CD-ROM, DVD, Web MSDN Online, MSDN Flash, How-To Resources, Download Center MSDN User Groups MSDN Magazine MSDN News

27 Gracias! Ha revisar el material y poner en práctica lo aprendido, Hasta el próximo Evento

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


Descargar ppt "SQL Server 2005 Para Desarrolladores Juan Carlos Heredia Mayer Microsoft Certified Profesional Freelance Consulting"

Presentaciones similares


Anuncios Google