April 2009 - Artículos
Charlas del 29 de Abril en la Universidad del Bio-Bio a realizarse en el auditorio de la Facultad de Cs. Empresariales.
| |
| 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
|

|
|
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
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
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 :D
Saludos,
gonzalo
Me enteré por el blog de Jorge Serrano que la excelente noticia de un libro gratis
Microsoft® Visual Basic® 2008 Express Edition: Build a Program Now!
By Patrice Pelland
ISBN: 9780735625419
Puedes descargarlo Pinchando en SingUp

o echarle una mirada al capitulo 1 :)

Saludos,
Gonzalo
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
|  | 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
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!
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!)
Los resultados que tendremos serán:
| Resultado al presionar el Boton Alert Normal | Resultado al Presionar el Boton Alert Cool |
|  |  |
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 :D
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
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
| |
| 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
|  |
| 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 :)
|  |
| 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
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