miércoles, 25 de julio de 2012

ASP.NET 4.0 GridView, elegir origen de datos

El componente GridView de ASP.NET 4.0 nos ofrece la posibilidad de mostrar información de manera rápida en nuestra página sin tenernos que preocupar de aspectos como la paginación. Una característica interesante es que permite configurar columnas de tipo Template en las que podemos asociar controles ASP.NET a columnas del GridView de manera que podemos llegar a montar estructuras de datos robustas y anidadas en nuestra página sin apenas tocar código.

Otro aspecto a destacar de GridView es que permite combinar controles de servidor ASP.NET Ajax para gestionar los callbacks y recargas parciales del contenido de manera sencilla.

En este artículo comentaremos las opciones a la hora de elegir un origen de datos. Por norma general nuestra información se encontrará en una base de datos relacional, GridView permite enlazar contenido de una base de datos de manera rápida y directa pero también ofrece otra serie de posibilidades que permitirían enlazar de manera muy similar a origenes de datos remotos soap/REST desarrollados en otras plataformas o bien usar componentes Microsoft como Entity Framework o LINQ. Tambien podemos crear un origen de datos de tipo XML sobre el cual podemos aplicar expresiones XPATH.

En este caso explicaremos como configurar un ObjectDataSource. En primer lugar añadiremos una clase al proyecto que llamaremos MyObjectDataSource. Hemos de crear tantas propiedades públicas en la clase como columnas nos gustaría mostrar en el grid. El siguiente paso es crear un método para seleccionar, insertar, actualizar y eliminar contenido del origen de datos.
public class MyObjectDataSource
{
    public int Codigo { get; set; }
    public string Referencia { get; set; }
    public string Categoria { get; set; }
    public string Nombre { get; set; }

    public List Get(string pFilter1, string pFilter2)
    {
        List resultado = new List();

        //realizamos una consulta a un origen de datos soap/rest, db local o remota, xml o lo que sea...
    
        //parseamos el resultado en un objeto List

        return resultado;
    }

    public void Update(string pValue1, string pValue2) 
    {
        //...
    }

    //...
}
En segundo lugar arrastramos un GridView a una página .aspx y desde el menú de diseño lanzaremos el menu contextual y en Elegir Origen de Datos seleccionaremos la opción <Nuevo origen de datos...>.

Areatic, ASP.NET 4.0 GridView, elegir origen de datos - Tareas de GridView


Se nos abrirá un asistente como el de la imagen en el que seleccionaremos Objeto, daremos nombre a nuestro ObjectDataSource y pulsamos Aceptar.



En el siguiente paso seleccionamos la clase que hemos creado anteriormente y pulsamos siguiente.



Finalmente vinculamos los métodos a las acciones SELECT, UPDATE, INSERT, DELETE que se muestran en las pestañas del asistente. No es obligatorio implementar todos los métodos.



Una vez tenemos ya configurado el origen pulsamos aceptar y ya tendríamos un origen de datos personalizado para nuestro GridView. En el archivo de areaTIC podrás encontrar otros artículos interesantes, no dudes en consultarlo.


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET

viernes, 20 de julio de 2012

Envío de alertas a operadores en SQL Server

Una buena manera de aumentar nuestra productividad en SQL Server es programar el envío de alertas a operadores. Por ejemplo, supongamos que tengamos N trabajos configurados en nuestro servidor SQL Server y programamos el envío de alertas a operadores de manera que nos avise cuando se produza un error en un trabajo... esto nos evita entrar en los logs o en el historial de los trabajos para ver su estado; si como operador no recibimos ninguna alerta es que los trabajos están funcionando correctamente.

Para poder realizar el envío de alertas a operadores en SQL Server previamente deberemos haber configurado Database Mail en nuestro servidor. Si no lo has hecho puedes consultar esta entrada en areaTIC.net que te indicará los pasos para hacerlo:

http://www.areatic.net/2012/07/configurar-database-mail.html

