Ayer se lanzó en CodePlex la nueva versión DotNetNuke CE 6.2 Beta 2 con una buena cantidad de nuevas características y funcionalidades que permiten nuevas posibilidades como crearte tu propia red social privada así como otras capacidades móviles como redirección de website dependiendo del tipo de móvil, todo a través de configuración. La nueva versión 6.2 continúa con el nuevo paradigma de CMS que fue anunciado en la DotNetNuke World Conference 2011: CMS = “Cloud” + “Mobile” + “Social”.
Es un placer anunciar que una nueva versión Beta del DotNetNuke Azure Accelerator está disponible en CodePlex, que incluye tanto correcciones como nuevas características que trataré de resumir en este post.
Descargar DotNetNuke Azure Accelerator 6.2 Beta
DotNetNuke Azure Accelerator 6.2 Beta
Lo que puedes esperar en este lanzamiento es una nueva versión del asistente del Accelerator así como de los paquetes de servicio, que son capaces de trabajar con tus VHDs y bases de datos SQL Azure actuales añadiendo nuevas funcionalidades en el entorno donde están alojadas y corrigiendo algunos comportamientos. Si bien actualmente esta versión del Accelerator instala la versión DNN 6.2 Beta 2 en unidades VHD vacías, esto sólo será durante esta fase Beta –que finalizará conjuntamente con el lanzamiento definitivo de DotNetNuke 6.2-. Probablemente la etiqueta “6.2” se quitará del nombre del Accelerator usando otra nomenclatura, ya que una de las nuevas características del Accelerator es que no depende de una versión específica de DotNetNuke permitiendo desplegar la última versión disponible en CodePlex de DNN CE, sin importar cuál sea. De manera que espera un cambio de “nombre” en el Azure Accelerator antes de la versión definitiva.
La lista de cambios en esta versión es la siguiente:
1. Cambios en el asistente del Accelerator
- Aprovisionamiento y despliegue automático: esta es probablemente una de las nuevas características que más gustará, porque usando la misma técnica que usa el Azure SDK 1.6 para Visual Studio, permite la descarga automática de un fichero de configuración de publicación para administrar remotamente todas tus suscripciones. Después de descargar estas opciones de forma segura, puedes seleccionar el servicio de hospedaje, la cuenta de almacenamiento y el servidor de bases de datos, todo desde dentro del asistente. Si no has aprovisionado estos recursos desde la consola de administración de Windows Azure, puedes hacerlo desde el asistente, incluyendo la creación automática de las pertinentes reglas en el firewall de SQL Azure. Antes de comenzar el despliegue, se verificará el estado de los recursos aprovisionados para comprobar que están disponibles (por ejemplo, verificar y esperar a que la cuenta de almacenamiento esté disponible). Si el entorno de destino –producción o ensayo- está ocupado por un despliegue previo, aparecerá un diálogo de confirmación para sobrescribir el despliegue actual –sólo se sobrescriben las instancias desplegadas, nunca el VHD o la base de datos. El certificado PFX también se sube y configura automáticamente en el servicio de hospedaje de forma transparente para el usuario.
- Opción para instalación automática: una nueva opción ubicada en el paso de selección de paquete de despliegue, permite seleccionar el modo “auto-instalación” como último paso de despliegue usando los parámetros de instalación por defecto de DotNetNuke. Si seleccionas esta opción, tendrás un sitio web completamente funcional que usa la plantilla y credenciales por defecto (usuario “host”, contraseña “dnnhost”). Recuerda cambiar estos credenciales tan pronto como sea posible.
- Despliegue en el entorno de ensayo de Azure: como el nuevo paquete de despliegue no requiere “host headers” para el sitio –ver cambios en los paquetes de instalación más adelante- ahora puedes desplegar en el entorno de ensayo de Azure y comenzar a jugar con el botón de Intercambiar VIP desde la consola de administración de Windows Azure.
- Opción para exportar los resultados del asistente a una carpeta local: hay una nueva opción –que no usa los servicios administrados de Azure- para crear y configurar ficheros de configuración de servicio y paquetes de instalación, exportándolos a una carpeta para despliegue manual, muy útil en algunos escenarios. El fichero de certificado PFX también en la misma carpeta después de haberte solicitado una contraseña para el mismo.
2. Cambios en los paquetes de servicio
- Descarga automática de DNN CE directamente desde CodePlex: otra característica importante en el Accelerator es la descarga automática del último paquete de DNN CE disponible directamente desde CodePlex durante el despliegue del rol en Azure, siempre y cuando la unidad VHD esté vacía. Puedes sobrescribir el parámetro “packageUrl” para descargar desde otra ubicación personalizada, como las anteriores localizaciones en Azure Storage o cualquier otra Url válida BETA: esta Url actualmente apunta a la versión DNN CE 6.2 Beta 2 hasta la versión definitiva 6.2. La descarga se realiza directamente desde CodePlex hacia tu servicio hospedado en Azure.

