Archivo

Archive for junio 2009

[ASP.NET – SQL] Tare 2. Conectándome a una BD sin colocar la cadena de conexión en el WebConfig

junio 19, 2009 1 comentario

Bien, aquí el como hacer lo que se menciona en el titulo del post. Primero debemos tener una base de datos (la cual ya tengo y uso para las demos, estoy usando SQL Server Enterprise). Bien mi base contiene una tabla llamada EntradasBlog con 5 campos que son los siguientes:

image

Bien pues vamos a trabajar con esta base, creamos un proyecto web asp.net y agregamos una clase que se llame ClConexion, en la cual lo primero es agregar los nombres de espacios que vamos a usar:

using System.Data;
using System.Data.SqlClient;

Después creamos una función que nos regrese la conexión el código es este:

public static SqlConnection cnx()
{
    string conexion = "Data source=SQLNOR;" +
                        "initial catalog=BD_DEMOS;" +
                        "User id=sa; password=******
    SqlConnection con = new SqlConnection(conexion);
    return con;
}

Con esto ya tenemos nuestra conexión ahora veamos si funciona, para esto agregamos un GridView a nuestra página el cual enlazaremos desde código, vamos a colocar el siguiente código en el evento Load de nuestra página:

DataSet ds = null;
            SqlDataAdapter da = null;

            using (SqlConnection conexion = ClConexion.cnx())
            {
                SqlCommand com = new SqlCommand("Select * From EntradasBlog", conexion);
                com.CommandType = CommandType.Text;

                ds = new DataSet();
                da = new SqlDataAdapter(com);
                da.Fill(ds);

                com.Dispose();

                gvEntradasBlog.DataSource = ds;
                gvEntradasBlog.DataBind();
            }

 

Con esto tenemos todo listo, solo falta generar y listo!, entonces nuestra página se muestra así:

image

Bien espero que les ayude, cualquier duda, escríbanla en los comentarios. Y no olviden votar por el blog 😀

Etiquetas de Technorati: ,,,,,

[IE8] WebSlice del blog del Nor xD

junio 19, 2009 Deja un comentario

Después de la platica de Aceleradores y WebSlice de hace un par de días en la UNEVE, aquí el WebSlice de mi Blog. No les voy a decir como hacer un WebSlices, les recomiendo el post de mi  buen amigo Ivan en donde describe como hacer un WebSlice con acceso a datos, aquí la dirección:

http://sqlpsykrest.wordpress.com/2009/05/15/asp-net-creando-una-webslice-con-datos-de-una-bd-y-un-repeater-sql-2008/

Bien, como seguramente ya saben como hacer un WebSlices y saben que es muy fácil aquí tip, para poner un poco más chulos los WebSlices. (aunque el mío no se ve tan chulo xD). El punto es que voy a mostrar los RSS de mi blog en un WebSlice, como saben esto se hace con el microformato:

feedurl

y la instrucción sería más o menos así:

<a rel="feedurl" href="https://mspnor.wordpress.com/feed/" style="display:none;"></a>

Pero, aquí hay un problema es un poco complicado pornerle un estilo a nuestro WebSlices pa’ ponerlo chulo, así que la respuesta a esto es hacer referencia a una página que será la que se mostrará en el WebSlices, para esto usamos lo solucionamos haciendo referencia a dicha página htm:

<a href="display.htm" rel="entry-content" style="display:none"></a>

Como se dan cuenta tiene referencia al entry-content, en esta página podemos ponerle diseño para que se vea chulo nuestro WebSlice :D. Vale mi código para que se muestre mis RSS en un WebSlice con un poco de diseño es el siguiente:

<div id="topten"class="hslice">
  <h1 class="entry-title">WebSlices del Blgo del Nor</h1>
  <div class="entry-content">
    <script language="JavaScript" src="http://www.hoteljuice.com/conversor/feed2js" type="text/javascript"></script>
      <noscript>
         <a href="http://www.hoteljuice.com/conversor/feed2js.php?">Ver Feed RSS</a>
         </noscript>
  </div>
  <a href="display.htm" rel="entry-content" style="display:none"></a>
 </div> 

