Restaurando una Base de Datos SQL desde un Snapshot

En lo particular comenzare este articulo definiendo segun Books Online lo que es un Snapshot, que en lo particular lo considero como uno de los mas interesantes conceptos utilizados en la actualidad.

Snapshop: es una vista estática de sólo lectura de una base de datos denominada base de datos de origen. Pueden existir varias instantáneas en una base de datos de origen y residir siempre en la misma instancia de servidor que la base de datos. Una instantánea de base de datos es coherente en cuanto a las transacciones con la base de datos de origen tal como existía en el momento de la creación de la instantánea. Una instantánea se mantiene hasta que el propietario de la base de datos la quita explícitamente.

En resumen es una fuente de datos estatica de solo lectura, en la cual podemos consultar informacion de la misma e incluso hacer transacciones en la misma.

En esta ocacion procedere a crear una nueva base de datos la cual llamare OmarFrometa_DB, en el cual voy a crear una nueva tabla y le voy a insertar al menos 5 nuevos valores:



Luego procedere a Crear mi Snapshot en mi base de datos OmarFrometa_DB.


Despues de esto voy a realizarle un Select tanto a mi tabla como a al Snapshot creado, para que asi logren notar su comportamiento.

En otro capitulo seguire ampiando todo lo que podemos hacer con estas fotografias de la base de datos (Snapshot) y asi podremos explotar al maximo este concepto que existe desde la version 2005 de SQL pero que muy pocas personas aun lo estan utilizando.

Aqui les dejo todo el Codigo que Utilice.


USE master
GO

CREATE DATABASE OmarFrometa_DB
GO
USE OmarFrometa_DB
GO

CREATE TABLE Numeros (ID INT, Value VARCHAR(10))
INSERT INTO Numeros VALUES(1, 'Uno');
INSERT INTO Numeros VALUES(2, 'Dos');
INSERT INTO Numeros VALUES(3, 'Tres');
INSERT INTO Numeros VALUES(4, 'Cuatro');
INSERT INTO Numeros VALUES(5, 'Cinco');
GO

CREATE DATABASE SnapshotDB ON
(Name ='OmarFrometa_DB',
FileName='c:\SSOmarFrometa_DB.ss1')
AS SNAPSHOT OF OmarFrometa_DB;
GO

SELECT * FROM OmarFrometa_DB.dbo.Numeros;
SELECT * FROM OmarFrometa_DB.dbo.Numeros;
GO

Como Obtener los Tweets de una Cuenta de Twitter, C#.Net

Estaba desarrollando durante el fin de semana un Manejador de Contenidos personalizado para un Portal muy visitado de República Dominicana, lo cual estoy a cargo de su remodelación, dentro de los cambios me pidieron que necesitaban obtener los últimos Tweets publicados en Twitter desde la cuenta del portal.


Les indicare paso a paso como obtener los Tweets de una cuenta de Twitter.

Toda la programación la basare en un WebSite basado en C#, como Tecnología de Desarrollo y utilizando Visual Studio 2008.


1. Creamos Nuestro Web Site.

2. Procedemos a Crear una Clase en la web que acabamos de crear, la misma la llamaremos Twitter.


3. Se nos preguntara si deseamos agregarla en el Directorio de Clases por Defecto APP_CODE, le indicamos que si y procedemos a codificar la clase.


4. Crearemos un método dentro de nuestra clase que nos regresara la lista de los tweets, a este debemos pasarle los siguientes parámetros: Nombre del Usuario | Cantidad de Mensajes a Devolver.


5. Procederemos a Importas los Name Spaces de System.Configuracion y Linq, para así poder utilizar la sección AppSettings de nuestro Web.Config donde esta la URL para obtener los mensajes de Twitter.


6. Vamos a la pagina donde deseamos mostrar los mensajes, para mostrar los mensajes podríamos utilizar controles como Labels / TextBox / Botones / GridView / DataList, etc., pero en mi caso utilizare un Repeater para mostrar los últimos 3 Tweets y un Literal Control para mostrar el ultimo Mensaje.

7. En el Evento Page_Load de la pagina, escribiremos el código para cargar los mensajes de Twitter aplicación web.

