DotNetNuke 6.0: Fix para el módulo de Dashboard en Azure

Esta es una entrada corta en el blog para aquellos que tengan DNN 6.0 en Azure y no puedan acceder al módulo de Dashboard. Hay un procedimiento almacenado que seguía sin ser compatible con SQL Azure en este módulo ya que acceder a “sysfiles”.

Como ya sabrán, en SQL Azure al ser un servicio multi-tenant no hay información sobre los ficheros físicos de SQL, por lo que esta sintaxis genera un error.

ALTER procedure [dbo].[Dashboard_GetDbFileInfo]
AS
    
    SELECT 
        CASE LOWER(RIGHT(filename,3))
            WHEN 'mdf' THEN 'DATA'
            WHEN 'ldf' THEN 'LOG'
            ELSE 'UNKNOWN'
        END as FileType,
        Name,
        size*8 as Size,
        filename
    FROM sysfiles


GO

Para solucionarlo, modificamos el procedimiento almacenado de la siguiente manera, para que sirva tanto en entorno SQL Azure como on-premise:

ALTER procedure [dbo].[Dashboard_GetDbFileInfo]
AS
    
IF ServerProperty('Edition') = 'SQL Azure' 
    BEGIN
        SELECT 
            'DATA' as FileType,
            db_name() as Name,
            (8.0 * SUM(reserved_page_count)) as Size,
            'c:...Not_accesible_on_SQL_Azure.mdf' as Filename
        FROM sys.dm_db_partition_stats    
    END
ELSE
    BEGIN
        EXECUTE sp_executesql N'SELECT 
            CASE LOWER(RIGHT(filename,3))
                WHEN ''mdf'' THEN ''DATA''
                WHEN ''ldf'' THEN ''LOG''
                ELSE ''UNKNOWN''
            END as FileType,
            Name,
            size*8 as Size,
            filename
        FROM sys.files'
    END

GO
Una vez modificado el procedimiento almacenado, ya podemos acceder al módulo de Dashboard para comprobar todos los parámetros de nuestra instancia de DotNetNuke.
Dashboard fix
Espero que sirva de ayuda (o por lo menos para acordarme yo mismo de esto).

Un saludo.

Migración manual de BPOS a Office 365: dos cosas que deberías saber

office_365Después de tanto hablar de DotNetNuke y Azure, me veo en la necesidad de compartir unos comentarios sobre la migración manual que hemos realizado en nuestra empresa desde BPOS a Office 365, la suite de productividad de Microsoft en la nube.

Antes de empezar, recordar que la migración de BPOS a Office 365, desde el punto de vista del usuario/cliente, realmente es automática y que simplemente hay que ceñirse a cumplir los requerimientos de la nueva versión O365 después de haberlo planificado con Microsoft. Esta planificación se realiza una vez que el equipo de soporte de Microsoft se ponga en contacto con el contacto técnico cliente y tiene el plazo de un año para actualizar los equipos cliente a los nuevos requerimientos. Desde el punto de vista del servidor, no hay que realizar nada ya que es la propia Microsoft la que se encarga de la migración de buzones, sitios de Sharepoint, etc.

El principal problema es que parece que Microsoft está dando fecha para principios de 2012 como comienzo de estas migraciones de BPOS a 365, con lo que si no hay alternativa habría que esperar a este hito en el calendario.

¿Y entonces qué significa eso de Migración Manual?

A los que nos gusta estar a la última, ya sea por capricho o por necesidad de mostrar la última tecnología a nuestros clientes demostrando que usamos los mismos productos que vendemos, se nos antoja que al estar disponible Office 365, queremos usarlo en nuestro día a día y no sólo para las demos.

¿Es posible migrar nuestros servicios de BPOS a Office 365 sin tener que esperar a 2012? La respuesta es sí. Pero –todo tiene un pero- la migración recae en el lado del cliente y no está soportada por Microsoft. Tengo que comentar que realmente con lo de “soportada” se refieren a que no les puedes solicitar algo como “mígrame este buzón” o cosas así, pero sí que dan soporte a los problemas surgidos durante una migración manual, como ha sido nuestro caso. Mis más sinceras felicitaciones al equipo de soporte por su eficacia y buen hacer.

