C#

C# (C Sharp) es el principal lenguaje promovido por Microsoft para su marco de trabajo .Net (dotnet). Tiene similitudes con Java y compite en escenarios semejantes (salvo que no es uno de los lenguajes oficiales para desarrollar bajo Android). Desde sus origenes ha funcionado de la mano del servidor web IIS (Internet Information Server) asociado .Net Framework, pero con los años ha evolucionado tanto el lenguaje como el marco de trabajo y actualmente es posible ver programas desacoplados de IIS que usan otros mecanismos, o dentro de lo que se conoce como .Net Core que es una base de plataforma cruzada (para Windows, macOS, Linux). En dispositivos móviles puede usarse este lenguaje con la tecnología Xamarin (actualmente de Microsoft). C# también es el lenguaje usado para la reconocida plataforma o motor de juegos de nombre Unity (también de Microsoft).

La plataforma .Net, gracias al componente CLR (Common Language Runtime), hace que los lenguajes (como C#) que compilan para su máquina virtual (o entorno) se traduzcan finalmente a código nativo.

Esta es una referencia ágil para quién tenga nociones de programación o codifique con algún otro lenguaje, también a modo de repaso y uso frecuente. Siendo así, tener esta información como memoria te resultará simple de acceder a los fundamentos, incluso como prueba de concepto sobre el lenguaje.

Tips esenciales del lenguaje

Para quien tenga habilidades, experticia en programación y/o requiera agilidad en conceptos técnicos, pueden resumirse los siguientes tips esenciales del lenguaje:

  1. Tipos de datos básicos: int, double, float, boolean, char, string. Las variables se definen iniciando con el tipo de datos y luego el nombre.
  2. Las funciones se definen o comienzan con uno de los tipos de datos (o void si no retorna valor) pero anteponiendo palabras como public o private (para indicar si es pública o privada), luego los parámetros van entre paréntesis (...) iniciando también con el tipo de datos (y separando los parámetros con coma ,). Además, se usa return para retornar un valor. La función principal de un programa se denomina Main.
  3. Para el bloque de la función o el flujo de control se usan llaves {}. Las sentencias deben terminar siempre con punto y coma ;.
  4. El flujo de control es semejante a lenguajes como C, Javascript, Kotlin, es decir que se cuenta con una anatomía cercana para el uso de if, for, while, incluso para el manejo de excepciones (try).
  5. El constructor de una clase lleva el mismo nombre de la clase y la clase se define con la palabra reservada class pero anteponiendo palabras como public o private (para indicar si es pública o privada).
  6. El componente LINQ (Language Integrated Query) de la plataforma .Net facilita el uso nativo de consultas a bases de datos SQL usando C#, es decir, resuelve internamente sentencias SQL mientras el programador se enfoca en escribir código de C# (esto es distinto a Java y otros lenguajes o entornos que proporcionan acceso a SQL mediante librerías).

Ejemplo esencial

using System;

namespace Test
{
    class Say
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hi there!");
        }
    }
}

using es la palabra reservada asignada para importar librerías del sistema, propias o de terceros. namespace asigna un nombre al conjunto de clases a modo de librería.

Tipos de datos básicos

Declaración de variables

Se pueden declarar variables enunciando el tipo de datos como en el siguiente ejemplo:

string variable = "Ana";
int a = 1;
double b = 1.5;

Se pueden declarar vectores de un tipo colocando doble corchete [] después del tipo. También existe la clase ArrayList para colecciones ordenadas.

Definición de métodos (o funciones)

static int plus(int a, int b) {
    return a + b;
}

Comentarios

// Esto es un comentario de fin de línea

/*
   Este es un comentario de bloque
*/

Condicionamiento if / else (if)

if (i == 1) {
    Console.WriteLine("one");
}
else if (i == 2) {
    Console.WriteLine("two");
}
else {
    Console.WriteLine("aha");
}

El Ciclo For

for (int index = 0; index < a.length; index++)
{
    Console.WriteLine(index);
}

El Ciclo While

int i = 0;
while (i < 10) {
    i++;
}

Excepciones

try {
    ...
}
catch (Exception e) {
    ...
}

Puedes usar throw (por ejemplo: throw (new MyException("..."))) para forzar el lanzamiento de un error.

Clases

using System;

namespace Test
{
    class Shape
    {
        static void Main(string[] args)
        {
            Shape shape = new Shape("square", 4);
        }

        public Shape (String name, int sides) {
            Console.WriteLine("This is a constructor!");
        }
    }
}

Instalación de C#

Para instalar C# básicamente necesitas descargar distribución de .Net Core 6+ y lanzar el instalador respectivo para tu sistema. De este modo obtenemos: .NET SDK, .NET Runtime y ASP.NET Core Runtime

Es posible intalar, por ejemplo, .Net 6 bajo Windows usando desde PowerShell el comando: scoop install dotnet-sdk (teniendo instalado scoop previamente)

Después de instalar, podemos verificar que ha quedado instalado usando el comando: dotnet --version

Proyecto de inicio rápido

Para iniciar un proyecto de ejemplo esencial, nos ubicamos en una carpeta destiando como espacio de trabajo para nuestros proyectos de código y allí creamos nuestra subcarpeta de proyecto, dónde iniciaremos nuestro programa. Básicamente se ejecuta algo como lo siguiente:

dotnet new console -o project
cd project

project corresponde al nombre de nuestro proyecto. Usamos dotnet new console -o ... para preparar un proyecto de línea de comandos.

Podemos probrar usando el archivo principal denominado Program.cs, el cual podría tener una línea de código semejante a la siguiente:

Console.WriteLine("Hi there!");

Y para lanzarlo ejecutamos el comando:

dotnet run

dotnet build se usaría para obtener un ejecutable

Si quiesieramos crear una API simple, iniciando el proyecto desde la línea de comandos, ejecutamos algo como lo siguiente:

dotnet new webapi -minimal -o project

project corresponde al nombre de nuestro proyecto. Usamos dotnet new webapi ... para preparar el proyecto web desde la línea de comandos. Puede omitirse -minimal si No se quiere un proyecto simple (de un archivo).
dotnet run se usaría para lanzar el ejemplo generado.


© 2021 by César Arcila