Evento en la Universidad del Bio-Bio 29 de Abril 2009!

Charlas del 29 de Abril en la Universidad del Bio-Bio a realizarse en el auditorio de la Facultad de Cs. Empresariales.

charlaubb

29 de Abril, desde las 11:00 am, XNA,PopFly,MVC, Pocket PC, Seguridad y más!

Las charlas se dividirán en tres bloques las cuales están distribuidas de la siguiente manera:
Bloque Mañana
11:00-11:45 Programa Académico de Microsoft, Gerardo Marchant, Microsoft Student Partner.
12:00-12:45 Introducción a Seguridad informática, Célula Fireguard, Universidad del Bío-Bío.
Bloque Tarde
14:45-15:30 Conectando un Pocket PC, Daniel Quiroz, Microsoft Student Partner
15:45-17:00 Desarrollando videojuegos con XNA, Célula Umbral, Universidad de las Américas.
Bloque Noche
17:40-18:05 PopFly, Facebook y Visual Studio, Leonardo Muñoz, Microsoft Student Partner – MCP
18:05-18:50 ASP.NET MVC 1.0, Gonzalo Pérez, MVP Microsoft – MCPD

Se sortearan de regalo:
Vouchers de certificacion Microsoft
Cuentas Dreamspark
Windows Vista

Nos vemos allá!
Saludos,
Gonzalo

De Mi Presentación en Flisol 2009 y como salí vivo.

 

100_1348

Me.HablandoSobreCodePlex.Enabled=True

Al principio estaba un poco nervioso por el tema de estar en FLISOL 2009 exponiendo sobre la relación de Microsoft con el OpenSource , charla enfocada desde el punto de vista de los Websites y sitios que giran en torno al Microsoft y el OpenSource, como CodePlex, Microsoft.com/opensource, etc. Además de proyectos OS que giran en torno a NET, como NUnit, Nant, Spring.NET ,SharpDevelop, ASP.NET MVC.

En lo personal estoy acostumbrado a dar charlas con una audiencia que si bien puede ser “neutra” en torno a Microsoft, esta vez era totalmente hostil (por suerte habían algunos Microsoft Student Partner de apoyo), también mi compañero de charlas , José Pino (JOIL), quien iba  hablar de MONO, era bastante agradable, así que me sentí con confianza de subirme al estrado y comenzar a hablar.

Todo bien, ignorando las pifias y las caras de desagrado cuando les dije “Defienden el Código Abierto, para poder modificarlo y todo eso verdad?, me parece fantástico, cuantos de ustedes realmente han  lo han hecho?, cuantos desarrollan software para vivir ,para pagar sus cuentas?” , solo 3 levantaron la mano (para la primera pregunta).  A los tres los conozco y los estimo bastante, los demás , les dije que sería bueno que se pusieran las pilas en ese tema, para que a bandera de lucha realmente los represente.

Luego hablo mi compañero de charla, JOIL un tipo agradable que habló de MONO, no me sorprendió algunas bromas sobre Windows y productos Microsoft  que sacaban aplausos con la clásica risa de los asistentes que iban con dardos, me las tomé con humor ya que era obvio en ese escenario que algo así ocurriera.

La Audiencia no me entendió cuando opiné sobre una muy buena DEMO de JOIL, creando una aplicación con SharpDevelop  , corriéndola en una máquina virtual sobre RedHAT y luego ejecutándola desde el propio RedHat con Mono, sobre un error de programación en donde dije “Era Método, no Propiedad”  sobre un error que había en la programación, y me pifiaron, ahí me di cuenta que la mayoría de la audiencia , no sabía ni  cero de programación.

Mi única broma fue preguntar si tenia licencia para esa maquina virtual, o era UE, a lo que me dijo que se lo había “conseguido”, jejeje, no fue una pregunta en mala onda, si no fue a modo de broma, a la audiencia tampoco le gustó.

Luego vino la ronda de preguntas, muy buena comunicación con JOIL, resolvimos dudas, estuvo entretenido, y se regalaron tazones y gorros con el logo de mono.

Quizás lo único triste, fue que supe que me iban a sacar de contexto y postear sobre ello, en un momento dije que en las casas de estudio debían enseñar un amplio abanico de tecnologías, que no servía un profesor talibán que solo enseñaba Linux y hacía creer que es la única solución, si no que debía ser abierto, ya que perjudica a los alumnos en su posibilidad de acceder a trabajaos, lo mismo del otro lado de la trinchera, y escuché comentarios como “woo!!!, como puede decir este tipo que habla de Microsoft que no todo es Microsoft, hay que postearlo” y cosas así, también cuando se hizo la pregunta sobre Mono y comentamos que se podía escribir código con el notepad o vim (depende de la plataforma) y que no era no importante (en ese contexto) el IDE, (hablando de ShapDevelop) pero si necesitabas algo realmente pro y a para aplicaciones empresariales, VS TFS era lo indicado, también escuche “woooo, este %&$%&$% dice que no es importante Visual Studio, al blog al blog!” .  Creo que fueron los muchachos más “extremistas” del OS, mis saludos y respeto a su filosofía, aunque no la comparto.