¿Cómo se realiza una migración manual de BPOS a O365?

Hay varios métodos, desde el más manual hasta alguno automatizado con herramientas de terceros como MigrationWiz. Como el número de buzones que teníamos que migrar era relativamente bajo, decidimos que podíamos hacerlo de forma manual siguiendo el paso a paso descrito en el siguiente enlace:

No voy a repetir aquí cada uno de los pasos a realizar, sino que más bien voy a destacar las incidencias más importantes que tuvimos y su resolución, ya que para la segunda ni siquiera encontré solución en los foros de 365.

A destacar…

El elemento más destacable, es que el proceso de migración manual, se haga como se haga, implica un “micro-corte” en el servicio. Esto es debido a que cuando inicias el asistente de creación de entradas DNS en Office 365, éste comprueba internamente si el dominio está dado de alta en BPOS. Si es así, te obliga a eliminar el dominio primero de BPOS para luego darlo de alta en 365, con lo que el corte durará lo que tardes en realizar estos pasos y se repliquen las entradas MX de los registros DNS. Cualquier correo entrante durante ese periodo de tiempo no podrá ser entregado (con los salientes no hay problema).

Esto en teoría puede llegar a tardar hasta 72h. En la práctica a la hora y media, más o menos, ya casi está completamente operativo. Es por ello que es ideal elegir un momento de menos actividad para realizar esta migración manual.

Dos cosas que deberías saber…

Si te decides a realizar esta migración manual, quisiera compartir estas dos incidencias y su resolución, ya que han tenido que ser resueltas a través de soporte creando tickets en el servicio:

  1. Una vez replicados los registros MX de los DNS, cualquier correo entrante es devuelto con el mensaje de error “Relay Access Denied” (smtp;550 5.4.1 Relay Access Denied). Este error es debido a que al eliminar el dominio de BPOS, la información relacionada al dominio en los servicios de antispam no son eliminados (FOPE – Forefront) e impide que cualquier correo dirigido al dominio se reenvíe correctamente. Para solucionarlo, a fecha de hoy la única alternativa es poniéndose en contacto por teléfono con el servicio de soporte de FOPE en el teléfono de USA +001-866-676-6546, pulsando las opciones 1,1,2,2 y solicitar que eliminen los remanentes del dominio. Aconsejo crear un ticket de servicio primero desde BPOS porque te van a pedir confirmación por escrito vía ticket para que quede documentado.
    Para más información sobre este error, ver estos enlaces:
  2. Una vez que comienzan a llegar los correos a Office 365, los correos con origen desde BPOS llegan al antiguo servicio de BPOS en vez de al O365. Este error sí que nos trajo de cabeza…y a los de soporte BPOS también. Resulta que cualquier mensaje que cuyo origen fuera de alguien que también usara los servicios BPOS en la región EMEA (ojo, que los de soporte de USA sí entraban correctamente en O365) llegaban a nuestros antiguos buzones de BPOS en vez de a los de O365. ¿Cómo era posible si ya había pasado casi 1 semana y las entradas DNS supuestamente se habían replicado correctamente?
    Después de indagar mucho y no encontrar nada relacionado, la técnico de soporte de BPOS tuvo buenos ojos en detectar que se habían quedado los alias en los usuarios en el servicio de BPOS y me dijo que probara a eliminarlos. Esto quiere decir que, aunque elimines el dominio de BPOS, los alias de los usuarios de dicho dominio también han de eliminarse manualmente, ya que no se hace de forma automática. Una vez eliminados los alias del anterior dominio, los correos comenzaron a entrar correctamente en O365.
    Eliminar Alias en BPOS
    Esta incidencia entiendo que se da porque parece que el servicio de BPOS (y supongo que el de O365 de forma similar) usa un servicio de directorio global –o por lo menos uno por cada región: EMEA, etc.- y los alias de las direcciones se resuelven internamente en el momento de construir los mensajes de correo, por lo que si había un alias de un dominio anterior, se traduce como que se redirija al buzón antiguo. Curioso.
    EDIT 15/08/2011: Lo mismo pasa con las listas de distribución (parece que son globales dentro de este servicio de directorio dentro de EMEA). Elimina todas las listas de distribución de BPOS referidas al dominio migrado, ya que si no los correos desde BPOS a estas listas de distribución se quedarán igualmente dentro de BPOS.

