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
- En este capítulo del curso de programación en c# con visual studio 2017 vamos a empezar una nueva serie de entradas relacionadas con un tema de moda: la inteligencia artificial.El auge de esta tecnología se de debe al deseo de automatizar distintas tareas hasta ahora realizadas por seres humanos.
- Podemos observar que la IA se aplica en casi todas partes como por ejemplo: minería de datos para encontrar relaciones entre individuos cuando obtienes una lista de sugerencias de amigos en Facebook, recomendaciones de compra en Amazon , cuando jugamos contra la máquina en un videojuego etc...
- Os dejo algunas definiciones destacadas de inteligencia artificial:
- Para completar más datos sobre IA podéis consultar también este enlace de la wikipedia. Una vez vistas algunas definiciones sobre inteligencia artificial podemos definir el concepto de agente: Un agente es una entidad capaz de percibir su entorno y actuar sobre él . La diferencia principal entre un agente y un programa común es que el primero debe ser autónomo; es decir, debe funcionar sin intervención directa de humanos u otros. Una diferencia adicional es que el agente realiza tareas concretas en nombre de alguien.
- En la siguientes entradas del blog y en nuestro canal de youtube trataremos de realizar un juego de ajedrez donde nosotros moveremos las piezas blancas y un agente mueva las piezas negras. Nos basaremos en estos tres enlaces que dejo. Es importante echarles un vistazo para seguir los siguientes capítulos con fluidez:
71. Nuestro propio buscador de peliculas (9). Acabamos el buscador.
- En este capítulo del curso de programación en c# con visual studio
2017 , finalizamos nuestro proyecto consistente en crear nuestro propio buscador. Ya estamos utilizando la API que nos proporciona https://www.themoviedb.org , para realizar consultas y mostrar los resultados de una manera
estructurada en pantalla.
-
En esta nueva entrada preparamos la aplicación para realizar peticiones al método https://developers.themoviedb.org/3/discover/movie-discover . En está ocasión este método nos devolverá las peliculas más importantes según un año que previamente elijamos y en función de los votos que haya registrada en esta página. En el video se ve en detalle lo que os cuento:
- En esta entrada finalizamos nuestra buscador. Ya hemos visto como utilizar algunos de los métodos disponible en esta API.Existen multitud de métodos más si queréis seguir practicando. Las llamadas a los diferentse métodos será muy similares a las que ya hemos visto. Como en capítulos anteriores os dejo el código visto en el video:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using Newtonsoft.Json; using BuscadorWebPeliculas.Clases;
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. Ya estamos utilizando la API que nos proporciona https://www.themoviedb.org , para realizar consultas y mostrar los resultados de una manera
estructurada en pantalla.
-
En esta entrada preparamos la aplicación para realizar peticiones a un nuevo método.En esta ocasión realizamos una petición al métodohttps://developers.themoviedb.org/3/discover/movie-discover que nos devolverá las peliculas que están en los cines(en el país que le pasemos como parametro en la consulta) en un rango de fechas que también especificaremos como parametro en la propia petición.
- Os dejo el video con el código al completo donde sacamos las 5 peliculas más desatcadas que hay en cartelera en España a fecha del 5 de mayo de 2018:
Os dejo también el código que hemos modificado de la página Default.aspx.cs para permitir realizar esta nueva petición:
using BuscadorWebPeliculas.Clases;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace BuscadorWebPeliculas
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
//LLAMAR A BBDD
Util u = new Util();
u.guardarBusquedasUsuarios(userip, navegador, plataforma, txtBuscador.Text);
}
catch (Exception ex)
{
//DE MOMENTO LO DEJO VACIA TRATAR COMO SE QUIERA
}
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. Ya estamos utilizando la API que nos proporciona https://www.themoviedb.org
, para realizar consultas y mostrar los resultados de una manera estructurada en pantalla. Además ya tenemos preparada la estructura de base de datos necesaria para almacenar información.
- En esta entrada preparamos la aplicación para realizar peticiones a nuestra base datos para poder almacenar la información en la tabla que preparamos en el capítulo anterior. Este ejemplo pretende ser un simil, a pequeña escala, de lo que hacen los grandes buscadores cada vez que realizamos una petición. Con cada busquedas que hacemos damos datos con los que crean perfiles orientados al marketing para su propio beneficio.Nada es gratis en internet, aunque lo parezca.
- Os dejo el video con el ejemplo:
- Una vez visto el video os dejo el código de la página aspx que relizan la petición y de nuestra clase Uitl.
Clase Util.cs:
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web;
namespace BuscadorWebPeliculas { public class Util {
using BuscadorWebPeliculas.Clases; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;
namespace BuscadorWebPeliculas { public partial class _Default : Page { protected void Page_Load(object sender, EventArgs e) {
}
protected void Unnamed2_Click(object sender, ImageClickEventArgs e) { if (txtBuscador.Text != String.Empty) { tableRes.Controls.Clear(); Util u = new Util(); String resultado = String.Empty;
//LLAMAR A BBDD Util u = new Util(); u.guardarBusquedasUsuarios(userip, navegador, plataforma, txtBuscador.Text); } catch (Exception ex) { //DE MOMENTO LO DEJO VACIA TRATAR COMO SE QUIERA }
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. Ya estamos utilizando la API que nos proporciona https://www.themoviedb.org
, para realizar consultas y mostrar los resultados de una manera estructurada en pantalla.
- En esta entrada nos crearemos una tabla en nuestra base de datos SQL SERVER donde almacenaremos algunos datos relevantes de los usuarios que realicen las busquedas en nuestro navegador.En el video lo podemos ver con más detalle:
- La estructura de tabla que hemos utilizado en el video para preparar nuestro entorno de base de datos para almacenar las consultas es la que muestro en la imagen:
- Además hemo creado un procedimiento almacenado que llamaremos desde el código de nuestra aplicación. Este procedimiento es que realmente ejuctarará la sentencia que introduzca los datos en nuestra tabla. Os dejo el código SQL del procedimiento:
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. Ya estamos utilizando la API que nos proporciona https://www.themoviedb.org , para realizar consultas y obtener la información solicitada. Ahora nos disponemos a estructurar y mostrar por pantalla los datos recibidos despues de hacer las peticiones a nuestra API.
- En el video muestro como ver los resultados de las diferentes busquedas que vamos haciendo en nuestro ejemplo:
- Una vez vista la manera en que podemos estructurar y mostrar la información por pantalla de una forma más decente, os dejo el código de la página del buscador.
using BuscadorWebPeliculas.Clases;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace BuscadorWebPeliculas
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Unnamed2_Click(object sender, ImageClickEventArgs e)
{
if (txtBuscador.Text != String.Empty)
{
tableRes.Controls.Clear();
Util u = new Util();
String resultado = String.Empty;
System.Web.UI.HtmlControls.HtmlTableRow tRow = new System.Web.UI.HtmlControls.HtmlTableRow();
System.Web.UI.HtmlControls.HtmlTableCell tCell = new System.Web.UI.HtmlControls.HtmlTableCell();
System.Web.UI.HtmlControls.HtmlTableCell tCell2 = new System.Web.UI.HtmlControls.HtmlTableCell();
tCell.Controls.Add(img);
tCell2.Controls.Add(l);
tRow.Cells.Add(tCell);
tRow.Cells.Add(tCell2);
tCell2.Align = "TOP";
tableRes.Rows.Add(tRow);
}
}
}
}
}
- El código de las otras clases utilizadas la tenemos en entradas anteriores.Si queréis seguir este ejemplo al completo debéis obtener vuestra propia clave de API, que podéis obtener en https://www.themoviedb.org.
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. Ya estamos utilizando la API que nos proporciona https://www.themoviedb.org , para realizar consultas y obtener la información solicitada.
-
En este capítulo después de realizar las primeras llamadas a la API empezaremos a definir los objetos necesarios para poder trabajar con los datos que nos develvuelven las diferentes peticiones hechas. En el video muestro como hacemos esto:
A modo de ejemplo os dejo la respuesta de a una de las búsquedas vistas en el video. En este ejemplo hemos hecho una petición buscando la pelicula Trainspotting , la cual que nos devulve esta respuesta en formato JSON:
{ "page":1, "total_results":3, "total_pages":1, "results": [ { "vote_count":3700, "id":627,"video":false, "vote_average":7.9, "title":"Trainspotting", "popularity":26.120268, "poster_path":"\/fj9PqztvKLuZh3DA40gsZFiShsY.jpg", "original_language":"en", "original_title":"Trainspotting", "genre_ids":[18,80], "backdrop_path":"\/yfNhWKqJFWTRvSo3Qf2x1IFteG3.jpg", "adult":false, "overview":"Mark Renton es un joven escocés adicto a la heroína, al igual que el resto de sus amigos Todos ellos viven en un mundo aparte, al margen de la realidad. Dentro del grupo hay un violento y alcohólico psicópata, un drogadicto desesperado, un mujeriego con un conocimiento enciclopédico de Sean Connery y un entusiasta de las caminatas y de Iggy Pop.", "release_date":"1996-02-23" }, { "vote_count":1193, "id":180863, "video":false, "vote_average":7, "title":"T2: Trainspotting", "popularity":12.44352, "poster_path":"\/g4lbA6mtdm801mi1LVdTf44G8gQ.jpg", "original_language":"en", "original_title":"T2 Trainspotting", "genre_ids":[80,18], "backdrop_path":"\/kR48L1E3OLOkQcnlmpi5wDj7ZZt.jpg", "adult":false, "overview":"Han pasado 20 años desde que Mark Renton abandonara Escocia, y la heroína. Ahora, Renton vuelve a su Edimburgo natal con el objetivo de rehacer su vida y reencontrarse con sus amigos de toda la vida: David \"Spud\" Murphy, y Simon \"Sick Boy\" Williamson; al mismo tiempo que Francis \"Franco\" Begbie sale de la prisión con sed de venganza. Secuela de 'Trainspotting' (1996), basada en 'Porno', la siguiente novela de Irvine Welsh, aunque el director Boyle aseguró que el guión de John Hodge no será demasiado fiel al libro.", "release_date":"2017-01-27" }, { "vote_count":14, "id":42758, "video":false, "vote_average":6.4, "title":"Small Faces", "popularity":2.356753, "poster_path":"\/s9I3gLu9ySsfyM3JvlpSW9KrszF.jpg", "original_language":"en", "original_title":"Small Faces", "genre_ids":[], "backdrop_path":null, "adult":false,"overview":"", "release_date":"1996-04-05" } ] }
Para manejar mejor la información que nos devulve la API nos creamos una clases con la ayuda de la web https://jsonutils.com/ . Os dejo la clases definidas:
using System; using System.Collections.Generic; using System.Linq; using System.Web;
namespace BuscadorWebPeliculas.Clases { public class RespuestaSearch { public int page { get; set; } public int total_results { get; set; } public int total_pages { get; set; } public IList<Result> results { get; set; } }
public class Result { public int vote_count { get; set; } public int id { get; set; } public bool video { get; set; } public double vote_average { get; set; } public string title { get; set; } public double popularity { get; set; } public string poster_path { get; set; } public string original_language { get; set; } public string original_title { get; set; } public IList<int> genre_ids { get; set; } public string backdrop_path { get; set; } public bool adult { get; set; } public string overview { get; set; } public string release_date { get; set; } } }
Finalmente utilizando esta clases y ayudandonos de la dll NewtonSoft podemos tener la información de una manera más manejable en el objeto que hemos definido como rest con esta llamada:
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. La idea es utilizar la API que nos proporciona https://www.themoviedb.org , para realizar consultas y mostrar la información de las busquedas solicitadas en pantalla.
- En este capítulo haremos las primeras peticiones a la API y mostraremos los resultados obtenidos en pantalla según recibamos la petición sin tratar los datos recibidos. En el video vemos las clases creadas para poder realizar las peticiones de una manera fácil.
Según hemos visto en el video nos hemos creado un clase para poder realizar las peticiones a la que hemos llamado Util.cs:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
namespace BuscadorWebPeliculas
{
public class Util
{
Además en página default.aspx.cs hacemo uso de esta clase para poder llamar a la API:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace BuscadorWebPeliculas
{
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Unnamed2_Click(object sender, ImageClickEventArgs e)
{
Util u = new Util();
- En este capítulo del curso de programación en c# con visual studio
2017 , continuaremos con nuestro nuevo proyecto consistente en crear nuestro propio buscador. La idea es utilizar la API que nos proporciona https://www.themoviedb.org , para realizar consultas y mostrar la información de las busquedas solicitadas en pantalla.
- En la entrada anterior comenzamos este nuevo proyecto y en este empezaremos con el desarrollo. En este video veremos como crear nuestra plantilla de proyecto y como conseguimos nuestra clave para consumir la API para empezar a realizar peticiones. Una vez tenemos nuestra clave podremos empezar a realizar peticiones y obtener nuestras respuestas en formato JSON.
- En el video esta pixelada la clave para hacer peticiones porque identifica de manera unívoca a quien realiza la petición. La idea es que los que estés interesados en seguir este tutorial obtengaís vuestra propia clave.
- Una vez tenemos nuestra clave ya podemos hacer las peticiones. De momento os dejo el código fuente de la página aspx y de la pagina Master donde esta nuestro buscador. Aunque en esta ocasión el proyecto tiene muchas más cosas y debéis ser vosotros los que os generéis vuestro propio proyecto utilizando la plantilla que hemos visto en el video.