¿Qué tipo de software puedo hacer con C #?

Fue en 1999 cuando Microsoft introdujo al mundo C # (pronunciado C sostenido) como un nuevo lenguaje de programación futurista. Tuve la suerte de ser uno de los primeros en adoptar el lenguaje. Obtuve mis manos en C # cuando se lanzó como un producto alfa. Sí, solía haber versiones alfa en ese momento. Microsoft tardó 3 años en obtener la primera versión estable y utilizable del lenguaje. Y desde entonces, he sido testigo de un recién nacido convertido en un adulto.

“Escribí mi primer artículo de C # en 1999”

Hoy, C # es un lenguaje totalmente maduro y poderoso. De hecho, escribí mi primer artículo sobre C # en 1999 usando productos alfa y beta. Mis primeros artículos titulados Leer Microsoft Access Database en C # se publicaron en C # Corner el 01 de enero de 2000 . En 2001, comencé a escribir mi primer libro, Una Guía del Programador para ADO.NET usando C # publicado por Apress el 25 de abril de 2002. Me llevó cerca de un año y medio terminar el libro.

“Mi primer libro fue publicado en 2002 en la página web no está disponible usando C #”

Figura 1. Mi primer libro

¡GUAUU! El tiempo vuela. No puedo creer que hayan pasado 15 años desde que comencé la programación de C #.

Sé que Java, C y C ++ son los lenguajes de programación más populares, pero C # ha ganado un buen terreno en el mundo de Microsoft. Algunas personas me preguntan cuál es el futuro de .NET. Digo, Microsoft .NET definitivamente tiene un buen futuro en el futuro. Y ahora que el gurú de Azure, Satya Nadella es el jefe de Microsoft, definitivamente ayudará a los desarrolladores. Además, no olvide consultar mi artículo Mejores lenguajes de programación en 2014.

De cualquier manera, volviendo al tema. 15 años después, todavía encuentro que los desarrolladores y gerentes no entienden el poder de C #. El propósito de este artículo es educar a los desarrolladores sobre el lenguaje C # y lo que puede hacer por usted.

Evolución del lenguaje C #

C # (pronunciado C sostenido) es un lenguaje de programación moderno que se creó para crear aplicaciones de software modernas para Windows, Web y dispositivos móviles. C # es un lenguaje de programación mucho más poderoso de lo que muchos de nosotros nos damos cuenta. No solo puede crear aplicaciones tradicionales de cliente de Windows y aplicaciones web, sino que también puede usar C # para crear aplicaciones móviles, aplicaciones de la Tienda Windows y aplicaciones empresariales. Además de eso, C # es genial. Sí, has escuchado bien. C # es genial. En realidad, C # originalmente se llamaba “C cool”, pero debido a un problema de marca registrada, se renombró a “C sharp”.

Hoy, C # 5.0 es uno de los lenguajes de programación más modernos y potentes que existen.

Puede obtener más información sobre las características del lenguaje C # aquí>. También puede descargar el libro gratuito C # Language Specification 5-0.

Aplicaciones de software del ecosistema C #

Ahora volvamos a nuestra pregunta. ¿Qué puede hacer C # por ti?

Bueno, la respuesta es, mucho. Yo diría, casi cualquier cosa. A menos que esté escribiendo código centrado en una plataforma que no sea de Microsoft, C # se puede usar prácticamente para escribir aplicaciones de clientes de Windows, aplicaciones web, aplicaciones móviles, software empresarial, backend y aplicaciones orientadas a servicios.

Figura 2. Alcance de C #

La Figura 3 muestra el ecosistema mundial de aplicaciones y C #.


Figura 3. Ecosistema de aplicaciones C #

Como puede ver en la Figura 3, el lenguaje C # se puede usar para construir cualquier tipo de aplicaciones. No solo las aplicaciones Windows o Web, sino C # se pueden usar para crear aplicaciones móviles, Windows Store y Enterprise. C # también se puede usar dentro de la base de datos de SQL Server para crear informes, trabajos y módulos para hacer el trabajo de back-end.

Aplicaciones de cliente de Windows

Las aplicaciones cliente de Windows se ejecutan en el sistema operativo Windows como ejecutables. Las aplicaciones de Windows existen desde que Microsoft introdujo el sistema operativo Windows el 20 de noviembre de 1985. El desarrollo de aplicaciones de Windows fue el uso inicial del lenguaje de programación C # cuando Microsoft lo anunció en 1999 al mundo de los desarrolladores.

