Programación en paralelo con la clase Parallel y su método ForEach en C#.Net y C# .Net Core

En este video te explicare como puedes incorporar la clase Parallel para trabajar procesos que sean tardados de forma paralela.

Recorreremos una lista de nombres de archivos por medio del método ForEach de Parallel y copiaremos estos archivos a una segunda carpeta.

¿Como recorrer las propiedades de un objeto dinámicamente? C# .Net

En este video te enseño como es posible recorrer los atributos de un objeto como si fuera un arreglo o una lista, de esta manera puedes crear formularios dinámicos, tablas dinámicas, validadores y muchas cosas más, de manera dinámica.

Código:


 public class Persona
    {
        public string Nombre { get; set; }
        public int Edad { get; set; }
        public decimal Estatura { get; set; }
        public string Apellido { get; set; }

    }
    class Program
    {
        static void Main(string[] args)
        {
            Persona oPersona = new Persona() { Nombre = "Juan",Apellido="De León", Edad = 31, Estatura = 1.80M };

            PropertyInfo[] lst = typeof(Persona).GetProperties();
            foreach (PropertyInfo oProperty in lst)
            {
                string NombreAtributo = oProperty.Name;
               // string Tipo = oProperty.GetType().ToString();
                string Valor = oProperty.GetValue(oPersona).ToString();

                Console.WriteLine("El atributo "+NombreAtributo+" tiene el valor: "+Valor );
            }
        }
    }

Listas en #javascript. (arreglos, matrices) #push, #pop, #sort, #reverse, #unshift, #forEach.

Las listas en javascript son un tema enorme pero que todo programador de javascript debe conocer a fondo. En esta entrada me enfocare a los aspectos básicos de las listas (arreglos, matrices).

Ver arreglos – curso básico de javascript.

Para crear una lista vacía se puede hacer de las siguientes dos formas:


//Forma 1: corchetes
var lista=[];

//Forma 2: new Array();
var lista=new Array();

Sea cual sea la forma que utilicen para crear una lista (arreglo) es irrelevante.

Ahora para crear una lista con elementos desde el inicio se puede hacer de la siguiente manera:


//Forma 1: corchetes
var lista=new Array("ganzo","perro");

//Forma 2: new Array();
var lista=["ganzo","perro"]

Ahora para recorrer una lista, la mejor manera es por medio del método forEach, el cual itera con cada elemento del arreglo. Este método recibe una función como parámetro, y se utiliza de la siguiente manera:


//creamos nuestra lista
var lista=["ganzo","perro"];

//recorre elemento por elemento y los muestra con alert()
//el atributo i es el elemento actual en cada iteración.

lista.forEach(function(i){
	alert(i)
});

Para agregar un elemento al final del arreglo se utiliza el método push(), y para agregar un elemento al inicio del arreglo se utiliza el método unshift(). En el siguiente ejemplo muestro como se utilizan:


var lista=["ganzo","perro"];

//agregamos pato al final de la lista
lista.push("pato");

//agregamos pez al inicio de la lista
lista.unshift("pez");

//si mostramos nuestra lista ahora se veria así
//>> pez, ganzo, perro, pato

La función pop() elimina el elemento que esta al final (una pila):


var lista=["ganzo","perro","palomo","gato"];

lista.pop();

//si mostramos nuestra lista ahora se veria así
//>> ganzo, perro, palomo

Y por último los métodos sort() y reverse() nos sirven para ordenar nuestra lista ya sea ascendente o descendentemente:


var lista=[5,4,1,9];

lista.sort();
//>> 1, 4, 5, 9

lista.reverse();
//>>9, 5, 4, 1

Todas estas funciones son básicas y nos sirven para el buen manejo de los objetos, y conocerla es obligación de todo programador de javascript.

Existen muchísimas funciones más de listas pero para eso habrá más entradas.

5.- Programación Orientada a Objetos (POO) – Curso Básico De #Javascript #5

