miércoles, 21 de abril de 2021

Desarrollar un Crawler simple con C#

 

Lo primero que tenemos que hacer es un proyecto nuevo con Visual Studio. En mi caso vamos a usar Visual Studio 2019. El proyecto lo vamos a desarrollar usando C#. Vamos a hacer un Console app el cual le vamos a llamar SimpleCrawler.



El proyecto va a hacer. netcore 3.1

Cuando el proyecto esta listo vamos a buscar en NuGet el paquete HtmlAgilityPack y lo vamos a instalar. 



Con este paquete instalado lo primero que vamos a hacer en la clase Main es importar las librerías necesarias para crear nuestro crawler


Ahora vamos a ver como se construye el código para ir navegando en el contenido de la página web. 



Ahora, en la línea 12 tenemos que copiar el URL de la página web que deseamos escanear. Con esto vamos a crear un cliente Http para leer el documento web como se puede ver en la línea 14. Ya en la línea 16 obtenemos el contenido del documento de Html. Este al final lo podemos obtener como si fuera una variable string.

Ahora si ya con esto listo en la línea 18 creamos un objeto de tipo HtmlDocument del paquete AgilityPack. El cual nos va a permitir convertir el documento que tenemos de tipo string a un objeto de tipo AgilityPack. Esto lo cargamos en la línea 19.

Para poder leer todos los links usamos la línea 21 el cual usa el document que creamos anteriormente y cargamos todos los nodos. De estos nodos que cargamos vamos a seleccionar únicamente los anchor (links).

En la línea 23 vamos a recorrer todos los resultados encontrados en la línea 21 y vamos a ir uno por uno mostrando el contenido de cada uno de estos. Usando la propiedad OuterHtml que tenemos en la línea 24.

Lo que nos da como resultado lo siguiente 



Aquí podemos ver todos los links que tiene la página web. Ahora cada uno podría hacer lo que necesita con estos links.

Podemos recordar que con este paquete podemos buscar cualquier tipo de nodo que tenemos en los sitios web.

¿Qué es un Crawler? 


Etiquetas: , , ,

jueves, 10 de diciembre de 2020

Dapper - SQL

 


Tratando de mejorar el rendimiento de una aplicación encontré este framework buscando alternativas a Entity Framework. Algunos queries que se crean con EF son complejos y demandan cierto rendimiento de la aplicación.  

Después de comprar algunos resultados haciendo las mismas consultas entre EF y Dapper se encuentran cosas interesantes como que se reduce la cantidad de recursos con Dapper. Cada uno de los queries que se crearon redujeron su tamaño en memoria, cargando los mismos datos.

Dapper lo que hace es mapear los resultados de las consultas de SQL en objetos de C#, los cuales luego se pueden utilizar para hacer cualquier otra cosa que se quiera.

Vamos a ver como utilizarlo creando un proyecto y una base de datos de SQLite.

 



Ahora lo que tenemos que hacer es crear una tabla en la nueva base de datos de SQLite



Vamos a usar una única table con 4 registros para nuestro ejemplo.

Lo que debemos hacer ahora es una clase POCO con las propiedades de la tabla. En nuestro ejemplo solo ocupamos el id y el producto. Con esto ya podemos mapear nuestros datos a una clase POCO.


Tenemos que utilizar las librerías que instalamos y algunas otras. Como se puede ver hacemos un using de Dapper.



El código para las consultas lo vamos a hacer en la clase Main


Como se puede ver en el primero script hacemos un SELECT de todos los datos que tenemos. Creamos la conexión de SQLite para poder hacer la consulta de datos. Luego simplemente usamos la clase POCO para correr y mapear los datos resultantes del Query. Luego como se puede ver en el ciclo for los datos se pueden manipular fácilmente.

Pero también tenemos la opción de pasar parámetros a las consultas de SQL. Como se ve en el siguiente ejemplo tenemos el parámetro @id el cual es la llave de nuestra tabla. En este caso solo se va a retornar un solo dato.