- Cambiados enlaces por defecto: El sitio web predeterminado será el sitio DotNetNuke en vez del propio sitio del webrole –reservado para futuras características-, lo que significa que ya no es obligatorio especificar encabezados de host habilitando la posibilidad de desplegar en el entorno de ensayo y otras operaciones como Intercambio VIP
- Creación de la base de datos en el role startup: ahora en el evento de inicialización del role, se creará la base de datos y el usuario en el caso de que éstos no existan. Esto hace más fácil la creación de nuevos despliegues de DNN sobre Azure simplemente modificando un fichero de configuración pre-existente sin tener que realizar de nuevo todas estas tareas manualmente o a través del asistente
- Nueva página de progreso del despliegue: se ha añadido una nueva página de información del progreso del despliegue al sitio web del webrole, mostrando el estado del despliegue hasta que el sitio de DotNetNuke esté disponible. Por defecto, la información de registro almacenada en Table Storage no se muestra en esta página, teniendo que habilitar esta opción en el fichero de configuración para propósitos de depuración. También puedes acceder a estos detalles conectándote por escritorio remoto a cualquier webrole y navegando a la dirección http://admin.dnndev.me
- Descarga más pequeña: las paquetes adicionales se han movido a una descarga por separado –no disponible aún en la fase Beta. El asistente viene con el paquete “Azure Single and Small” de manera que la descarga sólo ocupa 4Mb.
3. Correcciones y mejoras
- Modificada la creación de la cuenta de usuario local con la que se comparte la unidad VHD para no permitir la caducidad de la misma después de un mes (necesita revisión, el enfoque debe ser diferente)
- Modificados los EndPoints de los web roles para permitir tráfico en el puerto 443
- Modificadas las operaciones de compresión usando código manejado (ICSharpCode.SharpZipLib.dll)
- Uso de "netsh advfirewall firewall" para permitir el tráfico en el servidor SMB (ver http://support.microsoft.com/kb/947709/)
- Uso del sistema operativo Windows 2008 R2
- Agregación automática de la entrada "IsWebFarm" en el fichero web.config para habilitar el proveedor de caché FileCachingProvider
- Modificada la inicialización del monitor de diagnósticos. Ahora los eventos están siendo correctamente registrados en los web roles.
Tareas planificadas pendientes
Las tareas planificadas pendientes para la versión definitiva son:
- Añadir soporte de Alta Disponibilidad para el SMB worker role –actualmente realizando pruebas sobre la solución tomada
- Capturar el evento “Changing” para detectar cambios de configuración o topología y actuar en consecuencia
- Cambiar los procesos de larga duración en el asistente como tareas en segundo plano para no congelar la interfaz de usuario
Por favor, si detectas algún bug, crea una incidencia en la página Issue Tracker disponible en CodePlex.
Enjoy it!
Yesterday the new DotNetNuke 6.2 Beta 2 was released on CodePlex with a bunch of new features and fixes that allows new possibilities like creating your own and private social network, plus other mobile capabilities like mobile website redirection on CE version. The new 6.2 release continues with the new CMS paradigm that was announced at the DNN World 2011 Conference: CMS = “Cloud” + “Mobile” + “Social”.
I’m pleased to announce that a new Beta release of the DotNetNuke Azure Accelerator has been released and is also available on CodePlex, that includes both fixes and new great features that I’ll try to summarize in this post.
Download DotNetNuke Azure Accelerator 6.2 Beta
New DNN Azure Accelerator 6.2 Beta
What you can expect from this release is a new version of the Accelerator wizard and packages, that are capable to use your actual VHDs and SQL Azure databases but adding new features on the Azure hosting environment and fixing some behaviors. If actually the Accelerator will install the 6.2 Beta 2 version on empty VHD drives, this will be only during this Beta phase –that will end with the final DotNetNuke 6.2 release- and probably the “6.2” will be removed from the name of the Accelerator using other nomenclature, because a new agnostic feature allows to deploy the latest available DNN CE version on CodePlex, no matter which version. So expect also a “name” change on the Azure Accelerator before the final release.
The categorized list of new features is as follows:
1. Changes on the Wizard
- Automatic provisioning and deployment: this is probably one of the new features that new users will like a lot, because using the same technique that uses the Azure SDK 1.6 for Visual Studio, allows to automatically download a publish settings file and manage remotely your subscriptions. After getting this publish settings, you can select the hosted service, storage account and SQL Azure database, all from the wizard. If you don’t have provisioned them from the Windows Azure Portal, you can do it from the wizard. This includes the automatic creation of the proper SQL Azure firewall rules. Before deploying, the status of the provisioned resources is verified in order to check that all of them are available (i.e. verify and wait for storage account ready status). If the target slot is occupied by a previous deployment, a confirm dialog appears for overwriting the current deployment –only the VM, not the VHD or database. The PFX certificate is also automatically uploaded and configured on your hosted service without any user interaction.
- Option for automatic installation: a new option located in the package selection step, allows to select auto-installation as the final step of the deployment, using the DotNetNuke default parameters. If you select this you will have a fully functional site running on Windows Azure deployed with the default website template and default credentials (user “host”, password “dnnhost”). Remember to change this credentials as soon as possible.

- Deploying on Azure staging environment: as the new package does not need “host headers” for the site –see package new features below- now you can deploy on Staging environment –and you can start playing with the Swap VIP button on the Windows Azure Management Console.
- Option to export the wizard results to local file system: there is an option -that not uses Azure managed services- to create and configure a service configuration file and service package, exporting them to a folder for manual deployment, useful on some scenarios. The PFX file is also exported –you will be asked for a password- for manual import.
2. Changes on the packages
- Automatic DNN CE download from CodePlex: another important feature on the Accelerator is the automatic download of the latest available DNN CE package from CodePlex on first Azure role run –when the package is deployed on Azure and the VHD drive is empty. You can overwrite the "packageUrl" setting to download from any other customized location, like previous Azure Storage container locations or any other. BETA: this Url actually points to the DNN CE 6.2 Beta 2 version until final 6.2 release. The download is done directly from CodePlex to your hosted service on Azure.

- Changed default binding: The default website will be the DotNetNuke website instead of the webrole website, what means that specifying host headers is no longer mandatory, and enables the possibility of deploying on Staging environment and other operations like Swap VIP
- Database creation on role startup: now on role startup, the database and login user will be created if the database does not exist. This will make easier to create new DNN service deployments by simply changing the service configuration file without having to do that task manually or through the accelerator wizard.
- New deployment progress page: added new deployment progress page on the webrole website, showing the service deployment status until the site is ready. By default, the deployment log stored on Table Storage is not shown on this page, but you can enable it on the service configuration file for debugging purposes. You can access also these details using remote desktop on any webrole and browsing "http://admin.dnndev.me".
- Smaller download: the packages has been moved to a separated download –not available yet on Beta phase. The wizard comes with the "Azure Single and Small" package so the DNNAzureAccelerator package only weights 4Mb.
3. Fixes and enhancements
- Modified the local file sharing user account creation on roles to don't allow account expiration after a month (needs revision, the approach must be different)
- Modified the web roles endpoints to allow traffic on port 443
- Changed the package unzip operations to use managed code (ICSharpCode.SharpZipLib.dll)
- Use of "netsh advfirewall firewall" to allow traffic on the SMB server (see http://support.microsoft.com/kb/947709/)
- Use of Windows 2008 R2 OS
- Automatic adition of "IsWebFarm" app setting in the web.config file to enable the FileCachingProvider
- Changed the Azure diagnostic monitor initialization. Now the events are being correctly logged on web roles.
Pending planned tasks
The pending tasks planned for the final release are:
- Add HA support for the SMB worker role, actually doing tests on the solution taken
- Handle the “Changing” event to detect configuration or topology changes and act in consequence
- Change the long process tasks on the wizard as background workers to not freeze the UI
Please, if you detect any bug on this release, create an issue on the Issue Tracker page available on CodePlex.
Enjoy it!
Durante estos últimos días he estado trasteando para poder montar un VHD para probar la RC de System Center 2012 y así poder ver las características de integración con Windows Azure. La lista de requerimientos del software es tan grande que al final con los 25Gb que asigné para el VHD no me ha dado ni para instalar los mismos.
Problema
Encima, después de hoy estar ampliando el tamaño del VHD comienzo a tener una serie de problemas, que indicaban que el disco externo USB donde tengo almacenada la imagen estaba protegido para escritura. WTF?
Al parecer, después de realizar una búsqueda por Internet sobre este problema, la causa del error es por no usar la utilidad de “Expulsar hardware de forma segura” –ese icono que tienes al lado del reloj del sistema. He de reconocer que en mi vida lo he usado y no había tenido problema alguno, pensé que eso icono lo ponían sólo para hacer perder el tiempo
. Está claro que habrá que empezar a usarlo.
Después de muchas soluciones propuestas -algunas no imposibles sugiriendo formatear el disco perdiendo todos los datos-, he conseguido dar con una solución que, si bien puede no solucionar el problema a todo el mundo, por lo menos a mí me ha funcionado. Como nota aclaratoria, indicar que el disco no me aparecía como “ReadOnly” si trataba de usarlo en otros equipos, sólo me pasaba con el equipo que trabajo habitualmente.
La configuración actual sobre que tengo es:
- Windows 7 Ultimate SP1 64bit, con todas las actualizaciones hasta la fecha
- Disco USB externo Iomega 500Gb, con BitLocker activado
Solución
Para solucionarlo he realizado los pasos siguientes:
1) Añadir/modificar un valor DWORD en la registry:
- Inicio > Ejecutar… y escribir “regedit”
- Buscar la entrada HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies (si no existe esta última, crearla)
- Añadir un valor DWORD “WriteProtect” con valor “0”

2) Poner offline el disco USB:
- Abrir el administrador de discos, accediendo a “Panel de control > Herramientas Administrativas > Computer Management”, y desde esta consola, seleccionar el nodo “Administrador de discos”
- Pulsar con el botón derecho del ratón sobre el disco y seleccionar el menú “Offline”
3) Poner online el disco USB:
- Volver a pulsar el botón derecho del ratón y pulsar sobre “Online”
Voilá! el disco ya vuelve a estar operativo para operaciones de escritura. Espero que sirva de ayuda a alguno.
Today I can finally speak publicly about a new cloud service that has seen the light and I had the pleasure of participating in CTP phase.
Since SQL Azure is available on the market, one of the main workhorses has been how to implement backups of our databases. Initially the only way I had was to make a copy of the database in another SQL Azure, which meant the cost of having to pay for the additional database. Later began to appear new tools that allowed the export/import the data and schemas through SQL scripts or through the new “bacpac” format. A good summary of them was made on this Luis Panzano’s blog entry, showing the advantages and disadvantages of each of them.
All these previous solutions is in addition of a new backup solution for SQL Azure, nothing more and nothing less than from the hand of Redgate, widely recognized worldwide for its database products.
What is it?
RedGate Cloud Services is a new cloud service for backing up SQL Azure databases in an automated and scheduled way, without having to perform any task that requires complex or depth technical knowledge of the Azure platform.
The new RedGate’ service allows, using the export/import "bacpac" file format, automated backing up through a very simple user interface.

And while this simple interface simplifies the way we perform the backup, one of the most interesting options is the ability to schedule them. Scheduling options are initially not many, but the feedback from the community is doing to implement all the new scheduling needs required.

Where are backups stored?
While from my point of view is that the most recommended option is to store backups in Azure Storage since involves no data transfer costs -remember that the internal data traffic in the same Azure datacenter only is not charged-, there are another two interesting options: backup on Amazon S3 or sent to an FTP server, very interesting options to have automated copies in different storage locations for redundancy, even if we must pay the additional cost of data transfer.

What is ideal for?
Although from the Azure control panel we can manually export databases in the “bacpac” format to Azure Storage -this service is no longer CTP and is fully supported-, the main problem is that current utility on Azure control panel does not allow scheduled backups, so that to perform a daily backup we should visit daily the Azure control panel and run the process manually.
With this new Redgate’ service we can schedule different backups for the same or different databases through a simple user interface, which frees us from having to perform the backup tasks manually. Furthermore, we can access the historical backups logs, receive email notifications, etc..


