Windows 10 Developer Readiness – Videos en Channel 9

Ahora que se ha liberado Windows 10, Visual Studio 2015 y el SDK de Windows 10, está todo listo para empezar a desarrollar aplicaciones para la Plataforma Universal de Windows.

Si tienen interés en empezar a desarrollar aplicaciones UWP, les dejo aquí algunos recursos que les pueden ser de utilidad.

Videos en Channel 9 del entrenamiento Windows 10 Developer Readiness.

  1. Presentando a la Plataforma Universal de Windows
  2. El viaje de convergencia
  3. La Plataforma Universal de Windows
  4. Demo: Hola, Dispositivos
  5. Aplicación Windows
  6. Extensiones de la Plataforma
  7. Resumen
  8. Tecnologías Microsoft para desarrollo
  9. Tecnologías Puente (bridge technologies)
  10. Diseño Adaptativo
  11. Demo: Diseño Adaptativo
  12. Código Adaptativo
  13. Demo: Código Adaptativo
  14. IDE Visual Studio
  15. Microsoft .NET Native
  16. Presentando a “Template 10”

Pueden acceder a estos mismos videos y a manuales de apoyo en formato PDF de forma gratuita a través del entrenamiento en aula virtual de TI capacitación en el siguiente enlace:

http://ticapacitacion.com/promociones/win10dev.html

Finalmente, este es un video en Channel 9 del evento Windows 10 Developer Readiness del 9 de Junio pasado.

https://channel9.msdn.com/Events/MVP-Virtual-Conference/Windows-10-Developer-Readiness-Powered-by-MVPs/Colombia/player

Saludos!

Publicado en C#, Universal Windows Platform, Windows 10 | 1 Comentario

¿Y su Nube de que la quiere? ¿Administrada o no Administrada?

Hace unos años cuando se daba a conocer lo que antes era Windows Azure, hoy Microsoft Azure, empecé a explorar sus servicios. Tuve la oportunidad de trabajar en un proyecto de entrenamiento sobre Azure para toda habla hispana junto con Rubén Mugártegui que en aquel entonces trabajaba en Microsoft México.

El entrenamiento se realizó en línea sobre una plataforma de Aula Virtual desarrollada con tecnología Microsoft y corriendo sobre la misma Nube: Azure.

En aquellos tiempos, los servicios que ofrecía Azure eran pocos, prácticamente alcanzamos a cubrir todos los servicios en un entrenamiento de 6 semanas.

Hoy en día, los servicios que ofrece Azure han aumentado considerablemente, tan considerablemente que se necesitarían diversos entrenamientos para poder cubrir el rango actual de servicios que ofrece.

Los servicios que ofrece Microsoft Azure son de primer nivel. Una persona acostumbrada a trabajar con productos Microsoft podría utilizar los servicios sin mucho problema y, hasta cierto punto, sin ayuda. Quiero hacer énfasis en “hasta cierto punto” ya que considero que los servicios que ofrece Microsoft Azure aumentan rápidamente que no creo que haya una persona que pueda ser experta en absolutamente todos los servicios. En la actualidad, la evolución constante de Microsoft Azure y la adición de nuevas características, pueden hacer de Azure todo un desafío para adoptarlo y administrarlo. 

Pero, ¿Qué pasa con personas que no están familiarizadas con las tecnologías Microsoft y que desean utilizar los servicios de la nube Microsoft Azure? Mi punto de vista es que necesitan el apoyo de los expertos. Microsoft Azure ofrece toda su infraestructura de cómputo en la Nube pero da la impresión de que hace falta la cercanía y la presencia del soporte técnico humano, alguien que esté a tu lado dándote soporte en todo momento para que hagas un buen uso de la infraestructura de cómputo.

Microsoft se apoya de Partners para dar soporte a sus productos.

Una noticia que me pareció muy interesante es que ahora Rackspace con todo el Soporte Fanático que lo caracteriza, ha anunciado su Soporte Fanático para Microsoft Azure, una solución de nube administrada que reduce la complejidad de Azure proporcionando planificación, guía y asistencia en la implementación.

A través del Soporte Fanático para Microsoft Azure de Rackspace, podemos utilizar todo lo que ofrece Microsoft Azure con un valor agregado de soporte, monitoreo proactivo, actualizaciones, antivirus y el acceso 24x7x365 a ingenieros expertos en Windows y Linux de Rackspace que pueden ayudarnos cuando tengamos algún problema.

Al dejar a Rackspace la responsabilidad de la administración de la Nube, nos aseguramos de obtener lo mejor de Microsoft Azure.