Hoy, Windows Forms y WPF son dos tecnologías principales que se utilizan para desarrollar aplicaciones cliente de Windows. C # también se puede usar para escribir consolas que no sean UI y aplicaciones basadas en el navegador WPF. Visual Studio 2013 admite cuatro plantillas de proyecto, incluidas la aplicación de formularios Windows Forms, la aplicación WPF, la aplicación de consola y la aplicación del navegador WPF.

Estas son algunas propiedades comunes de las aplicaciones de Windows.

  • Las aplicaciones de Windows se ejecutan en un sistema operativo Microsoft Windows.
  • Las aplicaciones de Windows suelen ser ejecutables (exes) y bibliotecas de enlaces dinámicos (DLL).
  • Las aplicaciones de Windows se ejecutan en una PC y toman todos los recursos de la máquina local.
  • Las aplicaciones de Windows tienen una interfaz de usuario con controles de Windows como botones, menús, cuadros de diálogo y formularios / ventanas.

Ejemplos de aplicaciones de Windows:

  • Microsoft Office (Word, PowerPoint, Excel, etc.)
  • explorador de Internet
  • Skype
  • Visual Studio 2012
  • Photoshop
  • SQL Server 2012
  • Cepillo de pintura

Los siguientes son algunos buenos enlaces para aprender estas tecnologías:

  • Programación de WPF con C #
  • Programación de formularios de Windows con C #

Componentes y controles

Los componentes y controles son bibliotecas que se utilizan para crear algo que se puede compartir y distribuir fácilmente. C # es uno de los lenguajes más utilizados para construir componentes y controles en el mundo de Microsoft. Un control gráfico es un ejemplo perfecto de un control que se puede compartir. Una biblioteca GPS es un ejemplo perfecto de una biblioteca que puede ser construida por un desarrollador y distribuida fácilmente a otros desarrolladores para usarla en sus aplicaciones.

Visual Studio 2013 admite cinco plantillas de proyecto, incluida la Biblioteca de clases, la Biblioteca de clases portátil, la Biblioteca de control personalizado de WPF, la Biblioteca de control de usuario de WPF y la Biblioteca de control de formularios Windows Forms.

Los siguientes son algunos buenos enlaces para aprender estas tecnologías:

  • Controles de Windows con C #
  • Programación de WPF con C #

Aplicaciones web

El sitio oficial de Microsoft ASP.NET se lanzó el 5 de enero de 2002. Desde entonces, el sitio oficial de Microsoft ASP.NET se ha convertido en una de las tecnologías más populares para crear aplicaciones web. El sitio oficial de Microsoft ASP.NET se puede combinar con HTML, JavaScript y otras bibliotecas y API para crear aplicaciones web modernas.

Visual Studio 2013 admite las tres principales plantillas de proyecto del sitio oficial de Microsoft ASP.NET, las aplicaciones web del sitio oficial de Microsoft ASP.NET, las aplicaciones web oficiales del sitio de Microsoft ASP.NET MVC y los controles del servidor del sitio oficial de Microsoft ASP.NET.

Las siguientes son algunas propiedades comunes de las aplicaciones de Windows:

  • Las aplicaciones web se ejecutan en un servidor web.
  • Las aplicaciones web generalmente se alojan dentro de un sitio oficial de Microsoft ASP.NET o una página HTML.
  • Las aplicaciones de Windows se ejecutan tanto en el servidor como en el navegador del cliente, dependiendo de cómo se escriba el código. Si se usa C # como codificación de back-end, el código C # se ejecuta en el servidor y el HTML front-end se ejecuta dentro del navegador del cliente.
  • Las aplicaciones web tienen una interfaz de usuario con controles de Windows como botones, cuadros de texto, texto y estilos.
  • Las aplicaciones web suelen tener una URL, pública o privada.
  • Los usuarios acceden a las aplicaciones web desde fuera de las instalaciones físicas de la aplicación a través de una conexión a Internet remota y un navegador.

Los siguientes son ejemplos de sitios web:

  • Aprenda a desarrollar con Microsoft Developer Network
  • Iniciar sesión o Registrarse
  • Comunidad de desarrolladores y profesionales de TI

El sitio oficial de Microsoft ASP.NET MVC es uno de los marcos más nuevos para construir las aplicaciones web del sitio oficial de Microsoft ASP.NET. Los siguientes son algunos buenos enlaces para obtener más información sobre la programación oficial del sitio Microsoft ASP.NET:

  • Aprenda la programación ASP.NET
  • Crear controles ASP.NET
  • Programación ASP.NET MVC

