[ASP.NET] Limpiar los TextBox en un Web Form

6 07 2009

Aquí un tip de como hacer esto, existen múltiples escenarios, aquí colocare el que uso, que se puede modificar sin problema, todo depende de donde quieren buscar:

El escenario es el siguiente, tengo una página aspx dentro de una Master Page, es decir el control principal es un ContentPlaceHolder, luego ahí tengo varios paneles, y en cada panel, tengo varios TextBox que quiero limpiar. Para limpiarlos este es el código que uso:

Protected Sub button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles button2.Click
    For Each cl As Control In Paso1.Controls
        If TypeOf cl Is TextBox Then
            CType(cl, TextBox).Text = ""
        End If
    Next
End Sub

Quizá lo hagan con un for solamente, pero este pequeño código a mi me funciona bien, así que aquí lo comparto, seguro a alguien le sirve. Si los TextBox no se encuentran en paneles solo basta sustituir lo de Paso1 por Me si están directo en el Form, por cierto ese Paso1 es un panel.

Saludos.

Etiquetas de Technorati: ,




[IE8] Hotkeys para Internet Explorer 8

2 07 2009

Muchos de nosotros (desarrolladores) estamos acostumbrados a acceder a ciertas características de los productos mediante la combinación de teclas, o accesos rápidos. En esta entrada les coloco una lista de Hotkeys para IE 8.

Navegación Básica

Regresar a la página anterior Alt + Flecha izquierda
Avanzar a la siguiente página Alt + Flecha derecha
Detener la carga de la página Escape (Esc)
Actualizar página F5 ó Ctrl + F5
Ir a la página de Inicio Alt + Inicio
Foco en la barra de direcciones Alt + D
Agregar "www" y ".com" a lo que escribió antes de navegar Ctrl + Enter

Pestañas:

Abrir un link en una nueva pestaña Ctrl + Clic
Abrir un link en una nueva pestaña en un primer plano Ctrl +Shift + Clic
Abrir una nueva pestaña en primer plano Ctrl + T
Cambiar entre pestañas Ctrl + Tab / Ctrl + Shift + Tab
Cerrar pestaña actual Ctrl + W
Abre una nueva pestaña en primer plano desde la barra de direcciones Alt + Enter
Cambiar a la ultima pestaña Ctrl + 9
Cerrar otras pestañas Ctrl + Alt + F4
Abrir pestañas rápidas Ctrl + Q
   

Zoom:

Incrementar Zoom (+ 10 %) Ctrl + (+)
Disminución de Zoom (- 10 %) Ctrl + (-)
Tamaño original (100%) Ctrl + 0
   

Buscar:

Ir a la barra de herramientas del cuadro de búsqueda Ctrl + B
Abrir su consulta en una nueva pestaña (desde el el cuadro de búsqueda) Alt + Enter
Reducir el proveedor de búsqueda Ctrl + Flecha hacia abajo
   

Favoritos:

Abrir Favoritos Ctrl + I
Abrir el Historial Ctrl + H
Abrir tus fuentes (feeds) Ctrl + J
   

Mouse:

Abrir un link en una nueva pestaña Clic en el botón central
Cerrar una pestaña Clic en el botón central sobre la pestaña
Zoom en la página actual Ctrl + el botón central del mouse
   

Otros:

Agregar a sus Favoritos Ctrl + D
Abrir carpeta de favoritos Shift + Clic en "Organizar Favoritos …"
Abrir un link en una nueva ventana Shift + Clic en "Organizar Favoritos …"
Cambiar el tamaño del texto Ctrl + rueda del ratón arriba/abajo
Activar el botón de canales de la barra de comandos Alt + J
Activar las herramientas en la barra de comandos Alt + O
Activar el botón de Ayuda Alt + L
Abre el centro de favoritos mostrando los favoritos Alt + C
Muestra una lista de páginas abiertas. Ctrl + Shift + Q

 

 

Etiquetas de Technorati: ,,