En el siguiente enlace pueden encontrar más información sobre el Soporte Fanático para Microsoft Azure de Rackspace.

http://www.rackspace.com/microsoft/managed-azure-cloud

Y ustedes ¿Cómo prefieren su Nube Azure? ¿Administrada o no Administrada?

Saludos.

Publicado en Cloud Computing, Windows Azure | Deja un comentario

Consumiendo una Web API desde una aplicación de la Plataforma Universal de Windows

En esta guía, describiremos los pasos necesarios para consumir una Web API a través de una aplicación UWP.  La aplicación será desarrollada implementado el patrón MVVM.

El siguiente enunciado describe el objetivo de la aplicación que realizaremos.

“Desarrollar una aplicación UWP que permita generar un código de invitación para participar en el entrenamiento Windows 10 Developer Readiness. La aplicación deberá solicitar el Nombre, Apellidos y Correo electrónico de la persona interesada y una vez que los datos sean proporcionados, la aplicación proporcionará a la persona interesada un código con el cual podrá participar en el entrenamiento.

Para obtener el código de invitación, la aplicación enviará los datos proporcionados por el usuario a una Web API, la Web API devolverá como respuesta el código de invitación.”

Requisitos:

Al momento de realizar esta guía, las versiones finales de Windows 10 y Visual Studio 2015 no se han liberado, por lo tanto, utilizaremos lo siguiente:

  • Windows 10 Insider Preview Build 10130. Únete al Programa Windows Insider que ofrece información privilegiada. Sigue las instrucciones para instalar Windows 10 Insider Preview en el siguiente enlace: http://insider.windows.com/

  • Microsoft Visual Studio 2015 RC. El SDK de Windows 10 y todas las herramientas, emuladores, bibliotecas, encabezados y otros archivos que necesitas para desarrollar aplicaciones para Windows 10 se incluyen en esta versión de Visual Studio. También se incluye una versión actualizada del Kit para la certificación de aplicaciones en Windows. No es necesario descargar ninguna otra herramienta para desarrollar aplicaciones para Windows 10.  Sigue las instrucciones del Programa Windows Insider para instalar las herramientas de desarrollo de Windows 10 para Visual Studio 2015 RC en el siguiente enlace: https://go.microsoft.com/fwlink/p/?LinkId=534785
  • Plantilla Template 10 Blank.  Esta es una plantilla exportada de un proyecto de Visual Studio y forma parte del proyecto Template 10. Se recomienda el uso de la plantilla Blank como base para el desarrollo de aplicaciones UWP ya que proporciona implementaciones importantes de muchos de los Patrones, entre ellos MVVM, necesarios para construir aplicaciones UWP ricas y fáciles de mantener. Para obtener la versión más reciente de esta plantilla puedes acceder al repositorio Git en la dirección: http://aka.ms/template10. La versión que utilizaremos en esta guía puedes descargarla en el siguiente enlace: Blank.

Tarea 1: Instalar la plantilla Template 10 Blank 

  1. Abre una ventana del Explorador de Archivos de Windows y navega a This PC > Documents > Visual Studio 2015 > Templates > ProjectTemplates > Visual C#.
  2. Crea una nueva carpeta llamada Template10.
  3. Abre la carpeta Template10 y copia ahí el archivo Blank.zip.
  4. Para verificar que la plantilla se haya instalado correctamente, abre Visual Studio 2015.
  5. Crea un nuevo proyecto utilizando la plantilla Blank. La plantilla se encontrará en el nodo Installed > Templates > Visual C# > Template10.

image