How much does it cost?
Like most services in the cloud its formula is pay per use, and although the current formula adheres to a single offer of 8€/month (31 uses per month), I guess in the coming weeks will be appearing more options for price escalation as recognized by the Richard Mitchell on the home page.
It should be noted that this price is for the backup service. Does not include storage costs for Azure Storage (storage account isyour own), nor the costs of traffic in the case of using external storage like Amazon or FTP account.
On the other hand, is also offering a free trial period of 10 days without charge.
Conclusion
A few weeks ago, I commented that I upgraded to DotNetNuke 6.1.3 three different sites running on Azure in just 9 minutes, including backups. Now you know the method used to back up the databases. The part of details of how to do the upgrade of DNN sites on Azure I leave for another post.
While the current service could offer much more, precisely Redgate people are taking good note of each new required feature. Believe me, I had the pleasure of having applied for a feature and implemented within a reasonable time. Indeed, it seems that the service will offer many more options soon, as being able to deploy and/or eliminate Azure deployments in a scheduled way.

What I like: scheduling and to receive daily email notifications telling me that the SQL Azure backup has been successful. Although it may seem silly, reassures ... a lot. Have I discussed with you my incident when I clicked the "Delete Azure SQL server" instead of "Delete Azure Database"? Well, that's another story...
For more information, visit:
http://cloudservices.red-gate.com/
Happy coding!
Hoy por fin puedo hablar públicamente de un nuevo servicio en la nube que ha visto la luz y del que he tenido el placer de haber participado en su fase CTP.
Desde que SQL Azure está disponible en el mercado, uno de los principales caballos de batalla ha sido la forma de implementar las copias de seguridad de nuestras bases de datos. Inicialmente la única forma que había era la de hacer una copia de la base de datos en otra en SQL Azure, lo que implicaba el coste de tener que pagar por esa base de datos adicional. Más adelante comenzaron a salir herramientas que permitían la exportación/importación de los datos a través de SQL Scripts o a través del nuevo formato “bacpac”. Un buen resumen de ellas lo podéis leer en esta entrada del blog de Luis Panzano, donde se muestran las ventajas y desventajas de cada una de las mismas.
A todas estas soluciones previas viene a añadirse una nueva solución de copias de seguridad de SQL Azure, nada más y nada menos que de la mano de RedGate, ampliamente reconocidos a nivel mundial por sus productos para bases de datos.
¿Qué es?
Se trata de un nuevo servicio en la nube para hacer copias de seguridad de SQL Azure de manera automatizada y programable, sin tener que realizar ninguna tarea compleja o que requiera de profundos conocimientos técnicos de la plataforma Azure.
El nuevo servicio de RedGate permite, haciendo uso de la exportación/importación en formato “bacpac”, realizar copias de seguridad de forma automatizada a través de un sencillísimo interfaz de usuario.

Y si bien esta sencilla interfaz nos simplifica la forma de realizar las copias de seguridad, una de las opciones más interesantes es la de poder programarlos. Las opciones de programación no es que inicialmente sean muchas, pero el feedback de la comunidad está haciendo que se implementen todas las nuevas necesidades de programación requeridas.

¿Dónde se almacenan las copias de seguridad?
Si bien la opción que veo más recomendable es la de almacenar las copias de seguridad en Azure Storage ya que no implica costes de transferencia de datos, -recordemos que el tráfico interno de datos en un mismo datacenter de Azure no se factura-, existen otras dos opciones también muy interesantes: copia de seguridad en Amazon S3 o envío a un servidor FTP, opciones muy interesantes para tener copias automatizadas en distintos proveedores de almacenamiento, como sistema redundante, aunque se tenga que pagar ese coste adicional de transferencia de datos.
¿Para qué es ideal?
Si bien desde el panel de control de Azure ya podemos realizar la exportación manual de las bases de datos en formato “bacpac” a Azure Storage -recordemos que este servicio ya no está en fase CTP y es totalmente soportado-, el principal problema es que la utilidad actual del panel de control de Azure no permite programar copias de seguridad, con lo que para realizar una copia de seguridad diaria habría que visitar el panel de gestión diariamente y ejecutar ese proceso manualmente.
Con este nuevo servicio de RedGate se pueden programar distintas copias de seguridad para la misma o para distintas bases de datos a través de una sencilla interfaz de usuario, con lo que nos libera de tener que realizar las tareas de copia de seguridad manualmente. Además, podemos acceder al histórico de copias de seguridad realizadas, recibir notificaciones por correo electrónico de las copias de seguridad, etc.


¿Cuánto cuesta?
Como cualquier servicio en la nube, su fórmula es de por pago por uso, y aunque la fórmula actual se ciñe a una sola oferta de 8€/mes (31 usos por mes), supongo que en las próximas semanas irán apareciendo más opciones de escalado de precios tal y como reconoce el mismo Richard Mitchell en la página de inicio.
Hay que aclarar que este precio es por el servicio de copias de seguridad. No están incluidos los gastos de almacenamiento en Azure Storage (la cuenta de almacenamiento es una tuya propia), ni los costes de tráfico en el caso de usar almacenamiento externo como Amazon o una cuenta FTP.
Por otra parte, también se está ofertando un periodo de prueba gratuito de 10 días sin coste alguno.
Conclusión
Hace unas semanas, comenté que había podido actualizar a la versión de DotNetNuke 6.1.3 tres sitios distintos en Azure en tan sólo 9 minutos, copias de seguridad incluidas. Ahora ya conocéis el método utilizado para las copias de seguridad de base de datos. La parte del detalle de cómo hacer el upgrade de los sitios DNN en Azure lo dejo para otro post.
Si bien al servicio actual se le podrían pedir muchas más cosas, precisamente la gente de RedGate está tomando muy buena nota de ellas. Créanme, he tenido el placer de haber solicitado una característica e implementarse en un plazo razonable. Sin duda, parece que el servicio ofrecerá muchas más opciones en breve. De hecho, ya hay algunas interesantes en marcha como la de poder desplegar y/o eliminar despliegues en Azure de forma planificada.

Lo que más me gusta: recibir notificaciones por correo electrónico diariamente indicándome que las copias de seguridad de la base de datos de SQL Azure se han realizado con éxito. Aunque parezca una tontería, tranquiliza…y mucho. ¿A alguno no le he comentado mi incidente cuando le di al botón “Eliminar servidor SQL Azure” en vez de “Eliminar base de datos”? Bueno, eso ya es otra historia…
Para más información, visita:
http://cloudservices.red-gate.com/
Happy coding!
After a busy January I’m back again to write some pending entries that I have promised to some people. There are lots of things to tell after the DNN-Cloud session in the DNN Europe Task Force Meeting 2012, things like: how to upgrade a DNN version on Windows Azure, how to do backup and restore operations, how to move an instance from on premise to Azure and vice versa, etc. so let start one by one.
To begin, let’s see how to solve a typical error when deploying DNN on Windows Azure, since at least 4 people have asked to me how to fix it in the past two weeks. The error message appears when you deploy the package on a service, and means that the certificate specified in the service configuration file is not configured on the Windows Azure service:
“The certificate with thumbprint ‘XXXXXXXXXX’ is missing for hosted service ‘YYYY’. Please install the certificate for this hosted service.”
This is because you didn’t upload correctly the certificate, which is used to encrypt communications while using RDP or Windows Azure connect (Virtual Network).
NOTE: in future versions of DNN Azure Accelerator this problem will be fixed using another method for uploading the package, using the Windows Azure publishing settings. Meanwhile, you have to upload manually the certificate to Azure as specified below.
What certificate?
The error refers to the certificate used in the DNN Azure Accelerator to configure RDP. In fact, there is a text indicating that you have to upload this certificate to the hosted service on Azure, but actually there is not much help on how to do this, because although currently the Accelerator automatically generates the certificate in a “.cer” file in the wizard folder, it must be imported into Windows Azure as a “.pfx” file.

How to export the certificate in PFX format?
To export the certificate in PFX format from the DNN Azure Accelerator wizard RDP step, follow these steps:
- Click “View…” to see the certificate that has generated the wizard
- Go to the tab “Details”. In the certificate properties, we can see the “Thumbprint” of this certificate, which is precisely the one referred by the error and stored in the service configuration file.
- Click the “Copy to File…” to open the export wizard indicating that you want to export the private key. This is mandatory to export in PFX format.
- In the next step, select the format “PFX” and activate the check boxes for “Include all certificates in the certification path if possible” and “Export all extended properties”. Uncheck the box “Delete the private key if export is successful”, as means to delete it from your local computer certificates storage instead of the exported file.
- In the following steps specify a password to be used while importing into Azure and finally a filename for the certificate.

With this we have exported the PFX file.
How to import the certificate on Azure?
This step is very well documented in numerous websites and in Windows Azure’s help, but here again to not have to open another page and for printing purposes –remember to save the trees!:
- Open the Windows Azure Administration console and access the hosted service settings, selecting the service certificates folder you want to configure.
- Press the “Add Certificate…” button to upload the “PFX” file that we have exported typing the password used before.
Once that is done, we can see that the certificate was successfully uploaded and that in the certificate details the “Thumbprint” is also there.

I closed the Accelerator and now I do not know how to re-export the certificate
It may happen, or at least that’s what happened to those who asked me about this problem, you forget to export the certificate in PFX format when using the DNN Azure Accelerator. Is there another way to export if I closed the assistant and/or deleted the “.cer” file that was created in the wizard folder?
There are several methods to accomplish that, but for simplifying the shortest is:
- In a command line console, type “certmgr.exe” to open the certificates management console in the folder “Personal\Certificates”
- If you remember the “FriendlyName” that you used in the DNN Azure Accelerator, select it. If not or not be sure of which certificate you used on the wizard, you will have to open one by one and select the one with the property “Thumbprint” which matches the error message –the property is on the Details tab page.
- Right-click on “All tasks>Export…” to start the export process mentioned in the previous section
With this, once we have exported and loaded the certificate in the same way as indicated in the previous steps, we can deploy our service without problems.
Hope this helps. More tomorrow!
Después de un mes de enero muy ajetreado ya estoy de vuelta a escribir algunas entradas pendientes que tengo para el blog. Hay mucho que contar después de la sesión de DNN-Cloud en el DNN Europe Task Force Meeting 2012 y que tengo posts pendientes de publicación: cómo hacer upgrades de las instancias en Azure, cómo hacer backups, cómo mover una instancia onpremise a Azure y viceversa, etc. así que empezamos poco a poco.
Para empezar, vamos a ver cómo solucionar un error típico al desplegar DNN sobre Windows Azure, ya que al menos 4 personas me han preguntado cómo solucionarlo. Se trata del mensaje de error que aparece al desplegar el paquete sobre un servicio indicando que no se encuentra el certificado indicado en el archivo de configuración del servicio imposibilitando la ejecución del despliegue:
“The certificate with thumbprint ‘XXXXXXXXXX’ is missing for hosted service ‘YYYY’. Please install the certificate for this hosted service.”
Esto es debido a que no ha subido correctamente el certificado al servicio que vamos a desplegar, que es usado para encriptar las comunicaciones RDP así como posibilitar la configuración de Windows Azure Connect con las instancias.
NOTA: en próximas versiones del DNN Azure Accelerator se solucionará este problema ya que el método de publicación será distinto usando el fichero de configuración proporcionado automáticamente por Windows Azure.
¿A qué certificado se refiere?
El error se refiere al certificado que se usó en el DNN Azure Accelerator para configurar el paso de RDP. De hecho, hay un texto indicando que te asegures de subir este certificado al servicio, pero lo cierto es que no hay mucha ayuda sobre cómo realizar este proceso, ya que si bien actualmente el Accelerator genera automáticamente el certificado en un fichero “.cer” en la carpeta, éste debe ser importado en Windows Azure en formato “.pfx”.

¿Cómo exportamos el certificado en formato PFX?
Para exportar el certificado en formato PFX desde el mismo asistente, seguiremos los pasos siguientes:
- Pulsar el botón “View…” para ver el certificado que ha generado el asistente
- Vamos a la pestaña “Details”. En las propiedades del certificado podemos ver la huella (“Thumbprint”) de este certificado, que es precisamente a la que se refiere el error y que se almacena en el fichero de configuración del servicio.
- Pulsa el botón “Copy to File…” para abrir el asistente de exportación indicando que quieres exportar la clave privada –esto es obligatorio para poder exportar en formato PFX.
- En el paso siguiente, selecciona el tipo de certficado “PFX” y activa las casillas correspondientes a: “Incluir todos los certificados en la ruta de certificación si es posible” y “Exportar todas las propiedades extendidas”. No marques la casilla “Eliminar la clave privada si la exportación tiene éxito”, ya que se refiere a eliminarla de tu equipo local en vez del fichero exportado, con lo que no podrás repetir este proceso a menos que vuelvas a importar el certificado exportado.
- En los pasos siguientes especificamos una contraseña que usaremos para la importación en otros equipos así como en Azure, y finalmente un nombre de archivo para el certificado.

Con esto hemos exportado el fichero PFX.
¿Cómo importamos el certificado en Azure?
Este paso está muy bien documentado en infinidad de sitios web así como en la ayuda de Windows Azure, pero para que el lector no tenga que estar abriendo más páginas –y yo pueda imprimir este procedimiento cuando me haga falta- se resume en:
- Abrir la consola de administración de Windows Azure y acceder a la configuración de los servicios hospedados, seleccionando la carpeta de certificados del servicio que queremos configurar.
- Pulsamos el botón “Add Certificate…” para subir el fichero “.pfx” que hemos exportado especificando la contraseña
Una vez realizada esta operación, podemos ver que el certificado se ha subido con éxito y que en los detalles del certificado se muestra la huella (“Thumbprint”) del mismo.

Cerré el Accelerator y ahora no sé cómo volver a exportar el certificado
Puede ocurrir –o al menos eso fue lo que le pasó a los que me preguntaron por este problema- que te olvides de exportar el certificado en formato PFX. ¿Hay alguna otra forma de exportarlo si ya cerré el asistente y/o eliminé el archivo “.cer” que se crea en la misma carpeta del Accelerator?
La respuesta es que hay varios métodos, pero para simplificar expongo la siguiente:
- En una línea de comandos, ejecutar “certmgr.exe” para abrir la consola de administración de certificados en la carpeta “Personal\Certificates”
- Si nos acordamos del “FriendlyName” que pusimos al crear el certificado con el DNN Azure Accelerator, lo seleccionamos. En caso de no acordarnos o no estar muy seguros de qué certificado usamos en el Accelerator, tendremos que ir abriendo uno por uno y seleccionar el que tenga en la pestaña “Details”, propiedad “Thumbprint” el que coincida con el del error en cuestión.
- Pulsamos con el botón derecho del ratón seleccionamos “Todas las tareas>Exportar…” para iniciar el mismo proceso de exportación comentado en el apartado anterior
Con esto, una vez que hemos exportado y cargado el certificado del mismo modo que se ha indicado en los pasos anteriores, podremos desplegar nuestro servicio sin problemas.
Espero que sirva de ayuda. ¡Mañana más!
Vaya, vaya. No sé ni cómo pero ya ha pasado un año desde que escribí una entrada similar a esta para despedir el 2010. Después de releer la entrada me parece casi mentira que todo lo que me ha pasado en este 2011 haya sido comprimido en un sólo año. Parece que el lema de “pasar a la acción” haya sido uno de los mejores objetivos que me he puesto en mi vida, porque efectivamente, toda acción tiene repercusión, y vaya que si la tiene.
2011 ha sido un año…lleno de acción
Ha sido un año duro, de muchas horas –quizás me quede corto- de trabajo, de noches, fines de semana, festivos…pero hay un refrán que dice que “sarna con gusto no pica”. Nada mejor que hacer lo que más te gusta para que las horas se te pasen volando. Será porque de pequeño en vez de astronauta quería ser arquitecto de software. Vale, ahí me he colado, este concepto no existía aún, pero algo así le expliqué a mi madre cuando bajaba la palanca de la luz para que me desenganchara del MSX. Jugaba con él, y también hacía con los amigos una base de datos de novi@s en BASIC 
Después de un año 2010 en el que había perdido la ilusión, después de toda esta acción ha venido esa famosa repercusión, y la mayoría en forma de buenas noticias y recompensas. No sólo he recuperado esa ilusión perdida, sino que me ha servido para darme cuenta de que nunca es tarde para ser lo que realmente quieres ser.
“Si te sirve de algo, nunca es demasiado tarde para ser quien quieres ser. No hay límite en el tiempo. Empieza cuando quieras. Puedes cambiar o no hacerlo. No hay normas al respecto. De todo podemos sacar una lectura positiva o negativa. Espero que tú saques la positiva. Espero que veas cosas que te sorprendan. Espero que sientas cosas que nunca hayas sentido. Espero que conozcas a personas con otro punto de vista. Espero que vivas una vida de la que te sientas orgulloso. Y si ves que no es así, espero que tengas la fortaleza para empezar de nuevo.”
The Curious Case of Benjamin Button
The Curious Case of Benjamin Button
Gracias a los amigos, a los de siempre y a los nuevos, que ponen la salsa para un viaje inolvidable. Gracias a la familia, por no poder dedicarles todo el tiempo que quisiera y aún así seguir estando a mi lado con el mismo amor. Gracias de nuevo a todos por estar ahí, por compartir este año, por formar parte de mi vida.
Y de nuevo, gracias en especial a Carmen, mi esposa, mi amor y mi compañera, por andar este nuevo camino juntos, ya que sin ti, no podría haberse hecho realidad.
Para acabar y despedir este año 2011, abajo os dejo otro vídeo muy especial, lleno de emoción, realizado en uno de los sitios más bonitos de la Tierra: Tenerife, mi tierra. Os deseo un feliz y PRÓSPERO año 2012 a tod@s.
Un abrazo y hasta mañana.
David Rodríguez
The Mountain - http://www.facebook.com/TSOPhotography
Hoy toca compartir una utilidad muy interesante de esas que se encuentran en la red y que nos facilitan la vida a los desarrolladores que trabajamos con entornos web.
¿Conocías el dominio “dnndev.me”?
El dominio dnndev.me es un dominio registrado en Internet por nuestro amigo Ian Robinson que apunta a la dirección de loopback 127.0.0.1. Y no sólo este dominio, sino que cualquier subdominio *.dnndev.me también lo hace.
Para hacer una prueba, abre una consola de comandos y haz un ping a “<loquetedelagana>.dnndev.me” y comprobarás que siempre responde tu dirección local.