La programación orientada a objetos, es el paradigma hoy en día mas utilizado en los lenguajes de programación, esto debido a su facilidad de organizar las cosas, y dividir la funcionalidad. Para aquellos que no han escuchado este término, se los explico brevemente (ya que lo explico en un breve curso: curso de Programación Orientada a Objetos en 1o minutos), la programación orientada a objetos (POO) nace por la necesidad de representar el mundo en el que habitamos (junto a sus problemas) por medio de objetos como nosotros los percibimos, con sus atributos y funcionalidades, por ejemplo un objeto auto, sabemos por sentido común que tiene llantas, tiene volante, tiene ventanas, puertas, a esto le llamamos atributos (variables), los cuales pueden variar de un auto a otro, pero la mayoría de autos deben tener todo esto para ser autos, de igual manera sabemos que un auto camina y frena, y a esto le llamamos funcionalidad la cual se representa por métodos (funciones). Este es un concepto breve y que servirá para el propósito que tenemos en este capítulo, el cual es representar objetos del mundo físico en javascript por medio de la POO(Programación Orientada a Objetos).

Para crear un objeto en javascript necesitamos de lo que en POO, llamamos clase; una clase es el molde para crear el objeto; la clase define que atributos debe tener el objeto  y cuál es su funcionalidad y para ello vamos a ver un ejemplo de cómo representaríamos un Libro en javascript  utilizando la POO, y la clase Libro se hace de la siguiente manera:

//clase Libro
function Libro(nombre,autor){
this.nombre=nombre;
this.autor=autor;
}

Podemos observar que su sintaxis es la misma que la de una función, excepto que dentro tenemos algo nuevo para nosotros, la palabra this, esto indica que dentro de esta función existen dos atributos, los cuales adquieren su valor por los parámetros enviados al invocar la función, estos atributos pueden ser utilizados posteriormente por nuestro objeto creado, pero para facilitar las cosas vamos a un ejemplo de cómo utilizar la clase creada anteriormente, y como acceder a sus datos:

//Objeto LibroTerror creado con la clase Libro
var LibroTerror= new Libro("En las montañas de la locura","Lovecraft");
alert(LibroTerror.nombre);
//esto mostraría en un alert  nombre "En las montañas de la locura"

De esta manera queda claro cómo podemos crear estructuras para plasmar el mundo físico en javascript, pero que pasa con la funcionalidad, también nuestros objetos tienen funcionalidad, para ello vamos a crear una clase biblioteca, a la cual se le agregan libros, y para nuestra ventaja, con un método también podríamos saber que libros hay en la biblioteca(sin estar viendo en todos los libreros de esta, ¡bendita programación!), para ello veamos el siguiente ejemplo:

//clase Biblioteca
function Biblioteca(nombre){
this.nombre=nombre
//atributo arreglo para guardar los libros
this.Libros= new Array();
//metodo que agrega libros a nuestra biblioteca
this.addLibro=function addLibro(libro){
this.Libros.push(libro)
}

//método que muestra todos los libros utilizando un foreach en el arreglo Libros de esta clase
this.muestraTodosLosLibros=function muestraTodosLosLibros(){
var cadenaLibros="";
this.Libros.forEach(function(libro){
cadenaLibros+=libro.nombre+"n";
})
//regresamos los nombres de los libros concatenados
return cadenaLibros;
}
}

Ahora vemos que dentro de una función (que utilizamos como clase), existen otras funciones, estas funciones pueden ser llamadas por el objeto, también en una clase de javascript podemos tener arreglos, y a estos agregarle objetos los cuales nosotros creamos con anterioridad, y si somos cuidadosos, podemos observar que el método muestraTodosLosLibros() utiliza el forEach del capítulo anterior.

Pasemos a la parte divertida, ver como se utiliza la clase Biblioteca, para ello, pondré el código completo, el cual contiene comentarios parte por parte, pueden copiar y pegar en un archivo de texto con extensión html y abrirlo en un navegador, el código es el siguiente:


//clase Libro
function Libro(nombre,autor){
this.nombre=nombre;
this.autor=autor;
}

//clase Biblioteca
function Biblioteca(nombre){
this.nombre=nombre
//atributo arreglo para guardar los libros
this.Libros= new Array();
//metodo que agrega libros a nuestra biblioteca
this.addLibro=function addLibro(libro){
this.Libros.push(libro)
}

//metodo que muestra todos los libros utilizando un foreach en el arreglo Libros de esta clase
this.muestraTodosLosLibros=function muestraTodosLosLibros(){
var cadenaLibros="";
this.Libros.forEach(function(libro){
cadenaLibros+=libro.nombre+"n";
})
//regresamos los nombres de los libros concatenados
return cadenaLibros;
}
}

//creamos libros para nuestra biblioteca
var LibroTerror1= new Libro("En las montañas de la locura","Lovecraft");
var LibroTerror2= new Libro("Llamada del Cthulhu","Lovecraft");
var LibroNegro1= new Libro("El Psicoanalista","John Katzenbach");