Tarea 2: Crear el Modelo de la aplicación

  1. La Web API que consumiremos recibe los datos a través de un objeto Student. Agrega la siguiente clase Modelo en la carpeta Models de la aplicación.

  2. public class Student
    {
        public string FirstName { get; set; } = string.Empty;
        public string LastName { get; set; } = string.Empty;
        public string Email { get; set; } = string.Empty;
    }

  3. La Web API que consumiremos devuelve el código de invitación a través de un objeto Token. Agrega la siguiente clase Modelo en la carpeta Models de la aplicación.
  4. public class Token
    {
        public string Value { get; set; } = string.Empty;
    }

  5. El código de acceso a datos lo pondremos en una clase Modelo que servirá de repositorio. Agrega la siguiente clase Modelo en la carpeta Models de la aplicación.
  6. public static class Repository
    {
    }

  7. En la clase Repository agregaremos un método con el código para invocar a la Web API y obtener el código de invitación.  Agrega el siguiente código para importar el espacio de nombres que tiene la clase HttpClient. A través de esta clase consumiremos la Web API.

    using System.Net.Http;

  8. La Web API recibe y devuelve el resultado en formato JSON. Para poder serializar y Deserializar la información, utilizaremos la clase JsonConvert disponible en el Framework Newtonsoft.Json. Agrega a la aplicación, la referencia al paquete NuGet Newtonsoft.Json.

    image

  9. Agrega a la clase Repository el siguiente código para importar el espacio de nombres que define la clase JsonConvert.

    using Newtonsoft.Json;

  10. Agrega el siguiente código a la clase Repository para definir el método GetToken que enviará los datos a la Web API y devolverá el Código de Invitación que obtendrá como respuesta de la llamada a la Web API.
  11. public static string GetToken(Student data)
    {
        string Token = null;

        // Definir el URL de la aplicación Web API
        string URLWebAPI = “http://mvdemos.cloudapp.net/Win10/ “;

        // Crear un objeto HttpClient para acceder a la Web API
        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri(URLWebAPI);

        // Especificar que estamos aceptando datos JSON
        client.DefaultRequestHeaders.Accept.Add(
            new System.Net.Http.Headers.
            MediaTypeWithQualityHeaderValue(“application/json”));

        // Serializar los datos del estudiante a formato JSON
        string StudentJSON = JsonConvert.SerializeObject(data);

        // Obtener un tipo HttpContent para pasarlo en la petición
        StringContent Content = new StringContent(StudentJSON,
            System.Text.Encoding.UTF8, “application/json”);

        // Realizar la llamada al recurso Web API y obtener la respuesta
        HttpResponseMessage response = client.PostAsync(
            “api/Win10Dev”, Content).Result;

        // Verificar si la respuesta fue exitosa
        if (response.IsSuccessStatusCode)
        {
            // Deserializar el resultado obtenido
            Token token =
                JsonConvert.DeserializeObject<Token>(
                    response.Content.ReadAsStringAsync().Result);
            // Obtener el valor del código de invitación
            Token = token.Value;
        }
        else
        {
            // La respuesta no fue exitosa. Devolver el estatus de error.
            Token = string.Format(“{0} ({1})”,
                response.StatusCode, response.ReasonPhrase);
        }
        return Token;
    }

Tarea 3: Definir el ViewModel de la aplicación

  1. Abre el archivo ViewModels\MainPageViewModel.cs.
  2. Importa el espacio de nombres de la carpeta Models.
  3. Modifica la clase MainpageViewModel para definir el ViewModel de la aplicación. La clase deberá ser similar a la siguiente.
  4. public class MainPageViewModel : Mvvm.ViewModelBase
    {
        public Student Student{ get; set; }= new Student();

        private string _Token = string.Empty;
        public string Token { get { return _Token; } set { Set(ref _Token, value); } }

        public void Send()
        {
            Token = Repository.GetToken(Student);
        }
    }

Tarea 4: Definir la Vista de la aplicación

  1. Abre el archivo Views\MainPage.xaml.
  2. En la vista XAML, remplaza el contenido del control RelativePanel para que quede de la siguiente forma.
  3. <RelativePanel Padding=”12,0,0,0″ Grid.Row=”1″
                          MaxWidth=”900″ HorizontalAlignment=”Center”>
               <Image x:Name=”Image” Source=”/Images/Windows10.PNG” MaxWidth=”900″ Margin=”10″ />
               <TextBox x:Name=”FirstName”  Margin=”10″
                        Header=”Nombre:” Width=”200″ 
                    Text=”{x:Bind ViewModel.Student.FirstName, Mode=TwoWay}”
                                RelativePanel.Below=”Image” />

               <TextBox x:Name=”LastName” Margin=”10″
                        Header=”Apellidos:” Width=”200″
                        Text=”{x:Bind ViewModel.Student.LastName, Mode=TwoWay}”
                        RelativePanel.Below=”FirstName”/>

               <TextBox x:Name=”Email” Margin=”10″
                        Header=”Correo Electrónico” Width=”300″
                        Text=”{x:Bind ViewModel.Student.Email, Mode=TwoWay}”
                        RelativePanel.Below=”LastName”/>

               <Button x:Name=”Send” Margin=”10″
                       Content=”Solicitar código”
                           Click=”Send_Click”   
                           RelativePanel.Below=”Email”
                           Background=”#0080FF” Foreground=”white”/>

               <TextBox x:Name=”Token” Margin=”10″
                        Header=”Código de invitación” Width=”300″
                        Text=”{x:Bind ViewModel.Token, Mode=TwoWay}”
                        RelativePanel.Below=”Send”
                         />
           </RelativePanel>

  4. Examina detenidamente el código XAML agregado .
    El código está utilizando un nuevo tipo de enlace conocido como Compiled Binding. Este nuevo tipo de Enlace requiere que las propiedades que se están enlazando se encuentren definidas en la clase MainPage, en otras palabras, en el code-behind. Abre el archivo code-behind MainPage.xaml.cs.
  5. Localiza la siguiente línea de código en el constructor de la clase.

    DataContextChanged += (s, e) => ViewModel = DataContext as MainPageViewModel;

    Este código, almacena en la propiedad ViewModel definida líneas más abajo en el mismo archivo, el valor del Contexto de Datos (una instancia del ViewModel) para permitir el enlace a datos compilado.

  6. En la clase MainPage, agrega el siguiente código para invocar al método Send definido en el ViewModel cuando el usuario dé Clic en el botón “Solicitar código”.
  7. private void Send_Click(object sender, RoutedEventArgs e)
    {
        ViewModel.Send();
    }

  8. Compila y ejecuta la aplicación.
    Deberá mostrarse la aplicación similar a la siguiente.

    image

  9. Proporciona tu Nombre, Apellidos, Correo y da clic en Solicitar código.
    Te será mostrado el código de invitación.

    image