[C#] El operador ++, prefijo ó sufijo?

2 07 2009

Un post rápido, muchas veces no tomamos en cuenta las especificaciones de los compiladores que usamos, y como mucho aprendimos C# después de usar C o C++, cometemos algunos errores que podemos evitar si leemos un poco. Aquí un ejemplo común, mi compañero Ivan me dice que esto es lo mismo:

int x = 0;
int t = 0;
int y = x++;
int z = ++t;

La pregunta seria ¿los valores de “y” y “z” serán los mismos?.

La respuesta es NO, ¿Por qué?.

R: El incremento prefijo hace que el resultado sea el valor del operando después de haber sido incrementado y el postfijo hace que el resultado sea valor del operando antes de haber sido incrementado.

Entonces si mostramos los valores de “y” y “z”, tenemos que:

y = 0” y “z = 1

Ahora lo que les decía de los compiladores, que pasa si hago esto:

int x = 0;
int y = x++;

¿Cual es el valor de “x” y cual es el valor de “y”?

En base a la respuesta que mencione arriba el valor de “x = 1” y el valor de “y = 0 ”.

Por lo tanto si hago esto:

int x = 0;
x = x++;

El valor de “x = 0”;

Si no me creen pregúntenle al compilador de C#. Por tal motivo puedo concluir que debemos de leer un poco antes de hacer uso de este tipo de operadores, porque muchas veces la solución a nuestro problema puede estar justo al frente de nosotros!.

Etiquetas de Technorati: ,,




[Silverlight] Mostrar RSS en una aplicación de Silverlight

2 07 2009

Primero es crear un proyecto desde Expression Blend 2 de tipo Silverlight 2:

image

Luego Agregamos una imagen que será el fondo de donde se mostrara nuestras RSS, la imagen puede ser la que quieran, o en su caso darle diseño al control que muestra el contenido de Silverlight. Después que agregamos la imagen le quitamos el fondo al Grid, para que nuestro control se vea más o menos así:

image

Bien, a esto agregamos 2 TextBlock y un TextBox, con los siguientes nombres:

Control Nombre
TextBlock Titulo
Texblock Fecha
TextBox Contenido

Ya que tenemos nuestro “Diseño”, vamos a abrir el mismo proyecto desde Visual Studio 2008, abrimos la página xaml.cs para trabajar en ella y lo primero que hacemos el agregar los nombres de espacios que vamos a ocupar que son los siguientes:

using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ServiceModel;
using System.ServiceModel.Syndication;
using System.Net;

Luego en la página xaml.cs declaramos el url de RSS con la siguiente instrucción:

string feedUrlTemplate = "http://mspnor.wordpress.com/feed/rss/";

Ya con esto necesitamos un método que lea nuestros RSS, el cual declaramos y hacemos uso de un WebClien y creamos una nueva URI

private void CargarRSS(string uri)
{
    WebClient wb = new WebClient();
    wb.OpenReadCompleted += new OpenReadCompletedEventHandler(wb_OpenReadCompleted);

    Uri feedUri = new Uri(uri, UriKind.Absolute);
    wb.OpenReadAsync(feedUri);
}

Ahora lo interesante viene en el evento OpenReadCompleted del webClient, el código es el siguiente:

void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    if (e.Error != null)
    {
        this.Contenido.Text = "Error al cargar el XML del feed intentelo de nuevo";
        return;
    }
    using (System.IO.Stream stream = e.Result)
    {
        SyndicationFeed feed;
        using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(stream))
        {
            feed = SyndicationFeed.Load(reader);

            SyndicationItem item = feed.Items.First();

            this.Fecha.Text = item.PublishDate.ToString();
            this.Titulo.Text = item.Title.Text;
            this.Contenido.Text = item.Summary.Text;
        }
    }
}

Aquí hacemos uso de nuevo metodo para obtener los RSS a de una página y es la clase SyndicationFeed, y SyndicationItem como se pueden dar cuenta esto es muy sencillo esto es todo lo que necesitamos para tener RSS en una aplicación Silverlight. En el próximo post veremos como agregar esta aplicación a un WebSlice.

Se me olvidaba, El metodo cargarRSS tenemos que colocarlo en la sobrecarga de la página:

public Page()
{
    InitializeComponent();
    CargarRSS(feedURL.Trim());
}

y si ejecutamos esto se ve más o menos así:

image

Aquí hay un pequeño detalle, que por el momento no existe un control en Silverlight que muestre contenido HTML como tal, aunque ya se esta trabajando en esto, e inlcuso existen algunos proyectos betas en CodeProject, aun no, pero vaya que esto se puede mejorar en muy poco tiempo, así que aquí les dejo este post, espero que les ayude y no duden en comentar y votar por el Blog.

 

Saludos!

Etiquetas de Technorati: ,,