Bien, si ya tenemos configurado Database Mail en nuestro servidor podremos configurar el envío de alertas a operadores realizando los siguientes pasos:
  1. Entraremos en el SQL Server Management Studio , desplegamos el nodo 'Administración', pulsamos botón derecho sobre la carpeta Operadores y seleccionamos la opción Nuevo operador....


  2. Nos aparecerá la pantalla para introducir los datos del nuevo operador en la que introduciremos el nombre y el correo electrónico tal como muestra la imagen.


  3. Una vez creado el operador configuraremos el Agente de SQL Server, para ello en el SQL Server Management Studio, pulsamos botón derecho del ratón sobre el nodo 'Agente SQL Server' y seleccionamos 'Propiedades'.


  4. Se nos mostrará la pantalla de propiedades del Agente de SQL Server, seleccionamos la opción 'Sistema de alerta' y nos aseguramos que:
    • Esté marcada la opción 'Habilitar perfil de correo'.
    • Se haya seleccionado 'Correo electrónico de base de datos' como 'Sistema de correo'.
    • Se haya seleccionado el perfil de correo correspondiente. Se habrá creado en el proceso de configurar de Database Mail en nuestro servidor (ya comentado cómo hacerlo anteriormente).
    • Esté marcada la opción 'Incluir cuerpo del mensaje en la notificación'.
    Con lo anterior es suficiente, podemos habilitar un operador para notificaciones de error pero no es necesario.


  5. En este punto deberemos reiniciar el Agente de SQL Server para continuar con el proceso de envío de alertas a operadores.

  6. Una vez reiniciado el Agente de SQL Server, en el SQL Server Management Studio, dentro del nodo del Agente de SQL Server, desplegamos la carpeta 'Trabajos', seleccionamos el que queremas programar el envío de alertas a operadores, hacemos botón derecho del ratón sobre él y pulsamos 'Propiedades'.


  7. Ya para finalizar se nos muestra la pantalla de propiedades del trabajo, en la opción 'Notificaciones' marcamos la opción 'Enviar correo electrónico', seleccionamos el operador que hemos creado en el paso 2 y seleccionamos la opción 'Si el trabajo no tiene éxito'. Aceptamos y queda configurado el envío de alerta al operador indicado en caso que se produzca un error en el trabajo.

Con esto podemos dar por concluido la programación de envío de alertas a operadores en SQL Server. Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET

miércoles, 18 de julio de 2012

Publicando feeds de blogger en linkedin, facebook y twitter

Probando twitterfeed.com, por lo que parece correctamente lo que la convierte en una interesante herramienta para conectar blogs (en mi caso blogger) o RSS con linkedin, facebook y twitter. La verdad es que es un proceso muy sencillo, os indico unos breves pasos:
  1. Entráis en www.twitterfeed.com, pulsad el botón 'Register Now' para daros de alta en el servicio.


  2. Una vez estéis registrados y hayáis accedido se trata de crear una nuevo feed donde en el primer paso introduciremos el nombre que le damos al feed y la url del blog o RSS.


    En este mismo paso del asistente, si pulsamos sobre 'Advanced Settings' podremos configurar algunos parámetros del feed como frecuencia de actualización, contenido, prefijo, sufijo,...


  3. Pulsamos sobre el botón 'Continue to Step 2' para avanzar con el proceso, se nos mostrará el paso en el que aparecen los servicios disponibles (twitter, facebook y linkedin) y donde deberemos configurar la conexión con cada uno de ellos.


  4. La verdad que en los 3 casos se publica de manera similar, lo haremos por ejemplo con facebook, pulsamos sobre el botón 'Connect with facebook' y nos conectamos a la cuenta correspondiente. Si lo creemos oportuno podemos añadir nuevas cuentas de facebook con lo que el feed se publicará en todas ellas.


  5. Cuando hayamos acabado de crear todos los servicios que necesitemos pulsamos sobre 'All Done!', nos saldrá una pantalla resumen de los servicios creados y pulsaremos sobre 'Go to Dashboard'. Se nos abre un cuadro de mandos correspondiente; si añadimos una entrada a nuestro blog y tras ello en el cuadro de mando pulsamos sobre 'Check Now'; transcurridos 2/3 minutos pulsamos sobre 'Refresh'... si no aparece sobre 'Refesh' un texto del estilo 'Next Update...' esperamos otros 2/3 minutos y lo volvemos a pulsar. Si todo va bien se creará en facebook, linkedin y/o twitter la entrada correspondiente a la nueva entrada en nuestro blog. Dos aspectos a tener en cuenta en este sentido:
    • Las entradas en facebook, linkedin y/o twitter no aparecen de forma inmediata, puede tardar unas horas. A veces puede ser inmediato en un servicio (p.e., facebook) y tardar varias horas en otro, depende de diversos aspectos.
    • Es importante la seguridad que tengáis configurada en en facebook, linkedin y/o twitter, tenéis que habilitar ciertos aspectos para que las entradas de twitterfeed no sean bloqueadas.


  6. Si tras el paso anterior pulsamos sobre 'view all' tendremos acceso a varios aspectos interesantes:
    • Bajo el título y la URL del blog aparece un texto que corresponde al estado de la última actualización; en la captura que os adjunto corresponde a un Ok porque no hay nada a actualizar. En el paso 5, tras hacer el check y esperar a que acabe el proceso es recomendable comprobar este punto, nos indicará si ha sido ok el proceso o hay errores.
    • Desde esta pantalla podemos modificar o eliminar el feed pulsando sobre los enlaces adecuados.
    • Podremos ver los clicks que se han hecho sobre los enlaces publicados en los distintos servicios y consultar pulsando 'stats' más detalles sobre estos clicks.


