El Blog del Leo

Compartiendo lo que aprendo

Microsoft Security Essential


Llego el día, y Microsoft lanza su version de antivirus Microsoft Security Essentials tambien conocida como Morro gratuitamente al mercada y cuales son las caracteristicas de este antivirus
  • Microsoft Security Essentials provee proteccion en tiempo real de tu computador en contra de virus, spyware y cualquier otro tipo de malware.
  • Microsoft Security Essentials se puede descargar de manera gratuita (si tienes instalada una version original de windows) desde Microsoft y es facil de instalar, facil de usar y siempre se mantiene actualizadas para asegurar que tu eqiopo sea protegida por la ultima tecnologia. Para saber si tu equipo está seguro ve el color del icono del antivirus, si es verde... estás listo.
  • Microsoft Security Essentials corre silenciosa y eficientemente en segundo plano para que puedas usar tu equipo sin interrupciones como quieras.


¿Donde se descarga?


Imagine Cup 2010: Polonia



La competencia de programación más grande del mundo este año se realizaran en Warsaw, Polonia.
El tema seria el mismo del año pasado sobre "Metas del Milenio a desarrollar por las Naciones Unidas".
Y cuales serán los temas a abordar en este concurso, bueno principalmente destacan:

Diseño de Software
La misión es simple crear un software y servicios que usan las herramientas y tecnologías de Microsoft. La idea es que este software aborde una de las metas del mileno usando toda la creatividad posible con el fin de comenzar a cambiar el mundo.

Diseño de Juegos
Construir un software utilizando XNA Game Studio 3.0 con Visual Studio y/o Silverlight. Esta es la oportunidad de crear tu propio juego que al mismo tiempo cambie a la comunidad global.

Medios Digitales
La popularidad de la creación de videos caseros y la edición de imágenes, textos, música entre otros. El objetivo es que los estudiantes usen su creatividad para crear una web de videos que pueda combinar los contenidos creados por el usuario direccionandolo hacia el tema principal de Imagine Cup.
¿Y por que participar?
Primero, por la gran experiencia que es participar en un concurso a nivel internacion y tambien por que hay un premio monetario.
  • Diseño de Software: Primer Lugar: $25,000 USD; Segundo Lugar: $10,000 USD; Tercer Lugar: $5,000 USD.
  • Diseño de Juegos: Primer Lugar: $25,000 USD; Segundo Lugar: $10,000 USD; Tercer Lugar: $5,000 USD
  • Medios Digitales: Primer Lugar: $8,000 USD; Segundo Lugar: $4,000 USD; Tercer Lugar: $3,000 USD

Controles dinámicos y eventos dinámicos

Todos no hemos encontrado con la necesidad de crear algún control de manera dinámica para agregarlo a un contenedor de controles en una página web. Pero ¿qué sucede cuando necesito que ese control me genere un evento?

La solución es más sencilla de lo que imaginamos, por ejemplo en Visual Basic.NET seria:

'En nuestro evento Page Load crearemos un control dinámico
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Creamos la instancia de un control de tipo Button
Dim boton As New Button
boton.Text = "Presionar boton"

'Aquí esta la gracia, AddHandler es el evento que nosotros queremos gatillar en este control dinámico
'la instrucción AddresOf nos dice que función va a controlar el evento, en este caso Button_Click la cual debe 'estar debidamente creada.
AddHandler boton.Click, AddressOf Button_Click

'Añadimos el control al formulario
form1.Controls.Add(boton)
End Sub

'Creamos la función que va a controlar el evento
Private Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
lbMuestra.Text = "Boton dinamico presionado"
End Sub

Espero que haya sido claro, les adjunto un archivo de prueba. Descargar archivo

TechDays Chile 2009 - Agenda

Por primera vez en Chile y en español se realizará, el próximo 29 de Septiembre, Microsoft Tech Days Chile 2009, un evento pensado especialmente para profesionales de informática y desarrolladores.Un día completo con más de 20 sesiones técnicas a lo largo del día, con expertos nacionales e internacionales, la posibilidad de compartir con miles de colegas y de estar en contacto con las últimas innovaciones tecnológicas!!
Microsoft Tech Days, un evento que los ayudará a resolver los desafíos actuales del mundo informático y a prepararse para las innovaciones del mañana.
Registrate aquí
Asi que comenzaremos a planificarnos para poder asistir a este evento.

WinForm con Facebook Developer Toolkit

Crearemos una aplicación Facebook con el framework Facebook Developer Toolkit para el desarrollo de aplicaciones .NET para Facebook.


Iremos en el paso a paso explicando cada funcionalidad y el como crear la aplicación.
Acá el codigo para que lo revisen: Descargar FacebookStatus

Primer paso. Abrir el Visual Studio y crear un nuevo proyecto como muestra la figura 1.
Segundo Paso. Selecciona aplicación WinForms y le damos un nombre al proyecto.

framework Facebook Developer Toolkit

Tercer paso. Añadir la referencia a la dll del

Cuarto paso. Crear los controles básicos en nuestro formulario que tendrá la aplicación. Dependiendo de lo que queramos mostrar al usuario es como crearemos nuestro formulario. En la figura que sigue, la figura contiene: A la izquierda, una control Image. A la derecha un control Group Box, el cual contiene tres controles Label que almacenará información del usuario y un control textbox que tendra el estado del usuario. Al lado inferior izquierdo tendra un LinkButton para otorgar permisos de modificación al usuario y el lado inferior derecho, los botones que representan a las acciones Modificar y Refrescar.

Facebook Developers..
Para comenzar nuestra aplicación agregamos las referencias a la bibliotecas de Facebook.


Quinto paso. Ahora le daremos funcionalidad a los controles, antes que todo debemos crear en nuestra cuenta de
Imports Facebook.Components
Imports Facebook.Schema
Imports Facebook.desktop


Public Class Form1
Agregamos como variables globales al formulario el servicio de Facebook y la clave secreta y de aplicación entregadas por facebook.

Private apiKey As String = "API_KEY"
Private secret As String = "SECRET_KEY"
Private flag As Boolean
Private fbServicio As FacebookService = Nothing


Cuando ocurra el evento Load en el formulario realizamos la petición de conexión a Facebook
Private Sub Form1_Activated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
'Instanciamos el servicio de Facebook y le otorgamos el identificador de la aplicación y su clave secreta fbServicio = New FacebookService
fbServicio.ApplicationKey = apiKey
fbServicio.Secret = secret
'Y solicitamos la conexión a Facebook donde se realizará la autenticación de usuario fbServicio.ConnectToFacebook()
'Al ser exitosa esta autenticación se procede a llamar el metodo que carga los datos del usuario.
'Nota: No olvidar que el formulario es una clase y toda funcionalidad encapsulada que se cree es un método de ésta
CargarDatos()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub


'Carga los datos del usuario autenticado
Private Sub CargarDatos()
'Se instancia una clase User provista por facebook.Schema
Dim usuario As New user
'Se llama al método getInfo del servicio web que tiene la información del usuario autentificado
usuario = fbServicio.users.getInfo
'Se llenan los datos en los controles creados
GroupBox1.Text = usuario.name
Label6.Text = usuario.sex
Label7.Text = usuario.relationship_status
Label8.Text = usuario.birthday
Label9.Text = usuario.current_location.city
txtEstado.Text = usuario.status.message
imgUser.Image = usuario.picture
'Si el usuario tiene permiso para modificar el estado se le habilita el botón, de lo contrario si habilita el link para que pueda solicitar el permiso de modificación de estado
If fbServicio.users.hasAppPermission(Facebook.Types.Enums.Extended_Permissions.status_update) Then btModificar.Enabled = True
LinkLabel1.Visible = False
End If
End Sub


'Al cargar la informacion, el formulario se mostraria de la siguiente manera.


'Cuando el usuario hace clic al hiperlink para activar el permiso de modificación del estado, se le abre el navegador web hacia la pantalla de modificación del usuario como muestra la figura que sigue.
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
Dim url As String = String.Format("
http://www.facebook.com/authorize.php?api_key={0}&ext_perm=status_update&v=1.0", apiKey)
Process.Start(url)
End Sub


'Una vez otorgados los permisos al usuario, tenemos que agregar la funcionalidad para cuando el usuario clickee el boton Modificar Estado está accion realmente se haga efectiva.

Private Sub btModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btModificar.Click
If fbServicio.users.hasAppPermission(Facebook.Types.Enums.Extended_Permissions.status_update) Then fbServicio.users.setStatus(txtEstado.Text)
MessageBox.Show("Estado modificado exitosamente")
End If
End Sub

Private Sub btRefrescar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) CargarDatos()
End Sub


Y como resultado obtendremos una aplicación que modifica el estado de Facebook pero con un framework distinto. =P Espero que les haya gustado el resultado, pronto volveré con mas novedades. Saludos.


Update Panel, Ajax para todos

Update Panel ha sido uno de los controles que ha facilitado el uso de Ajax en las aplicaciones .NET, ya que solamente agregando contenido dentro de este control se actualizara sin necesidad de realizar un molesto postback.

