Archive

Archive for July 1, 2010

Windows Live – Desarrolla Live

July 1, 2010 1 comment

Buenas!!!!

Despues de una larga espera (desde octubre pasado), se ha liberado el nuevo portal de desarrollo de Windows Live, junto a el tambien se libero una serie de nuevos tools para cada uno de los servicios asociados a la plataforma.

 

La posibilidad de que nuestras aplicaciones utilicen el sistema de autenticacion y registro de windows live, un sistema que actualmente tiene millones de usuarios en el mundo y dia a dia crece. Seguro y confiable.
Info: http://msdn.microsoft.com/es-co/windowslive/ff723757(en-us).aspx
El servicio de mensajeria instantanea mas utilizando del mercado, integrarlo a nuestros desarrollos de manera sencilla para ofrecer comunicacion entre los usuarios de una manera agil y facil.
Info: http://msdn.microsoft.com/es-co/windowslive/ff723757(en-us).aspx
Todos tenemos contactos, imaginemos que los usuarios de nuestra pagina puedan contactarlos de manera facil desde nuestro sitio, Contacts da la posibilidad de ejecutar esta tarea.
Info: http://msdn.microsoft.com/es-co/windowslive/ff759524(en-us).aspx
Hoy en dia todos realizamos actividades como bloggear, comentar en fotos, subir fotos o videos, etc, agregar actividades estas a nuestro perfil y que se vean reflejadas en nuestro sitio, es una posibilidad que Activity Stream permite.
Info: http://msdn.microsoft.com/es-co/windowslive/ff759528(en-us).aspx
Los calendarios son la mejor forma de organizar nuestro tiempo y actividades, asi mismo, la utilizacion de diversos calendarios segun su uso es frecuente dia a dia,  imaginemos que desde nuestro sitio los usuarios puedan subcribirse al calendario de la pagina o manejar el propio.
Asi mismo, acceder a las fotos almacenadas en nuestro skydrive, tagear una persona.
Info: http://msdn.microsoft.com/es-co/windowslive/ff759526(en-us).aspx

No hay duda que estos nuevos tools de desarrollo para windows live permiten una mejor experiencia para los visitantes de nuestros sitios o aplicaciones, proximamente hare enfasis en cada uno de ellos. Por ahora la invitacion es a ingresar al portal de desarrollo para windows live a conocerlos.

Windows Live Developer Center

Gerardo Ramos – Microsoft Student Partner

SQL Server–Parametros Tipo tabla

July 1, 2010 2 comments

Buenas!!!!

Generalmente durante el proceso de desarrollo se busca realizar la menor cantidad de transacciones sobre la base de datos, esto sobre un escenario desconectado, el ejemplo mas claro es al momento de querer registrar multiples datos sobre la base de datos. generalmente este proceso se realiza de manera secuencial, es decir registrando dato por dato pero este proceso aunque efectivo no es del todo optimo y seguro.

Para ayudar a resolver esta situacion, en la version 2008 de SQL Server, viene un nuevo tipo de dato “Tabla”, este tipo de dato nos permirita manejar multiples registros dentro de una sola variable. De esta forma podremos enviar toda una tabla desde nuestro aplicativo y recibirla como parametro en un procedimiento almacenado a travez de una variable de tipo tabla para su procesamiento.

Para enternderlo mas claramente, a continuacion a travez de un ejemplo mostrare como de manera sencilla se pueden realizar una transaccion de varios registros y almacenarlos en una base de datos sql server utilizando parametros tipo tabla.

Primero se creara una base de datos de ejemplo, 2 tablas y se registraran datos de ejemplo.

-- Creacion de Base de Datos de Ejemplo
CREATE DATABASE TVPDemo
GO

USE TVPDemo
GO

-- Creacion de Tabla de Ordenes
CREATE TABLE dbo.TVPOrder (
  CustCode varchar(5),
  OrdNo int identity,
  OrdDate datetime
)
GO

-- Creacion de Tabla de Items
CREATE TABLE dbo.TVPItem (
  OrdNo int,
  ProdCode int,
  Qty int
)
GO

Como comentaba anteriormente, si se desean ingresar multiples registros a la tabla el procedimiento correcto y mas acostumbrado a usar era el siguiente. Primer se crea un procedimiento que recibe como parametros cada uno de las variables a almacenar.

-- Creacion de Procedimiento de Registro de Ordenes
CREATE PROCEDURE dbo.TVPOrderInsert
(
  @CustCode varchar(5),
  @OrdNo integer output,
  @OrdDate datetime output)
AS
  SET @OrdDate = GETDATE();
  INSERT INTO dbo.TVPOrder (OrdDate, CustCode)
    VALUES (@OrdDate, @CustCode);
  SELECT @OrdNo = SCOPE_IDENTITY()
