Animation Control… simplemente alucinante!!!!!

Esta mañana anunciaba la nueva release del «Atlas» Control Toolkit y citaba mi interés por el control Animation.

Después de ver la aplicación de ejemplo (tengo que confesar que poco por falta de tiempo), no me he podido resistir a contaros la experiencia.

Lo que me hace contaros la experiencia no solo son las animaciones expectaculares que crea (explosiones, parpadeo, cambio de color gradualmente, animación para aparición, etc.) sino por, algo que creo más importante, el código.

La cantidad de código para crear una animación es mínima. El código del control Animation es análogo al siguiente:

 

<atlasToolkit:AnimationExtender ID="ae" runat="server"> <atlasToolkit:AnimationProperties TargetControlID="ctrl"> <Animations> <OnLoad> ... </OnLoad> <OnClick> ... </OnClick> <OnMouseOver> ... </OnMouseOver> <OnMouseOut> ... </OnMouseOut> <OnHoverOver> ... </OnHoverOver> <OnHoverOut> ... </OnHoverOut> </Animations> </atlasToolkit:AnimationProperties> </atlasToolkit:AnimationExtender>

TargetControlID: Es el control al que aplicacremos la animación.

Dentro de los nodos que se encuentran dentro de Animations (OnLoad, OnClick, etc.) contendrán las animaciones.

Os remito al Animation Reference de la aplicación de ejemplo del «Atlas» Control Toolkit para que veáis todas las animaciones posibles.

Por poneros un ejemplo para ocultar un panel degradando el color del control simplemente el código será este:

<FadeOut Duration=".5" Fps="20" />

Pronto publicaré ejemplos sobre este nuevo control.

Nueva release del "Atlas" Control Toolkit

A pesar de no haberse presentado esta release, el día 14 de Septiembre se publicó una nueva release del «Atlas» Control Toolkit (de momento no le han cambiado el nombre…) con cuatro nuevos controles y, como dicen ellos, and numerous bug fixes.


Una de las novedades que tengo muchas ganas de probar, personalmente, es lo que nos venden como es un marco de trabajo flexible y poderoso para la animación (la verdad… no estoy muy seguro si se traduce así, el texto original es a flexible and powerful animation framework).


Podéis descargar esta nueva release en su proyecto en CodePlex.com:


http://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=AtlasControlToolkit


Si os digo la verdad…. tengo muchas ganas de que terminen de una vez con el proyecto (como dijo un geek el otro día… esto es como un nacimiento ya queremos verle la cara al niño, jejejeje).


Saludos a todos


 

Instalación de Microsoft Office 2007 Beta 2 Technical Refresh, los minutos después…

Después de la instalación de Office 2007 Beta 2 TR (en mi Windows XP) estoy muy contento, no solo porque ahora mi Office es más vistoso con unos colores «mu monos», sino porque realmente veo que han solucionado algún bug.


Había un error del Outlook ,que me ocurrió en los tres ordenadores en los que instalé la Beta 2, que han solucionado. Se trataba de que cuando se recibía correo o se envíaba se ejecutaba el Windows Installer buscando un archivo que no existía, cancelaba el proceso y volvía a parece… así 10 veces en cada acción… todo un estorbo.


El único error que he visto hasta ahora es en el Outlook la ventana de Proceso de envío y recepeción no tiene bien alineados los controles. Pero es algo insignificante :).


Espero que los bugs que seguramente habéis encontrado con la versión anterior hayan sido solucionados en esta [:)].

¡¡¡Felicidades a todos los programadores!!!!

Os preguntaréis a qué se debe esta felicitación. Pues muy fácil, hoy 13 de Septiembre,mejor dicho, 256 del año es el día del programador. La razón que wikipedia nos dá es la siguiente:


«256 = 2 to the power of 8 = the number of values representable in a byte of data»


La verdad no conocía de este dato hasta hace unos minutos cuando veo que mi amigo Jairo tiene en su nick «Feliz día del programador» y un link hacia Wikipedia.


Tengo que decir también que la página de Wikipedia en español sobre esta fecha se la han cargado hace 10 minutos, pero como Google con su Cache, esa página existía.


La verdad no me parecen interesantes las tradiciones que nos propone Wikipedia (en español), pero bueno cada uno lo que quiera… Actualmente «jugar a viejos juegos de computadora» se hace a veces imposible por las incompatibilidades de los Sistemas Operativos.


Pero bueno… ¡¡¡Felicidades a todos los programadores!!!


PD: Después queremos que nos tomen en serio [:p]

Mi proyecto en Codeplex.com

Como contaba hoy por la mañana Sergio (adelantandose a la presentación oficial :P) he creado un proyecto en www.codeplex.com la dirección de mi proyecto es:


http://www.codeplex.com/Wiki/View.aspx?ProjectName=VBPrincipiantes


He esperado a este momento para anunciarlo ya que ya hay código y una release agregada. Se trata de VBPrincipiantes Controls, de momento solo está publicado el  primer control y espero que no sea el último. Lo he publicado como versión Alpha ya que solo hay un control, pero este es totalmente funcional.


La licencia con la que se ha publicado es Reconocimiento-NoComercial 2.5 España de Creative Commons, podéis ver la licencia en esta página.

¡Atlas ya tiene nombre final!

