Etiqueta: Visual Studio

Posts relacionados con el entorno de desarrollo (IDE) de Visual Studio

  • Tutorial para usar las APIs de Google con C# y Visual Basic

    Pues eso… que como yo me he encontrado con problemas a la hora de implementar las APIs de Google y de encontrar ejemplos (que de haberlos solo eran para C#), me he decido a escribir esta especie de tutorial para poder acceder a las siguientes APIs de Google: Drive, Docs y People. Es decir, poder manipular el contenido de Google Drive, los documentos y los contactos de Google que están asociados tu cuenta (o la cuenta que decidas usar) de GMail.

    Lo primero que necesitas (salvo que uses las que yo voy a crear para este tutorial) es crearte una cuenta en Google Cloud Platform, es gratuito al menos sino usas recursos que son de pago.
    La cuenta a usar será la que tengas ya de GMail o bien puedes crear una nueva cuenta y asociarla con Google Cloud.

    Cuandoi asocias una cuenta por primera vez, te darán una oferta de 300$ (US $) para que pruebes de forma gratuita los recursos de pago (siempre que no te pases de esos 300 dólares). Pero como te digo, para las cosas que te voy a explicar no te hace falta.

    Por ahora me voy a saltar el paso de crear tus propios poyectos en Google Cloud, eso lo dejaré para el final (salvo que cambie de opinión), lo que sí te digo es que si quieres utilizar los ejemplos que te voy a mostrar usando mis claves o las que yo indique en el código) antes debes decírmelo para poder añadir tu correo de GMail a los usuarios que pueden usar esas claves.

    Esto ultimo lo puedes hacer dejando un comentario en este mismo post y yo te agregaré, esto puede que no lo haga pasado unos meses, ya que solo quiero que la gente lo pruebe en este tiempo reciente, mientras publico los tutoriales. Y dejando, como mucho, unos tres meses de desde la publicación original, así que… si estás leyendo este tutorial después del 15 de marzo de 2021, es posible que o bien no admita más usuarios o simplemente que no lo siga «soportando», además de que hay un límite de 100 usuarios por proyecto, y si ya están esos usuarios registrados con la aplciación, es posible que, incluso antes del 15 de marzo del 2021 no pueda admitir más usuarios.

    Dicho esto, empecemos.

    Nota:
    Los ejemplos los voy a hacer con .NET 5.0.1 pero son válidos para .NET Framework v4.5 y superiores, .NET Standard y .NET Core.

    Crear un proyecto en C# o Visual Basic

    Crea un proyecto de consola para C# o VB y ve a Tools>NuGet Package Manager>Manage NuGet Packages for Solution… (en español es: Herramientas>Administrador de paquetes NuGet>Administrar paquetes NuGet para la solución…)

    Busca y añade los siguientes paquetes de NuGet (entre paréntesis te indico las versiones que estoy usando al escribir este tutorial):

    Nota:
    Los enlaces son por si quieres ir a la página de NuGet y descargarlas desde allí o ver cómo instalarlas según estés usando Visual Studio 2019 o Visual Studio Code o simplemente creando los proyectos desde la consola con dotnet.
    Eso sí, necesitarás tener instlado el SDK de dotnet 5 para poder compilar el código.

    Esto añadirá las referencias necesarias para usar el código que te mostraré.

    Nota:
    Si te interesa ver el código fuente de las APIs de google puedes verlas en el siguiente enlace: google-api-dotnet-client.

    Las entregas

    1. Entrega 1: Crear Proyecto en Google Cloud
    2. Entrega 2: Código para acceder a los contactos con People API
    3. Entrega 3: Código para acceder a los documentos con Drive API y Docs API
    4. Entrega 4: Código para crear un documento con Docs API

    Nota:
    Voy a publicar ahora este post mientras creo el protyecto de prueba, escribo el código, lo convierto de C# a VB (ya tengo código escrito en C#) y lo publico, así podrás solicitar tu «permiso» para usar estos ejemplos con mi ID y clave secreta (que después de publicarla no será tan secreta 😉 )

    Nos vemos.
    Guillermo

  • Simular discard de C# en Visual Basic

    Pues eso… haciendo pruebas con el conversor de C# a VB de Paul1956 comprobé que los discard de C# (asignación digamos que nula de una función o descartes según la traducción al español ) los generaba usando dos guiones bajo (undercore) y el «asistente» de VS indicó que creara una función para usar ese descarte. Y al ver que es válido usar el nombre __ (dos guiones bajos) como nombre de una función, pensé que también sería válido para una propiedad… de forma que se pudiese haccer ese tipo de asignación.

    Por ejemplo, si tenemos este código de C# en el que se «descarta» el valor devuelto por la función MostrarAyuda:

    class Program
    {
        static void Main(string[] args)
        {
            _ = MostrarAyuda(true, false);
    
            //Console.WriteLine(_);
    
            Console.WriteLine();
            Console.WriteLine("Pulsa una tecla para finalizar.");
            Console.ReadKey();
        }
    
        private static string MostrarAyuda(bool value1, bool value2)
        {
            var s = $"Valores: value1: {value1}, value2: {value2}";
            Console.WriteLine(s);
            return s;
        }
    }
    

    La conversión podría quedar de esta forma:

    Public Shared Sub Main(args As String())
        '__ = MostrarAyuda(True, False)
    
        __ = MostrarAyuda(True, False)
    
        Console.WriteLine(__)
    
        Console.WriteLine()
        Console.WriteLine("Pulsa una tecla para finalizar.")
        Console.ReadKey()
    End Sub
    
    Private Shared Property __ As Object
    
    Private Shared Function MostrarAyuda(value1 As Boolean, value2 As Boolean) As String
        Dim s = $"Valores: value1: {value1}, value2: {value2}"
        Console.WriteLine(s)
        Return s
    End Function
    

    Es un apaño, pero puede valer para equiparar los dos lenguajes.

    Nota:
    Fíjate que en VB al ser una propiedad válida la podemos usar como cualquier otra variable para mostrar el contenido.

    Y esto es todo… a ver si lo implementa y así no dará error cuando se convierta código de C# que tenga ese tipo de asignación (que la implementaron en C# 7.0)

    Nos vemos.
    Guillermo

  • gsNotasNETF – Utilidad para tomar notas hecha con C# y un control de usuario

     

    Nota del 10-dic-2020 01:04 GMT+1:
    La utilidad ha cambiado, para ver los cambios, te recomiendo que o bien los veas en GitHub o en la página de gsNotasNETF.

     

    Nota:
    Esta es la entrada de esta utilidad, también existe una página con (casi) el mismo nombre para que aparezca en el menú de Utilidades NET>Utilidades con .NET Framework
    Pulsa aquí para ir a la página gsNotasNETF.

     

    Esta utilidad sirve para escribir y guardar notas, agrupadas en grupos (o si lo prefieres, etiquetas).
    Cada grupo contendrá un número de notas (por ahora no hay un máximo de notas por grupo, pero si veo que el rendimiento es malo, tendré que limitarlo).
    Tampoco hay límite de grupos a crear, pero como dije antes, comprobaré el rendimiento y veré si es necesario hacer alguna limitación de número de grupos.

    Esta utilidad está definida por un formulario que simplemente sierve de contenedor del control de usuario NotasUC que a su vez utiliza el control de usuario CabeceraNotasUC que es el que se encarga de mantener, guardar y leer la colección con los grupos y notas.
    El aspecto del control (en tiempo de diseño es el mostrado en la figura 1):

    Figura 1. El control NotasUC en tiempo de diseño. Arriba está el control CabeceraNotaUC.
    Figura 1. El control NotasUC en tiempo de diseño. Arriba está el control CabeceraNotaUC.

     

    Figura 2. La aplicación de prueba, arriba las notas del grupo seleccionado, abajo el control NotasUC con las notas.
    Figura 2. La aplicación de prueba, arriba las notas del grupo seleccionado, abajo el control NotasUC con las notas.

     

    El formato que utiliza el fichero con las notas es lo que yo he llamado formato NotasUC que tiene el siguiente formato:

    #Formato NotasUC - v1.0.0.0 - 05-dic-2020
    #
    # Fichero de Notas con formato NotasUC
    #
    # Contenido de gsNotasNETF.notasUC.txt
    #
    # Formato:
    #    G:Nombre del grupo 1
    #       Lista de notas del grupo 1, una en cada línea
    #       GFin: Fin de las notas del grupo 1
    #    G:Nombre del grupo 2
    #       Lista de notas del grupo 2, una en cada línea
    #       GFin: Fin de las notas del grupo 2
    #
    # Notas:
    #     No se guardan los grupos o notas que estén en blanco.
    #     Si la nota tiene estos caracteres, se hará un cambio al guardar el texto:
    #         Las comillas dobles se guardan como |quot|.
    #         El signo mayor > se guarda como |gt|.
    #         El signo mayor < se guarda como |lt|.
    #         El ampersand & se guarda como |A|.
    #         Si la cadena empieza con un espacio, se sustituye por |sp|.
    #         Los cambios de línea  '\n\r' (CrLf) se guardan como |NL|.
    #         Los cambios de línea  '\n'   (Cr)   se guardan como |CR|.
    #         Los retornos de carro '\r'   (Lf)   se guardan como |LF|.
    #             La comprobación se hace en este orden: CrLf, Cr, Lf
    #             Es para los casos que haya distintos cambios de línea (según el formato del fichero)
    #
    

    En GitHub he puesto el código fuente de esta utilidad que se puede usar como biblioteca dinámica para acceder a los dos controles definidos, aunque usando solo NotasUC es suficiente, ya que ahí se hace prácticamente todo el trabajo.

    El código fuente en GitHug de gsNotasNETF.

     

    Nos vemos.
    Guillermo