Tips Arrastrar y Soltar (Drap and Drop) con SilverLight 4

Hola a todos..

Como ya sabrán hace poco anunciaron la beta de SilverLight 4, y con eso han surgido muchos demos yo no dejare de ser uno de los que muestre un demo 🙂 así que les explicare que como hacer el Drap and Drop (Arrastrar y Soltar) en nuestras aplicaciones de SilverLight.

1. La definición explicada por Rodrigo Díaz Concha en su pagina esta mas que genial así que hago referencia a su post: http://rdiazconcha.com/?p=487

Silverlight 4 cuenta con soporte de arrastrar uno o varios archivos desde afuera de la aplicación hacia adentro de ella y soltarlo(s) para poder leer su información y contenido.  Esta característica nos permite como desarrolladores crear mejores Experiencias para los Usuarios ya que evitan el número de cajas de diálogo y clics para abrir o leer un archivo o conjunto de archivos.

2. Abrimos nuestro Visual Studio 2010 Beta2 (el que estoy usando para esta explicación) y creamos una Aplicación SilverLight y le llamaremos Drap_and_Drop

 

Entra en Tips Arrastrar y Soltar (Drap and Drop) con SilverLight 4 para ver el resto de la publicacion con imagenes y codigo..!!

Tips, Tutorial y Truco: Boton con Efecto de Vidrio (Button Glass) en SilverLight

Hola a todos,

Me gustaría compartir este pequeño tutorial de como obtener un botón con efecto de vidrio dándole una vistosidad bastante interesante a la interfaz de usuario.

Para ello me base en un articulo publicado en: http://www.sixin.nl/antoni-dol-blog/09-11-15/Silverlight_Style_GlassBorderStyle.aspx

Y el Código de Ejemplo de este Tutorial esta Aquí y la pagina origina esta Aqui:

Así que ni mas ni mas el truco:

1. Creamos nuestro proyecto en Visual Studio o en Expression Blend (Donde mas guste yo estoy usando Blend a la final el código estará en XAML)

2. Agregamos un botón a nuestro UserControl.

Captura1

3. Le daremos Botón derecho del mouse sobre el control Button, para seleccionar la opción Editar una Copia. Este paso es si utilizan Expression Blend, para los que usan Visual Studio 2008 todavía no se desesperen ya les pasare el XAML a pegar en su UserControl recuerden que VS2008 no soporta el Diseño de SilverLight en VS 2010 es la misma secuencia que Blend 🙂

Captura2

4. Saldra una Ventana como esta donde le daremos el nombre a la plantilla y ubicacion a guardar, en nuestro caso sera dentro del mismo UserControl.

Captura3

5. Este será el Código que veremos al darle aceptar y ubicarnos en el XAML:

Captura4

6. De ese código a mostrar cambiaremos el seteo de Propiedad del BackGround, Padding, Borderthickness, BorderBrush y agregaremos un Effects:

BackGround:

        <Style x:Key="ButtonGlass" TargetType="Button">
            <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.75,1" StartPoint="0.25,0"> 
                    <GradientStop Color="#33FFFFFF" Offset="0"/> 
                    <GradientStop Color="#C0FFFFFF" Offset="0.287"/> 
                    <GradientStop Color="#4011322D" Offset="0.683"/> 
                    <GradientStop Color="#33FFFFFF" Offset="1"/> 
                </LinearGradientBrush> 
            </Setter.Value>
        </Setter>

Padding y Borderthickness :

            <Setter Property="Padding" Value="5"/>
            <Setter Property="BorderThickness" Value="5"/>

BorderBrush:

           <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
                        <GradientStop Color="#5811322D" Offset="0"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.25"/> 
                        <GradientStop Color="#FFFFFFFF" Offset="0.5"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.75"/> 
                        <GradientStop Color="#BFFFFFFF" Offset="1"/> 
                    </LinearGradientBrush> 
                </Setter.Value>
            </Setter>

