Prototype deep en C# .Net, Patrones de diseño, design patterns, #3

En este video explicare el patrón de diseño prototype deep en c# .Net, sis inconvenientes y su diferencia con el patrón de diseño prototype shallow.

Código

 public class Animal : ICloneable
    {
        public int Patas { get; set; }
        public string Nombre { get; set; }

        public Detalles Rasgos { get; set; }


        public object Clone()
        {
            Animal clonado = this.MemberwiseClone() as Animal;
            Detalles detalles = new Detalles();
            detalles.Color = this.Rasgos.Color;
            detalles.Raza = this.Rasgos.Raza;
            clonado.Rasgos = detalles;
            return clonado;
        }
    }

    public class Detalles
    {
        public string Color { get; set; }
        public string Raza { get; set; }
    }

//De esta manera se demuestra
 Animal oAnimal = new Animal() { Nombre = "Oveja Dolly", Patas = 4 };
oAnimal.Rasgos = new Detalles();
oAnimal.Rasgos.Color = "Blanca";
oAnimal.Rasgos.Raza = "Oveja";

Animal oAnimalClonado = oAnimal.Clone() as Animal;
oAnimalClonado.Rasgos.Color = "Negro";
oAnimalClonado.Nombre = "Oveja negra";

Console.WriteLine("animal original: "+oAnimal.Rasgos.Color);
Console.WriteLine("annimal clonado: "+oAnimalClonado.Rasgos.Color);
Console.WriteLine("animal original: "+oAnimal.Nombre);
Console.WriteLine("animal clonado: "+oAnimalClonado.Nombre);

Todos mis videos de patrones de diseño en C# .Net: https://www.youtube.com/watch?v=K902i_tsXl0&list=PLWYKfSbdsjJiiaXNIW1OYhRnStsyGvr6t

Curso de C# .Net

En este curso me enfoco a los aspectos de C# .Net directamente sin tanta teoria. El curso es grabado en vivo como los mejores programas de la televisión, en vivo y con errores.

Aquí no veras Programación Orientada a Objetos, que son las sentencias if o while, estos conceptos ya los debes conocer, e igual hay miles de sitios aburridos que te lo enseñan.

Yo me enfocare a enseñarte C# .Net de una manera original, directo al grano, todo con el fin de que te sirva como una herramienta real de trabajo.

A partir del video 2 comenzaremos a realizar un chat multiplataforma, el cual estará conectado por medio de un servicio web al cual se comunicara un sistema hecho en MVC y otro en Windows Form.

La lista de videos esta ordenada conforme van saliendo y se encuentran aquí abajo. (Igual puedes dar clic a uno y seguir la lista de reproducción)

Código del curso (se actualiza cada que hay nuevos videos): clic aquí

1. Introducción

2. Entornos y arquitectura (Windows Form, MVC, MVC Api)

3. Publicación y configuración de IIS

4. Json a Objeto, recibir datos por POST

5. Serializar y deserializar objetos, generics, enviar datos por POST

6. Creación de librerías, ¿Que es el administrador de paquetes NuGet?, appsettings

7. Vistas en MVC .Net, Razor

8. Validaciones con DataAnnotatios en MVC .Net

9. Autentificación en MVC API .Net

10. Autentificación en MVC .Net utilizando servicio web, filtros, seguridad

11. Solicitudes remotas en tiempo real con SignalR

12. Verificar Access Token, regresar listado en json

13. Utilizar if y try catch en LINQ con Lambda

14. Enviar y recibir datos en tiempo real con SignalR

15. Seguridad y grupos en SignalR

16. Introducción a Windows Forms

17. Sesiones en windows forms

18. Creación de elementos dinámicamente en windows forms

Prototype shallow en C# .Net, Patrones de diseño, design patterns, #2

En este video te explico el patrón de diseño Prototype superficial, y ejemplos de cuando utilizarlo y como programarlo.


//clase prototype superficial
public class Animal : ICloneable
    {
        public int Patas { get; set; }
        public string Nombre { get; set; }

        public object Clone()
        {
            return this.MemberwiseClone();
        }
    }

//como utilizarla
  Animal oAnimal = new Animal() { Nombre="Oveja Dolly", Patas=4};
  Animal oAnimalClonado = oAnimal.Clone() as Animal;
  oAnimalClonado.Patas = 5;

  Console.WriteLine(oAnimal.Patas);



Todos mis videos de patrones de diseño en C# .Net: https://www.youtube.com/watch?v=K902i_tsXl0&list=PLWYKfSbdsjJiiaXNIW1OYhRnStsyGvr6t

Singleton en C# .Net, Patrones de diseño, design patterns, #1

En este video te explico el patrón de diseño Singleton, sus características y cuando utilizarlo.


 public class Singleton
    {
        private static Singleton instance = null;
        public string mensaje = "";

        protected Singleton() {
            mensaje = "hola mundo";
        }

        public static Singleton Instance
        {
            get
            {
                if (instance == null)
                    instance = new Singleton();

                return instance;
            }
        }

    }

¿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 );
            }
        }
    }

Curso complemento para recepción de pagos en C# .Net, Convertir XSD a clases de C#, SAT cfdi 3.3, #2

En este video te enseñare como convertir los xsd otorgados por el SAT a clases de C# .Net de una manera automática, limpia y en segundos.

Este curso esta hecho para que puedas crear el xml 3.3 con el complemento de pago en C# .Net.

Código facturación electrónica: clic aquí

Código de este video: clic aquí

Video anterior #1: https://www.youtube.com/watch?v=9qcD51EZ-Zw

 

¿Cómo utilizar serialize de jquery en un elemento que no es form? #js #jquery

Para utilizar serialize() de jquery en un conjunto de elementos que estén dentro de un padre que no sea un formulario puede ser posible, para ello te muestro un ejemplo suponiendo que el padre se llama «PadreQueNoEsForm»:


var parametros=$("#PadreQueNoEsForm :input").serialize();

Curso complemento para recepción de pagos en C# .Net, Introducción, estructura, SAT cfdi 3.3, #1

En este video explico los aspectos básicos para que entiendas el esquema del complemento de pago, para que sirve, y como debe ser incorporado.

Este curso esta hecho para que puedas crear el xml  cfdi 3.3 con el complemento de pago en C# .Net.