Después de una semana trabajando con Office 365, tenemos que decir que estamos muy satisfechos con la migración y con las nuevas características. A mí me gusta una que puede parecer una chorrada, pero ver cómo pueden trabajar varias personas a la vez sobre un mismo documento Word es alucinante a la vez que productivo.

Espero que esta información sirva de ayuda.

Un saludo.

Disponible fix para el paquete de actualización a DNN 6.0 en Windows Azure

SQLAzure_200_thumb[1]Al intentar actualizar en Windows Azure una instancia de DotNetNuke desde la versión 05.06.03 a la 06.00.00 usando el paquete oficial de actualización, te encontrarás con el siguiente error:

Upgrading from 05.06.03 to 06.00.00_thumb[2]

En el enlace siguiente puedes descargar un documento con la vista detallada de estos errores http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857

El resumen de los mismos son referidos a incompatibilidades con SQL Azure del paquete de actualización (el de primera instalación funcionaba sin problemas):

Stored Procedure “GetFile”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetFileById”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetAllFiles”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetFiles”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Creating PK on “PortalLocalization”

Table ‘PortalLocalization’ already has a primary key defined on it.

Stored Procedure “GetVendorsByEmail”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetBanner”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Para solucionarlo, puedes seguir una de estas dos propuestas:

Hope this helps,

David Rodriguez

DNN 6.0 upgrade package fix available for Azure

SQLAzure_200When trying to upgrade a DotNetNuke instance from 05.06.03 to 06.00.00 on Windows Azure using the official distribution upgrade package, you will encounter the following error:

Upgrading from 05.06.03 to 06.00.00 on Azure

A detailed view of these erros can be found at http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857

The summary of SQL Azure incompatible issues are:

Stored Procedure “GetFile”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetFileById”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetAllFiles”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetFiles”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Creating PK on “PortalLocalization”

Table ‘PortalLocalization’ already has a primary key defined on it.

Stored Procedure “GetVendorsByEmail”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

Stored Procedure “GetBanner”

Deprecated feature ‘String literals as column aliases’ is not supported in this version of SQL Server.

You can follow one of these solutions:

Hope this helps,

David Rodriguez

DotNetNuke Azure Accelerator 6.0 listo para descarga!

DNN6 WheelDespués de un duro trabajo corrigiendo los paquetes de instalación de los módulos opcionales de DNN6 para que funcionaran con SQL Azure, el nuevo acelerador de DotNetNuke 6.0 ya está disponible en Codeplex con una serie de nuevas e interesantes características.

La mejor característica de todas, por supuesto, es que permite publicar DotNetNuke 6.0 en windows Azure. ¿Quieres saber más? Sigue este enlace al proyecto DNN Azure Accelerator:

http://dnnazureaccelerator.codeplex.com 