¿Y para qué sirve esto?
Pues para personas que como yo, que trabajamos en desarrollo con más de 30 sitios web en el IIS, cada uno con un binding distinto, con diferentes versiones, etc. editar el fichero de hosts (c:\windows\system32\drivers\etc\hosts) se vuelve una tarea muy tediosa.
De esta manera, puedes configurar en tu IIS un binding en el sitio web, por ejemplo, http://miproyecto.dnndev.me en vez de usar http://localhost/miproyecto o editar el fichero de hosts para introducir http://miproyecto.dev

Gracias a Ian Robinson (ver post original) y a Joe Brinkman por su aportación en esta simple y genial idea.
P.D. no es una inocentada!
Happy coding!
Nada más y nada menos que de la mano de Toni Coll, autor y editor del único libro en español sobre desarrollo sobre la plataforma DotNetNuke, este miércoles 14 de diembre a partir de las 09:30 (GMT+1) vamos a tener el placer de poder conocer a fondo las posibilidades de DotNetNuke y entrando en detalle en la administración del CMS (atención para administradores de DNN!!).
El evento aparte de ser presencial, también se retransmitirá en directo en formato webcast, disponible para su registro en la web de eventos de Microsoft. El registro es completamente gratuito. No dejes pasar esta ocasión.
Os dejo más detalles del evento y el enlace para el registro. Un saludo y happy codding!
Registro en línea
DOTNETNUKE 6 - FRAMEWORK PARA REDUCIR COSTES
Descripción:
DotNetNuke es el proyecto Open Source desarrollado con la tecnología Microsoft .NET líder a nivel mundial. Este CMS permite la creación de potentes aplicaciones web, con miles de extensiones disponibles en su Market Snowcovered.
Agenda:
9:30 – 9:40 Bienvenida y presentación
9:40 – 11:00 Introducción y administración del CMS
11:00 – 11:15 Descanso
11:15 – 12:50 Ediciones comerciales y desarrollo
12:50 – 13:00 Preguntas y Despedida
Ponente:
Toni Coll -Autor y editor del único libro en español, cofundador de la única Comunidad en España, propietario y CEO de 2P Systems (DotNetNuke Affiliate Certified Partner).
Perfil de los participantes:
Directores de empresas TIC, responsables TIC de empresas turísticas, profesionales del sector TIC.
Estudiantes de los últimos cursos de la carrera de Informática.
|
NOTICIA IMPORTANTE DE ULTIMA HORA:
Buenas noticias. Por motivos ajenos a la organización, el evento pasa de ser presencial a formato WebCast, con lo que podrás seguirlo a través de Internet. Repito, NO acudáis físicamente al evento. Todos aquellos que me dijeron que al ser presencial no podían darse la escapada, ya no tienen excusa 
En este enlace tenéis el NUEVO enlace de registro al WebCast.
Registro al WebCast en directo
|
Siguiendo con la ola de eventos de desarrollo en nuestra isla, esta vez tenemos la gran ocasión de poder contar con David Salgado en un día dedicado al desarrollo sobre la plataforma Windows Azure.
¿Y en qué consiste la jornada?
En que nos vamos de acampada. ¿Qué? Bueno, más o menos
La acampada es en el hotel Silken (el hotel Atlántida en la avenida 3 de Mayo, en Santa Cruz de Tenerife). La idea es que Mr. Salgado haga una introducción a Windows Azure, para luego comenzar con laboratorios de desarrollo totalmente prácticos, enfangándonos de barro cantando alrededor del fuego.

Se repartirán cuentas evaluación de Windows Azure a los asistentes para que puedas comenzar a hacer tus pinitos en desarrollo en la nube.
¿Qué tengo que llevar?
Pues como es totalmente práctico, tendréis que traer vuestro propio portátil con algunas cosas instaladas. Habrá algún USB con los requisitos por si alguien se le olvida, pero intentar venir preparado, porque si no, te vas a perder la mitad del laboratorio con las instalaciones.
Requisitos:
Para los laboratorios más genéricos
Windows Vista SP2, Server 2008 SP2, Server 2008 R2 o Windows 7
IIS con ASP.NET habilitado:
Para los laboratorios de federación:
Y si estás interesado en el de PHP:
¿Cuándo es?
¡Mañana! La fecha es el 1 de diciembre de 2011. ¿A qué estás esperando?
Regístrate aquí

¡Sí! ¡El Windows Phone Roadshow en Tenerife! ¿No te habías enterado? Seguro que sí, pero por si aún queda algún rezagado ahí va la buena noticia.
El próximo sábado 26 de noviembre en el salón de actos de la Facultad de Física (Universidad de La Laguna), el Tour del año pasa por nuestra isla, el Windows Phone Roadshow. Gracias a TenerifeDev, la ULL, Microsoft, Intelequia, SDM Programas y Plain Concepts se mostrarán las capacidades de Windows Phone 7.5 Mango y cómo explotarlas desarrollando aplicaciones y juegos.
Si eres desarrollador o estás estudiando para serlo, te interesará conocer el mundo de las plataformas móviles Microsoft de la mano de Josué Yeray, Rafael Serna y Alberto Díaz, expertos en desarrollo con esta nueva plataforma. No te lo puedes perder. Si aún no te has enterado, gran parte del futuro del desarrollo de aplicaciones se encuentra en las plataformas móviles.
¡Habrán muchas sorpresas, regalos y…algún teléfono para los más atentos!
El registro es totalmente gratuito, así que no te puedes perder esta pedazo de ocasión. No olvides circular esta información a quien pudiera interesarle.
Regístrate aquí
Agenda del evento:
09:00-09:30 Registro
09:30-10:30 Por qué Windows Phone?
10:30-12:00 Plataforma de desarrollo de aplicaciones y Juegos
12:00-12:15 Descanso
12.15-13:15 Datos, Servicios y "Live Tiles" (Ventanas Vivas)
13:15-14:00 Capacidades avanzadas de Windows Phone
14:00-15:00 Descanso
15.00-16:00 Multitarea en Windows Phone
16:00-16:15 Descanso
16:15-17:15 Desarrollo paso a paso y publicación de "Zombsquare"
17:15-17:45 Cómo comercializar tus aplicaciones y juegos en el Marketplace
17:45-18:00 Recursos, Ayudas e Iniciativas


