Ing. Javier Leal

Ing. Javier Leal – Desarrollador FullStack


Deja un comentario

Convertir DataTable en List<Dictionary>

Hola de nuevo en esta ocasión quisiera compartir otra funcionalidad que me gusta mucho en arios proyectos el los que eh trabajado me he visto en la necesidad de utilizar Diccionarios debido a que brindan mucha escalabilidad sobre el desarrollo, a pesar de que reconozco que usando datos fuertemente tipados brinda un mejor performance para la aplicación, a veces dependiendo de las necesidades podemos sacrificar un poco de memoria por flexibilidad y escalabilidad todo dependiendo de el enfoque que vaya a tener la aplicación que se esta desarrollando.

Esta funcionalidad es bastante sencilla basta con utilizar esta simple linea de código que aprovecha las capacidades de LINQ.

DataTable table = dataSet.Tables[0];
List<Dictionary<string, object>> Result = table.AsEnumerable().Select(dr =>
{
    var dic = new Dictionary<string, object>();
    dr.ItemArray.Aggregate(-1, (int i, object v) =>
   {
        i += 1; dic.Add(table.Columns[i].ColumnName, v);
        return i;
    });
    return dic;
}).ToList();

Espero que les sea de mucha utilidad y no se olviden de agregar el namespace:

using System.Linq; 

Hasta las proxima.


Deja un comentario

Copiar en el portapapeles desde código

Buenas tardes amigos hoy traigo tips que pueden ser útiles para muchos a veces cosas simples necesitan ser documentadas y compartidas para luego poder ser recordadas fácilmente.

Comenzaremos con este simple e interesante