Aquí mi script es el que hace la magia para mostrar los RSS y si se dan cuenta es lo que muestro en el entry-content y al final hago referencia a la misma página, es decir en display.htm tengo este código dentro del body :D, y por ultimo un poco de css para poner una imagen de fondo y alinear al centro todo este rollo:

body
{
    width: 500px;
    margin: 0 auto;
    background: url(https://mspnor.files.wordpress.com/2009/06/webslice.png) no-repeat center top;
}

h1
{
    font-family: 'Comic Sans MS';
    font-size: large;
    color: #000080;
    text-align: center;
}

Con esto todo esta listo para mi WebSlices que cuando lo agrego a mi página se ve más o menos así:

image

Solo un pequeño detalle con esto de redireccionar a una página, es que los WebSlices se agregan con el titulo, cosa que con los otros, no, pero vaya que el hecho de poder poner chulos nuestros WebSlices ya es bastante :D. Espero que les ayude esto y no olviden votar por el Blog 😛

 

Etiquetas de Technorati: ,,,,
Categorías: Ejemplos, IE, IE8, Tips, WebSlices

[IE8] Restaurar sesión anterior en Internet Explorer 8

junio 11, 2009 4 comentarios

Esta es una característica nueva en Internet Explorer 8, ya que en versiones pasadas esto no se podía hacer, y creo que el equipo de IE8 aserto con esta característica, la verdad es que como buen desarrollador (xD) uso mucho Mozilla e IE en mi maquina casi siempre al mismo tiempo, uso uno para ver, buscar o escribir en la Web y otro para hacer pruebas, o viceversa. Pero bueno no les voy  a hablar de lo que hago sino de lo que hace IE8.

Bueno aquí el como restaurar la sesión anterior de IE8, cuando abrimos IE8 por lo regular inicia con nuestra página de inicio, y para poder ver la sesión anterior debemos ir a la Barra de herramientas->Restaurar sesión anterior y listo:

image

y listo con esto restauramos la ultima sesión que ocupamos, aunque no del todo bien, porque tengo que decir que no me agrada que te cargue la página de inicio, cosa de Mozilla no hace y es más rápido, porque en IE8 arranca la home page y luego tienes que ir a restaurar y no te cierra la página de inicio :S, creo que esto hace que consuma más memoria en nuestra maquina, pero bueno espero que para la próxima sea automático o se pueda configurar desde las opciones de internet o algo así.

Bueno espero que les sea de utilidad y recuerden votar por el blog 😀

Saludos!!

Etiquetas de Technorati: ,,
Categorías: IE, IE8, Tips

[IE8] Platica sobre Aceleradores y WebSlice de IE8 en la UNEVE

junio 10, 2009 Deja un comentario

Bien, este post es para invitarlos a que asistan el próximo 16 de Junio a la UNEVE. Como ya muchos saben ese día será el evento a nivel nacional de Instalación de Internet Explorer 8, así que aquí les dejo la información y para que se registren:

 

Banner Uneve IE8

Espero contar con su asistencia, este será un evento total mente Gratuito.

Saludos!

Etiquetas de Technorati: ,
Categorías: Eventos, IE, IE8

¿Por qué el número del puerto del Servidor de desarrollo ASP.NET es diferente al que se muestra en el explorador?

junio 3, 2009 29 comentarios

Este es una cuestión un poco extraña de repente me comenzó a suceder de un momento a otro. El asunto es el siguiente inicie un nuevo proyecto en Visual Studio 2005, para ser exactos un Sitio Web para hacer unas pruebas en el trabajo, bien cuando intento ver mi sitio en el Explorador (en cualquier explorador, porque hice  pruebas con Firefox, Chrome e IE8) no me muestra la página .aspx, en primera impresión pensé que era error mío, pero me di cuenta que los números de los puertos del Servidor de desarrollo de ASP.NET  y del explorador es diferente:

image

image

Como se pueden dar cuenta en estas imágenes el  puerto es diferente y para que funcione tengo que estar cambiando manualmente el puerto del explorador, pero estarán de acuerdo que esto es muy tedioso.

Lo primero que pensé fue que era culpa del IIS, estuve indagando en Google y en Bing xD y nada :S.

Después pensé que era cosa de Visual Studio y cambia configuración incluso ejecute el sitio desde el prompt con ayuda de WebDev.WebServer.exe y nada, seguía sin funcionar, busque de nuevo en Bing y me encontre con esta solución del Guille

http://www.elguille.info/net/aspnet/numero_puerto_aspnet_development_server_diferente_explorador.aspx

Lo aplique y a la primera me funciono, pero luego cada que reiniciaba VS y quería ver mi sitio tenia que cambiar el puerto y me decía que el puerto estaba siendo usado :S, y pues que tedioso estar cambiando el numero del puerto.

Y seguí mi búsqueda en internet (bing) durante un rato más, hasta que en un foro me encontré con la solución, resulta que esto sucede gracias al vendito NOD32, el es el causante de todo este rollo.

Aquí la solución.

Abrimos NOD32->En Modo avanzado->Hacemos clic en Configuración->Antivirus y anti espía->Protección del tráfico de Internet->Configurar…

image

Se abre una ventana de configuración en donde nos dirigimos a Antivirus y anti espía->HTTP->Navegadores de Internet. Aquí debemos de buscar el EXE de Visual Studio y desmarcarlo para que no se analice la transferencia de datos.

image

Una ves hecho esto, solo hacemos clic en Aceptar y cerramos NOD32 y listo!, ahora si debe de funcionar correctamente, el numero de los puerto del servidor de desarrollo de ASP.NET debe de ser igual al del explorador.

Espero que este post les ayude cuando se encuentren con este error y puedan seguir trabajando.

Saludos!

Etiquetas de Technorati: ,,,

[IE8] Descarga el Acelerador de My Content Pipeline para IE8

Ya esta disponible el acelerador de mi blog para que lo descargues y lo agregues a tu Internet Explorer 8, con el puedes buscar post relacionados, claro solo si quieres saber un poco de las tecnologías de Microsoft.

image

Ya lo puedes agregar, que esperan 😛

URL: http://www.ieaddons.com/en/details/bloggings/My_Content_Pipeline/

Saludos!!

Categorías: IE, IE8

[IE8]Festival de instalación de IE8 el próximo 16 de Junio

Dentro unos pocos días se estará llevando a cabo el Festival de Instalación de Internet Explorer 8!!!, el cual será el próximo martes 16 de junio no te pierdas este evento que se llevará a cabo de manera simultánea en diferentes ciudades del país. Será un evento en el que podrás conocer a detalle técnico las ventajas de contar con IE8, así como llevar instalado en tu equipo esta nueva versión del navegador y diferentes herramientas que harán más fácil y dinámica tu experiencia en Internet. En cada evento habrá muchas sorpresas y regalos!

Estaremos presentando temas técnicos de interés tanto para Desarrolladores como Profesionales de TI.

Podrás participar de 2 formas:

1. – Asistiendo de forma presencial al evento de tu ciudad:

Microsoft México , D.F. – Regístrate aquí
Microsoft Monterrey – Regístrate aquí
Chihuahua, Chih – Regístrate aquí
Ciudad del Carmen, Camp. – Regístrate aquí
Ciudad Obregón, Son. – Regístrate aquí
Coacalco, Edo. de México – Regístrate aquí
Coatzacoalcos, Ver. – Regístrate aquí
Cuernavaca, Mor. – Regístrate aquí
Ecatepec, Edo. de México – UNEVE – Regístrate aquí
Fresnillo, Zac. – Regístrate aquí
Guadalajara, Jal. – Regístrate aquí
Aguascalientes, Ags – Regístrate aquí
Tlaquepaque, Jal – ITESO – Regístrate aquí
Mexicali, Baja California – Regístrate aquí
Navojoa, Son. – Regístrate aquí
Puebla, Pue. – Regístrate aquí
Querétaro, Qro. – Regístrate aquí
Tepic, Nay. – Regístrate aquí
Tijuana, B.C. – Regístrate aquí
Toluca, Edo. de México – Regístrate aquí
UPIICSA, Ciudad de México – Regístrate aquí
Zacatecas, Zac. – Regístrate aquí

2. Y para asistir al evento virtual Regístrate aquí

Yo tendré la oportunidad de platicarles sobre los Aceleradores y WebSlices de IE8. El lugar en donde estaré participando en Ecatepec, Edo. de México – UNEVE – Regístrate aquí . No duden en participar.

Categorías: Eventos, IE, IE8

[IE8] IE8 disponible en 20 idiomas más

El día de hoy el equipo de IE8 anuncio la disponibilidad de Internet Explorer 8 en 20 idiomas más, lo que quiere decir que actualmente IE8 esta diponible en un total de 63 idiomas :D.

Si aun no tienes Internet Explorer 8 visita esta página para poder descargarlo en tu idioma:

http://www.microsoft.com/windows/internet-explorer/worldwide-sites.aspx

Aquí la lista de los nuevos idiomas:

Language

Code

Windows
Vista x86

Windows
XP x86

Albanian

SQI

Yes

Yes

Assamese

ASM

Yes

Basque

EUQ

Yes

Yes

Bengali (Bangladesh)

BGD

Yes

Bengali (India)

BNG

Yes

Coming soon

Gujarati

GUJ

Yes

Yes

Indonesian

IND

Yes

Yes

Kannada

KDI

Yes

Coming soon

Kazakh

KKZ

Yes

Yes

Konkani

KNK

Yes

Yes

Kyrgyz

KYR

Yes

Malay (Brunei Darussalam)

MSB

Yes

Malay (Malaysia)

MSL

Yes

Yes

Malayalam

MYM

Yes

Coming soon

Marathi

MAR

Yes

Yes

Oriya

ORI

Yes

Punjabi

PAN

Yes

Coming soon

Tamil

TAM

Yes

Yes

Telugu

TEL

Yes

Coming soon

Uzbek (Latin)

UZB

Yes

Saludos!!!

Etiquetas de Technorati: ,
Categorías: .NET, IE8

[Windows Form] Definir un Access Key con un Label Control

junio 2, 2009 1 comentario

Esto nos puede ser de utilidad en partes de nuestro proyecto en el que tengamos por ejemplo: varios controles Textbox con etiquetas  que indican que valores debemos ingresar en cada Textbox (Imagínense su formulario de registro). Si definimos un Access Key en nuestras etiquetas podemos cambiar el foco al control que le indiquemos, pero veamos como hacer esto:

En un formulario Agreguemos tres controles TextBox y tres controles Label, que simulen un Formulario de registro, que tenga más o menos la siguiente apariencia:

image

Ahora la propiedad TabIndex de cada control Label deber ser un indice menor que el del control al que se va a enlazar con el Access key en este caso su correspondiente control TextBox, es decir; algo como el siguiente código:

label1.TabIndex = 0;
textBox1.TabIndex = 1;

Aunque esto lo podemos hacer desde la ventana de propiedades. Otra cosa que debemos hacer es verificar que la propiedad UseMnemonic que si es true, el primer carácter precedido por un símbolo ‘&’ se utilizará como la tecla de acceso de la etiqueta.

label1.UseMnemonic = true;

Ahora solo debemos asignarle un valor a la propiedad Text de cada etiqueta y aquí es donde le indicamos que letra se utilizará como tecla de acceso para esto solo tenemos que preceder el símbolo ‘&’ de dicha letra, por ejemplo:

label1.Text = "N&ombre";

En este caso la tecla de acceso es la letra ‘o’, lo que indica que cuando presionemos ALT + o  el el Textbox1 obtendrá el foco.

Todas estas modificaciones las podemos hacer desde la ventana de propiedades, no es necesario escribir el código para esto. Ahora si ejecutan su proyecto cada que presionen ALT + o se colocara el foco en el Textbox1  y seria lo mismo con las otras etiquetas según la letra a la que le asignemos el  key, recuerden que para que funcione las propiedades TabIndex de cada Label deben ser menor al de los Textbox’s

Para que chequen como funciona esto o por si no entendieron la explicación coloquen este código en el evento Load del Form después de agregar los controles:

label1.Text = "N&ombre";

label1.TabIndex = 0;
textBox1.TabIndex = 1;


label2.Text = "A&pellidos";
label2.TabIndex = 2;
textBox2.TabIndex = 3;


label3.Text = "M&ail";
label3.TabIndex = 4;
textBox3.TabIndex = 5;

Y ejecutamos y hagan las respectivas pruebas presionando “ALT + O”  ó “ALT + A” ó “ALT + P” y vean que es lo que pasa. Espero que les sea de utilidad.

Saludos!!

Etiquetas de Technorati: ,,
Categorías: C#, Ejemplos, Tips, Windows Form

[Xbox] Project Natal – Wow

Etiquetas de Technorati: ,,
Categorías: Betas, Games, Xbox, Xbox 360

[Windows Form] Identificando los clic’s en un Control Button

Por lo regular todo mundo cuando trabaja con Windows Form y hacemos uso de un control Button por lo regular solo usamos el Evento Click, pero en realidad podemos identificar si hacemos clic con el botón derecho del mouse, con el izquierdo o simplemente clic que es el que todos conocemos, pues bien aquí como identificar los clic’s en un control Button.

Para esto lo vamos a realizar en el evento MouseDown del Botón el cual tiene lugar cuando el puntero del mouse se encuentra sobre el componente y pulsa un botón del mouse y escribimos el siguiente Código:

private void button1_MouseDown(object sender, MouseEventArgs e)
{
    switch (e.Button)
    {
        case MouseButtons.Left:
            MessageBox.Show("Se presionó el botón isquierdo del mouse");
            break;
        case MouseButtons.Right:
            MessageBox.Show("Se presionó el botón derecho del mouse");
            break;
        case MouseButtons.Middle:
            MessageBox.Show("Se presionó el botón central del mouse");
            break;
    }
}

De esta manera podemos identificar que botón del mouse se presiono sobre nuestro control Button. Espero que les sea de ayuda.

Saludos!

Etiquetas de Technorati: ,,,,
Categorías: .NET, 70-526, C#, Ejemplos, Windows Form

[Xbox] Project Natal

 

 

 

 

 

 

 

 

 

 

 

 

 

Etiquetas de Technorati: ,

Categorías: Games, Xbox, Xbox 360

[C#] Haciendo la tarea xD, string, palíndromo, invertir una cadena, etc.

junio 1, 2009 10 comentarios

Este post en respuesta aun comentario en el post de palindrome en C# – explicación. Tengo que mencionar que cualquier otro día (es decir; un fin de semana o un día que no sea lunes xD) no hubiera contestado este comentario con un post, solo hubiera dicho, amigo piénsale un poco y seguro encuentras la respuestas, pero esta vez he llegado al trabajo y como no tengo mucho que hacer aquí rápido la solución a su tarea, solo espero que su profesor no vea este post xD.

El comentario lo pueden revisar aquí:

https://mspnor.wordpress.com/2008/08/10/palindrome-en-c-explicacin/#comment-330

Y aquí la mi pequeño programa que espero que funcione y les sirva (lo pongo por partes para que se entienda):

Main:

static void Main(string[] args)
{
    //variables
    StringBuilder frase = new StringBuilder();

    //Menú
Menu:
    Menu();
    int opcion = int.Parse(Console.ReadLine());
    switch (opcion)
    {
        case 1:
            Console.Clear();
            goto Leer;                   
        case 2:
            Console.Clear();
            MostrarFrase(frase);
            Console.ReadLine();
            goto Menu;
          
        case 3:
            Console.Clear();
            MostrarTotalLetras(frase);
            Console.ReadLine();
            goto Menu;
         
        case 4:
            Console.Clear();
            FraseInvertida(frase);
            Console.ReadLine();
            goto Menu;
           
        case 5:
            Console.Clear();
            EsPalindrome(frase);
            Console.ReadLine();
            goto Menu;
          
        default:
            break;
    }



Leer:
    try
    {
        Console.WriteLine("Cantidad de Palabras que tendrá la frase?");
        int totalPalabras = int.Parse(Console.ReadLine());


    Repetir:
        Console.Clear();
        Console.WriteLine("Introduce Frase: ");


        string[] frase1 = Console.ReadLine().Split(' ');


        for (int i = 0; i < frase1.Length; i++)
        {
            if (totalPalabras == frase1.Length)
            {
                if (i == (frase1.Length - 1))
                    frase.Append(frase1[i]);
                else
                    frase.Append(frase1[i] + " ");
            }
            else if (totalPalabras < frase1.Length)
            {
                Console.Clear();
                Console.WriteLine("Te excediste en el total de palabras!");
                Console.WriteLine("Solo se aceptan {0} palabras para esta frase y escribiste {1}", totalPalabras, frase1.Length);
                Console.WriteLine("Inténtalo de nuevo..");
                Console.ReadLine();
                goto Repetir;
            }
            else
            {
                break;
            }
        }
        Console.ReadLine();
        goto Menu;
    }
    catch (Exception ex)
    {
        Console.Clear();
        Console.WriteLine("Debes seleccionar una opción, escribe un número");
        Console.ReadLine();
        goto Leer;
    }
      
}

Menú:

private static void Menu()
{
    Console.Clear();
    Console.WriteLine("");
    Console.WriteLine("1 – Ingresar una nueva frase.");
    Console.WriteLine("2 – Mostrar la frase actual.");
    Console.WriteLine("3 – Contar la cantidad de letras de la frase actual.");
    Console.WriteLine("4 – Invertir frase actual.");
    Console.WriteLine("5 – ¿Es la frase actual un palíndromo?");
    Console.WriteLine("6 – Terminar el programa.");
    Console.WriteLine("");
    Console.Write("Elige una Opción: ");
}

Mostrar Totales Letras:

private static void MostrarTotalLetras(StringBuilder frase)
        {
            Console.WriteLine("El total de letras en la frase es: {0}",frase.ToString().Length);           
        }

Frase Invertida:

private static void FraseInvertida(StringBuilder frase)
{
    Console.WriteLine("Frase Invertida: {0} ",invertir(frase.ToString()));
}

Función Invertir:

private static string invertir(string frase)  
{  
    string invertido = "";
    for (int i = frase.Length - 1; i >= 0; i--)
        invertido = invertido + frase.Substring(i, 1);  
    return invertido;  
}

Determinar si es Palíndromo la frase:

 

private static void EsPalindrome(StringBuilder frase)
{
    
    string[] palabras = frase.ToString().Split(' ');
    if(verificar(0,palabras, palabras.Length) == 1)
        Console.WriteLine("la frase es palindrome...");
    else if(verificar(0,palabras, palabras.Length) == 3)
        Console.WriteLine("Inténtalo de nuevo...");
    else
        Console.WriteLine("La frase no es palindrome...");

}

Función Verificar:

public static int verificar(int pos, string[] palabra, int largo)
{
    try
    {
        //primera condición, si la palabra en su posición 0 es igual a la ultima,
        //por ejemplo "ojo", verifica si la pos 0 ('o') es igual a la ultima (3-0-1= 2) que también es una 'o'
        if (palabra[pos] == palabra[largo - pos - 1])
        {
            //aquí solo nos indica que si las pos es menor que largo - pos entra e incrementa pos
            //cuando llega al centro de la palabra, nos indica que es un palindrome
            if (pos < largo - pos)
                return (verificar(++pos, palabra, largo));
            else
                return (1);
        }
        //si no entra al if en donde se comaparan los caracteres
        return (0);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Aun no existe una frase para verificar. Primero debes ingresar una frase");
        return 3;
    }
    
}

Creo que la explicación esta de más, ademas se pueden dar una idea de que hace cada función o método si revisan el comentario del otro post.

Aquí pueden descargar el código fuente:

image

Saludos!

Nota: no hago tareas de los lectores del blog, esta ves es porque no tengo otra cosa que hacer y el asunto es relativamente sencillo.