Espero que os haya sido interesante el artículo, en mi caso tengo un feed creado sobre este blog (realizado con blogger) y vinculado a los servicios linkedin y facebook y está funcionando correctamente, cualquier duda que tengáis podéis añadir los comentarios oportunos en esta entrada. Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


sábado, 14 de julio de 2012

Configurar Database Mail

Database Mail es una funcionalidad incluida a partir de la versión 2005 de SQL Server que permite el envío de mails a través del protocolo SMTP. Sustituye al antiguo SQL Mail que requería un cliente MAPI (por ejemplo, Outlook).

A continuación os indicaré los pasos que debéis seguir para configurar Database Mail en vuestro servidor SQL Server.
  1. Entraremos en el SQL Server Management Studio , desplegamos el nodo 'Administración' de nuestro servidor y seleccionamos la opción Configurar correo electrónico de base de datos.


  2. Nos aparecerá la pantalla inicial del asistente del proceso de configuración de Database Mail, pulsamos el botón 'Siguiente'.


  3. En el siguiente paso deberemos seleccionar la tarea que queremos configurar, seleccionaremos 'Instalar correo electrónico' de base de datos y pulsaremos 'Siguiente'.


  4. Si no hemos habilitado el Service Broker nos aparecerá el siguiente mensaje, pulsaremos 'Sí' para habilitarlo.


  5. Es posible que en este punto nos salgan problemas con la activación del Service Broker, si es así puedes consultar la siguiente entrada de este mismo blog areaTIC.net donde encontrarás información al respecto:

    http://www.areatic.net/2012/07/no-se-puede-habilitar-el-service-broker.html

  6. Si no tenemos habilitada la característica de correo electrónico nos aparecerá el mensaje siguiente en el que pulsaremos 'Sí' para habilitarla.


  7. Si tenemos problemas con este paso podemos encontrar más información en el siguiente link del MSDN:

    http://msdn.microsoft.com/en-us/library/ms187540(SQL.105).aspx.

  8. En el siguiente paso se nos solicita un nombre de perfil. Lo introducimos junto a su descripción y pulsamos el botón 'Agregar'.


  9. En el siguiente paso deberemos introducir nombre y descripción de la cuenta, datos del servidor SMTP y de la cuenta correspondiente. Tras introducirlos pulsamos 'Aceptar' para continuar.


  10. Tras crear el perfil y agregar la cuenta pulsamos 'Siguiente' para continuar con el asistente.


  11. En el paso que se nos muestra a continuación seleccionamos como 'Perfil predeterminado' el que acabamos de crear y pulsamos 'Siguiente'.


  12. En el paso que nos aparece podemos configurar algunos parámetros de envío como el número de reintentos, intervalo entre reintentos... Modificaremos los valores que consideremos oportunos y pulsamos 'Siguiente'.


  13. Por último nos aparece un resumen con todas la configuraciones que hemos ido realizando en los pasos previos... si todo es correcto pulsamos 'Finalizar' para acabar con el proceso de Configurar Database Mail.


Bien, en este punto hemos acabado de Configurar Database Mail pero ahora toca comprobar si hemos realizado el proceso correctamente, realizaremos los siguientes pasos:
  1. Entramos en el SQL Server Management Studio , desplegamos el nodo 'Administración' de nuestro servidor y seleccionamos la opción Enviar correo electrónico de prueba.


  2. Nos aparece la siguiente pantalla en la que seleccionamos el perfil que hemos creado en los pasos anteriores, la cuenta de destino, asunto y cuerpo del mensaje. Pulsamos el botón 'Enviar correo electrónico de'.


  3. A continuación os aparecerá el siguiente mensaje conforme el mail se ha colocado en la cola para procesarse.


  4. Si recibes el correo en la cuenta que hayas indicado puedes pulsar el botón 'Ok', en caso contrario puedes pulsar el botón 'Solucionar' para intentar encontrar el problema o buscar en el siguiente enlace del MSDN para acabar de solucionar los problemas al Configurar Database Mail:

    http://msdn.microsoft.com/es-es/library/ms187540(v=sql.90).aspx

