Ideas, vivencias y demás
Peru Blogs

August 2, 2008

Evento OnChanged del TextBox ASPX

Filed under: C#, Programación

Hablamos de C# 2008 y el PropertyProxyValidator del Enterprise Library 4.0, y esto es una nota para cuando me olvide como funcionaba esto jeje.

Bueno, pues estaba queriendo que en el evento TextChanged del TextBox se lanzara la validacion de la caja de texto, la cual esta amarrada a un validador: PropertyProxyValidator, todo esto esta dentro de un update panel.

Resultaba que no se mostraba el mensaje de error, por demas que escribia caracteres o le quitaba el foco al textBox. Revisando un poco el evento, aprendi que este no se dispara sino le pones AutoPostBack a True para que al perder el foco se lance el Evento. Sin embargo, aun luego de esto aun no se lanzaba la validacion, y era porque era necesario ponerle a la caja de texto CausesValidation a True. Entonces, la solucion queda asi:

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"
                AutoPostBack="True" CausesValidation="True"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
            <cc1:PropertyProxyValidator ID="PropertyProxyValidator1" runat="server"
                ControlToValidate="TextBox1" PropertyName="aApellidoPaterno"
                SourceTypeName="Logica.Clases.Comun.Persona">
            </cc1:PropertyProxyValidator>
        </ContentTemplate>
    </asp:UpdatePanel>

Y listo, ahora a dormir que mañana hay que trabajar todabia, tmr ×D

April 16, 2008

Untitled

Respecto del post anterior, pues vale la pena resaltar que se repitiò el plato hehehe.

Ahora, ando en una disyuntiva: PHP5 o C#3…  Para nuevos proyectos, y seguir aprendiendo, no se sobre cual trabajar. Veo de momento más oferta laboral para C#, aunque para el 2; sin embargo coger C#3 implicarìa levantar el VS2008, y por ende actualizar en por lo menos RAm a mi carcacha. De otro lado, PHP es free as freedom, liviano, y me hace sentir mejor cuando desarrollo sobre él, aunque lo que haga no se aun proyecto para la comunidad, el sólo hecho de usar software libre me parece que ya es apoyarla.

Qué hacer. De momento para un proyecto nuevo, que podría durar muy poco dependiendo de si se logra o no convencer al cliente xD, estoy pensando usar PHP5, con QCODO, mas MSSQL 2005. ¿Por qué MSSQL 2005? Pues me parece que el Reporting Services es una herramienta muy facil de usar par agenerar reportes, y de una curva de aprendizaje relativamente corta. Estuve leyendo primero la forma de trabajar con reporteadores o herramientas para la construcciòn de reportes con MySQl, pero a mi parecer y dado que ya lo vengo utilizando en mi trabajo, usar RS me será más productivo.

Ahi nos vimos. 

March 28, 2008

Spaminator, a mi no!

Pues, en este post que escribí, Sergio realizo un comentario, pero como tenía muchos enlaces, pues el spaminator lo bloqueo ^^. Aqui reproduzco su mensaje, pues lo considero de utilidad ;)

Hola Marcel, pues creo que este tipo de experiencias son las que te hacen aprender :D . Personalmente me gustan las experiencias de pase a producción por que siempre puedes aprender algo nuevo :D .

No se por que, pero siempre pasa algo falla en un deployment mas o menos real, y sólo te queda decir al jefe:pero en mi PC funcionaba. Siempre es bueno contar herramientas de depuración, una que me gusta y a veces no tengo que depurar usando VS es SQL Profiler.

Un comando para ver las conexiones abiertas es: exec SP_WHO, ten cuidado con la administración de conexiones que tambien te dar dolores de cabeza: using.

Y te dejo un resumen de interesante CheckList, con los pasos básicos antes de llevar de una aplicación web a producción, qué en general se puede aplicar para una aplicación web de cualquier tecnología.

Saludos, y buena con el blog :D

Pues, respecto del SQLProfiler, si, es basante útil, lo conocí mediante su blog hace algun tiempo, y me sirvió en varias cosas. Y respecto del comentario, la moraleja sería no poner tantos enlaces que el spaminator nos puede confundir jeje.

Saludos. 

 

March 14, 2008

Recontrachispoteado

Pues heme aquí, sonrojado y con el mea culpa mas sincero que se pudiera sentir… a narrar la historia.