Windows y servicios web

Los servicios de Windows han existido desde los primeros días de Windows. Un servicio de Windows (también conocido como servicio de Microsoft Windows o servicio de Windows NT) es una aplicación ejecutable que se ejecuta en sistemas operativos Windows. Un servicio generalmente no tiene una interfaz de usuario, realiza operaciones en segundo plano y no requiere ninguna interacción del usuario . Visual Studio viene con una plantilla de proyecto de servicio de Windows que se usa para crear un servicio de Windows usando C # y VB.NET Shop.

Los servicios web se introdujeron para proporcionar comunicación remota entre dispositivos a través de Internet. El objetivo principal de un servicio web es proporcionar accesibilidad y capacidad de actualización de datos de forma remota utilizando los protocolos de Internet, independientemente de la plataforma, el sistema operativo, el navegador del cliente y la aplicación. Físicamente, un servicio web es una aplicación de software que se ejecuta en un servidor web al que pueden llamar aplicaciones externas que usan Internet para acceder y escribir datos.

En el mundo de Microsoft, los servicios web se desarrollan utilizando el sitio oficial de Microsoft ASP.NET y, por lo tanto, se denominan servicios web de ASP.NET. Si bien la exposición y la conectividad de un servicio web usa ASP.NET, el backend se puede construir utilizando el lenguaje C #. Windows Communication Foundation (WCF) y la API web son las últimas tecnologías desarrolladas por Microsoft para proporcionar comunicación remota.

Comprendamos esto usando un ejemplo y qué puede ser mejor que usar nuestra propia arquitectura de plataforma C # Corner que se muestra en la Figura 4.

Figura 4. Arquitectura del sistema de esquina C #

En la Figura 4, tenemos un servidor de base de datos que ejecuta servicios para realizar las tareas de back-end, como calcular puntos, enviar correos electrónicos, análisis, etc. Algunos de estos servicios de back-end se ejecutan como tareas en SQL Server y otros son servicios de Windows.

El servicio web se encuentra en el servidor web y habla con el servidor de la base de datos y actúa como una puerta de acceso de datos y manipulación de los clientes. Los clientes son usuarios que acceden a C # Corner desde sus navegadores web, aplicaciones iOS y otras aplicaciones.

Esto le da una idea de cómo Windows y los servicios web encajan en todo el universo de C #.

WCF y la API web son dos de las tecnologías más nuevas en el espacio de servicios web. Aquí hay algunos buenos enlaces para obtener más información sobre Windows y los servicios web.

  • Cree un servicio de Windows usando C #
  • Creación de servicios web con C #
  • Aprende WCF con C #

Aplicaciones de la Tienda Windows

Las aplicaciones de la Tienda Windows se introdujeron en el sistema operativo Windows 8. Las aplicaciones de la Tienda Windows son un nuevo tipo de aplicación que nunca antes se había desarrollado. Puede pensar en una aplicación de la Tienda Windows como una aplicación que se ejecuta en un dispositivo iPhone o Android y tiene características como Touch, mensajes, mosaicos y deslizamiento.

Figura 5.

Hay dos pistas para desarrollar aplicaciones de la Tienda Windows. Primero, use C # y XAML y segundo, use HTML 5 y JavaScript. C # y XAML son los idiomas principales para crear aplicaciones de la Tienda Windows. XAML se usa para crear pantallas de aplicaciones y C # se usa como el lenguaje que se ejecuta en el back-end.

Los siguientes son dos buenos enlaces para obtener más información sobre las aplicaciones de la Tienda Windows y el lenguaje XAML:

  • Aprenda la programación de aplicaciones de la Tienda Windows
  • Programando XAML

Aplicaciones móviles

Las aplicaciones móviles se ejecutan en dispositivos móviles. Apple iOS y Google Android son dos jugadores principales en el mercado de aplicaciones móviles. Microsoft tiene su propio sistema operativo móvil, Windows Phone. Obviamente, C # como lenguaje se usa para construir aplicaciones de Windows Phone.

Puede obtener más información sobre las aplicaciones de Windows Phone en la sección de Windows Phone de C # Corner.