Nuevas características de esta versión

  • Incluye un paquete de distribución modificado de DNN6 con las correcciones a los módulos opcionales para que sean compatibles con SQL Azure (revisa el documento al respecto en Codeplex para más detalles)
  • El rol SMB creará, la unidad VHD dinámicamente la primera vez que se acceda a la aplicación en la nube, siempre que ésta no exista, con lo que ya no hará falta subir una unidad VHD preconfigurada on-premise
  • Decrementado el tamaño de la subida de paquetes de 272Mb a 37Mb (despliegues más rápidos!!)
  • Después de la creación del VHD, el rol SMB descargará desde el Azure Storage el paquete de distribución descomprimiéndolo dentro de la unidad
  • Usarás el asistente oficial de instalación y configuración de DotNetNuke la primera vez que accedas desde tu navegador
  • Modificado el método de carga de archivos para que funcione correctamente en conexiones con bajo ancho de banda (eliminada la utilidad Accelcon.exe de la solución)
  • Ahora puedes seleccionar qué paquetes de servicio quieres subir a almacenamiento desde el asistente del acelerador
  • Puedes recompilar tus propios paquetes de servicio y ponerlos dentro de la carpeta “/packages” para que el asistente los procese y los suba a Azure

Algunas capturas de pantalla

Usando el asistente para crear instancias de DotNetNukeUsing the wizard to create the DotNetNuke instances

Seleccionando módulos opcionales en la primera ejecución
Selecting non-core modules on first Azure instance run

Ejecutando el asistente de instalación desde mi iPad Sonrisa
Running the installation Wizard from my iPad

El módulo de blogs de DNN 6.0 funcionando en Windows AzureDNN6Azure

DNN Azure Accelerator 6.0 is coming!

Hi all,

DotNetNukeGearwhile upgrading the DotNetNuke Azure Accelerator to the latest version (6.0), I’ve detected that while the core modules are working fine the extra-modules that comes with the DNN package are not SQL Azure compliant.

Since the previous DNN Azure Accelerator package came with all this modules available on Azure, the most reasonable solution is to create a fix for the official distribution package. I hope that the documentation generated on this process can help the module project leaders to fix the official packages in the next release.

The need for the fix is based on that the next version of the DNN Azure Accelerator will introduce the next characteristics:

  • The DNN6 distribution package with the SQL Azure fixes will be uploaded to storage (zipped).
  • The SMB role will create the VHD dynamically on the first run if not exists, so there will be no need to upload a huge blob (deployments will be faster!!)
  • After the VHD creation, the SMB role will download from the Storage the distribution package and unzip it to the VHD drive
  • You will use the official DNN installation wizard to create and configure the DNN instance (I’ve deployed one from my iPad!)
  • Creating new installations should be easy, using the same uploaded package.
  • For upgrading the installation, a similar “dnn6.X.zip” package will be checked

I’ll be refreshing this blog and this site running on «DNN 6.0 – Azure» with more info. I hope that all this work be completed in a week or so.

Time to work!!

 

Providers

DotNetNuke ASP2 Menu Navigation Provider

OK

DotNetNuke DNN DropDown Navigation Provider

OK

Telerik Editor Provider

OK

 

Modules

Announcements

FAIL! > Fixed – Check here

Blogs

FAIL! > Fixed – Check here

Razor Host

OK

Documents

FAIL! > Fixed – Check here

FAQs

FAIL! > Fixed – Check here

Events

FAIL! > Fixed – Check here

Feedback

FAIL! > Fixed – Check here

Form and List

FAIL! > Fixed – Check here

Forum

FAIL! > Fixed – Check here

Help

FAIL! > Fixed – Check here

IFrame

OK

Links

FAIL! > Fixed – Check here

Map

FAIL! > Fixed – Check here

Media

FAIL! > Fixed – Check here

News Feeds (RSS)

FAIL! > Fixed – Check here

Reports

FAIL! > Fixed – Check here

Repository

FAIL! > Fixed – Check here

Store Admin

FAIL! > Fixed – Check here

Survey

FAIL! > Fixed – Check here

Users Online

OK

Wiki

FAIL! > Fixed – Check here

XML Module

FAIL! > Fixed – Check here

 

Authentication Systems

DNN_ActiveDirectoryAuthentication

OK

Evento: Office365, DotNetNuke y Windows Azure en la Tenerife LAN Party

TLPInnova2011Logo