Copiar desde C Sharp (C #).


try

{


Clipboard.SetDataObject("Texto a Copiar", true);


MessageBox.Show("Texto copiado al portapapeles de Windows.",


"Copiado");


}


catch (Exception err)


{


MessageBox.Show("Error al copiar texto al portapapeles: " +


Environment.NewLine + err.Message, "Error al copiar");


}

Mas interesante aun cuando puede copiar lo que esta seleccionado dentro de un TextBox solo modificamos esta linea.

Clipboard.SetDataObject(TXTTexto.SelectedText, true);

Copiar en aplicaciones Web.

Para el caso que estés desarrollando algo Web también tenemos la posibilidad de realizar esta función desde JavaScripts:


function Copy(id_elemento) {
var aux = document.createElement(«input»);
aux.setAttribute(«value», document.getElementById(id_elemento).innerHTML);
document.body.appendChild(aux);
aux.select();
document.execCommand(«copy»);
document.body.removeChild(aux);
}

<p id=»c1″>Texto numero 1: Texto a copiar</p>
<p id=»c2″>Texto numero 2: Segundo Texto a copiar</p>
<button onclick=»Copy(‘c1’)»>Copiar el texto numero 1</button>
<button onclick=»Copy(‘c2’)»>Copiar el segundo</button>
<br/><br/>
<input type=»text» placeholder=»Prueba aca» />

Espero les guste y les sea muy útil.


Deja un comentario

Azure desde el punto de vista de Desarrollo

Buenas noches amigos internautas, una estimada amiga me puso un reto interesante el cual quiero lograr, mi blog siempre sera para recordar todos los retos y a la vez compartir la información y simplemente se trata de lograr la certificación Developing Microsoft Azure Solutions Examen 70-532 y es por ello que empiezo parte de mi investigación comienza en este articulo donde espero lograr dar a entender sobre Azure desde el punto de vista de un desarrollador.

Muchos Dirían bueno eso debe ser algo mas orientado los IT que a developer pero no lo veo de esa manera, Azure puede brindar la oportunidad de realizar pruebas lo mas cercanas a un ambiente de producción integrando todo lo necesario para desarrollar, probar, implementar y administrar sus aplicaciones.

También brinda la gran posibilidad de empezar con tamaño pequeño para luego escalar fácilmente según el crecimiento y demanda sobre la aplicación y aun mas interesante azure tiene un API para administrar mediante código a continuación veremos los servicios que mas resaltan en azure para un enfoque de desarrollador:

Servicio de aplicaciones de Azure.

Este servicio permite crear sitios web bien sea hecho en ASP.NET o php, se puede admitir acceso movile con autenticación con redes sociales o aplicaciones de tipo API incluso crear las 3 en la misma solución debido a que comparten  el mismo tiempo de ejecución, si tienes una aplicación existente puedes migrarla a App service con el asistente de migración.

Acá cubrimos tres elementos  importantes para la certificación y se convertira en un indice de estudio que compartiré.

  • Aplicaciones  Web.
  • Aplicaciones Mobile Apps.
  • Aplicaciones API.

Maquinas virtuales de Azure,

Este servicio permite crear maquinas virtuales Windows o Linux algunas ya pre configuradas, otras totalmente básicas y la posibilidad de migrar una configuración existente en un servidor hacia una maquina virtual de azure, todo desarrollador siempre debe tener base sobre el servidor donde esta ejecutándose su aplicación, para este punto los puntos a tocar en el proceso de certificación serian.

  • Maquina Virtual Windows
  • Maquina Virtual Linux.

Azure Functions (Sin servidor)

Si simplemente tienes tu código y no quiere controlar todos los procesos del servidor function en la oferta de azure donde puede simplemente exponer tu código que se pueden ejecutar mediante solicitudes HTTP, por supuesto esto es totalmente de desarrollo y va a nuestra lista.

  • Azure Functions.

Azure service Fabric

Es una plataforma de sistemas distribuidos para facilitar la compilación, empaqueta miento, implementación, y administración de micro servicios escalables así como también servicios complejos, admiten Web API, ASP.NET Core con varios SDK para compilar en linux.

  • Azure service Fabric

Acceso a datos y almacenamiento Hospedado.

La mayoría de las aplicaciones debe almacenar datos y Azure no se queda atrás para este servicio importante para nuestras aplicaciones donde puedes octar por base de datos SQL Azure, Azure Storage o Azure DocumentBD donde obviamente es muy importante en el proceso de desarrollo e inclusive las posibilidades.

  • Azure SQL Database.
  • Azure Storage.
  • Azure DocumentDB.

Docker

Este punto aun no lo entiendo bien pero en lo que conseguí es una forma de virtualización del sistema operativo, le permiten implementar aplicaciones de forma más eficaz y predecible. Una aplicación en contenedores funciona en producción de la misma manera que en los sistemas de desarrollo y pruebas. Puede administrar los contenedores mediante las herramientas estándar de Docker, las siguiente son las alternativas Dicker en Azure.

  • Extensión de máquina virtual de Docker para Azure
  • Azure Container Service.
  • Docker Machine
  • Imagen de Docker personalizada para App Service.

Autenticación

Es muy importante para muchas aplicaciones llevar en control de acceso de usuarios así como administrar los diferentes permisos dependiendo de los diferentes roles de usuario azure proporciona 2 maneras que se puede implementar en los desarrollos.

  • Azure Active Directory (Azure AD).
  • Autenticación de App Service.

Supervisión

Cuando se crea una aplicación en azure es importante medir su rendimiento, controlar todo problema sus logs de esta manera poder mantener estable la plataforma que este en funcionamiento azure brinda las siguientes alternativas.

  • Visual Studio Application Insights
  • Azure Monitor

Implementación con DevOps

Comunicación, colaboración e integración son las bases de DevOps es una cultura que permite realizar la implementación continua tanto de aplicaciones web como para aprovisionar maquinas virtuales, es un punto interesantes pero que aun tengo mucho que aprender pero quizá es muy posible pueda empezar a explotar mucho si es lo que creo.

  • Implementación de DevOps en Aplicaciones Azure.

Los primeros puntos a cubrir para mi proceso de aprendizaje serán estos puntos en los que espero tener un articulo de blog en la cual mostrarle lo aprendo, igualmente existen muchos elementos a tomar en cuenta aparte a estos como las distintas regiones de los servidores de azure, la administración de las elementos que tenemos dentro de azure, los diferentes roles de acceso que son un punto mas que administración que de desarrollo pero debido a que existe un api de Azure para realizar todos estos elementos existe un punto de desarrodor en estos enfoques que no se pueden quedar atras de moemnto esto sera mi indice el plan de estudio para el examen y en enfoque de desarrollo en Windows Azire.


Deja un comentario

Consumir servicios REST con PHP

Un gran amigo me pidió hoy un favor de apoyar a un familiar a salir de una traba al momento de consumir un servicio REST desde PHP, indicándome estaba usando curl, inmediatamente en investigaciones me di cuenta de la dificultad que han tenido muchos desarrolladores para consumir servicios con curl.

Ya en otras ocasiones había consumido servicios REST con php pero no recordé haber usado curl y me pareció muy fácil y sencillo de utilizarlo pero antes de realizar cualquier ejemplo es muy importante entender lo que hace el servicio que estamos usando para realmente entender si nos esta funcionando o no.

Antes debemos entender que al usar un servicio REST estos emiten unos códigos que indican un mensaje satisfactorio o de error sobre tu invocación, estos códigos son los siguientes:

Tabla 1. Códigos de respuesta
Código de respuesta Mensaje Descripción
200 OK La operación ha finalizado correctamente.
201 Created El recurso se ha creado correctamente.
301 Moved Permanently Se conoce el recurso al que se hace referencia pero ha cambiado su URI.
400 Bad Request Error por parte del cliente genérico. Los datos de solicitud no son válidos.
403 Forbidden La solicitud se ha formado correctamente, pero el servidor no puede llevar a cabo la operación.
404 Not Found La URI especificada es desconocida para el servicio REST.
405 Method Not Allowed El recurso al que se hace referencia no soporta el método HTTP utilizado.
406 Not Acceptable El cliente ha especificado un tipo aceptado no soportado.
409 Conflict La solicitud ha intentado establecer el recurso en un estado incoherente o imposible.
415 Unsupported Media Type El servidor no reconoce el tipo de soporte especificado.
423 Locked No se ha podido llevar a cabo la operación solicitada puesto que el recurso está bloqueado.
500 Internal Server Error Se ha producido un error interno.

Al entender esto sabrás que al tener una respuesta 200 o 201 según sea el caso estas haciendo las cosas bien, también tenemos forma de probar esto sin necesidad de lanzar ninguna linea de código de esta manera nos aseguramos de la funcionalidad del servicio antes de comenzar a realizar código, hay muchos software para esto como POSTMANT o TELERIK FIDDLER el ultimo es mi preferido lo puede descargar de manera gratuita en esta URL: http://www.telerik.com/fiddler.

TEST REST

Realice una prueba del servicio que quiero usar y tengo una respuesta correcta por lo tanto puedo comenzar a realizar mi desarrollo PHP como muchos otros lenguajes tienen librerías desarrolladas por terceros que facilitan muchísimo la vida acá tenemos una que encontré en GIT HUB llamada php-restclient que se ve bastante fácil de utilizar y tenemos otro sitio web especializado en lo que necesitamos http://phphttpclient.com/.

En este caso utilizaremos php-restclient, procedemos a descargarlo de la URL (https://github.com/tcdent/php-restclient) al descargarla vemos los siguientes archivos:

restfiles

Lo primero que debemos hacer es crear una nueva carpeta en nuestro servidor local y copiar estos archivos y creamos uno llamado index.php para nuestra prueba, la duda realizada por un amigo fue como enviar un POST con los datos y esta seria la respuesta usando esta interesante API.

Utilizando POST

require ‘restclient.php’;
$TEST_SERVER_URL = «Your Server URL»;

$api = new RestClient;
$result = $api->post($TEST_SERVER_URL, «{\»foo\»:\»bar\»}»,
array(‘Content-Type’ => ‘application/json’));
$response_json = $result->decode_response();

$this->assertEquals(‘application/json’,
$response_json->headers->{«Content-Type»});
$this->assertEquals(‘POST’,
$response_json->SERVER->REQUEST_METHOD);
$this->assertEquals(«{\»foo\»:\»bar\»}»,
$response_json->body);

Ya es muy típico utilizar JSON en estos servicios, espero esto le sea de gran ayuda y a muchos, para terminar no solo en estos servicio se generan POST si no también GET, PUT, DELETE.

Utilizando GET

$api = new RestClient;
$result = $api->get($TEST_SERVER_URL, [
‘foo’ => ‘ bar’, ‘baz’ => 1, ‘bat[]’ => [‘foo’, ‘bar’]
]);
$response_json = $result->decode_response();
$this->assertEquals(‘GET’,
$response_json->SERVER->REQUEST_METHOD);
$this->assertEquals(«foo=+bar&baz=1&bat%5B%5D=foo&bat%5B%5D=bar»,
$response_json->SERVER->QUERY_STRING);
$this->assertEquals(«»,
$response_json->body);

Utilizando PUT

$api = new RestClient;
$result = $api->put($TEST_SERVER_URL, array(
‘foo’ => ‘ bar’, ‘baz’ => 1));
$response_json = $result->decode_response();
$this->assertEquals(‘PUT’,
$response_json->SERVER->REQUEST_METHOD);
$this->assertEquals(«foo=+bar&baz=1»,
$response_json->body);

Utilizando DELETE

$api = new RestClient;
$result = $api->delete($TEST_SERVER_URL, array(
‘foo’ => ‘ bar’, ‘baz’ => 1));
$response_json = $result->decode_response();
$this->assertEquals(‘DELETE’,
$response_json->SERVER->REQUEST_METHOD);
$this->assertEquals(«foo=+bar&baz=1»,
$response_json->body);

Hasta la próxima espero les sea de mucha utilidad.


Deja un comentario

Introducción a Windows Azure (Developer)

Windows Azure es sencillamente la plataforma de aplicaciones de Microsoft para la nube publica, es decir, Microsoft creo una gran cartera de servicios de diferentes aspectos que pueden ayudar a desplegar tu aplicación y donde las facturas mensuales del servicios muchas veces se ajustan a lo usado.

Azure agrupa los servicios en categorías en el portal de gestión donde se administra la mayoría de los servicios acá una imagen donde se pueden ver muchos de estos servicios.

azurecomponentsintronew780

Portal: https://portal.azure.com

El portal de gestión de Amazon permite a los administradores acceder y administrar la mayoría de los servicios que Microsoft actualizo recientemente donde una de las cosas mas básicas que la plataforma hace es ejecutar aplicaciones a continuación un pequeño detalle sobre sus servicios principales.

Resultado de imagen para virtual machine azure

Azure virtual Machine

Una de las características mas simpáticas es poder crear tus maquinas virtuales bien sea a partir de una imagen propia o una de las disponibles en la pagina de administración donde hay una amplia gama de maquinas con una configuración ya preparada, con solo especificar el VHD a utilizar e indicar el tamaño de la virtual machine y pagar por el tiempo que la VM esta en ejecución, usted estaría pagando por minuto o por el tiempo que la tenga encendida.

Este enfoque puede ayudarlo a resolver muchos inconvenientes:

  • Crear un ambiente de pruebas para el desarrollo de una aplicación con solo crearla y luego apagar, resultaría poco costo para los ambientes de pruebas.
  • Mover aplicaciones de su servidor local a su servidor virtual en azure para que se ejecute naturalmente en los servidores sin necesidad de configurar todo desde 0.
  • O podría ampliar su data center con una extension de su datacenter local.

Resultado de imagen para web application azure

Aplicaciones Web

Azure te brinda también la opción de tener tu aplicación web un hosting con acceso a otros servicios como SQL Azure para conectarse a datos, el trabajo administrativo que conlleva el sitio estaría cubierto por azure y esta responsabilidad seria eliminada de sus actividades rutinarias enfocado en la aplicación.

Para el desarrollo, Web Apps soporta .NET, PHP, Node.js, Java y Python junto con SQL Database y MySQL (de ClearDB, un socio de Microsoft) para el almacenamiento relacional. También proporciona soporte integrado para varias aplicaciones populares, incluyendo WordPress, Joomla y Drupal.

Servicios en la Nube

Azure Web Apps permite crear este tipo de aplicación web, pero hay algunas limitaciones. No tiene acceso administrativo, por ejemplo, lo que significa que no puede instalar software arbitrario. Azure Virtual Machines le da mucha flexibilidad, incluyendo acceso administrativo, y ciertamente puede usarlo para crear una aplicación muy escalable, pero tendrá que manejar muchos aspectos de confiabilidad y administración usted mismo.

Esta tecnología está diseñada expresamente para soportar aplicaciones escalables, confiables y de bajo administración, y es un ejemplo de lo que comúnmente se llama Plataforma como Servicio (PaaS). Para usarlo, puede crear una aplicación utilizando la tecnología que elija, como C #, Java, PHP, Python, Node.js o cualquier otra cosa.

Resultado de imagen para sql azure

Gestión de datos.

Las aplicaciones necesitan datos y diferentes tipos de aplicaciones necesitan diferentes tipos de datos. Debido a esto, Azure proporciona varias formas diferentes de almacenar y administrar datos. Azure ofrece muchas opciones de almacenamiento, pero todas están diseñadas para un almacenamiento muy duradero. Con cualquiera de estas opciones, siempre hay 3 copias de sus datos sincronizadas en un centro de datos de Azure – 6 si permite que Azure utilice la redundancia geográfica para realizar copias de seguridad en otro centro de datos a al menos 300 millas de distancia.

Para el almacenamiento relacional, Azure proporciona la base de datos SQL de características. No dejes que el nombre te engañe. Esto es diferente a una base de datos SQL típica proporcionada por SQL Server que se ejecuta en la parte superior de Windows Server.

Resultado de imagen para storage azure

Servicios de Archivos.

En el local, es común tener grandes cantidades de almacenamiento de archivos accesibles a través del protocolo Server Message Block (SMB) usando un formato \\ Server \ share. Azure ahora tiene un servicio que le permite usar este protocolo en la nube. Las aplicaciones que se ejecutan en Azure pueden utilizarlo para compartir archivos entre máquinas virtuales utilizando las API conocidas del sistema de archivos, como ReadFile y WriteFile.

Resultado de imagen para virtual machine azure

Redes

Debido a que puede crear máquinas virtuales bajo demanda y, a continuación, eliminarlas (y dejar de pagar) cuando ya no se necesiten, puede tener poder de cálculo sólo cuando lo desee. Y dado que Azure Virtual Machines le permite crear máquinas virtuales que ejecutan SharePoint, Active Directory y otro software local familiar, este enfoque puede funcionar con las aplicaciones que ya tiene.

Para que esto sea realmente útil, sin embargo, sus usuarios deben ser capaces de tratar estas aplicaciones como si estuvieran ejecutándose en su propio centro de datos. Esto es exactamente lo que permite Azure Virtual Network.

Ruta expresa

Si necesita más ancho de banda o seguridad que una conexión de red virtual de Azure, puede consultar ExpressRoute. En algunos casos, ExpressRoute también puede ahorrar dinero. Todavía necesitará una red virtual en Azure, pero el enlace entre Azure y su sitio utiliza una conexión dedicada que no pasa por la Internet pública. Para utilizar este servicio, necesitará tener un acuerdo con un proveedor de servicios de red o con un proveedor de servicios de intercambio.

Gestor de trafico

i su aplicación Azure se está ejecutando en varios centros de datos, puede utilizar Azure Traffic Manager para enrutar las solicitudes de los usuarios de forma inteligente entre instancias de la aplicación. También puede enrutar tráfico a servicios que no se ejecutan en Azure siempre y cuando sean accesibles desde Internet.

El propietario de una aplicación define reglas que especifican cómo deben dirigirse las solicitudes de los usuarios a los centros de datos y, a continuación, confía en Traffic Manager para llevar a cabo estas reglas. Por ejemplo, los usuarios normalmente pueden ser dirigidos al centro de datos Azure más cercano, pero se envían a otro cuando el tiempo de respuesta de su centro de datos predeterminado excede el tiempo de respuesta de otros centros de datos. Para las aplicaciones distribuidas a nivel mundial con muchos usuarios, es útil tener un servicio integrado para manejar problemas como este.

Servicio para desarrolladores.

En 2008, la primera versión de pre-lanzamiento de Azure sólo soportaba el desarrollo de .NET. Hoy en día, sin embargo, puede crear aplicaciones Azure en prácticamente cualquier idioma. Actualmente, Microsoft proporciona SDK específicos de idioma para .NET, Java, PHP, Node.js, Ruby y Python. También hay un SDK general de Azure que proporciona soporte básico para cualquier idioma, como C ++.

Estos SDK le ayudan a crear, implementar y administrar aplicaciones de Azure.

Identidad y acceso

Trabajar con la identidad es parte de la mayoría de las aplicaciones. Sabiendo que un usuario es una aplicación permite decidir cómo debe interactuar con el usuario. Azure proporciona servicios para ayudar a la identidad de pista, así como integrarlo con almacenes de identidades que ya esté utilizando.

Resultado de imagen para active directory azure

Directorio Activo

Como la mayoría de los servicios de directorio, Azure Active Directory almacena información sobre los usuarios y las organizaciones a las que pertenecen. Permite a los usuarios inicien la sesión, luego los materiales de construcción con fichas que pueden presentar a las aplicaciones para probar su identidad. También permite sincronizar la información del usuario con Windows Active Directory Server que se ejecuta en los locales de su red local. Si bien los mecanismos y formatos de datos utilizados por Azure Active Directory no son idénticos a los utilizados en Windows Server Active Directory, las funciones que cumple son bastante similares.

Movil

Aplicaciones Azure Mobile ofrece muchas funciones útiles que le pueden ahorrar tiempo en la construcción de un motor para una aplicación móvil. Se le permite hacer el aprovisionamiento y la gestión de los datos almacenados en una base de datos SQL simple. Con el código del lado del servidor puede utilizar simplemente las opciones de almacenamiento de datos adicionales como almacenamiento de blob o MongoDB. Aplicaciones móviles proporciona soporte para notificaciones, aunque en ciertos casos se puede utilizar en su lugar concentradores de notificación como se describe a continuación. El servicio también tiene una API REST que su aplicación móvil puede llamar para realizar su trabajo. Aplicaciones móvil también proporciona la capacidad de autenticar a los usuarios a través de Microsoft y Active Directory, así como otros proveedores de identidad conocidas como Facebook, Twitter y Google.

Resultado de imagen para notification center azure

Centro de notificaciones.

Si bien se puede escribir código para hacer notificaciones en Azure aplicaciones móviles, concentradores de notificación está optimizado para transmitir millones de notificaciones push altamente personalizados en cuestión de minutos. Usted no tiene que preocuparse de detalles como el operador de telefonía móvil o fabricante del dispositivo. Puede orientar individuo o millones de usuarios con una sola llamada a la API.

Mensajería e integración

Un uso común de las colas de hoy es dejar que una instancia de rol web comunicarse con una instancia de rol de trabajo dentro de la misma aplicación de servicios en la nube.

Por ejemplo, supongamos que crea una aplicación Azure para compartir videos. La aplicación consta de código PHP que se ejecuta en un papel web que permite a los usuarios subir y ver vídeos, junto con un rol de trabajo implementado en C # que traduce subido el vídeo en varios formatos.

Cuando una instancia de rol web recibe un nuevo vídeo de un usuario, que puede almacenar el vídeo en una burbuja, a continuación, enviar un mensaje a un rol de trabajo a través de una cola diciéndole dónde encontrar este nuevo video. Un ejemplo es el papel-trabajador no importa cuál-A continuación, lea el mensaje de la cola y llevar a cabo las traducciones de vídeo requeridos en el fondo.

Asistencia de computo.

A veces las aplicaciones sólo tienen que ejecutar en un momento determinado. En Azure, puede ahorrar dinero con este tipo de aplicación en lugar de dejar que una aplicación sólo sigue funcionando 24×7 a la espera de los datos a procesar. Azure Scheduler le permite programar cuando una aplicación se debe ejecutar con base en el intervalo de tiempo o un calendario. Es fiable y verificará que se ejecuta un proceso, incluso si no son de la red, la máquina, y las fallas de centros de datos. Se utiliza el Programador de REST API para gestionar estas medidas.

Cuando se produce una alarma programada, Programador envía mensajes HTTP o HTTPS a un punto final específico o puede poner un mensaje en una cola de almacenamiento. Por lo tanto es necesario tener la aplicación o bien tienen un punto final accesibles o que haya supervisar una cola de almacenamiento.

Big Data y Big Compute.

HDInsight es el nombre del servicio basado en Hadoop de Apache del Azure. HDInsight permite almacenar datos HDFS en el clúster y distribuirlo a través de múltiples máquinas virtuales. También se propaga a la lógica de un trabajo MapReduce a través de esas máquinas virtuales. Al igual que con Hadoop en las instalaciones, los datos se procesan localmente la lógica y los datos que funciona en están en la misma máquina virtual y en paralelo para un mejor rendimiento. HDInsight también puede almacenar datos en Azure Storage Bóveda (ASV), que utiliza manchas. Usando ASV le permite ahorrar dinero porque se puede eliminar el clúster HDInsight cuando no esté en uso, pero aún mantiene sus datos en la nube.

HDinsight soporta otros componentes del ecosistema Hadoop también, incluyendo Colmena y cerdo. Microsoft también ha creado componentes que hacen que sea más fácil trabajar con los datos producidos por HDInsight utilizando herramientas tradicionales de BI, tales como el adaptador HiveODBC y Data Explorer que funciona con Excel.

Comercio

El aumento de software como servicio está transformando la forma de crear aplicaciones. También está transformando la forma en que vendemos aplicaciones. Desde una aplicación SaaS vive en la nube, que tiene sentido que sus clientes potenciales deben buscar soluciones en línea. Y este cambio se aplica a los datos, así como a las aplicaciones.

La diferencia entre los dos es que mercado está fuera del Portal de gestión de Azure, pero la tienda se puede acceder desde el interior del portal.Los clientes potenciales pueden buscar para encontrar aplicaciones Azure que satisfagan sus necesidades. Los clientes pueden buscar bases de datos comerciales, así, como datos demográficos, datos financieros, datos geográficos, y mucho más.

A veces resulta un poco tedioso para muchos desarrolladores leer tanto pero mas bien es resumido muchos de los elementos y faltan pero creo es suficiente para entender lo que puedes hacer con esta plataforma.


Deja un comentario

Primera aplicación Xamarin (Xamarin Form)

 

Hola internautas para seguir pagando mi deuda prometida sobre Xamarin una vez que ya conocemos la introducción e instalamos visual studio siguiendo las instrucciones de los Link dados en el anterior Post.

Introducción a Xamarin

Cabe destacar que en Xamarin puedes desarrollar aplicaciones Nativas como Aplicaciones compartidas y es por ello que en este tutorial veremos lo que es Xamarin Form, la mejor forma de comprender este concepto es teniendo la arquitectura de Xamarin sin Xamarin Form.

enfoque 1

Xamarin tiene un enfoque tradicional donde puede desarrollar toda la capa de negocio de tu aplicación en C Sharp y luego de manera individual en cada plataforma desarrollar el Front.

 

 

 

enfoque 2Xamarin Form por otra parte permite crear una interfaz compartida entre varias aplicaciones al igual que su capa de negocio o Back End esto brinda una flexibilidad y menos tiempo para el desarrollo de aplicaciones en Múltiples Plataformas..

 

 

Las ventajas de Xamarin form fueron visualizadas muy rápidamente por muchos desarrolladores que ya se encuentran explotando todas estas capacidades cabe destacar que el siguiente tutorial se enfoca en Xamarin Form por lo que crearemos el ejemplo tradicicional «Hola mundo» en una aplicación Xamarin Form que corra en Windows 10, Windows Phone y Android, para poder dar un ejemplo de IOS se requiere una Mac y en este momento no cuento con ella.

1.- Lo primero que se debe realizar es crear una nueva aplicación seleccionando nuevo ->proyecto, en la sección de lenguaje C sharp seleccionar Cross-Platform y luego aplicación multiplataforma (Xamarin Form o nativa) es mi caso le coloque al nombre del proyecto HelloWord.

paso1

2.- Aparecer una pantalla con diversas opciones del proyecto en este caso vamos a seleccionar aplicación vacía en la sección que dice Tecnología de UI seleccionamos Xamarin.Form y en estrategia de uso compartido del código seleccionamos Biblioteca de clases portatic (PLC)  y presionamos en Botón Aceptar.

paso2

3.- El proceso de creación del proyecto a veces tarda un poco en este proceso es normal que se solicite la configuración de la versión de aplicaciones universales en mi caso elegí Windows 10, y aceptamos para seguir con la creación del proyecto.

paso3

Así como debes Elegir la versión de Windows también se nos presenta inmediatamente opciones para conectar tu sitio web con una MAC en mi caso simplemente presiones cancelar por lo antes expuesto.

paso4

4.- Una vez ya creado podemos observar que se crearon 4 proyectos el primero representa la librería de clases potables donde podremos codificar toda la capa de negocio y por ser Xamarin Form también tenemos la capa de diseño, se crean 3 proyectos mas que representan las plataformas Android, IOS y Windows Universal este paso es mas para hacer una conceptualización sencilla .

paso5

5.- En el proyecto Portable, tenemos un archivo MainPage.xaml esta es la pantalla principal de la aplicación basta con tener conocimiento sobre XAML para ya empezar a trabajar en el diseño de la aplicación procedemos a abrir el archivo MainPage.xaml, de manera predeterminada el MainPage.xaml tiene el siguiente código:

<Label Text=»Welcome to Xamarin Forms!»
VerticalOptions=»Center»
HorizontalOptions=»Center» />

Para que sea mas interesante agregamos un Label donde mostrar resultados, Un entry que equivale a un TextBox para que la persona ingrese su nombre y un botón que permita saludar a quien escribió su nombre por lo que ahora su contenido queda de esta manera.

<StackLayout>
    <Label Text=»Welcome to Xamarin Forms!»
       VerticalOptions=»Center»
      HorizontalOptions=»Center» />
    <Label x:Name=»LBLMsg»
       VerticalOptions=»Center»
      HorizontalOptions=»Center» />
   <Entry x:Name=»TXTName»></Entry>
   <Button Text=»Saludar» Clicked=»Button_Clicked»></Button>
</StackLayout>

Como ven agregamos un botón y agregamos el evento Clicked que gracias a la ayuda de Visual studio genero el evento al cual le agregaremos el siguiente código.

private void Button_Clicked(object sender, EventArgs e)
{
          LBLMsg.Text = string.Format(«Hola Mundo {0}», TXTName.Text);
}

6.- Ya con esto nuestra aplicación esta lista para ser probada, quizá por urgencia de integración del proyecto Xamarin en Visual Studio falta la detección de algunos errores es por ello que recomiendo comenzar compilando por Windows ya que el depurador de Windows 10 puede arrojar excepciones rápidamente y evitar quedar trancado corriéndolo en Android sin saber que hacer por que aun falta mejorar esos aspectos, es por ello que en la lista de proyecto elegimos para compilar UWP, para estas aplicaciones a veces se hayan problemas de arquitectura al compilar es por ello que yo personalmente elijo x86.

PASO6

Ya procedemos a compilar con nuestro equipo local y observamos la carga de la aplicación.

paso7

Y luego que carga ingresamos nombre y presionamos el botón para comprobar funcionalidad.

paso8

Ahora solo queda correr la misma aplicación en Android podemos conectar directamente el teléfono activando las opciones developer o simplemente ejecutamos los emuladores disponibles, la prueba de esta app con Windows 10 se las estaré debiendo debido a que al compilar con Windows Phone 10 se esta presentando la aplicación como la anterior y lo estaré resolviendo pronto, la aplicación de Android la veremos a continuación:

paso9

Esto seria todo por hoy espero que lo practiquen en sus casa y pronto vendremos con otro tutorial de Xamarin.

 

 

 

 


Deja un comentario

Introducción a Xamarin

Muy buenas tardes internautas como deuda de un curso que realice sobre esta tecnología vengo a saldar deudas comenzando inmediatamente.Xamarin-logo.svg

Xamarin es una tecnología que fue comprada recientemente por Microsoft enfocada en el desarrollo Móvil que nació de el proyecto Mono la misma nos permite a nosotros los desarrolladores construir aplicaciones con lenguaje de programación C sharp y la misma aplicaciones funciones en IOS, Android, Windows Phone, antes era pago pero luego de ser comprado por Microsoft esta gratuito con licencia Open Source.

Historia:

En junio de 2000, Microsoft anunció por primera vez su .NET Framework. Miguel de Icaza, de Ximian, comenzó a investigar si una versión para Linux era factible. Posteriormente, el proyecto Mono fue lanzado el 19 de junio de 2001. Ximian fue adquirida por Novell el 4 de agosto de 2003.

Después de la subsiguiente adquisición de Novell por parte de Attachmate en abril de 2011, Attachmate anunció el despido de cientos de trabajadores de Novell, incluyendo a desarrolladores de Mono, poniendo así el futuro del proyecto en cuestión.

El 16 de mayo, Miguel de Icaza anunció en su blog que Mono será desarrollado y soportado por Xamarin, empresa que planea lanzar una serie de productos para dispositivos móviles. De acuerdo con de Icaza, al menos una parte del equipo original de Mono se ha movido a la nueva compañía.

Sin embargo, en julio de 2011, Novell, ahora una subsidiaria de Attachmate, anuncio que concedería una licencia perpetua a Xamarin para Mono, MonoTouch y Mono para Android, tomando así Xamarin la administración oficial del proyecto. En febrero de 2016 es comprada por Microsoft.

Fuente: Wikipedia

Xamarin es único en que combina todo el poder de las plataformas nativas y añade una serie de características poderosas propias, incluyendo:

  1. Binding completo para los SDK subyacentes – Xamarin contiene enlaces para casi todos los SDK de la plataforma subyacente en iOS y Android. Además, estos enlaces están fuertemente mecanografiados, lo que significa que son fáciles de navegar y usar, y proporcionan una comprobación robusta del tipo de tiempo de compilación y durante el desarrollo. Esto genera menos errores de ejecución y aplicaciones de mayor calidad.
  2. Objetivo-C, Java, C y C ++ Interop – Xamarin proporciona facilidades para invocar directamente bibliotecas Objective-C, Java, C y C ++, dándole el poder de usar una amplia gama de código de terceros que ya se ha creado. Esto le permite aprovechar las bibliotecas iOS y Android existentes escritas en Objective-C, Java o C / C ++. Además, Xamarin ofrece proyectos vinculantes que le permiten enlazar fácilmente bibliotecas nativas de Objective-C y Java usando una sintaxis declarativa.
  3. Modern Language Constructs – Las aplicaciones de Xamarin están escritas en C #, un lenguaje moderno que incluye mejoras significativas sobre Objective-C y Java, tales como características de lenguaje dinámico , construcciones funcionales como Lambdas , LINQ , características de programación paralela , genéricos sofisticados y más.
  4. Amazing Base Class Library (BCL) – Las aplicaciones de Xamarin utilizan .NET BCL, una colección masiva de clases que cuentan con funciones completas y optimizadas, como potentes soportes XML, Database, Serialization, IO, String y Networking, por nombrar algunos. Además, el código C # existente se puede compilar para su uso en aplicaciones, lo que proporciona acceso a miles y miles de bibliotecas que le permitirán hacer cosas que aún no están cubiertas en el BCL.
  5. Entorno de desarrollo integrado moderno (IDE) – Xamarin utiliza Xamarin Studio en Mac OS X y Visual Studio en Windows. Estos son IDEs modernos que incluyen características como autocompletado de código, un sofisticado sistema de administración de Project y Solution, una biblioteca de plantillas de proyectos completos, control de fuentes integrado y muchos otros.
  6. Soporte de plataforma móvil cruzada – Xamarin ofrece un sofisticado soporte multiplataforma para las tres principales plataformas móviles de iOS, Android y Windows Phone. Las aplicaciones se pueden escribir para compartir hasta un 90% de su código, y nuestra biblioteca Xamarin.Mobile ofrece una API unificada para acceder a recursos comunes en las tres plataformas. Esto puede reducir significativamente los costos de desarrollo y el tiempo de lanzamiento al mercado para desarrolladores móviles que apuntan a las tres plataformas móviles más populares.

Esta tabla muestra qué plataformas se pueden construir con diferentes combinaciones de herramientas de desarrollo y sistemas operativos:

MAC OS VENTANAS
Entorno de desarrollo VISUAL STUDIO PARA MAC ESTUDIO VISUAL
Xamarin.iOS Sí (con equipo Mac)
Xamarin.Android
Xamarin.Forms Sólo para iOS y Android
(macOS en vista previa)
Android, Windows / UWP
(iOS con equipo Mac)
Xamarin.Mac Abrir proyecto y compilar solo ^

NOTA: Para desarrollar para iOS en equipos con Windows debe haber un equipo Mac accesible en la red , para la compilación remota y la depuración. Esto también funciona si tiene Visual Studio ejecutándose dentro de una máquina virtual de Windows en un equipo Mac.

Para su instalación la propia documentación nos brinda un manual para realizar la instalación paso a paso síguelas y lograras instalar Xamarin exitosa mente:

https://developer.xamarin.com/es-es/guides/android/getting_started/installation/windows/

En caso de ser util te coloco el link de la instalación con MAC.

https://developer.xamarin.com/guides/ios/getting_started/installation/

Con Xamarin los objetivos son como los que vemos en las imágenes podremos ver nuestra aplicación corriendo en tres plataformas con el mismo código.

intro-app-examples

Una vez que lo tengas instalado comenzaremos luego de este Post una serie de video s con ciertas características de Xamarin que podrán ayudarte a comenzar en ese mundo.


Deja un comentario

Serializar JSON resultado de Query MYSQL con PHP

Buenos días amigos hoy les traigo algo bastante sencillo, a veces muchos programadores nos topamos con problemas que parecen ser difíciles pero no lo son y terminan solucionando con algo muy sencillo y como el tiempo de un programador lo vale quiero compartir esto con lo que estuve casi 2 horas lidiando bueno mi fuerte no es php pero no deja de ser un tips que pueda usar yo mismo al pasar del tiempo o simplemente ayudar a algún colega.

El problema que se me presento es el siguiente: hacia una consulta del MYSQL  y quería serializar el resultado y pensé que utilizando mysql_fetch_array podría la consulta convertirse en un arreglo y devolver el valor deseado pero era lo esperado y tampoco tenia los key de los campos por lo que investigue y luego de varias pruebas fallidas soluciones con el siguiente código.

$resultData=mysql_query(«Select * from tableSample»,$conexion);

$rows = array();
while($r = mysql_fetch_assoc($resultData)) {
$rows[] = $r;
}

echo json_encode($rows);

Se utilizo el mysql_fetch_assoc para que devolviera los KEYS de cada campo consultado lo que llamamos un arreglo asociativo y se realizo un bucle while para recorrer cada valor devuelto por la consulta que este era uno de los errores que presentada por crees que ya el arreglo venia completo al consultarlo y al llevarlo todo de los datos utilizar json_encode para serializar en json y devolver el valor a donde desees ya que json lo permite y es un gran estandar

 


Deja un comentario

JSfiddle y Codepen (Tools)

Hola amigos amantes de tecnologías yo otras vez diciendo que volveré y no termino de volver espero que esta si sea la vencida, en mi articulo de hoy les traigo Tools y mas Tools, las herramientas al momento de desarrollar son sumamente importante sobre todo cuando no estar en una pc de manera fija o simplemente quieres probar algo sin afectar el código existente o si tienes talento y quieres mostrarle a al mundo lo que sabes hacer con tecnologías Font and Back del mundo web pues estas son las herramientas necesarias para mostrar y compartir tus habilidades.

Ahora mas allá de todo eso también si simplemente necesitas hacer una funcionalidad y quieres buscar de que manera lo ha hecho otro desarrollador también este termina siento el lugar correcto..

LogoEs un sitio web en el que te puedes registrar para guardar funcionalidad web que hayas hecho construido la herramienta tiene un poder impresionante por que si por ejemplo estas en la pc que no es tuya pero necesitas probar o comprobar una funcionalidad básica que no sea necesario de traer tu código existente puede usar codepen, esta te permitirá agregar otros tools como jquery , bootstrap para hacer tus pruebas directo en la web y a real time donde puedes ver código y resultados en una sola pantalla, codepen es mi favorito cuando deseo buscar un diseño agradable para mis web Sites mucho talento ha compartido sus creaciones aca y son una comunidad bastante grande ademas si eres Teachers puedes usarlo para mostrar a tus alumnos código y resultado de manera que lo entiendan.

Aca te coloco una vista previa para que veas como se veras tus pruebas o lo que hagas con esta herramienta.

codepen

Url: http://codepen.io/

Como todo lo bueno siempre debe seguir y no por ser el segundo en este blog significa que no sea mejor que codepen todo depende del usuario:

jsfiddle.pngAl igual que codepen es una excelente herramienta para compartir, buscar, practicar tus códigos aquí tenemos un área de colaboración bastante interesante para por ejemplo dar tus clases yo les recomiendo que las empiecen a usar y sin mas que explicar les dejo la captura y url del site de JSFiddle.

jsfiddle.jpg

Url: https://jsfiddle.net/