//creamos un objeto de tipo Biblioteca
var BibliotecaPublica = new Biblioteca("Biblioteca Publica");

//Agregamos los libros a la biblioteca por medio del metodo addLibro()
BibliotecaPublica.addLibro(LibroTerror1);
BibliotecaPublica.addLibro(LibroTerror2)
BibliotecaPublica.addLibro(LibroNegro1)

//invocamos el metodo muestraTodosLosLibros del objeto Biblioteca
alert(BibliotecaPublica.muestraTodosLosLibros())

Para ver este código en acción den clic aquí.

En este capítulo vimos como crear clases para ser moldes de objetos, también vimos como dentro de nuestras clases podemos agregar atributos simples y complejos (arreglos), otra cosa que resalta es el poder poner funcionalidades a nuestros objetos, y de esta manera organizar nuestro código, de una manera elegante y formal.

Ir Capítulo Siguiente (6.- Eventos)

Ir Capítulo Anterior (4.- Arreglos)

4.- Arreglos – Curso Básico de #Javascript #4

En este capítulo vamos a ver que son y cómo  funcionan los arreglos en javascript.

Un arreglo en los lenguajes de programación es una colección de elementos los cuales se encuentran en memoria. Un ejemplo de arreglo son los números del 1 al 100, imaginemos que queremos guardarlos en una variable, para ello utilizamos un arreglo y en este guardamos todos los elementos.

Los arreglos pueden ser bidimensionales, tridimensionales etc, es decir se puede guardar un arreglo en un mismo arreglo. En javascript gracias a su flexibilidad podemos guardar cualquier cosa, desde enteros, caracteres, cadenas, decimales, objetos o funciones.

Para crear un arreglo en javascript se puede hacer de las siguientes tres maneras:

//Forma clasica, NO RECOMENDADA
var arreglo1= new Array();
arreglo1[0]="sopa";
arreglo[1]="pozole";
arreglo[2]="pastel";

//Forma Moderna
var arreglo2=["sopa","pozole","pastel"]

//Forma Orientada a Objetos
var arreglo3=new Array();
arreglo3.push("sopa");
arreglo3.push("pozole");
arreglo3.push("pastel");

Estas son las 3 formas de crear un arreglo; la primera forma no es recomendada ya que podemos hacer arreglos inconsistentes, los cuales al utilizar por ejemplo el método length (nos regresa el total de elementos de un arreglo, utilizándolo en arreglos), nosotros podemos agregar elementos en posiciones sin secuencia y el método no nos regresaría la longitud del arreglo bien, veamos un ejemplo:

var arreglo1= new Array();
arreglo1[0]="sopa";
arreglo1[1]="pozole";
arreglo1[2]="pastel";
arreglo1[5]="papa";
alert(arreglo1.length)

En este ejemplo si lo ejecutamos el método length nos daría 6, lo cual no es verdad, no es el número de elementos de nuestro arreglo, es por ello que no se recomienda usar esa manera de agregar elementos a los arreglos.

La forma moderna es la más utilizada, siempre y cuando nuestros elementos sean nativos (no funciones o objetos), ya que si no son nativos nuestro código se vuelve robusto e ilegible, para resolverlo podemos usar la forma por el método push(), el cual agrega un elemento al final del arreglo.

Para recorrer un arreglo se puede hacer mediante una estructura de control for por ejemplo:

var arreglo=["sopa","pozole","pastel"]
for(i=0;i<arreglo.length;i++){
  alert(arreglo[i]);
}

Pero de igual forma hay dos maneras mas formales de hacerlo y son las siguientes:

var arreglo=["sopa","pozole","pastel"]
for(var elemento in arreglo){
	alert(arreglo1[elemento])
}

Esta manera que parece un foreach es mas formal pero existe una mejor manera de recorrer un arreglo y es la siguiente:

var arreglo=["sopa","pozole","pastel"]
arreglo.forEach(function(entry) {
			alert(entry);
		});

Esta ultima forma es la mas adecuada, y funciona poniendo el nombre del arreglo e invocando el método forEach de javascript el cual recibe un atributo tipo función (como vimos en el capitulo anterior), en esta función ponemos las instrucciones que deseemos aplicar a el elemento en el cual va el recorrido.

Ir al Capitulo Siguiente (5.- Programación Orientada a Objetos POO ).

Ir al  Capitulo Anterior (3.- Estructuras de Control).