Hoy nos contaba Scott Guthrie en su blog cual será el nombre definitivo de Atlas en un post titulado «Atlas» 1.0 Naming and Roadmap.


Entre otras cosas nos cuenta que tienen previsto que la versión final de Atlas esté disponible a finales de este año, después de una beta y una release candidate.


Los nombres que han decidido para este framework son los siguientes:



  • Las librerias cliente pasan a ser llamadas Microsoft AJAX Library.

  • En el servidor se llamará ASP.NET 2.0 AJAX Extensions, integrado con la próxima versión de ASP.NET, ASP.NET vNext.

  • Por último los controles de código compartido «Atlas» Control Toolkit pasa a ser llamado ASP.NET AJAX Control Toolkit.

Lo más importante para mi es el comentario final de su post en el que nos cuenta que el próximo Visual Studio «Orcas» soportará debuging y diseño WYSIWYG para JavaScript, cosa que personalmente me parece muy interesante ya que el uso de CallBacks o Microsof AJAX Library (habrá que empezar a llamarla por su nuevo nombre :P) hacen obligatorio el uso de JavaScript.


Para finalizar me ha parecido muy interesante un comentario que hace al principio de ese post que es que este año las CTPs de Atlas han tenido más de 250.000 descargas, solamente este año.


Este es un acercamiento importante a la versión final.

Usando el ProgressBar con un BackGroundWorker

Este ejemplo esta especialmente publicado para Emilio Velardiez que me pregunto como usar una barra de progreso con una BackgroundWorker.

Este ejemplo lo haré en una aplicación Windows Form.

A nuestra aplicación Windows Forms vamos a agregar un BackgroundWorker, llamado BackgroundWorker1, y un ProgressBar, llamado ProgressBar1.

Las únicas propiedades que cambiaremos son las del BackgroundWorker1, para que pueda reportar el proceso:

Y este es el código de nuestra aplicación:

Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load BackgroundWorker1.RunWorkerAsync() End Sub Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork Dim i As Integer For i = 1 To 1000 BackgroundWorker1.ReportProgress(i / 10) Threading.Thread.Sleep(500) Next End Sub Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged ProgressBar1.Value = e.ProgressPercentage End Sub Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted MsgBox("listo") End Sub End Class

Espero, como siempre, que os sea útil.

Textbox WaterMark (antes con efecto sombra) Beta 2

Esta es la nueva versión del Textbox con marca de agua, el proceso de creación es igual que el anterior, esta vez el código es el siguiente:


 


 


Public Class TextBoxWaterMark
Private _active As Boolean
Private _defaultFont As Font = Me.Font
Private _defaultColor As Color = Me.ForeColor
Private _defaultBackColor As Color = Me.BackColor

Private _watermarkText As String
Private _watermarkFont As Font = New Font(_defaultFont, FontStyle.Italic)
Private _watermarkColor As Color = Color.Gray
Private _watermarkBackColor As Color = Color.White
Private _password As Boolean

Property WaterMarkText() As String
Get
Return _watermarkText
End Get
Set(ByVal value As String)
_watermarkText
= value
If _active = True Or Me.Text = «» Then
ActiveWaterMark()
End If
End Set
End Property

Property WaterMarkColor() As Color
Get
Return _watermarkColor
End Get
Set(ByVal value As Color)
_watermarkColor
= value
End Set
End Property

Property WaterMarkBackColor() As Color
Get
Return _watermarkBackColor
End Get
Set(ByVal value As Color)
_watermarkBackColor
= value
End Set
End Property

Property WaterMarkFont() As Font
Get
Return _watermarkFont
End Get
Set(ByVal value As Font)
_watermarkFont
= value
End Set
End Property

Private Sub TextBoxWaterMark_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Enter
If _active = True Then
QuitWaterMark()
End If
End Sub

Private Sub TextBoxWaterMark_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
If Me.Text = «» Then
ActiveWaterMark()
End If
End Sub

Public Overrides Property Text() As String
Get
If _active = True Then
Return «»
Else
Return MyBase.Text
End If
End Get
Set(ByVal value As String)
MyBase.Text = value
End Set
End Property

Public Sub ActiveWaterMark()
_active
= True
Me.Text = _watermarkText
Me.Font = _watermarkFont
Me.BackColor = _watermarkBackColor
Me.ForeColor = _watermarkColor
End Sub

Public Sub QuitWaterMark()
_active
= False
Me.Text = «»
Me.Font = _defaultFont
Me.BackColor = _defaultBackColor
Me.ForeColor = _defaultColor
End Sub

Private Sub TextBoxWaterMark_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.TextChanged
If Me.Text = «» And Not Me.Focused Then
ActiveWaterMark()
End If
End Sub
End Class


 


Se han corregido en esta versión los siguientes errores:



  • Si se está mostrando la marca de agua la propiedad Text de vuelve una cadena vacía

  • Se pueden cambiar los colores del texto normal

  • Si el texto se cambia sin estar en el foco se activa la marca de agua

  • En caso de que el usuario escriba el mismo texto de la marca de agua no se active los colores de la marca de agua

Además he añadido las sigiuentes características:



  • Se puede cambiar el color de fondo de la marca de agua.

  • Se pueden cambiar los colores de la marca de agua

Pronto publicaré la siguiente versión.