8. Abrimos nuestro archivo de Configuración Web.Config y Agregegamos en la sección AppSettings las siguientes lineas

9. Por ultimo procedemos a Correr nuestra Web Creada y aquí los resultados!...

Redireccionando a una Pagina Segura con C#

Muchas veces en las aplicaciones que desarrollamos, tenemos módulos o paginas que deben de estar cifradas dada a su importancia, muchos utilizan un protocolo de conexion seguro como SSL para realizar esta tarea SSL = Security Socket Layer.

Luego que tenemos ya definido en nuestro sitio el método de cifrado que utilizaremos, les mostrare como pueden redireccionar desde una dirección http a una https, utilizando C#.

Para realizar la Redireccion de paginas, lo que haremos es crear un método que se llamara SecurityProtocol(bool isSecure) el cual aceptara un parámetro Boolean.

Entonces en la pagina que queramos redireccionar ponemos el siguiente código en el Page_Load



protected void Page_Load(object sender, EventArgs e)

    {
        this.SecurityProtocol(true);
    }


Y el metodo Security Protocol Tendria lo Siguiente


public void SecurityProtocol(bool isSecure)
    {
        string redirectUrl = null;

        if (isSecure && !Request.IsSecureConnection)
        {
            redirectUrl = Request.Url.ToString().Replace("http:", "https:");
        }
        else if (!isSecure && Request.IsSecureConnection)
        {
            redirectUrl = Request.Url.ToString().Replace("https:", "http:");
        }

        if (redirectUrl != null)
        {
            Response.Redirect(redirectUrl);
        }
    }


Con esto redireccionaremos la aplicacion que queramos a una pagina que utilice medios de seguridad cifrados.





Llamar un WebServices desde un Store Procedure

En una ocasión un viejo amigo, estaba programando unas aplicaciones con .Net y Sockets, y necesitaba poder invocar un WebServices desde un procedimiento almacenado.


En este articulo compartire esa experiencia, para que otros programadores puedan aprender a invocar un WebServices enviándole parámetros desde un Store Procedure.

1. Creamos Nuestro Proyecto WebServices en Visual Studio.

2. Luego procedemos a crear los métodos que vamos a utilizar en nuestro servicio, en mi caso cree 6 métodos que son: Saludar(string Param1) y este espera un String como parámetro, HelloWord() este no espera ningún parámetro, y los métodos Add, Substract, Proliferation y Divide (int Num1, int Num2) esperan 2 números enteros como parámetros.

3. Procedemos a crear nuestro procedimiento almacenado que tendrá todo el código para invocar el WebServices que acabamos de crear, como en todos mis artículos la base de datos que utilizo es AdventureWorks, que es la base de datos de prueba que trae SQL Server.



4. Luego Publicamos el Servicio Web en nuestro IIS


5. Procedemos a Codificar nuestro Store Procedure con los Datos de Nuestro Servicio Web.


6. En el procedimiento que Creamos, le pasamos un parámetro que es el Parámetro que esta esperando el Método Saludar(), si desean utilizar los otros métodos, deberán crear otro parámetro pues como les mencione anteriormente los otros métodos están esperando 2 parámetros tipo enteros.

Algo también que es muy importante cuando utilizando los procedimientos Almacenados SP_OAMethod este espera el método POST o GET, por defecto casi siempre le enviamos POST, pero si le enviamos este método, no podremos visualizar la lectura del XML que genera nuestro Servicio Web, por lo cual debemos utilizar el Método GET.



7. Procederemos a Probar Nuestro Servicio Web, a través de nuestro navegador, escribimos la dirección del IIS donde esta publicado nuestro Servicio Web. http://localhost/WebServices/Service1.asmx , en el mismo aparecerán todos los métodos que tengamos creados en nuestro Servicio Web.
8. Seleccionamos el Método que vamos a Utilizar e Invocar desde nuestro Procedimiento Almacenado, Saludar(). Luego procedemos a escribir el parámetro que deseamos pasarle al Servicio Web, luego de esto cliqueamos en Invoke.


9. Luego de esto se nos abrirá otra pagina de nuestro navegador, con la información contenida en XML y el parámetro que escribimos.

10. Procedemos a Ejecutar el Procedimiento Almacenado que acabamos de crear para invocar nuestro Servicio Web.


