vss
Aquel que ha utilizado Visual Studio para construir soluciones basadas en software (experto o no) podrá darse cuenta desde el primer momento, que tiene una gama extensa de tipos de proyecto por escoger. En esta ocasión me gustaría resaltar cuales son los tipos de proyectos más usuales de Visual Studio en su versión 2015, para tener una mejor visibilidad de lo que ofrece y que deberíamos escoger según nuestras necesidades.

Proyectos de Escritorio (Desktop Projects)

Windows Forms

Normalmente se escoge un proyecto de este tipo cuando se necesitan sistemas de uso diario en oficina, la utilización de teclado y mouse es indispensable. En una sola ventana (interfaz gráfica) pueden aparecer muchos controles de captura o de carga de información: TextBox, Labels, Grids, Menus, etc.

Windows Presentation Foundation (WPF)

Con el mismo objetivo que Windows Forms, la diferencia muy notable entre Windows Forms y WPF, es el uso de lenguaje XAML que separa el código de diseño del código funcional.

Console Application

Este tipo de proyectos carecen de interfaz gráfica enriquecida, por ello son rápidas en su ejecución. Las aplicaciones de tipo consola se limitan a exponer un prompt como entrada de datos. Son recomendables cuando no se requiere demasiada entrada de información de los usuarios o los resultados de ejecución no necesitan un formato específico.

Class Library

Las bibliotecas de clases (class libraries) existen desde la primera versión de Visual Studio (hasta donde recuerdo). Su principal función es mantener el código funcional para todo el proyecto (lógica de negocio, transacciones de datos, comunicación entre servicios). De tal manera que mientras exista un código para la presentación de las aplicaciones (interfaz gráfica), todo el código funcional puede estar en una biblioteca de clases lista para invocarse. Las bibliotecas de clases ya compiladas, resultan ser las muy conocidas «DLL» que se pueden importar entre proyectos compartiendo funcionalidad.

Windows Services

Un servicio de Windows es aquel que trabaja en paralelo, puede empezar a funcionar cuando arranca el sistema operativo, los servicios son aplicaciones en segundo plano que funcionan sin intervención del usuario.

Component

Cuando construimos aplicaciones enriquecidas de usuario como Windows Forms o WPF, pudiera existir la necesidad de construir algún tipo de control con una funcionalidad específica que sería conveniente tener, por ejemplo: Un botón con forma de rombo que al pasar el puntero encima de él, aparezca un tool tip con un mensaje de texto. A eso le llamamos componente y lo podemos incorporar en las barras de herramientas de Visual Studio y reutilizar cuando así lo creamos necesario.

Proyectos Web (Web Projects)

ASP.Net

Los proyectos ASP.Net trabajan con un comportamiento parecido a un proyecto tipo Windows Forms/WPF en el sentido de que existe la posibilidad de utilizar controles de usuario hacia nuestra página web (como si fuera una ventana de Windows). Aquí existen los llamados WebForms, que combinan HTML con lenguaje ASP.Net. Cada control que se coloca en nuestro WebForm tiene eventos programables y un montón de atributos a manipular, estos controles trabajan de lado del servidor, otorgando una respuesta por cada petición desde un browser.

ASP.Net MVC (Model View Controller)

A diferencia de los proyectos de tipo ASP.Net, no existen controles de usuario que se puedan insertar en nuestras páginas, aquí solo existe HTML, las interfaces de usuario se construyen con JavaScript y CSS. La potencia que tiene MVC es poder aislar el código funcional (que normalmente se encuentra de lado del servidor) del código que interactúa con el cliente (el que se ejecuta en el browser de manera local). De esta forma, se eliminan los tiempos de espera por solicitudes al servidor, además de que la compatibilidad con frameworks como jQuery o Angular se vuelve transparente en nuestros proyectos.

Silverlight

Cuando las animaciones web estaban reinadas por Flash, llegó Microsoft Silverlight como otra opción. Los proyectos Silverlight permiten construir aplicaciones funcionales y enriquecidas al estilo de aplicaciones de escritorio WPF y XAML, la particularidad es que se utilizan desde el navegador web. De tal manera que, toda la experiencia de usuario y robustez de una aplicación de escritorio podía llevarse adentro de una página web. Al momento de escribir este artículo, Silverlight a perdido mucho terreno, puesto que los frameworks de JavaScript han evolucionado mucho y son preferibles para construir interfaces de usuario.

Servicios Web ASP.Net

Los primeros servicios web que se encontraron en Visual Studio fueron los ASP.Net WebService (.asmx). Ayudan a construir puentes entre sistemas que no necesariamente esten en la misma tecnología. Por ejemplo, aplicaciones escritas en Java o PHP, pueden consumir información de una base de datos SQL Server a través de un WebService ASP.Net. Hoy en día existen más opciones sofisticadas como WCF, WebApi o Rest.

Proyectos en la nube (Cloud Projects)

Web Roles

