[Evento] Mañana estaré en el Lanzamiento de Visual Studio 2012 con MadridDotNet

Mañana estaré con el Grupo de Usuario de Madrid .NET en la Universidad Politécnica de Madrid (Avenida Complutense nº 30 Ciudad Universitaria Madrid Madrid España) en el evento de lanzamiento de Visual Studio 2012 que hemos preparado.

La agenda es la siguiente:

  1. Un poco de Visual Studio 2012 + ALM 2012Bruno Capuano & Luis Fraile
  2. CodedUI Tests en Visual Studio 2012Juan Carlos Quijano
  3. Novedades en el IDE de VS2012Bruno Capuano & Luis Fraile
  4. Windows Store Apps (HTML5/C#)Jorge Serrano
  5. Async/Await en .NET Frameowrk 4.5Javier Torrecilla
  6. WebAPIUn servidor (No solo hablaré de WebAPI, hablaré de las novedades de MVC 4 y Visual Studio 2012)
  7. Juegos escalables en Azure y Windows 8Alex Casquete & Quique Martínez
  8. ERP en AzureVíctor González

Y el cierre del evento desde Seattle por César de la Torre

Patrocinadores

image_thumb9

pluralsight-fullcolor-250x55-v1

Al final sortearemos una suscripción annual a Pluralsight valorada en 299$ entre los asistentes.

Toda la información del evento aquí

Os esperamos!!!

[ASP.NET MVC] Controladores con el mismo nombre con MVC y WebAPI en el mismo proyecto

Si estas empezando a usar WebAPI y ASP.NET MVC, una pregunta que se suele hacer la gente es como poder usar el mismo nombre de controlador tanto para nuestra api como para nuestros controladores de mvc.

La respuesta es sencilla y nos la da de base .NET: Namespaces

Yo en mis desarrollos me creo una nueva carpeta dentro de Controllers llamada Api:

image

Así puedo tener el 2 controladores con el mismo nombre pero en diferente espacio de nombres.

namespace Company.Project.Web.Controllers

{

    public class WeatherController : Controller

    {

 

    }

}

 

namespace Company.Project.Web.Controllers.Api

{

    public class WeatherController : ApiController

    {

 

    }

}

Un saludo.

[JavaScript] TypeScript ¿JavaScript tipado?

Seguro que si tienes una cuenta de Twitter, esta mañana y ayer te viste abrumado por un montón de tweets acerca de TypeScript.

¿Que es TypeScript?

Digamos que es un lenguaje tipado escrito en JavaScript y que al compilarlo genera código JavaScript plano listo para utilizar en cualquier navegador, host y sistema operativo.

¿Por donde empezar?

Lo primero que tienes que hacer es descargar e instalar la extenisón para Visual Studio 2012 aquí

Una vez instalada, create un proyecto web MVC 4:

image

Usa la template de Internet Application:

image

Una vez creada, sobre la carpeta de Scripts, añade un fichero del tipo TypeScript

image

Le ponemos un nombre

image

Y ya tenemos nuestro fichero ts creado con un código de ejemplo:

image

Tenemos intellisense:

image

Este código no se puede ejecutar en un navegador, es TypeScript y tendrás que aprender sobre este lenguaje aquí para que luego el compilador de TypeScript genere el JavaScript plano que utilizaremos en nuestra web.

Podemos observar en la ventana de navegación, que de nuestro fichero demo.ts cuelga otro fichero llamado demo.js que contiene el código JavaScript plano resultado de la compilación de nuestro TypeScript y que será el que añadiremos a nuestra vistas de MVC:

image

Como podéis observar, el código cambia bastante, los comentarios se eliminan, no hay palabras reservadas como constructor, interface, class, module… es el JavaScript que conocemos, que se ejecuta en el navegador y que no es tipado:

imageimage

Como no soy un experto en JavaScript, no puedo asegurar si ese código que genera el compilador de TypeScript es el más óptimo o no, claro está que nos puede ayudar a los que no somos expertos, pero yo aconsejaría siempre, verificar de alguna manera el código generado.

Por último, para compilar el ts, lo puedes hacer desde la consola de nuget con el comando tsc:

tsc demo.ts

o con este workaround para que cada vez que compiles desde Visual Studio 2012 se compile de nuevo el .js en base a los cambios que hagas en el fichero .ts, es añadir está línea a tu fichero .csproj

<Target Name="BeforeBuild">

 <Exec Command="&amp;quot;$(PROGRAMFILES)Microsoft SDKsTypeScript0.8.0.0tsc&amp;quot; @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />

</Target>

Un saludo.