La semana que viene comienza en Orlando la DotNetNuke World Conference 2011, la reunión anual donde se congregan los mayores expertos alrededor del CMS donde estaré personalmente.
Este año el número total de de sesiones de la conferencia asciende a 34, bastante para dos días y para ponerlo difícil a los que nos parecen interesantes todas ellas. Los que no podáis asistir podéis registraros para ver el KeyNote en directo de Shaun Walker a través de este enlace.
Respecto a las sesiones sobre la nube y DotNetNuke, nos encontramos con estas tres sesiones específicas en la que me podréis encontrar por si tenéis alguna cuestión que resolver:
1) Leveraging Azure Cloud Services.- sesión para desarrolladores por Philipp Becker, en el que se verá como ejemplo cómo usar las colas de Azure para en procesamiento asíncrono de correos electrónicos del portal.
2) DotNetNuke on Azure Cloud Servers.- sesión de interés general (desarrolladores, administradores, etc.) donde se verá en detalle cómo desplegar instancias de DotNetNuke sobre Windows Azure usando el DNN Azure Accelerator. Bruce Chapman será el encargado de impartir la sesión en la que he estado involucrado personalmente, preparada con la última versión del Accelerator.
3) File System Abstraction and Folder Providers in DotNetNuke 6.0.- sesión dedicada a desarrolladores donde se mostrará cómo extender el sistema de ficheros de DNN con almacenamiento en la nube, como puede ser Azure Storage. Un ejemplo de esto último es el Intelequia DNNFolderProviders.
La agenda completa de la conferencia la podéis encontrar en este enlace, para que podáis decidir qué track os gusta más. Si vais a estar por allí, enviadme un twitt a @davidjrh y quedamos.
Pero esta no es la única novedad de este post.
DotNetNuke Azure Accelerator 6.1
Esta semana, aprovechando la publicación de la versión 6.1 de DotNetNuke, he publicado en CodePlex una nueva versión del Azure Accelerator que reune una serie de nuevas funcionalidades para facilitar el despliegue sobre Azure, en concreto sobre habilitar RDP y Azure Connect sin tener que descargar el código fuente de la solución sino desde dentro del mismo asistente (para más información sobre esto, podéis echar un vistazo a mis dos últimos posts sobre cómo modificar las credenciales de RDP sin Visual Studio y cómo conectar una Azure Cloud Drive a tu equipo).
La lista de nuevas características de esta versión son:
- Incluye la distribución OFICIAL de DotNetNuke 6.1 (nótese que a partir de ahora los módulos que no forman parte del core ya no se incluyen en la descarga y que se instalan a través del mismo portal con el catálogo de extensiones en línea)
- Añadido nuevo paso en el asistente para configurar el acceso RDP (Escritorio Remoto) a todos los roles sin la necesidad de usar Visual Studio 2010
- Los certificados X509 para el acceso RDP se pueden generar a través del mismo asistente
- Moificada la validación de los controles de la interfaz de usuario con un Error Provider (no más ventanas emergentes)
- Añadida validación de contraseñas con la misma política que Azure en el asistente, para que no de problemas al acceder a la base de datos
- Añadidas validaciones para los nombres de los containers de Storage a través de expresiones regulares
- Añadidas cajas de texto para indicar el nombre y tamaño del VHD inicial con el que se desplegará el gestor de contenidos
- Añadidos paquetes de servicios pre-compilados para despliegues con RDP habilitado o sin él
- Añadido un nuevo paquete “Single and Small”, donde todas las instancias son de tamaño Small, todos son webroles y el servidor SMB es la instancia 0
- Todos los paquetes han sido compilados usando el SDK 1.5 de Azure, con lo que se pueden usar todas las características que incluye
- Añadido nuevo paso en el asistente para configurar la Red Virtual (Azure Connect) y permitir así la creación de redes virtuales entre Azure (tus instances de DNN en la nube) y otras máquinas on-premise como tu mismo PC, con lo que puedes acceder a ellas a través del entorno de red de Windows
- Una vez desplegado el servicio, seguirás usando el asistente de instalación oficial de DNN para crear y configurar tu instancia durante la primera ejecución desde tu navegador
- Recuerda que puedes crear tus propios paquetes personalizados de servicios y ponerlos dentro de la carpeta “/packages” del Accelerator para usarlos con el asistente
Os dejo con algunas capturas de los nuevos pasos del asistente y el enlace a la descarga de la nueva versión.
Nos vemos en Orlando.
http://dnnazureaccelerator.codeplex.com


A continuación os dejo los materiales del evento de TenerifeDev “Desarrollando WebApps en la nube”. Felicidades a todos los que se llevaron obsequio de nuestros patrocinadores PluralSight y Telerik.
Imágenes del evento
Vídeo completo de la sesión
Slides
Llevo un rato dándole vueltas a la cabeza a ver qué título le ponía a esta entrada en el blog, porque el amplio abanico de posibilidades que se me están ocurriendo es muy grande. Podría simplemente haberlo titulado “Editando los contenidos de un VHD en Azure desde tu escritorio”, pero es que también “Haciendo un backup en Azure Storage con Drag and Drop” también es válido. Por supuesto, “Cómo actualizar el contenido de tu sitio DNN en Azure desde tu explorador de Windows” es de dónde ha nacido la idea.
Y es que desde mi última entrada sobre cómo editar los contenidos de un VHD en Azure y pensando que aún así debería haber un método más fácil para actualizar los contenidos de un VHD, empecé a barajar la idea de usar el actual servidor SMB del DNN Azure Accelerator mezclado con Windows Azure Connect.
¿Qué es Windows Azure Connect?
Hace tiempo que ya escribí una entrada sobre este servicio de Windows Azure –aún en CTP y gratuito de momento- pero por simplificar, resumámoslo en que es un componente para poder crear redes virtuales entre “tu mundo” y Windows Azure. Con ello consigues, por ejemplo, ver las máquinas que están en la nube como si estuvieran en tu red local: les puedes hacer un ping, puedes ver el equipo a través de la red si tiene habilitada su regla en el firewall...¿cómo? ¿qué puedes ver los equipos en Windows Azure por la red y ver sus ficheros?
Y ahí está el quid de la cuestión. Si ya en el mismo DNN Azure Accelerator los web roles acceden por la red para publicar los contenidos del worker role SMB, ¿por qué no podría conectarme desde mi equipo a esa misma unidad compartida para modificar los contenidos a través de una red virtual creada por Windows Azure Connect?
La respuesta es: ¡Y por qué no! Sí, por supuesto que se puede. Y esta entrada trata de explicar los pasos para configurarlo de forma manual.

¿Qué necesito?
Para poder conectar tu equipo a una unidad VHD en Azure, necesitarás lo siguiente:
- Una suscripción activa a Azure sobre la que vas a desplegar tanto los servicios de computación (servidor de ficheros) como el almacenamiento. Puedes crearte una en http://www.windowsazure.com.
- Un servidor worker role que monte la unidad VHD y la comparta, habilitando el tráfico SMB (puerto 445). La forma más sencilla es montar el paquete DNN Azure Single and ExtraSmall del DNN Azure Accelerator. Si quieres construirte tu propio servicio te recomiendo le eches un vistazo a este post de Dinesh Haridas.
Pasos a seguir
1) Habilitar en la suscripción el servicio Windows Azure Connect. Como ahora mismo aún está en CTP, deberás solicitar su activación a través del menú de “programas BETA” en la consola de administración de Windows Azure. La parte buena es que mientras está en CTP, este servicio es gratuito.

2) Usar el “Relay” de Connect más cercano a tus servicios. Para ello, pulsa sobre el botón “Relay Region” e indica la región más cercana. Supuestamente también usarás la misma región para desplegar tu servidor más adelante.

3) Instalar el cliente de Connect en tu equipo local (o desde donde quieras acceder a tu unidad compartida en la nube). Para ello, accede desde la sección “Red Virtual” de la consola de administración de Azure, y selecciona la suscripción. pulsa sobre el botón “Instalar extremo local”, siguiendo las instrucciones en pantalla.

Una vez instalado, podrás ver en el área de notificación de la barra de tareas de Windows el icono correspondiente al servicio.


4) Obtener un token de activación de Azure para el servidor SMB que se desplegará en Azure. Para ello, pulsamos el botón “Obtener Token de Activación” de la misma consola de Windows Azure. Copiamos el “guid” que nos devuelve en el portapapeles porque lo vamos a usar en el paso siguiente.

5) Desplegar el servidor SMB en Azure conectado con Windows Azure Connect. Tal y como se comentó anteriormente, una forma rápida es usar el paquete DNN Azure Single and ExtraSmall del DNN Azure Accelerator. Sin embargo, el paquete que está compilado e incluido dentro de la descarga, no tiene habilitado Windows Azure Connect –sí lo estará en la próxima versión del Accelerator. Mientras tanto, puedes descargar la última versión del código fuente y abrirlo en Visual Studio 2010, modificando las propiedades de Red Virtual del paquete antes de volver a generarlo.

6) Una vez que hemos desplegado el paquete en Azure (hay un excelente video al respecto, por lo que me voy a saltar esa parte), volvemos a la sección de Red Virtual de la consola de administrador de Windows Azure para habilitar la interconexión entre nuestro equipo y el rol desplegado, creando un nuevo grupo. En la imagen siguiente se muestra un ejemplo donde conecto con dos servidores SMB distintos ubicados en dos servicios distintos (realmente 2 instancias de DotNetNuke en Azure):

7) Con esto, ya deberíamos ver el equipo remoto en la nube ejecutando un simple ping. Para ello, copiamos la dirección IPv6 del equipo remoto de la misma consola de administración, y en una consola de comandos de DOS escribimos ping <direccionIPv6>.


