Curso sobre programacion c# y Visual Studio 2019. En este blog veremos tutoriales para aprender a crear nuestras aplicaciones de consola,aplicaciones web, SQL , Tensorflow y Machine Learning
Hola a todos. En este nuevo curso, analizaremos todos los conceptos básicos, intermedios y avanzados de ASP.NET Core que nos ayudan a crear aplicaciones web basadas en datos.Al final de este curso, podremos realizar todas las operaciones de un CRUD, es decir, crear, leer, actualizar y eliminar datos utilizando SQL Server como nuestra base de datos.
En este curso veremos:
ASP.NET Core
ASP.NET Core MVC
ASP.NET Identity Core para seguridad
Entity Framework Core para acceso a datos
Alguno de los beneficios de de ASP.NET Core:
ASP.NET Core es un marco multiplataforma, de alto rendimiento y de código abierto para crear aplicaciones modernas, basadas en la nube y conectadas a Internet.
ASP.NET Core es un rediseño de ASP.NET 4.x.
ASP.NET Core ha sido rediseñado desde cero y ofrece los beneficios y características que comento en el vídeo:
Es recomendable para seguir este curso conocer:
HTML básico, CSS y C#. No es necesarios ser un experto. Todo lo que necesitas es tener conocimientos básicos.
El conocimiento previo de MVC es útil pero no es obligatorio.
Hola a todos. En este nuevo curso, analizaremos todos los conceptos básicos, intermedios y avanzados de ASP.NET Core que nos ayudan a crear aplicaciones web basadas en datos.Al final de este curso, podremos realizar todas las operaciones de un CRUD, es decir, crear, leer, actualizar y eliminar datos utilizando SQL Server como nuestra base de datos.
En este segundo capítulo preparamos el entorno de trabajo para poder comenzar a programar. Los dos enlaces que os dejo nos ayudarán para este propósito:
1. Chatbot con inteligencia artifical en tensorflow
Hola a todos.En esta ocasión comenzamos un tutorial para crear y entrenar nuestro propio chatbot que se comportará con inteligencia artificial. Para crear un chatbot, o realmente hacer cualquier tipo de tarea de aprendizaje automático, el primer trabajo que tenemos que hacer es adquirir datos para el entrenamiento.Después necesitamos estructurarlos y prepararlos para que se formateen para "la entrada" y "la salida"para que un algoritmo de aprendizaje automático puede digerir.
La estructura de Reddit es en forma de árbol. Para un chatbot, esto significa que necesitamos separar las cosas para ser un comentario y luego una respuesta. El comentario es la entrada y la respuesta es la salida deseada. En Reddit, no todos los comentarios tienen respuestas, y puede ser que muchos comentarios tengan varias respuestas.Nos basaremos en las puntuaciones de los comentarios para elegir la mejor respuesta para nuestro chatbot. El comentario es la entrada, la respuesta es la salida deseada.
Lo que haremos es insertar los datos de los comentarios en una base de datos. Todos los comentarios vendrán cronológicamente, por lo que todos los comentarios serán inicialmente el "padre" y no tendrán un padre propio. Sin embargo, con el tiempo, habrá respuestas, y después podremos almacenar esta "respuesta"asociada a un padre en la base de datos.
En el siguiente vídeo explico estas ideas:
.
Ejemplo de un json de los comentarios:
{
"author":"Arve",
"link_id":"t3_5yba3",
"score":0,
"body":"Can we please deprecate the word \"Ajax\" now? \r\n\r\n(But yeah, this _is_ much nicer)",
Hola a todos.En este ocasión traigo un ejemplo sobre como empezar a utilizar machine learning con visual studio 2019. Hoy en día está de plena actualidad pero nunca está de más decir que Machine Learning es una disciplina científica del ámbito de la Inteligencia Artificial que crea sistemas que aprenden automáticamente.
En el ejemplo podemos ver:
Cómo entrenar, construir y generar modelos para machine learning.
Cómo predecir los pronósticos de ventas del próximos mes utilizando el modelo ML entrenado.
En el ejemplos se implementó como una aplicación web única y monolítica utilizando ASP.NET Core Razor.
La aplicación también está utilizando una base de datos de SQL Server para el catálogo de productos y la información de pedidos.
Si desea utilizar un SQL Server real o una base de datos SQL de Azure, solo necesita cambiar la cadena de conexión en la aplicación.
En el siguiente vídeo podéis ver el ejmplo del que os hablo:
Hola a todos.En este ocasión traigo un tutorial sobre como empezar a utilizar machine learning con visual studio 2019. Hoy en día está de plena actualidad pero nunca está de más decir que Machine Learning es una disciplina científica del ámbito de la Inteligencia Artificial que crea sistemas que aprenden automáticamente.
El proceso de aprendizaje automático es similar al de la minería de datos. Ambos sistemas buscan entre los datos para encontrar patrones. Sin embargo, en lugar de extraer los datos para la comprensión humana –como es el caso de las aplicaciones de minería de datos– el aprendizaje automático utiliza esos datos para detectar patrones en los datos y ajustar las acciones del programa en consecuencia. Los algoritmos del aprendizaje automático se clasifican a menudo como supervisados o no supervisados. Los algoritmos supervisados pueden aplicar lo que se ha aprendido en el pasado a nuevos datos. Los algoritmos no supervisados pueden extraer inferencias de conjuntos de datos
En el siguiente vídeo podéis ver como instalo y empiezo a trabajar con esta tecnología en visual studio 2019:
Hola a todos.Seguimos con nuestro curso dedicado a los patrones de diseño software.Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
En esta ocasión veremos el patrón de diseño Iterator. En diseño de software, el patrón de diseño Iterador, define una interfaz que declara los métodos necesarios para acceder secuencialmente a un grupo de objetos de una colección.El patrón surge del deseo de acceder a los elementos de un contenedor de objetos (por ejemplo, una lista) sin exponer su representación interna
El modelo de clases que utilizaremos para este ejemplo es el siguiente:
En el siguiente vídeo tenéis un ejemplo de este patrón de diseño
Os dejo el código de las diferentes clases vistas en el vídeo:
Hola a todos.Seguimos con nuestro curso dedicado a los patrones de diseño software.Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
En esta ocasión veremos el patrón de diseño Strategy. El patrón Estrategia (Strategy) es un patrón de diseño para el desarrollo de software. Se clasifica como patrón de comportamiento porque determina cómo se debe realizar el intercambio de mensajes entre diferentes objetos para resolver una tarea. El patrón Strategy permite mantener un conjunto de algoritmos de entre los cuales el objeto cliente puede elegir aquel que le conviene e intercambiarlo dinámicamente según sus necesidades.
El modelo de clases que utilizaremos para este ejemplo es el siguiente:
En el siguiente vídeo tenéis un ejemplo de este patrón de diseño
Os dejo el código de las diferentes clases vistas en el vídeo:
Interface IConexion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Strategy
{
interface IConexion
{
string conectar();
Boolean conexionEstablecida();
}
}
Clase GestionarConexiones.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Strategy
{
class GestionarConexiones
{
private IConexion conexion;
public void ConexionesOracle()
{
this.conexion = new Oracle();
}
public void ConexionesSQL()
{
this.conexion = new SQL();
}
public string conectar()
{
return this.conexion.conectar();
}
public Boolean conexionCorrecta()
{
return this.conexion.conexionEstablecida();
}
}
}
Clase Oracle.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Strategy
{
class Oracle : IConexion
{
Boolean conexionCorrecta = false;
public string conectar()
{
conexionCorrecta = true;
return "Conectando con BBDD ORACLE";
}
public Boolean conexionEstablecida()
{
return conexionCorrecta;
}
}
}
Clase SQL.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Strategy
{
class SQL:IConexion
{
Boolean conexionCorrecta = false;
public string conectar()
{
conexionCorrecta = false;
return "Conectando con BBDD SQL";
}
public Boolean conexionEstablecida()
{
return conexionCorrecta;
}
}
}
Clase Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Strategy
{
class Program
{
static void Main(string[] args)
{
GestionarConexiones gesConex = new GestionarConexiones();
3. Como crear un chatbot con inteligencia artificial
Hola a todos.En esta ocasión continuamos trabajando con Dialogflow. Para los que no lo conozcáis, se trata de un paquete para crear interfaces de conversación en sitios web, aplicaciones de dispositivos móviles, plataformas populares de mensajería y dispositivos de IoT.
Nosotros estamos creando un chatbot para atender las reservas de un restaurante.En esta ocasión aprendemos a realizar peticiones a la API/REST que tiene disponible esta plataforma para interactuar desde nuestras diferentes aplicaciones. En nuestro caso el punto de entrada de la API es: https://api.dialogflow.com/api/query?v=20150910
Con estas consideraciones, podemos pasar a ver el vídeo donde explico como hacer las peticiones a la API de dialogflow.
La petición POST echa en el ejemplo (sin los datos de autenticación) es la siguiente:
Hola a todos.Seguimos con nuestro curso dedicado a los patrones de diseño software.Los patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces.
En esta ocasión veremos el patrón de diseño Memento, que es un patrón de diseño cuyo objetivo principal es mantener los diferentes estados que puede tener un objeto, permitiendo la recuperación de los mismos en el tiempo.Es decir su finalidad es almacenar el estado de un objeto (o del sistema completo) en un momento dado de manera que se pueda restaurar en ese punto de manera sencilla. Para ello se mantiene almacenado el estado del objeto para un instante de tiempo en una clase independiente de aquella a la que pertenece el objeto (pero sin romper la encapsulación), de forma que ese recuerdo permita que el objeto sea modificado y pueda volver a su estado anterior.
El modelo de clases que utilizaremos para el ejemplo es el siguiente:
En el siguiente vídeo tenéis un ejemplo de este patrón de diseño.
Os dejo el código de las diferentes clases vistas en el vídeo:
Clase Caretaker
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Memento
{
//Clase para la gestión de objetos del tipo Memento
class Caretaker
{
private ArrayList fechas = new ArrayList();
public void agregarMemento(Memento m) { fechas.Add(m); }
public Memento dameMemento(int index) { return ((Memento)fechas[index]); }
}
}
Clase Horas.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Memento
{
class Horas
{
private DateTime fecha;
public Memento guardarFecha()
{
return new Memento(this.fecha);
}
public void restaurarFecha(Memento memento)
{
this.fecha = memento.DameFecha();
}
public DateTime dameFecha()
{
return fecha;
}
public void asignarFecha(DateTime f)
{
this.fecha = f;
}
}
}
Clase Memento.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Memento
{
//ESta clase
class Memento
{
private DateTime fecha;
public Memento(DateTime tiempo)
{
this.fecha = tiempo;
}
public DateTime DameFecha()
{
return this.fecha;
}
}
}
Clase Program.cs
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Memento
{
class Program
{
static void Main(string[] args)
{
//instaciamos la clase que gesitiona nuestros mementos
2. Como crear un chatbot con inteligencia artificial
Hola a todos.En esta ocasión continuamos trabajando con Dialogflow. Para los que no lo conozcáis, se trata de un paquete para crear interfaces de conversación en sitios web, aplicaciones de dispositivos móviles, plataformas populares de mensajería y dispositivos de IoT.
Nosotros estamos creando un chatbot para atender las reservas de un restaurante.En esta ocasión veremos el concepto de contexto. En una comunicación entre dos personas, el Contexto es el conjunto de circunstancias en las cuales se produce la conversación (lugar , tiempo etc.), para no perder el contexto en una conversación siempre es importante tener información de la frase anterior para seguir teniendo una comprensión en el mensaje.
Con estas consideraciones, vamos a configurar los contextos en DialogFlow. En el siguiente vídeo podemos ver un ejemplo: