miércoles, 18 de mayo de 2011

Los documentos de Microsoft en su nube



El día de hoy he estado probando el servicio de documentos que ofrece Microsoft con su servicio de Office Live, te comparto mi opinión.

De entrada pareciera un servicio más con el que se pueden trabajar documentos de texto o de hojas de cálculo, pero con una gran ventaja: No es necesario tener instalado office para poder usarlo; suena bastante interesante. Por otro lado, asumiendo que tengamos Office instalado en nuestra máquina, podemos editar o crear un nuevo documento en modo "local" y decidir guardarlo en la nube con la opción de Save & Send, con tres clicks ya está en la nube (es importante aclarar que debes tener registrada una cuenta del servicio de msn).

Algo más que me gustó es el control de versiones, es interesante ver como mantiene un rastro de las versiones anteriores del documento, cada vez que presionas el botón grabar se crea una nueva versión; no estoy seguro, pero creo que esto no se lleva a cabo automáticamente si lo haces en tu máquina. Este control de versiones es bastante conveniente cuando el documento tiene que ser compartido para ver quién hizo cambios o cuando los hizo. A propósito de esto, cuando se trata de participar entre varias personas editando el mismo documento, caemos en el clásico paradigma en el que sólo uno puede editarlo mientras los demás pueden ver el archivo solo como lectura (Prefiero el dinamismo de google docs).

En conclusión, puedo decir que me gustó, es algo de lo que muchos ya estamos acostumbrados, principalmente los que trabajamos con documentos de manera continua, pero con el control de versiones incluido y sin tener que instalar office.

Por cierto, para probar este servicio estoy usando Internet Explorer 9, buscando la mayor compatibilidad entre servicios.



Es importante recordarte que está es mi primera impresión, llevo algunas horas usándolo, quizá ya tengas una opinión diferente o ya conozcas más características de este servicio, por esto, y como siempre agradecería tus ilustrativos comentarios.


 

miércoles, 13 de abril de 2011

Captura de errores en SQL

Les dejo un ejemplo de como capturar el error al insertar un registro en una tabla, esto se puede facilmente integrar en un trigger, así de esta forma se puede reaccionar al error y centralizar el comportamiento (registrando errores en un log, por ejemplo, o unicamente retornando un error personalizado)

CREATE TABLE #prueba(
      [Campo1] [char](4) not NULL,
      [Campo2] [varchar](200) NULL
CONSTRAINT [PK_prueba] PRIMARY KEY CLUSTERED
(
      [Campo1] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

declare @Id as char(4)
BEGIN TRY
      set @Id = '0001'
      INSERT INTO #prueba
            (Campo1, campo2 )
     VALUES
            (@Id, 'Valor 1');
    SELECT
        -1 AS ErrorNumber,
        -1 AS ErrorSeverity,
        -1 AS ErrorState,
            -1 AS ErrorProcedure,
        -1 AS ErrorLine,
        'Registro ' + @Id + ' ingresado correctamente' AS ErrorMessage;

--  comentarizar el siguiente este bloque de código para ver como se comporta sin la captura del error
-----------------------------------------
      INSERT INTO #prueba
            (Campo1, campo2 )
     VALUES
            (@Id, 'Valor 1');
    SELECT
        -1 AS ErrorNumber,
        -1 AS ErrorSeverity,
        -1 AS ErrorState,
            -1 AS ErrorProcedure,
        -1 AS ErrorLine,
        'Registro ' + @Id + ' ingresado correctamente' AS ErrorMessage;
-----------------------------------------
--  Quitar el comentario de este bloque de código para ver como se comporta sin la captura del error
--    INSERT INTO #prueba
--          ( campo2 )
--     VALUES
--          ( 'Valor 2');
--    SELECT
--        -1 AS ErrorNumber,
--        -1 AS ErrorSeverity,
--        -1 AS ErrorState,
--          -1 AS ErrorProcedure,
--        -1 AS ErrorLine,
--        'Registro ' + @Id + ' ingresado correctamente' AS ErrorMessage;
-----------------------------------------
END TRY
BEGIN CATCH
      declare @Id_Error as int
      select @Id_Error = ERROR_NUMBER()
      if @Id_Error = 2627
      Begin
    SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() AS ErrorState,
        ERROR_PROCEDURE() AS ErrorProcedure,
        ERROR_LINE() AS ErrorLine,
        'El registro ' + @Id + ' está duplicado' AS ErrorMessage;
      End
      Else
      Begin
    SELECT
        ERROR_NUMBER() AS ErrorNumber,
        ERROR_SEVERITY() AS ErrorSeverity,
        ERROR_STATE() AS ErrorState,
        ERROR_PROCEDURE() AS ErrorProcedure,
        ERROR_LINE() AS ErrorLine,
        ERROR_MESSAGE() AS ErrorMessage;
      END  
END CATCH;
select * from #Prueba
drop table #prueba


Espero les sea útil.

lunes, 20 de diciembre de 2010

Common Table Expressions

Que son
Para que sirven
como usarlas
Cuando un objeto se traslada, este debe incluir todos sus miembros, no solo las propiedades de estos.

lunes, 13 de diciembre de 2010

Querer aprender UML antes de conocer los conceptos de orientación a objetos es como querer aprender a leer diagramas eléctricos antes de conocer lo fundamental de la electricidad.

El desarrollo orientado a objetos no es consecuencia de usar un lenguaje que tenga esa intención, como c++, java o c#. Conozco tantos programadores que asumen que piensan usando el paradigma de orientación a objetos y siguen haciendo programación lineal, "a la antigüita", asumen que el compilador es el encargado de crear los objetos y sé de algunos que solo ven los objetos como funciones del framework.

La OO es un paradigma, más que un lenguaje, es la forma en la que se plantea la atención de una situación. La OO inicia antes de tirar una simple linea de código.

Búsqueda