C# está en todas partes
C# es uno de los lenguajes de programación más populares del mundo. Es parte de la plataforma de desarrollo Microsoft .NET Framework (actualmente en su versión 4.5.2), y estas son algunas de sus principales características:
- Deriva de C/C++, y es similar a Java.
- Es Orientado a Objetos.
- Es simple, moderno y de propósito general.
- Tiene revisión estricta de tipos de datos.
- Tiene revisión de límites de vectores.
- Tiene detección de intentos de usar variables no inicializadas.
- Tiene recolección de basura.
En MSDN (Microsoft Developer Network) puedes encontrar más información sobre .NET Framework, la guía de programación de C#, conceptos de programación de C# y mucho más. Estos son algunos ejemplos de funcionalidades de este lenguaje(actualmente en su versión 5.0) y que hacen que tenga la potencia que tiene:
- Tipos anónimos
- Genéricos
- Colecciones
- LINQ (Language-Integrated Query)
- Expresiones Lambda
- Programación asíncrona con Async y Await
Pero aquí no acaba la cosa. .NET y C# está en constante evolución, y aquí tienes un adelanto de lo que está por venir: The New and Improved C# 6.0, .NET Compiler Platform ("Roslyn")
El Universo .NET es muy amplio, y a continuación te contamos algunas de las cosas que puedes hacer gracias a .NET en general y a C# en particular.
¿Qué puedo desarrollar con C#?
Aplicaciones de escritorio
- Aplicaciones de consola, de las de toda la vida, sin interfaz de usuario propiamente dicho.
- Aplicaciones tradicionales de cliente Windows con Windows Forms.
- Aplicaciones de cliente Windows con Windows Presentation Foundation (WPF) , mucho más avanzadas visualmente hablando. Gracias a la creación de interfaces de usuario con XAML y a capacidades avanzadas como los databinding, podemos desacoplar el código de la capa de presentación para que diseñadores y desarrolladores puedan trabajar de manera simultánea, y reducir los costes de desarrollo y mantenimiento de nuestras aplicaciones.
Apps
- Apps Universales para la Tienda Windows y Windows Phone, que funcionan en Windows 8.1 y Windows Phone 8.1, y que los usuarios pueden utilizar en sus teléfonos móviles, tabletas y PCs de todo tipo. Además, si quieres estar preparado para el desarrollo de apps para el próximo Windows 10, puedes desarrollar este tipo de apps hoy.
- Apps Multi-Dispositivo con Xamarin. Gracias a Mono, una implementación Open Source del .NET Framework y compatible con éste, puedes desarrollar aplicaciones .NET para los más variados dispositivos con Windows, Linux, OS X, Android, iOS, Xbox 360, PlayStation 3, Wii, etc. Xamarin se apoya en Mono, y nos permite desarrollar apps móviles multi-plataforma con C# para Windows, OS X, Windows Phone, Android e iOS.
Servicios
Aplicaciones y Servicios Web
- Aplicaciones Web con ASP.NET MVC, que nos proporciona una manera de construir nuestros sitios web dinámicos potente y basada en patrones, utilizando los últimos estándares web. Un ejemplo de sitio web que combina el uso de ASP.NET MVC con otras tecnologías es el conocidísimo Stack Overflow (te recomiendo la lectura de los artículos Stack Overflow Architecture Update - Now at 95 Million Page Views a Month y StackOverflow Update: 560M Pageviews a Month, 25 Servers, and It's All About Performance).
- Aplicaciones Web con ASP.NET Web Pages o ASP.NET Web Forms, que nos permiten desarrollar aplicaciones web de manera muy rápida y sencilla.
- Servicios Web con ASP.NET Web API, un framework con el que podemos construir servicios HTTP de manera muy sencilla para todo tipo de clientes, navegadores y dispositivos móviles. Es una plataforma ideal para crear aplicaciones RESTful.
- Servicios Web con Azure Mobile Services, que nos permite agregar un back-end a la nube y hospedar nuestra API web en pocos minutos.
Además, con la librería ASP.NET SignalR podemos hacer que el lado de servidor de nuestras aplicaciones web provea de contenido en tiempo real a los clientes conectados según lo tenga disponible, gracias a la comunicación bi-direccional que permite entre el servidor y los clientes.
Por cierto, ASP.NET MVC, Web Pages y Web API son proyectos Open Source.
Videojuegos
- Videojuegos con MonoGame, un proyecto Open Source basado en Mono, que nos permite utilizar C# para desarrollar grandes juegos multi-plataforma de manera muy sencilla: para Windows, Windows Store, Linux, OS X, Windows Phone, Android e iOS.
- Videojuegos con Unity, uno de los motores de videojuegos multiplataforma más conocidos y utilizados del mercado, con el que han sido creados grandes juegos, y que nos permite utilizar C# para escribir sus scripts. Podremos crear videojuegos para numerosas plataformas: para Windows, Windows Store, OS X, Linux, Windows Phone, iOS, Android, BlackBerry, Xbox 360, Xbox One, PS3, PS4, PSVita, Playstation Mobile, Wii U, e incluso para web gracias a Unity Web Player. Podemos además utilizar las Visual Studio Tools for Unity para ayudarnos en la creación y depuración del videojuego.
Internet of Things (IoT)
- Aplicaciones embebidas con .NET Compact Framework, una versión reducida del .NET Framework usada con Windows Mobile y Windows Embedded CE.
- Aplicaciones embebidas con .NET Micro Framework, la versión más pequeña del .NET Framework, Open Source, y cuyo SDK que podemos utilizar para desarrollar con placas como las de netduino.
Las herramientas
Para desarrollar en C#, la mejor herramienta que tienes a tu disposición es Visual Studio (actualmente en su versión 2013 Update 3), uno de los IDEs más potentes del mercado (el más potente si me preguntas a mí). Y además de todo lo que ofrece de serie, cuenta con muchas extensiones que te harán la vida más fácil, como por ejemplo:
- StyleCop
- Productivity Power Tools for Visual Studio 2013
- Bing Developer Assistant
- Visual Studio 2013 Tools for Unity
- Etc.
Tienes también a tu disposición un gran número de Bibliotecas .NET (NuGet) para añadir funcionalidad a tus proyectos, como por ejemplo:
También tienes una serie de SDKs que te ayudarán a desarrollar tus diferentes proyectos, y te proporcionarán librerías y herramientas adicionales como emuladores, etc.:
Si además quieres gestionar el ciclo de vida completo de tu aplicación, puedes utilizar Visual Studio Online.
¿Quieres saber más?
Tanto si estás aprendiendo a programar, como si quieres aprender C# o afianzar conocimientos sobre este lenguaje, en Microsoft Virtual Academy encontrarás todo tipo de cursos gratuitos sobre C#, ASP.NET MVC, desarrollo de apps móviles, videojuegos, etc., etc.
También tienes a tu disposición nuestros diferentes sitios para desarrolladores, donde podrás encontrar herramientas, documentación, ejemplos, etc.:
MSDN (Microsoft Developer Network)
Un saludo,
Alejandro Campos Magencio (@alejacma)
Technical Evangelist
PD: Mantente informado de todas las novedades de Microsoft para los desarrolladores españoles a través del Twitter de MSDN, el Facebook de MSDN, el Blog de MSDN y la Newsletter MSDN Flash.