Con este paso hemos finalizado la creación de la aplicación. Espero les sea útil.

 

 

 

   

 

Publicado en C#, Universal Windows Platform, UWP, Windows 10 | Deja un comentario

Nubes Administradas

Una nube administrada nos permite emplear la potencia de su infraestructura de Cómputo para resolver nuestras necesidades y cumplir con nuestros objetivos comerciales sin la frustración, el costo y el tiempo que consume administrar los servicios nosotros mismos.

Una Nube administrada pone a nuestra disposición toda su infraestructura de Cómputo pero lo más valioso es que además la administra por nosotros. El valor real de una Nube Administrada es el soporte que recibimos a través de sus recursos humanos que pueden asesorarnos y apoyarnos a implementar y administrar nuestras aplicaciones en la Nube.

Hoy en día hay cada vez más oportunidades para implementar soluciones en la Nube.

Experimenta una Nube Administrada

Si estás pensando seriamente en implementar una solución en la Nube y necesitas asesoría y apoyo, puedes aprovechar la oferta que tiene Rackspace para experimentar la Nube Administrada.

Rackspace tiene un programa de apoyo que ofrece $250 dólares durante 4 meses para que puedas tener acceso a los productos de su nube pública y lo mejor de ello es que te proporciona acceso completo a su Soporte Fanático (Fanatical Support) las 24 horas del día, los 7 días de la semana durante todo el año.

Conoce más de este programa en la siguiente dirección: http://go.rackspace.com/latam_trials_qualification.html

¡Saludos!

Publicado en Cloud Computing | Deja un comentario

¿Microsoft Azure o Rackspace?

Para entrar un poco en contexto sobre el título de este artículo, debo comentarles que desde el año 2010 he estado trabajando con los servicios que ofrece la nube pública de Microsoft llamada Azure y recientemente desde el año pasado he estado explorando los servicios que ofrece Rackspace.

La pregunta típica que me hice y que me han hecho algunas personas es ¿Quién es mejor, Microsoft Azure o Rackspace?

La respuesta a esta pregunta puede ser distinta dependiendo de las necesidades de cada empresa o negocio.

Microsoft Azure ofrece una amplia gama de tecnologías disponibles en sus centros de datos y listas para poder ser utilizadas. Adicionalmente, Microsoft Azure proporciona soporte técnico cuando es requerido.

Rackspace ofrece soluciones a las necesidades de las empresas. Para Rackspace las tecnologías de cómputo en la nube son importantes pero es más importante hacer un uso correcto y apropiado de esas tecnologías para ayudar a resolver las necesidades de negocio.

Microsoft Azure es recomendable para negocios que requieran ellos mismos administrar los servicios de cómputo en la nube que ofrece Azure. Esto requiere de un buen nivel técnico de conocimientos por parte de las empresas para hacer un uso correcto y apropiado de los recursos. En cualquier momento, pueden solicitar el apoyo del personal de soporte de Microsoft Azure.