Era temprano por la mañana, y un usuario se quejaba de que en el sistema no podía confirmar un movimiento. Revisando el log, decidí reproduir el error, realizando yo el movimiento, en coordinación con el usuario claro está. Para ello, y aprovechando para ver como se comporta la versión de desarrollo/pruebas que próximamente subirá a producción, decidí, solo por esta vez, conectar mi aplicación a la base de datos de producción (primer error: que me costaba hacer un backup, y probar en local, con la data actualizada).

Yacía probando el error, y revise nuevamente el log. En eso, que me requieren para alguna reunión, coordinaciones, etc., luego que otra cosa por aquí, otra por allá, y al cabo de un rato regreso a mi PC. ¿Cuánto rato fue?, pues lo suficiente para olvidar algunas cosas, como el hecho que había dejado mi app conectada a la BD de producción.

Bien, entonces dije, ajá!, mugre error, veré más allá de lo evidente, y depuraré paso a paso… en eso, me siguen interrumpiendo constantemente, y muy confiado, dejo la depuracion a medio hacer (segundo error!!!). Cuando tenia ratos libres, me iba con los F11 revisando sentencias, resultados y flujos en el código. Derredor de media hora despues, algunas quejas de usuarios, sobre el hecho que no podían sacar algunos reportes en pdf desde el sistema, constituyen el primer campanazo. Revisando el log, me indica que lo que sucede es que el IIS espera y espera, y como el MSSQL no le responde, o se tarda en hacerlo, expira la solicitud. En eso, me llegan algunas cosas mas que hacer, las cuales son de prioridad, y decido posponer para despues la incomodidad de los usuarios y sus reportes (tercer error!!!!).

Nos vamos a almorzar, y como parte del mantenimiento que le aplicamos al servidor web, por estas fechas, le dimos una reiniciada, aprovechando para la instalación de las últimas actualizaciones. Regresados del almuerzo, nos topamos con que el sistema está muy lento, no salen los reportes, ocurren errores cuando graban, etc etc… horror!!!… manos a la obra, veamos que pasa.

Todo estaba relacionado con el servidor de base de datos, pues el problema de hace rato, el de tiempo expirado, se repetía ahora para casi cualquier operación en el sistema. Analizamos la situación, y nos percatamos que justo en la mañana, habíamos conectado al servidor de base de datos un nuevo PC que se encuentra implementando los reportes y consultas en reporting services. Decidido!, desconectar eso, pues alguna vez me fije en que el repoting se encuentra constantemente enviando acuses de recibo al servidor (por lo menos así lo vi en una máquina de desarrollo alguna vez atrás).

Erradicamos el servicio y su conexión a nuestra BD y todo seguía igual. Reviso la actividad actual del MSSQL en el administrador corporativo (Administracion/Actividad Actual) y tarán!!!!, encuentro 4 conexiones abiertas desde mi PC. Regreso a mi PC y encuentro lo que esperaba, unos query analyzer que había abierto hace poco para solucionar una barrabazada de un usuario, y… y… y… y me topo con mi Visual Studio abierto y depurando paso a paso, pausado en la linea de codigo no se cuantito, y recuerdo que estaba apuntando a producción…

Siempre fui yo, desde el inicio había sido yo!. No recorde apuntar a la BD en local para depurar, y en primer lugar, nunca debí de apuntar a la BD de producción, pero lo hice, y aprendí la lección :D . Detuve la depuración, revise nuevamente la actividad actual en el servidor, y nos pusismos ha realizar pruebas en el sistema (léase generar reportes, revisar la velocidad de la carga, etc). TODO BIEN… es que, siempre fui yo, todo el tiempo fui yo.

Extendí las disculpas del caso a mis copmpañeros de labores dentro del área, y a los usuarios, pues les dijimos que Bla Bla Bla, Bla Bla Bla.

Moraleja: … pues hay muchas, para sintetizar: simplemente no hacer lo que yo hice :(  

February 24, 2008

Kumbia Loggers

Probando los logger en kumbia, me topé con que el apache no podía escribir el archivo. Entonces, y orientado por google, use el poderoso htop y encontre que el apache corre con le usuario www-data, entonces, no tuve más que poner

    $ sudo chown www-data logs

y listo, mi apache escribió mi log, un hola mundo de recuerdo ;)






















Get free blog up and running in minutes with Blogsome
Theme designed by Hadley Wickham