[IE8] Nuevos Tutoriales para Desarrolladores

25 07 2009

Como desarrollador, no puedo negar que en el desarrollo web tenemos que lidiar con la estandarización, sobre todo con las hojas de estilos (CSS), y ahora con el nuevo IE8 al menos yo tengo algunas diferencias con estos  entre un explorador y otro, bueno a lo que voy, recientemente se ha publicado una serie de tutoriales en la página de MSDN aun lo estoy revisando, ya que precisamente estoy iniciando con el desarrollo de un nuevo sistema, que ya les platicare después lo que vaya aprendiendo.

Por el momento me es grato compartir con ustedes esta información, y aquí la tienen:

Herramientas de desarrollo para IE8

http://msdn.microsoft.com/en-us/library/dd565622(VS.85).aspx





[Office] Office 2010 The Movie

18 07 2009

 

Etiquetas de Technorati: ,,




[Futbol] El Tri te necesita… Pon a ‘San Temo’ de cabeza

18 07 2009

Desde siempre me ha gustado el futbol, mucho tiempo he jugado y como la mayoría en México tengo un equipo favorito (el Atlas). El objetivo de este post es para difundir un post que encontré en la página de http://www.mediotiempo.com/ la verdad es que me causo un poco de risa, y la verdad tengo que decir que me considero fan del Temo, y aquí mi contribución a difundir el mensaje Pon a ‘San Temo’ de cabeza aquí el post:

  • "San Temo" es la máxima esperanza mexicana para llegar a Sudáfrica

En la vida y el futbol todo está permitido. En Medio Tiempo, hemos decidido colaborar con la Selección Mexicana en su búsqueda por clasificar a la Copa del Mundo Sudáfrica 2010. En tiempos tan complicados, no hay más alternativa que recurrir a cualquier instancia para que el equipo de más de cien millones de mexicanos cumpla con su objetivo, de ahí que a partir de este día ponemos a “San Temo” de cabeza.

san-temo_1

“San Temo” es nuestra máxima esperanza para acceder a la máxima justa balompédica del orbe. Te invitamos a que coloques su imagen en foros, redes sociales, Messenger y cualquier otro medio de comunicación que contribuya a fortalecer el sentido de unión y esperanza que sólo el santo oriundo de Tepito puede darnos.

Ayúdanos a poner a “San Temo” de cabeza. Prepárate, porque no sólo nos ayudará a clasificar al Mundial; también te abrirá la puerta para ganarte premios especiales.
A partir de hoy, todo México pone a “San Temo” de cabeza.

Saludos!!





[ASP.NET] Ejecutando código JavaScripts desde HTML ó desde Code-Behind

17 07 2009

Creo que la mayoría sabemos que en el desarrollo Web siempre hacemos uso de los scripts y creo que todos hemos tirado mínimo una función de Javascript así que este post trata de como trabajar con estos script en ASP.NET.

1.- Escribiendo Javascript desde el HTML y llamándolo desde el Code-Behind.

Código HTML

<script type="text/javascript" >
    function validarTextbox(){
        if (document.forms[0].txtNombre.value == "") {
            alert('El Cuadro de texto no puede estar vacio');
            return false;
        }
        return false;
    }
</script>

Llamándolo desde el Code-Behind

protected void Page_Load(object sender, EventArgs e)
{
    btnAceptar.Attributes.Add("onclick", "javascript:return validarTextbox();");
}

2. Escribir y llamar una función Javascript desde el Code-Behind

protected void Page_Load(object sender, EventArgs e)
{
    //cadena que contiene el script a ejecutar
    string stringJavascript;
    stringJavascript = "<script language=\"javascript\"> function poponload(){\n";
    stringJavascript += "testwindow = window.open(\"demo.htm\",\"Window\");\n";
    stringJavascript += "testwindow.moveTo(0,0);\n";
    stringJavascript += "return false;}";
    stringJavascript += "</script>";
    //registramos el script
    ClientScript.RegisterStartupScript(this.GetType(), "strJavascript", stringJavascript);
    //lo asignamos al evento del boton
    btnAceptar.Attributes.Add("onclick", "return poponload()");
}

3.- Escribir Javascript desde el Code-behind y llamarlo desde HTML

Código en el lado del Servidor

protected void Page_Load(object sender, EventArgs e)
{
    string jscript = string.Empty;
    jscript = "<script language=\"javascript\">function Mensaje(){alert" +
        "(\"Client Function in javascript is call\")}</script>";
    ClientScript.RegisterStartupScript(this.GetType(), "sJscript", jscript);
}

Llamándolo desde HTML

<a onclick="Mensaje();">
    <asp:Label id="Label1" runat="server" Width="281px" ForeColor="#8080FF">
        Clic para llamar a la función del Code-Behind
    </asp:Label>
</a>

4. RegisterClientScriptBlock

Esto lo podemos usar si es que no necesitamos que se ejecute una función que creamos, sino solo una parte de un script, aquí el como hacerlo:

Si queremos mostrar una alerta podemos hacer lo siguiente, en el HTML escribimos:

<script language="javascript">
    function mensaje() {
        alert("funcion llamada desde el Code-Behind");
    }
</script>

y si lo queremos ejecutar desde el Code-Behind según lo que escribí arriba sería así:

 

protected void Button1_Click(object sender, EventArgs e)
    {
        ClientScript.RegisterStartupScript
            (this.GetType(), "jsKey", "javascript:mensaje();", true);
    }

Pero si se dan cuenta aquí solo es un código Javascript relativamente corto, entonces aquí es donde podemos usar RegisterClientScriptBlock y para ello lo hacemos así:

protected void Button2_Click(object sender, EventArgs e)
{
    ClientScript.RegisterClientScriptBlock
        (GetType(), "javascript", "<script>alert(" +
        "\"Este es un Bloque de código javascript \")</script>");
}

Actualización: 2 horas más tarde :P

5. Registrar el script en el evento Load en el Header de nuestra página:

por lo regular cuando agregamos un script solo lo arrastramos desde el explorador de soluciones al Header de nuestra página y nos genera código HTML más o menos así:

<script src="js/mensaje.js" type="text/javascript"></script>

Pero si se han dado cuenta la etiqueta Head en asp.net tiene un atributo runan=”server”, lo que significa que podemos manipularlo desde el Code-Behind lo que nos permite registrar un script desde el lado del servidor, aquí el como hacerlo, primero creamos una función que se llama RegistrarScript:

private void RegistrarScript()
{
    HtmlGenericControl script = new HtmlGenericControl("script");
    script.Attributes.Add("type", "text/javascript");
    script.Attributes.Add("src", "js/mensaje.js");
    Header.Controls.Add(script);
}

Aquí nos indica que en nuestro proyecto tenemos un Javascript llamada “mensaje.js” dentro de una carpeta llamada js. Este método lo ponemos dentro del evento load de nuestra página:

protected void Page_Load(object sender, EventArgs e)
{
    RegistrarScript();
    Button1.Attributes.Add("onclick", "javascript:return mensaje()");
}

Y de esta manera podemos registrar también nuestros script, e incluso las hojas de estilo.

Saludos.

Etiquetas de Technorati: ,,





[IE8] No es problema de IE8 ni de JQuery

17 07 2009

Bien el día de ayer escribir este post en donde comente un detalle que tenia con IE8 aquí el post http://mspnor.wordpress.com/2009/07/16/ie8-problemas-con-jquery/, argumentando que el código no funcionaba en IE8, bueno el problema no es de Internet Explorer 8 ni de JQuery, fue mío por no leer y no entender del todo el código :S, bueno el problema lo resolví solo modificando una línea de código que fue esta:

Código original:

$(".filtrar tr:hidden").show(); 

Código modificado:

$(".filtrar tr").show();

Con esto solucione el problema que me pasaba con Internet Explorer 8 y el backspace en cuando no activa baba el modo de compatibilidad. Escribo esto por si alguien hace uso de este código y tiene el mismo problema.

Saludos.

Etiquetas de Technorati: ,




[IE8] Problemas con JQuery

16 07 2009

La verdad que JQuery nos hace la vida más fácil, pero hay cosas que no van del todo bien con IE 8 :S, ¿por qué? la verdad no se, pero les pongo el caso y ustedes me dicen:

La situación es la siguiente en Internet esta un script de JQuery para hacer búsquedas en un GridView, mi referencia de este script es la siguiente:

http://geeks.ms/blogs/gperez/archive/2009/05/22/tips-filtrar-un-gridview-con-jquery-al-presionar-una-tecla.aspx

Por si gustan revisar, bueno copie el código lo entendí y puse a prueba con un ejemplo, el problema que sucede conIE8 es que con el modo compatibilidad funciona perfecto, pero sin la compatibilidad no :S.

El código del JQuery es el siguiente:

<script language="javascript" type="text/javascript">
      $(document).ready(function() {
            //agregar una nueva columna con todo el texto
            //contenido en las columnas de la grilla
           // contains de Jquery es CaseSentive, por eso a minúscula 

      $(".filtrar tr:has(td)").each(function() {
      var t = $(this).text().toLowerCase();
                $("<td class='indexColumn'></td>")
                .hide().text(t).appendTo(this);
            }); 

            //Agregar el comportamiento al texto (se selecciona por el ID)
                $("#txtBusqueda").keyup(function() {

                var s = $(this).val().toLowerCase().split(" ");

                $(".filtrar tr:hidden").show(); 

                $.each(s, function() {
                     $(".filtrar tr:visible .indexColumn:not(:contains('"
                     + this + "'))").parent().hide();
                });
            });
        }); 

     </script> 

La función que hace que cuando presionemos el backspace se muestren los registros que coinciden con lo que s escribe es la siguiente:

 

$(".filtrar tr:hidden").show(); 

Pero ya les dije que no me funciona. Si alguien puede echar un cable sobre esto bienvenidos sean sus comentarios, aquí les dejo el proyecto.

image

Etiquetas de Technorati: ,,




[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