GO

-- Creacion de Procedimiento de Registro de Items
CREATE PROCEDURE dbo.TVPItemInsert
(
  @OrdNo integer,
  @ProdCode integer,
  @Qty integer)
AS
  INSERT INTO dbo.TVPItem (OrdNo, ProdCode, Qty)
    VALUES (@OrdNo, @ProdCode, @Qty)
GO

Para el registro multiple usando estos procedimientos se llama uno por uno segun la cantidad de datos.

-- Por ultimo se registran algunos datos de ejemplo utilizando los procedimientos creados
DECLARE @ordno int;
DECLARE @orddate datetime;

EXEC dbo.TVPOrderInsert 'ALFKI', @ordno output, @orddate output

EXEC dbo.TVPItemInsert @ordno, 111, 1
EXEC dbo.TVPItemInsert @ordno, 222, 2
EXEC dbo.TVPItemInsert @ordno, 333, 3
EXEC dbo.TVPItemInsert @ordno, 444, 4
EXEC dbo.TVPItemInsert @ordno, 555, 5
GO

 

El procedimiento anterior aunque es correcto como vemos tiene que realizar varias peticiones al servidor, lo cual implica demora en la realizacion de una sola opracion (registro).

image

Para agilizar este proceso vamos a utilizar un tipo de dato tabla y enviarlo como parametro al procedimiento almacenado, mayor info en http://msdn.microsoft.com/es-es/library/bb675163.aspx

A continuacion crearemos el tipo de dato tabla con 2 columnas de tipo entero.

----------------Creacion del tipo--------------
IF (SELECT COUNT(*) FROM sys.table_types
WHERE name = 'TVPParam' AND schema_id = 1) = 0
  CREATE TYPE dbo.TVPParam AS TABLE(ProdCode integer, Qty integer)
GO

Ahora se creara un procedimiento que reciba como parametro una variable tipo tabla y registre los datos que este contenga en la tabla de ordenes y de items.

-- Procedimiento de registro con parametroi tipo tabla
CREATE PROCEDURE dbo.TVPOrderEntry
(
  @CustCode varchar(5),
  @Items TVPParam READONLY,
  @OrdNo integer output,
  @OrdDate datetime output)
AS
  SET @OrdDate = GETDATE();

  INSERT INTO TVPOrder (OrdDate, CustCode)
    VALUES (@OrdDate, @CustCode); 

  SELECT @OrdNo = SCOPE_IDENTITY(); 

  INSERT INTO TVPItem (OrdNo, ProdCode, Qty)
    SELECT @OrdNo, ProdCode, Qty FROM @Items
GO

El el query anterior se puede ver como en la segunda sentencia INSERT se registran los datos que provienen de la variable @Items que se declaro y recibio como tipo tabla TVPParam.

Ahora se probara el procedimiento creando una varable tabla y enviadola como parametro.

-- Dentro de una variable tabla se ingresaran datos
-- y se enviara como parametro al procedimiento
DECLARE @ordno int;
DECLARE @orddate datetime;
DECLARE @t TVPParam ;
INSERT INTO @t VALUES(666,6), (777,7), (888,8);
EXEC dbo.TVPOrderEntry 'BEAUC', @t, @ordno output, @orddate output;
GO

Como podemos ver en la imagen se han registrado los datos almacendos en la variable tipo tabla.

image

Para concluir, los paramtros tipo tabla ayudan a simplificar las transacciones sobre la base de datos al momento de enviar multiples valores sobre este, mas aun cuando no se conoce la cantidad de datos a enviar.

Gerardo Ramos – Microsoft Student Partner

Team Foundation Server 2010 RTM Virtual Machine

July 1, 2010 Leave a comment

Buenas!!!

Desde su salida visual studio 2010 se ha caracterizado no solo por la serie de tools y sdk disponibles para desarrollo sino tambien por la gran cantidad de cambios y herramientas nuevas para acompanar y gestionar el proceso de ciclo de vida de desarrollo de software. Para ello se ha liberado una maquina virtual que contiene todo el ambiente para la administracion de proyectos de software, a parte del ambiente disponible en la maquina virtual tambien se encuentran una serie de ejemplos y laboratorios para conocer mas a fondo la herramienta.

Para descargarla los invito a visitar el blog de Brian Keller experto en ALM con Visual Studio para Microsoft, quien en su blog comparte las principales caracteristicas de esta maquina y nos comparte los accesos para descargarla.

Ir a : http://blogs.msdn.com/b/briankel/archive/2010/06/25/now-available-visual-studio-2010-rtm-virtual-machine-with-sample-data-and-hands-on-labs.aspx

Gerardo Ramos – Microsoft Student Partner