Aprovechando que esta semana ya está en marcha la Tenerife LAN Party 2011, dentro de las jornadas profesionales TLP+Innova vamos a apoyar desde TenerifeDev con dos charlas sobre los servicios que ofrece Microsoft en la nube.

Hay muchísimas sesiones interesantes y os aconsejamos que no os perdáis ninguna. Los enlaces para ver las sesiones y la agenda son los siguientes:

Así mismo, os recomendamos que os inscribáis como profesionales para acceder a estas sesiones, a través de este enlace.

Los datos de las sesiones de TenerifeDev son las siguientes:

Office 365. Los servicios en la nube

Día: Jueves 21 de Julio a las 11

Ponente: Alberto Diaz Martin

Office 365 Es poder obtener acceso al correo electrónico, documentos, contactos y calendarios en cualquier lugar, lo que le permite estar siempre al día. Son las conocidas aplicaciones de productividad de Microsoft que ya usa su equipo. Es confiabilidad y seguridad de calidad empresarial. Es ofrecer eficiencia y control de TI para adaptarse a las exclusivas necesidades de su organización. Y es un servicio integral de pago por uso con un precio asequible. Pero esto es solo el comienzo. Vente y súbete con nosotros a la nube empresarial.

DotNetNuke: CMS y plataforma de aplicaciones en Windows Azure

Día: Jueves 21 de Julio a las 12

Ponente: David J. Rodriguez

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.

¡Por cierto, antes de la despedida, comentar que habrán sorpresas de los patrocinadores de TenerifeDev!

pluralsight150                 telerik150

Nos vemos el jueves!!!

Materiales del evento CMS Azure RoadShow

DNNGearBuenas! Después de algo de tiempo sin poder parar para escribir algunas líneas en el blog, la lista de tareas pendientes se acumula y hay que ir tachando (qué bien te quedas cuando tachas algo, me recuerda a cuando estallabas las bolitas de plástico de los envoltorios…que por cierto, parece que han desaparecido).

Uno de los temas pendientes que tenía era pasaros los materiales del evento del CMS Azure RoadShow de la semana pasada. Abajo os pongo un enlace con la presentación en SlideShare para los que quieran repasar algo.

Respecto a los vídeos de las sesiones, según me han comentado GlobbTV está trabajando en la realización de los vídeos y estarán disponibles en breve en esta dirección http://www.globbtv.com/microsite.aspx?id=12&cmd=0&cat=189

Por cierto, con la salida inminente de DNN6 el Accelerator está cobrando más importancia para el despliegue en Azure. Si estás en marcha con un proyecto con DNN y Azure podrán resultarte de gran interés. Podéis acceder a ellas en CodePlex desde este enlace.

Un saludo.

[Evento] CMS en Azure. Una combinación que te convencerá

El próximo 5 de Julio, en Madrid o desde tu casa, podrás asistir un evento de la gira Windows Azure CMS RoadShow que ha llegado a Europa. Los eventos van a tener lugar en Bélgica (24 junio); Dinamarca (20 junio); Noruega (22 junio); Praga, República Checa (28 junio); Atenas, Grecia (29 junio); Moscú, Rusia (30 junio) y finaliza con España (5 de julio)

Durante el evento podrás descubrir lo fácil que es construir y migrar tus portales preferidos a Azure.

Lo verás de una forma práctica con experiencias de clientes y Partners en la plataforma Azure con Portal Builder, Umbraco, DotNetNuke y Moodle.

Estaré a cargo de la sesión dedicada a DotNetNuke, con lo que es una buena oportunidad para ver un ejemplo de portal elástico y altamente escalable montado sobre Windows Azure. Mostraré algunos detalles del DNN Azure Accelerator y algunas otras novedades.

Puedes asistir en directo en las oficinas de Microsoft de Madrid, verlo en streaming, o grabado mas tarde… no te lo pierdas!

Agenda

09:30
Registro y entrega de documentación

