¿Para qué se puede usar C#?
En esta publicación, vamos a ver un poco más para qué tipo de proyectos se puede usar C# y el tipo de código para el que las características particulares del lenguaje lo hacen más adecuado.
En las últimas semanas, hemos analizado en profundidad C#, incluida una guía para aquellos que recién comienzan con el lenguaje.
Entonces, ¿para qué se puede usar C#? Pues, en fin, casi cualquier cosa. Es lo suficientemente flexible como para alimentar servidores TCP/IP, la humilde Raspberry Pi y todo lo demás.
C#, por supuesto, tiene puntos fuertes particulares. La primera mención debe ir al desarrollo de aplicaciones de Windows. Tal es la compatibilidad con .NET en la plataforma Windows que C# es ahora prácticamente la primera opción de todos los desarrolladores para crear aplicaciones de escritorio de Windows.
Windows 8 ha hecho mucho para acelerar esta adopción. La gran mayoría de las aplicaciones de terceros en la tienda Windows están escritas en C#. Si bien la tienda aún no ha tenido la misma popularidad o éxito que el equivalente móvil iOS de Apple, es sin duda el futuro de la distribución de aplicaciones de Windows. Sin duda, C# tiene un futuro brillante en Windows.
C# también admite la creación de aplicaciones web, normalmente a través de WebForms y MVC. ASP.NET MVC es una forma moderna y eficaz de crear aplicaciones basadas en el patrón arquitectónico modelo-vista-controlador. MVC describe una forma de estructurar una aplicación. El modelo maneja los datos y la lógica, View se ocupa de la presentación de esos datos al usuario y el controlador se ocupa de las entradas del usuario. ASP.NET MVC se abrió en 2009 y la versión 5.1.2 se lanzó en abril de 2014.
El 'All-In-One Code Framework' de Microsoft es otro recurso invaluable para los desarrolladores web interesados en explorar el uso de C# para aplicaciones web.
Cuando se trata de dispositivos móviles, C# se está volviendo cada vez más popular. Xamarin está liderando el camino en esta área, ofreciendo herramientas multiplataforma para todas las principales plataformas móviles. MonoCross es una implementación alternativa, aunque el proyecto ha estado un poco tranquilo últimamente.
O'Reilly, editores desde hace mucho tiempo de libros de texto centrados en la tecnología y en la tecnología, también ponen a disposición un recurso útil en forma de 'Desarrollo móvil en C#'.
Microsoft también está muy por detrás de C# en dispositivos móviles. Recientemente ha lanzado una actualización de Visual Studio 2013 que admite "aplicaciones universales", es decir, aplicaciones desarrolladas en paralelo para dispositivos móviles y de escritorio con Windows.
Ninguna publicación de este tipo estaría completa sin analizar algunas de las características técnicas que hacen que C# sea útil para los proyectos de desarrollo modernos. Hay una gran cantidad de características y funciones proporcionadas por C#, pero tres que creemos que se destacan son:
- Delegados: un delegado es un puntero de función con seguridad de tipos, que representa referencias a métodos con una lista de parámetros y un tipo de valor devuelto determinados. Los delegados pueden representar métodos de instancia, así como métodos estáticos (los puntos de función estándar se limitan a estos últimos). A diferencia de los punteros de lenguajes como C++, los delegados están orientados a objetos y son seguros. Los delegados se usan para pasar métodos como argumentos a otros métodos y, como tales, son ideales para definir métodos de devolución de llamada.
- La palabra clave Yield: con C# 2.0, Microsoft introdujo la palabra clave Yield, que permite que cualquier conjunto de datos se exponga como una lista enumerable (y se itere con un bucle for each). Uno de los grandes usos de la palabra clave Yield es que elimina la necesidad de una clase de enumeración explícita.
- Lambdas: la versión 3.0 de .NET Framework introdujo Lambdas, una función anónima que se puede usar para crear delegados o tipos de árboles de expresión. Las funciones de Lambda son muy útiles cuando se escriben expresiones de consulta LINQ.
