emilio@emiliograterol.com

blog

Introducción

El día de hoy quiero hablarte acerca de ¿Qué es C Sharp? Conocerás de qué trata esta herramienta y te hablaré acerca de algunos conceptos importantes que deberías saber.

¿Que es C Sharp (C#)?

Lo primero que voy a hacer es darte una definición concreta y clara de que es C Sharp.

C Sharp es un lenguaje de programación creado por Microsoft que permite desarrollar aplicaciones dentro del ecosistema .NET.

Este lenguaje está principalmente orientado a objetos y con esta herramienta puedes desarrollar aplicaciones para múltiples propósitos, como aplicaciones web, de escritorio, aplicaciones móviles, videojuegos, cosas más avanzadas como Machine Learning y entre otros tipos de soluciones, que existen.

También se dice que este lenguaje nació de la fusión de Visual Basic y C ++, por decirlo así a nivel de funcionalidad y propósito.

Algo importante que también te debo resaltar es que C Sharp es un lenguaje de programación “compilado”, esto significa que para que puedas ejecutar un programa debes previamente pasarlo por un proceso de compilación, valga la redundancia.

Pues si de igual forma no sabes aun que es .NET, te dejo un post que hice hace tiempo en donde te explicaba acerca de la definición de .NET y los elementos que componen este ecosistema.

Características de C Sharp

Ahora, quiero hablarte acerca de las características de C Sharp.

Estas que te voy a mostrar son a nivel muy GENERAL, existen características a nivel más técnico.

Sin embargo, estas que te voy a mostrar te van a dar una idea bastante clara de cómo es este lenguaje de programación.

1. Simple

La primera característica que puedo decirte de C Sharp (C#), es que es un lenguaje de programación SIMPLE.

Esto significa que con este lenguaje puedes trabajar de una forma bastante ordenada, al momento de desarrollar tus aplicaciones.

Esto también te permite tener una estructura, dividiendo un problema o algoritmo en varias partes, y esto es algo que hace que C Sharp sea un lenguaje de programación muy moderno, muy adaptado a lo que son las tendencias actuales de los lenguajes de programación.

2. Multiparadigma

La segunda cosa que puedo decirte de C Sharp, es que es un lenguaje de programación MULTIPARADIGMA.

Esto es bastante bueno, porque puedes desarrollar aplicaciones de varias formas o estilos.

Realmente, el que más se adapte a tu forma lógica para resolver las cosas y dependiendo también del tipo de problema que debas solucionar.

En realidad depende de estos dos factores muy importantes.

Dentro de los paradigmas que puedes aplicar usando C Sharp, tienes:

El Orientado a Objetos, que es la forma tradicional en la que puedes programar, con este paradigma puedes crear aplicaciones, mediante lo que tradicionalmente se conoce como una clase.

También puedes usar la Programación Funcional con C Sharp, que es un estilo de programación o paradigma basado en “Funciones”, valga la redundancia. Aunque en ocasiones se puede combinar con Clases.

También con C Sharp puedes realizar programación orientada a componentes, que vendría siendo como una extensión de la programación orientada a objetos.

Lo que nos permite hacer este paradigma o estilo de programación, es desarrollar las aplicaciones en pequeños “componentes” o pequeñas partes, que básicamente pueden comunicarse entre sí.

Una analogía bastante clara de esto, es la forma en la que se construyen los automóviles, que se construyen a partir de otros componentes.

3. Interoperable

La tercera característica de C Sharp (C#) es que es un lenguaje de programación INTEROPERABLE.

Posiblemente no tienes tan claro este concepto, pero lo que significa es que este lenguaje te da la capacidad de poder interactuar de una forma nativa con otros lenguajes de programación, dentro del ecosistema .NET.

Un ejemplo muy claro de esto que te estoy diciendo, son los lenguajes HTML, CSS y JavaScript, que tienen la capacidad de comunicarse entre sí para crear aplicaciones y páginas web en general.

Por supuesto esta característica a mi parecer es bastante buena porque principalmente nos permite unificar soluciones, mediante la reutilización del código.

Como una vez lo dije en mi Twitter.

“Escribir un código que se pueda utilizar múltiples veces, es una de las prácticas que contribuye a poder desarrollar mejores sistemas y aplicaciones...”

Realmente, esto es a lo que debes siempre estar apuntando.

Siempre debes estar buscando constantemente cómo reutilizar un código, sea hecho por ti o por otro desarrollador.

Ya que este es uno de los grandes retos, que siempre vamos a tener como Programadores, sea en el nivel que sea que nos encontremos.

Ya hemos hablado bastante acerca de las características de C Sharp, espero haber sido bastante claro en todos estos puntos.

Herramientas de Desarrollo

Ahora quiero hablarte acerca de 3 herramientas de desarrollo, que puedes utilizar para programar con C Sharp.

La primera opción si no quieres instalar nada en tu equipo, pero al mismo tiempo quisieras probar como funciona este lenguaje, como es la dinámica.

Puedes utilizar el compilador de .NET Fiddle.

Que básicamente es un compilador en línea, que personalmente utilizo para realizar algunas pruebas, para probar algunas partes de código y estoy seguro que este editor te puede servir a ti también para tener un primer contacto con C Sharp.

Lo bueno es que es gratis, solo tienes que ingresar al sitio web dotnetfiddle.net y listo.

Te aparecerá el editor para empezar a programar en C Sharp.

La segunda opción, es Visual Studio Code.

Con esta opción si necesitas instalar la aplicación en tu equipo, no es tan pesada honestamente y como ya te he dicho en ocasiones anteriores Visual Studio Code es un editor de texto.

En donde puede desarrollar aplicaciones, tanto con C Sharp, como con otros lenguajes de programación.

La dinámica principal de esta herramienta, se basa en instalar “complementos” que te ayudan a personalizar tu ambiente de desarrollo, acorde a tus gustos o necesidades.

Esta opción te la recomiendo, si ya estás decidido que quieres iniciar el camino de la programación en C Sharp.

Sin embargo, nos falta una tercera y última opción que para mi es la mejor de todas.

La tercera opción que te recomiendo, es utilizar el Visual Studio Community, que vendría siendo un IDE o Entorno de desarrollo integrado, que podemos usar para desarrollar cualquier tipo de aplicación, dentro del ecosistema .NET.

Esta opción te la recomiendo 100% si quieres dominar el lenguaje C Sharp a un nivel más profesional y para desarrollar aplicaciones más especializadas.

Para instalar este IDE, te voy a dejar el enlace directo de la página oficial de Microsoft.

Si no sabes como instalar esta aplicación, AQUÍ también te voy a dejar una guia escrita por mi en donde te doy el paso a paso para que aprendas a instalar Visual Studio en Windows.

Proceso de Compilación de C Sharp

Ahora voy hablarte acerca del proceso de compilación de un programa en C Sharp.

Esta parte es importante que la sepas, porque te va a ayudar a tener una visión más clara de lo que realmente le ocurre al código, cuando estás desarrollando cualquier aplicación en C Sharp.

También te va dar un mejor entendimiento del lenguaje en general, ya que debes tener claro, como una ley universal. Que nuestro CPU o procesador no entiende el lenguaje C Sharp de forma directa/nativa.

Para que esto ocurra, debemos pasar el código por algunas fases de transformación, para que llegue a un estado en donde el CPU o procesador pueda entender lo que se necesita ejecutar.

Existen 3 estados del código por donde pasa un programa en C Sharp.

* Estado 1: Codigo C Sharp

El primer estado es el "Estado de Codigo C Sharp", que básicamente comienza cuando abrimos nuestro Visual Studio y empezamos a programar o codificar un programa en C Sharp.

En esta parte puedes utilizar toda la sintaxis o posibilidades de código que brinda el lenguaje C Sharp, como el uso de variables, ciclos, condicionales, operaciones matemáticas, entre un sin fin de cosas que irás viendo en este blog.

El resultado de esta etapa son archivos con extensión .cs, que es la extensión de los archivos con código C Sharp, dentro de estos archivo está el código que acabamos de escribir.

* Fase 1: Compilación Estática

Luego de esto.

Debes ejecutar una primera compilación, utilizando el propio “Compilador de C Sharp” que lo que hace es tomar el código que acabas de escribir con extensión .cs y convertirlo a lenguaje intermedio.

El nombre técnico de este lenguaje se conoce como CIL o "Common Intermediate Language", o también por las iniciales C-I-L.

Que vendría siendo un lenguaje de bajo nivel/ensamblador, que básicamente contiene nuestro programa en otro tipo de instrucciones/código, que no son las del lenguaje C Sharp.

Esta compilación, también se conoce como “Compilación Estática” y lo que hace es realizar las validaciones del código a nivel de sintaxis, en pocas palabras que todo esté escrito correctamente y genera los archivos de salida que mayormente son archivos con extensión .exe o .dll.

* Estado 2: Lenguaje Intermedio

Luego de estar nuestra aplicación ya en lenguaje intermedio, lo que se hace normalmente en este punto, es distribuir los diferentes archivos generados a nuestros usuarios, a los usuarios que van a usar la aplicación.

Sin embargo, estos archivos aún no pueden ser interpretados por nuestro CPU/Procesador, ya que no se encuentran en un lenguaje 100% nativo, sino intermedio como lo acabamos de ver.

* Estado 3: Compilación JIT

Para lograr que el CPU logre interpretar el programa que acabamos de desarrollar en C Sharp, debe ocurrir una segunda compilación.

Y esta compilación se llama “Compilación JIT”, “JITter” o “Just in Time” en inglés, que es un tipo de compilación que lo único que hace es interpretar el código en lenguaje intermedio y transformarlo en código nativo/máquina.

El momento exacto en donde ocurre esta compilación, es al ejecutar el programa en lenguaje intermedio que vendrían siendo los archivos con extensión .exe o .dll, en ese mismo instante nuestro sistema operativo comienza a realizar la compilación.

Es importante también saber que, esta compilación se hace mediante uno de los elementos del SDK de .NET, llamado CLR o “Common Language Runtime”, que lo que hace es toma los archivos en código intermedio y los pasa a código máquina, prácticamente a ceros (0) y unos (1).

Luego de hacer esta segunda compilación, nuestro CPU o procesador ya está listo para entender y ejecutar nuestro programa en C Sharp.

* Resumen Final (Diferencias entre Compilación Estática y JIT)

Algo que quiero aclarar y como te he dicho, el proceso de compilación de un programa en C Sharp, está compuesto de dos tipos de compilaciones: la estática y la Just-In-Time (JIT), que son las dos formas de compilar código que comúnmente se utilizan.

Es por decirlo así un “mix” o combinación de compilaciones.

La compilación JIT se denomina así porque, compila el código intermedio justo en el momento en que intentamos utilizarlo; por ejemplo, cuando hacemos doble clic en un archivo .exe.

A diferencia de la compilación estática, que lo que haces es compilar todo el código fuente con anticipación, y esto nos evita que esperemos de un tiempo de ejecución o un "Runtime" para compilar el código.

Espero haber sido bastante claro, con esta explicación.

¿Porque aprender C Sharp (C#)?

Ya para finalizar, quiero hablarte acerca de las razones por las cuales deberías aprender C Sharp.

Existen muchas razones, pero en esta ocasión para cerrar y no extenderme tanto, te diré las que para mí son las tres (3) razones más importantes que debes tener en cuenta, si quieres realmente aprender a programar en este lenguaje.

1. Moderno

La primera razón por la cual deberías aprender a programar en C Sharp, es porque es un lenguaje de programación bastante moderno.

Cuánto te digo moderno, me refiero a que es un lenguaje que cumple con las exigencias actuales del mercado y sobre todo, se encuentra en mejora constante para ser cada vez más óptimo en los desarrollo.

Esto trae dos grandes beneficios, el primero es estar a la vanguardia con respecto a las herramientas de desarrollo que utilizamos y segundo tener la posibilidad de brindar mejores implementaciones/soluciones de software.

Qué es lo que se busca, realmente.

2. Alta Demanda Laboral

La segunda razón por la cual deberías aprender a programar en C Sharp, es porque es un lenguaje de programación que tiene una alta demanda, en el mercado laboral.

Siempre existen vacantes en donde aparece C Sharp, dentro de las principales tecnologías que buscan muchas empresas, en desarrolladores.

Adicional a esto es un lenguaje que se mantiene siempre, dentro de las primeras posiciones del TOP según las diferentes encuestas anuales de satisfacción o de preferencia que se realizan.

Sin embargo, C Sharp es un lenguaje que también se utiliza en muchas organizaciones para cubrir diferentes propósitos.

Para solucionar diferentes tipos de problemas.

3. Múltiples Desarrollos

Por último, te diría que la mejor de las razones, es que C Sharp te va a permitir realizar una gran variedad de desarrollos de software.

Es por decirlo así una de las grandes ventajas, en las que podrías tú como desarrollador, apalancarte para realizar múltiples proyectos con una misma herramienta y por supuesto para trabajar por muchos años más.

Básicamente aprendiendo C Sharp en una sola ocasión.

Sin embargo, esto último no es tan literal como suena, porque siempre es necesario estar renovándose y aprendiendo cada vez más los alcances y las posibilidades de solución que nos da C Sharp como una herramienta de desarrollo.

Conclusión

Esto ha sido todo por hoy, ya en los próximos posts te estaré hablando más acerca de C Sharp.

Espero que esta información te haya sido de ayuda, Compártela. Si tienes alguna duda, puedes escribirla en la sección de comentarios o enviarmela por cualquiera de mis redes sociales.

Recuerda que si quieres saber más acerca de .NET, bases de datos SQL y temas relacionados con RPA, puedes pasar por mi canal de Youtube, en donde subo contenido de forma constante y vamos más al detalle para complementar muy bien todos estos temas.

Espero verte por allí. Ten en cuenta que tu suscripción me será de gran ayuda!

Esto es todo por hoy, te envío un saludo y nos vemos en una próxima.

Web: https://www.emiliograterol.com/
Youtube: https://www.youtube.com/c/EmilioGraterol/
Facebook: https://facebook.com/graterollz/
Twitter: https://twitter.com/graterolz/
Instagram: https://www.instagram.com/graterollz/
LinkedIn: https://linkedin.com/in/graterolz/