miércoles 8 de julio de 2009

Webcasts de .Net en español

Me aproveché de robar estos links a webcasts sobre .net  en español que están muy buenos:

Silverlight 2 & 3

SQL Server 2008

Windows Azure

Microsoft Office SharePoint Server 2007

Windows Mobile 6.x

Managed Code Development for Windows Mobile 6.x

Desarrollo Web

Arquitectura

Visual Studio Team System

Los links son de:

http://geeks.ms/blogs/ciin/archive/2009/07/05/webcasts-a-tutipl-233-n-y-en-castellano.aspx

Saludos.

martes 2 de junio de 2009

RegisterStartupScript y RegisterClientScriptBlock

Ayer estuve peleando un rato tratando de hacer que un script de JavaScript se ejecutara al cargar la página y como siempre traté de usar las famosas rutinas que provee Asp.Net para estos casos pero hace tiempo que no las usaba y tuve algunos problemillas que revisaré ahora.

En primer lugar los métodos RegisterStartupScript y RegisterClientScriptBlock ya no pertenecen directamente a la página (fueron desechados de esta ubicación) y deben ser llamados directamente desde una nueva clase encargada de estos scripts llamada ClientScript y que es parte de la misma página (Page.ClientScript).

En segundo lugar ahora podemos preguntar si el script ya ha sido agregado a la página para no estar re-creándolo de nuevo mediante el método IsStartupScriptRegistered.

Finalmente recuerdo haber usado antes casi siempre el método RegisterClientScriptBlock para registrar mis scripts en el lado del servidor y en el caso que estaba probando necesitaba que el script se ejecutara durante la carga de la página pero al usar este método la llamada al script se dibujaba antes que los elementos de la página estuvieran dibujados por lo tanto no hacía nada y me tiraba un error de JavaScript.

Averiguando la otra alternativa siempre era usar RegisterStartupScript pero no tenía clara la diferencia, y en mi caso éste método efectivamente funcionaba como yo quería porque la forma en que se dibuja en la página es distinta a RegisterClientScriptBlock.

Básicamente las diferencias entre ambos métodos radican en la posición en la que se dibujan los scripts solicitados, para ver como funciona aquí tenemos una llamada a ambos métodos en el code behind de una página de ejemplo (Default.aspx.cs):

protected void Page_Load(object sender, EventArgs e)
{
if(!ClientScript.IsClientScriptBlockRegistered("RegisterClientScriptBlock"))
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "RegisterClientScriptBlock", "document.write('RegisterClientScriptBlock');", true);

if (!ClientScript.IsStartupScriptRegistered("StartupScriptRegistered"))
Page.ClientScript.RegisterStartupScript(this.GetType(), "StartupScriptRegistered", "document.write('StartupScriptRegistered');", true);
}

Para el ejemplo usamos la siguiente página (Default.aspx):

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>Contenido</td>
</tr>
</table>
</div>
</form>
</body>
</html>

Al ejecutar la página podemos ver el siguiente resultado en el navegador:

RegisterClientScriptBlock
Contenido
StartupScriptRegistered
Si revisamos el código Html generado podemos ver cómo el método RegisterClientScriptBlock dibuja el contenido al principio de la página después del Form y del ViewState, también podemos ver cómo el método RegisterStartupScript dibuja el contenido solicitado al final de la página justo antes de cerrar el Form con lo que nos aseguramos que la página ya ha sido dibujada en el cliente antes de ejecutar el script que deseamos correr.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
</head>
<body>
<form name="form1" method="post" action="Ejemplo.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGT4JJog3qP93QeYemlckRLadGZVuw==" />
</div>
<script type="text/javascript">
//<![CDATA[
document.write('RegisterClientScriptBlock');//]]>
</script>
<div>
<table>
<tr>
<td>Contenido</td>
</tr>
</table>
</div>
<script type="text/javascript">
//<![CDATA[
document.write('StartupScriptRegistered');//]]>
</script>
</form>
</body>
</html>

Saludos.

viernes 27 de marzo de 2009

Ya soy MCTS en SQL 2005

