En este video te explicare el patrón de diseño strategy, también te explicare cuando usarlo y como crearlo. Todo en c# .net.
Podcast #3 – Facturación electrónica latinoamérica
Vamos hablar de facturación electrónica, de todo lo que nadie dice y todos saben, del negocio detras de este monopolio que es el nuevo mal de latinoamérica.
Crear CRUD en MVC .Net con C#, Entity Framework y Sql Server
En este video te enseñare a crear un CRUD con la tecnología MVC .Net sin utilizar javascript, es decir, con solicitudes propias de la tecnología.
Un CRUD es el acrónimo de Create, Read, Update y Delete, en español: crear, leer, modificar y eliminar, y es en si la creación de un módulo básico en programación.
Podcast #2 – Lenguajes de programación esotéricos
En este podcast analizare y hablare sobre esos lenguajes de programación raritos y desconocidos llamados lenguajes de programación esotéricos.
LINQ en C# .Net intermedio en 10 minutos, take, skip, select, union, count
En este video veremos LINQ a nivel intermedio, haremos ejercicios prácticos con los cuales te explicare como puedes utilizar las funciones take, skip, select, union y count en tus consultas de LINQ.
Código
class Program { static void Main(string[] args) { List<Persona> lst = new List<Persona>() { new Persona() { Edad = 40, Nombre = "Pancho" }, new Persona() { Edad = 30, Nombre = "Juan" }, new Persona() { Edad = 11, Nombre = "Mario" }, new Persona() { Edad = 18, Nombre = "Juana" }, new Persona() { Edad = 6, Nombre = "Memo" }, }; List<Persona> lstSoloTexto = new List<Persona>() { new Persona() { Edad = 30, Nombre = "Héctor" }, new Persona() { Edad = 38, Nombre = "Fernando" }, new Persona() { Edad = 12, Nombre = "Miguel" } }; List<string> lstOrdenadosSoloNombres = ( from a in (from d in lst select d ) .Union( from d in lstSoloTexto select d ) orderby a.Nombre select a.EdadYNombre ) .ToList(); int numerodepersonas = lstOrdenadosSoloNombres.Count; foreach (var Nombre in lstOrdenadosSoloNombres) { Console.WriteLine(Nombre); } } public class Persona { public int Edad { get; set; } public string Nombre { get; set; } public string EdadYNombre { get { return Edad + " - " + Nombre; } } } }
Nuevo esquema de cancelación de facturas electrónicas en C# .Net, CFDI 3.3 SAT
En este video abarcare todo lo que debes saber cómo programador para cancelar bajo el nuevo esquema del SAT para la cancelación de facturas electrónicas que entro en vigor este pasado 1 de noviembre del 2018.
Podcast #1 – ¿Cuál es el mejor lenguaje de programación?
En este podcast inaugural de esta sección de mi canal, hablare improvisadamente sobre cuál es el mejor lenguaje de programación, un poco de historia y rarezas.
LINQ en C# .Net básico en 10 minutos
En este video explico rápidamente como se puede utilizar LINQ en c# .Net
Código del video: https://hdeleon.net/linq-introduccion-y-ejemplos-rapidos-en-c-net/
Curso de Web scraping en C# .Net
En este nuevo curso te mostrare como puedes hacer web scraping de manera fácil y rápida con C# .Net.
1.- Obtener contenido HTML, seleccionar elementos por clase, nombre, id
En este video te muestro como puedes seleccionar elementos de una página web de manera natural, utilizando su clase, su id o su nombre de etiqueta.
2.- Guardar contenido de un sitio web en base de datos
En este segundo video te enseñare a como puedes guardar el contenido de un sitio web en una base de datos.
3.- Descargar todas las imágenes de una url
En este tercer video te enseñare como puedes descargarte todas las imagenes que se visualizan en una url de un sitio web.
4.- Descargar todas las imágenes de TODO un sitio web
En este video te enseñare a como navegar por todas las ligas de una url e ir recursivamente url por url del sitio entero descargando las imagenes.
Código fuente
using HtmlAgilityPack; using ScrapySharp.Extensions; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using WebScraping.Models; namespace WebScraping { class Program { static List<string> lstYaInvocadas = new List<string>(); static List<string> lstImagenesDescargadas = new List<string>(); static string pathImages = @"C:\tuRuta\"; static void Main(string[] args) { HtmlWeb oWeb = new HtmlWeb(); string url = "https://hdeleon.net/"; /*Video: 2 - Obtener titles ***********************************************/ using (webscrapingEntities db = new webscrapingEntities()) { for (int i = 1; i <= 32; i++) { if (i > 1) url += "/page/" + i + "/"; HtmlDocument doc2 = oWeb.Load(url); foreach (var Nodo in doc2.DocumentNode.CssSelect(".entry-title")) { var NodoAnchor = Nodo.CssSelect("a").First(); var oTitle = new titles(); oTitle.title = NodoAnchor.InnerHtml; db.titles.Add(oTitle); //MisTitulos.Add(NodoAnchor.InnerHtml); } Console.WriteLine("se analizo la pagina: "+i); } db.SaveChanges(); } /* Video 3 - Ejemplo de robar imagenes ********************************************/ HtmlDocument doc = oWeb.Load(url); //obtenemos las imagenes int num = 0; foreach (var Nodo in doc.DocumentNode.CssSelect("img")) { Console.WriteLine("Imagen robada: " + Nodo.GetAttributeValue("src")); using (WebClient oClient = new WebClient()) { string urlImagen = Nodo.GetAttributeValue("src"); oClient.DownloadFile(new Uri(urlImagen), pathImages + num + ".jpg"); } num++; } /*Video 4 - Obtener todas las imagenes de todo el sitio web *************************/ HtmlDocument doc3 = oWeb.Load(url); //obtener las imagenes de la url foreach (var Nodo in doc3.DocumentNode.CssSelect("img")) { // Console.WriteLine("Imagen robada: " + Nodo.GetAttributeValue("src")); using (WebClient oClient = new WebClient()) { string urlImagen = Nodo.GetAttributeValue("src"); string[] arrUrlImagen = urlImagen.Split('/'); string nombreImagen = pathImages + arrUrlImagen[arrUrlImagen.Length - 1]; if (!lstImagenesDescargadas.Contains(arrUrlImagen[arrUrlImagen.Length - 1])) { oClient.DownloadFile(new Uri(urlImagen), nombreImagen); lstImagenesDescargadas.Add(arrUrlImagen[arrUrlImagen.Length - 1]); } } } //recursividad urls foreach (var Nodo in doc3.DocumentNode.CssSelect("a")) { string urlSon = Nodo.GetAttributeValue("href"); if (!lstYaInvocadas.Contains(urlSon) && urlSon.StartsWith("https://hdeleon.net/")) { Console.WriteLine(urlSon); lstYaInvocadas.Add(urlSon); ObtienesImagenes(urlSon); } } } #region Helpers private static void ObtienesImagenes(string url,string tab="") { try { HtmlWeb oWeb = new HtmlWeb(); HtmlDocument doc3 = oWeb.Load(url); foreach (var Nodo in doc3.DocumentNode.CssSelect("img")) { // Console.WriteLine("Imagen robada: " + Nodo.GetAttributeValue("src")); using (WebClient oClient = new WebClient()) { string urlImagen = Nodo.GetAttributeValue("src"); string[] arrUrlImagen = urlImagen.Split('/'); string nombreImagen =pathImages+ arrUrlImagen[arrUrlImagen.Length - 1]; if (!lstImagenesDescargadas.Contains(arrUrlImagen[arrUrlImagen.Length - 1])) { oClient.DownloadFile(new Uri(urlImagen), nombreImagen); lstImagenesDescargadas.Add(arrUrlImagen[arrUrlImagen.Length - 1]); } } } foreach (var Nodo in doc3.DocumentNode.CssSelect("a") ) { string urlSon = Nodo.GetAttributeValue("href"); if ( !lstYaInvocadas.Contains(urlSon) && urlSon.StartsWith("https://hdeleon.net/")) { Console.WriteLine(tab+urlSon); lstYaInvocadas.Add(urlSon); ObtienesImagenes(urlSon, tab + ">"); } } } catch { } } #endregion } }
Patrones de diseño en C# .Net
Los patrones de diseño son un conjunto de técnicas que nos ayudaran a no reinventar la rueda, con estas técnicas ya tendremos soluciones a problemas comunes.
El aprender Patrones de diseño es darle un brinco a tu conocimiento como programador, el cual te ayudara a tener lista la solución de problemas a los que te enfrentaras en el día a día.
Si deseas un curso de Patrones de diseño en C# con ejemplos reales de su uso da CLIC AQUÍ.
Puedes ver el listado de patrones de diseño a continuación o si lo deseas puedes verlo en youtube dando clic aquí:
-
Singleton en C# .Net | Patrones de diseño | design patterns | #1
-
Prototype shallow en C# .Net | Patrones de diseño | design patterns | #2
-
Prototype deep en C# .Net | Patrones de diseño | design patterns | #3
-
Factory Method en C# .Net | Patrones de diseño | design patterns | #4
-
Strategy en C# .Net | Patrones de diseño | design patterns | #5
-
Mediator en C# .Net | Patrones de diseño | design patterns | #6
-
State en C# .Net | Patrones de diseño | design patterns | #7
-
Composite en C# .Net | Patrones de diseño | design patterns | #8
-
Inyección de dependencias | Patrones de diseño | design patterns | #9 💉
-
Patrón de diseño inyección de dependencias | Ejemplo en MVC .Net Core 💉