Effects:

            <Setter Property="Effect"> 
                <Setter.Value> 
                    <DropShadowEffect BlurRadius="3" ShadowDepth="3" Opacity="0.5"/> 
                </Setter.Value> 
               </Setter> 

Ahora al boton sencillamente le aplicaremos este template en la propiedad Style le daremos el nombre del Template (ejemplo Style='{StaticResource ButtonGlass}’):

                   <Button Height="54" HorizontalAlignment="Left" Margin="119,0,0,137" 
                             VerticalAlignment="Bottom" Width="169" Content="Button" 
                             Style='{StaticResource ButtonGlass}'/>

Con esto tenemos lo siguiente:

image

Aquí les dejo el Código Completo del XAML (UserControl y Template del Boton):

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="DemoGlassButton.MainPage"
    Width="640" Height="480">
    <UserControl.Resources>
        <Style x:Key="ButtonGlass" TargetType="Button">
            <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.75,1" StartPoint="0.25,0"> 
                    <GradientStop Color="#33FFFFFF" Offset="0"/> 
                    <GradientStop Color="#C0FFFFFF" Offset="0.287"/> 
                    <GradientStop Color="#4011322D" Offset="0.683"/> 
                    <GradientStop Color="#33FFFFFF" Offset="1"/> 
                </LinearGradientBrush> 
            </Setter.Value>
        </Setter>
            <Setter Property="Foreground" Value="#FF000000"/>
            <Setter Property="Padding" Value="5"/>
            <Setter Property="BorderThickness" Value="5"/>
            <Setter Property="BorderBrush">
                <Setter.Value>
                    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
                        <GradientStop Color="#5811322D" Offset="0"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.25"/> 
                        <GradientStop Color="#FFFFFFFF" Offset="0.5"/> 
                        <GradientStop Color="#3EFFFFFF" Offset="0.75"/> 
                        <GradientStop Color="#BFFFFFFF" Offset="1"/> 
                    </LinearGradientBrush> 
                </Setter.Value>
            </Setter>
            <Setter Property="Effect"> 
                <Setter.Value> 
                    <DropShadowEffect BlurRadius="3" ShadowDepth="3" Opacity="0.5"/> 
                </Setter.Value> 
               </Setter> 

            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="Button">
                        <Grid>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal"/>
                                    <VisualState x:Name="MouseOver">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackgroundAnimation" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#F2FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#CCFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#7FFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Pressed">
                                        <Storyboard>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="Background" Storyboard.TargetProperty="(Border.Background).(SolidColorBrush.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#FF6DBDD1"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="BackgroundAnimation" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[0].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#D8FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[1].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#C6FFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[2].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#8CFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                            <ColorAnimationUsingKeyFrames Storyboard.TargetName="BackgroundGradient" Storyboard.TargetProperty="(Rectangle.Fill).(GradientBrush.GradientStops)[3].(GradientStop.Color)">
                                                <SplineColorKeyFrame KeyTime="0" Value="#3FFFFFFF"/>
                                            </ColorAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Disabled">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="DisabledVisualElement" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value=".55"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="FocusStates">
                                    <VisualState x:Name="Focused">
                                        <Storyboard>
                                            <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FocusVisualElement" Storyboard.TargetProperty="Opacity">
                                                <SplineDoubleKeyFrame KeyTime="0" Value="1"/>
                                            </DoubleAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Unfocused"/>
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <Border x:Name="Background" Background="White" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
                                <Grid Margin="1" Background="{TemplateBinding Background}">
                                    <Border x:Name="BackgroundAnimation" Opacity="0" Background="#FF448DCA"/>
                                    <Rectangle x:Name="BackgroundGradient">
                                        <Rectangle.Fill>
                                            <LinearGradientBrush EndPoint=".7,1" StartPoint=".7,0">
                                                <GradientStop Color="#FFFFFFFF" Offset="0"/>
                                                <GradientStop Color="#F9FFFFFF" Offset="0.375"/>
                                                <GradientStop Color="#E5FFFFFF" Offset="0.625"/>
                                                <GradientStop Color="#C6FFFFFF" Offset="1"/>
                                            </LinearGradientBrush>
                                        </Rectangle.Fill>
                                    </Rectangle>
                                </Grid>
                            </Border>
                            <ContentPresenter x:Name="contentPresenter" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/>
                            <Rectangle x:Name="DisabledVisualElement" Fill="#FFFFFFFF" RadiusX="3" RadiusY="3" IsHitTestVisible="false" Opacity="0"/>
                            <Rectangle x:Name="FocusVisualElement" Stroke="#FF6DBDD1" StrokeThickness="1" RadiusX="2" RadiusY="2" Margin="1" IsHitTestVisible="false" Opacity="0"/>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="#FFFCFAFA">
        <Button Height="47" Margin="230,158,287,0" VerticalAlignment="Top" Content="Button" Style='{StaticResource ButtonGlass}'/>
    </Grid>
</UserControl>

SilverLight 4 Beta: Nuevas Caracteristicas

Hola,

Gracias al Twitter logre enterarme de la salida de la beta de SilverLight 4 (lo hicieron publico en la Conferencia de desarrolladores de Professional de Microsoft (PDC), donde Scott Guthrie dio la gran noticia) cosa que me llama full la atención ya que incorpora una serie de funcionalidades súper excelentes que empezare a nombrar a continuación:

General

  1. Soporte de impresión
  2. Diseño implícita
  3. Soporte WebCam/micrófono
  4. Control de RichTextArea
  5. Eventos de botón derecho del ratón
  6. Acceso al Portapapeles
  7. Soporte UDP/multicast en red
  8. Hospedaje de HTML dentro de Silverlight 4
  9. Brocha HTML
  10. Acceso a Archivos Locales
  11. ViewBox
  12. Soporte para Google Chrome

Fuera de las mejoras de explorador

  1. Elevación de confianza  del control WebBrowser la ventana de notificación de Windows (por ejemplo, Outlook popup)
  2. Integración de COM

Mejoras de enlace de datos

  1. Enlace a DependencyObjects (utilizado para ser FrameworkElement)
  2. Extensión de marcado de StringFormat
  3. Extensión de marcado de TargetNullValue
  4. Extensión de marcado de FallbackValue
  5. Soporte para IDataErrorInfo y INotifyDataErrorInfo nueva para la generación de informes de errores de validación.
  6. Enlace a la cadena indizadores
  7. Soporte de GroupDescription en CollectionViewSource para la agrupación simplificada.

Quieres saber un poquito mas entra en: http://bit.ly/3UdQzS

Expression Design: Efecto de humo girando

Bueno este post es motivado a un articulo encontrado en la siguiente dirección: http://bit.ly/1JXgpX y como se encuentra en ingles me tome el atrevimiento de crear un articulo nuevo basándome  en la explicación de Timmy Kokke, en cortas palabras colocar un poco mas a nuestro lenguaje 🙂

Hacer el efecto de humo girando en lo personal debía utilizar un software que generara 3D por lo que aprender a usarlo me tomo un poquito de tiempo y el cual no le di importancia después, por ello al ver el articulo me di cuenta que en una herramienta al cual muchas personas me han dicho que le falta para llegar hacer como las herramientas de Diseño profesionales ya conocidas pues aun trato de rescatar esa imagen al menos en mi país 🙂 debido a que cada ves encuentro mas artículos y mas documentación que demuestran la potencia de Expression Design.

Sin mas bla bla bla y puedes entrar en esta dirección http://bit.ly/1X3iJB y ver como se logro hacer las siguientes imágenes:

 

 

image     Efectos

Espero que les guste.

Training Kit: Visual Studio 2010 y .net Framework 4.0

Con motivo de esta disponible para descarga el de Visual Studio 2010 beta 2 les dejo el training kit para que empiecen a jugar con el, aja pero que hay dentro del training kit pues esto:

Link de Descarga del Training Kit: http://bit.ly/TrainingKitBeta2VS2010

Link de Descarga de la Edición Express (Facilitado por @shanselman ISO): http://bit.ly/2NuaZH

Link de Descarga Visual Studio 2010: http://bit.ly/VisualStudio2010

Presentations

  • What’s New in .NET Framework 4
  • What’s New in Visual Studio 2010
  • Introduction to ASP.NET MVC
  • Introduction to Managed Extensibility Framework
  • Introduction to .NET RIA Services
  • Introduction to “Velocity”
  • Parallel Computing for Managed Developers
  • Web Deployment with Visual Studio 2010
  • What’s New in ASP.NET AJAX 4
  • What’s New in ASP.NET Web Forms 4
  • What’s New in C# and VB
  • What’s New in ADO.NET Data Services
  • What’s New in Entity Framework 4
  • What’s New in Windows Presentation Foundation 4
  • What’s New in Windows Workflow 4

Hands-On Labs

  • Introduction to ADO.NET Data Services
    • Exercise 1: Creating and Consuming ADO.NET Data Services
    • Exercise 2: Consuming ADO.NET Data Services using ASP.NET AJAX
    • Exercise 3: Extending Data Services with Service Operations and Interceptors
    • Exercise 4: Adding Client-Side Paging with Row Count
  • ASP.NET AJAX 4
    • Exercise 1: Leveraging a Client-Side Template
    • Exercise 2: Using the DataView Control
    • Exercise 3: Creating Custom Markup Extensions
    • Exercise 4: Declaratively Instantiating Behaviors
  • Creating Plan My Night – ASP.NET MVC Application
    • Exercise 1: Creating an ASP.NET MVC Application, Plan My Night
    • Exercise 2: Creating Entity Framework Data Model
    • Exercise 3: Adding AJAX For Searching Activities
  • Enhancing Plan My Night – ASP.NET MVC Application
    • Exercise 1: Adding Caching using “Velocity”
    • Exercise 2: Structuring an Application using MVC Areas
  • Introduction to ASP.NET Web Forms 4
    • Exercise 1: Controlling Server Control ClientIds
    • Exercise 2: Enabling Bi-Directional Routing Support
    • Exercise 3: Granular ViewState
  • Microsoft Office Programmability in C# and Visual Basic
  • Introduction to F#
    • Exercise 1: Types in F#
    • Exercise 2: Using the Let keyword
    • Exercise 3: Functions
    • Exercise 4: Lists
    • Exercise 5: Pattern Matching and Recursion
    • Exercise 6: Types and Discriminated Unions
  • Introduction to the Managed Extensibility Framework
    • Exercise 1: Using MEF To Dynamically Add Modules to an Application
    • Exercise 2: Dynamically extending a form
  • Introduction to “Velocity”
    • Exercise 1: Setting up and running “Velocity”
    • Exercise 2: Programming directly against “Velocity” as a generic object cache
    • Exercise 3: Using Velocity’s SessionState provider with ASP.NET
    • Exercise 4 (Optional): Configure “Velocity” Cache in a cluster
  • Introduction to Workflow 4
    • Exercise 1: Hello Workflow
    • Exercise 2: Refactoring Workflows
    • Exercise 3: The CodeActivity
    • Exercise 4: Dynamic Workflows with XAML
    • Exercise 5: Testing Workflows
    • Exercise 6: WorkflowApplication
    • Exercise 7: Adding If/Else Logic
    • Exercise 8: Error Handling
    • Exercise 9: Activity Designers
    • Exercise 10: Hosted Designer
  • Introduction to Parallel Extensions
    • Exercise 1: Parallelize existing algorithm using static Parallel helper class
    • Exercise 2: Create and run parallelized Tasks
    • Exercise 3: Using the Task<T> class to create and run tasks that return a value
    • Exercise 4: Parallelizing LINQ queries using PLINQ
  • Test-Driven Development in Visual Studio 2010
  • WCF Service Discovery
    • Exercise 1: Ad-Hoc Discovery
    • Exercise 2: Metadata Extensions
    • Exercise 3: Announcements
    • Exercise 4: Discovery Proxy
    • Exercise 5: Legacy Discovery
  • Web Development in Visual Studio 2010
    • Exercise 1: Using HTML Code Snippets
    • Exercise 2: Web.config Transformations
    • Exercise 3: Packaging and Deploying Web Applications
    • Exercise 4: Packaging and Deploying Web Applications for IIS
  • Building a Data-Driven Master/Detail Business Form using WPF 4
  • Multi-touch Gesture – MFC
  • Multi-touch WMTouch – MFC
  • Ribbon – MFC
  • Taskbar – MFC

Demos

  • ContosoAutomotive (Parallel Extensions + MEF + WPF)
  • AdventureWorks AJAX
  • ASP.NET AJAX Ten-In-One
  • Managed Languages Ten-In-One
  • Barrier
  • CountdownEvent
  • Hello Visual Studio 2010
  • Introduction to the Managed Extensibility Framework
  • Parallel Baby Names
  • Parallel For Loop
  • Parallel LINQ (PLINQ)
  • Parallel Tasks
  • “Velocity”

Que hay de Nuevo en C# 4.0

Hola a todos

Aquí les menciono las nuevas características de C# 4.0:

Lenguaje y Compilador

Soporte Dinámico: proporciona compatibilidad con enlace a tipos dinámicos mediante la introducción de un nuevo tipo, dynamic. Esta adición permite muchos nuevos escenarios, incluido el acceso simplificado a las API de COM , como las API de automatización de Office, API dinámicas como las bibliotecas de IronPython y el modelo de objetos de documento de HTML (DOM). Mas info en: Usando Tipo dynamic y dynamic.

Programación en Office: Acceso a las interfaces COM, incluyendo las API de automatización de oficina, se ha mejorado enormemente mediante la adición de argumentos con nombre y opcionales, tipo dinámico, propiedades indizadas y modificadores ref opcional. Mas info en: Cómo: utilizar indexado propiedades en la programación de interoperabilidad COM, y Cómo: objetos de interoperabilidad de Office Access utilizando las características  de Visual C# 2010

 Nota: esto es una humilde traducción por lo tanto me disculpan si encuentran errores de traducción, el articulo original esta en el siguiente enlace en Ingles:

What’s New in Visual C# 2010

Nota el resto de la traducción se encuentra en: http://ajdev.net/Publicacion/Articulo/23.aspx

Escribiendo un cliente de Twitter con .NET Compact Framework y LINQ para XML

Después de estar enfrascado por medio día realizando mi propio notificador y lector de Twitter me encontré con el post que realizo el Fernando Loera en el Facebook con respecto a un post de Carlos Pérez. Pero bueno ya logre mi cometido y les envió esta info por si alguien necesita o desee crear cosas con la API de Twitter.

Twitter ha tomado mucha relevancia, como un vinculo de comunicación que ganó muchos adeptos en todo el mundo. Si bien existen varias formas de actualizar nuestro estado, la idea aqui es codificar un sencillo cliente de Twitter que corra en Windows Mobile, utilizando un WinForm, es decir, una aplicación inteligente a bordo del teléfono.

Preliminares

La API de Twitter se encuentra documentada en una wiki,: http://apiwiki.twitter.com/. Sin embargo, acceder desde .NET Compact Framework involucra ciertos detalles que no están explicitadas claramente en dichos documentos.

Esencialmente, la idea es que las actualizaciones de estado se realizan haciendo un requerimiento HTTP (HTTP request) a una página web, cuya URL tiene el siguiente patrón:

http://twitter.com/statuses/update.format

Donde format es el formato del requerimiento. Puede ser xml o json. En el primer caso, la página requerida es un documento xml: http://twitter.com/statuses/update.xml

En el segundo caso, http://twitter.com/statuses/update.json , se utilizaría JSON = Java Script Object Notation, el cual es un formato liviano para intercambio de información. Como XML ,tiene interpretación de lectura humana, y es fácil procesar (parsing) automáticamente. JSON utiliza dos estructuras para intercambiar datos: (1) una colección de pares ordenados (nombre/valor), o bien (2) una lista ordenada de valores, es decir , una matriz de valores. Para mayores datos acerca de este formato, podemos visitar http://www.json.org/

En nuestro caso, optamos por acceder utilizando la página en formato XML. De esta forma, la secuencia de acciones sería de tres pasos, a saber:

  • enviar un requerimiento HTTP a la página http://twitter.com/statuses/update.xml , donde en la cabecera se envían los datos de usuario, contraseña, versión de protocolo utilizado, y datos que representan la actualización de estado (máximo 140 caracteres en este campo data).
  • recuperar la respuesta, que obviamente sería la página http://twitter.com/statuses/update.xml, la cual contendrá la información generada por la API de twitter acerca del resultado de nuestro intento de actualizar estado. Este es un documento XML, por lo cual..
  • procesar la respuesta utilizando LINQ for XML en .NET CF, que es una forma muy directa de manejar los documentos XML.

En resumen, es un mecanismo REST: al enviar el request HTTP, se incluye allí la información (en el campo data del request) que se desea actualizar, capturar la respuesta y procesarla eventualmente.

Leer Mas de este articulo aquí: http://logica10mobile.blogspot.com/2009/10/escribiendo-un-cliente-de-twitter-con.html

Tips & Trucos: Windows 7

Si está actualizando desde Windows Vista o escalando desde Windows XP, Windows 7 ofrece un gran número de mejoras de la versión anterior de Windows. El artículo de TechNet ofrece una gran cantidad de consejos de productividad. Aquí es una muestra de métodos abreviados de teclado de Windows 7.

Tecla Windows + H – ventana actual de mover a pantalla completa
tecla Windows + I – restaura la ventana actual de pantalla completa al tamaño normal o minimiza la ventana actual si no la pantalla completa
Tecla Windows + Shift + flecha – ventana actual de mover a pantalla alternativo
Tecla Windows + D – minimizar todas las ventanas y mostrar el escritorio
Tecla Windows + E – inicio Explorer con equipo como el foco
Tecla Windows + F – inicio de una ventana de búsqueda
Tecla Windows + G – ciclo a través de los gadgets
Tecla Windows + L – bloquear el escritorio
Tecla Windows + M – minimizar la ventana actual
Tecla Windows + R – abrir la ventana ejecutar
Tecla Windows + T – ciclo a través de la barra apertura inspeccionar Aero para cada elemento de la ejecución de tareas
Tecla Windows + U – abrir el centro de la facilidad de uso
Tecla Windows + espacio – Aero inspeccionar el escritorio
Ctrl + tecla Windows + Tab – ventana de selección de Open tarea persistente, desplace el ratón sobre cada icono para obtener una vista previa de elemento y minimizar otros

 

Publicado en: http://ajdev.net/Publicacion/Articulo/22.aspx

Documentacion en Español de SilverLight 3

En el Blog de Fernando Loera me encontrado con una información súper genial y es la documentación en Español de SilverLight 3 asi qeu aqui les dejo los enlaces:

“Por cortesía del Maestro y buen amigo Daniel Seara me entere que por fin ya está disponible en Español la documentación de Silverlight 3.0

Aquí el contenido:

Recursos externos

Introducción a la programación a través de Desarrollo de juegos con Microsoft XNA Game Studio

Visitando el Blog del MVP Lead de Latinoamérica Fernando García Loera me encontré con este interesante Post:

Me encontré con este excelente recurso en el Faculty Resource Center que ayuda a entender XNA desde cero, este contenido esta creado para ser impartido en aula lo cual es un excelente noticia para todos aquellos que son maestros, aquí el detalle.

Les recomiendo mucho visitar el Faculty Resource Center y el Faculty Connection