11. Luego de ejecutar nuestro procedimiento y enviarle nuestro parámetro obtendremos el mismo resultado que obtuvimos cuando lo ejecutamos a través de nuestro navegador.

Miren la comparación y notarón que es el mismo resultado.

Aplicaciones Multi-Idiomas

Existen varias maneras de nosotros desarrollar una aplicación Multi-Idioma, ahora la mas correcta a mi parecer es utilizar archivos donde tengamos todo nuestro diccionario de etiquetas en las cuales podamos darle un significado correcto a la traducción.

Lamentablemente aunque los traductores que hay hoy en día en Internet son bastante buenos, aun no traducen 100% la mayoría de la información que necesitamos.

En este articulo mostrare paso a paso como crear una aplicacion multi-lenguaje con Visual Studio.

1. Lo primero que haremos es crear una aplicacion C# en Visual Studio.


2. Procederemos a Diseñar en nuestro formulario una pantalla similar a la que mostrare, esta contiene un Lisbox, un Label y 9 Botones.

3. Luego crearemos 4 nuevos Objetos Resources en nuestros proyectos, le pueden poner el nombre que quieran, luego un punto y lo separan por la cultura que utilizaran, ejemplo MiRecuerso.ES-DO y proceden a rellenar sus campos.

Los Objetos Resources tienen 3 campos principales Name que es donde pondremos el Objeto que queremos renombrar, Value ahi pondremos el valor a remplazar y Comment esto es por si desean guardar algún comentario al respecto.


4. A nuestro Lisbox le introducimos las Culturas que vamos a Utilizar en nuestro aplicativo en nuestro caso utilizamos las siguientes: ES-DO (Español, República Dominicana), EN-US (Ingles, Estados Unidos), JA-JP (Japones, Japón).

5. Luego procederemos a Codificar la Aplicacion.

6. Crearemos un Método que se llamara AplicarIdioma, este es el que se encargara de asignarle los nuevos valores a nuestros controles utilizados.

7. Luego de esto Procederemos a habilitar el Evento SelectedIndexChanged  de nuestro LisBox, y le indicaremos que cada vez que seleccionen un valor diferente a la lista ejecute el siguiente evento.

8. Ya con esto que construida Nuestra aplicacion Multi-Idiomas y solo tenemos que ponerla a Correr para ver los Resultados.

Instalando & Configurando DotNetNuke, Paso a Paso



El internet es una red bastante amplia y va creciendo cada día más, así también van creciendo el número de páginas interactivas y dinámicas en la web, muchas de ellas tienen una función primordial, MANEJAR CONTENIDOS, como la mayoría de los portales que creamos es con esta finalidad, les mostrare paso a paso como obtener un Gestor de Contenidos para su Portal de Internet.

Uno de mis favoritos aparte después de Share Point, es DotNetNuke, un gestor de contenidos escrito en utilizando la tecnología .NET y que ha venido a revolucionar lo que es el estilo de programación de muchas personas que se dedican a la creación de portales de internet.

En mi caso tengo más de 50 sitios creados en DotNetNuke, y me ha servido de mucho, en este artículo mostrare como obtener la versión gratuita de DotNetNuke y de cómo instalarlo y configurarlo en un ordenador.

1. Debemos de buscar la última versión lanzada al mercado del CMS, en este caso la buscamos aquí http://www.dotnetnuke.com/ 

2. Después de estar en el Portal vamos a la sección de Descargas (DOWNLOAD) y seleccionamos la versión a descargar en este caso será la Versión Comunitaria de DNN, para descargar cualquier versión del producto debes de estar registrado. http://www.dotnetnuke.com/tabid/125/default.aspx

3. Luego de haber descargado el archivo que contendrá el manejador de contenidos, procedemos a ir al Disco donde tenemos nuestros Sites de IIS, en mi caso lo tengo en el directorio por defecto C:\inetpub\wwwroot.

4. Procedemos a Descomprimir el Archivo que descargamos del Site.

5. Luego le cambiamos el nombre a la carpeta llamada DotNetNuke_Community_05.04.04_Install por el nombre del portal que queremos montar, en mi caso le pondré DotNetNuke.