Así es después de comprar el libro en Noviembre del año pasado y dejarlo botado por las vacaciones y fiestas de fin de año finalmente me puse las pilas durante este último mes y medio (las últimas 2 semanas fueron de repaso como siempre) y hoy me presenté a dar el examen 70-431 (SQL Server 2005 Implementation and Maintenance) y afortunadamente lo aprobé sin mayores problemas.

El examen se divide en 2 partes:

  • La primera consta de un set de 35 preguntas con alternativas y varias son de selección múltiple, el tiempo para responder era poco más de una hora según recuerdo.
  • La segunda consta de 12 simulaciones donde se plantea una situación y luego se presentan ciertas ventanas como si estuviéramos en el PC y debemos realizar algunos cambios para satisfacer la situación planteada, para esta etapa era alrededor de 1 hora y media de tiempo disponible.

Como recomendación puedo decir que el libro cumple con el examen, o sea si leen bien el libro pueden estar tranquilos, tal vez se podría haber profundizado un poco más el tema de los endpoints pero el resto está todo en el libro.

Temas a considerar y repasar bien antes del examen:

  • Manejo de backups.
  • Restauración desde backups.
  • Http Endpoints.
  • Manejo de los componentes de un Service Broker (Queue, Mensaje, Contrato, Servicio).
  • Creación y mantención de índices.
  • Manejo de triggers y mantención de vistas.
  • Manejo de replicación, log shipping y mirroring.
  • Creación de Bases de Datos.
  • Monitoreo de procesos y transacciones.

Creo que eran más o menos esos, como siempre el repaso es fundamental para abarcar todo el examen.

Ahora ya puedo usar el siguiente logo:

MCTS_SQL

Que se viene ahora ? Pues el cambio a tecnologías 2008 y para comenzar ya mandé a pedir los siguientes libros:

MCTS Self-Paced Training Kit (Exam 70-502): Microsoft® .NET Framework 3.5 Windows® Presentation Foundation

Para comenzar a trabajar con WPF y ver que cosas nuevas puedo incorporar al trabajo orientado a la capa presentación.

Pro Silverlight 2 in C# 2008 (Windows.Net)

Para dedicarme a este interesante tema que al parecer dará mucho que hablar en el futuro dado el avance que ha tenido en el último tiempo.

Como vemos me dedicaré por completo al área de interfaces de usuario en los próximos meses, después tal vez siga con Asp .Net 3.5 y cosas así, ya veremos…

Saludos.

viernes 20 de marzo de 2009

Asp .Net MVC 1.0 versión Release liberada

Para los que se mueven con el Modelo Vista Controladormvc2 (MVC)   en .Net les comento que en el Mix 09 ya ha sido liberada la versión Release 1.0 de este famoso Framework de trabajo.

Requerimientos:

  • Windows XP, Vista, Server 2003 o 2008.
  • Visual Studio 2008 con SP1.
  • Framework .Net 3.5 con SP1.

Este es uno de los temas que tengo pendientes dentro de mi agenda de estudio y cláramente va a ser uno de los que más va a dar que hablar este año y los que vienen por lo tanto es algo que hay que tenerle el ojo encima.

Lo pueden descargar desde aquí.

Pd.: Estoy en el repaso del examen 70-431 esta semana y la próxima, seguramente el viernes que viene daré el examen.

martes 10 de marzo de 2009

Unos buenos trailers

Aprovechando el impulso, aqui van unos interesantes trailers:


Transformers 2, fecha estimada de salida 24 de Junio 2009. Se ve bien pero ojalá sea mejor que la primera aunque todavía no me terminan de convencer los nuevos diseños con tantos fierros mezclados:



X-Men Origins: Wolverine, fecha estimada de salida 1 de Mayo 2009. Una buena forma de alargar la vida útil de la saga de los X-men con el que tal vez sea su personaje más carismático, el trailer al menos se ve bastante interesante:



Dragon Ball, fecha estimada de salida 8 de Abril 2009. La verdad no se que pensar de esta película pero tiene toda la pinta de ser un bodrio, esperemos que no sea una DragonFail.



