June 8, 2015

No Comments

Procesos paralelos c#

 

En ocasiones al desarrollar una aplicación nos enfrentamos a situaciones en las cuales debemos ejecutar procesos de forma simultánea y es un problema debido a que los procesos se vuelven lentos y el tiempo de respuesta para el usuario es elevado.

Por ejemplo, si estamos desarrollando una aplicación online de una farmacia que tiene 3 sucursales, la cual vamos a utilizar para saber si algún medicamento está disponible y en cuál de las sucursales lo podemos encontrar, nuestro sistema tendría que buscar en cada una de las farmacias la misma información y regresarla, lo cual haría el sistema bastante lento y no sería eficiente para la operación.

Este tipo de problemas lo podemos resolver utilizando el paralelismo, que significa que vamos a ejecutar los llamados al mismo tiempo pudiendo obtener la información necesaria de cada una de las sucursales.

Vamos a realizar un pequeño ejemplo de cómo es que funciona y como es que podemos implementarlo en nuestra aplicación.

 

Ejemplo:

 

  1. Obtenemos información de la Farmacia 1 y así por cada una de las 3

 

private void Farmacia1()

{

      Thread.Sleep(1000);

      MessageBox.Show(“Farmacia 1″);

}

 

  1. Asignamos al método Farmacia1 como una tarea

 

Task t = new Task(this.Farmacia1);

t.Start();

 

Y realizamos este proceso con cada una de las 3 sucursales que son parte de la Farmacia

 

  1. Por último sincronizamos la ejecución de las tareas

 

Task t = new Task(this.Farmacia1);

t.Start();

 

Task t2 = new Task(this.Farmacia2);

t2.Start();

 

Task t3 = new Task(this.Farmacia3);

t3.Start();

 

Task.WaitAll(new Task[] { t, t2, t3 });

 

Con esta estructura podemos implementar diferentes instrucciones para cada una de las farmacias de una manera rápida y eficiente.

June 8, 2015

No Comments

Tipos dinámicos c#

 

El tipo dynamic permite la comunicación o post de una variable y que se omita la comprobación de tipo en tiempo de compilación. En su lugar, se resuelven estas operaciones en tiempo de ejecución, de la siguiente manera:

 

El tipo dynamic se comporta como el tipo object en la mayoría de las circunstancias, ya que el compilador no resuelve o no comprueba el tipo de las operaciones que contienen expresiones de tipo dynamic.

 

El compilador empaqueta información sobre la operación y esa información se utiliza después para evaluar la operación en tiempo de ejecución. Como parte del proceso, las variables de tipo dynamic están compiladas en las variables de tipo object. Por lo que el tipo dynamic sólo existe en tiempo de compilación, no en tiempo de ejecución.

 

Ejemplo:

 

dynamic d = 1;

var suma = d + 3;

System.Console.WriteLine(suma);

 

 

La ventaja principal de este tipo de dato es que no tenemos que preocuparnos si el objeto obtiene su valor de una API de COM, de un lenguaje dinámico, de DOM (Document Object Model) HTML, de la reflexión o de cualquier otra parte del programa.

 

A continuación podemos ver con el siguiente ejemplo la diferencia entre el tipo de dato obj y el tipo de dato Dynamic

 

Public class Program

{

static void Main(string[] args)

{

dynamic dyn = 1;

object obj = 1;

 

System.Console.WriteLine(dyn.GetType());

System.Console.WriteLine(obj.GetType());

}

}

 

Las instrucciones WriteLine muestran los tipos en tiempo de ejecución de dyn y obj. En ese punto, ambos tienen el mismo tipo, entero. Se produce el siguiente resultado:

 

System.Int32

System.Int32

 

Posteriormente asignamos un nuevo valor a las variables aumentándoles un 2, de la siguiente manera:

 

dyn = dyn + 2;

obj = obj + 2;

 

A continuación el sistema nos muestra un error del compilador que notifica un intento de suma de un entero y un objeto en la expresión obj + 2.

 

Sin embargo, no se notifica ningún error para dyn + 2. En tiempo de compilación no se comprueba la expresión que contiene dyn porque el tipo de dyn es dynamic.

June 8, 2015

No Comments

Que es Angular JS

 

AngularJS es un proyecto de código abierto que está desarrollado en javascript donde se encuentran librerías que nos son de utilidad para el desarrollo de las aplicaciones web.


Lo que pretende AngularJS es producir un HTML que genere aplicaciones fáciles de entender incluso para personas que no tengan los conocimientos muy avanzados en la programación, el objetivo principal de AngularJS es llevar un lenguaje muy fácil de entender por cada etiqueta que se encuentra en el código.

AngularJS promueve los patrones de diseño adecuados para el desarrollo de aplicaciones web, lo que se implementa es lo que se conoce como MVC separando el código por capas adecuado para las aplicaciones de negocio

AngularJS tiene las siguientes Características:

Vistas: Se representa en HTML todo lo que se refiere a los datos

Controladores: se encarga de llevar la lógica de la aplicación sobre lo que se nombra “Servicios” para mover datos contra servidores o memoria locales

Modelo: en AngularJs es algo más que el modelo de los datos en este caso también se otorgan permiso a los usuarios

Ejemplo de AngularJS

Tenemos este ejemplo

  • en el cual se escribe un div con la propiedad ng-app=”” que este define que se va iniciar una aplicación AngularJS
  • Tenemos las etiquetas de párrafo <P> donde se está escribiendo un texto
  • Dentro del segundo párrafo podemos notar que se encuentra un input en el cual se está ingresando una propiedad ng-model=”name” esto se refiere a se declara el valor para los datos de la aplicación en este caso se refiere al modelo
  • En la etiqueta H1 se está concatenando el valor que se está escribiendo dentro del input

 

Resultado