[DeepZoom] Michael Jackson

2 07 2009

Como últimamente esta de moda hablar del Rey del Pop, en este blog no vamos a hacer la excepción, esto para evitar mensajes molestos xD. Bueno la verdad es que no voy a hablar solo mostrare un aplicación que se a hecho con DeepZoom sobre Michael que se ve bastante interesante aquí unas imágenes y al final el link.

image

image

image

 

URL: http://www.msn.michaeljackson.shoothill.com/

Etiquetas de Technorati: ,,




[Off - topic] Día del Ingeniero, espero que me regalen algo :P

1 07 2009

Hace mucho que no posteo, eso es porque estaba descansando en mi casa. El día de hoy regrese al trabajo y me encuentro con que es día del Ingeniero (de haberlo sabido antes me tomaba otro día de descanso), pero bueno mis amigos de beatandbyte colocaron un post muy agradable, a ver que les parece, seguro habrá cosas que no entiendan (a menos que sean ingenieros) pero vaya mínimo uno que otro va a reírse un rato. Y como buen ingeniero aquí la copia de este post.

Muchas felicidades a todos los Ingenieros en su día, aquí les comparto algunos chistes para que se relajen un momento y sonrían.

Pásensela muy bien, ¡se lo merecen!

ingenieros

En una fiesta de funciones está bailando ’seno de x’ con ‘coseno de x’, ’seno de x’ se da cuenta de que ‘e a la x’ esta sentado solo a un costado de la pista. Entonces se le acerca amigablemente y le dice: Ven a bailar, INTEGRATE !!!, y el le responde: No, para qué? ! Si da igual !!

Que es un niño complejo? Un niño con la madre real y el padre imaginario.

Dios es real, a menos que sea declarado entero

Jesús hablaba a sus discípulos: En verdad os digo: y=x2+3x+4!!!! Los discípulos empiezan a hablar entre sí hasta que Pedro se dirige a Jesús y muy apesadumbrado le dice: Maestro no entendemos…. Tranquilos, es una parábola!!!!

Comprendiendo a los Ingenieros – Parte 1

Dos estudiantes de ingeniería estaban caminando por el campus cuando uno de ellos dijo:

‘¿De dónde sacaste esa magnifica bicicleta?’

El segundo contestó:

‘Bueno, Yo estaba caminando por ahí ayer, pensando en mis trabajos, cuando una hermosa mujer apareció sobre esta bicicleta. Tiró la bici al suelo, Se quito toda su ropa y me dijo: ‘Toma lo que quieras’.

El segundo ingeniero cabeceó afirmativamente: ‘¡Buena elección! ¡La ropa probablemente no te hubiera quedado bien!

Comprendiendo a los Ingenieros – Parte 2

Para el optimista, el vaso está medio lleno; Para el pesimista, el vaso está medio vacío Para el ingeniero, el vaso es el doble de grande de lo que debería ser

Comprendiendo a los Ingenieros – Parte 3

Un ingeniero caminaba un día por la calle, cuando un sapo lo llamó y le dijo ‘Oye, Si me besas, me volveré una hermosa princesa’. El ingeniero se inclinó, tomó el sapo y se lo metió en el bolsillo. El sapo volvió a hablar, y dijo: ‘Si me besas para que me vuelva una hermosa princesa, me quedaré contigo durante una semana’. El ingeniero sacó el sapo del bolsillo, le sonrió y lo volvió a guardar ahí. Entonces el sapo gritó: ‘Si me besas y me vuelvo una hermosa princesa, me quedaré contigo y haré CUALQUIER COSA que quieras’. Otra vez el ingeniero sacó el sapo, le sonrió y lo devolvió al bolsillo. Finalmente el sapo preguntó: ‘¿Qué pasa? Te dije que soy una hermosa princesa, que me quedaré contigo por una semana y haré lo que quieras. ¿Por qué no me besas?’ El ingeniero dijo: ‘Mira, soy un ingeniero. No tengo tiempo para chicas, pero un sapo que hable: ¡¡ eso si que es interesante!!’

HAY QUE ENTENDER A LOS INGENIEROS!