Terminator: Salvation, fecha estimada de salida 21 de Mayo 2009. Se ve bastante bien y por fin le dieron el bajo a Arnoldo LotaSchuager, ahora Batman (Cristian Bale) salvará al mundo pero podrá salvarse él?



Watchmen, ya fué estrenada el 6 de Marzo (ya la vi). Basada en la novela gráfica de Alan Moore y considerada una de las mejores novelas gráficas de todos los tiempos, la película condensa a la perfección los 12 tomos del cómic y es una película de las que hay que ver si o si. Como referencia recomendaría leer primero el cómic el cual se puede encontrár aquí.

lunes 9 de marzo de 2009

Wrong: El último single de Depeche Mode

Bueno, para variar un poco quería poner algo de música también y aprovecharé la ocasión para poner el video del último single de Depeche Mode llamado Wrong.

El nuevo album tiene fecha para el 21 de Abril y se llamará Sounds of the Universe y corresponderá al album de estudio número 12 de la ya larga carrera de este grandioso grupo, esperemos que no sea el último.

A disfrutar del nuevo video:

miércoles 25 de febrero de 2009

El nuevo look de Visual Studio 2010

Cuando todavía ni siquiera he podido dedicarme a sacarle el jugo a Visual Studio 2008 ya podemos ver como viene parte de la interfaz de lo que será el nuevo Visual Studio 2010 la cual ha sido desarrollada con Windows Presentation Foundation (WPF).

Como podemos ver en esta imagen necesitaremos nuevos monitores más descentes para sacarle el jugo a la nueva UI (con esto me refiero a aquellos que todavía usamos monitores de 14” en el trabajo).

DvX_ShellBase_2

Como podemos ver en esta imagen a continuación se ha agregado un soporte para documentos flotantes, ideal para quienes usan más de un monitor para desarrollar.

DvX_ShellFloatWide_thumb

En esta imagen podemos ver que se indica con un pequeño triangulo las partes con código colapsable y con distintos colores los cambios que se han hecho.

image_thumb_1

Acá podemos ver los cambios que se han hecho a la nueva creación de proyectos y selección de templates, la cual incluye el uso del nuevo FrameWork 4.0 como alternativa.

image_thumb

Finalmente acá podemos ver que han decidido incluir el uso de extensiones mediante un Extension Manager, lo cual me parece excelente para personalizar o extender las capacidades del Visual Studio.

image_thumb_2

Espero tener la oportunidad de ponerle las manos encima cuando salga, hasta ahora se ve bastante bien.

Saludos.

martes 10 de febrero de 2009

¿Que hacer cuando ves que te vas quedando obsoleto?

Ya de vuelta de vacaciones por el sur de Chile y con las pilas algo disquete-w98 recargadas me empiezo a planificar para lo que pretendo hacer este año donde posiblemente saque la certificación de SQL 2005 que dejé pendiente el año pasado y siga con las de VS .Net 2008 (FW 3.5, SilverLight, etc.).

Por mi mente empieza ya a inquietarme la idea de seguir trabando este año con VS .Net 2005 y el FW 2.0 y no ver mayores expectativas a mediano-largo plazo que la cosa vaya a cambiar.

Claro, siempre puedo estudiar por mi parte, sacar certificaciones, crear proyectos de prueba y todo eso pero la práctica que da el trabajar con las nuevas tecnologías en el día a día es la que finalmente te va dejando en claro todos las mañas y trucos que se deben aprender para hacer que las cosas funcionen como corresponde, además no puedes llegar y poner en el currículum que has trabajado en estas nuevas tecnologías aunque te hayas certificado en ellas.

Frente a esta problemática a simple vista se presentan algunas opciones inmediatas:

  • Buscar otro trabajo: No es lo ideal ya que pierdes la antiguedad y las regalías que tienes en tu trabajo actual (pensando que estamos en tiempos de crisis), pero es la solución más directa y rápida.
  • Cambiarte de proyecto o área: Sería una buena opción si la empresa fuera lo suficientemente flexible para enviarte a otro proyecto o área que esté usando nuevas tecnologías y requiera gente o vea que tienes motivación y puedes aprender rápido, lamentablemente no conozco empresas de este tipo y en la que me encuentro actualmente se ve bastante lejana esta posibilidad (más que nada por un tema de apatía hacia los empleados).
  • Trabajar “por fuera”: También conocido como “pitutear”, es una buena opción pero un poco lejana ya que este tipo de trabajos es difícil que salgan rápido y normalmente piden plazos muy ajustados por lo que tratar de aplicar tecnologías nuevas sobre la marcha puede traer resultados nefastos y en estos casos es mejor irse a la segura.