Para poder pasar los parámetros se pasan con el query y el nombre de los parámetros con el valor que se necesita.

Dapper es un Framework simple pero poderoso para poder cargar los datos de las bases de datos a objetos de POCO. Este, además, requiere de menos memoria que EF. Por otro lado, nos permite utilizar lenguaje de SQL para hacer las consultas que en lo personal me parece más fácil para consultar las bases de datos SQL.

Puede encontrar más información aquí 


Etiquetas: , , ,

domingo, 17 de mayo de 2020

Cross-Platform desktop apps con Electron, C#, Blazor y Visual Studio

Crear aplicaciones para diferentes sistemas operativos en algunas ocasiones es complicado, sin embargo, utilizando las tecnologías web se pueden crear aplicaciones de escritorio que puedan ser utilizadas en diferentes sistemas operativos de manera simple.

Las herramientas que vamos a necesitar para poder crear estas aplicaciones web para escritorios serían las siguientes

  • Npm
  • Nodejs
  • VisualStudio 2019
  • Blazor
  • C#
  • Html
  • Css
  • Javascript
  • .netcore 3.1


Lo primero que vamos hacer es un proyecto nuevo con Visual Studio 2019. Este proyecto debe ser un proyecto Blazor (claro que con electron se pueden crear otro tipo de tecnologías web para las apps).


Después de seleccionar el proyecto vamos a darle un nombre. En mi caso le voy a dejar el nombre de firstApp. Finalmente le damos clic a crear para que se construya nuestro proyecto. Para este primer proyecto no vamos a cambiar nada, lo vamos a correr para ver nuestra aplicación web corriendo. Como podemos observar es una aplicación web normal, aquí es donde vamos a crear toda nuestra lógica/interfaz de usuario.

En este momento ocupamos agregar una librería desde nuget. La cual es electronNet.API

Cuando esta librería esta instalada debemos hacer unos pequeños cambios a nuestra aplicación. Primero vamos a ir a Startup.cs y vamos a agregar esta instrucción Task.Run(async () => await Electron.WindowManager.CreateWindowAsync());


El siguiente paso es ir a Program.cs donde ocupamos agregar una pequeña instrucción. Dentro del método CreateHostBuilder agregamos la línea webBuilder.UseElectron(args);

Ahora estamos listos para convertir nuestra app en un Electron app. Lo que se tiene que hacer en este momento es instalar el electronCLI. Esto lo podemos hacer usando el cmd o con la terminal de Visual Studio. En cualquiera de los dos casos tenemos que ubicarnos donde se encuentra ubicado nuestro proyecto.

Yo voy a usar cmd, en mi caso esta ubicado en la siguiente dirección 


Y ahora corremos esta instrucción dotnet tool install --global ElectronNet.CLI --version 8.31.2

Debemos esperar a que se termine de instalar (es importante notar que para el momento de este blog la versión era 8.31.2) nada más de ajustar la versión del CLI para el momento de instalación.

Ya casi estamos listos para poder correr nuestra app de Electron. Por el momento tenemos que correr la siguiente instrucción “electronize init”. Esto crea una serie de configuraciones que permiten que nuestra app se corra como una aplicación Electron. Cuando se termina igual dentro del cmd vamos a correr esta otra instrucción “electronize start” ya con esto vamos a poder ver nuestra app corriendo como si fuera una aplicación de escritorio.

 


 

 Ejemplo


Etiquetas: , , , ,

jueves, 7 de mayo de 2020

MongoDB y C#

Vamos a crear una aplicación en VS2019 MVC que pueda conectarse de manera fácil a una base de datos de mongo.

Para este ejemplo vamos a utilizar una base de datos de Atlas que nos permite tener una sola de 500MB gratis. Ya si se desea tener mayor capacidad o más bases de datos se requiere de pagar por el uso de estas.