Pero eso no significa que no pueda usar el lenguaje C # para construir aplicaciones iOS y Android. Xamarin se ha centrado en crear herramientas para desarrolladores de C # que les permitan crear aplicaciones nativas para iOS y Android. Xamarin Studio trabaja con Visual Studio para escribir código en C # y las compilaciones se distribuyen en iOS y Android nativos.

Nube y azul

Visual Studio 2013 con C # proporciona un conjunto completo de herramientas para crear aplicaciones basadas en la nube para Windows Azure. Windows Azure es el sistema operativo de Microsoft para computación y alojamiento en la nube. Con Visual Studio, no solo puede crear soluciones de Azure, sino que también puede implementarlas y administrarlas. C # también se puede usar para trabajar con SQL Azure, la versión basada en la nube del servidor de base de datos SQL Server de Microsoft.

Puede consultar el siguiente enlace para obtener más información sobre Cloud y Azure:

  • Aprenda Windows Azure

Desarrollo de aplicaciones cruzadas empresariales

Hasta ahora, hemos aprendido que podemos construir Windows, Web, Mobile, Servicios y Componentes usando el lenguaje C #, pero las capacidades de C # no terminan aquí. El lenguaje C # también puede usarse entre aplicaciones para conectar y construir soluciones empresariales.

Algunos de los requisitos críticos de una arquitectura empresarial son la conectividad con varios tipos de aplicaciones para transferir datos. Por ejemplo, en uno de mis proyectos, tuve que acceder a datos de una base de datos de SQL Server, una base de datos de SharePoint y almacenar algunos en MSMQ. También se transfirieron datos desde SharePoint Portal Server al que se accedió mediante documentos de Office Excel y un sitio web oficial del sitio Microsoft ASP.NET. También había un componente de informes que usaba Crystal Reports y CRM que almacenaba una base de datos de clientes.

Todo lo anterior se puede hacer usando el lenguaje C #. Construí algunos adaptadores y usé algunos adaptadores .NET existentes y construí el sistema usando la aplicación pura .NET y C #.

Los siguientes son algunos de los productos y herramientas que podrían usarse en un entorno empresarial:

  • Aplicación para Office 2013
  • Aplicación para SharePoint 2013
  • Aplicación empresarial en la nube
  • Complementos para Office 2013, incluidos Excel 2013, InfoPath 2013, PowerPoint 2013, Project 2013, Visio 2013, Word 2013.
  • El desarrollo de SharePoint incluye el elemento web SharePoint 2013 Silverlight, los elementos web visuales de SharePoint 2013 y el flujo de trabajo reutilizable de SharePoint 2013.
  • SharePoint, SQL Server, Office
  • Base de datos de SQL Server
  • XML
  • Datos planos
  • Datos del objeto

Los siguientes son algunos enlaces útiles relacionados con estos temas:

  • Desarrollo de oficinas en .NET
  • SharePoint 2013
  • Programación de XML usando C #
  • Aprender la programación WCF WCF

C #, al menos para mí personalmente, está en un lugar incómodo en este momento. Es un lenguaje maduro, moderno y de propósito general con muchas posibilidades.

Pero Windows Phone fue un fracaso, por lo que no usará C # para escribir aplicaciones móviles (ignorando las tecnologías de compilación cruzada / puente como Xamarin, que en mi humilde opinión nunca será tan buena como una solución basada en Apple).

OK, entonces las aplicaciones móviles están fuera. ¿Qué pasa con las aplicaciones de escritorio de Windows? Tal vez he estado usando una Mac durante demasiado tiempo, pero en su mayoría me parecen basura de baja calidad, y desde una perspectiva comercial, a menudo tiene más sentido crear una aplicación web, ya que se ejecuta en todas partes y en todas las plataformas, y no requiere distribución. A menos que esté escribiendo el próximo Photoshop, la mayoría de las cosas pueden hacerse mediante aplicaciones web.

MS Azure es la gran área en la que C # se puede usar para escribir servicios basados ​​en la nube.

El motor del juego Unity usa C #.

¡Me interesaría saber en los comentarios si hay otras áreas importantes en las que C # esté activo!

Puedes desarrollar lo siguiente:

  1. Aplicaciones web
  2. Aplicaciones de Windows
  3. Aplicaciones universales de Windows 10
  4. Aplicaciones de Windows Mobile
  5. Aplicaciones alojadas en Microsoft Azure Cloud

Si está buscando limitaciones de C #, entonces no debe preocuparse por eso, solo use sus pensamientos ilimitados y podrá desarrollarlo en C #.