6. Procedemos a otorgarle al directorio los permisos necesarios requeridos por el aplicativo que son (Read, Write, and Change Control), para eso le damos un click derecho en el directorio luego a propiedades y vamos a la pestaña de Seguridad.

7. Luego procedemos agregar el usuario Network Service al directorio y le asignamos los permisos o privilegios ya mentados.

8. Después de haberle Asignado los Permisos y Privilegios Correspondiente al Aplicativo, procedemos a Crear el Directorio Virtual en el IIS, vamos al Sitio por Defecto del IIS, expandimos y ahí debe de estar nuestro directorio DotNetNuke, para hacerlo directorio virtual solo tenemos que dar un Click Derecho y seleccionar Convertir Aplicación (Convert to Application) y Confirmamos la Acción.

9. Luego tenemos que indicarle cual será el primer documento que el site leeara, cada vez que sea accedido por parte de los usuarios, para esto en el menú del IIS solo tenemos que darle Click a la Opcion Documento Predeterminado (Default Document).

10. Luego de esto Debemos Renombrar el Archivo Release.Config por Web.Config

11. Después de haber realizado el Cambio del nombre al archivo, procedemos a abrir nuestro Motor de Base de Datos SQL y a crear una base de datos donde alojaremos toda la información de nuestro Site, en nuestro caso la creare con el nombre de DotNetNuke.


12. Luego de haber creado nuestra base de datos estamos listo para ejecutar nuestro manejador de contenidos, para esto abrimos una nueva ventana en nuestro navegador y escribimos la dirección que creamos en el IIS. http://localhost/DotNetNuke/

13. Con este último paso terminamos lo que sería la parte de instalación de DotNetNuke, solo faltaría la parte de configuración, que no es más bien seguir el asistente, también explicare todo concerniente a la configuración del sitio que decidimos crear.

14. Después de haber instalado DotNetNuke, debemos configurarlo, la herramienta cuenta con su asistente que nos guiara durante todo el proceso, y la primera pregunta del mismo es que método utilizaremos para instalar DotNetNuke, existen 3, "Custom", que es el método personalizado, solo instalamos los módulos u opciones que necesitemos para ese sitio, "Typical", es el método común y permite instalar todos los componentes del CMS, y por ultimo existe un módulo "Auto", para utilizar este módulo debemos modificar la cadena de conexión en el Web.Config e indicarle la base de datos donde la instalaremos, por lo regular si es un sitio nuevo utilizo Typical

15. La siguiente pantalla verifica que poseemos los permisos necesarios para configurar el aplicativo en nuestro portal.

16. Luego el siguiente paso es Configurar las Credenciales de nuestro banco de Datos, que utilizaremos para el portal.

- Seleccionamos la Base de Datos a utilizar (Select Database)
- Escribimos el Nombre del Servidor (Server)
- La Base de Datos (Database)
- Integrate Security (Seguridad Integrada, esto es por si contamos con un active directory el cual está manejando la seguridad y verifica las credenciales de mi ordenador y las compara en nuestro servidor de base de datos para saber si cuenta con los privilegios necesario para crear / modificar objetos en las bases de datos)
- Usuario de la base de datos SQL (User ID)
- Contraseña (Password)
- Ejecutar como Propietario (Run as db Owner)
- Prefijo a utilizar en la Base de Datos (Object Qualifier)

17. Luego de este paso se procede a instalar y configurar toda la base de datos, y se hace un vaciado de los Scripts y data en nuestro servidor de base de datos.

18. Procedemos a Configurar las Credenciales del usuario HOST del portal, este usuario cuenta con los privilegios del administrador del sitio, pero también cuenta con privilegios especiales dentro del site, que el administrador no tiene.

19. Luego indicamos las credenciales del administrador, y también le asignamos un título a nuestro portal, ya que como sabemos podemos administrar un sin número de portales con este CMS.

20. El último paso el Lanzar y Publicar el Site, después de haber instalado y configurado nuestro site con éxito, procederemos a darle un vistazo a como se vería a primera vista nuestro nuevo portal.

En un Próximo articulo hablare sobre Cómo Podemos Extender y Personalizar DotNetNuke como Queramos, aquí les dejo como se vería nuestro Portal después de haberlo construido.