Bueno en este momento vamos a crear una aplicación de MVC con VS2019.

Después de crear el proyecto nuevo debemos instalar los siguientes paquetes desde Nuget



Lo que tenemos que hacer ahora es crear un folder nuevo llamado Repository. En este folder vamos a crear las clases necesarias para poder interactuar con nuestra base de datos. Primero desarrollaremos una interfaz con los métodos base para las operaciones sobre la base de datos, estas operaciones serian buscar documento, borrar documento, actualizar documento y agregar documentos. El nombre de nuestra interfaz seria IMongoInteraction.

Para poder construir el código necesario de cada una operación debemos crear una clase llamada MongoInteraction esta clase debe implementar la interfaz. Dentro de esta clase vamos a construir el código necesario para poder interactuar con la base de datos.

Nosotros vamos a trabajar con un documento que lo podemos definir en una clase POCO que en nuestro caso llamamos MongoDocument (esta puede tener cualquier otro nombre). Para este ejemplo la clase no tiene propiedades, sin embargo, para poder trabajar ya con mongo debemos agregar las propiedades que deseamos guardar en los documentos.

MongoInteraction requiere un constructor el cual nos permite inicializar la conexión de la base de datos, agregar el nombre de nuestra base de datos y la colección que deseamos usar para manipular los documentos.

 

En este momento la manipulación de los documentos es muy fácil y siempre vamos a utilizar el objeto _collection que ya tiene todo lo necesario para poder trabajar sobre la colección de datos.

Como podemos observar en la línea 23 para borrar un documento hacemos uso de _collection y el método DeleteOneAsync, este ultimo requiere de un filtro para saber cuales datos queremos borrar. Lo mismo con el método de buscar lo único que se necesita es el filtro. Ahora para poder crear un documento debemos crear un objeto de la clase MongoDocument (POCO) que tiene los atributos del documento y enviar esto al método InsertOneAsync. Finalmente, el método para actualizar o remplazar un documento requiere primero el filtro del documento que deseamos reemplazar y la información del nuevo documento que se quiere usar de ahora en adelante. Ya con esto podemos hacer las operaciones en la colección de mongo.

 

Ahora nos vamos a ir al controlador Home donde vamos a ver como llamar las operaciones para trabajar con nuestra base de datos. En la línea 17 creamos una variable que nos permite manejar la clase con las operaciones en todo el controlador. Como se puede ver en el constructor de la clase se pasa por referencia un objeto de tipo IMongoInteraction, este es el que se asigna en la línea 23.

Con todo esto preparados seguimos a la línea 26 donde tenemos un método llamado Index. Aquí se puede observar en la línea 29 como creamos el filtro para cargar datos de nuestra colección de mongo. Se define el filtro y se pasa al método de buscar en la línea 30. Este nos debe retornar un objeto de tipo MongoDocument. Para cualquier otra operación se debe crear un filtro igual que en la línea 29 claro cambiando lo que se desea filtrar, es decir, cualquier otra propiedad o propiedades.

Nos queda pendiente un último paso para poder utilizar mongo, el cual debemos desarrollar en la clase Startup

En este paso se debe agregar la línea 24 donde usando la variable service agregamos un objeto de IMongoInteraction, esto usando el método AddSingleton. Nada mas recordar que para este objeto se debe pasar la conexión string para nuestro ejemplo lo estamos llamando del appsettings.

De esta manera tenemos una aplicación web con acceso a una base de datos de mongodb.


Ejemplo


Etiquetas: , , ,

viernes, 4 de octubre de 2019

CosmosDB Singleton


Hace unos días me toco trabajar en proyecto grande con cosmosDB. Inicialmente cada petición que tenia se establecía una conexión y al terminar se terminaba la conexión. Con el incremento de peticiones al servicio Rest iniciamos a tener errores con el Socket. La conexión la tenía implementada con TCP.