¿Y qué necesito para utilizar un UpdatePanel?
El control ScriptManager.
Que se recomienda para utilizar el control UpdatePanel
UpdatePanel, propiedad UpdateMode en Condicional. La idea es que el UpdatePanel no se recargue en cada intento de postback, sino solamente cuando necesitamos que se actualice la información y este hecho va a ocurrir cuando nosotros digamos explícitamente la actualización del UpdatePanel con la instrucción: UpdatePanel1.Update() o cuando expresamos que el UpdatePanel será gatillado por un control mediante un postback asíncrono.







Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Partial Class EjemploUpdatePanel
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Try
'cargamos los departamentos en el dropdownlist
cargarDepartamentos()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub


'Llenamos los datos de departamentos
Private Sub cargarDepartamentos()
Dim departamento As New Departamento
Dim tempList As List(Of Departamento) = departamento.cargarDeptoBD()
For Each t In tempList
ddlDepartamento.Items.Add(New ListItem(t.Nombre, t.Id))
Next
End Sub

'Evento que se gatilla al presionar Click, este evento está asociado al Update
'Panel por lo cual actualizara la grilla

Protected Sub btBuscar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btBuscar.Click
Try
buscarUsuarios()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub


'Busca los usuarios según los criterios de búsqueda y llena la grilla con los 'datos de los usuarios
Private Sub buscarUsuarios()
Dim usuario As New Usuario
Dim tempList As New List(Of Usuario)
If Not String.IsNullOrEmpty(txtRun.Text) Then
tempList = usuario.obtenerUsuario(txtRun.Text)
Else
tempList = usuario.obtenerListaUsuario(Integer.Parse(ddlDepartamento.SelectedValue))
End If
gvUsuario.DataSource = tempList
gvUsuario.DataBind()
End Sub
End Class

Descargar Ejemplo Update Panel

Exportar GridView a Excel

Nunca está demás saber como se exporta una grilla a Excel. La verdad si uno se pone a pensar como programáticamente lo hago pensaría que es muy difícil, pero la verdad que no lo es, y lo explicare en unos cuantos pasos.



1er paso. Crear un botón que será quien cree el Excel en base a la grilla. Este botón debe estar fuera de un postback asíncrono (Update Panel)



2o paso. En el evento Click del botón para exportar, poner las siguientes líneas de código. Se crea un objeto que simula una pagina web y que contiene un formulario. A este formulario le agregamos la grilla que va a ser exportable y decimos que esta pagina será una salida. Formateamos la salida a tipo Excel.






3er paso. Disfrutar de que hicimos una grilla exportable a Excel. Ideal para informes.


El código necesario (aparte de la imagen):
Private Sub exportarExcel()
Dim sb As StringBuilder = New StringBuilder()
Dim sw As StringWriter = New StringWriter(sb)
Dim htw As HtmlTextWriter = New HtmlTextWriter(sw)
Dim pagina As Page = New Page
Dim form = New HtmlForm
Dim lblEncabezado As Label = New Label
lblEncabezado.Text = "Nombre del encabezado"
gvExportar.EnableViewState = False
pagina.EnableEventValidation = False
pagina.DesignerInitialize()
pagina.Controls.Add(form)
form.Controls.Add(lblEncabezado)
form.Controls.Add(gvExportar)   'Tu gridview a exportar
pagina.RenderControl(htw)
Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader("Content-Disposition", "attachment;filename=ArchivoExcel.xls") 'Nombre del archivo de salida
Response.Charset = "UTF-8"
Response.ContentEncoding = Encoding.Default
Response.Write(sb.ToString())
Response.End()
End Sub

Espero que les sirva.

[Off-Topic] Navegar un rato mientras trabajas aumenta tu productividad.

Aunque no lo crean, así es. Según un estudio de la Universidad de Melbourne Coker ha afirmado que “la navegación ociosa por la Red en horas de trabajo ayuda a ajustar la concentración de los trabajadores [...] las personas necesitan distraerse un momento para volver a la concentración“.

La denominación que han dado a dichos tiempos de minidescanso laboral WILB (Workplace Internet Leisure Browsing). Aunque claro está, hablamos de un total del 20% del tiempo de tu jornada laboral, que viene a ser un máximo de 1 hora y 36 minutos al día.

Este mismo estudio también afirma que una persona que utiliza el 20% de su jornada navegando a su antojo es un 9% más rentable que otro que no lo hace según afirma la Universidad de Melbourne.

Así que dedique también un poco de tiempo al esparcimiento en su hora de trabajo, seran un empleado mas rentable.

Fuente: Cosas Sencillas

Seguidores

Certificaciones

Microsoft Certified Professional

Mis Tweets

Twitter