Me llamo la atención un tipo que habló sobre la importancia de participar en las comunidades que giran en torno al código abierto, pero que no le gustaba programar, que nunca era lo suyo, para mi es como que me guste tunnear autos, pero no me guste tener autos ni sepa manejar, bueno, es mi opinión y su postura igual es válida.

Al final, me vine a casa, con un sentimiento de satisfacción sobre lo que sucedió, misión cumplida, espero que para la próxima (si es que me invitan) hablar sobre un tema más técnico.
Saludos,
Gonzalo

[Off-Topic] Esto hace que mi labor de docente valga la pena, alumnos MCP!

Esta noticia se publicó hoy miércoles 22 de abril, si bien demoró un poco en publicarse, estoy muy orgulloso :). Esto sucedió en la Universidad del Bio-Bio en donde soy Docente, y también estudie allí, es mi Alma Matter (Escuchen ese tema de Moonspell, muy bueno)

Link Noticia Original:
http://apc.ubiobio.cl/noticias/view_vistas.shtml?cmd[18]=i-32-da66665bfb5ac64968fb87f688301bb5

Img

En la foto: Alejandro Pacheco, Victor, Leo, Kurama, Erik y Roberto

Noticia UBB:
Alumnos de la UBB obtuvieron Certificación Microsoft

Alumnos de Ingeniería de Ejecución en Computación e Informática de la UBB, pertenecientes a la Célula Académica Sphera, fueron beneficiados con vouchers de certificación, por su participación en el Primer Microsoft CodeCamp Chile, realizado en la sede Santiago Sur de Inacap.

Los alumnos de la carrera de Ingeniería de Ejecución en Computación e Informática, Víctor Acuña, Roberto Contreras, Leonardo Muñoz, Erik Pinto y Carlos Salazar obtuvieron resultados sobresalientes en el examen y fueron reconocidos como Microsoft Certified Professional (MCP).

Este importante logro para los estudiantes fue posible con el apoyo del gerente de Relaciones Académicas de Microsoft Chile, Alejandro Pacheco, quien realizó la entrega gratuita de los vouchers al jefe de carrera de IECI, Patricio Gálvez. El docente guía de la Célula Académica Sphera, Gonzalo Pérez (MVP y MCT de Microsoft) fue el encargado de preparar a los alumnos para lograr la aprobación del examen de certificación.

Una Certificación de Microsoft demuestra experiencia en los productos y las plataformas de Microsoft, al tanto que valida las habilidades del mundo real y las experiencias relacionadas con el trabajo. La Certificación de Microsoft colabora en la resolución práctica de problemas tecnológicos y ayuda a mejorar la satisfacción laboral y su desempeño profesional. Tener una certificación de Microsoft es la mejor manera de mantenerse actualizado con las últimas tecnologías de Microsoft.

—————-

Eso , quería compartir este logro de los estudiantes, estoy muy orgulloso de ellos 😀

Saludos,
gonzalo

KAMIZAKE – Estoy de expositor en el FLISOL 2009!

Bueno es un decir! un tipo que es MVP hablando en un Flisol, es como ir directo al choque, pero creo que la cosa ya no es tan así, vemos que productos Microsoft que son OpenSource como ASP.NET MVC y vemos proyectos como MONO, que nos hacen pensar un un mundo menos confrontacional y con mayor interoperabilidad. Siempre comento en los grupos de usuarios que no hay que cerrarse a una sola tecnología, si no estar abierto al conocimiento. ( y que no importa tener el ultimo netbook, notebook, nitibook, o lo que sea), importa ser un apasionado por el conocimiento.

La URL es la siguiente:

http://concepcion.flisol.cl/expositores

Esta vez estaré hablando junto a JOIL, quien lleva años con Mono, hablando de interoperabilidad y de ASP.NET MVC, que bueno no?

Saludos,

Gonzalo

Algunas funciones útiles en nuestras MasterPages

 

El Título no nos dice mucho, pero recorriendo la web constantemente buscando datos útiles que nos sirvan para el desarrollo de nuestras páginas, siempre que nos hagan la vida un poco más sencilla.