10:00
Plataforma Windows Azure.. David Salgado. Evangelista Desarrollo. Microsoft.

10:30
La plataforma para proyectos web en la nube: Softeng Portal Builder. Carles Colell. CEO. Softeng

11:20
Umbraco loves Windows Azure. Un caso real.. Roberto González. Director Técnico. Aventia. Juan Antonio Martín. Responsable Comercial. Aventia.

12:10
Café

12:40
DotNetNuke: CMS y plataforma de aplicaciones ahora también en Windows Azure. David J. Rodríguez. CTO. Intelequia.

13:30
Moodle / Azure: una visión estratégica de soluciones elearning opensource en entornos SaaS. Luis Flores. Open Sistemas.

Para más información y registro al evento presencial, pulsa el enlace siguiente:

Inscribirse al evento presencial

Para más información y ver el evento en streaming:

Ver el evento en streaming

DNN Azure Single and Extra Small

DotNetNukeGearUna de las peticiones que más me ha llegado para el despliegue de DotNetNuke sobre Azure tras la versión SMB, es la posibilidad de disponer de una versión “light” que se pueda ajustar a las ofertas y promociones gratuitas de Windows Azure.

La oferta gratuita actual que está activa hasta el 30 de septiembre ofrece lo siguiente:

  • 750 horas de una instancia Extra Small (una instancia sin apagar ni una sola hora al mes) y 25 horas de una instancia Small
  • 20Gb almacenamiento con 50k transacciones
  • 20Gb de tráfico de entrada y 20Gb de tráfico de salida
  • 1 base de datos de 1Gb de SQL Azure (durante 90 días)
  • 128Mb de AppFabric Caching

De este modo, he añadido a los paquetes del DotNetNuke Azure Accelerator uno que encaja con estas características y que es compatible con el paquete anterior.

Os lo podéis descargar desde el portal del proyecto en CodePlex a través del enlace siguiente:

Características

  • Uso mínimo de 1 instancia ExtraSmall. Esta instancia (la “instancia 0”) asume el rol de servidor SMB
  • Se pueden añadir más instancias que se conectarán a los contenidos compartidos por la instancia 0
  • Compatible con la versión SMB
  • Resto de características de la versión SMB: Framework 4.0, FullIIS, conexión por RDP, etc.

Probando el despliegue con Extra Small

Recordemos que las instancias Extra Small están pensadas para entornos no exigentes (normalmente desarrollo) ya que son máquinas pequeñas (768Mb RAM) y los procesadores son de uso compartido, a diferencia del resto de instancias. Aún así estas máquinas virtuales están muy optimizadas para estas tareas.

¿Cabe una instancia de DotNetNuke en una instancia Extra Small? ¿El rendimiento se ve muy afectado?

He realizado la prueba a ver qué tal va y los resultados los adjunto en las capturas siguientes, sobre dos de estas instancias sirviendo el mismo portal. Va muy justito y los primeros accesos a las páginas se notan un pelín más pesados, pero cuando las páginas están en la caché de ficheros, la verdad es que va bastante bien.

Two extrasmall instances

Instance 0

Instance 1

La instalación contienen todos los módulos y librerías de la versión Community de DotNetNuke, en el caso de que no se usara alguno seguro que también se liberaría más memoria y sería más eficiente. Ahí a gusto de consumidor.

Rendimiento de ExtraSmall

En la lista siguiente se ve la memoria usada por los servicios. Incluso se podrían eliminar los de conexión remota y diagnóstico en el caso que fuera necesario (algo no muy recomendable en desarrollo, ya que estaríamos a ciegas y ya sólo nos quedaría IntelliTrace).

Memoria usada

Conclusión

Con este nuevo paquete, ya podéis desplegar un sitio web implementado con DotNetNuke sobre Windows Azure sin gastaros un duro (por lo menos hasta el 30 de septiembre Sonrisa), con todas las características disponibles y con posibilidad de ampliar instancias en caso de ser necesario.

Espero que os sea de utilidad.