No os asustéis por el ping de la imagen. En el momento de la captura estaba conectado a través de una red 3G y me estaba dando más del doble de tiempo de conexión.
NOTA: en caso de que no haya respuesta de ping, puede ser que nuestro equipo local no tenga habilitada la regla en el firewall. Para ello ejecutamos el comando siguiente:
netsh advfirewall firewall add rule name="ICMPv6" dir=in action=allow enable=yes protocol=icmpv6
Para resolver más problemas de conectividad, puedes consultar el enlace siguiente: http://msdn.microsoft.com/en-us/library/gg433016.aspx
8) Mapear la unidad de red a nuestro equipo local. Para ello, abrimos en el explorador de Windows la ventana de “Conectar nueva unidad de red...”, introduciendo la ruta: \\<IPv6>.ipv6-literal.net\<carpeta>, donde <IPv6> es la dirección remota a la que hemos hecho ping en el paso anterior sustituyendo el carácter “:” por “-“ (es la nomenclatura para el comando “net use”), y <carpeta> es el nombre del recurso compartido. Las credenciales usadas son las mismas que usamos al desplegar el servicio en Azure (ver fichero de configuración del servicio desplegado).


Opcional: yo he usado el archivo c:\windows\system32\drivers\etc\host, añadiendo un alias para la IPv6 con un nombre más común. Así sé qué unidad es de cada servidor sin tener que recordar la IPv6. También hay que tener en cuenta que esta IPv6 puede cambiar al reiniciarse el servidor por cualquier motivo, por lo que éste último paso 8 habría que repetirlo de nuevo. Una opción podría ser crear una aplicación cliente que detectara estos cambios y que hiciera un “remap” de las unidades automáticamente.

Conclusiones
El resultado es el poder modificar el contenido del VHD directamente desde nuestro equipo. Las posibilidades se me amontonan en la cabeza. Siempre hay que tener en cuenta que trabajaremos con nuestro ancho de banda a Internet –que por cierto, va impresionantemente bien con una conexión lenta-, por lo que para operaciones “grandes” de copia/pega de archivos sobre la misma unidad, compresión masiva de carpetas, etc. es recomendable conectarse al servidor SMB vía escritorio remoto.
Respecto al DNN Azure Accelerator, comenzaré a trabajar para poner un paso en el asistente para no tener que volver a recompilar el paquete en Visual Studio, tal y como hice con el paso de configuración RDP. En breve estará disponible.
Algunas reflexiones
- Sabiendo que la facturación del espacio consumido por los VHD (Page Blobs) es por “espacio ocupado” (las páginas vacías del VHD no se cobran), ¿te has parado a pensar que podrías tener unidades virtuales en Azure Storage de 1Tb (1.000Gb) cada una en la que Microsoft sólo te cobraría por el espacio utilizado? Si borras ficheros del disco (y lo mantienes desfragmentado), te baja la factura
- ¿Qué tal funcionarán los sistemas de backups tradicionales con una unidad de red montada de este modo? Está claro que aquí el cuello de botella lo impone el ancho de banda de tu conexión a Internet, pero normalmente los programas de copias de seguridad realizan modificaciones incrementales ==> Esto tengo que probarlo
- Tal y como comentó Joe Brinkman, actualizar tu web de DotNetNuke se convierte en cosa de niños simplemente copiando y pegando archivos a través del mismo explorador de Windows:
- ¿Qué tal funcionaría una instancia ExtraSmall si sólo es para servir ficheros a través de la red?
Ya sólo faltaría algún método de alta disponibilidad para el servidor SMB...pero eso también está a punto de llegar...
Espero que sea de utilidad. Para mí lo es...¡y mucho!
Uno de los principales problemas que se ha encontrado la gente al gestionar una aplicación en Azure es el no poder habilitar de una forma sencilla la conexión a escritorio remoto. ¿A qué me refiero con sencilla? Pues a no tener que descargar Visual Studio 2010 sólo para generar el paquete con las credenciales de acceso y generar el certificado X509 con el que se encriptan las mismas.
Y es que aunque Visual Studio nos automatiza mucho esta tarea, hay perfiles “no desarrolladores” (por ejemplo, nuestros compis de IT) que no suelen tener instalado Visual Studio en sus equipos, aunque posiblemente sí se tengan que encargar del depliegue y gestión de roles en Azure (¿ha llegado ese momento?).
Para ello usaremos:
- Utilidad makecert.exe, para generar los certificados
- Consola de comandos de PowerShell
NOTA: el paquete “cspkg” a desplegar en Azure estará “compilado” como que tiene RDP habilitado (es decir, que el fichero de definición del servicio tiene importado los espacios de nombres de RemoteAccess, etc.). Aquí lo que se trata es de poder usar otras credenciales que las que se crearon en tiempo de compilación, así como otro certificado.
Generando manualmente el certificado X509
1) Crear un certificado a través de línea de comandos con la utilidad “makecert.exe”, haciendo exportable la clave:
makecert.exe -r -pe -a sha1 -ss My -len 2048 -sky exchange -n "CN=Azure Deployment" mycertificate.cer

Es importante indicar el parámetro “-sky exchange” ya que si no nos encontraremos con el error “The remote desktop certificate with thumbprint ‘xxx’ does not have a type of key exchange and cannot be used for decryption” al intentar usar este certificado en Azure.
2) Exportar el certificado en formato “PFX” para subirlo y asociarlo al servicio en Azure. Para ello:
- Abrimos el gestor de certificados desde una consolad e comandos tecleando “certmgr.msc”
- Localizamos el certificado que acabamos de generar y pulsamos el botón “Exportar” para abrir el asistente de exportación
- Seguimos las instrucciones del asistente, exportando la clave privada así como todas las propiedades extendidas del certificado
- Finalmente introducimos una contraseña que usaremos en el momento de importarlo en Azure y un nombre de fichero “.pfx”
3) Importar el certificado en Windows Azure a través de la consola de administración de Azure. Importamos el certificado pulsando botón derecho sobre el servicio y agregando el fichero y su contraseña que hemos generado:

Generar la contraseña encriptada
El siguiente paso, es generar la contraseña que deseemos para nuestras credenciales RDP. Una de las formas más sencillas, para los amantes de PowerShell, es a través de la consola usando los pasos siguientes:
1) Abrir una consola de comandos PowerShell, a través de Inicio>Accesorios>Windows PowerShell (ejecutar como “Administrador” pulsando el botón derecho sobre el icono)
2) Ejecutar los comandos siguientes pulsando Enter después de cada línea:
[Reflection.Assembly]::LoadWithPartialName("System.Security")
$pass = [Text.Encoding]::UTF8.GetBytes("<Password>")
$content = new-object Security.Cryptography.Pkcs.ContentInfo –argumentList (,$pass)
$env = new-object Security.Cryptography.Pkcs.EnvelopedCms $content
$env.Encrypt((new-object System.Security.Cryptography.Pkcs.CmsRecipient(gi cert:\CurrentUser\My\<Thumbprint>)))
[Convert]::ToBase64String($env.Encode())
Recuerda cambiar el valor "<Password>” por la contraseña que desees. También debes modificar el valor “<Thumbprint>” por la huella del certificado que generaste en la sección anterior. La forma más sencilla de encontrar este valor es en el panel de control de Windows Azure, seleccionando el certificado y viendo las propiedades en la barra lateral derecha:

3) Copia esa información en el Notepad, eliminando los caracteres de nueva línea.

Introduciendo los valores en el fichero de configuración del servicio
Finalmente, con los valores anteriores, abrimos el fichero de configuración del servicio (.cscfg) y modificamos los valores solicitados:

Indicar que la fecha de expiración de la cuenta debe estar en formato ISO 8601 “yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK”.
Conclusión
Como hemos visto, hemos realizado todo el proceso sin tener que tocar Visual Studio. Del mismo modo, todo este proceso puede automatizarse programáticamente a través de .NET, creando una simple utilidad para facilitar las labores a nuestros compañeros.
Un ejemplo de esta implementación, es el nuevo paso en el asistente del DNN Azure Accelerator en el que se simplifica la generación del certificado, se solicitan estas credenciales y se encriptan en un sólo paso (idéntico al que está en Visual Studio 2010!!).
Os dejo con dos capturas de pantalla como avance. Lo subiré a CodePlex en breve:


Espero que sirva de ayuda.
Un saludo a todos.
AVISO: Cambio de hora a las 16:00 GMT+0 y con posibilidad de verlo por webcast en directo. Ver detalles más abajo.
Si tienes problemas con el enlace del correo de confirmación del webcast, usa este (se abre a las 15:30) https://www.livemeeting.com/cc/_XML/wwe_uk/join?id=1032496233&role=attend&pw=97480C47
Tras la breve pausa veraniega, volvemos a retomar las charlas en TenerifeDev sobre tecnologías .NET. Vamos a comenzar con una charla sobre el desarrollo de aplicaciones web sobre Windows Azure usando el gestor de contenidos DotNetNuke.
Si alguien asistió a la charla en la TLP2k11 o al CMS Azure RoadShow de Julio que no se preocupe, porque esta vez nos centraremos en aspectos más técnicos: cómo crear una extensión para DotNetNuke con Visual Studio 2010 –o sea, una aplicación sobre DNN-, cómo desplegarla en Azure y/o distribuirla e incluso cómo llegar a ganar dinero con ello.
Por supuesto veremos algunas de las mayores novedades de DNN 6.0 (C#, jQuery, acelerador para Windows Azure, etc.) y como no, sortearemos algunos regalos de nuestros patrocinadores. Recordar que en la última charla Telerik repartió licencias de su suite de controles para ASP.NET y Windows Phone 7. Felicidades a C. Martin y Marcos G.D. que fueron los agraciados. Pluralsight no se quedó atrás y repartió 1 mes de regalo de toda su oferta de cursos en línea a todos los asistentes.
Os dejo los detalles de la charla. No podéis faltar.
P.D. la de Windows 8…en breve, cuando a Alberto deje de caérsele la baba 
Evento TenerifeDev - Desarrollando aplicaciones web en la nube
Fecha y hora: 7 de octubre de 2011, de 16:00 a 17:30 GMT+0
Lugar: Salón de grados de la Escuela Técnica Superior de Ingeniería Informática (ETSII)
Descripción: DotNetNuke es un proyecto open source, la plaforma de gestión de contenidos para la construcción de sitios y aplicaciones web basada en Microsoft .NET más ampliamente adoptada a nivel global. Las organizaciones usan DotNetNuke para desarrollar y desplegar rápidamente sitios web interactivos y dinámicos, intranets, extranets y aplicaciones web. Con el soporte para granjas de servidores y el DotNetNuke Azure Accelerator, se presenta sobre Windows Azure como una solución de gestión elástica de contenidos en la nube.
Ponente: David Rodríguez
URL para registro del webcast en directo:
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496233&Culture=es-ES
Now that a new DNN upgrade package has been released, perhaps you are interested in how to modify your DNN instance to upgrade the contents to the latest release.
Some people are doing this work downloading the full VHD, updating it locally and the uploading it again to Azure Storage. I don’t use this method, but I’ll explain how to do it and how I do it.
Downloading, modifying, uploading
If you want to download the VHD and make the changes on your development environment, you will need a tool that can download/upload PAGE BLOBS.
Method 1: Use a graphical tool
Cerebrata is working on a specific tool for this task that is name Azure Page Blob Manager. You can check it here (is still in beta and you can download and use it)

Features
As the name suggests, this utility is specifically designed to manage Windows Azure Page Blobs. At a very high level here is what you can do with this utility:
- You can view the contents of a page blob mounted as an Azure Drive. This is probably the neatest feature of this utility. Basically this utility creates an empty VHD on your computer and then downloads the occupied pages of the page blob and then mounts the VHD on your computer as a drive so that you can see the files contained in the page blob.
- You can upload VHDs in Windows Azure Blob storage as page blobs.
- You can download page blobs.
- You can view the total size of the page blob and also the space currently occupied by the page blob (which would tell you how much are you being charged for this particular page blob).
- You can see how many pages in the page blob are occupied (blue boxes in the screenshot below). Each box below represents 1/400th of the total page blob size. Clicking on the blue box will tell you how many bytes are occupied.
- This utility will list the page blobs only.
Method 2: use a command line tool
You can also download/upload the VHD using a command line tool like “AccelCon.exe” that was included in the original DNN Azure Accelerator package (developed by Slalom Consulting). This tool is not included on the latest build so you can download it from this link:

You can upload the VHD as a page blob using this command line syntax:
accelcon.exe /u /v ".\DotNetNuke.vhd" "azure-accelerator-drives/dotnetnuke.vhd"
Method 3: Why to download the VHD?
If you enable RDP, you can copy/paste contents and many other things. When I need to upgrade the contents (i.e. when a new upgrade release is delivered), I usually:
- connect via RDP to one instance
- navigate to Codeplex and download the upgrade package (web navigation is enabled inside the roles)
- extract the update into the drive.

I usually copy the contents to another folder (for backup purposes) and execute and create a copy of the database (T-SQL: create database … as copy of …), so I can repeat/regress the process quickly is something fails. I do all this work via RDP. In order to enable RDP, at this moment you need to recompile the package (see documentation), but I highly recommend it for this and other purposes.
Some new features will be announced respect to this on the next release of the DNN Azure Accelerator, so stay tuned :)
Ahora que ha salido un nuevo paquete de actualización de DNN, quizás estés interesado en cómo modificar tu instancia de DNN en Azure para actualizar los contenidos a esta última versión.
Según tengo entendido, mucha gente está realizando esta operación descargando localmente una copia del VHD, actualizándolo en el entorno de desarrollo y volviendo a subir de nuevo el VHD a Azure. Personalmente no use este método, pero explicaré cómo realizarlo y luego los pasos que sigo yo para actualizar mis instancias.
Descargar, modificar, subir
Si deseas realizar el trabajo mediante la descarga local del VHD realizando los cambios en tu entorno de desarrollo, necesitarás una herramienta capaz de descargar/subir PAGE BLOBS. A diferencia de los blobs normales –block blobs-, las VHD usan otro tipo de blobs que normalmente no todas las herramientas que trabajan con Azure lo soportan.
Método 1: Usa una herramienta de interfaz gráfica
Cerebrata está trabajando en una herramienta específica para esta tarea llamadaAzure Page Blob Manager. Puedes descargarla aquí (todavía está en beta y puedes descargarla y usarla).

Características
Esta utilidad está específicamente diseñada para administrar Page Blobs de Windows Azure. A muy alto nivel, esto es lo que puedes hacer con esta herramienta:
- Puedes ver los contenidos de un page blob montado como una Azure Drive. Probablemente este es uno de las mejores características de esta utilidad. Básicamente esta utilidad crea un VHD vacío en tu equipo local y descarga las páginas ocupadas del page blob para finalmente montar el VHD localmente como una unidad para que puedas ver los ficheros que contiene el page blob.
- Puedes subir VHDs a Windows Azure como page blobs.
- Puedes descargar page blobs.
- Puedes ver el tamaño total del page blob así como el espacio ocupado actualmente por el page blob (que te debería indicar cuánto te están facturando actualmente por este page blob en particular).
- Puedes ver cuántas páginas están ocupadas en el page blob están ocupadas (las cajas azules en la captura de pantalla). Cada caja representa 1/400avo del total del tamaño total del page blob. Pulsando sobre una caja azul te dirá cuántos bytes están ocupados.
- Esta utilidad sólo listará los page blobs.
Método 2: usa una herramienta de línea de comandos
También puedes descargar/subir el VHD usando una herramienta de línea de comandos como “AccelCon.exe” que fue incluida en el paquete original de DNN Azure Accelerator (desarrollada por Slalom Consulting). Esta herramienta no está incluida en el último distribuible así que la he puesto a descarga en este enlace:

Puedes subir el VHD como un page blob usando esta sintáxis:
accelcon.exe /u /v ".\DotNetNuke.vhd" "azure-accelerator-drives/dotnetnuke.vhd"
Método 3: ¿Por qué descargar el VHD?
Si habilitas RDP (escritorio remoto), puedes copiar/pegar contenidos y muchas otras tareas. Personalmente, cuando necesito actualizar los contenidos por un cambio de versión de DNN, normalmente::
- conecto vía RDP a una instancia
- navego a Codeplex y descargo el paquete de actualización (se puede navegar desde dentro de los roles)
- descomprimo la actualización dentro de la unidad

Normalmente copio los contenidos a otra carpeta en la unidad (para backup) y creo una copia de seguridad de la base de datos (T-SQL: create database … as copy of …), de manera que pueda repetir/deshacer rápidamente la operación si algo va mal. Todo esto vía RDP. Para habilitar RDP, actualmente necesitas recompilar el paquete a desplegar en Azure para introducir los credenciales y el certificado con el que se encriptan (ver documentación), pero es algo altamente recomendable para ésta y otras tareas.
En breve se anunciarán nuevas carcterísticas del DNN Azure Accelerator respecto a estas tareas de actualización, así que permanece en sintonía.
Un saludo.
Ayer Joe Brinkman, cofundador de DotNetNuke Corp. publicó un video muy detallado de cómo desplegar DotNetNuke sobre Windows Azure usando el DNN Azure Accelerator.
El vídeo es altamente recomendable para todos aquellos que quieran profundizar sobre cómo realizar un despliegue de DotNetNuke sobre Windows Azure. Se explica detalladamente durante 25 minutos los detalles y el paso a paso, además de realizar una introducción a la arquitectura desplegada.
Sin más, os dejo con él. Saludos y buen fin de semana.

Más artículos
< Página anterior -
Página siguiente >