Por lo que cambie la conexión del API a utilizar un singleton para poder eliminar el problema.

Vamos a ver como podemos hacer el singleton para un proyecto de Rest API con C# y cosmosDB.
Primero vamos hacer un proyecto nuevo de MVC para crear nuestro Rest API.


Con el proyecto listo lo primero que vamos hacer es una carpeta nueva que se llama services. Aquí vamos a guardar las clases y la interfaz que nos permitirá hacer las consultas a nuestra base de datos.


En la interfaz ICosmosDBServices lo que debemos agregar son los métodos que van a realizar las operaciones en cosmosDB. En nuestro ejemplo tenemos métodos para buscar información agregar documentos y borrar, pero podríamos hacer todos los que necesitamos.


namespace CosmosDBSingleton.Serivces
{
    public interface ICosmosDBService
    {
        dynamic FindDocument(string documentid);
        Task<dynamic> CreateNewDocumentAsync();
        Task<bool> ReplaceDocument();
    }
}

La clase CosmosDBServices la vamos a usar para desarrollar los métodos que se definieron en la interfaz. Para nuestro ejemplo solo usaremos en método de buscar. Pero se pueden crear todos.


public class CosmosDBService : ICosmosDBService
    {

        private readonly DocumentClient _client;
        private readonly FeedOptions _queryOptions;

        public CosmosDBService(string endpointUrl, string primaryKey)
        {
            var connectionPolicy = new ConnectionPolicy()
            {
                ConnectionMode = ConnectionMode.Direct,
                ConnectionProtocol = Protocol.Tcp,
                EnableEndpointDiscovery = true
            };
            _client = new DocumentClient(new Uri(endpointUrl), primaryKey, connectionPolicy);
            _queryOptions = new FeedOptions { MaxItemCount = 1000, EnableCrossPartitionQuery = true };
        }

En esta clase también vamos a definir un objeto de conexión a la base de datos. Que tiene de nombre _client. El constructor de la clase requiere que se le pase el endpoint de conexión y la llave de seguridad de la base de datos para poder crear esta conexión. Dentro del constructor configuramos alguna información de la conexión y establecemos la conexión a la base de datos.

En este momento ya podemos usar la conexión de la base de datos para consultas borrar o actualizar documentos.

Como vemos el método FindDocument requiere de un parámetro para hacer la consulta y ya con esto podemos iniciar la consulta de documentos a la base de datos.


 public Task<dynamic> CreateNewDocumentAsync()
        {
            throw new NotImplementedException();
        }

        public dynamic FindDocument(string documentid)
        {
            var query = new SqlQuerySpec()
            {
                QueryText = "SELECT top 1 * FROM c where c.id=@id",
                Parameters = new SqlParameterCollection() { new SqlParameter("@id", documentid) }
            };
            var crossQueryInSql = _client.CreateDocumentQuery<dynamic>(UriFactory.CreateDocumentCollectionUri("cosmosdb database", "cosmosdb collection"), query, _queryOptions).ToList();
            return crossQueryInSql.FirstOrDefault();
        }

        public Task<bool> ReplaceDocument()
        {
            throw new NotImplementedException();
        }

        public async Task<bool> OpenConnection()
        {
            await _client.OpenAsync();
            return true;
        }

Ahora nos debemos ir a la clase Startup donde crearemos la conexión a cosmos. Usando la configuración de los appsettings pasamos la información requerida a la clase de cosmosDBServices.


 public void ConfigureServices(IServiceCollection services)
        {
            services.Configure(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            services.AddSingleton(InitializeCosmosClientInstanceAsync(_config.GetSection("CosmosDBSettings")));

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
        }

services.AddSingleton(InitializeCosmosClientInstanceAsync(_config.GetSection("CosmosDBSettings")));

Dentro de esta clase creamos un método llamado InitializeCosmosClientInstanceAsync el cual recibe la información del appsettings con la información de cosmosdb. Ahora lo que debemos hacer es crear una instancia de CosmosDBService con los settings y retornar el objeto listo con la información de la conexión. De esta manera vamos a tener una conexión única para hacer las operaciones a cosmosdb.


  private static ICosmosDBService InitializeCosmosClientInstanceAsync(IConfigurationSection configurationSection)
        {
            string endpoint = configurationSection.GetSection("CosmosDBAPi").Value;
            string key = configurationSection.GetSection("CosmosDBKey").Value;

            var cosmosDbService = new CosmosDBService(endpoint, key);
            cosmosDbService.OpenConnection().GetAwaiter().GetResult();
            return cosmosDbService;
        }


appsettings


Después de esto los errores con las conexiones y los sockets se terminaron.


Etiquetas: , , , , , ,

viernes, 6 de septiembre de 2019

Rest API con C#


Vamos a ver como llamar un Api usando C#, en este caso usando una aplicación de .netcore.

Lo primero que vamos hacer es crear una aplicación de Console app con Visual Studio 2019. En mi caso tiene de nombre TestDummyApi y vamos a utilizar un endpoint con datos para hacer testing. Podemos encontrar el Api aquí http://dummy.restapiexample.com/

Con el proyecto listo vamos a crear dos clases Poco para guardar y leer los datos del Api

La clase EmployeesPoco que nos permite leer los datos que vamos a recibir del Api.

La clase EmployeePoco que nos permite crear un objeto con los datos que deseamos enviar al Api para guardarlos.


Ahora muy fácil. Debemos de ir a el administrador de paquete (Nuget)

Tenemos que buscar el paquete system.net.http que nos va a permitir hacer las llamadas de los Apis.

Ahora lo tenemos que instalar en el proyecto que estamos trabajando.

Con esto podemos crear el using que vemos en la línea 10 con un objeto de tipo HttpClient para hacer las llamadas de los endpoints. Ahora todo el código que vamos hacer para el uso de los Apis lo agregamos entre las llaves de la línea 11 y 13.

Antes de continuar debemos agregar una librería nueva que nos permite convertir datos de objetos a json y de json a objetos.

Con esto ya estamos listos para desarrollar nuestra app


Usando el objeto de client podemos hacer llamado a un metodo GetStringAsync, este requiere que se le envie el URL donde vamos a usar los datos. El resultado de este Api nos retorna una lista de empleados.

Usando el foreach vamos a recorrer la lista que nos retorno el Api podemos recorrer toda la lista. En este momento podemos ver todos los datos que tiene el Api. En nuestro ejemplo lo que vamos a visualizar es el nombre de cada uno de los empleados pero se puede ver el resto de los datos.

Ahora si vamos a invocar el método de post

Lo primero que tenemos que hacer es el objeto que deseamos guardar en el servicio del Api. En este caso el objeto es de tipo EmployeePoco, asignamos los valores de las propiedades. Luego este objeto lo convertimos en un json que al final es los datos que deseamos enviar. Esta información se asigna a la variable data.

Usando el método PostAsync del objeto client que ya tenemos vamos a poder enviar esta información. Este método requiere como primer parámetro el endpoint que se ocupa para almacenar datos. Como segundo parámetro le enviamos la información que se ocupa almacenar. Usamos el método ReadAsStringAsync para ver el json resultante como un string.

De esta manera podemos usar Rest APIs con c#


Ejemplo

Etiquetas: , , , ,

martes, 13 de agosto de 2019

Publicar un sitio web en Azure usando Visual Studio 2019


Con Azure podemos publicar sitios web pequeños sin costo si no es problema usar los URLs que da Azure. En caso de que queramos agregar un nombre de dominio ya tendríamos que pagar, pero se pueden usar para hacer pruebas o si no es problema usar un dominio de Azure podemos dejarlos así de manera gratuita.

Lo primero que vamos a hacer es crear un proyecto nuevo de tipo Razor MVC en Visual Studio 2019 (si no saben cómo hacer uno, pueden ver este blog)

Cuando ya tenemos listo con el proyecto debemos ir al portal de Azure usando nuestras credenciales.
Dentro del portal de Azure vamos a buscar la opción App Services para poder crear nuestro sitio web.

Se puede usar el campo de texto para buscar también esta opción.

Cuando damos clic vamos a ver otra venta con las opciones para crear nuestro sitio web.

Lo siguiente es dar clic al botón de Add

Luego del botón add vamos a ver la siguiente ventana

Aquí debemos seleccionar el runtime que deseamos correr, la región, el nombre de nuestro sitio web y podemos seleccionar que el plan es gratis para no tener que pagar por este sitio web. Ahora solo debemos esperar un momento que nuestro sitio web se termine de construir.

Cuando nuestro sitio web esté listo vamos a dar clic sobre el para ir a ver sus propiedades.

Dentro de las propiedades del sitio web vamos a poder el siguiente menú de opciones. En este punto lo que tenemos que hacer es dar clic al botón Get publish profile, lo que nos permite descargar un archivo de configuración para poder crear el perfil de publicación en VS2019.

Cuando se termine la descarga nos tenemos que dirigir a VS2019. Sobre nuestro proyecto vamos a dar clic derecho y buscamos la opción de Publish.

Con lo que podremos ver la siguiente ventana. En este punto debemos dar clic sobre el botón import Profile y simplemente buscamos el archivo que descargamos de Azure para poder publicar nuestro sitio web.

Finalmente, aparecerá una ventana con la opción de publicar

Simplemente dando clic al botón de Publish y esperar que el proceso termine podremos ver nuestro sitio web publicado en Azure, listo para ser utilizado.






Etiquetas: , , , , ,

viernes, 9 de agosto de 2019

Visual Studio 2019 – Crear Proyecto de Web MVC


Para hacer un proyecto web usando VS2019 podemos utilizar la versión gratuita con la que no vamos a tener ningún problema y se puede desarrollar todo tipo de proyecto.

Al momento de abrir VS2019 vamos a ver la siguiente ventana


Al lado izquierdo vamos a tener los proyectos recientes en los que hemos trabajado y al lado derecho las opciones para crear o descargar proyectos con lo que deseamos trabajar. Para este ejemplo vamos a dar clic al botón de “Create a new project” para iniciar nuestro proyecto web.

Después de esto vamos a ver la siguiente ventana


Ahora debemos dar clic sobre el tipo de proyecto que dice ASP.Net Core Web Application. Con esta opción seleccionado ya podemos dar clic al botón de next.


En este momento debemos de darle el nombre al proyecto que deseamos desarrollar. Además, de seleccionar el folder donde vamos a guardar nuestro nuevo proyecto.

Ya estamos listos para dar clic al botón de Create.

La siguiente ventana que vamos a ver seria esta


En esta ventana vamos a poder seleccionar la versión del .Net Core que queremos utilizar para correr nuestra aplicación, entre otros formatos que le podemos dar. En este caso vamos a seleccionar el que dice Web Applciation (Model-View-Controller). Finalmente, damos clic al botón Create. Ahora esperamos que VS2019 termine de construir nuestro proyecto.


Cuando este proceso termina ya estamos listos para trabajar en nuestra nueva aplicación web.


Otros artículos que pueden ser de su interés

Etiquetas: , , , , , , , ,

jueves, 18 de julio de 2019

Algunos Frameworks para desarrollo móvil


Existen muchas opciones que tenemos disponibles hoy en día para desarrollar aplicaciones móviles. De las cuales todas nos dan formas diferentes de solucionar lo que estamos buscando. La estrategia es muy similar, pero tienen algunas características diferentes.

Cuando tenemos que tomar la decisión de cual framework debemos usar lo primero que debemos buscar es a lo que estamos mas acostumbrados a trabajar. Realmente todo depende de que deseamos hacer y con cual equipo de trabajo lo queremos hacer.

Actualmente contamos con iOS y Android como los principales sistemas operativos en el mercado, pero con una cantidad de formas y frameworks para el desarrollo increíble donde cada uno dice que es el mejor por a o b razones.

En este momento yo no voy a tratar de indicar cual es mejor que otra ya que como mencione anterior mente depende de muchas variables para poder decir cual es mejor o peor. Pero si dar una lista que con las que se podría iniciar una investigación y ver cual se ajusta mejor a cada equipo de trabajo.

Primero tenemos una lista basados en Java

Oracle MAF: Podemos escribir nuestro código en Java usando JDeveloper. Es muy fácil de usar y podemos usarlo para compilar en iOS y Android

Gluon: Se escribe con Java y podemos usarlo con diferentes IDEs como por ejemplo con Netbeans. También compila iOS y Android

Codenameone: Se escribe con Java y tiene una particularidad este se debe subir a los servidores de codenameone para compilar nuestra app. Que se puede compilar para iOS y Android.

Itel Multi-OS: Se escribe el código con Android, se puede usar el Android Studio y este también puede compilar a iOS.

Xamarin: Se escribe el código con C# y se puede compilar para iOS y Android.

Apache Cordova: Se usa Javascript para escribir el código y se puede compilar para iOS y Android

IONIC: Se escribe el código con Javascript y se puede compilar para iOS y Android

Flutter: Este es de Google y el código se escribe con Dark. Crea apps para iOS y Android

Esto es para mencionar algunas, pero existen muchas más opciones para escribir nuestras apps. Lo importante es trabajar con las que nos sintamos más familiarizados y los que tengan los frameworks que se ajusten más a nuestro equipo de desarrollo.

Podríamos usar esta técnica https://compuarticulos.blogspot.com/2019/02/como-seleccionar-el-lenguaje-o-proyecto.html para seleccionar nuestro ambiente de desarrollo móvil.

Etiquetas: , , , , , , , , , , , , , , , ,

jueves, 4 de julio de 2019

Trabajo colaborativo con Visual Studio 2019


Ya era necesario una herramienta tan interesante como el live share de Visual Studio 2019. Es simplemente increíble.

Esta herramienta nos permite compartir nuestra solución entre compañeros de manera remota y de una manera sumamente simple. Esta herramienta nos permite compartir nuestra solución, pero no es nada más enviar el código a otros, esto nos permite trabajar en la misma solución al mismo tiempo. 

Podemos ver los cambios mientras están ocurriendo y quien esta haciendo los cambios.

Hace unos días lo intentamos entre 4 compañeros y funciono muy bien sin problemas. Y cuando uno corre la solución también se ejecuta donde los otros que están viendo la solución.

Para poder usar esta herramienta ocupamos Visual Studio 2019 o Visual Studio Code. En mi caso usamos Visual Studio 2019.

En la esquina superior derecha vamos a ver la nueva opción

Debemos de dar clic al botón y con esto vamos a tener una serie de opciones.

Si no les sale de una vez la siguiente pantalla pueden dar clic al botón que dice More Info en el siguiente banner.


Ahora si para poder compartir nuestra solución debemos compartir este link con las personas que van a ver mi solución. La otra opción es directamente sobre el banner dar clic al botón de Copy Again. Pasamos el link y ya casi estamos listos para compartir nuestra solución.

Ahora si la persona que va a trabajar con nosotros debe abrir en el browser el link con lo que va a poder ver una pantalla como esta 

Y en este punto debe seleccionar si quiere abrir la solución con Visual Studio Code o con Visual Studio 2019.

De esta manera se abre la solución a las personas que van a colaborar con mi proyecto.

Finalmente, para terminar la sesión solamente vamos nuevamente al menú de la parte superior de la derecha y damos clic en End Live Share Session



Etiquetas: , , , ,