Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando las entradas con la etiqueta C#. Mostrar todas las entradas

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.

Pint Screen con C# (Capturar una Imagen)

Estare realizando un ejemplo de como Capturar un Trozo de una pantalla o una pantalla completa con C#.Net, estare explicando paso a paso como realizar esta tarea.

Para eso crearemos una pantalla similar a esta que se refleja en la imagen, la cual contiene los siguientes elementos:

a) 3 Botones (Capturar, Capturar Pantalla Completa, Guardar Imagen)
b) 1 TextBox
c) 1 PictureBox


Luego procedemos a codificar las acciones que queramos que haga este aplicativo, aqui les dejo todo el codigo fuente utilizado:


using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.IO;

namespace PrintScreen
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            // Si no se indica el formato, se guarda como PNG
            //this.picCaptura.Image.Save(this.txtNombre.Text);

            if (String.IsNullOrEmpty(this.txtNombre.Text))
            {
                MessageBox.Show("Debes indicar el nombre del fichero",
                                "Guardar",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Exclamation);
                return;
            }

            // Usar el formato según la extensión
            string ext = Path.GetExtension(this.txtNombre.Text).ToLower();
            switch (ext)
            {
                case ".jpg":
                    this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Jpeg);
                    break;
                case ".png":
                    this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Png);
                    break;
                case ".gif":
                    this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Gif);
                    break;
                case ".bmp":
                    this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Bmp);
                    break;
                case ".tif":
                    this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Tiff);
                    break;
                default:
                    this.picCaptura.Image.Save(this.txtNombre.Text);
                    break;
            }
        }

        private void btnCapturar_Click(object sender, EventArgs e)
        {
            // Capturar todo el área del formulario

            Graphics gr = this.CreateGraphics();
            // Tamaño de lo que queremos copiar
            Size fSize = this.Size;
            // Creamos el bitmap con el área que vamos a capturar
            // En este caso, con el tamaño del formulario actual
            Bitmap bm = new Bitmap(fSize.Width, fSize.Height, gr);
            // Un objeto Graphics a partir del bitmap
            Graphics gr2 = Graphics.FromImage(bm);
            // Copiar el área de la pantalla que ocupa el formulario
            gr2.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, fSize);

            // Asignamos la imagen al PictureBox
            this.picCaptura.Image = bm;

            // Guardarlo como JPG
            //bm.Save("formulario.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
        }

        private void btnCapturarPantalla_Click(object sender, EventArgs e)
        {
            // Capturar toda la pantalla

            Graphics gr = this.CreateGraphics();
            // Tamaño de lo que queremos copiar
            // En este caso el tamaño de la ventana principal
            Size fSize = Screen.PrimaryScreen.Bounds.Size;
            // Creamos el bitmap
            Bitmap bm = new Bitmap(fSize.Width, fSize.Height, gr);
            // Un objeto Graphics a partir del bitmap
            Graphics gr2 = Graphics.FromImage(bm);
            // Copiar todo el área de la pantalla
            gr2.CopyFromScreen(0, 0, 0, 0, fSize);

            // Asignamos la imagen al PictureBox
            this.picCaptura.Image = bm;
        }
    }
}

Luego de haber programado estos eventos podremos capturar una parte de la pantalla o la pantalla completa, y se reflejara en nuestro control PictureBox, como tambien podemos ponerle un nombre y guardar esa imagen en nuestro ordenador.