Otra posibilidad sería proponer dentro de tu empresa algún proyecto que incorpore estas nuevas tecnologías pero disfrazado como una posible necesidad para la empresa, normalmente sería bien visto pero existe el riesgo que te miren con cara de “y si tienes tiempo libre para ver esas cosas porqué mejor no te apuras en sacar tu trabajo antes?”.

En fin, ya se viene Visual Studio 2010 y no pretendo seguir eternamente con VS 2005, veremos que pasa durante este año.

Saludos.

jueves 4 de diciembre de 2008

Personalizar la apariencia del Visual Studio

Normalmente no me preocupo mucho del cómo se temave mi Visual Studio pero un cambio de vez en cuando no viene mal, en esta ocasión aprobeché de cambiarle un poco la apariencia y quedó bastante bien.

La idea es simple, visitamos el sitio de Scott Hanselman (aqui) y veremos que hay varios temas que él propone para probar, seleccionamos uno y lo descargamos (son livianos, alrededor de 50-100Kb).

Lo descomprimimos y luego abrimos nuestro Visual Studio, una vez abierto seleccionamos la opción Tools y luego Import and Export settings… y luego veremos esta pantalla:

image

Le damos a Next y veremos esta pantalla donde podremos respaldar nuestros seteos actuales antes de importar los nuevos:

image

Le damos a Next y llegaremos a esta pantalla donde podremos seleccionar los nuevos seteos:

image

Le damos a Browse y buscamos los seteos que habíamos descargado y descomprimido (el archivo con extensión .vssettings).

image

Le damos a Next y llegaremos a una pantalla donde podremos elegir si queremos importar todos los nuevos seteos o sólo algunos.

image

Cuando estemos listos le damos a Finish y listo, puede que el wizard detecte algunos errores ya que algunos seteos vienen con elementos predefinidos que puede que no tengamos en nuestro sistema pero no nos afectará.

Finalmente abrimos o creamos algún proyecto y listo ya tenemos los nuevos seteos funcionando en nuestro Visual Studio, si queremos cambiar la apariencia repetimos el proceso hasta encontrar alguna que nos acomode.

Saludos.

lunes 24 de noviembre de 2008

Estudiando para el examen 70-431

Así es, la semana pasada comencé a estudiar para el examen sobre  Sql 2005 70-431 (SQL Server 2005 Implementation and Maintenance).

Hasta el momento se ve interesante, bastánte práctico y con unos cuantos tecnicismos aunque de seguro irá cambiando en la medida que avance, son 21 capítulos divididos en 838 páginas (en inglés) y el examen se divide en 6 áreas principales.

Se siente un poco raro intentar sacar una certificación alejada de todo lo que es el tema del desarrollo (en realidad la certificación está más bien orientada a los DBA) pero creo que me servirá para reforzar los conocimientos que tengo actualmente de SQL y resolver unas cuantas dudas que he ido arrastrando hasta el momento.

Espero estar dando el examen de aquí a fines de Diciembre (si, no es el mejor momento dadas las fiestas de fin de año) si es que todo sale bien.

Ahora, ¿porqué sacar la certificación de Sql 2005 y no la de 2008? pues porque el libro me había llegado hace un tiempo y sería un desperdicio no ocuparlo, además que una certificación de SQL nunca viene mal y creo que ésta tendrá una vigencia de algunos buenos años todavía.

En general el próximo año pienso empezar a sacar las certificaciones relacionadas con el Framework 3.5 y Visual Studio 2008 (como la de WPF), pero por ahora terminaré con ésta de SQL 2005 para ver que tan difícil es.

Ah y también trataré de mantener más actualizado el Blog ya que lo tengo bastante botado en general por falta de ánimo y exceso de sueño :)