Veamos algunas funciones que podemos dejar en nuestras MasterPages (ya poco me imagino el mundo sin esta gran característica) o si no ocupas MP o puedes dejarla una clase base que herede de la clases WebForm.

Setear el Título de la Página

Muchas veces se nos olvida setear el título de una página, la idea es que esto no pase, ya que el usuario va a ver “Untitled Page” en la barra de tareas, y se ve bien poco profesional. De hecho , me ha pasado varias veces que olvido este importante atributo, no querrás ser parte de las casi 43 Millones de páginas que están sin título! No me crees? mira esto:

http://search.live.com/results.aspx?q=untitled+page&form=QBLH

image

Entonces veamos una manera de solucionar esto, (como siempre digo, seguramente hay maneras más completas, pero lo que quiero mostrar es una idea).

Primero, agregamos unas entradas a nuestro Web.Config

<appSettings>
    <add key="NombreTitulo" value="Titulo1"/>
    <add key="Titulo1" value="Titulo Personalidado 1"/>
    <add key="Titulo2" value="Titulo Personalidado 2"/>
</appSettings>

Entonces, tenemos la key que me entrega el nombre de la key en donde tengo el título, hago esto para no tener modificar un código de la aplicación si es que necesito cambiar de títulos rápidamente(sin compilar)

Luego, en mi MasterPage, escribo el siguiente código:

Partial Class MasterPage
Inherits System.Web.UI.MasterPage


Private Sub SeteaTitulo() Handles Me.Load
If (String.IsNullOrEmpty(Page.Title) OrElse _
  String.Compare(Page.Title, "Untitled Page", True) = 0 OrElse _  
  String
.Compare(Page.Title, "Sin titulo", True) = 0) Then
            Me.Page.Title = ObtieneTitulo()
End If
End Sub

Private Function ObtieneTitulo() As String
Dim NombreClave As String = _
  ConfigurationManager.AppSettings("NombreTitulo")
  Return ConfigurationManager.AppSettings(NombreClave)
End Function
End Class

Como se ve en el código, se crear una funcion que obtiene el nombre del la clave que contendrá el título de la página, la cual se llama desde SeteaTitulo(), que es manejado por el Load de la página, se hacen las comparaciones de rigor, y, si no hay titulo seteado, lo obtenemos desde ObtieneTitulo().

…y presto!

image

Ventanas Emergentes
Una de las funcionalidades que muchas veces nos “acostumbramos” a perder en ASP.NET son las ventanas emergentes de Javascript, ya que empezamos a programar todo del lado del servidor, son las ventanas emergentes de Javascript, (y para los más nuevos, msgbox en .net les va a funcionar en tiempo de desarrollo en el servidor de prueba, en el servidor de explotación, no)

