2011-03-14 12 views
6

Estoy trabajando en Windows Azure y he creado un rol de trabajador. La aplicación funciona bien; en muchos lugares de la aplicación, estoy haciendo referencia a clases específicas de Azure, como CloudBlobContainer para guardar archivos en el almacenamiento de Azure. Me gustaría ejecutar esta aplicación en un servicio de Windows u otro entorno de alojamiento sin dependencias en Azure. Las clases que he creado tienen dependencias en los recursos de Azure, cuando cambio la aplicación para que se ejecute en un entorno que no sea de Azure, no deseo cambiar mucho el código.Cómo usar la inversión de control (IoC) con el rol de trabajador de Azure

He utilizado Enterprise Library Unity y Ninject como un contenedor IoC con ASP.NET MVC y ambos funcionaron muy bien. Pero estoy teniendo problemas para descubrir cómo usar Unity con una función de trabajador de Azure.

He buscado en la web alta y baja, pero no he podido encontrar muchos recursos para ayudarme con mi problema. ¿Alguien sabe dónde puedo obtener más información sobre el uso de Unity con un Rol de trabajador de Azure?

A continuación se presentan algunos artículos que he encontrado, pero todavía no me proporcionan suficiente información para seguir adelante:
Abstracting Away Azure: How to Run Outside of the Cloud

IOC for RoleEntryPoint

Respuesta

7

Se utilizó la Unidad de los Trabajadores de la muestra. Echar un vistazo aquí: http://msdn.microsoft.com/en-us/library/ff966499.aspx

, de hecho, estas muestras patrones comunes abstractos que se encuentran con los trabajadores, tales como:

  • sale un mensaje de una cola
  • Haz somtheing
  • Eliminar mensaje de la cola

etc.

+0

Gracias por la respuesta. Esto parece prometedor. Trabajaré con él esta tarde. –

+0

No me di cuenta de lo fácil que era hacer. Mi primer proyecto usando Unity estaba en una aplicación MVC; eso fue mucho más difícil de conseguir. Al mirar el código en la url que proporcionó, ayudó mucho. Gracias –

+0

¡Me alegro de haberlo ayudado! En MVC hay un par de indirecciones que son menos directas. Por lo general, crearía su propia clase ControllerFactory y anularía "GetControllerInstance". Solo para su información, el sitio web en el mismo proyecto de muestra utiliza este enfoque. –

Cuestiones relacionadas