¿QUÉ ES C#?
C# (pronunciado "si sharp" en inglés) es un lenguaje de programación moderno, basado en objetos y con seguridad de tipos. C# tiene sus raíces en la familia de lenguajes C, y a los programadores de C, C++, Java y JavaScript les resultará familiar inmediatamente.
CARACTERÍSTICAS PRINCIPALES
- SINTAXIS SENCILLA. La sintaxis de C# es muy similar a Java, lo que simplifica al desarrollador a la hora de escribir código.
Escritura. En C# tienes que declarar los tipos de datos con las variables, además que estas variables no pueden ser globales. De esta manera se reducen los errores de compilación. Además, es un lenguaje orientado a objetos, así que obliga que todos los métodos y propiedades estén dentro de una clase. - ORIENTACIÓN A COMPONENTES. Además de ser orientado a objetos, como hemos dicho antes, es orientado a componentes. Podemos definir propiedades sin necesidad de crear métodos, como en Java, o usar eventos sin tratar con punteros a funciones. Escribir código en C# es mucho más sencillo y potente que en otros lenguajes de programación.
- SISTEMA DE TIPOS UNIFICADO. Todos los tipos de datos sencillos de C# derivan de una clase común llamada System.Object. De esta manera, la conversión de tipos sólo es compatible entre los tipos más cercanos (números enteros con decimales, por ejemplo), además de facilitar la creación de colecciones.
- CLR (Common Language Runtime). Es el núcleo de .NET, el motor que ejecuta las aplicaciones programadas en C#, lo que ayuda a la integración del sistema operativo o dlls externas.
Espacio de nombres. Puedes agrupar o aislar código mediante namespaces, parecido al package de Java. - POLIMORFISMO. En C++ se permite la herencia múltiple, pero en C# no, aunque puedes implementar interfaces. De esta manera se evitan complicaciones y simplifica la escritura.
- OPERADORES SOBREESCRITOS. En C# puedes recodificar un operador, como puede ser el sumatorio + o el incremento ++.
- Bibliotecas. Cualquier compilador de C# viene con un mínimo de biblioteca de clases disponibles y que puedes usar.
- MULTIPLATAFORMA. Actualmente, el lenguaje C# es de código abierto y se ha utilizado en otros IDEs, como el proyecto Mono o Xamarin, y en múltiples sistemas operativos, como puede ser OSx o Android.
- MULTIHILO. Puedes dividir tu código en múltiples hilos de ejecución, trabajar en paralelo y sincronizándose al final.
¿CÓMO UTILIZAR C#?
Microsoft pone al alcance, de toda la comunidad planetaria de programadores, sus plataformas de desarrollo, como Visual Studio Code, de licencia gratuita (Freeware: no pagas por utilizarla), multiplataforma (para Windows, Linux y Mac OS), bajo el entorno .NET Core; y también Visual Studio (de pago), en sus versiones de 2017/2019, para Windows y Mac OS, bajo el entorno de .NET Framework. La diferencia entre ambos entornos es el destinatario final de las aplicaciones, siendo el último solo para Windows, mientras que el primero para las 3 plataformas mencionadas.
Para trabajar con C# es recomendable utilizar Microsoft Visual Studio, ya que ha sido desarrollado especialmente para ello y soporta la carga y trabajo con su mismo lenguaje.
Página de descarga oficial de Visual Studio
También puedes usar Visual Studio Code, va por gustos.
Página de descarga oficial de Visual Studio Code
ASP.NET
.NET es una plataforma de desarrollo compuesta por herramientas, lenguajes de programación y bibliotecas para construir diferentes tipos de aplicaciones.
Estas son algunas de las cosas que ASP.NET añade a la plataforma .NET:
- Marco básico para procesar las solicitudes en la web en C# o F#
- Sintaxis de plantillas de páginas web, conocida como Razor, para construir páginas web dinámicas usando C#
- Bibliotecas para patrones de web comunes, como el Model View Controller (MVC)
- Sistema de autenticación que incluye bibliotecas, una base de datos y páginas de plantillas para manejar los inicios de sesión, incluyendo autenticación multifactorial y autenticación externa con Google, Twitter y más.
- Extensiones del editor para proporcionar resaltado de sintaxis, finalización de código y otras funcionalidades específicas para el desarrollo de páginas web
RECURSOS
Documentación oficial de Microsoft
C# Tutorial - Full Course for Beginners (vídeo de 4 horas)
Curso de C# para principiantes
Curso de C# (pildorasinformaticas)
C# Programming Language (tutorial)
C# Programming Yellow Book (para empezar)
C# in Depth (para cuando te leas Yellow Book)
https://projecteuler.net/ (para practicar)
https://www.hackerrank.com/ (para practicar)
https://www.codewars.com/ (para practicar)
CONSEJOS DE @r2d2rigo
- No uses videotutoriales para aprender.
- No uses cursos/blogs/webs random.
- Sobre todo NO uses W3Schools.
- Los puntos anteriores vienen de que suelen ser recursos de calidad discutible en la mayoría de los casos. Te pueden valer para introducirte y que te pique el gusanillo, pero a la larga es mucho mejor usar los recursos creados por la propia MS, como el primer link que has puesto o https://channel9.msdn.com/
- Piérdele el miedo al inglés y acostúmbrate a usarlo como primer lenguaje para todo lo técnico.
Iré añadiendo recursos y lo que veáis que pueda ser útil o necesario con vuestra ayuda.