Por lo general, no suelo hablar sobre aspectos que van a acontecer en el futuro, para eso ya tenemos el blog de Javier Menéndez Pallo «El fúturo everyware». Sin embargo, son tantas las novedades que presenta esta nueva versión que deberemos conocer en un futuro próximo, que más nos vale ir conociéndolas de antemano.
Mucho se esta hablando de esta nueva versión tras el Connect (evento en el que Microsoft presentó oficialmente Visual Studio 2015), pero todas estas novedades no son más que la estrategia que marcó Satya Nadella desde que tomó las riendas de Microsoft. Su principal objetivo es que se desarrollen aplicaciones multiplataforma y multidispositivo. Además, que estas aplicaciones estén listas para poder desplegarse desde el Cloud. Con esta hoja de ruta es un poco más sencillo explicar todas las novedades de Visual Studio 2015.
La principal novedad que se presentó es que todo el Framework .NET es OpenSource. Esto puede proporcionar que todo aquel que quiera, pueda contribuir a mejorarlo. Además, habrá versiones de Visual Studio tanto para Mac como para Linux y… ¡de forma gratuita! La joya de la corona de Microsoft va poder ser utilizada desde cualquier plataforma. Los detractores de Microsoft ya no tendrán ningún tipo de argumento (en cuanto a este aspecto) que echarle en cara.
Novedades para Office365/SharePoint
La principal novedad es que ahora mismo no hay nada nuevo que no se pueda hacer en la versión 2013. La única novedad que trae es la actualización de las Office Tools para hacer uso de las Apis de Office 365 pero como algo exclusivo que solamente se pueda realizar en esta versión no hay.
Naturalmente, al no existir todavía ninguna nueva versión de SharePoint en el mercado, tendremos que esperar a ver las novedades un tiempo (aún no hay fecha para el lanzamiento de la nueva versión).
Principal novedad: ASP.NET vNext
Seguro que a muchos ya os va sonando lo de vNext (además todos los productos que lanza Microsoft en nueva versión llevan este término). Aparte del término de marketing, vNext dentro de ASP significa una ruptura con el viejo ASP.NET. Esta versión está reescrita desde cero con la finalidad de hacer un marco de desarrollo menos pesado y adaptado a los nuevos entornos ya sea en el cloud o en nuestras propias instalaciones. Consiste en componentes modulares con una sobrecarga mínima, por lo que mantener la flexibilidad mientras que la construcción de sus soluciones.
Esta nueva versión trae bastantes novedades:
- Unificación de todos los proyectos MVC, WebAPi en un único proyecto (no tiene sentido tener dos tipos de proyectos que prácticamente hacen lo mismo)
- Posibilidad de realizar modificaciones en vivo. Es decir, ir a modificar directamente el código, guardar los cambios y sin compilar ni volver a publicar la aplicación ya tenemos disponibles estos cambios.
- Posibilidad de estar alojado en tu propio servidor (no hace falta un IIS)
Otra de las novedades es que está basado en una versión de C#, en este caso la versión 6.0. No hay ningún cambio que suponga un boom o un golpe de efecto como en anteriores ocasiones (Linq, Dynamic, Await,etc…). Ahora casi todos los cambios que trae son mejoras para facilitar la lectura del código. Una de las que me llaman la atención es la posibilidad de no tener que comprobar los nulos.
Antes para comprobar si un elemento es nulo o no, escribíamos una instrucción como la siguiente:
class Record { public Person Person {get;set;} public Activity Activity {get;set;} } public static PrintReport(Record rec) { string str=""; if(rec!=null && rec.Person!=null && rec.Activity!=null) { str= string.Format("Record for {0} {1} took {2} sec.", rec.Person.FirstName??"",rec.Person.SurName??"", rec.Activity.Duration); Console.WriteLine(str); } return ; }
Ahora con la nueva sintaxis queda de una forma semejante:
public static PrintReport(Record rec) { var str= string.Format("Record for {0} {1} took {2} sec.", rec?.Person?.FirstName??"",rec?.Person?.SurName??"", rec?.Activity?.Duration); Console.WriteLine(str); return; }
Como podemos observar, proporciona un funcionamiento que reduce significativamente el código sin añadirle más complejidad.
Novedades en cuanto al IDE
Quizás es la novedad más llamativa, nada más creamo un proyecto vNEXT tenemos las siguientes referencias:
Analizamos por partes, hay muchos ficheros json. Analizamos cada uno de ellos.
- Bower.json: Es el fichero de configuración de Bower. ¿Qué es Bower? Es un administrador de paquetes optimizado para las librerías JavaScript. Similar a Nuget pero optimizado para el mundo FrontEnd.
- package.json: Dentro de este fichero .json estarán incluídas las dependencias que tiene nuestro proyecto e indicando la ubicación de los paquetes Bower y NPM.
- project.json: Este json substituye al fichero .csproj el cuál era el encargado de crear el proyecto (más de una vez hemos modificado este fichero por la falta de alguna referencia). Ahora en este fichero json se ven las referencias nugets, donde están las dependencias nuget.
- config.json: Este fichero substituye a las settings que almacenábamos dentro del WebConfig.
Y una última novedad en esta parte es el fichero gruntfile.js ¿Qué es? Algo similiar a Bower, Grunt es un atomatizador de tareas dentro del ecosistema Javascript. Microsoft, con estos movimientos de la incorporación de herramientas de tercero y que son las que se utilizan en entornos NO Microsoft, ha dado un golpe de efecto, aceptando los estándares web e incorporándolos dentro de sus herramientas de desarrollo, haciendo aún más completo Visual Studio.
Ahora vNext es mucho más ligero pero… ¿es verdad? Mirar esta imagen:
Podemos comprobar que sí, que solamente tenemos cargado el Core 5.0 y las dependencias en Bower y NPM que tenga nuestra aplicación.
Por último, una novedad de IDE es que ahora cuando depuramos la aplicación disponemos de una Consola JavaScript, con lo cual se facilita mucho la depuración. Se acabo el tema de ir alternando por una parte navegador y servidor, desde Visual Studio lo tenemos todo incluido.
Conclusión
Microsoft ha mejorado muchísimo su IDE (en mi opinión el mejor del mercado). Esta versión trae un gran puñado de novedades sobre todo en la parte Web. Este post, sólo es la punta del iceberg de todo lo que nos acontece. Tanto en proyectos de tipo Web como con otro tipo de proyectos (por ejemplo los proyectos Cross-platform) se han incorporado muchas novedades y mejoras (aunque todas ellas ya se pueden utilizar con el último Update de Visual Studio 2013). Hay una integración total con Apache Cordova (incluso con un simulador de un dispositivo Android en HyperV) y cada vez está más presente Xamarin para el desarrollo de aplicaciones moviles haciendo uso de C# y F#.
En definitiva, si puedes no dudes en instalarte esta Versión de Visual Studio y podrás comprobar con tus propios ojos toda esta evolución.