Un Ingeniero no es que sea prepotente… ¡Es que está rodeado de inútiles!
Un Ingeniero no tiene el ego muy grande…¡Es que el cuarto es muy chiquito!
No es que quieran tener la razón siempre… ¡Es que los otros siempre se equivocan!
Un Ingeniero no es que carezca de sentimientos… ¡Es que los otros son unos maricones (como billy mariquetas)!
Un Ingeniero no tiene vida desorganizada… ¡Es sólo que tiene un ritmo de vida particular!
Un Ingeniero no ve el mundo… ¡Lo cambia!
Un Ingeniero no es que sea un crecido… ¡Es que los simples mortales no lo comprenden!
Un Ingeniero no es un ser calculador y frío… Simplemente, le parece divertido pasar por encima de la gente común.
Un Ingeniero no es un enredador…¡Es que los usuarios no entienden nada!
Un Ingeniero no es un crítico… ¡Es que los errores de la gente son muy evidentes!
No es que el trabajo los absorba es que… ¿De qué carajos estaba hablando?
Un Ingeniero no comete errores… ¡Sólo prueba si los demás estaban prestando atención!
No es que se crean la gran cosa… ¡¡¡ ES QUE LO SON!!!
Pero recuerden: ser tan cercano a la perfección tiene sus problemas, así que los que no son ingenieros entiendan a estas tristes almas torturadas entre la genialidad y la incomprensión.

JERARQUIAS.
Recuerda que en la vida hay jerarquías y son estas:
1er. Lugar Esta DIOS (El todo poderoso, pues quien más podría tener
tanta genialidad para  crear todo el universo y a los seres vivos
y todo lo que existe alrededor)
2do. Lugar Agüevo los Ingenieros (Los que son MAS que un Mortal pero
menos que un DIOS)
Y en 3er Lugar, pos ya cualquier mediocre (no les quedaba de otra 
jaja. Que podían esperar estos Mortales)

 

Espero sus comentarios, y claro sus regalos, mínimo voten por el Blog, Saludos desde mi trabajo :P





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

19 06 2009

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 :D

Etiquetas de Technorati: ,,,,,




[IE8] WebSlice del blog del Nor xD

19 06 2009

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="http://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(http://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 :P

 

Etiquetas de Technorati: ,,,,




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

11 06 2009

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 :D

Saludos!!

Etiquetas de Technorati: ,,




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

10 06 2009

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: ,




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

3 06 2009

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

3 06 2009

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 :P

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

Saludos!!





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

2 06 2009

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.





[IE8] IE8 disponible en 20 idiomas más

2 06 2009

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: ,




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

2 06 2009

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: ,,




[Xbox] Project Natal – Wow

2 06 2009
Etiquetas de Technorati: ,,




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

2 06 2009

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: ,,,,




[Xbox] Project Natal

2 06 2009

 

 

 

 

 

 

 

 

 

 

 

 

 

Etiquetas de Technorati: ,





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

1 06 2009

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í:

http://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.





[Blog] Como Votar por este Blog en el concurso de BlotIT

30 05 2009

Este blog esta participando en la categoría de Internet Explorer 8, lo que quiere decir que van a ver muchos más post sobre este nuevo explorador de Microsoft. Pero en este post los mostrares como Votar.

1.- Hacer clic en la imagen derecha de BlogIT que se encuentra a en la barra de los Widgets.

image

Esto hace que se abra una nueva pestaña o una nueva página si es que aun usan IE6 (xD).

2. En la página que se muestra en el Explorador busquen el blog de http://mspnor.wordpress.com y hagan clic en votar:

image

3. Se muestra un pantalla en donde tienes que introducir tu correo y luego haces clic en Aceptar.

image

BlogIT nos muestra un  mensaje en donde nos dice que se ha enviado un mail a nuestro correo el cual debemos confirmar para que se cuente nuestro voto :D .

image

4. Solo falta confirmar el correo que nos envió el equipo de BlogIT, para esto nos vamos a nuestra bandeja de entrada (EN ALGUNOS CASOS SE ENCUENTRA EN LA CARPETA DE CORREO ELECTRONICO NO DESEADO), lo buscamos

image

5. Abrimos el correo que tiene como asunto: Validación de tu voto en BlogIT y damos clic en la dirección

image

Esto provoca que se abra de nuevo la página de BlogIT y nos muestra un mensaje que nuestro voto fue contabilizado :D .

 

Espero que esta guía les sirva para votar por este Blog, espero que todos aquellos que se toman un tiempo para leer este blog tomen un poco de su tiempo para votar por el en este concurso.

 

Saludos!!