Bueno, volvamos, entonces vamos a tener que insertar código javascript en nuestra página, para eso vamos a utilizar el método RegisterStartupScript. Y crearemos dos tipos de mensajes, el normal con JavasCript y otro un poco más Cool (el Script lo obtuve y modifiqué de la página:http://jdstiles.com/java/jsalert.html gracias Jim!)

image

Los resultados que tendremos serán:

 

Resultado al presionar el Boton Alert Normal

Resultado al Presionar el Boton Alert Cool

image

image

El código en la MasterPage para Alert Normal

  Public Sub MostrarVentana(ByVal texto As String, ByVal clientScript As ClientScriptManager)

   Dim csname1 As String = "PopupScript"
   Dim csname2 As String = "MessageScript"
   Dim cs As ClientScriptManager = clientScript
   If (Not cs.IsStartupScriptRegistered(Me.GetType, csname1)) Then
   
Dim cstext1 As String = String.Format("alert(‘{0}’);", texto)
    cs.RegisterStartupScript(Me.GetType,csname1,cstext1.ToString, True)
   End If
End Sub

En donde lo que estamos haciendo es incrustar un javascript mediante en la página, si te das cuenta, primero revisamos que no esté la clave ya en la página.

A Continuación el código del Alert Cool, que más que nada, llama a un Javacript que genera en un div, el formato para crear la forma de una ventana de Alerta.

Public Sub MostrarVentanaCool(ByVal titulo As String, ByVal texto As String, ByVal clientScript As ClientScriptManager)

Dim csname1 As String = "PopupScript"
Dim csname2 As String = "MessageScript"
Dim cs As ClientScriptManager = clientScript
If (Not cs.IsStartupScriptRegistered(Me.GetType, csname1)) Then
       Dim cstext1 As String = String.Format("makeAlert(‘{0}’,'{1}’);", titulo, texto)
 
cs.RegisterStartupScript(Me.GetType, csname1, cstext1.ToString, True)
 
End If
End Sub

En las dos funciones pasamos como parámetro el ClientScript , recordemos que estamos en la MasterPage y estas funciones van a ser llamadas desde sus Páginas Hijas ( así nos ahorramos el problema de la propiedad clientScript de la MasterPage).

A continuación agregamos en el código declarativo (dentro del Body) de la MasterPage, las siguientes lineas de código, que nos permitirán la funcionalidad de la Cool.

<div id="alertLayer" class="alertBoxStyle"></div>
<link href="StyleSheet.css" rel="stylesheet" type="text/css" />
<script src="Mensaje.js" type="text/javascript"></script>

Ahora en las Páginas hijas de esta MP, vamos a instanciar la MasterPage:

Dim mp As New MasterPage

Y luego las llamadas a los métodos correspondientes según el alert que quieras mostrar:

mp.MostrarVentana("Mi Mensaje", Page.ClientScript)

ó

mp.MostrarVentanaCool("Titulo de la Ventana", _
                      "El Mensaje al usuario", _
                      Page.ClientScript)

Ahora todas las ventanas hijas tienen esta funcionalidad 😀

Te Adjunto el Proyecto de Ejemplo para que veas el CSS y JS de la ventana Cool 🙂
Descárgalo Aquí

Espero que te sirva,
Gonzalo

[Tips]Ocultando el TargetControlID del ModalPopUpExtender

 

image

El Control ModalPopUpExtender que viene con el AjaxControlToolkit nos viene de mucha ayudar sobre todo para mostrar un cuadro de dialogo en nuestras Páginas Web, ahora bien, no vamos a ver como se utiliza, para eso te recomiendo que veas el siguiente artículo Luis Miguel Blanco:
http://geeks.ms/blogs/lmblanco/archive/2008/05/25/modalpopupextender-creando-cajas-de-di-225-logo-en-asp-net-mediante-ajax.aspx

Este control , como explica el articulo anterior, tiene una propiedad TargetControlID la cual permite un control Button , de manera que al presionar un botón, aparece el modalpopup, lo que es muy bueno, pero , que pasa si no queremos asociar el comportamiento a un click del boton?.  Siempre podemos hacer un llamado al método Show() del ModalPopUp, y que pasa con el botón? ya que si no seteas la propiedad TargetControlID no te va a funcionar, así que primero se viene a la mente es:

“Tengo el Botón, lo dejo invisible y luego seteo la propiedad TargetControlID del ModalPopUp, a ese botón de esa manera, ni se nota que existe un boton”

Lo anterior, puede parecer lógico, pero el MPopUp no va a funcionar, así que lo siguiente podría ser:

“Seteo las dimensiones del Botón, ancho y alto a 0px, por lo que nos se ve en la pantalla, pero esta habilitado, por lo que el MPopUp va a funcionar”

Esto es verdad, el control funciona, y en IE7 no se ve el button, pasa totalmente desapercibido, pero si lo ves en Chrome, FireFox, Safari, o IE8, se van a ver pequeños botones grises

image

Ejemplos del Botón de 0px en IE8, Chrome y FireFox

La solución es muy simple, solo utiliza un Estilo, que tenga la propiedad Visibilty=Hidden

image

Ventana de Creación de Estilos de VS2008

Finalmente el estilo queda de esta forma:

<style type="text/css"> 
        .invisible {
            visibility: hidden;
        }
</style>

Ahora agregamos el estilo al boton:

<asp:Button CssClass="invisible" 
             ID="Button1" runat="server" 
             Height="0px" Text="Button" 
             Width="0px" />

Con esto ocultamos el control del lado del cliente, y todo nos va bien 🙂

image

Ahora ya no hay botón semi-oculto

Bueno, se que esto es algo básico, pero siempre una ayuda viene bien, espero que a alguien le sirva 🙂

Saludos,
Chalalo

ASP.NET MVC 1.0 == OPENSOURCE!!!

 

Así es, me vengo enterando recién (algo tarde), es verdad, así lo anuncian los principales cabecillas de ASP.NET (ScottGu) y hasta Miguel de Icaza esta recontento con esta noticia,  El código está bajo Microsoft Public License (MS-PL) la cual es una licencia de código abierto aprobada por la ISO.

La MS-PL no contiene restricciones de la plataforma y ofrece amplios derechos a modificar y redistribuir el código fuente. Puedes más información  de la MS-PL en: http://www.opensource.org/licenses/ms-pl.html

Ve el Blog de ScottGU

Descarga, y aprende ASP.NET MVC
http://www.asp.net/mvc/

Ahora ya se de que voy a hablar en las ferias de OpenSource, me aceptarán?

Saludos,
Gonzalo