La semana pasada tuvo lugar en Madrid el evento Windows Azure Camps, donde los asistentes consiguieron una visión general de los servicios disponibles a día de hoy en la nube de Microsoft. En él varios de los asistentes tenían cierta inquietud sobre la posibilidad de subir servicios web asmx a la plataforma Windows Azure.
Respecto a esta cuestión, la recomendación general es la migración de nuestros servicios a Windows Communication Foundation por varios motivos:
- Trabajaremos con .NET Framework 4.0
- Windows Communication Foundation nos permite desacoplar la lógica de la configuración propia de la comunicación.
- Podremos hacer uso de Intellitrace tanto en local como en la nube.
- Dispondremos de más bindings para aumentar nuestras posibilidades de comunicación entre distintos clientes.
- Etcétera
Si por el motivo que sea no se considera viable la migración y aun así deseamos seguir trabajando con asmx, la solución es bastante sencilla 🙂 Abrimos Visual Studio 2010 en modo administrador y creamos una nueva solución desde el proyecto Windows Azure Project.
En este caso no seleccionamos ningún role de los que nos ofrece la plantilla de Visual Studio. Pulsamos OK para continuar. La solución debe tener el siguiente aspecto:
El siguiente paso sería añadir un proyecto Web Service. Si hacemos clic con el botón derecho sobre la solución y seleccionamos Add -> New Project… las opciones que nos mostrará serán las siguientes:
Como podemos ver, no aparece ninguna solución para el tipo Web Service. Al principio del post comentaba que una de las ventajas de trabajar con WCF era que podíamos hacer uso de la última versión del framework. Si prestamos algo más de atención a esta ventana, comprobamos que sólo nos está mostrando aquellos proyectos disponibles para la última versión, por lo que la solución es bastante fácil 😀
Cambiamos el combo superior para que filtre por la versión 3.5 del framework y ya podremos seleccionar el tipo ASP.NET Web Service Application.
Una vez añadido a la solución, basta con seleccionar la carpeta Roles de Windows Azure Project y hacer clic sobre Add -> Web Role project in solution donde nos aparecerá nuestro servicio asmx como opción 😉
Si quisiéramos añadir un proyecto existente, podríamos seguir los mismos pasos comentados en el post Subir un proyecto existente a Windows Azure.
Espero que sea de utilidad 😀
¡Saludos!