Los Web Roles y los Worker Roles fueron de los primeros servicios que proporcionó la nube de Microsoft Azure. Un Web Role consiste básicamente en una aplicación web (ASP.Net, MVC, ASP.Net + Silverlight, HTML) que se puede hospedar en la nube, gozando de la infraestructura de grandes centros de datos a diferencia de un hosting tradicional. Al momento de hospedar un Web Role en la nube de Azure, se crea una máquina virtual  a la cual tenemos acceso también.

Worker Roles

Los Worker Roles son parecidos a los Web Roles, salvo que no tienen una interfaz gráfica de usuario. Estos servicios se hospedan en la nube y trabaja como un servicio corriendo en el sistema operativo (en segundo plano). Al momento de hospedar un Worker Role en la nube de Azure, se crea una máquina virtual  a la cual tenemos acceso también.

MAML (Microsoft Azure Manage Libraries)

Los proyectos de este tipo, representan proyectos ya codificados que implementan librerías especializadas en administración de servicios en la nube de Azure. Con muy pocos cambios en el código, nosotros podemos adaptarlos a nuestras necesidades.

Azure Web Jobs

Los Azure Web Jobs proporcionan una forma fácil de correr scripts o programas como procesos en segundo plano en el contexto de Aplicaciones Web, API, o móviles.

Azure Mobile Service

Este tipo de proyectos nos permite ecapsular la lógica de nuestra aplicación móvil, es decir, todo el backend, recepción y tratamiento de datos se programa aquí. Una vez programado nuestro servicio, se empaqueta y se sube a la nube de Azure y se consume mediante invocación al mismo.

Proyectos móviles (Mobile Projects)

Windows Phone

Las verdaderas primeras aplicaciones móviles con tecnología Microsoft se llamaron Windows Phone (y digo esto porque antes existió un intento llamado Windows Mobile). Este tipo de proyectos utiliza XAML para el diseño la aplicación y C#/VB para programar la funcionalidad.

Windows Phone Class Library

Son librerías de clases que permiten reutilizar código a manera de archivos «.dll» para proyectos de tipo Windows Phone.

Xamarin

Los proyectos de Xamarin permiten generar aplicaciones nativas para Windows, iOS y Android utilizando como lenguaje de programación C# y compartiendo el mismo código.

Proyectos Mutiplataforma (Multiplatform Projects)

Universal Windows Platform

Con la llegada de Windows 10 el paradigma de programación cambia, y es que ahora cualquier aplicación escrita para Windows 10 se vuelve multiplataforma. Este tipo de proyectos genera binarios que funcionan sin problemas en cualquier dispositivo que tenga Windows 10 instalado (laptop, pc, hololens, raspberry, smartphone, etc).

Universal Windows Platform Class Library

Son librerías de clases que permiten reutilizar código a manera de archivos «.dll» para proyectos de tipo Universal Windows Platform.

Xamarin

Los proyectos de Xamarin permiten generar aplicaciones nativas para Windows, iOS y Android utilizando como lenguaje de programación C# y compartiendo el mismo código.

Proyectos basados en Servicios Web (Webservice Projects)

Servicios Web ASP.Net

Los primeros servicios web que se encontraron en Visual Studio fueron los ASP.Net WebService (.asmx). Ayudan a construir puentes entre sistemas que no necesariamente esten en la misma tecnología. Por ejemplo, aplicaciones escritas en Java o PHP, pueden consumir información de una base de datos SQL Server a través de un WebService ASP.Net. Hoy en día existen más opciones sofisticadas como WCF, WebApi o Rest.

WCF (Windows Communication Foundation)

Este tipo de proyectos nos ayuda a exponer interfaces de programación que pueden hacer de puente entre nuestras aplicaciones cliente (diversidad de plataformas) y el backend. Los proyectos WCF tiene mas características que los primeros servicios web ASP.Net.

WCF Class Library

Son librerías de clases que permiten reutilizar código a manera de archivos «.dll» para proyectos de tipo Windows Communication Foundation.

Proyectos de Prueba (Testing Proyects)

Unit Tests

Todo el código que podamos escribir para un determinado proyecto puede ser probado función por función. Los proyectos de pruebas unitarias nos ayudan a determinar si todos nuestros métodos de clases funcionan correctamente bajo N condiciones.

Otros Proyectos (Other projects)

La siguiente lista de proyectos mantiene mas relación con tecnologías Open Source y otros componentes relacionados con la gestión en Windows:

Python

Tanto si queremos hacer scripting, trabajar con la web o internet de las cosas.

Javascript

Principalmente para juegos y aplicaciones móviles.

Games

Programación de juegos utilizando el framework de Unity y otros.

Cabe mencionar que los proyectos aquí mencionados no incluyen los de código no administrado con C++, ya que también con Visual Studio existe la posibilidad de programar a mas bajo nivel, un ejemplo muy claro es la programación de drivers.


Sigueme en Twitter @vmorenoz

¿Te gustó este artículo? Únete a Facebook en MicrosoftLand

6 thoughts on “Mas de 20 diferentes proyectos que se puedan hacer con Visual Studio

Deja un comentario