Rackspace es recomendable para negocios que no requieran, por ellos mismos, administrar los servicios de cómputo en la nube y dejan que el personal capacitado de soporte (conocidos como Rackers) lo haga por ellos. Esto permite el uso correcto y apropiado de los recursos de la nube de cómputo y permite que las empresas se enfoquen principalmente en resolver sus necesidades de negocio sin preocuparse por cuestiones de manejo de la infraestructura de cómputo.

En pocas palabras, cuando contratas Microsoft Azure, contratas servicios e infraestructura de cómputo. Adicionalmente puedes obtener la ayuda del personal de soporte técnico.

Cuando contratas Rackspace, contratas al personal de soporte técnico para que te ayude a crear soluciones con sus servicios e infraestructura de cómputo.

Si te interesa que alguien te administre tu infraestructura de cómputo en la nube para que tú puedas enfocarte únicamente en resolver las necesidades propias de tu negocio, piensa en Rackspace.

Si te interesa utilizar y administrar los servicios de cómputo en la nube además de resolver las necesidades propias de tu negocio, piensa en Microsoft Azure.

¿Qué me gusta de Microsoft Azure? Que la mayor parte de sus productos están diseñados para utilizarse muchas veces sin la necesidad de soporte técnico. Un desarrollador de tecnologías Microsoft puede beneficiarse de todas las herramientas Microsoft que se integran perfectamente para desarrollar aplicaciones diseñadas específicamente para la nube.

¿Qué me gusta de Rackspace? El soporte fanático (Fanatical Support) que me da la seguridad de que ante cualquier problema que se escape de mis habilidades tecnológicas, siempre habrá alguien que me ayude a solucionarlo o incluso recomendarme la solución tecnológica más apropiada de acuerdo a mis necesidades. Varios Microsoft MVPs forman parte del grupo de Rackers que dan soporte a productos Microsoft que Rackspace ofrece a sus clientes.

Rackspace y Microsoft tienen una asociación de larga duración hospedando aplicaciones empresariales. Rackspace, ha sido nombrado en cuatro ocasiones como Mejor socio de hospedaje del año de Microsoft ya que proporciona Fanatical Support a más de 10 mil instancias de cómputo que ejecutan Microsoft SQL Server.

Cuando pienso en Microsoft Azure lo relaciono con productos y servicios en la nube respaldados por expertos.

Cuando pienso en Rackspace lo relaciono con expertos ayudándote a administrar los productos y servicios en la nube.

Después de esto que acabo de exponer, viene a mi mente la cuestión de las suscripciones de prueba (Trial).

En una suscripción de prueba, Microsoft Azure te proporciona gratuitamente el uso de un grupo de productos mientras que Rackspace te proporcionaría gratuitamente el tiempo de un grupo de personas. ¿Qué será más caro, el tiempo de un grupo de productos o el tiempo de un grupo de personas? Si entramos al sitio de Microsoft Azure lo primero que saltará a la vista es la oferta de suscripciones de prueba, cosa que no sucede con Rackspace.

Puedo enumerar más características de ambas nubes, sin embargo, no quiero hacer tediosa la lectura Sonrisa

Vale la pena comentar que las opiniones plasmadas en este artículo son personales y que acepto las correcciones y comentarios que mis amigos de Microsoft Azure y Rackspace puedan hacer.

Les dejo aquí algunos enlaces que pueden ayudar a complementar lo que escribo aquí.

Sitio de Microsoft Azure

Sitio de Rackspace

¿Qué es la Nube Todo Incluido (Managed Cloud)?

Cinco razones por las que Rackspace hace que la adopción de MSSQL 2014 y la funcionalidad en memoria sea un proceso sencillo

Publicado en Varios | 5 comentarios

Información general sobre Windows Azure

Para aquellas personas interesadas en conocer acerca de Cómputo en la Nube (Cloud Computing) y Windows Azure, les dejo aquí unos videos donde se presenta información que puede serles de utilidad.
Contenido

¿Qué es la Nube?

Definición de Cómputo en la nube  (Cloud Computing)

Tipos de servicios de Cómputo en la Nube

¿Qué es Windows Azure?

Categorías de servicios Windows Azure

Publicado en Entrenamiento, Windows Azure | 1 Comentario

Modulo 1: Introducción al desarrollo de aplicaciones Windows Phone 8

Les dejo aquí el contenido del Módulo 1 del Entrenamiento Windows Phone 8 con Visual C#
La presentación del entrenamiento pueden encontrarla dando clic aquí.

Modulo 1: Introducción al desarrollo de aplicaciones Windows Phone 8

Publicado en C#, Entrenamiento, Windows Phone | 3 comentarios