En próximos artículos os explicaré, relacionado con este tema, como enviar alertas a operadores sobre trabajos finalizados con éxito o con errores. Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET

lunes, 9 de julio de 2012

Error de Microsoft VBScript en tiempo de ejecución error '800a01ad' El componente ActiveX no puede crear el objeto: 'dll.WebServices'

Se daría el caso si nos disponemos a publicar una web ASP en un IIS 7.5 (Windows Server 2008 R2)y nuestras páginas .asp usan en algún punto un componente ActiveX desarrollado en 32 bits.

Es importante saber que IIS 7.5 si está instalado en un sistema operativo de 64 bits por defecto trabajará en modo 64 bits no compatible con 32 bits.

Por ejemplo si nuestra página necesita en algún punto usar una dll usando CreateObject() se podrucirá el siguiente error:
Error de Microsoft VBScript en tiempo de ejecución error '800a01ad'
El componente ActiveX no puede crear el objeto: 'dll.WebServices'
Solución:
  • Para que IIS pueda usar componentes de 32 simplemente hay que ir a Configuración Avanzada del Grupo de Aplicaciones al que está asociado la aplicación y marcar a true la opción Habilitar aplicaciones de 32 bits como se muestra en la imagen.

    AreaTIC, ASP, IIS, IIS 7.5

    No lo cubrimos en este post pero asumimos que habéis registrado el ocx/dll usando regedit32 que se encuentra en windows/SysWow64.

Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET

martes, 3 de julio de 2012

No se puede habilitar el Service Broker en la base de datos "msdb" porque el GUID del Service Broker de la base de datos no coincide

Es posible que por alguna razón tengamos que activar en nuestro servidor SQL Server el Service Broker, por ejemplo, si estamos configurando el servicio Database Mail. Así pues lanzamos las siguientes consultas para activarlo:
-- Activación del Service Broker
USE master;
GO

ALTER DATABASE [DatabaseName] SET ENABLE_BROKER;
GO
Y nos aparece un error del tipo que no nos permitie habilitar el Service Broker:
Mens. 9776, Nivel 16, Estado 1, Línea 1
No se puede habilitar el Service Broker en la base de datos "msdb" porque el GUID del Service Broker de la base de datos (D31B9C5E-15C7-40CC-86E7-D389AE0B20AE) no coincide con el de sys.databases (25FD4470-CECA-4095-B460-8E8684DE420B).
Mens. 5069, Nivel 16, Estado 1, Línea 1
Error de la instrucción ALTER DATABASE.
Este error te puede aparecer, por ejemplo, si en un servidor has restaurado la base de datos master y no la msdb que es la que usa Service Broker. Es posible que ni siquiera salga el mensaje y se quede la consulta esperando,... como colgada ejecutándose... eso es debido al punto 1 que comento más adelante, es porque está el agente de SQL Server en ejecución.

Para solucionar el problema haremos lo siguiente:
  1. Pararemos el agente SQL Server ya que éste utiliza la base de datos msdb para programar alertas y trabajos y necesitamos tenerla en modo exclusivo para poder modificarla (ALTER DATABASE).

  2. Lanzamos las siguientes consultas para crear un nuevo Broker para la base de datos existente y activarlo:
    -- Creamos nuevo Broker...
    ALTER DATABASE MSDB SET NEW_BROKER
    GO
    
    -- ... y lo activamos
    ALTER DATABASE MSDB SET ENABLE_BROKER
    GO
    
Con lo anterior tendréis el problema solucionado y podréis habilitar el Service Broker.

¿Qué es exactamente el Service Broker?

SQL Server Service Broker proporciona la compatibilidad nativa de SQL Server Database Engine (Motor de base de datos de SQL Server) para aplicaciones de mensajería y de cola lo que hace más fácil crear aplicaciones complejas que usen los componentes de base de datos para la comunicación entre bases de datos distintas. Se puede usar Service Broker para crear con facilidad aplicaciones distribuidas y fiables. Podéis encontrar más información sobre el Service Broker en este link del MSDN:

http://msdn.microsoft.com/es-es/library/bb522893(v=sql.105).aspx

No se puede habilitar service broker

Dentro de areaTIC puedes encontrar otros artículos interesantes, no dudes en consultar nuestro archivo.


LECTURAS RELACIONADAS RECOMENDADAS POR AREATIC.NET