<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6799714001395379845</id><updated>2012-02-25T19:15:02.144Z</updated><category term='Ecotecnología'/><category term='Azure Development Storage'/><category term='Evento'/><category term='Appliance'/><category term='Control de codigo fuente'/><category term='Misys'/><category term='TenerifeDev'/><category term='Feliz 2012'/><category term='Windos Phone 7'/><category term='WebMatrix'/><category term='BPOS'/><category term='PDC10'/><category term='Cloud Computing'/><category term='Geeks'/><category term='World of Warcraft'/><category term='Protección de datos'/><category term='SQL Server'/><category term='Windows Azure Connect'/><category term='RedGate'/><category term='Development Fabric'/><category term='Microsoft Word'/><category term='Safe Harbor'/><category term='Banking'/><category term='Office365'/><category term='MadeinLocal.com'/><category term='Web'/><category term='SDK'/><category term='Reporting'/><category term='X.509'/><category term='GoGrid'/><category term='Splunk'/><category term='SMTP'/><category term='Ping'/><category term='Monitorización'/><category term='DotNetNuke'/><category term='Sharepoint'/><category term='Accelerator'/><category term='Networking'/><category term='CMS'/><category term='Razor'/><category term='SQL Azure'/><category term='MIX11'/><category term='Windows Azure'/><category term='Feliz 2011'/><category term='Tips and Tricks'/><category term='Management Console'/><category term='Entity Framework'/><title type='text'>Un paseo por las nubes</title><subtitle type='html'>Un blog acerca de Cloud Computing...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-5965944211576319188</id><published>2012-02-25T16:12:00.001Z</published><updated>2012-02-25T16:12:15.997Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='RedGate'/><title type='text'>RedGate Cloud Services: your SQL Azure backups as a service</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-g09_yp8Cs0M/T0kILlbIsTI/AAAAAAAAAzs/lVBHpf9ZoXw/s1600-h/RedGateCloudServices%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="RedGateCloudServices" border="0" alt="RedGateCloudServices" align="right" src="http://lh6.ggpht.com/-KRsdxkrn_Nc/T0kIMe7zPUI/AAAAAAAAAz0/CTXWjnYm4uI/RedGateCloudServices_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="87"&gt;&lt;/a&gt;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.&lt;/p&gt; &lt;p&gt;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 &lt;a href="http://blogs.msdn.com/b/luispanzano/archive/2011/06/27/backup-para-sql-azure.aspx" target="_blank"&gt;on this Luis Panzano’s blog entry&lt;/a&gt;, showing the advantages and disadvantages of each of them.&lt;/p&gt; &lt;p&gt;All these previous solutions is in addition of a &lt;a href="http://cloudservices.red-gate.com/" target="_blank"&gt;new backup solution for SQL Azure&lt;/a&gt;, nothing more and nothing less than from the hand of Redgate, widely recognized worldwide for its database products.&lt;br&gt; &lt;h3&gt;&lt;b&gt;What is it?&lt;/b&gt;&lt;/h3&gt; &lt;p&gt;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. &lt;p&gt;&lt;a href="http://cloudservices.red-gate.com/" target="_blank"&gt;The new RedGate’ service&lt;/a&gt; allows, using the export/import "bacpac" file format, automated backing up through a very simple user interface. &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-mcK6J19XdBc/T0kINegsJtI/AAAAAAAAAz8/rR7szuulixE/s1600-h/clip_image001%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh6.ggpht.com/-5fWqik9jLW4/T0kIOE4M4sI/AAAAAAAAA0E/XJA1rlE71H0/clip_image001_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="336"&gt;&lt;/a&gt; &lt;p&gt;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. &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-wIzMfX7aFUw/T0kIPFHDYzI/AAAAAAAAA0M/zdghEaSSWr8/s1600-h/clip_image002%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/-s_J3GsrE5GM/T0kIP7Dnh1I/AAAAAAAAA0U/lKvo1hGdEgQ/clip_image002_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="356"&gt;&lt;/a&gt; &lt;h3&gt;&lt;b&gt;&lt;br&gt;Where are backups stored?&lt;/b&gt;&lt;/h3&gt; &lt;p&gt;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. &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-4zDeYzLOznY/T0kIRGFRgrI/AAAAAAAAA0c/IgDAUSZDiGA/s1600-h/clip_image003%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh3.ggpht.com/-RvqQzZ3hii0/T0kIR3CupII/AAAAAAAAA0k/18C9Cmmj8aw/clip_image003_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="148"&gt;&lt;/a&gt; &lt;h3&gt;&lt;b&gt;&lt;br&gt;What is ideal for?&lt;/b&gt;&lt;/h3&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;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..&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-X5UCI1wM34s/T0kISguENHI/AAAAAAAAA0s/bGW2KNJbL8U/s1600-h/clip_image004%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh3.ggpht.com/--f2Ph276wdM/T0kITlY_g0I/AAAAAAAAA00/tnVx_qaz4f0/clip_image004_thumb%25255B3%25255D.jpg?imgmax=800" width="450" height="464"&gt;&lt;/a&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-SlyItGYgVSA/T0kIURD3D4I/AAAAAAAAA08/C8QI_9vkytg/s1600-h/clip_image005%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh5.ggpht.com/-6sF-0_TAVV0/T0kIVlqZRwI/AAAAAAAAA1E/egPOXHEawBs/clip_image005_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="92"&gt;&lt;/a&gt; &lt;h3&gt;&lt;br&gt;How much does it cost?&lt;/h3&gt; &lt;p&gt;Like most services in the cloud its formula is pay per use, and although the current formula adheres to a single offer of &lt;strong&gt;8€/month (31 uses per month)&lt;/strong&gt;, I guess in the coming weeks will be appearing more options for price escalation as recognized by the &lt;a href="https://twitter.com/#!/richard_j_m" target="_blank"&gt;Richard Mitchell&lt;/a&gt; on the home page.&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;On the other hand, is also offering a &lt;strong&gt;free trial period&lt;/strong&gt; of 10 days without charge.&lt;/p&gt; &lt;h3&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/h3&gt; &lt;p&gt;A few weeks ago, I commented that I upgraded to DotNetNuke 6.1.3 three different sites running on Azure in just 9 minutes, &lt;u&gt;including backups&lt;/u&gt;. 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. &lt;p&gt;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&amp;nbsp; in a scheduled way. &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-kS8NFqzBctc/T0kIWf9UPJI/AAAAAAAAA1M/VGH9Y2kHiN0/s1600-h/clip_image006%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh5.ggpht.com/-JqtFxr_2QBY/T0kIXgk1VdI/AAAAAAAAA1U/YL7-Gk5ys7Q/clip_image006_thumb%25255B3%25255D.jpg?imgmax=800" width="250" height="121"&gt;&lt;/a&gt; &lt;p&gt;&lt;strong&gt;What I like&lt;/strong&gt;: 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... &lt;p&gt;For more information, visit: &lt;br&gt;&lt;a href="http://cloudservices.red-gate.com/"&gt;http://cloudservices.red-gate.com/&lt;/a&gt; &lt;p&gt;Happy coding!    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-5965944211576319188?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/5965944211576319188/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2012/02/redgate-cloud-services-your-sql-azure.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/5965944211576319188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/5965944211576319188'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2012/02/redgate-cloud-services-your-sql-azure.html' title='RedGate Cloud Services: your SQL Azure backups as a service'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-KRsdxkrn_Nc/T0kIMe7zPUI/AAAAAAAAAz0/CTXWjnYm4uI/s72-c/RedGateCloudServices_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-9042883501976614779</id><published>2012-02-25T14:53:00.001Z</published><updated>2012-02-25T14:53:44.502Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='RedGate'/><title type='text'>RedGate Cloud Services: tus copias de seguridad de SQL Azure como SaaS</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-HpwKjTsKurs/T0j1utNpBhI/AAAAAAAAAx8/TOEhwJAqhrA/s1600-h/RedGateCloudServices%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="RedGateCloudServices" border="0" alt="RedGateCloudServices" align="right" src="http://lh5.ggpht.com/-tAPHVWo3QcU/T0j1vhnCahI/AAAAAAAAAyE/by6ZTQuFZVU/RedGateCloudServices_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="87"&gt;&lt;/a&gt;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. &lt;/p&gt; &lt;p&gt;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 &lt;a href="http://blogs.msdn.com/b/luispanzano/archive/2011/06/27/backup-para-sql-azure.aspx" target="_blank"&gt;esta entrada del blog de Luis Panzano&lt;/a&gt;, donde se muestran las ventajas y desventajas de cada una de las mismas.&lt;/p&gt; &lt;p&gt;A todas estas soluciones previas viene a añadirse &lt;a href="http://cloudservices.red-gate.com/" target="_blank"&gt;una nueva solución de copias de seguridad de SQL Azure&lt;/a&gt;, nada más y nada menos que de la mano de RedGate, ampliamente reconocidos a nivel mundial por sus productos para bases de datos.&lt;/p&gt; &lt;h3&gt;¿Qué es?&lt;/h3&gt; &lt;p&gt;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. &lt;/p&gt; &lt;p&gt;El &lt;a href="http://cloudservices.red-gate.com/" target="_blank"&gt;nuevo servicio de RedGate&lt;/a&gt; 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. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-1JfJvR_SmCY/T0j1wqNy_VI/AAAAAAAAAyM/9itcq46r9AQ/s1600-h/CreateBackup%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CreateBackup" border="0" alt="CreateBackup" src="http://lh6.ggpht.com/-s7TaBqVU3DU/T0j1xo-b6aI/AAAAAAAAAyU/j2BbFKdiQzw/CreateBackup_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="336"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-sVGEdcoA-Vc/T0j10eVeHiI/AAAAAAAAAyc/5joWJBLRQus/s1600-h/CreateBackup2%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="CreateBackup2" border="0" alt="CreateBackup2" src="http://lh5.ggpht.com/-pDN07UDeAlU/T0j11UozuiI/AAAAAAAAAyk/FxGrnqDCPCQ/CreateBackup2_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="356"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;¿Dónde se almacenan las copias de seguridad?&lt;/h3&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-cfMbymZwFG0/T0j12TPS0PI/AAAAAAAAAys/qCCqWIcK4vQ/s1600-h/StoreOptions%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="StoreOptions" border="0" alt="StoreOptions" src="http://lh5.ggpht.com/-1MJhokLkXhY/T0j13THjknI/AAAAAAAAAy0/h1kdycC1KL8/StoreOptions_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="148"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;h3&gt;¿Para qué es ideal? &lt;/h3&gt; &lt;p&gt;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 &lt;u&gt;programar&lt;/u&gt; 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.&lt;/p&gt; &lt;p&gt;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. &lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/-fb8I93z8GPo/T0j14jI9DAI/AAAAAAAAAy8/OaCEbL30pWc/s1600-h/BackupHistory%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="BackupHistory" border="0" alt="BackupHistory" src="http://lh5.ggpht.com/-iS4BBFq5lHM/T0j1502t6HI/AAAAAAAAAzE/my_zydyQVA4/BackupHistory_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="464"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-HkV0AnazoDk/T0j16zkoX4I/AAAAAAAAAzM/QRB3N9kdJEw/s1600-h/BackupSuccessEmail%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="BackupSuccessEmail" border="0" alt="BackupSuccessEmail" src="http://lh3.ggpht.com/-mED-uHjvVwE/T0j173wXONI/AAAAAAAAAzU/zoK950blW-E/BackupSuccessEmail_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="92"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;¿Cuánto cuesta?&lt;/h3&gt; &lt;p&gt;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 &lt;strong&gt;8€/mes (31 usos por mes), &lt;/strong&gt;supongo que en las próximas semanas irán apareciendo más opciones de escalado de precios tal y como reconoce el mismo &lt;a href="https://twitter.com/#!/richard_j_m" target="_blank"&gt;Richard Mitchell&lt;/a&gt; en la página de inicio.&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;Por otra parte, también se está ofertando un &lt;strong&gt;periodo de prueba gratuito&lt;/strong&gt; de 10 días sin coste alguno. &lt;/p&gt;      &lt;h3&gt;Conclusión&lt;/h3&gt; &lt;p&gt;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, &lt;u&gt;copias de seguridad incluidas&lt;/u&gt;. 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. &lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-pFH2DuBzNlk/T0j18hStK-I/AAAAAAAAAzc/ZYbuC4oyjWE/s1600-h/AzureTools%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="AzureTools" border="0" alt="AzureTools" src="http://lh6.ggpht.com/-1An8GAdzhYY/T0j19t6T28I/AAAAAAAAAzk/SVwTBed94K0/AzureTools_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="116"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Lo que más me gusta&lt;/strong&gt;: 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…&lt;/p&gt; &lt;p&gt;Para más información, visita:&lt;br&gt;&lt;a href="http://cloudservices.red-gate.com/"&gt;http://cloudservices.red-gate.com/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Happy coding!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-9042883501976614779?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/9042883501976614779/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2012/02/redgate-cloud-services-tus-copias-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/9042883501976614779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/9042883501976614779'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2012/02/redgate-cloud-services-tus-copias-de.html' title='RedGate Cloud Services: tus copias de seguridad de SQL Azure como SaaS'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-tAPHVWo3QcU/T0j1vhnCahI/AAAAAAAAAyE/by6ZTQuFZVU/s72-c/RedGateCloudServices_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2471259752934100645</id><published>2012-02-09T17:32:00.001Z</published><updated>2012-02-09T17:32:48.485Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Certificate error when deploying DotNetNuke on Windows Azure</title><content type='html'>&lt;p&gt;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.&lt;/p&gt; &lt;p&gt;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:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;a href="http://lh3.ggpht.com/-sntuQyCnO8A/TzQC9Cb62xI/AAAAAAAAAu4/cLTrrNyK81E/s1600-h/CertificateError1_thumb1%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CertificateError1_thumb1" border="0" alt="CertificateError1_thumb1" align="right" src="http://lh5.ggpht.com/-VEuXptV9p-s/TzQC9_61bpI/AAAAAAAAAvA/0onC-CqYw80/CertificateError1_thumb1_thumb.jpg?imgmax=800" width="240" height="221"&gt;&lt;/a&gt;“The certificate with thumbprint ‘XXXXXXXXXX’ is missing for hosted service ‘YYYY’. Please install the certificate for this hosted service.”&lt;/em&gt;&lt;/p&gt; &lt;p&gt;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).&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;What certificate?&lt;/h3&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-cRI98_rt1mM/TzQC-kvn3QI/AAAAAAAAAvI/CIXULnkyM4s/s1600-h/RDPStep_thumb2%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="RDPStep_thumb2" border="0" alt="RDPStep_thumb2" src="http://lh4.ggpht.com/-S2bkiMi4hEw/TzQC_ehqvhI/AAAAAAAAAvM/cNOJ_pkgqK8/RDPStep_thumb2_thumb.jpg?imgmax=800" width="450" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;How to export the certificate in PFX format?&lt;/h3&gt; &lt;p&gt;To export the certificate in PFX format &lt;strong&gt;from the DNN Azure Accelerator wizard RDP step&lt;/strong&gt;, follow these steps:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Click “View…” to see the certificate that has generated the wizard&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-vu_OuDCBY40/TzQDALEvMQI/AAAAAAAAAvU/VvPtgZXwm-w/s1600-h/CertificateDetail1_thumb1%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CertificateDetail1_thumb1" border="0" alt="CertificateDetail1_thumb1" src="http://lh4.ggpht.com/-GIGjkMMz9lk/TzQDAon5NMI/AAAAAAAAAvg/BTwSVHhaT9c/CertificateDetail1_thumb1_thumb.jpg?imgmax=800" width="192" height="240"&gt;&lt;/a&gt;  &lt;li&gt;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. &lt;br&gt;&lt;a href="http://lh3.ggpht.com/-WZkf5kZRx0k/TzQDBj2MicI/AAAAAAAAAvk/-_E_5LF2lNc/s1600-h/CertificateThumbprint_thumb1%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CertificateThumbprint_thumb1" border="0" alt="CertificateThumbprint_thumb1" src="http://lh4.ggpht.com/-1fNQEQMkH-A/TzQDCSKmlAI/AAAAAAAAAvw/laNApMkBKXA/CertificateThumbprint_thumb1_thumb.jpg?imgmax=800" width="193" height="240"&gt;&lt;/a&gt;  &lt;li&gt;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. &lt;br&gt;&lt;a href="http://lh5.ggpht.com/-DyjETD7iWbk/TzQDC6ZN15I/AAAAAAAAAv4/Ni-l7QY6O3I/s1600-h/ExportPrivateKey_thumb1%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ExportPrivateKey_thumb1" border="0" alt="ExportPrivateKey_thumb1" src="http://lh3.ggpht.com/-pKtsxbE0IDE/TzQDEdgNx8I/AAAAAAAAAwA/AxUX35Wa8bE/ExportPrivateKey_thumb1_thumb.jpg?imgmax=800" width="240" height="218"&gt;&lt;/a&gt;  &lt;li&gt;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. &lt;br&gt;&lt;a href="http://lh3.ggpht.com/-el8vzMhXJEU/TzQDE3dfr1I/AAAAAAAAAwI/tK2Wj9UBFU8/s1600-h/ExportaAsPFX_thumb1%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ExportaAsPFX_thumb1" border="0" alt="ExportaAsPFX_thumb1" src="http://lh3.ggpht.com/-Be8LjZQyGlQ/TzQDFsYMFEI/AAAAAAAAAwQ/uqaLs53jqak/ExportaAsPFX_thumb1_thumb.jpg?imgmax=800" width="240" height="218"&gt;&lt;/a&gt;  &lt;li&gt;In the following steps specify a password to be used while importing into Azure and finally a filename for the certificate. &lt;br&gt;&lt;a href="http://lh5.ggpht.com/-R4zk86lViLw/TzQDGREzJhI/AAAAAAAAAwU/ihdHG4MBbP8/s1600-h/SpecifyAPassword_thumb2%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SpecifyAPassword_thumb2" border="0" alt="SpecifyAPassword_thumb2" src="http://lh6.ggpht.com/-BXEF11hu6DI/TzQDHLYd3aI/AAAAAAAAAwg/JNvdg8mLCLM/SpecifyAPassword_thumb2_thumb.jpg?imgmax=800" width="220" height="199"&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/-rvejl4Bp2ss/TzQDIP-nC0I/AAAAAAAAAwo/jOH22fswZQg/s1600-h/SpecifyAFilename_thumb2%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SpecifyAFilename_thumb2" border="0" alt="SpecifyAFilename_thumb2" src="http://lh5.ggpht.com/-Uuv3fqkpH9M/TzQDI6Hd95I/AAAAAAAAAww/VaJVKDNwHG8/SpecifyAFilename_thumb2_thumb.jpg?imgmax=800" width="220" height="200"&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;With this we have exported the PFX file. &lt;/p&gt; &lt;h3&gt;How to import the certificate on Azure?&lt;/h3&gt; &lt;p&gt;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!:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Open the &lt;a href="http://windows.azure.com/"&gt;Windows Azure Administration console&lt;/a&gt; and access the hosted service settings, selecting the service certificates folder you want to configure. &lt;br&gt;&lt;a href="http://lh5.ggpht.com/-jdEzN7BpJp4/TzQDJwApD7I/AAAAAAAAAw0/KbOLzr0Wg_U/s1600-h/AddCertificate_thumb2%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="AddCertificate_thumb2" border="0" alt="AddCertificate_thumb2" src="http://lh5.ggpht.com/-oRyB8Ntw6iY/TzQDKmW6tKI/AAAAAAAAAw8/u6GNjAskxCA/AddCertificate_thumb2_thumb.jpg?imgmax=800" width="400" height="230"&gt;&lt;/a&gt;  &lt;li&gt;Press the “Add Certificate…” button to upload the “PFX” file that we have exported typing the password used before. &lt;br&gt;&lt;a href="http://lh6.ggpht.com/-TEBk44dN8uc/TzQDLRcg_EI/AAAAAAAAAxI/KSBun8X0KQM/s1600-h/UploadCertificate_thumb1%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="UploadCertificate_thumb1" border="0" alt="UploadCertificate_thumb1" src="http://lh3.ggpht.com/-F9q1Sq30rCQ/TzQDMA9aRqI/AAAAAAAAAxQ/KLwaCPnMVYY/UploadCertificate_thumb1_thumb.jpg?imgmax=800" width="240" height="106"&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Once that is done, we can see that the certificate was successfully uploaded and that in the certificate details the “Thumbprint” is also there.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-HHaksj1HpYg/TzQDNYgiaiI/AAAAAAAAAxY/5ZtRK7nKUKo/s1600-h/CertificateUploaded_thumb2%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CertificateUploaded_thumb2" border="0" alt="CertificateUploaded_thumb2" src="http://lh4.ggpht.com/-BuAB-NSdY6g/TzQDOa0y_XI/AAAAAAAAAxg/PfnAtBBFkXQ/CertificateUploaded_thumb2_thumb.jpg?imgmax=800" width="450" height="195"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;I closed the Accelerator and now I do not know how to re-export the certificate&lt;/h3&gt; &lt;p&gt;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?&lt;/p&gt; &lt;p&gt;There are several methods to accomplish that, but for simplifying the shortest is:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;In a command line console, type “certmgr.exe” to open the certificates management console in the folder “Personal\Certificates”  &lt;li&gt;If you remember the “FriendlyName” that you used in the DNN Azure Accelerator, select it. &lt;strong&gt;If not or not be sure of which certificate you used on the wizard,&lt;/strong&gt; 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. &lt;br&gt;&lt;a href="http://lh5.ggpht.com/-E0OwkyvAkfU/TzQDPLawIgI/AAAAAAAAAxo/f0PkkZKFCkg/s1600-h/Certificates_thumb2%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Certificates_thumb2" border="0" alt="Certificates_thumb2" src="http://lh3.ggpht.com/-edzSy2Du0AY/TzQDPsaEluI/AAAAAAAAAxw/JjQDtGv4Obg/Certificates_thumb2_thumb.jpg?imgmax=800" width="400" height="187"&gt;&lt;/a&gt;  &lt;li&gt;Right-click on “All tasks&amp;gt;Export…” to start the export process mentioned in the previous section &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;Hope this helps. More tomorrow!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2471259752934100645?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2471259752934100645/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2012/02/certificate-error-when-deploying.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2471259752934100645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2471259752934100645'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2012/02/certificate-error-when-deploying.html' title='Certificate error when deploying DotNetNuke on Windows Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-VEuXptV9p-s/TzQC9_61bpI/AAAAAAAAAvA/0onC-CqYw80/s72-c/CertificateError1_thumb1_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-7473971130960731946</id><published>2012-02-09T16:44:00.001Z</published><updated>2012-02-09T16:44:44.230Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='X.509'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Error de certificado al desplegar DotNetNuke en Windows Azure</title><content type='html'>&lt;p&gt;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. &lt;/p&gt; &lt;p&gt;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:&lt;/p&gt; &lt;p align="center"&gt;&lt;em&gt;&lt;a href="http://lh3.ggpht.com/-HvXtQODU8Y0/TzP3sWtW7jI/AAAAAAAAAr4/ubho4xwM4C4/s1600-h/CertificateError1%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="CertificateError1" border="0" alt="CertificateError1" align="right" src="http://lh6.ggpht.com/-BEFf2FiO1Fg/TzP3tH4SmPI/AAAAAAAAAsA/EKTMiZ2jGfw/CertificateError1_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="221"&gt;&lt;/a&gt;“The certificate with thumbprint ‘XXXXXXXXXX’ is missing for hosted service ‘YYYY’. Please install the certificate for this hosted service.”&lt;/em&gt;&lt;/p&gt; &lt;p&gt;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. &lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;¿A qué certificado se refiere?&lt;/h3&gt; &lt;p&gt;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”. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-lRaQZL__Ml0/TzP3uYW5FcI/AAAAAAAAAsI/_pFYoZvqCKA/s1600-h/RDPStep%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="RDPStep" border="0" alt="RDPStep" src="http://lh6.ggpht.com/-ipCnWoYRhbs/TzP3vVuVYFI/AAAAAAAAAsQ/4LX2vyRmsg4/RDPStep_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;¿Cómo exportamos el certificado en formato PFX?&lt;/h3&gt; &lt;p&gt;Para exportar el certificado en formato PFX desde el mismo asistente, seguiremos los pasos siguientes:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Pulsar el botón “View…” para ver el certificado que ha generado el asistente&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-GTyJQRnYKQ8/TzP3wU2_nwI/AAAAAAAAAsY/datQAs7YjP0/s1600-h/CertificateDetail1%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="CertificateDetail1" border="0" alt="CertificateDetail1" src="http://lh3.ggpht.com/-jWGMXNJ7XX8/TzP3xNdPfqI/AAAAAAAAAsc/7iWEvv5ZMBY/CertificateDetail1_thumb%25255B1%25255D.jpg?imgmax=800" width="192" height="240"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;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. &lt;a href="http://lh4.ggpht.com/-kWQQl1LkCr4/TzP3xul-qiI/AAAAAAAAAso/3vcV19NN-UA/s1600-h/CertificateThumbprint%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="CertificateThumbprint" border="0" alt="CertificateThumbprint" src="http://lh5.ggpht.com/-4x6cda0x9_c/TzP3ykdzIuI/AAAAAAAAAsw/ZT95hnz-qCY/CertificateThumbprint_thumb%25255B1%25255D.jpg?imgmax=800" width="193" height="240"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;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.&lt;br&gt;&lt;a href="http://lh6.ggpht.com/-e8LHsfxfAss/TzP3zhZEO3I/AAAAAAAAAs0/O9mvbhJ_P00/s1600-h/ExportPrivateKey%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ExportPrivateKey" border="0" alt="ExportPrivateKey" src="http://lh5.ggpht.com/-aAJ5uzgPSPE/TzP30E3JREI/AAAAAAAAAs8/kRtMDoSsvxM/ExportPrivateKey_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="218"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;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.&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-1EQm39mDHxs/TzP30_OBK0I/AAAAAAAAAtE/e80oN10_xCY/s1600-h/ExportaAsPFX%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ExportaAsPFX" border="0" alt="ExportaAsPFX" src="http://lh5.ggpht.com/-u2eAyiot2-0/TzP31uj_KII/AAAAAAAAAtQ/wHgBMHz_Q3w/ExportaAsPFX_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="218"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;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.&lt;br&gt;&lt;a href="http://lh3.ggpht.com/-AGkbDo1YOzE/TzP32ibtsxI/AAAAAAAAAtU/Z89YUTCwgxs/s1600-h/SpecifyAPassword%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SpecifyAPassword" border="0" alt="SpecifyAPassword" src="http://lh3.ggpht.com/-OHhlOfs3hLs/TzP33P5zhMI/AAAAAAAAAtc/aB2PK6LaVkw/SpecifyAPassword_thumb%25255B2%25255D.jpg?imgmax=800" width="220" height="199"&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/-T1Aa6UMMvXM/TzP34dUJ-PI/AAAAAAAAAto/WyHB13LmDcw/s1600-h/SpecifyAFilename%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SpecifyAFilename" border="0" alt="SpecifyAFilename" src="http://lh3.ggpht.com/-u23s4jyrYss/TzP34ykw8kI/AAAAAAAAAts/gUPoc8inwBo/SpecifyAFilename_thumb%25255B2%25255D.jpg?imgmax=800" width="220" height="200"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Con esto hemos exportado el fichero PFX. &lt;/p&gt; &lt;h3&gt;¿Cómo importamos el certificado en Azure?&lt;/h3&gt; &lt;p&gt;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:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Abrir la &lt;a href="http://windows.azure.com/"&gt;consola de administración de Windows Azure&lt;/a&gt; y acceder a la configuración de los servicios hospedados, &lt;u&gt;seleccionando la carpeta de certificados del servicio que queremos configurar&lt;/u&gt;.&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-jBqnhyneX4g/TzP35pZSkCI/AAAAAAAAAt4/2v79BP_HUeo/s1600-h/AddCertificate%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AddCertificate" border="0" alt="AddCertificate" src="http://lh5.ggpht.com/-H7q-ZS8Y5Mo/TzP36eEIY9I/AAAAAAAAAuA/auyQSgWz55A/AddCertificate_thumb%25255B2%25255D.jpg?imgmax=800" width="400" height="230"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Pulsamos el botón “Add Certificate…” para subir el fichero “.pfx” que hemos exportado especificando la contraseña&lt;br&gt;&lt;a href="http://lh5.ggpht.com/-CohSFMMFtTw/TzP37JMp2ZI/AAAAAAAAAuI/13eYH2KVHHY/s1600-h/UploadCertificate%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="UploadCertificate" border="0" alt="UploadCertificate" src="http://lh3.ggpht.com/-yokJgg0ER_0/TzP37q9h5BI/AAAAAAAAAuM/FV4nZe6O2wU/UploadCertificate_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="106"&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-e6TPqUalPUo/TzP38p6JVhI/AAAAAAAAAuY/mbnYOObRWAk/s1600-h/CertificateUploaded%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="CertificateUploaded" border="0" alt="CertificateUploaded" src="http://lh6.ggpht.com/-aeETkC89aOE/TzP39M5CZlI/AAAAAAAAAuc/WLNbhAThJRU/CertificateUploaded_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="195"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Cerré el Accelerator y ahora no sé cómo volver a exportar el certificado&lt;/h3&gt;          &lt;p&gt;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?&lt;/p&gt; &lt;p&gt;La respuesta es que hay varios métodos, pero para simplificar expongo la siguiente:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;En una línea de comandos, ejecutar “certmgr.exe” para abrir la consola de administración de certificados en la carpeta “Personal\Certificates”&lt;/li&gt; &lt;li&gt;Si nos acordamos del “FriendlyName” que pusimos al crear el certificado con el DNN Azure Accelerator, lo seleccionamos. &lt;strong&gt;En caso de no acordarnos o no estar muy seguros de qué certificado usamos en el Accelerator,&lt;/strong&gt; 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.&lt;br&gt;&lt;a href="http://lh6.ggpht.com/-Rcqz-TL8gqc/TzP390GDx_I/AAAAAAAAAuo/C77-4AUsx1E/s1600-h/Certificates%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Certificates" border="0" alt="Certificates" src="http://lh5.ggpht.com/-Y8FsfnJAjS4/TzP3-oobKrI/AAAAAAAAAus/Gu1NOTe3jMs/Certificates_thumb%25255B2%25255D.jpg?imgmax=800" width="400" height="187"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Pulsamos con el botón derecho del ratón seleccionamos “Todas las tareas&amp;gt;Exportar…” para iniciar el mismo proceso de exportación comentado en el apartado anterior&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;Espero que sirva de ayuda. ¡Mañana más!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-7473971130960731946?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/7473971130960731946/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2012/02/error-de-certificado-al-desplegar.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7473971130960731946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7473971130960731946'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2012/02/error-de-certificado-al-desplegar.html' title='Error de certificado al desplegar DotNetNuke en Windows Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-BEFf2FiO1Fg/TzP3tH4SmPI/AAAAAAAAAsA/EKTMiZ2jGfw/s72-c/CertificateError1_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8868222557837948799</id><published>2011-12-31T17:07:00.001Z</published><updated>2011-12-31T17:07:42.667Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Feliz 2012'/><title type='text'>Adiós 2011. Bienvenido 2012</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-wl0TqiCgS8o/Tv9BUFSg5jI/AAAAAAAAAqk/hf9KSHc77i4/s1600-h/principio_accion_reaccion%25255B3%25255D.gif"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="principio_accion_reaccion" border="0" alt="principio_accion_reaccion" align="right" src="http://lh5.ggpht.com/-JuSEaH4u6O0/Tv9BU-bmGpI/AAAAAAAAAqs/sQw1efrWMoc/principio_accion_reaccion_thumb%25255B1%25255D.gif?imgmax=800" width="240" height="111"&gt;&lt;/a&gt;Vaya, vaya. No sé ni cómo pero ya ha pasado un año desde que escribí &lt;a href="http://davidjrh.intelequia.com/2010/12/adios-2010bienvenido-2011.html" target="_blank"&gt;una entrada similar a esta para despedir el 2010&lt;/a&gt;. 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.&lt;/p&gt; &lt;h3&gt;2011 ha sido un año…lleno de acción&lt;/h3&gt; &lt;p&gt;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 “&lt;a href="http://erasmusv.wordpress.com/2007/06/27/sarna-con-gusto-no-pica/" target="_blank"&gt;sarna con gusto no pica&lt;/a&gt;”. 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&amp;nbsp; con él, y también hacía con los amigos una base de datos de &lt;a href="mailto:novi@s"&gt;novi@s&lt;/a&gt; en BASIC &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh3.ggpht.com/-OJ9wVrrU1Rk/Tv9BVkbZNCI/AAAAAAAAAq0/5SB3jMKmr-A/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt; &lt;p&gt;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 &lt;u&gt;nunca es tarde para ser lo que realmente quieres ser&lt;/u&gt;.&lt;/p&gt; &lt;p align="left"&gt;&lt;em&gt;“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.”&lt;/em&gt;&lt;/p&gt; &lt;p align="right"&gt;&lt;a title="The Curious Case of Benjamin Button" href="http://es.wikipedia.org/wiki/El_curioso_caso_de_Benjamin_Button"&gt;The Curious Case of Benjamin Button&lt;/a&gt;&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:d2aefded-fea4-4213-8fa0-47a8ca57d271" class="wlWriterEditableSmartContent"&gt;&lt;div id="fb17bf32-a977-4791-b1f6-a77ce07d39e1" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=6yZwOdaiOd0&amp;amp;feature=player_embedded" target="_new"&gt;&lt;img src="http://lh4.ggpht.com/-c9W3usVNQOU/Tv9BWbaT6gI/AAAAAAAAAq8/_pTgHuJDGkc/video3f57c7f715ab%25255B38%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('fb17bf32-a977-4791-b1f6-a77ce07d39e1'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/6yZwOdaiOd0?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/6yZwOdaiOd0?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;The Curious Case of Benjamin Button&lt;/div&gt;&lt;/div&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;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 &lt;a href="mailto:tod@s"&gt;tod@s&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Un abrazo y hasta mañana.&lt;/p&gt; &lt;p&gt;David Rodríguez&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:095b0f4f-6ac7-4b3b-8908-1fffa705bfd0" class="wlWriterEditableSmartContent"&gt;&lt;div id="2a833600-ab91-4b29-a3f8-85bee49abbd3" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=Rk6_hdRtJOE" target="_new"&gt;&lt;img src="http://lh5.ggpht.com/-gGVnFx7OW2c/Tv9BXA8t_VI/AAAAAAAAArE/yqmo3JRgD-I/video5f10a4371349%25255B77%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('2a833600-ab91-4b29-a3f8-85bee49abbd3'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/Rk6_hdRtJOE?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/Rk6_hdRtJOE?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;The Mountain - http://www.facebook.com/TSOPhotography&lt;/div&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8868222557837948799?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8868222557837948799/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/12/adios-2011-bienvenido-2012.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8868222557837948799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8868222557837948799'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/12/adios-2011-bienvenido-2012.html' title='Adiós 2011. Bienvenido 2012'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-JuSEaH4u6O0/Tv9BU-bmGpI/AAAAAAAAAqs/sQw1efrWMoc/s72-c/principio_accion_reaccion_thumb%25255B1%25255D.gif?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-1615277494472456326</id><published>2011-12-28T12:39:00.001Z</published><updated>2011-12-28T12:39:36.320Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web'/><category scheme='http://www.blogger.com/atom/ns#' term='Tips and Tricks'/><title type='text'>[Tip] Un huevo de pascua llamado “dnndev.me”</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-prgvOQdR6h0/TvsN8_UtHNI/AAAAAAAAAp0/2B40NoZjoEY/s1600-h/dnndev.me%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="dnndev.me" border="0" alt="dnndev.me" align="right" src="http://lh5.ggpht.com/-_B3jG3XJZ2M/TvsN9yAOlVI/AAAAAAAAAp8/9lrTr-V3vVM/dnndev.me_thumb%25255B2%25255D.jpg?imgmax=800" width="174" height="162"&gt;&lt;/a&gt;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. &lt;/p&gt; &lt;h3&gt;¿Conocías el dominio “dnndev.me”?&lt;/h3&gt; &lt;p&gt;El dominio dnndev.me es un dominio registrado en Internet por nuestro amigo &lt;a href="http://dnngallery.com/blog/id/263/local-virtual-hosts-with-dnndevme" target="_blank"&gt;Ian Robinson&lt;/a&gt; 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.&lt;/p&gt; &lt;p&gt;Para hacer una prueba, abre una consola de comandos y haz un ping a “&amp;lt;loquetedelagana&amp;gt;.dnndev.me” y comprobarás que siempre responde tu dirección local.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-orwkwzR_ib0/TvsN_BpWeaI/AAAAAAAAAqE/K_yKUzzFXrk/s1600-h/pingDnnDevme%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="pingDnnDevme" border="0" alt="pingDnnDevme" src="http://lh6.ggpht.com/-38wCAdrP_Jo/TvsN_yArLTI/AAAAAAAAAqM/rUTGB35wSgY/pingDnnDevme_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="171"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;¿Y para qué sirve esto?&lt;/h3&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;De esta manera, puedes configurar en tu IIS un binding en el sitio web, por ejemplo, &lt;a href="http://miproyecto.dnndev.me"&gt;http://miproyecto.dnndev.me&lt;/a&gt; en vez de usar &lt;a href="http://localhost/miproyecto"&gt;http://localhost/miproyecto&lt;/a&gt; o editar el fichero de hosts para introducir &lt;a href="http://miproyecto.dev"&gt;http://miproyecto.dev&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-KGCs0awNh2A/TvsOAi-3nUI/AAAAAAAAAqU/evnV5MzHNDU/s1600-h/Binding%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Binding" border="0" alt="Binding" src="http://lh6.ggpht.com/-a46oiXIasrA/TvsOBi6UfFI/AAAAAAAAAqc/Le2X-yUP0uU/Binding_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="159"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Gracias a Ian Robinson (&lt;a href="http://dnngallery.com/blog/id/263/local-virtual-hosts-with-dnndevme" target="_blank"&gt;ver post original&lt;/a&gt;) y a &lt;a href="http://www.theaccidentalgeek.com/post/2011/03/11/DotNetNuke-Tips-and-Tricks-24-Local-Virtual-Hosts.aspx" target="_blank"&gt;Joe Brinkman&lt;/a&gt; por su aportación en esta simple y genial idea.&lt;/p&gt; &lt;p&gt;P.D. &lt;strong&gt;no&lt;/strong&gt; es una inocentada!&lt;/p&gt; &lt;p&gt;Happy coding!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-1615277494472456326?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/1615277494472456326/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/12/tip-un-huevo-de-pascua-llamado-dnndevme.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1615277494472456326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1615277494472456326'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/12/tip-un-huevo-de-pascua-llamado-dnndevme.html' title='[Tip] Un huevo de pascua llamado “dnndev.me”'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-_B3jG3XJZ2M/TvsN9yAOlVI/AAAAAAAAAp8/9lrTr-V3vVM/s72-c/dnndev.me_thumb%25255B2%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-1615726627857987727</id><published>2011-12-13T12:27:00.001Z</published><updated>2011-12-13T12:27:25.903Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><title type='text'>[WebCast] DotNetNuke 6–Framework para reducir costes</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-km4urgID4Wg/TudEqWdxubI/AAAAAAAAApg/-nbOUZo3JvE/s1600-h/MSEvent%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="MSEvent" border="0" alt="MSEvent" align="right" src="http://lh4.ggpht.com/-GJXR0gL6U5k/TudErAc4auI/AAAAAAAAApk/YelWomYhxus/MSEvent_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="36"&gt;&lt;/a&gt;Nada más y nada menos que de la mano de &lt;a href="http://twitter.com/#!/Toni_Coll" target="_blank"&gt;Toni Coll&lt;/a&gt;, autor y editor del único &lt;a href="http://www.2psystems.com/Recursos/LibroAprendeDotNetNuke.aspx" target="_blank"&gt;libro en español sobre desarrollo sobre la plataforma DotNetNuke&lt;/a&gt;, 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!!).&lt;/p&gt; &lt;p&gt;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. &lt;strong&gt;&lt;u&gt;El registro es completamente gratuito&lt;/u&gt;&lt;/strong&gt;. No dejes pasar esta ocasión. &lt;/p&gt; &lt;p&gt;Os dejo más detalles del evento y el enlace para el registro. Un saludo y happy codding!&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032499853&amp;amp;Culture=es-ES" target="_blank"&gt;&lt;font size="5"&gt;Registro en línea&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;DOTNETNUKE 6 - FRAMEWORK PARA REDUCIR COSTES&lt;/strong&gt;&lt;br&gt;&lt;u&gt;&lt;strong&gt;Descripción:&lt;br&gt;&lt;/strong&gt;&lt;/u&gt;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.  &lt;p&gt;Agenda:  &lt;p&gt;9:30 – 9:40 Bienvenida y presentación&lt;br&gt;9:40 – 11:00 Introducción y administración del CMS&lt;br&gt;11:00 – 11:15 Descanso&lt;br&gt;11:15 – 12:50 Ediciones comerciales y desarrollo&lt;br&gt;12:50 – 13:00 Preguntas y Despedida  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Ponente:&lt;br&gt;&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;&lt;strong&gt;Toni Coll&lt;/strong&gt; -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).  &lt;p&gt;&lt;u&gt;&lt;strong&gt;Perfil de los participantes:&lt;/strong&gt;&lt;/u&gt;&lt;br&gt;Directores de empresas TIC, responsables TIC de empresas turísticas, profesionales del sector TIC.&lt;br&gt;Estudiantes de los últimos cursos de la carrera de Informática.    &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-1615726627857987727?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/1615726627857987727/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/12/webcast-dotnetnuke-6framework-para.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1615726627857987727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1615726627857987727'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/12/webcast-dotnetnuke-6framework-para.html' title='[WebCast] DotNetNuke 6–Framework para reducir costes'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-GJXR0gL6U5k/TudErAc4auI/AAAAAAAAApk/YelWomYhxus/s72-c/MSEvent_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-3638948859502140526</id><published>2011-11-30T10:23:00.002Z</published><updated>2011-11-30T13:10:59.184Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Windows Azure Camps en Tenerife</title><content type='html'>&lt;p&gt;&lt;strong&gt; &lt;table border="1" cellspacing="2" cellpadding="5" style="background-color:yellow" width="475"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td valign="top" width="469"&gt; &lt;p&gt;&lt;strong&gt;NOTICIA IMPORTANTE DE ULTIMA HORA:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Buenas noticias. Por &lt;a href="http://www.abc.es/20111130/economia/abcp-pilotos-iberia-convocaran-huelga-20111130.html" target="_blank"&gt;motivos ajenos a la organización&lt;/a&gt;, 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 &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh3.ggpht.com/-TDLPipsA7l8/TtYEJtHG-vI/AAAAAAAAApQ/FYmO0u5rZXs/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;&lt;p&gt;En este enlace tenéis el NUEVO enlace de registro al WebCast. &lt;/p&gt;&lt;p align="center"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032500847&amp;amp;Culture=es-ES" target="_blank"&gt;&lt;font size="4"&gt;Registro al WebCast en directo&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Siguiendo con la &lt;a href="http://www.tenerifedev.com/MaterialesEventos/Nov2011WPRoadshow.aspx" target="_blank"&gt;ola de eventos de desarrollo&lt;/a&gt; en nuestra isla, esta vez tenemos la gran ocasión de poder contar con &lt;a href="http://geeks.ms/blogs/dsalgado/" target="_blank"&gt;David Salgado&lt;/a&gt; en un día dedicado al desarrollo sobre la plataforma Windows Azure.&lt;/p&gt;&lt;h3&gt;¿Y en qué consiste la jornada? &lt;/h3&gt;&lt;p&gt;En que nos vamos de acampada. ¿Qué? Bueno, más o menos &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh3.ggpht.com/-TDLPipsA7l8/TtYEJtHG-vI/AAAAAAAAApQ/FYmO0u5rZXs/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt; La acampada es en el &lt;a href="http://www.hoteles-silken.com/hotel-atlantida-santa-cruz-tenerife/" target="_blank"&gt;hotel Silken&lt;/a&gt; (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 &lt;a href="http://blogs.msdn.com/b/esmsdn/archive/2011/11/16/laboratorios-de-windows-azure-en-diciembre.aspx" target="_blank"&gt;laboratorios de desarrollo totalmente prácticos&lt;/a&gt;, enfangándonos de barro cantando alrededor del fuego. &lt;/p&gt;&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032500082&amp;amp;Culture=es-ES" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AzureCamps" border="0" alt="AzureCamps" src="http://lh4.ggpht.com/-2418leySqnI/TtYEKSCUOQI/AAAAAAAAApY/cyKsxNI9K4Q/AzureCamps%25255B5%25255D.jpg?imgmax=800" width="475" height="259"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;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. &lt;/p&gt;&lt;h3&gt;¿Qué tengo que llevar?&lt;/h3&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;Requisitos:&lt;/p&gt;&lt;p&gt;&lt;u&gt;Para los laboratorios más genéricos&lt;/u&gt; &lt;p&gt;Windows Vista SP2, Server 2008 SP2, Server 2008 R2 o Windows 7 &lt;p&gt;IIS con ASP.NET habilitado: &lt;ul&gt;&lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?linkid=186916"&gt;.NET Framework 4.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010-editions"&gt;Visual Studio 2010&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=WindowsAzureToolsVS2010?"&gt;SDK de Windows Azure&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff"&gt;SQL Server 2008 Express&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=08E52AC2-1D62-45F6-9A4A-4B76A8564A2B"&gt;SQL Server Management Studio&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Para los laboratorios de federación: &lt;ul&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/kb/974405"&gt;Runtime de Windows Identity&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=c148b2df-c7af-46bb-9162-2c9422208504"&gt;SDK de Windows Identity&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Y si estás interesado en el de PHP: &lt;ul&gt;&lt;li&gt;&lt;a href="http://azurephp.interoperabilitybridges.com/downloads/windows-azure-tools-for-eclipse"&gt;Eclipse con herramientas de Azure&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;¿Cuándo es?&lt;/h3&gt;&lt;p&gt;&lt;font style="background-color: #ffff00"&gt;¡Mañana!&lt;/font&gt; La fecha es el 1 de diciembre de 2011. ¿A qué estás esperando?&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032500082&amp;amp;Culture=es-ES" target="_blank"&gt;&lt;font size="5"&gt;Regístrate aquí&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-3638948859502140526?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/3638948859502140526/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/11/windows-azure-camps-en-tenerife.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/3638948859502140526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/3638948859502140526'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/11/windows-azure-camps-en-tenerife.html' title='Windows Azure Camps en Tenerife'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-TDLPipsA7l8/TtYEJtHG-vI/AAAAAAAAApQ/FYmO0u5rZXs/s72-c/wlEmoticon-smile%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2814497332210580672</id><published>2011-11-17T18:30:00.001Z</published><updated>2011-11-17T18:30:11.086Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='TenerifeDev'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windos Phone 7'/><title type='text'>[Evento] Windows Phone Roadshow en Tenerife</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-4qv1rTPOlxQ/TsVSoIKlGjI/AAAAAAAAAoc/kf1QxHLCYdI/s1600-h/WPRoadShow%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px; padding-top: 0px" title="WPRoadShow" border="0" alt="WPRoadShow" align="right" src="http://lh5.ggpht.com/-4jD4mkyoAtU/TsVSo16siLI/AAAAAAAAAok/mcRG8-3O_w4/WPRoadShow_thumb%25255B3%25255D.jpg?imgmax=800" width="282" height="82"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;¡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. &lt;/p&gt; &lt;p&gt;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 &lt;a href="http://www.tenerifedev.com" target="_blank"&gt;TenerifeDev&lt;/a&gt;, la &lt;a href="http://www.ull.es/" target="_blank"&gt;ULL&lt;/a&gt;, &lt;a href="http://www.microsoft.com/es-es/default.aspx" target="_blank"&gt;Microsoft&lt;/a&gt;, &lt;a href="http://www.intelequia.com/" target="_blank"&gt;Intelequia&lt;/a&gt;, &lt;a href="http://www.sdmprogramas.es/" target="_blank"&gt;SDM Programas&lt;/a&gt; y &lt;a href="http://www.plainconcepts.com/" target="_blank"&gt;Plain Concepts&lt;/a&gt; se mostrarán las capacidades de Windows Phone 7.5 Mango y cómo explotarlas desarrollando aplicaciones y juegos. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Si eres desarrollador o estás estudiando para serlo&lt;/strong&gt;, te interesará conocer el mundo de las plataformas móviles Microsoft de la mano de &lt;a href="http://geeks.ms/blogs/jyeray/" target="_blank"&gt;Josué Yeray&lt;/a&gt;, &lt;a href="http://geeks.ms/blogs/rserna/" target="_blank"&gt;Rafael Serna&lt;/a&gt; y &lt;a href="http://geeks.ms/blogs/adiazmartin/" target="_blank"&gt;Alberto Díaz&lt;/a&gt;, 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.&lt;/p&gt; &lt;p&gt;¡Habrán muchas sorpresas, regalos y…&lt;strong&gt;&lt;u&gt;algún teléfono para los más atentos&lt;/u&gt;&lt;/strong&gt;!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;El registro es totalmente gratuito&lt;/strong&gt;, así que no te puedes perder esta pedazo de ocasión. No olvides circular esta información a quien pudiera interesarle.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032499102&amp;amp;Culture=es-ES" target="_blank"&gt;&lt;font size="5"&gt;Regístrate aquí&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Agenda del evento:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;i&gt;09:00-09:30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Registro&lt;br&gt;&lt;/i&gt;&lt;i&gt;09:30-10:30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Por qué Windows Phone?&lt;br&gt;&lt;/i&gt;&lt;i&gt;10:30-12:00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Plataforma de desarrollo de aplicaciones y Juegos&lt;br&gt;&lt;/i&gt;&lt;i&gt;12:00-12:15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descanso &lt;br&gt;&lt;/i&gt;&lt;i&gt;12.15-13:15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Datos, Servicios y "Live Tiles" (Ventanas Vivas)&lt;br&gt;&lt;/i&gt;&lt;i&gt;13:15-14:00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Capacidades avanzadas de Windows Phone&lt;br&gt;&lt;/i&gt;&lt;i&gt;14:00-15:00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descanso&lt;br&gt;&lt;/i&gt;&lt;i&gt;15.00-16:00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Multitarea en Windows Phone&lt;br&gt;&lt;/i&gt;&lt;i&gt;16:00-16:15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Descanso&lt;br&gt;&lt;/i&gt;&lt;i&gt;16:15-17:15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Desarrollo paso a paso y publicación de "Zombsquare"&lt;br&gt;&lt;/i&gt;&lt;i&gt;17:15-17:45&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cómo comercializar tus aplicaciones y juegos en el Marketplace&lt;br&gt;&lt;/i&gt;&lt;i&gt;17:45-18:00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Recursos, Ayudas e Iniciativas&lt;/i&gt; &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/-7H3zZpf_GNk/TsVSpkoHg7I/AAAAAAAAAos/sDaDJXkgAeo/s1600-h/WP%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="WP" border="0" alt="WP" src="http://lh3.ggpht.com/-v5xbRr5edn8/TsVSqT8EUPI/AAAAAAAAAo0/M8x7PDdkKdg/WP_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="54"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/-0poHKC5epi0/TsVSrVNQymI/AAAAAAAAAo8/u4x7-hjJBsU/s1600-h/Intelequia%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Intelequia" border="0" alt="Intelequia" src="http://lh3.ggpht.com/-D810ragm2EA/TsVSsbE8YhI/AAAAAAAAApE/MPk0R5dUISU/Intelequia_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="129"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2814497332210580672?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2814497332210580672/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/11/si-el-windows-phone-roadshow-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2814497332210580672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2814497332210580672'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/11/si-el-windows-phone-roadshow-en.html' title='[Evento] Windows Phone Roadshow en Tenerife'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-4jD4mkyoAtU/TsVSo16siLI/AAAAAAAAAok/mcRG8-3O_w4/s72-c/WPRoadShow_thumb%25255B3%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8968261790327076921</id><published>2011-11-04T18:07:00.002Z</published><updated>2011-11-04T18:11:25.451Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Connect'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DNNWorld, DNN Azure Accelerator 6.1 y Windows Azure</title><content type='html'>&lt;p&gt;&lt;a title="DotNetNuke World Conference 2011" href="http://dotnetnukeworld.dotnetnuke.com/" target="_blank"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="DNNworld11logo_long_RGB" border="0" alt="DNNworld11logo_long_RGB" align="right" src="http://lh5.ggpht.com/-SR8MkiY16hw/TrQpxy0hFwI/AAAAAAAAAkM/tauPE2wO_Do/DNNworld11logo_long_RGB%25255B5%25255D.png?imgmax=800" width="240" height="58"&gt;&lt;/a&gt;La semana que viene comienza en Orlando la &lt;a href="http://dotnetnukeworld.dotnetnuke.com/" target="_blank"&gt;DotNetNuke World Conference 2011&lt;/a&gt;, la reunión anual donde se congregan los mayores expertos alrededor del CMS donde estaré personalmente.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Intro/Webinars/DNN-World-Keynote-Webcast-Registration.aspx" target="_blank"&gt;&lt;img style="margin: 0px 14px 0px 0px; display: inline; float: left" title="DNN_StdAnimeAd_World11_1" alt="DNN_StdAnimeAd_World11_1" align="left" src="http://lh5.ggpht.com/-6hx1SGL8PUU/TrQpzMnYC7I/AAAAAAAAAkU/e_l6XGJOtDw/DNN_StdAnimeAd_World11_1%25255B3%25255D.gif?imgmax=800" width="180" height="100"&gt;&lt;/a&gt;Este año el número total de de &lt;a href="http://dotnetnukeworld.dotnetnuke.com/Sessions.aspx" target="_blank"&gt;sesiones&lt;/a&gt; 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 &lt;a href="http://www.dotnetnuke.com/Intro/Webinars/DNN-World-Keynote-Webcast-Registration.aspx" target="_blank"&gt;para ver el KeyNote en directo de Shaun Walker&lt;/a&gt; a través de este enlace.&lt;/p&gt;&lt;p align="left"&gt;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:&lt;/p&gt;&lt;p&gt;1) &lt;a href="http://dotnetnukeworld.dotnetnuke.com/Speakers/bios/aid/19.aspx" target="_blank"&gt;Leveraging Azure Cloud Services&lt;/a&gt;.- 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.&lt;/p&gt;&lt;p&gt;2) &lt;a href="http://dotnetnukeworld.dotnetnuke.com/Speakers/bios/aid/8.aspx" target="_blank"&gt;DotNetNuke on Azure Cloud Servers&lt;/a&gt;.- 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. &lt;/p&gt;&lt;p&gt;3) &lt;a href="http://dotnetnukeworld.dotnetnuke.com/Speakers/bios/aid/14.aspx" target="_blank"&gt;File System Abstraction and Folder Providers in DotNetNuke 6.0&lt;/a&gt;.- 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 &lt;a href="http://www.intelequia.com/es-es/productos/dnnfolderproviders.aspx" target="_blank"&gt;Intelequia DNNFolderProviders&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;La agenda completa de la conferencia la podéis encontrar en &lt;a href="http://dotnetnukeworld.dotnetnuke.com/Schedule.aspx" target="_blank"&gt;este enlace&lt;/a&gt;, para que podáis decidir qué track os gusta más. Si vais a estar por allí, enviadme un twitt a &lt;a href="http://twitter.com/davidjrh" target="_blank"&gt;@davidjrh&lt;/a&gt; y quedamos.&lt;/p&gt;&lt;p&gt;Pero esta no es la única novedad de este post.&lt;/p&gt;&lt;h3&gt;&lt;a href="http://lh5.ggpht.com/-sWS37lcnfIo/TrQpztxaUeI/AAAAAAAAAkc/eGQbVCIygmI/s1600-h/Connect%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Connect" border="0" alt="Connect" align="right" src="http://lh5.ggpht.com/-kyerYqG7lLk/TrQp0qtyXJI/AAAAAAAAAkk/LSoQ3ucqucY/Connect_thumb%25255B2%25255D.png?imgmax=800" width="173" height="105"&gt;&lt;/a&gt;DotNetNuke Azure Accelerator 6.1&lt;/h3&gt;&lt;p&gt;Esta semana, aprovechando la publicación de la &lt;a href="http://dotnetnuke.codeplex.com/" target="_blank"&gt;versión 6.1 de DotNetNuke&lt;/a&gt;, he publicado en CodePlex una nueva versión del &lt;a href="http://dnnazureaccelerator.codeplex.com/" target="_blank"&gt;Azure Accelerator&lt;/a&gt; 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 &lt;a href="http://davidjrh.intelequia.com/2011/10/modificar-las-credenciales-rdp-en-los.html" target="_blank"&gt;cómo modificar las credenciales de RDP sin Visual Studio&lt;/a&gt; y &lt;a href="http://davidjrh.intelequia.com/2011/10/conectar-una-azure-cloud-drive.html" target="_blank"&gt;cómo conectar una Azure Cloud Drive a tu equipo&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;La lista de nuevas características de esta versión son:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;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)&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Los certificados X509 para el acceso RDP se pueden generar a través del mismo asistente&lt;/li&gt;&lt;li&gt;Moificada la validación de los controles de la interfaz de usuario con un Error Provider (no más ventanas emergentes)&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Añadidas validaciones para los nombres de los containers de Storage a través de expresiones regulares&lt;/li&gt;&lt;li&gt;Añadidas cajas de texto para indicar el nombre y tamaño del VHD inicial con el que se desplegará el gestor de contenidos&lt;/li&gt;&lt;li&gt;Añadidos paquetes de servicios pre-compilados para despliegues con RDP habilitado o sin él&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;li&gt;Recuerda que puedes crear tus propios paquetes personalizados de servicios y ponerlos dentro de la carpeta “/packages” del Accelerator para usarlos con el asistente&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Os dejo con algunas capturas de los nuevos pasos del asistente y el enlace a la descarga de la nueva versión. &lt;/p&gt;&lt;p&gt;Nos vemos en Orlando.&lt;/p&gt;&lt;p align="center"&gt;&lt;a href="http://dnnazureaccelerator.codeplex.com"&gt;&lt;font size="4"&gt;http://dnnazureaccelerator.codeplex.com&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;a href="http://lh5.ggpht.com/-04IiLuqYIDM/TrQp1tgSIPI/AAAAAAAAAks/m2YZORSIa_M/s1600-h/Step4_RemoteDesktop%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Step4_RemoteDesktop" border="0" alt="Step4_RemoteDesktop" src="http://lh6.ggpht.com/-U_7dt3l_lLg/TrQp2QWkvBI/AAAAAAAAAk0/dr1tcm2vT80/Step4_RemoteDesktop_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="176"&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/-Y-8IkOd01bM/TrQp3M8PxiI/AAAAAAAAAk8/hSuQTn-WhLo/s1600-h/Step5_VirtualNetwork%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Step5_VirtualNetwork" border="0" alt="Step5_VirtualNetwork" src="http://lh4.ggpht.com/-MvLYgUlrUWc/TrQp4M7nPHI/AAAAAAAAAlE/aC4_0KSiyyU/Step5_VirtualNetwork_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="176"&gt;&lt;/a&gt;&lt;a href="http://lh5.ggpht.com/-3W3ojX25_Ek/TrQp5RRrwzI/AAAAAAAAAlM/INwqeyjWnwM/s1600-h/Step6_PackageSelection%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Step6_PackageSelection" border="0" alt="Step6_PackageSelection" src="http://lh3.ggpht.com/-W4G-jGMiQtc/TrQp549TSCI/AAAAAAAAAlU/3tsM0n_RskY/Step6_PackageSelection_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="176"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8968261790327076921?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8968261790327076921/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/11/dnnworld-dnn-azure-accelerator-61-y.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8968261790327076921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8968261790327076921'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/11/dnnworld-dnn-azure-accelerator-61-y.html' title='DNNWorld, DNN Azure Accelerator 6.1 y Windows Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-SR8MkiY16hw/TrQpxy0hFwI/AAAAAAAAAkM/tauPE2wO_Do/s72-c/DNNworld11logo_long_RGB%25255B5%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8484020642204526739</id><published>2011-10-16T13:21:00.003+01:00</published><updated>2011-10-16T13:35:23.488+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='TenerifeDev'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Evento Desarrollando WebApps en la nube: Materiales</title><content type='html'>&lt;p&gt;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.&lt;/p&gt;&lt;h3&gt;&lt;/h3&gt;&lt;h3&gt;Imágenes del evento&lt;/h3&gt;&lt;p&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:b3c42fb3-57eb-4861-b07b-339450d171a7" class="wlWriterEditableSmartContent"&gt;&lt;table border=0 cellspacing=0 cellpadding=0 style='outline:none;border-style:none;margin:0px;padding:0px;width:410px;border-collapse:collapse;'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='margin:0px;padding:0px;outline:none;border-style:none;width:auto'&gt;&lt;a style="outline:none;border-style:none;margin:0px;padding:0px;" target="_blank" href="https://skydrive.live.com/redir.aspx?cid=c2398672056875bc&amp;amp;page=play&amp;amp;resid=C2398672056875BC!3143&amp;amp;type=5&amp;amp;authkey=nd2oro!0YsU%24&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos"&gt;&lt;img style="outline:none;border-style:none;padding:0px;margin:0px;border:0px;background:none;background-image:none;vertical-align:bottom;" alt="Ver &amp;aacute;lbum" title="Ver &amp;aacute;lbum" src="http://lh6.ggpht.com/-_SkMmTTa398/TprMWbY-BDI/AAAAAAAAAhU/4hiMQjWJzPI/TenerifeDev%252520-%252520Desarrollando%252520WebApps%252520en%252520la%252520nube%25255B6%25255D.jpg?imgmax=800" /&gt;&lt;/a&gt;&lt;div style='width:410px;text-align:center;overflow:visible;padding:0px;margin:0px;'&gt;&lt;div style='width:410px;overflow:visible;'&gt;&lt;a style="text-decoration:none;" href="https://skydrive.live.com/redir.aspx?cid=c2398672056875bc&amp;amp;page=browse&amp;amp;resid=C2398672056875BC!3143&amp;amp;type=5&amp;amp;authkey=nd2oro!0YsU%24&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos" target="_blank"&gt;&lt;span  style="line-height:1.26em;padding:0px;width:410px;font-size:26pt;font-family:'Segoe UI', helvetica, arial, sans-serif;"  defaultText="Escribe aquí el nombre del álbum"&gt;TenerifeDev - Desarrollando WebApps en la nube&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align:center;padding:9px 0px 0px 0px;margin:0px 0px 0px 0px;font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;"&gt;&lt;table border=0 cellspacing=0 cellpadding=0 style="text-align:center;width:auto;margin-left:auto;margin-right:auto;padding:0px;outline:none;border-style:none;border-collapse:collapse;"&gt;&lt;tr&gt;                                       &lt;td style="vertical-align:top;outline:none;border-style:none;margin:0px;padding:6px 12px 6px 0px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=c2398672056875bc&amp;amp;page=play&amp;amp;resid=C2398672056875BC!3143&amp;amp;type=5&amp;amp;authkey=nd2oro!0YsU%24&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;VER PRESENTACIÓN&lt;/a&gt;&lt;/td&gt;                                       &lt;td style="vertical-align:top;outline:none;border-style:none;margin:0px;padding:6px 0px 6px 0px;"&gt;&lt;a href="https://skydrive.live.com/redir.aspx?cid=c2398672056875bc&amp;amp;page=downloadphotos&amp;amp;resid=C2398672056875BC!3143&amp;amp;type=5&amp;amp;Bsrc=Photomail&amp;amp;Bpub=SDX.Photos&amp;amp;authkey=nd2oro!0YsU%24" border="0" target="_blank" style="font-family:'Segoe UI', helvetica, arial, sans-serif;font-size:8pt;outline:none;border-style:none;text-decoration: none;padding:0px;margin:0px;"&gt;DESCARGAR TODO&lt;/a&gt;&lt;/td&gt;                                                                            &lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/p&gt;&lt;h3&gt;Vídeo completo de la sesión&lt;/h3&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:e6247be4-64e1-44a3-8d6a-2f1d4f33181a" class="wlWriterEditableSmartContent"&gt;&lt;div id="7c15254a-ec10-430e-8cda-6db050d8d3c6" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=adhXYW2lK7A" target="_new"&gt;&lt;img src="http://lh6.ggpht.com/-bdiFI0PIvoY/TprMWzMoYSI/AAAAAAAAAhc/PbGyBKcJre4/videod7d44c602f84%25255B6%25255D.jpg?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('7c15254a-ec10-430e-8cda-6db050d8d3c6'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/adhXYW2lK7A?hl=en&amp;amp;hd=1\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/adhXYW2lK7A?hl=en&amp;amp;hd=1\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;448\&amp;quot; height=\&amp;quot;252\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Slides&lt;/h3&gt;&lt;div style="width: 550px;" id="__ss_9680757"&gt;&lt;strong style="display: block; margin-top: 12px; margin-right: 0px; margin-bottom: 4px; margin-left: 0px;"&gt;&lt;a href="http://www.slideshare.net/intelequiass/tenerifedev-desarrollando-webapps-en-la-nube" title="TenerifeDev - Desarrollando WebApps en la nube" target="_blank"&gt;TenerifeDev - Desarrollando WebApps en la nube&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9680757" width="550" height="460" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8484020642204526739?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8484020642204526739/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/10/evento-desarrollando-webapps-en-la-nube.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8484020642204526739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8484020642204526739'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/10/evento-desarrollando-webapps-en-la-nube.html' title='Evento Desarrollando WebApps en la nube: Materiales'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-_SkMmTTa398/TprMWbY-BDI/AAAAAAAAAhU/4hiMQjWJzPI/s72-c/TenerifeDev%252520-%252520Desarrollando%252520WebApps%252520en%252520la%252520nube%25255B6%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-3357146860179327727</id><published>2011-10-14T00:22:00.001+01:00</published><updated>2011-10-14T00:22:35.292+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure Connect'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Conectar una Azure Cloud Drive directamente a tu equipo</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-h2DeY0l1-bY/TpdxztoTNEI/AAAAAAAAAdE/zLphXmYQdu0/s1600-h/Connect%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Connect" border="0" alt="Connect" align="right" src="http://lh6.ggpht.com/--gc6PDFciYs/Tpdx0TPRfiI/AAAAAAAAAdM/o6ed-EQkLyA/Connect_thumb%25255B1%25255D.png?imgmax=800" width="240" height="146"&gt;&lt;/a&gt;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.&lt;/p&gt; &lt;p&gt;Y es que desde mi última entrada sobre &lt;a href="http://davidjrh.intelequia.com/2011/09/modificar-el-contenido-de-un-vhd-en.html"&gt;cómo editar los contenidos de un VHD en Azure&lt;/a&gt; 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. &lt;/p&gt; &lt;h3&gt;¿Qué es Windows Azure Connect? &lt;/h3&gt; &lt;p&gt;Hace tiempo que ya &lt;a href="http://davidjrh.intelequia.com/2010/12/windows-azure-connect-por-que-porque.html"&gt;escribí una entrada sobre este servicio de Windows Azure&lt;/a&gt; –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? &lt;/p&gt; &lt;p&gt;Y ahí está el &lt;em&gt;quid&lt;/em&gt; 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?&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-pD5p349ltWM/Tpdx4gEq_CI/AAAAAAAAAdU/g-cKdbYu0T8/s1600-h/Mapped-drive-on-Azure4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Mapped-drive-on-Azure" border="0" alt="Mapped-drive-on-Azure" src="http://lh6.ggpht.com/-7dx3KP9T2UM/Tpdx5p-wY8I/AAAAAAAAAdc/sHwIdpaZlY8/Mapped-drive-on-Azure_thumb2.jpg?imgmax=800" width="450" height="292"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;¿Qué necesito?&lt;/h3&gt; &lt;p&gt;Para poder conectar tu equipo a una unidad VHD en Azure, necesitarás lo siguiente:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;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 &lt;a href="http://www.windowsazure.com"&gt;http://www.windowsazure.com&lt;/a&gt;.  &lt;li&gt;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 &lt;a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2011/04/16/using-smb-to-share-a-windows-azure-drive-among-multiple-role-instances.aspx"&gt;este post de Dinesh Haridas&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Pasos a seguir&lt;/h3&gt; &lt;p&gt;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.&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-C0AFdOH8GZs/Tpdx-7kJJkI/AAAAAAAAAdk/Vtw9inHhvCY/s1600-h/WindowsAzureConnectBeta5.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="WindowsAzureConnectBeta" border="0" alt="WindowsAzureConnectBeta" src="http://lh6.ggpht.com/-nzB3eLvQ5O0/Tpdx_moIn6I/AAAAAAAAAds/bBUAZxbg8c0/WindowsAzureConnectBeta_thumb3.jpg?imgmax=800" width="450" height="279"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-IC7RXW_gsqI/TpdyBPery8I/AAAAAAAAAd0/1Ujt9SCxLgY/s1600-h/RelayRegion4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="RelayRegion" border="0" alt="RelayRegion" src="http://lh3.ggpht.com/-qlbMaUStuYc/TpdyB8c4m9I/AAAAAAAAAd8/_dSalDtjhso/RelayRegion_thumb2.jpg?imgmax=800" width="450" height="298"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-jcoFIt75PAM/TpdyC2vF8cI/AAAAAAAAAeE/pNGHh164kW8/s1600-h/InstallLocalEndPoint3.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="InstallLocalEndPoint" border="0" alt="InstallLocalEndPoint" src="http://lh4.ggpht.com/-nOa3aigTnHw/TpdyDrTuqqI/AAAAAAAAAeM/632KxQ5vqqQ/InstallLocalEndPoint_thumb1.jpg?imgmax=800" width="172" height="133"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Una vez instalado, podrás ver en el área de notificación de la barra de tareas de Windows el icono correspondiente al servicio. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-4ABBDWFOhxw/TpdyHmwasmI/AAAAAAAAAeU/LnGXP7zJb6w/s1600-h/AzureConnectClient4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="AzureConnectClient" border="0" alt="AzureConnectClient" src="http://lh4.ggpht.com/-AojVxEbSDEw/TpdyLVYjkxI/AAAAAAAAAec/yTtLN3uZdcQ/AzureConnectClient_thumb2.jpg?imgmax=800" width="450" height="208"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-VI-Yo9HVguY/TpdyMHRnWJI/AAAAAAAAAek/9t66O4XI1GU/s1600-h/ConnectDiagnostics4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ConnectDiagnostics" border="0" alt="ConnectDiagnostics" src="http://lh4.ggpht.com/-ch8vLOrFS2w/TpdyNKIUeGI/AAAAAAAAAes/RS_zMxMLGhE/ConnectDiagnostics_thumb2.jpg?imgmax=800" width="450" height="225"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/--1iMpdNND9c/TpdyQmk5_iI/AAAAAAAAAe0/-S5CmTu1v-Q/s1600-h/GetActivationToken3.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="GetActivationToken" border="0" alt="GetActivationToken" src="http://lh6.ggpht.com/-DWxzhbr7fls/TpdyRfdZJUI/AAAAAAAAAe8/wGFYnFNiD58/GetActivationToken_thumb1.jpg?imgmax=800" width="145" height="99"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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 &lt;a href="http://dnnazureaccelerator.codeplex.com/SourceControl/list/changesets"&gt;descargar la última versión del código fuente&lt;/a&gt; y abrirlo en Visual Studio 2010, modificando las propiedades de Red Virtual del paquete antes de volver a generarlo. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-dQlTMniK70A/TpdyS-La7mI/AAAAAAAAAfE/V_nbBFLXegw/s1600-h/IntroducingActivationToken4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IntroducingActivationToken" border="0" alt="IntroducingActivationToken" src="http://lh4.ggpht.com/-WfSJ48uWWNc/TpdyTot-lqI/AAAAAAAAAfM/GAiONueGStI/IntroducingActivationToken_thumb2.jpg?imgmax=800" width="450" height="165"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;6) Una vez que hemos desplegado el paquete en Azure (hay un &lt;a href="http://dnnazureaccelerator.codeplex.com/documentation"&gt;excelente video al respecto&lt;/a&gt;, 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):&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-Ic-six8zyQU/TpdyUVTVNUI/AAAAAAAAAfU/U2N_TjrkKWw/s1600-h/Management-Network4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Management Network" border="0" alt="Management Network" src="http://lh3.ggpht.com/-6YnlZFj1stw/TpdyVVV64XI/AAAAAAAAAfc/kLg0YjP4U-0/Management-Network_thumb2.jpg?imgmax=800" width="450" height="354"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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 &amp;lt;direccionIPv6&amp;gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-FuqyLlKx2SA/TpdyWQIDn4I/AAAAAAAAAfk/dOPjqn1tSVQ/s1600-h/Ipv6%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Ipv6" border="0" alt="Ipv6" src="http://lh5.ggpht.com/-eZl5mu5Rc2A/TpdyaLBViQI/AAAAAAAAAfs/LlcDyP0dMTE/Ipv6_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="306"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-3jsUmoHperk/TpdybhGiqjI/AAAAAAAAAf0/nf3BRgaNj54/s1600-h/PingResponse%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="PingResponse" border="0" alt="PingResponse" src="http://lh5.ggpht.com/-mJEJVvULgWM/Tpdyfj8vxlI/AAAAAAAAAf8/UCXFoMhRt2U/PingResponse_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="163"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;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:&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;netsh advfirewall firewall add rule name="ICMPv6" dir=in action=allow enable=yes protocol=icmpv6&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Para resolver más problemas de conectividad, puedes consultar el enlace siguiente: &lt;a title="http://msdn.microsoft.com/en-us/library/gg433016.aspx" href="http://msdn.microsoft.com/en-us/library/gg433016.aspx"&gt;http://msdn.microsoft.com/en-us/library/gg433016.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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: \\&amp;lt;IPv6&amp;gt;&lt;font color="#ff0000"&gt;.ipv6-literal.net&lt;/font&gt;\&amp;lt;carpeta&amp;gt;, donde &amp;lt;IPv6&amp;gt; es la dirección remota a la que hemos hecho ping en el paso anterior &lt;u&gt;sustituyendo el carácter “:” por “-“ &lt;/u&gt;(es la &lt;a href="http://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/d61f8efe-c9a7-4fd7-a7e9-f936c2154c54/" target="_blank"&gt;nomenclatura para el comando “net use”&lt;/a&gt;), y &amp;lt;carpeta&amp;gt; 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).&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-cttqjLIEMKc/Tpdygl2pNKI/AAAAAAAAAgE/o_XVQ8oOE58/s1600-h/MappingTheDrive%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="MappingTheDrive" border="0" alt="MappingTheDrive" src="http://lh3.ggpht.com/-yf3aybq4IEw/TpdyhuyNuXI/AAAAAAAAAgM/QJR9VmpL6gU/MappingTheDrive_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-I_n--yxyszo/TpdyimhHKYI/AAAAAAAAAgU/aj4ar7PAtrE/s1600-h/Credentials%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Credentials" border="0" alt="Credentials" src="http://lh4.ggpht.com/-IH70Gt8BRMo/Tpdyj_jRZeI/AAAAAAAAAgc/1LTaGrKqU3s/Credentials_thumb%25255B3%25255D.jpg?imgmax=800" width="400" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-emyyyKQwg_4/TpdynwVeclI/AAAAAAAAAgk/fksAF1e9qwQ/s1600-h/DriveMapped%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DriveMapped" border="0" alt="DriveMapped" src="http://lh6.ggpht.com/-10BKuG7hP0k/Tpdyo-IHNnI/AAAAAAAAAgs/4JAEDzE4eWc/DriveMapped_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="281"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Conclusiones&lt;/h3&gt; &lt;p&gt;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.&amp;nbsp; &lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;h3&gt;Algunas reflexiones&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;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 &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh6.ggpht.com/-MURgbzzzpW0/Tpdypp5I8RI/AAAAAAAAAg0/Iwb5te2iVDU/wlEmoticon-smile2.png?imgmax=800"&gt;  &lt;li&gt;¿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 ==&amp;gt; Esto tengo que probarlo &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Lengua fuera" src="http://lh6.ggpht.com/-OO0siqgsDhs/TpdyqGyGAII/AAAAAAAAAg8/LLOCRYavIEU/wlEmoticon-smilewithtongueout2.png?imgmax=800"&gt;  &lt;li&gt;Tal y como comentó &lt;a href="http://twitter.com/jbrinkman"&gt;Joe Brinkman&lt;/a&gt;, 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:&lt;br&gt;&lt;a href="http://lh6.ggpht.com/-qOj6_m9d8a0/Tpdyt8oHyWI/AAAAAAAAAhE/l9dYjV0nWvs/s1600-h/jbrinkman5.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="jbrinkman" border="0" alt="jbrinkman" src="http://lh3.ggpht.com/-JrUqvCTth-g/TpdyuRkOeVI/AAAAAAAAAhM/X-PMjMKhOXo/jbrinkman_thumb3.jpg?imgmax=800" width="400" height="85"&gt;&lt;/a&gt;  &lt;li&gt;¿Qué tal funcionaría una instancia ExtraSmall si sólo es para servir ficheros a través de la red? &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;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...&lt;/p&gt;      &lt;p&gt;Espero que sea de utilidad. Para mí lo es...¡y mucho!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-3357146860179327727?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/3357146860179327727/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/10/conectar-una-azure-cloud-drive.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/3357146860179327727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/3357146860179327727'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/10/conectar-una-azure-cloud-drive.html' title='Conectar una Azure Cloud Drive directamente a tu equipo'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/--gc6PDFciYs/Tpdx0TPRfiI/AAAAAAAAAdM/o6ed-EQkLyA/s72-c/Connect_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-156175658661439833</id><published>2011-10-02T21:02:00.001+01:00</published><updated>2011-10-02T21:02:15.097+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Modificar las credenciales RDP en los roles de Azure sin Visual Studio</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-mp-0pu6VzJs/TojDEhYuwBI/AAAAAAAAAbc/f1ijd8j3IW8/s1600-h/remotedesktop%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="remotedesktop" border="0" alt="remotedesktop" align="right" src="http://lh5.ggpht.com/-hCm6TR4QBa4/TojDFSnDCjI/AAAAAAAAAbg/eW8b7iLAP9I/remotedesktop_thumb%25255B3%25255D.png?imgmax=800" width="156" height="156"&gt;&lt;/a&gt;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. &lt;/p&gt; &lt;p&gt;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?). &lt;/p&gt; &lt;p&gt;Para ello usaremos:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Utilidad &lt;a href="http://msdn.microsoft.com/en-us/library/windows/hardware/ff548309(v=vs.85).aspx"&gt;makecert.exe&lt;/a&gt;, para generar los certificados&lt;/li&gt; &lt;li&gt;Consola de comandos de PowerShell&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;NOTA: el paquete “cspkg” a desplegar en Azure estará “compilado” como que tiene RDP habilitado&lt;/strong&gt; (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.&lt;/p&gt; &lt;h3&gt;Generando manualmente el certificado X509&lt;/h3&gt; &lt;p&gt;1) &lt;strong&gt;Crear un certificado a través de línea de comandos&lt;/strong&gt; con la utilidad “makecert.exe”, haciendo exportable la clave:&lt;/p&gt; &lt;p align="left"&gt;&lt;font face="Courier New"&gt;makecert.exe -r -pe -a sha1 -ss My -len 2048 -sky exchange -n "CN=Azure Deployment" mycertificate.cer&lt;/font&gt;&lt;/p&gt; &lt;p align="left"&gt;&lt;a href="http://lh4.ggpht.com/-Jq5_fbQtiSo/TojDGB5zZzI/AAAAAAAAAbk/k3g0n_eis7I/s1600-h/Habilitar%252520RDP%252520en%252520Azure%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Habilitar RDP en Azure" border="0" alt="Habilitar RDP en Azure" src="http://lh3.ggpht.com/-EV8aJIBzL2E/TojDGgn0qNI/AAAAAAAAAbo/JgIs6w0RkAw/Habilitar%252520RDP%252520en%252520Azure_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="92"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Es importante indicar el parámetro &lt;strong&gt;“-sky exchange”&lt;/strong&gt; ya que si no nos encontraremos con el error “&lt;em&gt;The remote desktop certificate with thumbprint ‘xxx’ does not have a type of key exchange and cannot be used for decryption&lt;/em&gt;” al intentar usar este certificado en Azure.&lt;/p&gt; &lt;p&gt;2) &lt;strong&gt;Exportar el certificado en formato “PFX”&lt;/strong&gt; para subirlo y asociarlo al servicio en Azure. Para ello:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Abrimos el gestor de certificados desde una consolad e comandos tecleando “certmgr.msc”&lt;/li&gt; &lt;li&gt;Localizamos el certificado que acabamos de generar y pulsamos el botón “Exportar” para abrir el asistente de exportación&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-S_IHEAeneXA/TojDHcsSEDI/AAAAAAAAAbs/DnahwSz3sEA/s1600-h/Exportar%252520Certificado%252520a%252520PFX%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Exportar Certificado a PFX" border="0" alt="Exportar Certificado a PFX" src="http://lh6.ggpht.com/-9Z1wmAMesuA/TojDILrN7ZI/AAAAAAAAAbw/v3MDHTc7Pas/Exportar%252520Certificado%252520a%252520PFX_thumb%25255B2%25255D.jpg?imgmax=800" width="350" height="321"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Seguimos las instrucciones del asistente, exportando la clave privada así como todas las propiedades extendidas del certificado&lt;br&gt;&lt;a href="http://lh5.ggpht.com/-nKjF900PuV8/TojDI62J5FI/AAAAAAAAAb0/HecyclRJ8xI/s1600-h/Export%252520PFX%252520Assistant%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Export PFX Assistant" border="0" alt="Export PFX Assistant" src="http://lh4.ggpht.com/-G20Lu-YgqBU/TojDJf5WxYI/AAAAAAAAAb4/CKDulYlFEIs/Export%252520PFX%252520Assistant_thumb%25255B2%25255D.jpg?imgmax=800" width="350" height="318"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Finalmente introducimos una contraseña que usaremos en el momento de importarlo en Azure y un nombre de fichero “.pfx”&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;3) &lt;strong&gt;Importar el certificado en Windows Azure&lt;/strong&gt; 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:&lt;br&gt;&lt;a href="http://lh3.ggpht.com/-bZ_gYPFSC1E/TojDJzVHtgI/AAAAAAAAAb8/tfXT6v-WmkE/s1600-h/Add%252520Certificate%252520to%252520the%252520service%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Add Certificate to the service" border="0" alt="Add Certificate to the service" src="http://lh3.ggpht.com/-igsHBG37GoU/TojDKR09pHI/AAAAAAAAAcA/U68AK_f7SRw/Add%252520Certificate%252520to%252520the%252520service_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="100"&gt;&lt;/a&gt;&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-wvgmy2ETZ7A/TojDK1SoxOI/AAAAAAAAAcE/Utz5eA0TpS8/s1600-h/Upload%252520certificate%252520to%252520Azure%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Upload certificate to Azure" border="0" alt="Upload certificate to Azure" src="http://lh4.ggpht.com/-Gyh6joWJpkI/TojDLl0R-MI/AAAAAAAAAcI/qhKYwp5MXMs/Upload%252520certificate%252520to%252520Azure_thumb%25255B2%25255D.jpg?imgmax=800" width="350" height="153"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Generar la contraseña encriptada&lt;/h3&gt; &lt;p&gt;El siguiente paso, es generar la contraseña que deseemos para nuestras credenciales RDP. Una de &lt;a href="http://davidjrh.visibli.com/share/tNVela"&gt;las formas más sencillas&lt;/a&gt;, para los amantes de PowerShell, es a través de la consola usando los pasos siguientes:&lt;/p&gt; &lt;p&gt;1) Abrir una consola de comandos PowerShell, a través de Inicio&amp;gt;Accesorios&amp;gt;Windows PowerShell (ejecutar como “Administrador” pulsando el botón derecho sobre el icono)&lt;/p&gt; &lt;p&gt;2) Ejecutar los comandos siguientes pulsando Enter después de cada línea:&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Courier New"&gt;[Reflection.Assembly]::LoadWithPartialName("System.Security")&lt;br&gt;$pass = [Text.Encoding]::UTF8.GetBytes("&amp;lt;Password&amp;gt;")&lt;br&gt;$content = new-object Security.Cryptography.Pkcs.ContentInfo –argumentList (,$pass)&lt;br&gt;$env = new-object Security.Cryptography.Pkcs.EnvelopedCms $content&lt;br&gt;$env.Encrypt((new-object System.Security.Cryptography.Pkcs.CmsRecipient(gi cert:\CurrentUser\My\&amp;lt;Thumbprint&amp;gt;)))&lt;br&gt;[Convert]::ToBase64String($env.Encode())&lt;/font&gt;&lt;/p&gt;     &lt;p&gt;Recuerda cambiar el valor "&amp;lt;Password&amp;gt;” por la contraseña que desees. También debes modificar el valor “&amp;lt;Thumbprint&amp;gt;” 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:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-fnDcbDE8ijg/TojDMDebHgI/AAAAAAAAAcM/7uBqLRJ5goI/s1600-h/Certificate%252520Thumbprint%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Certificate Thumbprint" border="0" alt="Certificate Thumbprint" src="http://lh6.ggpht.com/-jJIwDcUoALI/TojDM42yv0I/AAAAAAAAAcQ/aE7NQF851nE/Certificate%252520Thumbprint_thumb%25255B2%25255D.jpg?imgmax=800" width="350" height="174"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;3) Copia esa información en el Notepad, eliminando los caracteres de nueva línea.&lt;/p&gt; &lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC448761.jpg" width="450" height="317"&gt;&lt;/p&gt;  &lt;h3&gt;Introduciendo los valores en el fichero de configuración del servicio&lt;/h3&gt; &lt;p&gt;Finalmente, con los valores anteriores, abrimos el fichero de configuración del servicio (.cscfg) y modificamos los valores solicitados:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/--mYM3YLtN-w/TojDNiKzR2I/AAAAAAAAAcU/cH_skOM32Ig/s1600-h/Service%252520configuration%252520file%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Service configuration file" border="0" alt="Service configuration file" src="http://lh6.ggpht.com/-UrkxFw1bFrc/TojDOYDsQTI/AAAAAAAAAcY/6yF3mBn6-fk/Service%252520configuration%252520file_thumb%25255B3%25255D.jpg?imgmax=800" width="475" height="105"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Indicar que la fecha de expiración de la cuenta debe estar en formato ISO 8601 “yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK”.&lt;/p&gt; &lt;h3&gt;Conclusión&lt;/h3&gt; &lt;p&gt;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. &lt;/p&gt; &lt;p&gt;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!!). &lt;/p&gt; &lt;p&gt;Os dejo con dos capturas de pantalla como avance. Lo subiré a CodePlex en breve:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-p_tbdNCPGGk/TojDPE5essI/AAAAAAAAAcc/k7Wgq7bIaOE/s1600-h/RDP%252520Settings%252520on%252520the%252520DNN%252520Azure%252520Accelerator%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="RDP Settings on the DNN Azure Accelerator" border="0" alt="RDP Settings on the DNN Azure Accelerator" src="http://lh5.ggpht.com/-DNN7ltLA5m4/TojDQNuEC0I/AAAAAAAAAcg/5-NZCM0OPuE/RDP%252520Settings%252520on%252520the%252520DNN%252520Azure%252520Accelerator_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-EhU2oLDe4SI/TojDQ0huvvI/AAAAAAAAAck/MRWTLih9oC8/s1600-h/RDP%252520enabled%252520packages%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="RDP enabled packages" border="0" alt="RDP enabled packages" src="http://lh6.ggpht.com/-6qU2FAgOBvQ/TojDRRYMq4I/AAAAAAAAAco/2SlxS8n1d1g/RDP%252520enabled%252520packages_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="328"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Espero que sirva de ayuda.&lt;/p&gt; &lt;p&gt;Un saludo a todos.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-156175658661439833?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/156175658661439833/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/10/modificar-las-credenciales-rdp-en-los.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/156175658661439833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/156175658661439833'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/10/modificar-las-credenciales-rdp-en-los.html' title='Modificar las credenciales RDP en los roles de Azure sin Visual Studio'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-hCm6TR4QBa4/TojDFSnDCjI/AAAAAAAAAbg/eW8b7iLAP9I/s72-c/remotedesktop_thumb%25255B3%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4364164024003387049</id><published>2011-09-28T17:41:00.004+01:00</published><updated>2011-10-07T15:11:33.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>[Evento] Desarrollando aplicaciones web en la nube</title><content type='html'>&lt;p style="color: red; font-size: 12pt; font-weight: bold;"&gt;AVISO: Cambio de hora a las 16:00 GMT+0 y con posibilidad de verlo por webcast en directo. Ver detalles m&amp;aacute;s abajo.&lt;br/&gt;&lt;br /&gt;Si tienes problemas con el enlace del correo de confirmación del webcast, usa este (se abre a las 15:30) &lt;a href="https://www.livemeeting.com/cc/_XML/wwe_uk/join?id=1032496233&amp;role=attend&amp;pw=97480C47" target="_new"&gt;https://www.livemeeting.com/cc/_XML/wwe_uk/join?id=1032496233&amp;role=attend&amp;pw=97480C47&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-dHrNs6MmKBo/ToNOP3ysguI/AAAAAAAAAbQ/mZpzNvW26eA/s1600-h/Logo%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Logo" border="0" alt="Logo" align="right" src="http://lh3.ggpht.com/-wLHiec38ar4/ToNOQdo-OYI/AAAAAAAAAbU/TzZ9bg3mQps/Logo_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="53"&gt;&lt;/a&gt;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. &lt;/p&gt;&lt;p&gt;Si alguien asistió a la charla en la &lt;a href="http://davidjrh.intelequia.com/2011/07/evento-office365-dotnetnuke-y-windows_19.html" target="_blank"&gt;TLP2k11&lt;/a&gt; o al &lt;a href="http://davidjrh.intelequia.com/2011/07/materiales-del-evento-cms-azure.html" target="_blank"&gt;CMS Azure RoadShow&lt;/a&gt; de Julio que no se preocupe, porque esta vez nos centraremos en aspectos más técnicos: &lt;em&gt;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.&lt;/em&gt;&amp;nbsp; &lt;/p&gt;&lt;p&gt;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. &lt;/p&gt;&lt;p&gt;Os dejo los detalles de la charla. No podéis faltar. &lt;/p&gt;&lt;p&gt;P.D. la de Windows 8…en breve, cuando a &lt;a href="http://geeks.ms/blogs/adiazmartin/" target="_blank"&gt;Alberto&lt;/a&gt; deje de caérsele la baba &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh3.ggpht.com/-MiSQaJDjdHA/ToNOQ7h8eNI/AAAAAAAAAbY/tDWM5wm76Lw/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Evento TenerifeDev - Desarrollando aplicaciones web en la nube&lt;/font&gt;&lt;br /&gt;Fecha y hora&lt;/strong&gt;: 7 de octubre de 2011, de &lt;font color=red&gt;16:00 a 17:30 GMT+0&lt;/font&gt;&lt;br /&gt;&lt;strong&gt;Lugar&lt;/strong&gt;: Salón de grados de la Escuela Técnica Superior de Ingeniería Informática (ETSII)&lt;br /&gt;&lt;strong&gt;Descripción&lt;/strong&gt;: 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.&lt;br /&gt;&lt;strong&gt;Ponente&lt;/strong&gt;: &lt;a href="http://davidjrh.intelequia.com" target="_blank"&gt;David Rodríguez&lt;/a&gt;&lt;/p&gt;&lt;span style="color: #ff0000;"&gt;&lt;strong&gt;URL para registro del webcast en directo:&lt;/strong&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496233&amp;amp;Culture=es-ES"&gt;https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496233&amp;amp;Culture=es-ES&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4364164024003387049?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4364164024003387049/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/09/evento-desarrollando-aplicaciones-web.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4364164024003387049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4364164024003387049'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/09/evento-desarrollando-aplicaciones-web.html' title='[Evento] Desarrollando aplicaciones web en la nube'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-wLHiec38ar4/ToNOQdo-OYI/AAAAAAAAAbU/TzZ9bg3mQps/s72-c/Logo_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4788585331575121621</id><published>2011-09-03T14:36:00.001+01:00</published><updated>2011-09-03T14:36:30.844+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Modificar el contenido de un VHD en Azure</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-CvThvBgSLrc/TmImEe8WI7I/AAAAAAAAAas/a3u8Yj9sTF0/s1600-h/network-drive-3%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="network-drive-3" border="0" alt="network-drive-3" align="right" src="http://lh5.ggpht.com/-yby6h25DyDs/TmImFDnuNOI/AAAAAAAAAaw/fHfFrzFWH2A/network-drive-3_thumb%25255B2%25255D.png?imgmax=800" width="147" height="147"&gt;&lt;/a&gt;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.&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;h3&gt;Descargar, modificar, subir&lt;/h3&gt; &lt;p&gt;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.&lt;/p&gt; &lt;h4&gt;Método 1: Usa una herramienta de interfaz gráfica&lt;/h4&gt; &lt;p&gt;Cerebrata está trabajando en una herramienta específica para esta tarea llamada&lt;strong&gt;Azure Page Blob Manager&lt;/strong&gt;. &lt;a href="http://www.cerebrata.com/Blog/post/Azure-Page-Blob-Manager-A-utility-for-managing-Windows-Azure-Page-Blobs-and-Azure-Drives.aspx"&gt;Puedes descargarla aquí&lt;/a&gt; (todavía está en beta y puedes descargarla y usarla).&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-3JmdxZ5FDBQ/TmImGTgpQSI/AAAAAAAAAa0/wtvscsVmYWM/s1600-h/Cerebrata%252520Azure%252520Page%252520Blob%252520Manager%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Cerebrata Azure Page Blob Manager" border="0" alt="Cerebrata Azure Page Blob Manager" src="http://lh4.ggpht.com/-pyR9wUVnv2E/TmImHSwoDTI/AAAAAAAAAa4/20oob50YDfg/Cerebrata%252520Azure%252520Page%252520Blob%252520Manager_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="338"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Características&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;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:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Puedes ver los contenidos de un page blob montado como una Azure Drive&lt;/strong&gt;. 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.  &lt;li&gt;&lt;strong&gt;Puedes subir VHDs a Windows Azure &lt;/strong&gt;como page blobs.  &lt;li&gt;Puedes &lt;strong&gt;descargar page blobs&lt;/strong&gt;.  &lt;li&gt;Puedes &lt;strong&gt;ver el tamaño total del page blob así como el espacio ocupado actualmente por el page blob&lt;/strong&gt; (que te debería indicar cuánto te están facturando actualmente por este page blob en particular).  &lt;li&gt;Puedes ver &lt;strong&gt;cuántas páginas están ocupadas en el page blob están ocupadas &lt;/strong&gt;(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.  &lt;li&gt;Esta utilidad sólo listará los page blobs. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Método 2: usa una herramienta de línea de comandos&lt;/h4&gt; &lt;p&gt;También puedes descargar/subir el VHD usando una herramienta de línea de comandos como “AccelCon.exe” que fue incluida en el &lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/61397"&gt;paquete original de DNN Azure Accelerator&lt;/a&gt; (&lt;a href="http://azureaccelerators.codeplex.com/"&gt;desarrollada por Slalom Consulting&lt;/a&gt;). Esta herramienta no está incluida en el último distribuible así que la he puesto a descarga en este enlace:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="https://intelequia.blob.core.windows.net/downloads/AccelCon.zip" href="https://intelequia.blob.core.windows.net/downloads/AccelCon.zip"&gt;https://intelequia.blob.core.windows.net/downloads/AccelCon.zip&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p align="center"&gt;&lt;a href="http://lh6.ggpht.com/-civtvEx1pHs/TmImI3P45NI/AAAAAAAAAa8/GWt3AWy46-M/s1600-h/AccelCon%25255B8%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="AccelCon" border="0" alt="AccelCon" src="http://lh3.ggpht.com/-XpiDLey_Hhc/TmImJp9Gr4I/AAAAAAAAAbA/t2DxUZwJuAY/AccelCon_thumb%25255B3%25255D.jpg?imgmax=800" width="450" height="227"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Puedes subir el VHD como un page blob usando esta sintáxis:&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;accelcon.exe /u /v ".\DotNetNuke.vhd" "azure-accelerator-drives/dotnetnuke.vhd"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;&lt;/h4&gt; &lt;h4&gt;Método 3: ¿Por qué descargar el VHD?&lt;/h4&gt; &lt;p&gt;Si &lt;strong&gt;habilitas RDP (escritorio remoto)&lt;/strong&gt;, puedes copiar/pegar contenidos y muchas otras tareas. Personalmente, cuando necesito actualizar los contenidos por un cambio de versión de DNN, normalmente:: &lt;/p&gt; &lt;ol&gt; &lt;li&gt;conecto vía RDP a una instancia  &lt;li&gt;navego a Codeplex y descargo el paquete de actualización (se puede navegar desde dentro de los roles)  &lt;li&gt;descomprimo la actualización dentro de la unidad&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-I4JR08_Llrc/TmImKfmKOpI/AAAAAAAAAbE/QY_8qdu_kgg/s1600-h/Modifying%252520via%252520RDP%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Modifying via RDP" border="0" alt="Modifying via RDP" src="http://lh4.ggpht.com/-vyLx0fx4O0M/TmImLB8J7YI/AAAAAAAAAbI/b4sOdtDfRFM/Modifying%252520via%252520RDP_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="373"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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 (&lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266570"&gt;ver documentación&lt;/a&gt;), pero es algo &lt;strong&gt;&lt;u&gt;altamente recomendable&lt;/u&gt;&lt;/strong&gt; para ésta y otras tareas.&lt;/p&gt; &lt;p&gt;En breve se anunciarán nuevas carcterísticas del &lt;a href="http://dnnazureaccelerator.codeplex.com"&gt;DNN Azure Accelerator&lt;/a&gt; respecto a estas tareas de actualización, así que permanece en sintonía.&lt;/p&gt; &lt;p&gt;Un saludo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4788585331575121621?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4788585331575121621/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/09/modificar-el-contenido-de-un-vhd-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4788585331575121621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4788585331575121621'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/09/modificar-el-contenido-de-un-vhd-en.html' title='Modificar el contenido de un VHD en Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-yby6h25DyDs/TmImFDnuNOI/AAAAAAAAAaw/fHfFrzFWH2A/s72-c/network-drive-3_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4914592972726117307</id><published>2011-09-03T14:05:00.001+01:00</published><updated>2011-09-03T14:05:49.372+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Modifying the VHD contents on Azure</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-CvThvBgSLrc/TmImEe8WI7I/AAAAAAAAAas/a3u8Yj9sTF0/s1600-h/network-drive-3%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="network-drive-3" border="0" alt="network-drive-3" align="right" src="http://lh5.ggpht.com/-yby6h25DyDs/TmImFDnuNOI/AAAAAAAAAaw/fHfFrzFWH2A/network-drive-3_thumb%25255B2%25255D.png?imgmax=800" width="147" height="147"&gt;&lt;/a&gt;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.&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;h3&gt;Downloading, modifying, uploading&lt;/h3&gt; &lt;p&gt;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. &lt;/p&gt; &lt;h4&gt;Method 1: Use a graphical tool&lt;/h4&gt; &lt;p&gt;Cerebrata is working on a specific tool for this task that is name &lt;strong&gt;Azure Page Blob Manager&lt;/strong&gt;. &lt;a href="http://www.cerebrata.com/Blog/post/Azure-Page-Blob-Manager-A-utility-for-managing-Windows-Azure-Page-Blobs-and-Azure-Drives.aspx"&gt;You can check it here&lt;/a&gt; (is still in beta and you can download and use it)&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-3JmdxZ5FDBQ/TmImGTgpQSI/AAAAAAAAAa0/wtvscsVmYWM/s1600-h/Cerebrata%252520Azure%252520Page%252520Blob%252520Manager%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Cerebrata Azure Page Blob Manager" border="0" alt="Cerebrata Azure Page Blob Manager" src="http://lh4.ggpht.com/-pyR9wUVnv2E/TmImHSwoDTI/AAAAAAAAAa4/20oob50YDfg/Cerebrata%252520Azure%252520Page%252520Blob%252520Manager_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="338"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt; &lt;p&gt;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: &lt;ul&gt; &lt;li&gt;&lt;strong&gt;You can view the contents of a page blob mounted as an Azure Drive&lt;/strong&gt;. 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.&lt;/li&gt; &lt;li&gt;&lt;strong&gt;You can upload VHDs in Windows Azure Blob storage&lt;/strong&gt; as page blobs.&lt;/li&gt; &lt;li&gt;You can &lt;strong&gt;download page blobs&lt;/strong&gt;.&lt;/li&gt; &lt;li&gt;You can &lt;strong&gt;view the total size of the page blob and also the space currently occupied by the page blob&lt;/strong&gt; (which would tell you how much are you being charged for this particular page blob).&lt;/li&gt; &lt;li&gt;You can see &lt;strong&gt;how many pages in the page blob are occupied&lt;/strong&gt; (blue boxes in the screenshot below). Each box below represents 1/400&lt;sup&gt;th&lt;/sup&gt; of the total page blob size. Clicking on the blue box will tell you how many bytes are occupied.&lt;/li&gt; &lt;li&gt;This utility will list the page blobs only.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Method 2: use a command line tool&lt;/h4&gt; &lt;p&gt;You can also download/upload the VHD using a command line tool like “AccelCon.exe” that was included in the &lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/61397"&gt;original DNN Azure Accelerator&lt;/a&gt; package (&lt;a href="http://azureaccelerators.codeplex.com/"&gt;developed by Slalom Consulting&lt;/a&gt;). This tool is not included on the latest build so you can download it from this link:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a title="https://intelequia.blob.core.windows.net/downloads/AccelCon.zip" href="https://intelequia.blob.core.windows.net/downloads/AccelCon.zip"&gt;https://intelequia.blob.core.windows.net/downloads/AccelCon.zip&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p align="center"&gt;&lt;a href="http://lh6.ggpht.com/-civtvEx1pHs/TmImI3P45NI/AAAAAAAAAa8/GWt3AWy46-M/s1600-h/AccelCon%25255B8%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AccelCon" border="0" alt="AccelCon" src="http://lh3.ggpht.com/-XpiDLey_Hhc/TmImJp9Gr4I/AAAAAAAAAbA/t2DxUZwJuAY/AccelCon_thumb%25255B3%25255D.jpg?imgmax=800" width="450" height="227"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can upload the VHD as a page blob using this command line syntax:&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;accelcon.exe /u /v ".\DotNetNuke.vhd" "azure-accelerator-drives/dotnetnuke.vhd"&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;&lt;/h4&gt; &lt;h4&gt;Method 3: Why to download the VHD?&lt;/h4&gt; &lt;p&gt;If you &lt;strong&gt;enable RDP&lt;/strong&gt;, 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: &lt;/p&gt; &lt;ol&gt; &lt;li&gt;connect via RDP to one instance &lt;/li&gt; &lt;li&gt;navigate to Codeplex and download the upgrade package (web navigation is enabled inside the roles) &lt;/li&gt; &lt;li&gt;extract the update into the drive. &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-I4JR08_Llrc/TmImKfmKOpI/AAAAAAAAAbE/QY_8qdu_kgg/s1600-h/Modifying%252520via%252520RDP%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Modifying via RDP" border="0" alt="Modifying via RDP" src="http://lh4.ggpht.com/-vyLx0fx4O0M/TmImLB8J7YI/AAAAAAAAAbI/b4sOdtDfRFM/Modifying%252520via%252520RDP_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="373"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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 (&lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266570"&gt;see documentation&lt;/a&gt;), but&lt;strong&gt;&lt;u&gt; I highly recommend it&lt;/u&gt;&lt;/strong&gt; for this and other purposes.&lt;/p&gt;   &lt;p&gt;Some new features will be announced respect to this on the next release of the &lt;a href="http://dnnazureaccelerator.codeplex.com"&gt;DNN Azure Accelerator&lt;/a&gt;, so stay tuned :)   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4914592972726117307?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4914592972726117307/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/09/modifying-vhd-contents-on-azure.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4914592972726117307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4914592972726117307'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/09/modifying-vhd-contents-on-azure.html' title='Modifying the VHD contents on Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-yby6h25DyDs/TmImFDnuNOI/AAAAAAAAAaw/fHfFrzFWH2A/s72-c/network-drive-3_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-1446303482260911866</id><published>2011-08-19T15:16:00.001+01:00</published><updated>2011-08-19T15:16:38.414+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>[Video] Usando el DotNetNuke Azure Accelerator</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-XXhGlGiZp-U/Tk5wPaOPNpI/AAAAAAAAAac/OjOHdWpXvjk/s1600-h/video%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="video" border="0" alt="video" align="right" src="http://lh4.ggpht.com/-g8pan4iXc2U/Tk5wQdGwQqI/AAAAAAAAAag/Ss6ScS-q0wU/video_thumb%25255B3%25255D.png?imgmax=800" width="150" height="150"&gt;&lt;/a&gt;Ayer &lt;a href="http://www.dotnetnuke.com/Resources/Blogs/EntryId/3154/Using-the-DotNetNuke-Azure-Accelerator.aspx" target="_blank"&gt;Joe Brinkman&lt;/a&gt;, cofundador de DotNetNuke Corp. publicó un video muy detallado de cómo desplegar DotNetNuke sobre Windows Azure usando el &lt;a href="http://dnnazureaccelerator.codeplex.com/"&gt;DNN Azure Accelerator&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;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. &lt;/p&gt; &lt;p&gt;Sin más, os dejo con él. Saludos y buen fin de semana.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.dotnetnuke.com/Resources/Blogs/EntryId/3154/Using-the-DotNetNuke-Azure-Accelerator.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="DNNAzureAcceleratorVideo400" border="0" alt="DNNAzureAcceleratorVideo400" src="http://lh3.ggpht.com/-PR1OA4GTUSw/Tk5wRTlfP5I/AAAAAAAAAak/HHD38dBpE7w/DNNAzureAcceleratorVideo400%25255B5%25255D.jpg?imgmax=800" width="400" height="302"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-1446303482260911866?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/1446303482260911866/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/video-usando-el-dotnetnuke-azure.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1446303482260911866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1446303482260911866'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/video-usando-el-dotnetnuke-azure.html' title='[Video] Usando el DotNetNuke Azure Accelerator'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-g8pan4iXc2U/Tk5wQdGwQqI/AAAAAAAAAag/Ss6ScS-q0wU/s72-c/video_thumb%25255B3%25255D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-5296786980958383533</id><published>2011-08-17T20:44:00.001+01:00</published><updated>2011-08-17T20:44:06.339+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Word'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><title type='text'>Crear entradas en el blog de DotNetNuke con Microsoft Word</title><content type='html'>&lt;p&gt;Una de las interesantes posibilidades del blog de DotNetNuke es la de poder publicar entradas a través de una aplicación especializada como puede ser &lt;a href="http://explore.live.com/windows-live-writer?os=other" target="_blank"&gt;Windows Live Writer&lt;/a&gt;. Con la misma tecnología subyacente, se puede usar el mismo Microsoft Word (versión 2007 o superior) para publicar estas entradas. Por petición de varios conocidos pongo el paso a paso de cómo se configura. &lt;/p&gt; &lt;h3&gt;1) Crear una entrada de blog con Word&lt;/h3&gt; &lt;p&gt;Para realizar esta tarea, usamos el menú Archivo&amp;gt;Nuevo… y de la lista de plantillas seleccionamos “Artículo de blog” para luego pulsar el botón “Crear”:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-yhO0e_HmwP4/TkwZxPkyeoI/AAAAAAAAAZU/cteVw1ueoU4/s1600-h/NewBlogPost%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="NewBlogPost" border="0" alt="NewBlogPost" src="http://lh3.ggpht.com/-RoWPlug5lyE/TkwZyKxiZbI/AAAAAAAAAZY/pSVd9tYGUWY/NewBlogPost_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="308"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;2) Registrar la dirección del blog&lt;/h3&gt; &lt;p&gt;Si es la primera vez que escribimos una entrada, nos saldrá una ventana indicando si queremos configurar la conexión con el blog. Pulsamos la opción de “Registrar ahora” para configurar la conexión con DotNetNuke.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-0dFASC5AdMc/TkwZzDvx_MI/AAAAAAAAAZc/bNHjTg8WCLU/s1600-h/RegisterBlog%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="RegisterBlog" border="0" alt="RegisterBlog" src="http://lh4.ggpht.com/-uK17LGM7_og/TkwZzzwYOnI/AAAAAAAAAZg/TznTUAsKPVw/RegisterBlog_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="123"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;De la lista de proveedores de blog, seleccionamos “Otros” (como podéis ver, se puede usar Word para muchos tipos de blog, aunque hay un estándar denominado &lt;a href="http://es.wikipedia.org/wiki/MetaWeblog" target="_blank"&gt;MetaWebLogAPI&lt;/a&gt; para este tipo de comunicaciones que es el que usa DotNetNuke):&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-2pI1NihFl7I/TkwZ0yHmsCI/AAAAAAAAAZk/GbTOg3nHOi4/s1600-h/NewBlogAccount%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="NewBlogAccount" border="0" alt="NewBlogAccount" src="http://lh3.ggpht.com/-4RfTKTKn4Ic/TkwZ14UPQRI/AAAAAAAAAZo/ji6DD050cY4/NewBlogAccount_thumb%25255B2%25255D.jpg?imgmax=800" width="350" height="146"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;a href="http://lh6.ggpht.com/-OEDQ1bYx2ic/TkwZ2grDq2I/AAAAAAAAAZs/ACRjwb0sZm4/s1600-h/NewAccountConfig%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="NewAccountConfig" border="0" alt="NewAccountConfig" src="http://lh5.ggpht.com/-3aNNUAo07Gs/TkwZ3gHmkTI/AAAAAAAAAZw/8ryJKDlGPQs/NewAccountConfig_thumb%25255B2%25255D.jpg?imgmax=800" width="375" height="256"&gt;&lt;/a&gt;&lt;/h3&gt; &lt;p&gt;En esta ventana hay que introducir los datos siguientes:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;URL de publicación del blog&lt;/strong&gt;. Para obtener esta dirección, tenemos que iniciar sesión en nuestro sitio web de DotNetNuke e ir al módulo de blogs. Una vez allí, seleccionamos desde el módulo de administración del blog el enlace “Configurar mi blog”.&lt;br&gt;&lt;a href="http://lh3.ggpht.com/-9KD-BpG1Bbs/TkwZ4Sftc3I/AAAAAAAAAZ0/n4R8wHRyXbM/s1600-h/AdminBlog%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AdminBlog" border="0" alt="AdminBlog" src="http://lh4.ggpht.com/-K12MH0KDtJE/TkwZ5EhXfII/AAAAAAAAAZ4/PJT8YJwqlu4/AdminBlog_thumb%25255B1%25255D.jpg?imgmax=800" width="182" height="109"&gt;&lt;/a&gt;&lt;br&gt;que nos lleva a la pantalla de configuración del blog donde aparece la URL. Cópiala y pégala en la caja de texto. &lt;br&gt;&lt;a href="http://lh5.ggpht.com/-MER5ovh9-lY/TkwZ6O64rqI/AAAAAAAAAZ8/kY-6Mz-8868/s1600-h/MetaWeblogOptions%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="MetaWeblogOptions" border="0" alt="MetaWeblogOptions" src="http://lh3.ggpht.com/-BP6zqx1x0O8/TkwZ7NKutAI/AAAAAAAAAaA/z-VM92Cu-dY/MetaWeblogOptions_thumb%25255B3%25255D.jpg?imgmax=800" width="400" height="75"&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Nombre de usuario: es el nombre de usuario de tu sitio de DotNetNuke con el que estás publicando entradas en el blog (date cuenta que con DNN se permiten distintos blogs por usuario)&lt;/li&gt; &lt;li&gt;Contraseña: la contraseña asociada&lt;br&gt;NOTA: deja las opciones de imágenes como aparece de forma predeterminada, es decir, usando “Proveedor de mi blog”&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Una vez realizados estos pasos, ya tienes configurada la conexión con DotNetNuke. Esta configuración será recordada para la próxima vez. Puedes configurar varias cuentas de blog ideal para escribir el artículo una vez y publicarlo en diversos sitios web.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-bTubmMQpPR0/TkwZ8L49hiI/AAAAAAAAAaE/eWeFJTQgWrI/s1600-h/AccountSuccess%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AccountSuccess" border="0" alt="AccountSuccess" src="http://lh5.ggpht.com/-nIqWoqMDwqE/TkwZ85C5U5I/AAAAAAAAAaI/Z651ZVhvRD0/AccountSuccess_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="82"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;3) Escribir el artículo&lt;/h3&gt; &lt;p&gt;El interfaz de usuario del tipo de entrada de blog es algo distinta de la de un documento, pero con opciones suficientes para escribir casi cualquier entrada (digo “casi”, porque las opciones de Plugins que tiene el Windows Live Writer me parece más completa). &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-gWoMly7Xqeg/TkwZ-QfmSqI/AAAAAAAAAaM/dkmOfaKqq4I/s1600-h/BlogEntry%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="BlogEntry" border="0" alt="BlogEntry" src="http://lh3.ggpht.com/-P7VAKf2hUUA/TkwZ_aLNgFI/AAAAAAAAAaQ/X88h5gn-470/BlogEntry_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="234"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt;       &lt;h3&gt;4) Publicar&lt;/h3&gt; &lt;p&gt;Una vez escrito el artículo podemos pulsar el botón de “Publicar” para que automáticamente se publique la entrada en el blog. Como opciones adicionales, podemos publicar la entrada como borrador, añadir/quitar categorías, etc.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-Qn3TGYNbe5U/TkwaAQhLU_I/AAAAAAAAAaU/ebKT_Q5HtM0/s1600-h/BlogEntryPublishedAsDraft%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Entrada de post publicada como borrador" border="0" alt="Entrada de post publicada como borrador" src="http://lh5.ggpht.com/-xStfxwiUOKg/TkwaBHsATcI/AAAAAAAAAaY/wx9mZP5suTQ/BlogEntryPublishedAsDraft_thumb%25255B2%25255D.jpg?imgmax=800" width="400" height="327"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Otra opción interesante es la de poder editar una entrada existente, pulsando el botón “Abrir existente…”, que nos permite seleccionar de una lista las entradas que actualmente están publicadas en nuestro blog de DotNetNuke.&lt;/p&gt; &lt;p&gt;Espero que os haya sido útil.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-5296786980958383533?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/5296786980958383533/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/crear-entradas-en-el-blog-de-dotnetnuke.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/5296786980958383533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/5296786980958383533'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/crear-entradas-en-el-blog-de-dotnetnuke.html' title='Crear entradas en el blog de DotNetNuke con Microsoft Word'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-RoWPlug5lyE/TkwZyKxiZbI/AAAAAAAAAZY/pSVd9tYGUWY/s72-c/NewBlogPost_thumb%25255B2%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-7785548467210661167</id><published>2011-08-12T20:36:00.001+01:00</published><updated>2011-08-12T20:36:31.039+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><title type='text'>DotNetNuke 6.0: Fix para el módulo de Dashboard en Azure</title><content type='html'>&lt;p&gt;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”. &lt;/p&gt; &lt;p&gt;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.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;procedure&lt;/span&gt; [dbo].[Dashboard_GetDbFileInfo]&lt;br /&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;br /&gt;        &lt;span class="kwrd"&gt;CASE&lt;/span&gt; &lt;span class="kwrd"&gt;LOWER&lt;/span&gt;(&lt;span class="kwrd"&gt;RIGHT&lt;/span&gt;(filename,3))&lt;br /&gt;            &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; &lt;span class="str"&gt;'mdf'&lt;/span&gt; &lt;span class="kwrd"&gt;THEN&lt;/span&gt; &lt;span class="str"&gt;'DATA'&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; &lt;span class="str"&gt;'ldf'&lt;/span&gt; &lt;span class="kwrd"&gt;THEN&lt;/span&gt; &lt;span class="str"&gt;'LOG'&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;ELSE&lt;/span&gt; &lt;span class="str"&gt;'UNKNOWN'&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;END&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; FileType,&lt;br /&gt;        Name,&lt;br /&gt;        &lt;span class="kwrd"&gt;size&lt;/span&gt;*8 &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;Size&lt;/span&gt;,&lt;br /&gt;        filename&lt;br /&gt;    &lt;span class="kwrd"&gt;FROM&lt;/span&gt; &lt;font style="background-color: #ffff00"&gt;sysfiles&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GO&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Para solucionarlo, modificamos el procedimiento almacenado de la siguiente manera, para que sirva tanto en entorno SQL Azure como on-premise:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;ALTER&lt;/span&gt; &lt;span class="kwrd"&gt;procedure&lt;/span&gt; [dbo].[Dashboard_GetDbFileInfo]&lt;br /&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;br /&gt;    &lt;br /&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt; ServerProperty(&lt;span class="str"&gt;'Edition'&lt;/span&gt;) = &lt;span class="str"&gt;'SQL Azure'&lt;/span&gt; &lt;br /&gt;    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;br /&gt;            &lt;span class="str"&gt;'DATA'&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; FileType,&lt;br /&gt;            db_name() &lt;span class="kwrd"&gt;as&lt;/span&gt; Name,&lt;br /&gt;            (8.0 * &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(reserved_page_count)) &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;Size&lt;/span&gt;,&lt;br /&gt;            &lt;span class="str"&gt;'c:\...\Not_accesible_on_SQL_Azure.mdf'&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; Filename&lt;br /&gt;        &lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_db_partition_stats    &lt;br /&gt;    &lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;ELSE&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;BEGIN&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;EXECUTE&lt;/span&gt; sp_executesql N&lt;span class="str"&gt;'SELECT &lt;br /&gt;            CASE LOWER(RIGHT(filename,3))&lt;br /&gt;                WHEN '&lt;/span&gt;&lt;span class="str"&gt;'mdf'&lt;/span&gt;&lt;span class="str"&gt;' THEN '&lt;/span&gt;&lt;span class="str"&gt;'DATA'&lt;/span&gt;&lt;span class="str"&gt;'&lt;br /&gt;                WHEN '&lt;/span&gt;&lt;span class="str"&gt;'ldf'&lt;/span&gt;&lt;span class="str"&gt;' THEN '&lt;/span&gt;&lt;span class="str"&gt;'LOG'&lt;/span&gt;&lt;span class="str"&gt;'&lt;br /&gt;                ELSE '&lt;/span&gt;&lt;span class="str"&gt;'UNKNOWN'&lt;/span&gt;&lt;span class="str"&gt;'&lt;br /&gt;            END as FileType,&lt;br /&gt;            Name,&lt;br /&gt;            size*8 as Size,&lt;br /&gt;            filename&lt;br /&gt;        FROM sys.files'&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;END&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;GO&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;font face="Trebuchet MS"&gt;&lt;font style="font-size: 9.7pt" color="#444444"&gt;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.&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;font face="Trebuchet MS"&gt;&lt;font style="font-size: 9.7pt" color="#444444"&gt;&lt;a href="http://lh6.ggpht.com/-cjrRcLWEpAo/TkWAs-gxDnI/AAAAAAAAAZM/1WyECPnbDBE/s1600-h/Dashboard%252520fix%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="Dashboard fix" border="0" alt="Dashboard fix" src="http://lh3.ggpht.com/-cAPi3e-6xMY/TkWAvaskhVI/AAAAAAAAAZQ/DLYhZk3ws1g/Dashboard%252520fix_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="360"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;font face="Trebuchet MS"&gt;&lt;font style="font-size: 9.7pt" color="#444444"&gt;Espero que sirva de ayuda (o por lo menos para acordarme yo mismo de esto).&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Un saludo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-7785548467210661167?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/7785548467210661167/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dotnetnuke-60-fix-para-el-modulo-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7785548467210661167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7785548467210661167'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dotnetnuke-60-fix-para-el-modulo-de.html' title='DotNetNuke 6.0: Fix para el módulo de Dashboard en Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-cAPi3e-6xMY/TkWAvaskhVI/AAAAAAAAAZQ/DLYhZk3ws1g/s72-c/Dashboard%252520fix_thumb%25255B2%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-7931506779482452764</id><published>2011-08-12T15:48:00.002+01:00</published><updated>2011-08-15T13:00:06.188+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office365'/><category scheme='http://www.blogger.com/atom/ns#' term='BPOS'/><title type='text'>Migración manual de BPOS a Office 365: dos cosas que deberías saber</title><content type='html'>&lt;a href="http://lh3.ggpht.com/-VDK7qfVdZMs/TkU9F9W-qAI/AAAAAAAAAYw/_hgbh5LhNBE/s1600-h/office_365%25255B3%25255D.jpg"&gt;&lt;img align="right" alt="office_365" border="0" height="144" src="http://lh6.ggpht.com/-Ba17OKhD-Lg/TkU9GubGvkI/AAAAAAAAAY0/lLeXmiVKReU/office_365_thumb%25255B1%25255D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; float: right; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="office_365" width="240" /&gt;&lt;/a&gt;Despué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.&lt;br /&gt;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.&lt;br /&gt;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.&lt;br /&gt;&lt;h3&gt;¿Y entonces qué significa eso de Migración Manual?&lt;/h3&gt;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. &lt;br /&gt;¿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.&lt;br /&gt;&lt;h3&gt;¿Cómo se realiza una migración manual de BPOS a O365?&lt;/h3&gt;Hay varios métodos, desde el más manual hasta alguno automatizado con herramientas de terceros como &lt;a href="http://migrationwiz.zendesk.com/entries/20049337-how-do-i-perform-a-bpos-to-office-365-migration" target="_blank"&gt;MigrationWiz&lt;/a&gt;. 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:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://whitepages.unlimitedviz.com/2011/05/how-to-manually-migrate-from-bpos-to-office-365/" target="_blank"&gt;How to Manually Migrate from BPOS to Office 365&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;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. &lt;br /&gt;&lt;h3&gt;A destacar…&lt;/h3&gt;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 &lt;strong&gt;eliminar el dominio primero de BPOS para luego darlo de alta en 365&lt;/strong&gt;, 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).&lt;br /&gt;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.&lt;br /&gt;&lt;h3&gt;Dos cosas que deberías saber…&lt;/h3&gt;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:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Una vez replicados los registros MX de los DNS, cualquier correo entrante es devuelto con el mensaje de error “Relay Access Denied”&lt;/strong&gt; (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&lt;strong&gt; fecha de hoy la única alternativa es poniéndose en contacto por teléfono con el servicio de soporte de FOPE&lt;/strong&gt; 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.&lt;br /&gt;Para más información sobre este error, ver estos enlaces:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cgoosen.com/2011/07/moving-from-bpos-to-office365-550-5-4-1-relay-access-denied/"&gt;http://www.cgoosen.com/2011/07/moving-from-bpos-to-office365-550-5-4-1-relay-access-denied/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://community.office365.com/en-us/f/160/p/7682/31381.aspx#31381"&gt;http://community.office365.com/en-us/f/160/p/7682/31381.aspx#31381&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;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&lt;/strong&gt;. 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? &lt;br /&gt;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. &lt;u&gt;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.&lt;/u&gt; Una vez eliminados los alias del anterior dominio, los correos comenzaron a entrar correctamente en O365.&lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-_ISce4ziLZU/TkU9HXSPssI/AAAAAAAAAY4/6u_OZej9N14/s1600-h/Eliminar%252520Alias%252520en%252520BPOS%25255B5%25255D.jpg"&gt;&lt;img alt="Eliminar Alias en BPOS" border="0" height="205" src="http://lh3.ggpht.com/-LmbpE8eu-sk/TkU9IML1DTI/AAAAAAAAAY8/5EZGpSnoIfE/Eliminar%252520Alias%252520en%252520BPOS_thumb%25255B3%25255D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Eliminar Alias en BPOS" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;strong&gt;EDIT 15/08/2011:&lt;/strong&gt; 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.&lt;/li&gt;&lt;/ol&gt;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.&lt;br /&gt;Espero que esta información sirva de ayuda.&lt;br /&gt;Un saludo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-7931506779482452764?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/7931506779482452764/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/migracion-manual-de-bpos-office-365-dos.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7931506779482452764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7931506779482452764'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/migracion-manual-de-bpos-office-365-dos.html' title='Migración manual de BPOS a Office 365: dos cosas que deberías saber'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-Ba17OKhD-Lg/TkU9GubGvkI/AAAAAAAAAY0/lLeXmiVKReU/s72-c/office_365_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4159918232667395246</id><published>2011-08-04T22:35:00.001+01:00</published><updated>2011-08-04T22:35:27.642+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Disponible fix para el paquete de actualización a DNN 6.0 en Windows Azure</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-0RxRqmjpzK0/TjsQk_q2nAI/AAAAAAAAAYg/E6DJ8A8cU8w/s1600-h/SQLAzure_200_thumb%25255B1%25255D%25255B2%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SQLAzure_200_thumb[1]" border="0" alt="SQLAzure_200_thumb[1]" align="right" src="http://lh5.ggpht.com/-suKMvAleTBc/TjsQls1j4yI/AAAAAAAAAYk/of-PT7J59H8/SQLAzure_200_thumb%25255B1%25255D_thumb.png?imgmax=800" width="200" height="58"&gt;&lt;/a&gt;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:&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/-ZldbAWGBlnY/TjsQmnWLK1I/AAAAAAAAAYo/cWz3DwCyND0/s1600-h/Upgrading%252520from%25252005.06.03%252520to%25252006.00.00_thumb%25255B2%25255D%25255B2%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Upgrading from 05.06.03 to 06.00.00_thumb[2]" border="0" alt="Upgrading from 05.06.03 to 06.00.00_thumb[2]" src="http://lh4.ggpht.com/-wDhhL6vYSB4/TjsQnmVi2FI/AAAAAAAAAYs/K4FCeXUCgzs/Upgrading%252520from%25252005.06.03%252520to%25252006.00.00_thumb%25255B2%25255D_thumb.jpg?imgmax=800" width="450" height="607"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;En el enlace siguiente puedes descargar un documento con la vista detallada de estos errores &lt;a title="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857" href="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857"&gt;http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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):&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Stored Procedure “GetFile”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Stored Procedure “GetFileById”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Stored Procedure “GetAllFiles”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Stored Procedure “GetFiles”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Creating PK on “PortalLocalization”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Table 'PortalLocalization' already has a primary key defined on it. &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Stored Procedure “GetVendorsByEmail”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="177"&gt; &lt;p&gt;Stored Procedure “GetBanner”&lt;/p&gt;&lt;/td&gt; &lt;td valign="top" width="399"&gt; &lt;p&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Para solucionarlo, puedes seguir una de estas dos propuestas:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Usar el paquete corregido en vez del paquete oficial, que he puesto a descarga en&amp;nbsp; &lt;a title="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266856" href="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266856"&gt;http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266856&lt;/a&gt;  &lt;li&gt;Aplicar el siguiente script T-SQL después de aplicar el paquete oficial de actualización&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="https://skydrive.live.com/embedicon.aspx/P%c3%bablico/Upgrading%20from%2005.06.03%20to%2006.00.00%20on%20Windows%20Azure.zip?cid=c2398672056875bc&amp;amp;sc=documents" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt; &lt;p&gt;Hope this helps,&lt;/p&gt; &lt;p&gt;David Rodriguez&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4159918232667395246?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4159918232667395246/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/disponible-fix-para-el-paquete-de.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4159918232667395246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4159918232667395246'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/disponible-fix-para-el-paquete-de.html' title='Disponible fix para el paquete de actualización a DNN 6.0 en Windows Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-suKMvAleTBc/TjsQls1j4yI/AAAAAAAAAYk/of-PT7J59H8/s72-c/SQLAzure_200_thumb%25255B1%25255D_thumb.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-417119205725949606</id><published>2011-08-04T22:23:00.003+01:00</published><updated>2011-08-04T22:25:36.563+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DNN 6.0 upgrade package fix available for Azure</title><content type='html'>&lt;a href="http://lh5.ggpht.com/-ZDCZ20RP-eY/TjsNttuvDAI/AAAAAAAAAYQ/Prl7kXGTxhk/s1600-h/SQLAzure_200%25255B3%25255D.png"&gt;&lt;img align="right" alt="SQLAzure_200" border="0" height="58" src="http://lh6.ggpht.com/-ZIP5_CYTedc/TjsNuuGUy3I/AAAAAAAAAYU/36c5V45h4_0/SQLAzure_200_thumb%25255B1%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; float: right; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="SQLAzure_200" width="200" /&gt;&lt;/a&gt;When trying to upgrade a DotNetNuke instance from 05.06.03 to 06.00.00 on Windows Azure using the official distribution &lt;u&gt;upgrade&lt;/u&gt; package, you will encounter the following error: &lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://lh5.ggpht.com/-Z_XtqWIZrnE/TjsNvoNrlrI/AAAAAAAAAYY/kk1R8tX8XKk/s1600-h/Upgrading%252520from%25252005.06.03%252520to%25252006.00.00%25255B4%25255D.jpg"&gt;&lt;img alt="Upgrading from 05.06.03 to 06.00.00 on Azure" border="0" height="607" src="http://lh4.ggpht.com/-fObn5RG1vIE/TjsNw8od3gI/AAAAAAAAAYc/Ch9F0ABvYCc/Upgrading%252520from%25252005.06.03%252520to%25252006.00.00_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Upgrading from 05.06.03 to 06.00.00 on Azure" width="450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;A detailed view of these erros can be found at  &lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857"&gt;http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266857&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The summary of SQL Azure incompatible issues are:&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Stored Procedure “GetFile”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Stored Procedure “GetFileById”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Stored Procedure “GetAllFiles”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Stored Procedure “GetFiles”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Creating PK on “PortalLocalization”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Table 'PortalLocalization' already has a primary key defined on it. &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Stored Procedure “GetVendorsByEmail”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top" width="177"&gt;Stored Procedure “GetBanner”&lt;/td&gt; &lt;td valign="top" width="399"&gt;Deprecated feature 'String literals as column aliases' is not supported in this version of SQL Server.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;You can follow &lt;b&gt;&lt;u&gt;one&lt;/u&gt;&lt;/b&gt; of these solutions: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use the fixed upgrade package instead the official package, that is available for download at &lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266856" title="http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266856"&gt;http://dnnazureaccelerator.codeplex.com/releases/view/71164#DownloadId=266856&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Apply the following T-SQL script fix after the official upgrade package has been applied&lt;/li&gt;&lt;/ul&gt;&lt;iframe frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="https://skydrive.live.com/embedicon.aspx/P%c3%bablico/Upgrading%20from%2005.06.03%20to%2006.00.00%20on%20Windows%20Azure.zip?cid=c2398672056875bc&amp;amp;sc=documents" style="background-color: #fcfcfc; height: 115px; padding: 0px; width: 98px;" title="Preview"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Hope this helps,&lt;br /&gt;David Rodriguez&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-417119205725949606?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/417119205725949606/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dnn-60-upgrade-package-fix-available.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/417119205725949606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/417119205725949606'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dnn-60-upgrade-package-fix-available.html' title='DNN 6.0 upgrade package fix available for Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-ZIP5_CYTedc/TjsNuuGUy3I/AAAAAAAAAYU/36c5V45h4_0/s72-c/SQLAzure_200_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-3746477642866956776</id><published>2011-08-04T01:12:00.002+01:00</published><updated>2011-08-04T01:16:55.446+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DotNetNuke Azure Accelerator 6.0 listo para descarga!</title><content type='html'>&lt;a href="http://lh3.ggpht.com/-S3QnCGjaBfc/TjnfwVgM5tI/AAAAAAAAAXk/BTxU2CSeYk4/s1600-h/DNN6%252520Wheel%25255B4%25255D.png"&gt;&lt;img align="right" alt="DNN6 Wheel" border="0" height="72" src="http://lh6.ggpht.com/-m-_9WmWBako/TjnfxHsc7PI/AAAAAAAAAXo/NMYtN3AJ26E/DNN6%252520Wheel_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; float: right; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DNN6 Wheel" width="150" /&gt;&lt;/a&gt;Después de un &lt;a href="http://davidjrh.blogspot.com/2011/07/dnn-azure-accelerator-60-is-coming.html"&gt;duro trabajo corrigiendo los paquetes de instalación de los módulos opcionales de DNN6&lt;/a&gt; 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.&lt;br /&gt;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:&lt;br /&gt;&lt;div align="center"&gt;&lt;a href="http://dnnazureaccelerator.codeplex.com/"&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;http://dnnazureaccelerator.codeplex.com&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: medium;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4&gt;Nuevas características de esta versión&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;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)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Decrementado el tamaño de la subida de paquetes de 272Mb a 37Mb (despliegues más rápidos!!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Usarás el asistente oficial de instalación y configuración de DotNetNuke la primera vez que accedas desde tu navegador&lt;/strong&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Ahora puedes seleccionar qué paquetes de servicio quieres subir a almacenamiento desde el asistente del acelerador&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Algunas capturas de pantalla&lt;/h4&gt;&lt;div align="center"&gt;Usando el asistente para crear instancias de DotNetNuke&lt;a href="http://lh6.ggpht.com/-waAmYTxlJ9I/TjnfyLSoqLI/AAAAAAAAAXs/ANRuiK36VWk/s1600-h/Processing%25255B6%25255D.jpg"&gt;&lt;img alt="Using the wizard to create the DotNetNuke instances" border="0" height="311" src="http://lh5.ggpht.com/-6_XAD3uyAtE/TjnfzABX6tI/AAAAAAAAAXw/p-Qjns3figI/Processing_thumb%25255B4%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Using the wizard to create the DotNetNuke instances" width="450" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;Seleccionando módulos opcionales en la primera ejecución &lt;a href="http://lh5.ggpht.com/-uvd1VyihoLE/Tjnf0dYKgpI/AAAAAAAAAX0/PZ3jO8Z-4ps/s1600-h/Select%252520all%252520modules%25255B4%25255D.jpg"&gt;&lt;img alt="Selecting non-core modules on first Azure instance run" border="0" height="321" src="http://lh5.ggpht.com/-mXb0wZP--A8/Tjnf1P9DKRI/AAAAAAAAAX4/bQcj7zRGu5Y/Select%252520all%252520modules_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Selecting non-core modules on first Azure instance run" width="450" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="center"&gt;Ejecutando el asistente de instalación desde mi iPad &lt;img alt="Sonrisa" class="wlEmoticon wlEmoticon-smile" src="http://lh3.ggpht.com/-6Emp6Z-Bj3Y/Tjnf2Aql55I/AAAAAAAAAX8/grY5pljEBDA/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" style="border-bottom-style: none; border-left-style: none; border-right-style: none; border-top-style: none;" /&gt;  &lt;a href="http://lh5.ggpht.com/-paXBuxP9Y8s/Tjnf24PQ1bI/AAAAAAAAAYA/up-ceMEUo8s/s1600-h/DNN6%252520iPad%252520Installation%25255B4%25255D.png"&gt;&lt;img alt="Running the installation Wizard from my iPad" border="0" height="338" src="http://lh5.ggpht.com/-t8ACEc93Kew/Tjnf31bMlUI/AAAAAAAAAYE/a85BR_4si9s/DNN6%252520iPad%252520Installation_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="Running the installation Wizard from my iPad" width="450" /&gt;&lt;/a&gt;  &lt;/div&gt;&lt;div align="center"&gt;El módulo de blogs de DNN 6.0 funcionando en Windows Azure&lt;a href="http://lh4.ggpht.com/-kZ3N-dBdpEg/Tjnf5RD9WNI/AAAAAAAAAYI/glrSakQW3_8/s1600-h/DNN6Azure%25255B4%25255D.jpg"&gt;&lt;img alt="DNN6Azure" border="0" height="341" src="http://lh5.ggpht.com/-DnnhP1zmCII/Tjnf6O8ni4I/AAAAAAAAAYM/EtWU53y4U_U/DNN6Azure_thumb%25255B2%25255D.jpg?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DNN6Azure" width="450" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-3746477642866956776?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/3746477642866956776/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dotnetnuke-azure-accelerator-60-listo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/3746477642866956776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/3746477642866956776'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dotnetnuke-azure-accelerator-60-listo.html' title='DotNetNuke Azure Accelerator 6.0 listo para descarga!'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-m-_9WmWBako/TjnfxHsc7PI/AAAAAAAAAXo/NMYtN3AJ26E/s72-c/DNN6%252520Wheel_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8130718778908269923</id><published>2011-08-04T00:55:00.001+01:00</published><updated>2011-08-04T00:55:21.939+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DotNetNuke Azure Accelerator 6.0 released!</title><content type='html'>&lt;p&gt;&lt;a href="http://lh3.ggpht.com/-S3QnCGjaBfc/TjnfwVgM5tI/AAAAAAAAAXk/BTxU2CSeYk4/s1600-h/DNN6%252520Wheel%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="DNN6 Wheel" border="0" alt="DNN6 Wheel" align="right" src="http://lh6.ggpht.com/-m-_9WmWBako/TjnfxHsc7PI/AAAAAAAAAXo/NMYtN3AJ26E/DNN6%252520Wheel_thumb%25255B2%25255D.png?imgmax=800" width="150" height="72"&gt;&lt;/a&gt;After a &lt;a href="http://davidjrh.blogspot.com/2011/07/dnn-azure-accelerator-60-is-coming.html" target="_blank"&gt;hard work fixing the DNN6 optional modules&lt;/a&gt; in order to work on SQL Azure, the new accelerator is available at Codeplex with a list of new interesting features. &lt;/p&gt; &lt;p&gt;The best feature, of course, is that &lt;strong&gt;allows DNN 6.0 to run on Windows Azure&lt;/strong&gt;. Do you want to know more? Follow this link to the DNN Azure Accelerator Project:&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://dnnazureaccelerator.codeplex.com"&gt;&lt;font size="4"&gt;&lt;strong&gt;http://dnnazureaccelerator.codeplex.com&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="4"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;h4&gt;New features in this release&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;Includes a modified DNN6 distribution package with the SQL Azure fixes for non-core modules (see the documentation for a review of them)  &lt;li&gt;The SMB role will create the VHD dynamically on the first run if the cloud drive does not exists, so there will be no need to upload a huge blob  &lt;li&gt;Decreased the upload size from 272Mb to 37Mb (deployments will be faster!!)  &lt;li&gt;After the VHD creation, the SMB role will download from the Storage the distribution package and unzip it to the VHD drive  &lt;li&gt;&lt;strong&gt;You will use the official DNN installation wizard to create and configure the DNN instance on fist run from your browser&lt;/strong&gt;  &lt;li&gt;Changed the upload method in order to work on low bandwidth connections (removed Accelcon.exe utility)  &lt;li&gt;Now you can select the service packages that you want to upload from the accelerator wizard  &lt;li&gt;You can build your own service packages and put them inside the /packages folder. The wizard will process them for you.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h4&gt;Some screenshots&lt;/h4&gt; &lt;p align="center"&gt;Using the wizard to create the DotNetNuke instances&lt;a href="http://lh6.ggpht.com/-waAmYTxlJ9I/TjnfyLSoqLI/AAAAAAAAAXs/ANRuiK36VWk/s1600-h/Processing%25255B6%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Using the wizard to create the DotNetNuke instances" border="0" alt="Using the wizard to create the DotNetNuke instances" src="http://lh5.ggpht.com/-6_XAD3uyAtE/TjnfzABX6tI/AAAAAAAAAXw/p-Qjns3figI/Processing_thumb%25255B4%25255D.jpg?imgmax=800" width="450" height="311"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;Selecting non-core modules on first Azure instance run&lt;br&gt;&lt;a href="http://lh5.ggpht.com/-uvd1VyihoLE/Tjnf0dYKgpI/AAAAAAAAAX0/PZ3jO8Z-4ps/s1600-h/Select%252520all%252520modules%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Selecting non-core modules on first Azure instance run" border="0" alt="Selecting non-core modules on first Azure instance run" src="http://lh5.ggpht.com/-mXb0wZP--A8/Tjnf1P9DKRI/AAAAAAAAAX4/bQcj7zRGu5Y/Select%252520all%252520modules_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="321"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;Running the installation Wizard from my iPad &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh3.ggpht.com/-6Emp6Z-Bj3Y/Tjnf2Aql55I/AAAAAAAAAX8/grY5pljEBDA/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;&lt;br&gt;&lt;a href="http://lh5.ggpht.com/-paXBuxP9Y8s/Tjnf24PQ1bI/AAAAAAAAAYA/up-ceMEUo8s/s1600-h/DNN6%252520iPad%252520Installation%25255B4%25255D.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Running the installation Wizard from my iPad" border="0" alt="Running the installation Wizard from my iPad" src="http://lh5.ggpht.com/-t8ACEc93Kew/Tjnf31bMlUI/AAAAAAAAAYE/a85BR_4si9s/DNN6%252520iPad%252520Installation_thumb%25255B2%25255D.png?imgmax=800" width="450" height="338"&gt;&lt;/a&gt;&lt;br&gt;&lt;/p&gt; &lt;p align="center"&gt;The DNN 6.0 blog module running on Windows Azure&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-kZ3N-dBdpEg/Tjnf5RD9WNI/AAAAAAAAAYI/glrSakQW3_8/s1600-h/DNN6Azure%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DNN6Azure" border="0" alt="DNN6Azure" src="http://lh5.ggpht.com/-DnnhP1zmCII/Tjnf6O8ni4I/AAAAAAAAAYM/EtWU53y4U_U/DNN6Azure_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="341"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8130718778908269923?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8130718778908269923/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dotnetnuke-azure-accelerator-60.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8130718778908269923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8130718778908269923'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/08/dotnetnuke-azure-accelerator-60.html' title='DotNetNuke Azure Accelerator 6.0 released!'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-m-_9WmWBako/TjnfxHsc7PI/AAAAAAAAAXo/NMYtN3AJ26E/s72-c/DNN6%252520Wheel_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4289263062926714611</id><published>2011-07-25T16:58:00.020+01:00</published><updated>2011-08-26T17:07:15.104+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DNN Azure Accelerator 6.0 is coming!</title><content type='html'>Hi all,  &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/-f1bwhUFpEVk/Ti2ShO54rRI/AAAAAAAAAXM/4SmdissRXYg/s1600-h/DotNetNukeGear%25255B4%25255D.png"&gt;&lt;img align="right" alt="DotNetNukeGear" border="0" height="115" src="http://lh5.ggpht.com/-_X3-t4K9vbI/Ti2Sh6dkncI/AAAAAAAAAXQ/_FEzTx7utf4/DotNetNukeGear_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border: 0px currentColor; display: inline; float: right; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DotNetNukeGear" width="115" /&gt;&lt;/a&gt;while upgrading the &lt;a href="http://dnnazureaccelerator.codeplex.com/"&gt;DotNetNuke Azure Accelerator &lt;/a&gt;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.  &lt;br /&gt;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.  &lt;br /&gt;The need for the fix is based on that the next version of the DNN Azure Accelerator will introduce the next characteristics: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;The DNN6 distribution package with the SQL Azure fixes will be uploaded to storage (zipped).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;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!!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;After the VHD creation, the SMB role will download from the Storage the distribution package and unzip it to the VHD drive&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;You will use the official DNN installation wizard to create and configure the DNN instance&lt;/strong&gt; (I’ve deployed one from my iPad!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Creating new installations should be easy, using the same uploaded package.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For upgrading the installation, a similar “dnn6.X.zip” package will be checked&lt;/li&gt;&lt;/ul&gt;I'll be refreshing this blog and &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest.aspx"&gt;this site &lt;/a&gt;running on "DNN 6.0 - Azure" with more info. I hope that all this work be completed in a week or so. &lt;br /&gt;Time to work!! &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;h3&gt;Providers&lt;/h3&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="width: 360px;"&gt;DotNetNuke ASP2 Menu Navigation Provider&lt;/td&gt; &lt;td valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;DotNetNuke DNN DropDown Navigation Provider&lt;/td&gt; &lt;td valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Telerik Editor Provider&lt;/td&gt; &lt;td valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3&gt;Modules&lt;/h3&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="width: 360px;"&gt;Announcements&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Announcements.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Blogs&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Blogs.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Razor Host&lt;/td&gt; &lt;td valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Documents&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Documents.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;FAQs&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/FAQs.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Events&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Events.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Feedback&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Feedback.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Form and List&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/FormandList.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Forum&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Forums.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Help&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Help.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;IFrame&lt;/td&gt; &lt;td valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Links&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Links.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Map&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Maps.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Media&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Media.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;News Feeds (RSS)&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/NewsFeeds.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Reports&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Reports.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Repository&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Repository.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Store Admin&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/moduletest/store/tabid/100/categoryid/2/default.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Survey&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Survey.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Users Online&lt;/td&gt; &lt;td valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;Wiki&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/Wiki.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt; &lt;td valign="top"&gt;XML Module&lt;/td&gt; &lt;td valign="top"&gt;FAIL! &amp;gt; Fixed - &lt;a href="http://dotnetnuke6.intelequia.com/ModuleTest/XMLModule.aspx"&gt;Check here&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;h3&gt;Authentication Systems&lt;/h3&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt; &lt;td style="width: 357px;" valign="top"&gt;DNN_ActiveDirectoryAuthentication&lt;/td&gt; &lt;td style="width: 219px;" valign="top"&gt;OK&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4289263062926714611?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4289263062926714611/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/07/dnn-azure-accelerator-60-is-coming.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4289263062926714611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4289263062926714611'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/07/dnn-azure-accelerator-60-is-coming.html' title='DNN Azure Accelerator 6.0 is coming!'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-_X3-t4K9vbI/Ti2Sh6dkncI/AAAAAAAAAXQ/_FEzTx7utf4/s72-c/DotNetNukeGear_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4766962310701555764</id><published>2011-07-19T15:24:00.001+01:00</published><updated>2011-07-19T15:24:18.272+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office365'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Evento: Office365, DotNetNuke y Windows Azure en la Tenerife LAN Party</title><content type='html'>&lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/-WPCi9WTalwU/TiWQBrS8JcI/AAAAAAAAAWs/N3QQVcYkEo8/s1600-h/TLPInnova2011%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="TLPInnova2011" border="0" alt="TLPInnova2011" src="http://lh5.ggpht.com/-W0UOWOBaUI8/TiWQCRauTVI/AAAAAAAAAWw/fPwHUWoK2yI/TLPInnova2011_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="50"&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/-ZAxHDDx0r2Y/TiWTgcuBBTI/AAAAAAAAAW0/ORqoaSQV2iY/s1600-h/Logo%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Logo" border="0" alt="Logo" src="http://lh4.ggpht.com/-VXAQzRt2Egs/TiWThFb6k_I/AAAAAAAAAW4/DRWteYhhCjI/Logo_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="53"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Aprovechando que esta semana ya está en marcha la &lt;a href="http://www.tenerife-lanparty.com/2k11/" target="_blank"&gt;Tenerife LAN Party 2011&lt;/a&gt;, dentro de las jornadas profesionales &lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/inicio-tlpi" target="_blank"&gt;TLP+Innova&lt;/a&gt; vamos a apoyar desde &lt;a href="http://www.tenerifedev.com" target="_blank"&gt;TenerifeDev&lt;/a&gt; con dos charlas sobre los servicios que ofrece Microsoft en la nube. &lt;/p&gt; &lt;p&gt;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:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/conferencias" target="_blank"&gt;Lista de sesiones de TLP+Innova&lt;/a&gt;  &lt;li&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/horarios" target="_blank"&gt;Agenda de las sesiones TLP+Innova&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Así mismo, os recomendamos que os inscribáis como profesionales para acceder a estas sesiones, a través de &lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/inscripcion-profesionales" target="_blank"&gt;este enlace&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Los datos de las sesiones de TenerifeDev son las siguientes:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/conferencias/22-tlp/tlp-innova/conferencias/463-office-365"&gt;&lt;font size="3"&gt;Office 365. Los servicios en la nube&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Día: &lt;/strong&gt;Jueves 21 de Julio a las 11&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ponente: &lt;/strong&gt;Alberto Diaz Martin&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/conferencias/22-tlp/tlp-innova/conferencias/461-dotnetnuke"&gt;&lt;font size="3"&gt;DotNetNuke: CMS y plataforma de aplicaciones en Windows Azure&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Día: &lt;/strong&gt;Jueves 21 de Julio a las 12&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Ponente: &lt;/strong&gt;David J. Rodriguez&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;¡Por cierto, antes de la despedida, comentar que habrán sorpresas de los patrocinadores de TenerifeDev!&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/-0y9kHQNF8h4/TiWThntjjVI/AAAAAAAAAW8/FEHETX_iZtQ/s1600-h/pluralsight150%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="pluralsight150" border="0" alt="pluralsight150" src="http://lh3.ggpht.com/-dRaLMspxAkg/TiWTiR8QMrI/AAAAAAAAAXA/tNoNpwJo6cU/pluralsight150_thumb%25255B1%25255D.png?imgmax=800" width="150" height="36"&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://lh6.ggpht.com/-cImxC8yigD4/TiWTjSWfGkI/AAAAAAAAAXE/eAWwkDUKtwU/s1600-h/telerik150%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="telerik150" border="0" alt="telerik150" src="http://lh6.ggpht.com/-pmJLxCLCu1Q/TiWTkPkozPI/AAAAAAAAAXI/bcSu-8xB40U/telerik150_thumb%25255B1%25255D.png?imgmax=800" width="150" height="53"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Nos vemos el jueves!!!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4766962310701555764?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4766962310701555764/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/07/evento-office365-dotnetnuke-y-windows_19.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4766962310701555764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4766962310701555764'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/07/evento-office365-dotnetnuke-y-windows_19.html' title='Evento: Office365, DotNetNuke y Windows Azure en la Tenerife LAN Party'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-W0UOWOBaUI8/TiWQCRauTVI/AAAAAAAAAWw/fPwHUWoK2yI/s72-c/TLPInnova2011_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-6614061178200413734</id><published>2011-07-19T15:09:00.001+01:00</published><updated>2011-07-19T15:09:14.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office365'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Evento: Office365, DotNetNuke y Windows Azure en la Tenerife LAN Party</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-WPCi9WTalwU/TiWQBrS8JcI/AAAAAAAAAWs/N3QQVcYkEo8/s1600-h/TLPInnova2011%25255B3%25255D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="TLPInnova2011" border="0" alt="TLPInnova2011" align="right" src="http://lh5.ggpht.com/-W0UOWOBaUI8/TiWQCRauTVI/AAAAAAAAAWw/fPwHUWoK2yI/TLPInnova2011_thumb%25255B1%25255D.jpg?imgmax=800" width="240" height="50"&gt;&lt;/a&gt;Aprovechando que esta semana ya está en marcha la &lt;a href="http://www.tenerife-lanparty.com/2k11/" target="_blank"&gt;Tenerife LAN Party 2011&lt;/a&gt;, dentro de las jornadas profesionales &lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/inicio-tlpi" target="_blank"&gt;TLP+Innova&lt;/a&gt; vamos a apoyar desde &lt;a href="http://www.tenerifedev.com" target="_blank"&gt;TenerifeDev&lt;/a&gt; con dos charlas sobre los servicios que ofrece Microsoft en la nube. &lt;/p&gt; &lt;p&gt;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:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/conferencias" target="_blank"&gt;Lista de sesiones de TLP+Innova&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/horarios" target="_blank"&gt;Agenda de las sesiones TLP+Innova&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Así mismo, os recomendamos que os inscribáis como profesionales para acceder a estas sesiones, a través de &lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/inscripcion-profesionales" target="_blank"&gt;este enlace&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Los datos de las sesiones de TenerifeDev son las siguientes:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/conferencias/22-tlp/tlp-innova/conferencias/463-office-365"&gt;&lt;font size="3"&gt;Office 365. Los servicios en la nube&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Día: &lt;/strong&gt;Jueves 21 de Julio a las 11 &lt;p&gt;&lt;strong&gt;Ponente: &lt;/strong&gt;Alberto Diaz Martin &lt;p&gt;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. &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.tenerife-lanparty.com/2k11/tlpinnova/conferencias/22-tlp/tlp-innova/conferencias/461-dotnetnuke"&gt;&lt;font size="3"&gt;DotNetNuke: CMS y plataforma de aplicaciones en Windows Azure&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt; &lt;p&gt;&lt;strong&gt;Día: &lt;/strong&gt;Jueves 21 de Julio a las 12 &lt;p&gt;&lt;strong&gt;Ponente: &lt;/strong&gt;David J. Rodriguez &lt;p&gt;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. &lt;p&gt;Nos vemos el jueves!!!   &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-6614061178200413734?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/6614061178200413734/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/07/evento-office365-dotnetnuke-y-windows.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/6614061178200413734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/6614061178200413734'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/07/evento-office365-dotnetnuke-y-windows.html' title='Evento: Office365, DotNetNuke y Windows Azure en la Tenerife LAN Party'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-W0UOWOBaUI8/TiWQCRauTVI/AAAAAAAAAWw/fPwHUWoK2yI/s72-c/TLPInnova2011_thumb%25255B1%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-6021153950276856651</id><published>2011-07-14T13:15:00.000+01:00</published><updated>2011-07-14T13:15:49.621+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>Materiales del evento CMS Azure RoadShow</title><content type='html'>&lt;a href="http://lh4.ggpht.com/--ezn2_0a888/Th7dv8l-GVI/AAAAAAAAAWg/5Z7GJOAp7HA/s1600-h/DNNGear%25255B4%25255D.png"&gt;&lt;img align="right" alt="DNNGear" border="0" height="129" src="http://lh4.ggpht.com/-SPXt4_pDyOo/Th7dwnoXh8I/AAAAAAAAAWk/LHwn4WPVhmk/DNNGear_thumb%25255B2%25255D.png?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; float: right; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="DNNGear" width="129" /&gt;&lt;/a&gt;Buenas! 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). &lt;br /&gt;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.&lt;br /&gt;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 &lt;a href="http://www.globbtv.com/microsite.aspx?id=12&amp;amp;cmd=0&amp;amp;cat=189"&gt;http://www.globbtv.com/microsite.aspx?id=12&amp;amp;cmd=0&amp;amp;cat=189&lt;/a&gt;&lt;br /&gt;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 &lt;a href="http://dnnazureaccelerator.codeplex.com/discussions" target="_blank"&gt;este enlace&lt;/a&gt;.&lt;br /&gt;Un saludo.&lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_8523215"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/intelequiass/dotnetnuke-cms-y-plataforma-de-aplicaciones-en-windows-azure" title="DotNetNuke - CMS y plataforma de aplicaciones en Windows Azure" target="_blank"&gt;DotNetNuke - CMS y plataforma de aplicaciones en Windows Azure&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/8523215" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/intelequiass" target="_blank"&gt;intelequiass&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-6021153950276856651?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/6021153950276856651/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/07/materiales-del-evento-cms-azure.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/6021153950276856651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/6021153950276856651'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/07/materiales-del-evento-cms-azure.html' title='Materiales del evento CMS Azure RoadShow'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-SPXt4_pDyOo/Th7dwnoXh8I/AAAAAAAAAWk/LHwn4WPVhmk/s72-c/DNNGear_thumb%25255B2%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2060387193618310549</id><published>2011-06-23T00:09:00.001+01:00</published><updated>2011-06-23T00:09:39.751+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='CMS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>[Evento] CMS en Azure. Una combinación que te convencerá</title><content type='html'>&lt;p&gt;&lt;img style="margin: 0px 0px 10px 10px; display: inline; float: right" alt="" align="right" src="http://www.intelequia.com/Portals/0/Homeimages/Banner250.jpg" width="250" height="177"&gt;El próximo &lt;strong&gt;5 de Julio, en Madrid o desde tu casa,&lt;/strong&gt; 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)  &lt;p&gt;Durante el evento podrás descubrir lo fácil que es construir y migrar tus portales preferidos a Azure.  &lt;p&gt;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.  &lt;p&gt;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.  &lt;p&gt;Puedes asistir en directo en las oficinas de Microsoft de Madrid, verlo en streaming, o grabado mas tarde… no te lo pierdas!  &lt;p&gt;&lt;strong&gt;Agenda&lt;/strong&gt;  &lt;p&gt;&lt;i&gt;09:30&lt;/i&gt;&lt;br&gt;&lt;strong&gt;Registro y entrega de documentación&lt;/strong&gt;  &lt;p&gt;&lt;i&gt;10:00&lt;/i&gt;&lt;br&gt;&lt;strong&gt;Plataforma Windows Azure.&lt;/strong&gt;. David Salgado. Evangelista Desarrollo. Microsoft.  &lt;p&gt;&lt;i&gt;10:30&lt;/i&gt;&lt;br&gt;&lt;strong&gt;La plataforma para proyectos web en la nube: Softeng Portal Builder. &lt;/strong&gt;Carles Colell. CEO. Softeng&amp;nbsp; &lt;p&gt;&lt;i&gt;11:20&lt;/i&gt;&lt;br&gt;&lt;strong&gt;Umbraco loves Windows Azure. Un caso real.&lt;/strong&gt;. Roberto González. Director Técnico. Aventia. Juan Antonio Martín. Responsable Comercial. Aventia.  &lt;p&gt;&lt;i&gt;12:10&lt;/i&gt;&lt;br&gt;&lt;strong&gt;Café&lt;/strong&gt;  &lt;p&gt;&lt;i&gt;12:40&lt;/i&gt;&lt;br&gt;&lt;strong&gt;DotNetNuke: CMS y plataforma de aplicaciones ahora también en Windows Azure&lt;/strong&gt;. David J. Rodríguez. CTO. Intelequia.  &lt;p&gt;&lt;i&gt;13:30&lt;/i&gt;&lt;br&gt;&lt;strong&gt;Moodle / Azure: una visión estratégica de soluciones elearning opensource en entornos SaaS&lt;/strong&gt;. Luis Flores. Open Sistemas.  &lt;p&gt;Para más información y registro al evento presencial, pulsa el enlace siguiente:  &lt;p&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032489000&amp;amp;Culture=es-ES"&gt;Inscribirse al evento presencial&lt;/a&gt;  &lt;p&gt;Para más información y ver el evento en streaming:  &lt;p&gt;&lt;a href="http://www.globbtv.com/roadshowcms/"&gt;Ver el evento en streaming&lt;/a&gt;  &lt;p&gt;&lt;img alt="" src="http://www.intelequia.com/portals/0/logos/logos.jpg" width="550" height="138"&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2060387193618310549?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2060387193618310549/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/06/evento-cms-en-azure-una-combinacion-que.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2060387193618310549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2060387193618310549'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/06/evento-cms-en-azure-una-combinacion-que.html' title='[Evento] CMS en Azure. Una combinación que te convencerá'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2236882133926415425</id><published>2011-06-12T22:11:00.001+01:00</published><updated>2011-06-12T22:11:56.485+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>DNN Azure Single and Extra Small</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-bs7Zgtg2o7Q/TfUrcZmBHwI/AAAAAAAAAUc/aBAibf7VcXk/s1600-h/DotNetNukeGear%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DotNetNukeGear" border="0" alt="DotNetNukeGear" align="right" src="http://lh5.ggpht.com/-iGXG7RUlkHs/TfUrdBvfYmI/AAAAAAAAAUg/i-wpZkqRUtM/DotNetNukeGear_thumb%25255B1%25255D.png?imgmax=800" width="216" height="216"&gt;&lt;/a&gt;Una 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 &lt;strong&gt;disponer de una versión “light” que se pueda ajustar a las ofertas y promociones gratuitas de Windows Azure&lt;/strong&gt;. &lt;/p&gt; &lt;p&gt;La &lt;a href="http://www.microsoft.com/windowsazure/free-trial/" target="_blank"&gt;oferta gratuita actual&lt;/a&gt; que está activa hasta el 30 de septiembre ofrece lo siguiente:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;750 horas de una instancia Extra Small (una instancia sin apagar ni una sola hora al mes) y 25 horas de una instancia Small  &lt;li&gt;20Gb almacenamiento con 50k transacciones  &lt;li&gt;20Gb de tráfico de entrada y 20Gb de tráfico de salida  &lt;li&gt;1 base de datos de 1Gb de SQL Azure (durante 90 días)  &lt;li&gt;128Mb de AppFabric Caching&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;Os lo podéis descargar desde el portal del proyecto en CodePlex a través del enlace siguiente:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://dnnazureaccelerator.codeplex.com/releases/view/67952#DownloadId=249328" target="_blank"&gt;&lt;font size="3"&gt;Descargar DNNAzure Single and Extra Small&lt;/font&gt;&lt;/a&gt; (3.5Mb)&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Características&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Uso mínimo de 1 instancia ExtraSmall. Esta instancia (la “instancia 0”) asume el rol de servidor SMB  &lt;li&gt;Se pueden añadir más instancias que se conectarán a los contenidos compartidos por la instancia 0  &lt;li&gt;Compatible con la versión SMB  &lt;li&gt;Resto de características de la versión SMB: Framework 4.0, FullIIS, conexión por RDP, etc.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Probando el despliegue con Extra Small&lt;/h3&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;¿Cabe una instancia de DotNetNuke en una instancia Extra Small? ¿El rendimiento se ve muy afectado?&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;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. &lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh6.ggpht.com/-Sa7l4tSmUKo/TfUrd_kp-FI/AAAAAAAAAUk/88efiUNcr3A/s1600-h/Two%252520extrasmall%252520instances%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Two extrasmall instances" border="0" alt="Two extrasmall instances" src="http://lh4.ggpht.com/-wYbH__zgvrU/TfUreoOATRI/AAAAAAAAAUo/9sdqcljMeQQ/Two%252520extrasmall%252520instances_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="79"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/-ZO9GX7EMtkY/TfUrfUQqN6I/AAAAAAAAAUs/iKodiaeBZDI/s1600-h/Instance%2525200%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Instance 0" border="0" alt="Instance 0" src="http://lh5.ggpht.com/-6sl4FVZ6dXg/TfUrgGnXLGI/AAAAAAAAAUw/vnz5N2N7fa4/Instance%2525200_thumb%25255B3%25255D.jpg?imgmax=800" width="350" height="55"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/-mJDvWJRepE8/TfUrgvE4JxI/AAAAAAAAAU0/xNEoJIt7xI0/s1600-h/Instance%2525201%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Instance 1" border="0" alt="Instance 1" src="http://lh6.ggpht.com/-BKbWUhQktsA/TfUrhZgj85I/AAAAAAAAAU4/6lcnxwCqRqo/Instance%2525201_thumb%25255B2%25255D.jpg?imgmax=800" width="350" height="57"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-zCdO9qHJKVk/TfUriUNfa6I/AAAAAAAAAU8/hFFYvE6e818/s1600-h/Rendimiento%252520de%252520ExtraSmall%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Rendimiento de ExtraSmall" border="0" alt="Rendimiento de ExtraSmall" src="http://lh6.ggpht.com/-wRtonE5KvKg/TfUrjQIX8II/AAAAAAAAAVA/SOD41bn6qmM/Rendimiento%252520de%252520ExtraSmall_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="537"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;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).&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-1N5fAUZbXwM/TfUrlHt2O-I/AAAAAAAAAVE/ATsW21X4j5o/s1600-h/Memoria%252520usada%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Memoria usada" border="0" alt="Memoria usada" src="http://lh5.ggpht.com/-FBcUVdoQbTw/TfUrmdHyTyI/AAAAAAAAAVI/zISq1CYXBjA/Memoria%252520usada_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="548"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;Conclusión&lt;/h3&gt; &lt;p&gt;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 &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh5.ggpht.com/-sDFdGUntKXw/TfUrm0B8mdI/AAAAAAAAAVM/gN7ctFvPqEY/wlEmoticon-smile%25255B2%25255D.png?imgmax=800"&gt;), con todas las características disponibles y con posibilidad de ampliar instancias en caso de ser necesario.&lt;/p&gt; &lt;p&gt;Espero que os sea de utilidad. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2236882133926415425?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2236882133926415425/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/06/dnn-azure-single-and-extra-small.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2236882133926415425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2236882133926415425'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/06/dnn-azure-single-and-extra-small.html' title='DNN Azure Single and Extra Small'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-iGXG7RUlkHs/TfUrdBvfYmI/AAAAAAAAAUg/i-wpZkqRUtM/s72-c/DotNetNukeGear_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2745619313868658286</id><published>2011-06-09T22:31:00.002+01:00</published><updated>2011-06-09T22:51:58.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Error de Entity Framework con SQL Server 2000</title><content type='html'>&lt;p&gt;&lt;a href="http://lh4.ggpht.com/-KtsuOM5HCm8/TfE4dVN9uhI/AAAAAAAAAUE/7XtjOI1AWoE/s1600-h/Error%25255B3%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Error" border="0" alt="Error" align="right" src="http://lh6.ggpht.com/-J0QFothRO_c/TfE4eG3AG6I/AAAAAAAAAUI/XlFqVlQa46w/Error_thumb%25255B1%25255D.png?imgmax=800" width="200" height="200"&gt;&lt;/a&gt;Hoy toca una de cal con Entity Framework 4. Y es que trabajar con un entorno de desarrollo distinto del que luego te puedes encontrar en producción tiene su riesgo (que levante la mano cuántos tienen instalado Visual Studio sobre Windows Server). Una solución es trabajar con máquinas virtuales que simulen al máximo el entorno que te vas a encontrar en producción, pero muchas veces es inviable por los recursos y el tiempo necesario para gestionar todas las combinaciones que tenemos en nuestros clientes.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;El error&lt;/strong&gt;: al pasar del entorno de desarrollo a producción, nos encontramos con un error de EF4 al resolver una consulta. Un ejemplo de excepción es:&lt;/p&gt; &lt;p&gt;&lt;font size="2" face="Courier New"&gt;Exception Details: System.Data.SqlClient.SqlException: Incorrect syntax near '('.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Al usar IntelliTrace para ver dónde estaba el error, vemos la sentencia SQL que está montando EF para resolver una llamada “FirstOrDefault”:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-y7y_UAiITsw/TfE7qZdH5nI/AAAAAAAAAUM/AOy4WtB_ylo/s1600-h/Error%252520Top%2525201%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Error Top 1" border="0" alt="Error Top 1" src="http://lh5.ggpht.com/-QBYi75BzeRA/TfE7rAbXW8I/AAAAAAAAAUQ/RXGM1Kl7bj8/Error%252520Top%2525201_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="112"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Al intentar ejecutar esta sentencia en nuestro entorno de desarrollo sobre SQL Server 2008, no da ningún problema. Sin embargo, al ejecutarla sobre SQL Server 2000, da un error de sintaxis en “SELECT TOP(1)”. &lt;/p&gt; &lt;p&gt;Esto ocurre porque el mapping del modelo se ha realizado usando SQL Server 2008 en vez de 2000, con lo que el motor de EF usa T-SQL que no es soportado por la versión en producción. &lt;/p&gt; &lt;p&gt;Para solucionarlo rápidamente, simplemente abrimos el modelo .edmx con el visor XML y editamos el atributo “ProviderManifestToken” cambiando el valor “2008” por “2000”. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/-ydqjOE6ijbQ/TfE7rqUSeeI/AAAAAAAAAUU/hpCQ2gnoPoQ/s1600-h/Cambiar%252520valor%2525202008%252520a%2525202000%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Cambiar valor 2008 a 2000" border="0" alt="Cambiar valor 2008 a 2000" src="http://lh6.ggpht.com/-XmyWbp_sMPM/TfE7s2I9KjI/AAAAAAAAAUY/k4mGaqvcPE8/Cambiar%252520valor%2525202008%252520a%2525202000_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="58"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Compilamos y listo!!!!&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Espero que sirva de ayuda. Un saludo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2745619313868658286?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2745619313868658286/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/06/error-de-entity-framework-con-sql.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2745619313868658286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2745619313868658286'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/06/error-de-entity-framework-con-sql.html' title='Error de Entity Framework con SQL Server 2000'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-J0QFothRO_c/TfE4eG3AG6I/AAAAAAAAAUI/XlFqVlQa46w/s72-c/Error_thumb%25255B1%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8736803785861611015</id><published>2011-06-09T12:14:00.001+01:00</published><updated>2011-06-09T12:14:58.042+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>DotNetNuke Azure Accelerator SMB</title><content type='html'>&lt;p&gt;Lo prometido es deuda. Ya está disponible la versión del acelerador de DotNetNuke para Azure con soporte para múltiples webroles en CodePlex.&lt;/p&gt; &lt;p&gt;Esta nueva versión pone al día el trabajo de DotNetNuke con la plataforma con una serie de nuevas características, la mayoría de ellas gracias a la adaptación del acelerador a la última versión del SDK (recordemos que la anterior usaba HWC para servir el contenido).&lt;/p&gt; &lt;p&gt;Recordad que el acelerador y toda la información relacionada está disponible en:&lt;/p&gt; &lt;p align="center"&gt;&lt;a title="http://dnnazureaccelerator.codeplex.com/" href="http://dnnazureaccelerator.codeplex.com/"&gt;&lt;font size="4"&gt;&lt;strong&gt;http://dnnazureaccelerator.codeplex.com/&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4&gt;Nuevas características&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;Soporte para &lt;strong&gt;múltiples instancias&lt;/strong&gt; de webroles sirviendo el contenido de lectura/escritura  &lt;li&gt;Nuevo &lt;strong&gt;asistente de instalación y despliegue&lt;/strong&gt; sobre Windows Azure basado en WinForms  &lt;li&gt;Soporte para Windows Azure SDK 1.4 (April refresh)  &lt;li&gt;Soporte para .NET Framework 4.0 (ya se soporta el módulo Razor)  &lt;li&gt;Acceso a escritorio remoto a las instancias  &lt;li&gt;Soporte Full IIS  &lt;li&gt;Posibilidad de usar Azure Connect  &lt;li&gt;Soportada modificación de Web.config (los ficheros están en una unidad compartidad de lectura/escritura)  &lt;li&gt;Soporte para múltiples alias de portal (bindings)  &lt;li&gt;Incluida imagen DNN Community 5.6.2 y preconfigurada como WebFarm (se usa fileCachingProvider para la versión CE) &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-qGoUqiwjfdk/Te_buoG9JyI/AAAAAAAAAR8/l3v7rhMcsQ4/s1600-h/Scheme600%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Arquitectura del DNN Azure Accelerator" border="0" alt="Arquitectura del DNN Azure Accelerator" src="http://lh4.ggpht.com/-TTj1zD8zg70/Te_bvQdnkeI/AAAAAAAAASA/H0ZXA8f2ikk/Scheme600_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="339"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h4&gt;Una captura de pantalla vale más que mil palabras&lt;/h4&gt; &lt;p&gt;Os dejo con una serie de capturas de pantalla para que os hagáis una idea. También podéis ver el post anterior con algunas otras mostrando la conexión “por dentro”.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-3cfyxR889Pc/Te_bwBK5doI/AAAAAAAAASE/P-h-DZfFG2w/s1600-h/Wizard1%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Asistente de despliegue - Paso 1" border="0" alt="Asistente de despliegue - Paso 1" src="http://lh5.ggpht.com/-DMGgVfxpaIY/Te_exxQuXMI/AAAAAAAAAS4/sDk7a9mCkvE/Wizard1_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="311"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/-r9zu4FsUEJA/Te_e0lBfzFI/AAAAAAAAAS8/fsAUMDfD_AY/s1600-h/Wizard2%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Asistente de despliegue - Paso 2" border="0" alt="Asistente de despliegue - Paso 2" src="http://lh4.ggpht.com/-jLZjaGWRWgI/Te_f63_pcuI/AAAAAAAAATM/iVQLVILTsGo/Wizard2_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="311"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-4WU8GeRAIHI/TfCrGGU-StI/AAAAAAAAATs/TyPD_eORrd0/s1600-h/Wizard34.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Asistente de despliegue - Paso 3" border="0" alt="Asistente de despliegue - Paso 3" src="http://lh3.ggpht.com/-2nCeI4FEnLo/TfCrHRWl3zI/AAAAAAAAATw/BIs-KujyH6o/Wizard3_thumb2.jpg?imgmax=800" width="450" height="309"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-xcEMfCcqLGc/TfCrIGbvWfI/AAAAAAAAAT0/lUediZQZ3g8/s1600-h/Wizard44.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Asistente de despliegue - Paso 4" border="0" alt="Asistente de despliegue - Paso 4" src="http://lh6.ggpht.com/-bxdo13qzuYo/TfCrJmfr95I/AAAAAAAAAT4/BBkyTli7C-Q/Wizard4_thumb2.jpg?imgmax=800" width="450" height="309"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/-HmtTduLQC-4/TfCrKyUvn8I/AAAAAAAAAT8/NHdIOJHyi3I/s1600-h/Roles4.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Roles desplegados en Windows Azure" border="0" alt="Roles desplegados en Windows Azure" src="http://lh4.ggpht.com/-z-V-Tsbj-ek/TfCrMOe38fI/AAAAAAAAAUA/dwNIgQ7M09U/Roles_thumb2.jpg?imgmax=800" width="450" height="296"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Un saludo&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8736803785861611015?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8736803785861611015/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/06/dotnetnuke-azure-accelerator-smb.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8736803785861611015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8736803785861611015'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/06/dotnetnuke-azure-accelerator-smb.html' title='DotNetNuke Azure Accelerator SMB'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-TTj1zD8zg70/Te_bvQdnkeI/AAAAAAAAASA/H0ZXA8f2ikk/s72-c/Scheme600_thumb%25255B2%25255D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4251411845313518010</id><published>2011-05-27T13:50:00.001+01:00</published><updated>2011-05-27T13:50:30.016+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office365'/><category scheme='http://www.blogger.com/atom/ns#' term='Sharepoint'/><category scheme='http://www.blogger.com/atom/ns#' term='BPOS'/><title type='text'>Error y solución al restaurar una colección de sitios en Sharepoint Online</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/-wjmo1wNpe1U/Td-d_wfTx8I/AAAAAAAAARU/9l4eB5oYZa8/s1600-h/Sharepoint_Online_logo%25255B5%25255D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Sharepoint_Online_logo" border="0" alt="Sharepoint_Online_logo" align="right" src="http://lh4.ggpht.com/-LgtNGyY2ihM/Td-eAYQnhgI/AAAAAAAAARY/L75EF4j-mcg/Sharepoint_Online_logo_thumb%25255B3%25255D.png?imgmax=800" width="229" height="40"&gt;&lt;/a&gt;Con el permiso de los gurús de Sharepoint, voy a documentar una incidencia y su resolución que me ha surgido hoy, más que nada para ahorrar tiempo de “upload” a la nube en casos de error y reintento.&lt;/p&gt; &lt;p&gt;Para migrar un portal Sharepoint &lt;em&gt;onpremise&lt;/em&gt; a Sharepoint Online, en el mercado hay un amplio abanico de soluciones para acometer esta tarea, muy completas, pero nada baratas. &lt;/p&gt; &lt;p&gt;Si lo que estás intentando subir es un sitio basado en WSS 2.0 o WSS 3.0, se puede usar Sharepoint Designer 2007 (para la versión actual de BPOS, con la de Office 365 hay que usar Sharepoint Designer 2010) para realizar el proceso de restauración. &lt;/p&gt; &lt;p&gt;NOTA: Para el que aún no lo sepa, &lt;strong&gt;&lt;u&gt;SharePoint Designer 2007 es gratuito&lt;/u&gt;&lt;/strong&gt;. Se puede descargar desde el enlace siguiente:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=baa3ad86-bfc1-4bd4-9812-d9e710d44f42&amp;amp;displaylang=en" target="_blank"&gt;Descargar Sharepoint Designer 2007&lt;/a&gt; desde Microsoft Download Center&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Los pasos para realizar el proceso de importación en Sharepoint Online están muy bien explicados&lt;/strong&gt; en &lt;a href="http://www.bpossibility.com/2010/07/03/migrating-a-wss-2-03-0-site-to-sharepoint-online/" target="_blank"&gt;este post de Loryan Stant&lt;/a&gt; por lo que no voy a repetirme aquí. Pero sí voy a apuntar algunas consideraciones, ya que si no te puedes encontrar que después de 7 horas de upload, al restaurar los archivos te encuentras con el mensaje de error &lt;em&gt;“&lt;font color="#ff0000"&gt;Error ocurred while importing the web XXX. The file cannot be imported because its parent web XXX does not exist&lt;/font&gt;”&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/-VdNO_cFr4yA/Td-eBBR8CCI/AAAAAAAAARc/GyeTqjsQTDE/s1600-h/ErrorSP%25255B9%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="ErrorSP" border="0" alt="ErrorSP" src="http://lh5.ggpht.com/-_g1K8M3z1XE/Td-eBgw71cI/AAAAAAAAARg/3MEd-C4JfJg/ErrorSP_thumb%25255B5%25255D.jpg?imgmax=800" width="450" height="81"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Algunos bri-consejos&lt;/h3&gt; &lt;ol&gt; &lt;li&gt;Asegúrate de que la &lt;strong&gt;exportación&lt;/strong&gt; del sitio la realizas con un usuario que sea “&lt;strong&gt;Administrador de la colección de sitios&lt;/strong&gt;”, para que pueda exportar todo el contenido  &lt;li&gt;Una vez realizada la exportación, revisa el archivo de log generado. Lo primero, ve al final y comprueba que las dos últimas líneas rezan algo como “Completado con 0 advertencias, Completada con 0 errores”. Si no es así, busca por la palabra “Error” en el archivo y te dará la pista que te ahorrará realizar un upload de varias horas &lt;br&gt;&lt;a href="http://lh6.ggpht.com/-2u75-mYDFEU/Td-eCdEZ6II/AAAAAAAAARk/6tqNxOkWmSA/s1600-h/Bueno%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Bueno" border="0" alt="Bueno" src="http://lh5.ggpht.com/-LJL56l7ovTQ/Td-eC1PWTJI/AAAAAAAAARo/Fa_1jv4W2yc/Bueno_thumb%25255B3%25255D.jpg?imgmax=800" width="350" height="35"&gt;&lt;/a&gt;&lt;br&gt;En mi caso, la exportación la realicé con un usuario que no era administrador de la colección de sitios y tenía estos mensajes:&lt;br&gt;&lt;a href="http://lh4.ggpht.com/-pB6t4SOEjak/Td-eDiFuuII/AAAAAAAAARs/uxjNOvMC76w/s1600-h/Malo%25255B5%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Malo" border="0" alt="Malo" src="http://lh3.ggpht.com/-d5J5oyC4ASM/Td-eEJrzNHI/AAAAAAAAARw/3W5ekR50VQk/Malo_thumb%25255B3%25255D.jpg?imgmax=800" width="450" height="39"&gt;&lt;/a&gt;  &lt;li&gt;Asegúrate de que en Sharepoint Online, la colección de sitios la creas con la plantilla “Sitio en blanco”. La predeterminada es “Sitio de grupo” y la restauración no es posible si no es sobre una en blanco.&lt;br&gt;&lt;a href="http://lh3.ggpht.com/-OKawi5RGgPQ/Td-eEmYJ4KI/AAAAAAAAAR0/b1JIjvM2UEI/s1600-h/Blanco%25255B4%25255D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Blanco" border="0" alt="Blanco" src="http://lh4.ggpht.com/-heVyleZYn1I/Td-eFJKA7KI/AAAAAAAAAR4/aRE_9ZEotQ0/Blanco_thumb%25255B2%25255D.jpg?imgmax=800" width="450" height="52"&gt;&lt;/a&gt;  &lt;li&gt;Asegúrate que el proceso de &lt;strong&gt;importación&lt;/strong&gt;, al iniciarlo desde Sharepoint Designer lo haces con un usuario “&lt;strong&gt;Administrador de la colección de sitios&lt;/strong&gt;” de Sharepoint Online&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Espero que estos cuatro consejos os evite unas cuantas horas de upload.  &lt;p&gt;Un saludo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4251411845313518010?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4251411845313518010/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/05/error-y-solucion-al-restaurar-una.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4251411845313518010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4251411845313518010'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/05/error-y-solucion-al-restaurar-una.html' title='Error y solución al restaurar una colección de sitios en Sharepoint Online'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-LgtNGyY2ihM/Td-eAYQnhgI/AAAAAAAAARY/L75EF4j-mcg/s72-c/Sharepoint_Online_logo_thumb%25255B3%25255D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2587691047228100831</id><published>2011-05-24T17:28:00.001+01:00</published><updated>2011-05-24T17:28:36.475+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='RedGate'/><title type='text'>Redgate’s SQL Azure Backup Beta</title><content type='html'>&lt;p&gt;Repasando tareas pendientes, acabo de meterle mano al correo que me llegó anunciando esta interesante herramienta de la mano de RedGate, ahora mismo en Beta.&lt;/p&gt; &lt;p&gt;Se trata de una utilidad para realizar copias de seguridad de nuestras bases de datos de SQL Azure a un SQL Server local, cosa harto útil en gran variedad de escenarios que requieran sincronizar nuestro esquema y datos a local mediante un interfaz realmente simple.&lt;/p&gt; &lt;p&gt;Para comenzar, os podéis descargar la beta gratuitamente desde este enlace (la beta caducará el 1 de septiembre de 2011):&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://www.red-gate.com/products/dba/sql-azure-backup/?utm_source=email&amp;amp;utm_medium=email&amp;amp;utm_content=sqlazurebackup_betalist20110510&amp;amp;utm_campaign=sqlazurebackup" target="_blank"&gt;&lt;font size="3"&gt;Descargar RedGate’s Azure Backup Beta&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Realizando un Backup de la nube a mi servidor local&lt;/h3&gt; &lt;p&gt;Una vez descargada la herramienta, simplemente iniciamos el asistente en el que se solicitan los datos del servidor en la nube y los datos de acceso a nuestro servidor local:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/Tdvcbijn9AI/AAAAAAAAAQw/AoRt4OE_VtU/s1600-h/SQL%20Azure%20Backup%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SQL Azure Backup" border="0" alt="SQL Azure Backup" src="http://lh4.ggpht.com/_9wri4uIqw0c/TdvcdBNUjuI/AAAAAAAAAQ0/y3CpcwL13h0/SQL%20Azure%20Backup_thumb%5B2%5D.jpg?imgmax=800" width="450" height="321"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Lo primero que podemos observar, es que la base de datos local será una base de datos nueva que creará el asistente. No se han complicado mucho la vida con esto, pero de eso se trata. Si quieres algo muchíiiisimo más potente, échale un vistazo a sus hermanos SQL Compare 9 y SQL Data Compare 9.&lt;/p&gt; &lt;p&gt;Al pulsar siguiente, estamos justo en el paso previo de comenzar el backup. Se ve que han metido en plantilla a algún diseñador de UI o por lo menos lo parece &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh6.ggpht.com/_9wri4uIqw0c/Tdvcd1ArAGI/AAAAAAAAAQ4/7l0A68H6s78/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TdvcghKz8pI/AAAAAAAAAQ8/vAV6P97tczo/s1600-h/SQL%20Azure%20Backup2%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SQL Azure Backup2" border="0" alt="SQL Azure Backup2" src="http://lh4.ggpht.com/_9wri4uIqw0c/TdvciXeHiRI/AAAAAAAAARA/Wzamucc3aW4/SQL%20Azure%20Backup2_thumb%5B2%5D.jpg?imgmax=800" width="450" height="321"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Mientras se ejecuta el proceso de backup y restore, podemos gozar de publicidad gratuita en la parte inferior de las barras de progreso –nota para el futuro, poner publicidad en todos las progressbars de mis aplicaciones, nunca se sabe hasta donde puede llegar un mensaje subliminal.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TdvclF7VTqI/AAAAAAAAARE/S08HJf8vuu4/s1600-h/SQL%20Azure%20Backup3%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SQL Azure Backup3" border="0" alt="SQL Azure Backup3" src="http://lh4.ggpht.com/_9wri4uIqw0c/TdvcnljCilI/AAAAAAAAARI/UZVZD6uZ1Ac/SQL%20Azure%20Backup3_thumb%5B2%5D.jpg?imgmax=800" width="450" height="321"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Una vez que el asistente realiza su trabajo (aquí obviamente dependerá del tamaño del esquema y del volumen de datos sobre la línea de datos que utilicemos) ya podemos acceder a nuestra base de datos local. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TdvcpsBqiyI/AAAAAAAAARM/j_9A0ZrTQ5o/s1600-h/SQL%20Azure%20Backup%205%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="SQL Azure Backup 5" border="0" alt="SQL Azure Backup 5" src="http://lh6.ggpht.com/_9wri4uIqw0c/TdvcrD3qzbI/AAAAAAAAARQ/RFBxuhYKAIA/SQL%20Azure%20Backup%205_thumb%5B2%5D.jpg?imgmax=800" width="250" height="375"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Conclusión&lt;/h3&gt; &lt;p&gt;He comprobado que sobre una base de datos DotNetNuke con todos los módulos instalados (190 tablas, 1114 procedimientos almacenados, etc.) no ha dado ni un sólo problema y la base de datos es 100% funcional. Parece ser una solución ideal si queremos trabajar en local sobre la última copia de los datos que tenemos publicados en Azure…&lt;strong&gt;&lt;u&gt;con sólo 2 clicks!!!!!&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Un saludo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2587691047228100831?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2587691047228100831/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/05/redgates-sql-azure-backup-beta.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2587691047228100831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2587691047228100831'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/05/redgates-sql-azure-backup-beta.html' title='Redgate’s SQL Azure Backup Beta'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_9wri4uIqw0c/TdvcdBNUjuI/AAAAAAAAAQ0/y3CpcwL13h0/s72-c/SQL%20Azure%20Backup_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4181022455494448283</id><published>2011-05-04T20:41:00.001+01:00</published><updated>2011-05-04T20:41:43.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DotNetNuke Azure Accelerator con soporte Multi-instance</title><content type='html'>&lt;p&gt;Esta semana voy a estar trabajando en la documentación del nuevo paquete de instalación del DNN Azure Accelerator que está recién salido del horno. Hace un ratillo eliminé el despliegue que había hecho, sin darme cuenta que el anuncio de la nueva solución estaba en el mismo foro del despliegue (en &lt;a href="http://dnnaccelerator.cloudapp.net"&gt;http://dnnaccelerator.cloudapp.net&lt;/a&gt;). &lt;/p&gt; &lt;p&gt;Voy a poner el contenido del post aquí que ya actualizaré cuando tenga la documentación completa, para que las instancias desplegadas no consuman recursos de mi VISA.&lt;/p&gt; &lt;p&gt;Un saludo.&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;DNN Azure Accelerator with multi-instance support&lt;/h3&gt; &lt;p&gt;This week I'll prepare a new package with the DNN Azure Accelrator with new important updates. This new idea is inspired on &lt;a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2011/04/16/using-smb-to-share-a-windows-azure-drive-among-multiple-role-instances.aspx" target="_blank"&gt;the post of Dinesh Haridas&lt;/a&gt; using a SMB server and a SMB client.&lt;/p&gt; &lt;p&gt;Summary of changes:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Support for SDK 1.4 (April refresh)&lt;/li&gt; &lt;li&gt;Support for .NET Framework 4.0 (Razor will also be supported)&lt;/li&gt; &lt;li&gt;Remote Desktop to the instances&lt;/li&gt; &lt;li&gt;Possibility to use Azure Connect&lt;/li&gt; &lt;li&gt;Web.config modification supported (the files are in a shared read/write cloud drive)&lt;/li&gt; &lt;li&gt;Multiple portal alias are also supported&lt;/li&gt; &lt;li&gt;DNN configured as a WebFarm (see DotNetNuke white papers for more info)&lt;/li&gt; &lt;li&gt;DNN 5.6.2 preconfigured&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The new accelerator is using a SMB Server worker role instance, that mounts a cloud drive and share it across the internal network. Then the webrole instances maps the network drive and use it for the creation of a new site that is created dynamically on the role Start() event.&lt;/p&gt; &lt;p&gt;I need to sleep something :) Meanwhile, some captures. Below the menu, you can see which computer is actually serving you this page (there are 2 webroles instances).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Accelerator Roles&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TcGr3o-_MbI/AAAAAAAAAQY/2BqL3cn-S_I/s1600-h/AcceleratorRoles%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AcceleratorRoles" border="0" alt="AcceleratorRoles" src="http://lh4.ggpht.com/_9wri4uIqw0c/TcGr4cmJv0I/AAAAAAAAAQc/O0e-01BHpdA/AcceleratorRoles_thumb%5B2%5D.jpg?imgmax=800" width="450" height="150"&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;SMBServer worker role&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TcGr5j3pSzI/AAAAAAAAAQg/j1uqGTTtVzQ/s1600-h/SMBServer%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SMBServer" border="0" alt="SMBServer" src="http://lh6.ggpht.com/_9wri4uIqw0c/TcGr6iBurvI/AAAAAAAAAQk/3tGmhRajGEk/SMBServer_thumb%5B2%5D.jpg?imgmax=800" width="450" height="375"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;DNN WebRoles&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TcGr8rP3eNI/AAAAAAAAAQo/qIVXTlf8tcA/s1600-h/DNNAzureWebRole%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="DNNAzureWebRole" border="0" alt="DNNAzureWebRole" src="http://lh5.ggpht.com/_9wri4uIqw0c/TcGr9svptRI/AAAAAAAAAQs/Yrx3xf6nTB4/DNNAzureWebRole_thumb%5B2%5D.jpg?imgmax=800" width="450" height="394"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4181022455494448283?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4181022455494448283/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/05/dotnetnuke-azure-accelerator-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4181022455494448283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4181022455494448283'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/05/dotnetnuke-azure-accelerator-con.html' title='DotNetNuke Azure Accelerator con soporte Multi-instance'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_9wri4uIqw0c/TcGr4cmJv0I/AAAAAAAAAQc/O0e-01BHpdA/s72-c/AcceleratorRoles_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-9063578892956127180</id><published>2011-04-24T22:33:00.001+01:00</published><updated>2011-04-24T22:33:53.651+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ping'/><category scheme='http://www.blogger.com/atom/ns#' term='Networking'/><title type='text'>Mejorar el Ping con un “pincho” 3G</title><content type='html'>&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TbSXNYykUeI/AAAAAAAAAQA/PTSonneQzeY/s1600-h/Sport_PingPong%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Sport_PingPong" border="0" alt="Sport_PingPong" align="right" src="http://lh5.ggpht.com/_9wri4uIqw0c/TbSXNzn9IUI/AAAAAAAAAQE/QusueHN8uU0/Sport_PingPong_thumb%5B2%5D.jpg?imgmax=800" width="200" height="150"&gt;&lt;/a&gt;Este tema es un poco &lt;em&gt;off-topic&lt;/em&gt; con todo lo relacionado con la nube (Mmm…quizás al final no tanto). Ahora que tengo todo empaquetado y listo para &lt;a href="http://www.salt2011.es/" target="_blank"&gt;el evento de la semana que viene&lt;/a&gt;, me dio por echar un “vicio” a mi distracción favorita: una raid con los coleguitas de la guild en el WoW (por cierto, acabo de ver un Twit de David Salgado que estaba pensando hacer lo mismo, ya hablamos &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Lengua fuera" src="http://lh6.ggpht.com/_9wri4uIqw0c/TbSXOeJQzBI/AAAAAAAAAQI/va1LulJbSJQ/wlEmoticon-smilewithtongueout%5B2%5D.png?imgmax=800"&gt;).&lt;/p&gt; &lt;p&gt;Pues como empaqueté hasta el router ADSL, no tuve otra opción que usar el &lt;a href="http://tienda.vodafone.es/movil/vodafone/mobile_wifi_r201?s=modemcontrato" target="_blank"&gt;Mobile WiFi de Vodafone&lt;/a&gt; –que por cierto, va muy bien- para conectarme.&lt;/p&gt; &lt;p&gt;No entendía que si la velocidad de subida y bajada estaban muy bien –mejor que con mi línea ADSL fija-, cuando estaba dentro del juego alcanzaba valores de latencia entre 6000ms y 15000ms, hasta que finalmente me tiraba del juego.&lt;/p&gt; &lt;p&gt;Indagando un poco por los foros, &lt;a href="http://eu.battle.net/wow/es/forum/topic/1302704084" target="_blank"&gt;encontré la solución&lt;/a&gt; y que detallo aquí porque supongo que se aplica en numerosas situaciones, no expresamente en juegos online. Seguro que alguna aplicación en la nube va a requerir del mismo modo una latencia “decente” y no esos horribles valores.&lt;/p&gt; &lt;h2&gt;La solución&lt;/h2&gt; &lt;p&gt;La solución es muy sencilla: reducir el &lt;a href="http://es.wikipedia.org/wiki/Unidad_m%C3%A1xima_de_transferencia" target="_blank"&gt;tamaño máximo de los paquetes&lt;/a&gt; TCP/IP para la conexión que usa el pincho (o sus siglas en inglés, MTU). ¿Cómo se hace esto? Muy fácil siguiendo estos pasos –ojo, sólo Windows 7 y Windows Vista:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Abrir una consola de comandos en modo administrador: Inicio&amp;gt;Todos los programas&amp;gt;Accesorios&amp;gt;Símbolo del sistema (pulsar botón derecho y Ejecutar como administrador)  &lt;li&gt;Ejecutar el comando siguiente:&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font face="Courier New"&gt;netsh interface ipv4 show subinterfaces&lt;br&gt;&lt;/font&gt;&lt;/strong&gt; &lt;li&gt;El resultado es la lista de interfaces de red con la MTU de cada conexión. Por defecto la MTU de cada conexión es de 1500 excepto la de Loopback.  &lt;li&gt;Ahora, para reducir el tamaño de los paquetes a través de la conexión del pincho, escribir el comando siguiente, donde “Conexión de banda ancha móvil” es el nombre de la conexión asociada al pincho y 750 es el el nuevo tamaño de la MTU que queremos usar:&lt;br&gt;&lt;br&gt;&lt;strong&gt;&lt;font face="Courier New"&gt;netsh interface ipv4 set subinterface "Conexión de banda ancha móvil" mtu=750 store=persistent&lt;br&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TbSXPJ8f8mI/AAAAAAAAAQM/YJsfQE1Txqw/s1600-h/ModificarMTU%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ModificarMTU" border="0" alt="ModificarMTU" src="http://lh6.ggpht.com/_9wri4uIqw0c/TbSXPwFiLRI/AAAAAAAAAQQ/U1uoIGP3CsU/ModificarMTU_thumb%5B1%5D.jpg?imgmax=800" width="454" height="120"&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;El resultado, espectacular. &lt;strong&gt;138ms de ping&lt;/strong&gt;. Con esto puedo desconectar hasta con el Call of Duty &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh3.ggpht.com/_9wri4uIqw0c/TbSXQPReTtI/AAAAAAAAAQU/7sffQURFWHA/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;&lt;/p&gt; &lt;p&gt;Espero que os sea útil. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-9063578892956127180?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/9063578892956127180/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/04/mejorar-el-ping-con-un-pincho-3g.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/9063578892956127180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/9063578892956127180'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/04/mejorar-el-ping-con-un-pincho-3g.html' title='Mejorar el Ping con un “pincho” 3G'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_9wri4uIqw0c/TbSXNzn9IUI/AAAAAAAAAQE/QusueHN8uU0/s72-c/Sport_PingPong_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2724213713948035223</id><published>2011-04-18T19:55:00.001+01:00</published><updated>2011-04-18T19:55:31.468+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Office365'/><category scheme='http://www.blogger.com/atom/ns#' term='TenerifeDev'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><title type='text'>Evento TenerifeDev: Office 365 – Súbete a la nube</title><content type='html'>&lt;p&gt;&lt;strong&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TayJHojK-qI/AAAAAAAAAP4/8eO-P4RIOV4/s1600-h/Microsoft-Office-365_thumb_16C90961%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Microsoft-Office-365_thumb_16C90961" border="0" alt="Microsoft-Office-365_thumb_16C90961" align="right" src="http://lh3.ggpht.com/_9wri4uIqw0c/TayJIvC062I/AAAAAAAAAP8/DvJdeVm-K2k/Microsoft-Office-365_thumb_16C90961_thumb%5B1%5D.png?imgmax=800" width="240" height="111"&gt;&lt;/a&gt;¡Por fin!&lt;/strong&gt; Por fin se ha liberado públicamente la Beta de &lt;strong&gt;Office 365&lt;/strong&gt; con lo que &lt;a href="http://www.microsoft.com/es-es/office365/online-software.aspx" target="_blank"&gt;ya puedes inscribirte para solicitar el acceso al mismo&lt;/a&gt; y ver por ti mismo las novedades que trae.&lt;/p&gt; &lt;p&gt;Si estás en Tenerife la segunda semana de Mayo estás de suerte, porque el &lt;strong&gt;viernes 13 de mayo&lt;/strong&gt; vas a poder ver todas estas novedades y con lo que vamos a poder trastear desde el punto de vista del desarrollador nada menos que de manos de &lt;strong&gt;&lt;a href="http://geeks.ms/blogs/adiazmartin/archive/2011/04/18/tenerifedev-evento-sobre-offie-365.aspx" target="_blank"&gt;Alberto Díaz&lt;/a&gt;&lt;/strong&gt; –MVP de Sharepoint. &lt;/p&gt; &lt;p&gt;Los datos del evento son los siguientes:&lt;/p&gt; &lt;p&gt;&lt;img src="http://bt58lw.bay.livefilestore.com/y1ptBrrcjvwNzrAPHVBOZvLPHChZkQRazGmpF0X_qQSYu7vTUW6i2Y2L2Jb_NqIfttc59VGiF5Avqf-vADLLTWmVMx7lbdygBnO/Logo150.jpg?psid=1"&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Fecha&lt;/strong&gt;: 13 de Mayo de 2011  &lt;li&gt;&lt;strong&gt;Hora comienzo/fin&lt;/strong&gt;: 17:00 – 18:30 (GMT+0)  &lt;li&gt;&lt;strong&gt;Lugar&lt;/strong&gt;: Salón de Grados, Escuela Técnica Superior de Ingeniería Informática&lt;br&gt;Universidad de La Laguna, Camino San Francisco de Paula s/n&lt;br&gt;38271, La Laguna, Tenerife, SPAIN  &lt;li&gt;&lt;strong&gt;Descripción:&lt;/strong&gt; La computación en la nube abarca desde los servidores hasta el escritorio, y por supuesto, las soluciones de productividad que hacen el día a día del trabajo de usuarios empresariales. Office 365 es parte de una &lt;strong&gt;plataforma unificada de productividad&lt;/strong&gt; en la nube de Microsoft. Es adecuado para empresas de todos los tamaños, porque ofrece versiones en la nube de las soluciones más confiables de colaboración, comunicación y correo electrónico, en combinación con la conocida suite Office Professional Plus. &lt;br&gt;Se acaba de publicar la versión Beta pública y tenemos algunas preguntas que responder: &lt;br&gt;¿Cuáles son los productos que incluye? &lt;br&gt;¿Cómo podemos desarrollar en esta plataforma?&lt;br&gt;Vente con el grupo de usuarios &lt;strong&gt;&lt;a href="http://www.linkedin.com/groups/TenerifeDev-3020881" target="_blank"&gt;TenerifeDev&lt;/a&gt;&lt;/strong&gt; y descubre las novedades que nos trae esta plataforma de la mano de Alberto Díaz Martín, MVP en SharePoint Server.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Para registrarte en el evento, sigue este enlace. &lt;strong&gt;&lt;font color="#ff0000"&gt;¡El aforo es limitado!&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032485437&amp;amp;Culture=es-ES" target="_blank"&gt;Registrarse&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2724213713948035223?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2724213713948035223/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/04/evento-tenerifedev-office-365-subete-la.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2724213713948035223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2724213713948035223'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/04/evento-tenerifedev-office-365-subete-la.html' title='Evento TenerifeDev: Office 365 – Súbete a la nube'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_9wri4uIqw0c/TayJIvC062I/AAAAAAAAAP8/DvJdeVm-K2k/s72-c/Microsoft-Office-365_thumb_16C90961_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-7970064524801007335</id><published>2011-04-14T21:28:00.001+01:00</published><updated>2011-04-14T21:32:16.723+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIX11'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>¡MIX11: el DNN Accelerator se paseó por Las Vegas!</title><content type='html'>&lt;p&gt;&lt;img style="display: inline; float: right" align="right" src="http://blog.theaccidentalgeek.com/image.axd?picture=DotNetNuke%20Azure.png" width="152" height="152"&gt;El lunes pasado &lt;a href="http://davidjrh.blogspot.com/2011/04/la-fiesta-de-los-cms-sobre-windows.html"&gt;creé una entrada en este blog&lt;/a&gt; comentando la agenda de las sesiones sobre gestores de contenidos en Windows Azure en el evento del MIX11 que esta semana ha tenido lugar en Las Vegas.&lt;/p&gt; &lt;p&gt;En ella comentaba al final que estaba muy intrigado por el contenido de la &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/EXT12" target="_blank"&gt;sesión de Shaun Walker&lt;/a&gt; acerca de DotNetNuke y Azure. &lt;/p&gt; &lt;p&gt;El martes ocurrieron cosas muy interesantes, como la publicación del nuevo &lt;a href="http://waacceleratorumbraco.codeplex.com/" target="_blank"&gt;Windows Azure Accelerator para Umbraco&lt;/a&gt;, en el que se resolvía el lanzar múltiples instancias con sincronización bi-direccional con el blob-storage de los contenidos. Personalmente había estado haciendo algo similar con MS Sync Services, pero al verlo terminado en Codeplex fue muy emocionante. Felicidades por el trabajo.&lt;/p&gt; &lt;p&gt;Si había comentado que estaba emocionado por ver el contenido de la sesión, lo que vino después me dejó petrificado. &lt;/p&gt; &lt;p&gt;Ayer transcurrió la sesión de Shaun que tanto llevaba esperando. Antes de meterse de lleno con DNN y Azure, Shaun resumió muy bien los términos SaaS, PaaS e IaaS, sentando las bases de cómo se ofrecen los servicios de computación en la nube. Siguió mostrando el &lt;a href="http://sqlazuremw.codeplex.com/" target="_blank"&gt;SQL Azure Migration Wizard&lt;/a&gt; que tantos hemos usado (olé por ese proyecto!) y…cuando vi la Slide mostrando el Accelerator me quedé estupefacto. &lt;/p&gt; &lt;h3&gt;El DNN Accelerator en WideScreen&lt;/h3&gt; &lt;p&gt;Pues sí, al final la presentación se centró, con demo online y todo en &lt;a href="http://dnnmixdemo.cloudapp.net"&gt;http://dnnmixdemo.cloudapp.net&lt;/a&gt;, en la presentación de DNN en Azure con el Accelerator que había subido a CodePlex en febrero (&lt;a href="http://davidjrh.blogspot.com/2011/02/dotnetnuke-azure-accelerator-released.html"&gt;ver entrada de blog&lt;/a&gt;).&lt;/p&gt; &lt;p&gt; ¡&lt;strong&gt;&lt;u&gt;Gracias desde el otro lado del charco&lt;/u&gt;&lt;/strong&gt;! De verdad es un placer poder contribuir con un granito de arena en poder usar DNN sobre Azure.&lt;/p&gt; &lt;p&gt;Lo bueno es que ahí no quedó la cosa. Después de una conversación con &lt;a href="http://blog.theaccidentalgeek.com/" target="_blank"&gt;Joe Brinkman&lt;/a&gt;, vamos a seguir mejorando el Accelerator para actualizarlo y usar las últimas características que ofrece Windows Azure (SDK 1.4, con su refresh la semana que viene) y solucionar la limitación de múltiples instancias que nombré al principio y que a la vez también reconoció Shaun en la sesión. Hay trabajo por delante, pero un trabajo muy emocionante a la vez que gratificante.&lt;/p&gt; &lt;p&gt;Os dejo con el vídeo de la sesión. No creo que lo disfrutéis tanto como yo, pero por lo menos os pondréis al día en algunos conceptos &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh4.ggpht.com/_9wri4uIqw0c/TadZA7P5-8I/AAAAAAAAAP0/SSUOd1HUZFQ/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;&lt;/p&gt; &lt;p&gt;Si no ves el vídeo o quieres descargarlo en otros formatos, puedes hacerlo desde &lt;a title="http://channel9.msdn.com/events/MIX/MIX11/EXT12" href="http://channel9.msdn.com/events/MIX/MIX11/EXT12"&gt;http://channel9.msdn.com/events/MIX/MIX11/EXT12&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;object type="application/x-silverlight-2" data="data:application/x-silverlight-2," width="450" height="255"&gt;&lt;param name="minRuntimeVersion" value="4.0.50401.0" /&gt;&lt;param name="source" value="http://channel9.msdn.com/scripts/Channel9.xap?v=1.5" /&gt;&lt;param name="initParams" value="mediaurl=http://files.ch9.ms/mix/2011/wmv/EXT12.wmv,thumbnail=http://files.ch9.ms/mix/2011/thumbs/EXT12_lg.jpg,deliverymethod=progressivedownload,autoplay=false,entryid=f5407f32300e4705a5899eb800f6e383" /&gt;&lt;/object&gt;&lt;/p&gt; &lt;p&gt;Recuerda que puedes usar el DotNetNuke Azure Accelerator desde:&lt;/p&gt; &lt;p align="center"&gt;&lt;a title="http://dnnazureaccelerator.codeplex.com/" href="http://dnnazureaccelerator.codeplex.com/"&gt;&lt;font size="3"&gt;&lt;strong&gt;http://dnnazureaccelerator.codeplex.com/&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-7970064524801007335?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/7970064524801007335/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/04/mix11-el-dnn-accelerator-se-paseo-por.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7970064524801007335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7970064524801007335'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/04/mix11-el-dnn-accelerator-se-paseo-por.html' title='¡MIX11: el DNN Accelerator se paseó por Las Vegas!'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_9wri4uIqw0c/TadZA7P5-8I/AAAAAAAAAP0/SSUOd1HUZFQ/s72-c/wlEmoticon-smile%5B2%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8092196385682950576</id><published>2011-04-11T19:28:00.001+01:00</published><updated>2011-04-11T19:28:51.468+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIX11'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>La fiesta de los CMS sobre Windows Azure: MIX11</title><content type='html'>&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TaNIYOYJVFI/AAAAAAAAAPs/D8QKrKDIjJI/s1600-h/header_ballsplus%5B7%5D.gif"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="header_ballsplus" border="0" alt="header_ballsplus" align="right" src="http://lh4.ggpht.com/_9wri4uIqw0c/TaNIYkgm2vI/AAAAAAAAAPw/Nnehm89DZpw/header_ballsplus_thumb%5B3%5D.gif?imgmax=800" width="89" height="100"&gt;&lt;/a&gt;Como muchos ya sabrán, desde mañana martes 12 hasta el 14 de Abril se celebra en Las Vegas el &lt;a href="http://live.visitmix.com/" target="_blank"&gt;MIX11&lt;/a&gt;, una reunión de desarrolladores, diseñadores, expertos en interfaz de usuario y profesionales para la creación de los sitios más innovadores y rentables de la web. Las sesiones abarcan temas técnicos, consejos de expertos para estrategia en contenidos, usabilidad y diseño. En estas sesiones se hablará del futuro de de los estándares basados en la web.&lt;/p&gt; &lt;p&gt;Dentro del gran abanico de sesiones –que por suerte, para los que no podemos asistir en vivo, serán grabadas y compartidas en &lt;a href="http://channel9.msdn.com/" target="_blank"&gt;Channel 9&lt;/a&gt;- hay unas que tratan específicamente sobre la gestión de contenidos sobre Windows Azure.&lt;/p&gt; &lt;p&gt;Os dejo a continuación una agenda de las sesiones sobre este tema:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Martes 12 de Abril de 2011&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;19:30-20:30 GMT+0 - &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/FRM06" target="_blank"&gt;Deconstructing Orchard: Build, Customize, Extend, Ship&lt;/a&gt; (&lt;a href="http://live.visitmix.com/MIX11/ics/FRM06" target="_blank"&gt;Añadir al calendario&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Miércoles 13 de Abril de 2011&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;22:00-22:25 GMT+0 - &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/EXT12" target="_blank"&gt;DotNetNuke and Azure: Taking Your Business to the Cloud&lt;/a&gt; (&lt;a href="http://live.visitmix.com/MIX11/ics/EXT12" target="_blank"&gt;Añadir al calendario&lt;/a&gt;)  &lt;li&gt;22:00–22:25 GMT+0 – &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/EXT16" target="_blank"&gt;Life in the Fast Lane:&amp;nbsp; Rapidly Deploy Umbraco CMS on Windows Azure&lt;/a&gt; (&lt;a href="http://live.visitmix.com/MIX11/ics/EXT16" target="_blank"&gt;Añadir al calendario&lt;/a&gt;)  &lt;li&gt;22:35-23:00 GMT+0 - &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/EXT10" target="_blank"&gt;Building Your Web Sites with Kentico CMS on Windows Azure&lt;/a&gt; (&lt;a href="http://live.visitmix.com/MIX11/ics/EXT10" target="_blank"&gt;Añadir al calendario&lt;/a&gt;)  &lt;li&gt;22:35–23:00 GMT+0 - &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/EXT24" target="_blank"&gt;Sharpen Your Web Development Skills with Razor and Umbraco CMS&lt;/a&gt; (&lt;a href="http://live.visitmix.com/MIX11/ics/EXT24" target="_blank"&gt;Añadir al calendario&lt;/a&gt;)  &lt;li&gt;22:35-23:00 GMT+0 - &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/EXT25" target="_blank"&gt;Walking the Razor’s Edge with DotNetNuke&lt;/a&gt; (&lt;a href="http://live.visitmix.com/MIX11/ics/EXT25" target="_blank"&gt;Añadir al calendario&lt;/a&gt;)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Las grabaciones estarán disponibles unas 24 horas después de ser grabadas. &lt;a href="http://live.visitmix.com/news/live-keynote" target="_blank"&gt;En directo se retransmitirán las keynotes&lt;/a&gt;&lt;em&gt;&lt;/em&gt; del 12 y 13 de Abril. También os recomiendo seguir en Twitter el evento a través de &lt;a href="http://twitter.com/MIXEvent" target="_blank"&gt;@MIXEvent&lt;/a&gt; y el hash-tag #MIX11.&lt;/p&gt; &lt;h3&gt;Intrigadísimo estoy…&lt;/h3&gt; &lt;p&gt;La cita del miércoles 13 con &lt;a href="http://www.dotnetnuke.com/Resources/Blogs/tabid/825/BlogID/1/Default.aspx" target="_blank"&gt;Shaun Walker&lt;/a&gt; sobre DotNetNuke y Azure, reza así:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;“Over the past couple of years, no technology has been hyped as much as the cloud, but even with so much hype, it is amazing how little is understood about its practical application in the enterprise. In this session, we will discuss the top 10 reasons why a business of any size should seriously consider moving to the cloud. We will also demonstrate how you can leverage DotNetNuke, the leading open source web content management system for ASP.Net to design and deploy feature-rich business websites on Windows Azure.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Con ese anuncio, estoy más emocionado que cuando salí del cine la primera vez que fui a ver Matrix.&lt;/p&gt; &lt;p&gt;Happy Coding!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8092196385682950576?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8092196385682950576/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/04/la-fiesta-de-los-cms-sobre-windows.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8092196385682950576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8092196385682950576'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/04/la-fiesta-de-los-cms-sobre-windows.html' title='La fiesta de los CMS sobre Windows Azure: MIX11'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_9wri4uIqw0c/TaNIYkgm2vI/AAAAAAAAAPw/Nnehm89DZpw/s72-c/header_ballsplus_thumb%5B3%5D.gif?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-7680134103124736068</id><published>2011-03-22T23:23:00.001Z</published><updated>2011-03-22T23:23:18.198Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Primer vistazo a SQL Azure Reporting CTP</title><content type='html'>&lt;p&gt;&lt;img style="display: inline; float: right" align="right" src="http://blogs.technet.com/blogfiles/dataplatforminsider/WindowsLiveWriter/SQLServerStreamInsightandSQLAzureDatabas_8E44/SQL-Azure%20Logo_3.png"&gt;Después de algún tiempo sin pasar por el blog por motivos varios –largo número de eventos, carnavales, nevada y consecuente gripazo- estoy de vuelta con las pilas recargadas para acercaros las novedades que he podido saborear en la plataforma Azure.&lt;/p&gt; &lt;p&gt;El fin de semana pasado me llegó por fin la invitación para acceder a la CTP de SQL Azure Reporting (Customer Technology Preview, todavía ni es Beta), fase en la que se ofrece acceso limitado a la plataforma como primera toma de contacto a fin de obtener &lt;em&gt;feedback&lt;/em&gt; sobre el producto antes de lanzarlo al mercado.&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;¿Qué es SQL Azure Reporting?&lt;/h3&gt; &lt;p&gt;Es la tecnología capaz de generar informes ricos sin tener que mantener una infraestructura, permitiendo usar las mismas herramientas de desarrollo que estás acostumbrado a usar para subir informes a la nube. &lt;/p&gt; &lt;p&gt;No hay necesidad de administrar o mantener una infraestructura separada para la generación de informes, lo que conduce a costes más bajos y menos complejidad. Los clientes podrán acceder a los informes desde el portal de SQL Azure, a través del navegador o desde nuestras propias aplicaciones.&lt;/p&gt; &lt;h3&gt;¿Para qué se usa SQL Azure Reporting?&lt;/h3&gt; &lt;p&gt;Hay diversos escenarios, entre los que cabe destacar:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Generar informes de un datawarehouse sin necesidad de construir y gestionar una plataforma de presentación propia  &lt;li&gt;Crear informes robustos y fáciles de leer y ponerlos disponibles directamente en tus aplicaciones o vía navegador  &lt;li&gt;&lt;strong&gt;¡Aprovecha la potencia de la nube!&lt;/strong&gt; Mantén tus datos seguros mientras ofreces acceso a incluso más usuarios&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;¿Cuáles son las características principales?&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Desarrollo de informes a través de Business Intelligence Design Studio (BIDS) o Report Builder, permitiendo realizar informes con características avanzadas: mapas, gráficos, indicadores, etc.  &lt;li&gt;Permite exportación a varios formatos, como Excel, Word, HTML, PDF, XML, CSV y feeds ATOM  &lt;li&gt;Escalabilidad y flexibilidad para demanda elástica, permitiendo aumentar o disminuir la capacidad de la plataforma según los requerimientos con alta disponibilidad y tolerancia a fallos de serie&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;¿Hay diferencias con SQL Server Reporting Services?&lt;/h3&gt; &lt;p&gt;Sí, como también las hay entre SQL Server y SQL Azure. En este enlace hay una tabla rápida de comparación entre ambas plataformas: &lt;a href="http://www.microsoft.com/en-us/SQLAzure/reporting.aspx" target="_blank"&gt;Comparación entre SQL Azure Reporting y SQL Server Reporting Services&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;Comenzando a trastear con la CTP…&lt;/h3&gt; &lt;p&gt;No sé si lo he pillado en un momento algo más avanzado que en su inicio, pero a mi parecer está bastante a la altura para ir hablando de Beta –recuerdo que con la CTPs de Windows Azure la herramienta más utilizada era el Notepad. &lt;/p&gt; &lt;p&gt;Una vez que recibes el ID de invitación, se asocia a una suscripción –para solicitar acceso a la CTP basta seguir las instrucciones dentro del portal de Windows Azure y esperar a que te toque la lotería. En esta fase CTP es muy importante ubicarlo en una suscripción donde nuestro servidor SQL Azure esté en South Central US si no queremos llevarnos una sorpresa en la factura durante las pruebas:&lt;/p&gt; &lt;p&gt;&lt;em&gt;&lt;font color="#c0504d"&gt;&lt;b&gt;&lt;u&gt;IMPORTANT DATA TRAFFIC NOTICE&lt;/u&gt;&lt;/b&gt;&lt;br&gt;Please note that the SQL Azure Reporting CTP is currently only hosted in our South Central US datacenter - we strongly recommend that you host any servers and databases you might use for your reporting testing needs at this datacenter. You will be charged for bandwidth usage for data transfers to/from the South Central US datacenter should you host your data that you report against outside of this datacenter. Also, co-locating with the service will provide optimal performance.&lt;/font&gt;&lt;/em&gt;  &lt;p&gt;De este modo, hay que dirigirse al portal de Windows Azure, y en la sección “Reporting” pulsar sobre el botón de despliegue del servicio y seleccionar con cuidado la suscripción a la que queremos ligar la CTP. Cuando el proceso termina, tenemos ya nuestro servidor de informes listo para ser usado.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TYkvIdYAbEI/AAAAAAAAAOY/ehaZx5yETRY/s1600-h/ServicioActivo%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ServicioActivo" border="0" alt="ServicioActivo" src="http://lh3.ggpht.com/_9wri4uIqw0c/TYkvJJExCgI/AAAAAAAAAOc/pUEuhE1bQdQ/ServicioActivo_thumb%5B1%5D.jpg?imgmax=800" width="454" height="296"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;¿Y ahora? ¿Cómo comenzamos a trastear si sólo veo una opción que pone “Reset Password”? Paciencia, pulsemos el enlace “&lt;a href="http://go.microsoft.com/fwlink/?LinkID=204362" target="_blank"&gt;Getting Started with Azure Reporting&lt;/a&gt;”&lt;/p&gt; &lt;p&gt;Una vez que le hemos echado una lectura rápida al contenido (por ahora sólo hay 6 páginas de documentación, y donde se puede ver más actividad es en los foros), el siguiente paso para realizar una prueba de concepto es descargar los ejemplos desde Code Gallery en MSDN:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;DataWareHouse de &lt;a href="http://msftdbprodsamples.codeplex.com/releases/view/37304" target="_blank"&gt;AdventureWorks para SQL Azure&lt;/a&gt;  &lt;li&gt;Informes de ejemplo para bases de datos SQL Azure: &lt;a href="http://archive.msdn.microsoft.com/SQLAzureReports" target="_blank"&gt;SQL Azure Reports&lt;/a&gt;  &lt;li&gt;Código de ejemplo para ReportViewer en una aplicación Windows Azure: &lt;a href="http://archive.msdn.microsoft.com/RVControlforAzure" target="_blank"&gt;Report Viewer Control for Windows Azure&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Instalar el data warehouse de AdventureWorks en Windows Azure&lt;/h3&gt; &lt;p&gt;Una vez descargada la &lt;a href="http://msftdbprodsamples.codeplex.com/releases/view/37304" target="_blank"&gt;herramienta de instalación&lt;/a&gt; del Dataware AdventureWorks LT para Windows Azure, realizamos los pasos siguientes:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Eliminar cualquier base de datos de ejemplo de data warehouse de Adventureworks Light (LT) previa  &lt;li&gt;Iniciar una línea de comandos con privilegios de administrador  &lt;li&gt;Ubicarse en la carpeta donde se han descomprimidos los archivos de instalación  &lt;li&gt;Entrar en la subcarpeta AdventureWorks2008R2AZ\LT  &lt;li&gt;Ejecutar el comando siguiente: &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;font face="Courier New"&gt;buildawltaz.cmd tcp:nombreservidor usuario contraseña&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Con esta acción iniciamos el script de inicialización del esquema de la base de datos y la carga de los datos de prueba. Como en cualquier upload, aquí ayuda mucho el que lo puedas realizar desde una línea con buen caudal de subida, por ejemplo en una máquina de desarrollo alquilada en un proveedor de IaaS &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvJopNpfI/AAAAAAAAAOg/uPkVchuzZp4/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvKqmFpPI/AAAAAAAAAOk/Cbr7WxI7k9c/s1600-h/UploadDW%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="UploadDW" border="0" alt="UploadDW" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvLSBKX-I/AAAAAAAAAOo/sTbfl_J7cxo/UploadDW_thumb%5B1%5D.jpg?imgmax=800" width="454" height="227"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Aquí tenéis un vídeo de cómo realizar esta tarea paso a paso:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=lyHm9alUFVw&amp;amp;NR=1" target="_blank"&gt;Vídeo de cómo subir AdventureWorks a Azure&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Desplegar informes de ejemplo en SQL Azure Reporting&lt;/h3&gt; &lt;p&gt;Una vez que &lt;a href="http://archive.msdn.microsoft.com/SQLAzureReports" target="_blank"&gt;hemos descargado los informes de ejemplo&lt;/a&gt;, el siguiente paso es subirlos para ponerlos disponibles en la plataforma de Azure. Para ello realizamos los pasos siguientes:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Abrir el proyecto con Visual Studio 2008 (según la documentación VS2010 aún no está soportado aunque en &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-reporting-samples.aspx" target="_blank"&gt;la captura de pantalla que se ve en este enlace&lt;/a&gt; parece lo contrario, cosas de CTPs y documentación en construcción)&lt;/li&gt; &lt;li&gt;Para realizar una vista preliminar de los informes antes de desplegarlos en Azure, editamos la cadena de conexión para apuntarlos a nuestra base de datos en SQL Azure, haciendo doble click sobre los dos “Shared Data Sources” (fijaos que el tipo de conexión es Microsoft SQL Azure) y actualizamos los credenciales (no pongais en el nombre de usuario el “@nombreservidor” porque os dará un problema de conexión en producción, poned sólo el nombre de usuario)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TYkvMHeu2JI/AAAAAAAAAOs/hKAhCzeWO_w/s1600-h/SharedDataSource%5B6%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="SharedDataSource" border="0" alt="SharedDataSource" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvMvGlL7I/AAAAAAAAAOw/Q0LsF6J5Cow/SharedDataSource_thumb%5B2%5D.jpg?imgmax=800" width="454" height="336"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TYkvOO8CCPI/AAAAAAAAAO0/qoBxkupUiB8/s1600-h/ReportPreview%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ReportPreview" border="0" alt="ReportPreview" src="http://lh4.ggpht.com/_9wri4uIqw0c/TYkvOqwQqFI/AAAAAAAAAO4/Cs3lr-YjG38/ReportPreview_thumb%5B1%5D.jpg?imgmax=800" width="454" height="474"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Para desplegar los informes, en las propiedades del proyecto, establecemos el valor de la propiedad TargetServerURL a la URL de nuestro servidor de informes de SQL Azure. Los datos de la URL está en la sección de Reporting del portal de Windows Azure (poniéndole por delante https:// y la coletilla “/reportserver”)&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TYkvPWFDXgI/AAAAAAAAAO8/qfirPy65_5w/s1600-h/ServerConfig%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ServerConfig" border="0" alt="ServerConfig" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvQC0XrAI/AAAAAAAAAPA/WR_BHN01-XE/ServerConfig_thumb%5B1%5D.jpg?imgmax=800" width="454" height="278"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Finalmente, desplegar el proyecto a través del menú “Build&amp;gt;Deploy”, donde finalmente nos solicita los credenciales para acceder al servidor de informes (¡de ahí la opción de “Reset Password”!)&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvQh-Fj2I/AAAAAAAAAPE/-5SNEVPvgfI/s1600-h/Credentials%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Credentials" border="0" alt="Credentials" src="http://lh3.ggpht.com/_9wri4uIqw0c/TYkvRaIMGBI/AAAAAAAAAPI/hx8VJ3GMa9A/Credentials_thumb%5B1%5D.jpg?imgmax=800" width="454" height="176"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;Ver los informes desplegados en el servidor de informes de Azure&lt;/h3&gt; &lt;p&gt;Una de las formas más rápidas de examinar los informes es a través del mismo servidor de informes. Para ello, nos dirigimos a la misma URL que introdujimos en la fase de despliegue e introducimos los credenciales en una pantalla super-molona-requeteguay-delamuerte:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TYkvSP1dmkI/AAAAAAAAAPM/51FPTR4tsqs/s1600-h/ServerLogin%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="ServerLogin" border="0" alt="ServerLogin" src="http://lh3.ggpht.com/_9wri4uIqw0c/TYkvSj-XF6I/AAAAAAAAAPQ/KHTrmUuM3G4/ServerLogin_thumb%5B1%5D.jpg?imgmax=800" width="454" height="379"&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;Navegando por los informes, podemos comprobar su correcto funcionamiento:&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TYkvT3gfNGI/AAAAAAAAAPU/OBkvHPYSqqg/s1600-h/Sample1%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Sample1" border="0" alt="Sample1" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvVcXS2vI/AAAAAAAAAPY/T6-GBjh4tVs/Sample1_thumb%5B1%5D.jpg?imgmax=800" width="454" height="470"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TYkvWZAFG2I/AAAAAAAAAPc/UI8FEN1sLzQ/s1600-h/Sample2%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Sample2" border="0" alt="Sample2" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvXKH7x7I/AAAAAAAAAPg/qGNHYLxvEQU/Sample2_thumb%5B1%5D.jpg?imgmax=800" width="454" height="445"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TYkvYG48fmI/AAAAAAAAAPk/LHCUAzCYWiI/s1600-h/Sampl3%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Sampl3" border="0" alt="Sampl3" src="http://lh5.ggpht.com/_9wri4uIqw0c/TYkvZBe7bPI/AAAAAAAAAPo/r7JVE9J2JQA/Sampl3_thumb%5B1%5D.jpg?imgmax=800" width="454" height="618"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;¿Qué más puedo hacer?&lt;/h3&gt; &lt;p&gt;La lista de cosas que se pueden hacer a partir de aquí son innumerables, gracias a que se pueden incrustar informes dentro de nuestras propias aplicaciones web o interactuar con el servicio SOAP disponible. &lt;/p&gt; &lt;p&gt;En este enlace tenéis más información de cómo hacer los primeros pinitos programáticamente con el Report Server en la nube.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg552871.aspx" target="_blank"&gt;SQL Azure Reporting para desarrolladores&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;A mí ya se me está ocurriendo el desarrollo de un módulo para DotNetNuke para visualizar los informes dentro del mismo portal. &lt;/p&gt; &lt;p&gt;¿Y a tí? ¡1,2,3…responda otra vez!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-7680134103124736068?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/7680134103124736068/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/03/primer-vistazo-sql-azure-reporting-ctp.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7680134103124736068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7680134103124736068'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/03/primer-vistazo-sql-azure-reporting-ctp.html' title='Primer vistazo a SQL Azure Reporting CTP'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_9wri4uIqw0c/TYkvJJExCgI/AAAAAAAAAOc/pUEuhE1bQdQ/s72-c/ServicioActivo_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-267937057662502205</id><published>2011-02-21T23:50:00.002Z</published><updated>2011-02-22T10:28:13.193Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerator'/><title type='text'>DotNetNuke Azure Accelerator Released!!</title><content type='html'>&lt;p align="justify"&gt;Saliéndome un poco por la tangente del trabajo que venía haciendo adaptando código de DotNetNuke a Azure, le he estado echando un vistazo al &lt;a href="http://azureaccelerators.codeplex.com/" target="_blank"&gt;Accelerator de Umbraco&lt;/a&gt; para ver cómo estaba implementado, sobre todo después del &lt;a href="http://blogs.msdn.com/b/esmsdn/archive/2011/02/02/alojar-umbraco-cms-en-windows-azure.aspx" target="_blank"&gt;post de Gisela en MSDN&lt;/a&gt; que me llamó la atención sobre la utilización de los Cloud Drives para almacenar los contenidos.&lt;/p&gt;&lt;p align="justify"&gt;El resultado es lo que viene a ser el primer Accelerator para llevar DotNetNuke a Azure, ¡no podía ser que no tuviera!&lt;/p&gt;&lt;p align="justify"&gt;He publicado el resultado en CodePlex y he comprobado que el proceso de instalación funciona correctamente. Podéis echarle un vistazo en:&lt;/p&gt;&lt;p align="center"&gt;&lt;a title="http://dnnazureaccelerator.codeplex.com/" href="http://dnnazureaccelerator.codeplex.com/"&gt;&lt;font size="4"&gt;&lt;strong&gt;http://dnnazureaccelerator.codeplex.com/&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TWL6TdQoehI/AAAAAAAAAOQ/I32ghcjCK8Q/s1600-h/DNNAcceleratorArch%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="DNNAcceleratorArch" border="0" alt="DNNAcceleratorArch" src="http://lh4.ggpht.com/_9wri4uIqw0c/TWL6UIFFXPI/AAAAAAAAAOU/FzwJIqPy2FA/DNNAcceleratorArch_thumb%5B2%5D.jpg?imgmax=800" width="480" height="312"&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;También podéis echar un vistazo a un ejemplo de DotNetNuke funcionando con el Accelerator en &lt;a title="http://dnnaccelerator.cloudapp.net" href="http://dnnaccelerator.cloudapp.net"&gt;http://dnnaccelerator.cloudapp.net&lt;/a&gt;.&amp;nbsp; &lt;/p&gt;&lt;p align="justify"&gt;La imagen que incorpora el proyecto en una unidad VHD es de la última versión disponible en este momento (DotNetNuke Community 5.6.1), y tiene preinstalados todos los módulos disponibles de esta versión: foros, blogs, etc.&lt;/p&gt;&lt;p align="justify"&gt;No quiero alargar más este post, ya que en Codeplex tenéis más información y seguramente seguiré escribiendo sobre ello. &lt;/p&gt;&lt;p align="justify"&gt;Espero que lo disfrutéis.&lt;/p&gt;&lt;p align="justify"&gt;Un saludo,&lt;/p&gt;&lt;p align="justify"&gt;David Rodríguez&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-267937057662502205?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/267937057662502205/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/02/dotnetnuke-azure-accelerator-released.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/267937057662502205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/267937057662502205'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/02/dotnetnuke-azure-accelerator-released.html' title='DotNetNuke Azure Accelerator Released!!'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_9wri4uIqw0c/TWL6UIFFXPI/AAAAAAAAAOU/FzwJIqPy2FA/s72-c/DNNAcceleratorArch_thumb%5B2%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-1888208761863565186</id><published>2011-02-20T16:07:00.002Z</published><updated>2011-02-20T16:11:40.462Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><title type='text'>Copiar una base de datos SQLAzure a un servidor distinto -en otra suscripción- con T-SQL</title><content type='html'>&lt;div align="justify"&gt;&lt;img align="right" src="http://blogs.technet.com/blogfiles/dataplatforminsider/WindowsLiveWriter/SQLServerStreamInsightandSQLAzureDatabas_8E44/SQL-Azure%20Logo_3.png" style="display: inline; float: right;" /&gt;Si tienes una base de datos en un entorno de desarrollo en Azure, es normal que cuando quieras pasar a producción desees copiar la base de datos con la que has estado trabajando a una suscripción en producción, sobre todo cuando la suscripción final es del cliente y la facturación de uso de Azure se debe facturar a éste.&lt;/div&gt;&lt;div align="justify"&gt;Para ello podemos usar distintas herramientas para traspasar esquema y datos, como &lt;a href="http://www.red-gate.com/products/sql-development/sql-compare/" target="_blank"&gt;RedGate SQLCompare 9&lt;/a&gt;, &lt;a href="http://sqlazuremw.codeplex.com/" target="_blank"&gt;SQL Azure Migration Wizard&lt;/a&gt;, o el mismo &lt;a href="http://www.microsoft.com/express/Database/InstallOptions.aspx" target="_blank"&gt;MS SQL Server Management Studio 2008 R2&lt;/a&gt;.&lt;/div&gt;&lt;div align="justify"&gt;Sin embargo, hay una manera muy sencilla de copiar dicha base de datos entre distintos servidores, que no es otra que la de&lt;strong&gt; ejecutar un comando T-SQL&lt;/strong&gt;. Sé que este post no es muy novedoso, pero lo hago para utilizarlo como chuleta propia, que siempre ando buscando estos scripts cada vez que tengo que hacer esta tarea.&lt;/div&gt;&lt;div align="justify"&gt;&lt;u&gt;NOTA: esta sintaxis tiene la limitación de que sólo se puede hacer entre servidores SQL Azure que se encuentren en la &lt;strong&gt;misma sub-región o Datacenter&lt;/strong&gt;.&lt;/u&gt;&lt;/div&gt;&lt;h3 align="justify"&gt;Cómo copiar la base de datos entre distintos servidores&lt;/h3&gt;&lt;div align="justify"&gt;1) Crear un login en el servidor destino, con el &lt;strong&gt;mismo nombre de usuario y contraseña&lt;/strong&gt; que el DBO de la base de datos origen y asignarle el rol “dbmanager”&lt;/div&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- Ejecutar en la master del servidor destino&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Crear el Login&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; LOGIN MiLogin &lt;span class="kwrd"&gt;WITH&lt;/span&gt; password=&lt;span class="str"&gt;'MiPassword'&lt;/span&gt;;&lt;br /&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Crear el usuario&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;USER&lt;/span&gt; MiUsuario &lt;span class="kwrd"&gt;FROM&lt;/span&gt; LOGIN MiLogin&lt;br /&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Asignar Rol dbmanager&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;EXEC&lt;/span&gt; sp_addrolemember &lt;span class="str"&gt;'dbmanager'&lt;/span&gt;, &lt;span class="str"&gt;'MiUsuario'&lt;/span&gt;;&lt;br /&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;2) Copiar la base de datos origen con el comando CREATE DATABASE, ejecutándolo en el servidor destino (es un proceso asíncrono y para ver el resultado debéis ejecutar las consultas del siguiente paso). Si el nombre del servidor es xxxxx.database.windows.net, el “NombreServidorOrigen” es “xxxxx”. No se admiten copias entre distintas regiones, sub-regiones o datacenters:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- Ejecutar iniciando sesión en destino con el &lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- usuario que creamos en el paso anterior&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Copiar base de datos&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;DATABASE&lt;/span&gt; NombreBDDestino &lt;span class="kwrd"&gt;AS&lt;/span&gt; COPY &lt;span class="kwrd"&gt;OF&lt;/span&gt; &lt;span style="background-color: yellow;"&gt;NombreServidorOrigen&lt;/span&gt;.NombreBDOrigen&lt;br /&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;div align="justify"&gt;3) Monitorizar el estado del proceso de copia a través de las consultas siguientes. Cuando el estado de la base de datos pase de “COPYING” a “ONLINE”, podremos operar ya con la base de datos. &lt;/div&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;-- Obtener el estado de las bases de datos&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; name, &lt;span class="kwrd"&gt;state&lt;/span&gt;, state_desc &lt;br /&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.databases&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;-- Obtener detalles de los procesos de copia&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; * &lt;br /&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; sys.dm_database_copies&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;Una vez realizadas estas operaciones, si lo deseamos podemos crear nuevos usuarios e inicios de sesión para la base de datos en el servidor de destino, para que tengan credenciales distintas que en el servidor origen.&lt;br /&gt;&lt;br /&gt;&lt;h3 align="justify"&gt;Errores conocidos&lt;/h3&gt;&lt;br /&gt;&lt;div align="justify"&gt;1) &lt;strong&gt;CREATE DATABASE permission denied in database '&amp;lt;NombreDBOrigen&amp;gt;'.&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Este error lo da si el usuario con el que estamos intentando realizar la copia no es el DBO de la base de datos origen. Aseguraos de que estáis ejecutando el comando con el usuario correcto.&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;2) &lt;strong&gt;“Cannot open server "&amp;lt;NombreServidorOrigen&amp;gt;" requested by the login.&amp;nbsp; The login failed.”&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Aseguraos que el nombre de usuario con el que estáis ejecutando el comando en el servidor destino tiene el mismo nombre y contraseña en el servidor origen. También debéis aseguraos de que&lt;u&gt; el servidor origen está dentro de la misma sub-región o Datacenter&lt;/u&gt;. &lt;strong&gt;NO SE PUEDEN COPIAR BASES DE DATOS ENTRE DISTINTOS DATACENTERS&lt;/strong&gt; con esta sintaxis. Para ello hay que acudir a otro tipo de herramientas como las comentadas al inicio del post.&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;3) &lt;strong&gt;“A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)”&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Este error se debe a un error de conexión por reglas del firewall. También debéis tener en cuenta que no se puede hacer copia entre servidores que estén en datacenters distintos –ver error anterior.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;Referencias: &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff951624.aspx" target="_blank"&gt;MSDN – Copying Databases in SQL Azure&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff951629.aspx" target="_blank"&gt;MSDN – How to: Copy Your Database to a Different Server (SQL Azure)&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-1888208761863565186?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/1888208761863565186/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/02/copiar-una-base-de-datos-sqlazure-un.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1888208761863565186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1888208761863565186'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/02/copiar-una-base-de-datos-sqlazure-un.html' title='Copiar una base de datos SQLAzure a un servidor distinto -en otra suscripción- con T-SQL'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-1845623992425484054</id><published>2011-02-10T16:40:00.001Z</published><updated>2011-02-10T16:40:19.368Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Evento'/><category scheme='http://www.blogger.com/atom/ns#' term='Cloud Computing'/><title type='text'>Jornada sobre Cloud Computing – CEOE Tenerife</title><content type='html'>&lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TVQU7vFceLI/AAAAAAAAAOI/XW5smlyTdLo/s1600-h/cloud_power%5B3%5D.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="cloud_power" border="0" alt="cloud_power" align="right" src="http://lh3.ggpht.com/_9wri4uIqw0c/TVQU8hLsVEI/AAAAAAAAAOM/JrGNFiYeFi4/cloud_power_thumb%5B1%5D.png?imgmax=800" width="240" height="82"&gt;&lt;/a&gt;La Confederación Provincial de Empresarios de Santa Cruz de Tenerife (CEOE-TENERIFE), en colaboración con &lt;a href="http://www.movistar.com/" target="_blank"&gt;Telefónica Movistar&lt;/a&gt; y el &lt;a href="http://www.ceteca.es/" target="_blank"&gt;Centro Tecnológico de Canarias&lt;/a&gt; (CETECA), tiene previsto desarrollar el próximo &lt;strong&gt;&lt;u&gt;17 de febrero de 2011&lt;/u&gt;&lt;/strong&gt;, a las 10:00 horas la Jornada Informativa “&lt;strong&gt;Cloud Computing: Ventajas de la &lt;em&gt;nube&lt;/em&gt; para las empresas&lt;/strong&gt;”.&lt;/p&gt; &lt;p align="justify"&gt;El principal objetivo de esta jornada es acercar al tejido empresarial las nuevas formas en que se ofrecen los recursos informáticos, reduciendo significativamente sus costes, tiempos de implementación y puesta en marcha.&lt;/p&gt; &lt;p align="justify"&gt;Tengo el placer de formar parte en la presentación del mismo, así que te animo a que te inscribas y así poder despejar todas las dudas que tengas sobre este nuevo paradigma de computación.&lt;/p&gt; &lt;p align="justify"&gt;Os dejo los datos del evento y el programa de la jornada para más información.&lt;/p&gt; &lt;p align="justify"&gt;&amp;gt; &lt;a href="http://cid-c2398672056875bc.office.live.com/self.aspx/P%c3%bablico/Programa%20Jornada%20Cloud%20Computing%20-%20CEOE%20Tenerife.pdf" target="_blank"&gt;Descargar en formato PDF&lt;/a&gt;&lt;/p&gt; &lt;p align="right"&gt;&lt;iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-c2398672056875bc.office.live.com/embedicon.aspx/P%c3%bablico/Programa%20Jornada%20Cloud%20Computing%20-%20CEOE%20Tenerife.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt; &lt;h4&gt;Jornada sobre Cloud Computing – CEOE Tenerife&lt;/h4&gt; &lt;p&gt;&lt;strong&gt;Fecha:&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;17 de febrero de 2011, 10:00am (GMT+0)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Lugar de celebración&lt;/strong&gt;: &lt;/p&gt; &lt;p&gt;Sede principal de CEOE-Tenerife &lt;br&gt;Rambla de Santa Cruz, 147, Edf. Tulipán, bajo&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Programa de la jornada:&lt;/strong&gt;&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="497"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="127"&gt;&lt;strong&gt;HORARIO&lt;/strong&gt;&lt;/td&gt; &lt;td valign="top" width="368"&gt;&lt;strong&gt;PROGRAMA&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="130"&gt;10:00 horas&lt;/td&gt; &lt;td valign="top" width="366"&gt;&lt;strong&gt;Inauguración de la Jornada&lt;br&gt;&lt;/strong&gt;Confederación Provincial de Empresarios de Santa Cruz de Tenerife (CEOE-Tenerife)&lt;br&gt;Centro Tecnológico de Canarias (CETECA)&lt;br&gt;Movistar&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="132"&gt;10:15 horas&lt;/td&gt; &lt;td valign="top" width="364"&gt;&lt;strong&gt;¿Qué es Cloud Computing? ¿Qué ventajas tiene para las empresas trabajar en la “nube”?&lt;br&gt;&lt;/strong&gt;D. David Rodríguez&lt;br&gt;Socio Tecnológico del Centro Tecnológico de Canarias (CETECA)&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="134"&gt;11:00 horas&lt;/td&gt; &lt;td valign="top" width="363"&gt;&lt;strong&gt;Productos relacionados con Cloud Computing&lt;br&gt;&lt;/strong&gt;D. Marco Antonio Cabrera León&lt;br&gt;Responsable en Cloud de Marketing de Negocios de Telefónica&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="135"&gt;11:30 horas&lt;/td&gt; &lt;td valign="top" width="362"&gt;&lt;strong&gt;Casos de éxito&lt;br&gt;&lt;/strong&gt;Experiencias de Empresas Canarias en Cloud Computing&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="136"&gt;12:00 horas&lt;/td&gt; &lt;td valign="top" width="361"&gt;&lt;strong&gt;¿Cómo financiar un proyecto de innovación tecnológica?&lt;br&gt;&lt;/strong&gt;Dña. Tania Bethencourt González&lt;br&gt;Técnica Centro CIDE de CEOE-Tenerife&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="137"&gt;12:30 horas&lt;/td&gt; &lt;td valign="top" width="361"&gt;&lt;strong&gt;Ruegos y Preguntas / Clausura&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;AFORO LIMITADO&lt;/font&gt;: &lt;/strong&gt;se ruega confirmación de asistencia cumplimentando sus datos de contacto a &lt;a href="mailto:tbethencourt@ceoe-tenerife.com"&gt;tbethencourt@ceoe-tenerife.com&lt;/a&gt; o llamando al 922 285 958 (Srta. Tania Bethencourt)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-1845623992425484054?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/1845623992425484054/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/02/jornada-sobre-cloud-computing-ceoe.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1845623992425484054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1845623992425484054'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/02/jornada-sobre-cloud-computing-ceoe.html' title='Jornada sobre Cloud Computing – CEOE Tenerife'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_9wri4uIqw0c/TVQU8hLsVEI/AAAAAAAAAOM/JrGNFiYeFi4/s72-c/cloud_power_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-7033702735700619397</id><published>2011-02-09T15:57:00.001Z</published><updated>2011-02-09T15:57:57.988Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='RedGate'/><title type='text'>RedGate SQLCompare y SQLDataCompare 9 Beta, con soporte para SQL Azure</title><content type='html'>&lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TVK5JLusvUI/AAAAAAAAAM4/qwLT7ycZY2g/s1600-h/Logo_Redgate01%5B8%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 17px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Logo_Redgate01" border="0" alt="Logo_Redgate01" align="right" src="http://lh6.ggpht.com/_9wri4uIqw0c/TVK5J0mcsvI/AAAAAAAAAM8/LdNdaA6L5FY/Logo_Redgate01_thumb%5B5%5D.jpg?imgmax=800" width="240" height="82"&gt;&lt;/a&gt;Una de las &lt;a href="http://davidjrh.blogspot.com/2010/10/cambiando-indices-clustered-en-sql.html"&gt;tareas que tenía pendiente&lt;/a&gt; desde hace un par de meses, era comprobar si Red Gate, tenía en marcha la adaptación de dos de sus herramientas –para mí imprescindibles en las labores de DBA- a SQL Azure.&lt;/p&gt; &lt;p align="justify"&gt;Hasta la fecha no tenía constancia del lanzamiento de las mismas, pero parece ser que desde hace algo más de un mes han liberado la versión 9 Beta de dos de mis herramientas favoritas: SQLCompare y SQLDataCompare, y sobre todo con la intención de tener soporte completo para SQL Azure.&lt;/p&gt; &lt;p align="justify"&gt;Para el que no conozca la suite de herramientas, comentarles que la primera, &lt;strong&gt;SQLCompare&lt;/strong&gt;, es una herramienta para el &lt;strong&gt;mantenimiento y sincronización de esquemas de bases de datos&lt;/strong&gt; muy reconocidas por los DBAs. La segunda, &lt;strong&gt;SQLDataCompare&lt;/strong&gt;, hace lo mismo pero a nivel de datos, con lo que podemos sincronizar bi-direccionalmente dos bases de datos distintas a través de T-SQL autogenerado. Si alguien conoce el &lt;a href="http://sqlazuremw.codeplex.com/"&gt;SQL Azure Migration Wizard&lt;/a&gt; que se encuentra en CodePlex, se trata de dos herramientas que realizan la misma tarea pero de una forma mucho más completa –su número de versión 9 lo avala.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Si queréis probar el funcionamiento de las mismas&lt;/strong&gt;, debéis acceder a través del siguiente enlace &lt;a href="http://www.red-gate.com/azure"&gt;http://www.red-gate.com/azure&lt;/a&gt; y rellenar la encuesta inicial. Al enviar la encuesta os presenta en pantalla los enlaces para la descarga:&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TVK5L02B7nI/AAAAAAAAANA/6WYXwhR5o3w/s1600-h/RedGateDownload%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="RedGateDownload" border="0" alt="RedGateDownload" src="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5M0HuWmI/AAAAAAAAANE/833GoW6n6oY/RedGateDownload_thumb%5B1%5D.jpg?imgmax=800" width="454" height="336"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;SQLCompare&lt;/h2&gt; &lt;p align="justify"&gt;Una vez realizada la descarga e instalada la herramienta, creamos el proyecto con la configuración de las dos bases de datos que queremos comparar. En principio para el ejemplo de las capturas de pantalla he seleccionado una base de datos en blanco en Azure para realizar la migración inicial. Al guardar el proyecto, podemos sincronizar los esquemas desde Azure a local, y viceversa. Si os fijáis, la base de datos puede estar en línea, ser un backup, un snapshot o estar dentro de control de código fuente. Muy potente.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TVK5OGAbJII/AAAAAAAAANI/vPw2Rj1IZUg/s1600-h/EditProject%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="EditProject" border="0" alt="EditProject" src="http://lh5.ggpht.com/_9wri4uIqw0c/TVK5PacV-WI/AAAAAAAAANM/fHsaX38uJ-I/EditProject_thumb%5B1%5D.jpg?imgmax=800" width="454" height="289"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;También podemos seleccionar entre unos 50 parámetros distintos para alterar el comportamiento de los scripts de sincronización que genera, para que sean compatibles con SQL Azure.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5QpWj5JI/AAAAAAAAANQ/vNNyv-h3BM0/s1600-h/OptionsProjecct%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="OptionsProjecct" border="0" alt="OptionsProjecct" src="http://lh5.ggpht.com/_9wri4uIqw0c/TVK5Rgvw2KI/AAAAAAAAANU/envQqf7bkso/OptionsProjecct_thumb%5B1%5D.jpg?imgmax=800" width="454" height="289"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5SjQfLSI/AAAAAAAAANY/5TMrjWiWk_4/s1600-h/CompareSuccess%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="CompareSuccess" border="0" alt="CompareSuccess" src="http://lh3.ggpht.com/_9wri4uIqw0c/TVK5TY-b1rI/AAAAAAAAANc/m57CI0p4ayE/CompareSuccess_thumb%5B1%5D.jpg?imgmax=800" width="454" height="308"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;Una vez que se realiza la comparación, se nos presenta el interfaz principal a través del cual podemos ver qué objetos del esquema son iguales o distintos en las bases de datos, llegando al nivel de detalle de generar automáticamente el T-SQL. Lo bueno de trabajar en modo intermedio con scripts, es que siempre podemos revisarlos antes de pasar a producción, además de poder dejar ese trabajo a los encargados de hacerlo.&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TVK5VSxL5uI/AAAAAAAAANg/KtYDaUZWjAY/s1600-h/CompareDetail%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="CompareDetail" border="0" alt="CompareDetail" src="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5WbeorYI/AAAAAAAAANk/X6SfzVvpNsY/CompareDetail_thumb%5B1%5D.jpg?imgmax=800" width="454" height="285"&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;SQLDataCompare&lt;/h2&gt; &lt;p align="justify"&gt;La segunda herramienta es muy similar a la anterior, sólo que ésta en vez de compara y sincronizar esquemas, trabaja sobre los datos, comparando cada valor de cada registro de cada tabla (podemos seleccionar qué tablas queremos comparar, no os asustéis). También se pueden seleccionar otras tantas opciones de sincronización como se hizo en el proyecto de esquemas. Toda esta configuración se guarda en un archivo de proyecto para futuros mantenimientos.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5X8UaUHI/AAAAAAAAANo/pmawVkjVb0I/s1600-h/EditProjectData%5B5%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="EditProjectData" border="0" alt="EditProjectData" src="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5YTEMBGI/AAAAAAAAANs/m-hWq0ofATw/EditProjectData_thumb%5B3%5D.jpg?imgmax=800" width="454" height="291"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TVK5aYOqe9I/AAAAAAAAANw/As_HO8oG_vU/s1600-h/OptionsProjectData%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="OptionsProjectData" border="0" alt="OptionsProjectData" src="http://lh6.ggpht.com/_9wri4uIqw0c/TVK5bLCH4vI/AAAAAAAAAN0/djaOFNhd7G0/OptionsProjectData_thumb%5B1%5D.jpg?imgmax=800" width="454" height="291"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;Respecto al traspaso de datos, entre otras cosas ofrece algo que el SQL Azure Migration Wizard no da, que es la generación del T-SQL de alteración de los datos –el primero utiliza BCP para realizar el upload de los datos-, muy útil cuando quieres automatizar una instalación inicializando la base de datos. &lt;/p&gt; &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TVK5dGMAd9I/AAAAAAAAAN4/CykZ2mzHj1c/s1600-h/DataComparison%5B4%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="DataComparison" border="0" alt="DataComparison" src="http://lh3.ggpht.com/_9wri4uIqw0c/TVK5eRgXMPI/AAAAAAAAAN8/fUaSG2Pe0dU/DataComparison_thumb%5B2%5D.jpg?imgmax=800" width="454" height="342"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TVK5gDbq9yI/AAAAAAAAAOA/CY9SgNhojls/s1600-h/ReviewScript%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="ReviewScript" border="0" alt="ReviewScript" src="http://lh4.ggpht.com/_9wri4uIqw0c/TVK5hPER2PI/AAAAAAAAAOE/O3yoUwLWS8E/ReviewScript_thumb%5B1%5D.jpg?imgmax=800" width="454" height="291"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;Por lo que he probado, está funcionando correctamente. Eso sí, la base de datos que tenía en local de DotNetNuke hace tiempo que le hice algunas correcciones para que no me diera tantos problemas al migrar a Azure.&lt;/p&gt; &lt;p align="justify"&gt;Espero que resulte útil. Un saludo y happy…DBAing?&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-7033702735700619397?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/7033702735700619397/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/02/redgate-sqlcompare-y-sqldatacompare-9.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7033702735700619397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/7033702735700619397'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/02/redgate-sqlcompare-y-sqldatacompare-9.html' title='RedGate SQLCompare y SQLDataCompare 9 Beta, con soporte para SQL Azure'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_9wri4uIqw0c/TVK5J0mcsvI/AAAAAAAAAM8/LdNdaA6L5FY/s72-c/Logo_Redgate01_thumb%5B5%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-4601607892931497876</id><published>2011-01-29T17:02:00.001Z</published><updated>2011-01-29T17:02:29.809Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SMTP'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><category scheme='http://www.blogger.com/atom/ns#' term='BPOS'/><title type='text'>Integrando Exchange Online Services con DotNetNuke</title><content type='html'>&lt;p align="justify"&gt;Una de las características que nos encontramos cuando tenemos alojado DotNetNuke en Azure es que no disponemos de un servidor SMTP para el envío de los correos de notificación que usa el gestor de contenidos. &lt;/p&gt; &lt;p align="justify"&gt;La solución pasa por una de las siguientes alternativas muy bien expuestas en el post de &lt;a href="http://weblogs.thinktecture.com/cweyer/2010/12/sending-emails-from-windows-azure-using-exchange-online-web-services-bpos-for-the-search-engines.html" target="_blank"&gt;Christian Weyer&lt;/a&gt;:&lt;/p&gt; &lt;ul&gt; &lt;li&gt; &lt;div align="justify"&gt;Usar un proveedor externo que pueda ayudar en el envío de correos&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;Conectar a tu servidor SMTP On-Premises&lt;/div&gt; &lt;li&gt; &lt;div align="justify"&gt;Usar APIs/Servicios expuestos por terceros para el envío&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p align="justify"&gt;Bajo el último enfoque entran los servicios expuestos por &lt;a href="http://www.microsoft.com/online/exchange-online.aspx" target="_blank"&gt;Exchange Online&lt;/a&gt;, servicio que a través del pago de 5$ al mes/usuario podemos contar con la capacidad de un servidor de Exchange alojado en la nube –recordad que podéis probar la suite BPOS durante un periodo de 30 días sin compromiso.&lt;/p&gt; &lt;p align="justify"&gt;Para usar los servicios de Exchange Online desde DNN realizaremos una serie de modificaciones en el portal para usar los servicios web que nos ofrece. El WSDL de estos servicios está accesible según la región donde se hayan solicitado los mismos:&lt;/p&gt; &lt;table border="1" cellspacing="0" cellpadding="2" width="481"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt;Asia y Pacífico (APAC)&lt;/td&gt; &lt;td valign="top" width="363"&gt;&lt;a title="https://red003.mail.apac.microsoftonline.com/ews/Services.wsdl" href="https://red003.mail.apac.microsoftonline.com/ews/Services.wsdl" target="_blank"&gt;https://red003.mail.apac.microsoftonline.com/ews/Services.wsdl&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt;Europa (EMEA)&lt;/td&gt; &lt;td valign="top" width="363"&gt;&lt;a title="https://red002.mail.emea.microsoftonline.com/ews/Services.wsdl" href="https://red002.mail.emea.microsoftonline.com/ews/Services.wsdl" target="_blank"&gt;https://red002.mail.emea.microsoftonline.com/ews/Services.wsdl&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="116"&gt;Norte América (NA)&lt;/td&gt; &lt;td valign="top" width="363"&gt;&lt;a href="https://red001.mail.microsoftonline.com/ews/Services.wsdl" target="_blank"&gt;https://red001.mail.microsoftonline.com/ews/Services.wsdl&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p align="justify"&gt;El WSDL nos ofrece una completa información acerca de los &lt;em&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb204119%28v=exchg.140%29.aspx" target="_blank"&gt;webmethods disponibles&lt;/a&gt;&lt;/em&gt; para operar remotamente con Exchange, aunque para simplificar su uso utilizaremos la &lt;strong&gt;&lt;u&gt;EWS Managed API 1.1&lt;/u&gt;&lt;/strong&gt;, que podéis &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c3342fb3-fbcc-4127-becf-872c746840e1" target="_blank"&gt;descargar desde este enlace&lt;/a&gt;.&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TURIAEL8P3I/AAAAAAAAAL0/GvhImDr4VhA/s1600-h/WSDL45.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="WSDL" border="0" alt="WSDL" src="http://lh6.ggpht.com/_9wri4uIqw0c/TURIA8mOYxI/AAAAAAAAAL4/eqfuycXIs4k/WSDL_thumb43.jpg?imgmax=800" width="404" height="261"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;En los pasos siguientes vamos a realizar unas pequeñas modificaciones en nuestro portal DNN para usar estos servicios web de Exchange Online.&lt;/p&gt; &lt;h3 align="justify"&gt;Modificar el DNN core para conectar con BPOS&lt;/h3&gt; &lt;p align="justify"&gt;Como lo que deseamos es ampliar la funcionalidad actual del DNN para soportar BPOS y permitir seguir seleccionando un servidor SMTP, comencemos por modificar las opciones de configuración del host –para realizar estas modificaciones será necesario disponer del código fuente de DotNetNuke Community, que pueden descargar la última versión desde &lt;a href="http://dotnetnuke.codeplex.com/releases/view/59419" target="_blank"&gt;este enlace&lt;/a&gt;.&lt;/p&gt; &lt;p align="justify"&gt;1. Añadir el enumerado MailServerType en el proyecto DotNetNuke.Library, en el archivo \Library\Services\Mail\MailServerType.vb (crear el archivo):&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="kwrd"&gt;Namespace&lt;/span&gt; DotNetNuke.Services.Mail&lt;br /&gt;    &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Enum&lt;/span&gt; MailServerType&lt;br /&gt;        SMTP&lt;br /&gt;        BPOS&lt;br /&gt;    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Enum&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; Namespace&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;2. Añadimos en la clase DotNetNuke.Entities.Host.Host la propiedad MailServerType:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="rem"&gt;''' &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;''' Gets the MailServerType (SMTP or BPOS)&lt;/span&gt;&lt;br /&gt;&lt;span class="rem"&gt;''' &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; MailServerType &lt;span class="kwrd"&gt;As&lt;/span&gt; DotNetNuke.Services.Mail.MailServerType&lt;br /&gt;&lt;span class="kwrd"&gt;   Get&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;      &lt;/font&gt;Return&lt;/span&gt; &lt;span class="kwrd"&gt;CType&lt;/span&gt;(HostController.Instance.GetInteger(&lt;span class="str"&gt;"MailServerType"&lt;/span&gt;), DotNetNuke.Services.Mail.MailServerType)&lt;br /&gt;&lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;   &lt;/font&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; Property&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p align="justify"&gt;3. &lt;strong&gt;Agregamos una referencia a la EWS Managed API&lt;/strong&gt;. La instalación no la coloca en la GAC para prevenir problemas con otras posibles instalaciones futuras –ese es el motivo que pone en la documentación-, así que tenemos que buscar la librería que por defecto se instala en la ruta: C:\Program Files\Microsoft\Exchange\Web Services\1.1\Microsoft.Exchange.WebServices.dll. Aseguraos de poner el ensamblado como “Copia local=true” para que se copie automáticamente el ensamblado en el “bin” de DotNetNuke al generar el core.&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TURIBj6SWwI/AAAAAAAAAL8/1AJlxvSlWG8/s1600-h/AddReference%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="AddReference" border="0" alt="AddReference" src="http://lh3.ggpht.com/_9wri4uIqw0c/TURICW7lqVI/AAAAAAAAAMA/33I7FXBYZ8U/AddReference_thumb%5B1%5D.jpg?imgmax=800" width="404" height="182"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TURICwRUGXI/AAAAAAAAAME/9LOx96W2Yho/s1600-h/Assembly%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Assembly" border="0" alt="Assembly" src="http://lh5.ggpht.com/_9wri4uIqw0c/TURIDjIWZsI/AAAAAAAAAMI/CwrWpr2jsQM/Assembly_thumb%5B1%5D.jpg?imgmax=800" width="404" height="322"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;4. Importar el espacio de nombres &lt;strong&gt;Microsoft.Exchange.WebServices.Data &lt;/strong&gt;a través de las propiedades del proyecto&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;5. Añadir un discriminador en la rutuna SendMail de la clase “Mail” para detectar si el envío es a través de Exchange Online:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="rem"&gt;' Send using BPOS instead of SMTP&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;If&lt;/span&gt; Host.MailServerType = MailServerType.BPOS &lt;span class="kwrd"&gt;AndAlso&lt;/span&gt; SMTPServer = Host.SMTPServer &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&lt;font color="#000000"&gt;   &lt;/font&gt;Return&lt;/span&gt; SendMailBPOS(MailFrom, MailTo, Cc, Bcc, ReplyTo, Priority, Subject, BodyFormat, BodyEncoding, Body, Attachments, SMTPServer, SMTPUsername, SMTPPassword)&lt;br /&gt;&lt;span class="kwrd"&gt;End&lt;/span&gt; If&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;6. Agregar la rutina del envío de mensajes usando la API de Exchange:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;        &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; SendMailBPOS(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; MailFrom &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; MailTo &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Cc &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Bcc &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; ReplyTo &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Priority &lt;span class="kwrd"&gt;As&lt;/span&gt; MailPriority, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Subject &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; BodyFormat &lt;span class="kwrd"&gt;As&lt;/span&gt; MailFormat, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; BodyEncoding &lt;span class="kwrd"&gt;As&lt;/span&gt; System.Text.Encoding, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Body &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Attachments &lt;span class="kwrd"&gt;As&lt;/span&gt; List(Of Attachment), &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; WebServiceURL &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, _&lt;br /&gt;            &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Username &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Password &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;            SendMailBPOS = &lt;span class="str"&gt;""&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Try&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;Dim&lt;/span&gt; service &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; ExchangeService(ExchangeVersion.Exchange2007_SP1)&lt;br /&gt;                service.Url = &lt;span class="kwrd"&gt;New&lt;/span&gt; Uri(WebServiceURL)&lt;br /&gt;                service.Credentials = &lt;span class="kwrd"&gt;New&lt;/span&gt; System.Net.NetworkCredential(Username, Password)&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;Dim&lt;/span&gt; objMail &lt;span class="kwrd"&gt;As&lt;/span&gt; EmailMessage = &lt;span class="kwrd"&gt;New&lt;/span&gt; EmailMessage(service)&lt;br /&gt;                objMail.From = &lt;span class="kwrd"&gt;New&lt;/span&gt; EmailAddress(MailFrom)&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; MailTo &amp;lt;&amp;gt; &lt;span class="str"&gt;""&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                    objMail.ToRecipients.Add(MailTo)&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; Cc &amp;lt;&amp;gt; &lt;span class="str"&gt;""&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                    objMail.CcRecipients.Add(Cc)&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; Bcc &amp;lt;&amp;gt; &lt;span class="str"&gt;""&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                    objMail.BccRecipients.Add(Bcc)&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; ReplyTo &amp;lt;&amp;gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;.Empty &lt;span class="kwrd"&gt;Then&lt;/span&gt; objMail.ReplyTo.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; EmailAddress(ReplyTo))&lt;br /&gt;                &lt;span class="kwrd"&gt;Select&lt;/span&gt; &lt;span class="kwrd"&gt;Case&lt;/span&gt; Priority&lt;br /&gt;                    &lt;span class="kwrd"&gt;Case&lt;/span&gt; MailPriority.High : objMail.Importance = Importance.High&lt;br /&gt;                    &lt;span class="kwrd"&gt;Case&lt;/span&gt; MailPriority.Low : objMail.Importance = Importance.Low&lt;br /&gt;                    &lt;span class="kwrd"&gt;Case&lt;/span&gt; &lt;span class="kwrd"&gt;Else&lt;/span&gt; : objMail.Importance = Importance.Normal&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;/font&gt;&lt;font size="1"&gt;&lt;span class="kwrd"&gt;Select&lt;br&gt;&lt;/span&gt;&lt;br /&gt;&lt;/font&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;                objMail.Subject = HtmlUtils.StripWhiteSpace(Subject, &lt;span class="kwrd"&gt;True&lt;/span&gt;)&lt;br /&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;/pre&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;                objMail.Body = &lt;span class="kwrd"&gt;New&lt;/span&gt; MessageBody(&lt;span class="kwrd"&gt;CType&lt;/span&gt;(IIf(BodyFormat = MailFormat.Html, BodyType.HTML, BodyType.Text), BodyType), Body)&lt;/font&gt;&lt;br /&gt;&lt;/pre&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; Attachments.Count &amp;gt; 0 &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                    objMail.Save()&lt;br /&gt;&lt;br /&gt;                    &lt;span class="rem"&gt;' Add Attachments, converting from MailAttachments to Exchange Attachements&lt;/span&gt;&lt;br /&gt;                    &lt;span class="kwrd"&gt;For&lt;/span&gt; &lt;span class="kwrd"&gt;Each&lt;/span&gt; myAtt &lt;span class="kwrd"&gt;As&lt;/span&gt; Attachment &lt;span class="kwrd"&gt;In&lt;/span&gt; Attachments&lt;br /&gt;                        &lt;span class="kwrd"&gt;Dim&lt;/span&gt; mFilename &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = IO.Path.GetTempFileName()&lt;br /&gt;                        Using fStream &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; IO.FileStream(mFilename, IO.FileMode.OpenOrCreate)&lt;br /&gt;                            &lt;span class="kwrd"&gt;Dim&lt;/span&gt; bArray &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Byte&lt;/span&gt;()&lt;br /&gt;                            &lt;span class="kwrd"&gt;ReDim&lt;/span&gt; bArray(&lt;span class="kwrd"&gt;CInt&lt;/span&gt;(myAtt.ContentStream.Length))&lt;br /&gt;                            myAtt.ContentStream.Read(bArray, 0, &lt;span class="kwrd"&gt;CInt&lt;/span&gt;(myAtt.ContentStream.Length))&lt;br /&gt;                            fStream.Write(bArray, 0, bArray.Length)&lt;br /&gt;                            fStream.Close()&lt;br /&gt;                        &lt;span class="kwrd"&gt;End&lt;/span&gt; Using&lt;br /&gt;                        objMail.Attachments.AddFileAttachment(mFilename).Name = myAtt.Name&lt;br /&gt;                        &lt;span class="rem"&gt;' It's is necessary to call .Save() in order to upload the attachment to the server&lt;/span&gt;&lt;br /&gt;                        objMail.Save()&lt;br /&gt;                    &lt;span class="kwrd"&gt;Next&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;                &lt;span class="rem"&gt;' send the message&lt;/span&gt;&lt;br /&gt;                objMail.SendAndSaveCopy()&lt;br /&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Catch&lt;/span&gt; objException &lt;span class="kwrd"&gt;As&lt;/span&gt; Exception&lt;br /&gt;                &lt;span class="rem"&gt;' mail configuration problem&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; IsNothing(objException.InnerException) &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                    SendMailBPOS = &lt;span class="kwrd"&gt;String&lt;/span&gt;.Concat(objException.Message, ControlChars.CrLf, objException.InnerException.Message)&lt;br /&gt;                    LogException(objException.InnerException)&lt;br /&gt;                &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;br /&gt;                    SendMailBPOS = objException.Message&lt;br /&gt;                    LogException(objException)&lt;br /&gt;                &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Try&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;h3 align="justify"&gt;Añadir posibilidad de configuración &lt;/h3&gt;&lt;br /&gt;&lt;p align="justify"&gt;Ahora toca modificar el interfaz de usuario para agregar soporte de configuración a los superusuarios del portal. Para ello, realizamos los pasos siguientes.&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;1. Abrir el archivo ~\DesktopModules\Admin\HostSettings\hostsettings.ascx y buscamos en el marcado la tabla “tblSMTP”&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;2. Modificamos el marcado para agregar la posibilidad de indicar el tipo de servidor. También modificamos las etiquetas “tr” correspondientes a la autenticación y SSL para poder mostrarlas y ocultarlas desde el código de servidor.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;class&lt;/span&gt;&lt;span class="kwrd"&gt;="SubHead"&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;="width: 250px"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;dnn:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="plMailServerType"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Server type:"&lt;/span&gt; &lt;span class="attr"&gt;ControlName&lt;/span&gt;&lt;span class="kwrd"&gt;="cboMailServerType"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt; &lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt; &lt;span class="attr"&gt;align&lt;/span&gt;&lt;span class="kwrd"&gt;="left"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:DropDownList&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="cboMailServerType"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;AutoPostBack&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ListItem&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="SMTP"&lt;/span&gt; &lt;span class="attr"&gt;resourceKey&lt;/span&gt;&lt;span class="kwrd"&gt;="MailServerTypeSMTP"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Servidor SMTP&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ListItem&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ListItem&lt;/span&gt; &lt;span class="attr"&gt;Value&lt;/span&gt;&lt;span class="kwrd"&gt;="BPOS"&lt;/span&gt;  &lt;span class="attr"&gt;resourceKey&lt;/span&gt;&lt;span class="kwrd"&gt;="MailServerTypeBPOS"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Exchange Online&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ListItem&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:DropDownList&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;td&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;tr&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3. Agregamos las entradas correspondientes en los archivos .resx de recursos en la subcarpeta App_LocalResources&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TURIEOhA8TI/AAAAAAAAAMM/2YmoPduKlc4/s1600-h/Resources3.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Resources" border="0" alt="Resources" src="http://lh6.ggpht.com/_9wri4uIqw0c/TURIEk1zNBI/AAAAAAAAAMQ/gM0PDCeUgjg/Resources_thumb1.jpg?imgmax=800" width="446" height="103"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;4. Modificamos la rutina ShowHideSMTPCredentials() y agregamos código en el evento de selección de la lista para mostrar/ocultar parámetros según esté seleccionado el tipo de servidor.&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;        &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; ShowHideSMTPCredentials()&lt;br /&gt;            &lt;span class="kwrd"&gt;If&lt;/span&gt; optSMTPAuthentication.SelectedValue = &lt;span class="str"&gt;"1"&lt;/span&gt; &lt;span class="kwrd"&gt;OrElse&lt;/span&gt; cboMailServerType.SelectedValue = &lt;span class="str"&gt;"BPOS"&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;&lt;br /&gt;                trSMTPPassword.Visible = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;br /&gt;                trSMTPUserName.Visible = &lt;span class="kwrd"&gt;True&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;Else&lt;/span&gt;&lt;br /&gt;                trSMTPPassword.Visible = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;br /&gt;                trSMTPUserName.Visible = &lt;span class="kwrd"&gt;False&lt;/span&gt;&lt;br /&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;&lt;br /&gt;            rowSMTPAthentication.Visible = cboMailServerType.SelectedValue = &lt;span class="str"&gt;"SMTP"&lt;/span&gt;&lt;br /&gt;            rowSMTPEnableSSL.Visible = rowSMTPAthentication.Visible&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;        &lt;span class="rem"&gt;''' &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;''' Fires when the Mail server type dropdownlist changes&lt;/span&gt;&lt;br /&gt;        &lt;span class="rem"&gt;''' &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; cboMailServerType_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; System.EventArgs) &lt;span class="kwrd"&gt;Handles&lt;/span&gt; cboMailServerType.SelectedIndexChanged&lt;br /&gt;            &lt;span class="kwrd"&gt;Try&lt;/span&gt;&lt;br /&gt;                ShowHideSMTPCredentials()&lt;br /&gt;            &lt;span class="kwrd"&gt;Catch&lt;/span&gt; ex &lt;span class="kwrd"&gt;As&lt;/span&gt; Exception&lt;br /&gt;                ProcessModuleLoadException(&lt;span class="kwrd"&gt;Me&lt;/span&gt;, ex)&lt;br /&gt;            &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Try&lt;/span&gt;&lt;br /&gt;        &lt;span class="kwrd"&gt;End&lt;/span&gt; Sub&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;5. Modificamos la rutina BindData() para volcar la propiedad configurada en el dropdown&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt;&lt;span class="rem"&gt;'...&lt;/span&gt;&lt;br /&gt;cboMailServerType.SelectedValue = Entities.Host.Host.MailServerType.ToString()&lt;br /&gt;ShowHideSMTPCredentials()&lt;br /&gt;'...&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;6. Modificamos el evento cmdUpdate_Click para guardar el dato:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;font size="1"&gt; HostController.Instance.Update(&lt;span class="str"&gt;"MailServerType"&lt;/span&gt;, [&lt;span class="kwrd"&gt;Enum&lt;/span&gt;].Parse(&lt;span class="kwrd"&gt;GetType&lt;/span&gt;(MailServerType), cboMailServerType.SelectedValue), &lt;span class="kwrd"&gt;False&lt;/span&gt;)&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;7. Con esto podemos configurar tanto el servidor SMTP como el servidor BPOS según nos convenga:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TURIFQDm_qI/AAAAAAAAAMU/jFm6RBIwVRk/s1600-h/SMTPConfig5.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SMTPConfig" border="0" alt="SMTPConfig" src="http://lh4.ggpht.com/_9wri4uIqw0c/TURIFwOUcKI/AAAAAAAAAMY/oK5fClEu5zc/SMTPConfig_thumb3.jpg?imgmax=800" width="404" height="129"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TURIGfn4OWI/AAAAAAAAAMc/ErxGuM5Fm7U/s1600-h/BPOSConfig3.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="BPOSConfig" border="0" alt="BPOSConfig" src="http://lh3.ggpht.com/_9wri4uIqw0c/TURIGxtDEAI/AAAAAAAAAMg/KlUqRLfcfc8/BPOSConfig_thumb1.jpg?imgmax=800" width="404" height="94"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="justify"&gt;Al pulsar sobre el enlace “Probar” que trae incorporado DNN, realiza un envío de mensaje de prueba, que como podemos observar procesa correctamente nuestro Exchange Online. &lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TURIHRA0YEI/AAAAAAAAAMk/bsVSfwBq2d4/s1600-h/EnvioCorrecto%5B7%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="EnvioCorrecto" border="0" alt="EnvioCorrecto" src="http://lh4.ggpht.com/_9wri4uIqw0c/TURIIORLg4I/AAAAAAAAAMo/fs-JeBFMshA/EnvioCorrecto_thumb%5B3%5D.jpg?imgmax=800" width="454" height="154"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Conclusión&lt;/h3&gt;&lt;br /&gt;&lt;p align="justify"&gt;En este artículo hemos visto la posibilidad de realizar envíos de correos desde DNN a través de Exchange Online. Para ello hemos utilizado la EWS Managed API 1.1, que facilita el manejo de los servicios web expuestos por Exchange. &lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;Si en este ejemplo lo que hemos visto es cómo realizar los envíos a través de estos servicios, los servicios que ofrece la API son numerosos pudiéndose realizar casi cualquier cosa. &lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;¿Cuándo comenzaremos a ver módulos desarrollados para explotar las características de Exchange desde nuestro portal DNN? Voy a ver si veo alguno por SnowCovered &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="http://lh5.ggpht.com/_9wri4uIqw0c/TURIIW_fsDI/AAAAAAAAAMs/0296-epTSZk/wlEmoticon-smile%5B2%5D.png?imgmax=800"&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;Espero que os haya servidor de ayuda.&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;Un saludo y happy coding!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-4601607892931497876?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/4601607892931497876/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/01/integrando-exchange-online-services-con.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4601607892931497876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/4601607892931497876'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/01/integrando-exchange-online-services-con.html' title='Integrando Exchange Online Services con DotNetNuke'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_9wri4uIqw0c/TURIA8mOYxI/AAAAAAAAAL4/eqfuycXIs4k/s72-c/WSDL_thumb43.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-1965503856278089088</id><published>2011-01-22T19:40:00.001Z</published><updated>2011-01-22T19:40:00.496Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebMatrix'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Razor'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Examinando Razor-Helpers</title><content type='html'>&lt;p align="justify"&gt;Continuando con la serie de artículos sobre &lt;a href="http://davidjrh.blogspot.com/2011/01/como-instalar-razorhost-en-dotnetnuke.html"&gt;WebMatrix, Razor y su integración con DotNetNuke&lt;/a&gt;, hoy vamos a echar un vistazo a los Helpers que están a nuestra disposición para agregar funcionalidad de terceros a nuestros portales de una manera sencilla y rápida. &lt;/p&gt; &lt;p align="justify"&gt;Si bien en este artículo me he centrado en el uso desde DotNetNuke, la información es totalmente válida para la integración con cualquier otro portal o tecnología como ASP.NET MVC3 que implementen las librerías de extensión que dan soporte a Razor.&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TTsybPp_0uI/AAAAAAAAALE/zLq399ju86I/s1600-h/Libraries%5B2%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Libraries" border="0" alt="Libraries" src="http://lh5.ggpht.com/_9wri4uIqw0c/TTsyb5IulWI/AAAAAAAAALI/C5gsPkbKliU/Libraries_thumb.jpg?imgmax=800" width="244" height="228"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;NOTA IMPORTANTE&lt;/strong&gt;: hay una librería (System.Web.WebPages.Deployment) que no está incluida en la instalación actual de DotNetNuke y que viene incluida en la instalación de MVC 3. Hay que tenerla en el equipo para que funcione correctamente. A través de &lt;a href="http://www.dotnetnuke.com/Resources/Forums/tabid/795/forumid/200/threadid/403795/scope/posts/Default.aspx" target="_blank"&gt;este enlace&lt;/a&gt; tenéis más información sobre el error.&lt;/p&gt; &lt;p align="justify"&gt;Actualmente, &lt;a href="http://www.microsoft.com/web/webmatrix/partners.aspx" target="_blank"&gt;la lista de Helpers&lt;/a&gt; no es que sea muy grande, pero hay buenos y útiles ejemplos. Esperemos que en un futuro este ecosistema siga extendiéndose para facilitar las integraciones con terceros.&lt;/p&gt; &lt;h3 align="justify"&gt;Twitter Helper&lt;/h3&gt; &lt;p align="justify"&gt;Para comenzar hoy con un ejemplo muy sencillo, echémosle un vistazo al Helper de Twitter con el objetivo de incluir un módulo en la barra lateral de nuestro sitio.&lt;/p&gt; &lt;p align="justify"&gt;Para ello, agregamos un módulo RazorHost a una página cualquiera –para este ejemplo he creado una página en blanco en el sitio:&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TTsycoIldcI/AAAAAAAAALM/a9IJX_mqDa4/s1600-h/Twitter%5B80%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Twitter" border="0" alt="Twitter" src="http://lh5.ggpht.com/_9wri4uIqw0c/TTsyd6_SbfI/AAAAAAAAALQ/DIujlARiDYE/Twitter_thumb%5B78%5D.jpg?imgmax=800" width="400" height="137"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;Al pulsar el botón de añadir, hemos agregado un módulo en blanco RazorHost con el título Twitter. Ahora hay que entrar a configurarlo, ya que hasta que no se le indique el script Razor que tiene ejecutar no hará nada. &lt;/p&gt; &lt;p align="justify"&gt;Para hacerlo, hay que tener en cuenta que &lt;strong&gt;los administradores del portal sólo pueden seleccionar scripts predefinidos por los superusuarios&lt;/strong&gt;, por lo que si se desea agregar y/o modificar un script es necesario iniciar sesión como super-usuario. &lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://lh5.ggpht.com/_9wri4uIqw0c/TTsyeWRM2PI/AAAAAAAAALU/WWXwGqevAAo/s1600-h/ModAdmin%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ModAdmin" border="0" alt="ModAdmin" src="http://lh3.ggpht.com/_9wri4uIqw0c/TTsyfDFjZxI/AAAAAAAAALY/wztRF_S7Hvg/ModAdmin_thumb%5B1%5D.jpg?imgmax=800" width="209" height="108"&gt;&lt;/a&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TTsyf_7RZeI/AAAAAAAAALc/OXTnYtw1QdY/s1600-h/ModSuperUser%5B3%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ModSuperUser" border="0" alt="ModSuperUser" src="http://lh3.ggpht.com/_9wri4uIqw0c/TTsyggC9SBI/AAAAAAAAALg/mLYMxrhuB_A/ModSuperUser_thumb%5B1%5D.jpg?imgmax=800" width="201" height="132"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh6.ggpht.com/_9wri4uIqw0c/TTsyhQB1Q_I/AAAAAAAAALk/9FoNSbiWo9Q/s1600-h/TwitterScript%5B5%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="TwitterScript" border="0" alt="TwitterScript" src="http://lh5.ggpht.com/_9wri4uIqw0c/TTsyiN11X5I/AAAAAAAAALo/lRtl0R1_l0A/TwitterScript_thumb%5B3%5D.jpg?imgmax=800" width="440" height="157"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://lh4.ggpht.com/_9wri4uIqw0c/TTsyi9ohd0I/AAAAAAAAALs/ULznBKBjFG4/s1600-h/TwitterResult%5B41%5D.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 0px 11px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="TwitterResult" border="0" alt="TwitterResult" align="right" src="http://lh4.ggpht.com/_9wri4uIqw0c/TTsyjnPK66I/AAAAAAAAALw/eKthxeGxTe8/TwitterResult_thumb%5B39%5D.jpg?imgmax=800" width="131" height="318"&gt;&lt;/a&gt;Entrando como superusuario y pulsando sobre el botón “Edit Script”, nos sale el interfaz de edición de Razor Script. Tenemos la suerte que el Helper de Twitter viene como uno de los ejemplos en la instalación de DotNetNuke, con lo que si lo seleccionamos y modificamos unos cuantos parámetros –&lt;a href="http://twitterhelper.codeplex.com/" target="_blank"&gt;ver documentación completa del Helper de Twitter&lt;/a&gt;- ya tenemos la integración con Twitter resuelta al pulsar el botón “Guardar Script y Volver”.&lt;/p&gt; &lt;h3&gt;&lt;/h3&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Conclusión&lt;/h3&gt; &lt;p&gt;Como ya hemos visto, integrar con RazorHost un Helper de terceros es sumamente sencillo, siendo el widget de Twitter un buen ejemplo. En los siguientes artículos iremos viendo la integración con otros Helpers más interesantes, como pueden ser la integración con Facebook, PayPal o &lt;strong&gt;¡Windows Azure!&lt;/strong&gt; Sí también hay &lt;a href="http://azurestoragehelper.codeplex.com/" target="_blank"&gt;helper de Windows Azure para manejar tablas y blobs&lt;/a&gt;. &lt;/p&gt; &lt;p align="justify"&gt;Por lo que he visto, WebMatrix está pensado para desarrollos que no sean complejos ni que vayan a requerir un alto grado de mantenimiento, con un enfoque hacia el desarrollador iniciado que necesite una herramienta sencilla pero con un alto grado funcional. &lt;/p&gt; &lt;p align="justify"&gt;Si bien trabajar con Razor puede que haga recordar que volvemos a trabajar con ASP tradicional (no ASP.NET), creo que encaja muy bien en aquellos desarrollos cortos en presupuesto y tiempo. Tampoco hay que olvidar la posibilidad de desarrollar nuestros propios helpers Razor para que puedan ser integrados, con lo que también podría facilitar la integración de distintos roles en los equipos de desarrollo.&lt;/p&gt; &lt;p align="justify"&gt;¿Vosotros qué opináis?&lt;/p&gt; &lt;p align="justify"&gt;Un saludo y ¡Happy Coding!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-1965503856278089088?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/1965503856278089088/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/01/examinando-razor-helpers.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1965503856278089088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/1965503856278089088'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/01/examinando-razor-helpers.html' title='Examinando Razor-Helpers'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_9wri4uIqw0c/TTsyb5IulWI/AAAAAAAAALI/C5gsPkbKliU/s72-c/Libraries_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8193587646010376503</id><published>2011-01-22T16:12:00.001Z</published><updated>2011-01-22T16:35:17.619Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geeks'/><title type='text'>Helloworld Geeks.ms</title><content type='html'>&lt;p align="justify"&gt;&lt;a href="http://lh3.ggpht.com/_9wri4uIqw0c/TTsB526IlrI/AAAAAAAAAK8/6sp0uthuZbY/s1600-h/Geeks%5B6%5D.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Geeks" border="0" alt="Geeks" align="right" src="http://lh4.ggpht.com/_9wri4uIqw0c/TTsB6TpbjCI/AAAAAAAAALA/DCNII6lbOfc/Geeks_thumb%5B4%5D.jpg?imgmax=800" width="240" height="52"&gt;&lt;/a&gt;Despúes de unos días algo ajetreados, estoy de vuelta ante el Live Writer dispuesto a hacer un resumen de las cosas que he ido viendo durante la semana y que por una serie de acontecimientos no me ha dado tiempo de comentar.&lt;/p&gt; &lt;p align="justify"&gt;Antes de entrar en materia, quiero agradecer a &lt;a href="http://geeks.ms/blogs/rcorral/" target="_blank"&gt;Rodrigo Corral&lt;/a&gt; el permitir unirme a &lt;a href="http://geeks.ms/" target="_blank"&gt;Geeks.ms&lt;/a&gt; como miembro activo. Sé que tiene una agenda apretadísima y aún así ha sacado tiempo para hacer que pueda participar en esta comunidad.&lt;/p&gt; &lt;p align="justify"&gt;También quería agradecer a &lt;a href="http://geeks.ms/blogs/jfortes/" target="_blank"&gt;José Fortes&lt;/a&gt;, &lt;a href="http://geeks.ms/blogs/adiazmartin" target="_blank"&gt;Alberto Díaz&lt;/a&gt; y a &lt;a href="http://geeks.ms/blogs/jyeray/" target="_blank"&gt;Josue Yeray&lt;/a&gt; el apoyo desinteresado que me han brindado y hacerme ver las cosas desde otro punto de vista. &lt;/p&gt; &lt;p align="justify"&gt;A modo de presentación, para los que no me conozcan desde Geeks, he sido desarrollador, analista y responsable de equipo de desarrollo durante 14 años, especializado en sistemas de reservas para compañías marítimas y aéreas. Los últimos años he estado dedicando todo mi interés hacia el desarrollo en la nube y Windows Azure, y por una carambola el año pasado acabé metiéndome de lleno también con &lt;a href="http://www.dotnetnuke.com" target="_blank"&gt;DotNetNuke&lt;/a&gt; al &lt;a href="http://dotnenukecommunitytest.cloudapp.net/" target="_blank"&gt;conseguir migrar el portal a Windows Azure&lt;/a&gt;. Así que últimamente mis posts se centran en experiencias sobre Windows Azure y DNN, aunque pueden esperar que escriba sobre cualquier cosa sobre desarrollo .NET, SOA o TFS. En &lt;a href="http://davidjrh.blogspot.com/2010/10/y-se-hizo-la-luz.html" target="_blank"&gt;este enlace&lt;/a&gt; tenéis la entrada con la que abrí mis paseos por la nube en la que podéis conocerme mejor.&lt;/p&gt; &lt;p align="justify"&gt;A la gente que ha venido siguiéndome en &lt;a href="http://davidjrh.blogspot.com/" target="_blank"&gt;mi blog habitual&lt;/a&gt;, comentarles que publicaré de igual modo en ambos blogs, con lo que podrán encontrar el mismo contenido que publicaré en Geeks. Si quieres saber más sobre qué es Geeks &lt;a href="http://geeks.ms/blogs/rcorral/archive/2007/12/24/geeks-ms-vuestro-sitio.aspx" target="_blank"&gt;puedes echarle un vistazo a esta entrada de Rodrigo Corral&lt;/a&gt; en la que se explica con mayor detalle su filosofía.&lt;/p&gt; &lt;p align="justify"&gt;Espero que mis artículos sigan siendo de interés y enriquecerme con vuestros comentarios. &lt;/p&gt; &lt;p align="justify"&gt;Un saludo,&lt;/p&gt; &lt;p align="justify"&gt;David Rodríguez&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8193587646010376503?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8193587646010376503/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/01/helloworld-geeksms.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8193587646010376503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8193587646010376503'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/01/helloworld-geeksms.html' title='Helloworld Geeks.ms'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_9wri4uIqw0c/TTsB6TpbjCI/AAAAAAAAALA/DCNII6lbOfc/s72-c/Geeks_thumb%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-8508971197178986246</id><published>2011-01-16T18:03:00.000Z</published><updated>2011-01-16T18:03:13.527Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebMatrix'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Razor'/><title type='text'>Cómo instalar RazorHost en DotNetNuke después de un upgrade</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TTMxq5od2eI/AAAAAAAAAKs/BpRKW3Twb5U/s1600/Error.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TTMxq5od2eI/AAAAAAAAAKs/BpRKW3Twb5U/s200/Error.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Siguiendo &lt;a href="http://davidjrh.blogspot.com/2011/01/introduccion-webmatrix-dotnetnuke.html"&gt;el hilo de ayer sobre WebMatrix y DotNetNuke&lt;/a&gt;, los siguientes posts van a ir dedicados a ir viendo cómo integrar distintas utilidades como Twitter o Facebook en nuestro portal a través de los &lt;a href="http://www.microsoft.com/web/webmatrix/partners.aspx"&gt;Helpers&lt;/a&gt;, que vienen a ser una especie de scriptlets de uso muy sencillo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Abrimos este primer post solucionando un posible problema de instalación del módulo RazorHost que es el encargado de ejecutar los scripts Razor. Hay que tener en cuenta que si partes de la instalación 5.6.1 (el próximo miércoles 19 de enero sale la versión definitiva) posiblemente no tendrás este problema ya que vendrá preinstalado. Yo me he encontrado con el problema de instalación en un portal del que he hecho un upgrade de la versión 5.6.0 a la 5.6.1 RC.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;El problema&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Una vez que hemos hecho el upgrade de la versión 5.6.0 a la 5.6.1, nuestra intención es añadir el módulo RazorHost para añadir scripts Razor en nuestro portal, pero éste no aparece en la lista de módulos disponibles. Esto es debido a que la actualización no instala el módulo de forma predeterminada y hay que realizarlo a través del interfaz de instalación de extensiones en Host &amp;gt; Extensiones.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Sin embargo, al añadir el módulo nos da un error de instalación del que no hay ninguna descripción. Tampoco se observa nada en el visor de eventos de DNN con más información.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TTMuM8LzXOI/AAAAAAAAAKY/P1p0q0S62-E/s1600/RazorInstallError.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TTMuM8LzXOI/AAAAAAAAAKY/P1p0q0S62-E/s400/RazorInstallError.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;La solución&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para dar con la solución, he decidido realizar una instalación manual del módulo RazorHost a través del asistente de instalación que se encuentra en Host &amp;gt; Extensiones. Para ello, hay que realizar una copia del archivo /Install/Module/RazorHost_01.00.00_Install.resources con el nombre&amp;nbsp;/Install/Module/RazorHost_01.00.00_Install.zip (el asistente de instalación de extensiones sólo reconoce esta extensión). Al seguir los pasos del asistente nos da la primera pista del error:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TTMvEoF5ZrI/AAAAAAAAAKc/GYiNJ2RUn0E/s1600/InstallTUple.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TTMvEoF5ZrI/AAAAAAAAAKc/GYiNJ2RUn0E/s400/InstallTUple.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Al parecer la instalación hace uso de la clase &lt;b&gt;System.Tuple&lt;/b&gt;, que no encuentra instalada en el portal. Esta clase pertenece a .NET Framework 4.0.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TTMvlSJRCXI/AAAAAAAAAKg/wZaFaTQNe38/s1600/TupleClass.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TTMvlSJRCXI/AAAAAAAAAKg/wZaFaTQNe38/s400/TupleClass.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Si en nuestro PC tenemos instalado .NET Framework 4.0, entonces ¿porqué da este error de instalación? La &amp;nbsp;incógnita se resuelve al revisar la configuración del pool de aplicaciones sobre el que se está ejecutando la aplicación. Por defecto, la instalación de WebMatrix de DNN ha configurado la aplicación en un pool con .NET 2 (Integrated).&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TTMwSApgwVI/AAAAAAAAAKk/dl9TOc6sz-Q/s1600/Pool2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TTMwSApgwVI/AAAAAAAAAKk/dl9TOc6sz-Q/s400/Pool2.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;b&gt;Al modificar la configuración del pool de aplicaciones y seleccionar .NET 4, el módulo RazorHost se instala sin problemas&lt;/b&gt;. Habrá que tenerlo en cuenta para futuras instalaciones a través de WebMatrix.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Una vez que hemos instalado el módulo, ya podemos seleccionarlo de la lista de módulos a agregar a una página, con lo que ya podemos ponernos a trastear agregando Helpers a nuestro portal.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9wri4uIqw0c/TTMxOL6gd5I/AAAAAAAAAKo/RXsxTQn6mVM/s1600/RazorHostOK.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://4.bp.blogspot.com/_9wri4uIqw0c/TTMxOL6gd5I/AAAAAAAAAKo/RXsxTQn6mVM/s400/RazorHostOK.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Espero que sirva de ayuda.&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;¡Happy coding!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-8508971197178986246?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/8508971197178986246/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/01/como-instalar-razorhost-en-dotnetnuke.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8508971197178986246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/8508971197178986246'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/01/como-instalar-razorhost-en-dotnetnuke.html' title='Cómo instalar RazorHost en DotNetNuke después de un upgrade'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9wri4uIqw0c/TTMxq5od2eI/AAAAAAAAAKs/BpRKW3Twb5U/s72-c/Error.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2108571541428662807</id><published>2011-01-15T19:44:00.000Z</published><updated>2011-01-15T19:44:10.414Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebMatrix'/><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>Introducción a WebMatrix + DotNetNuke</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9wri4uIqw0c/TTH3jS0X47I/AAAAAAAAAKU/wY1Ebo8S5nM/s1600/webx-stack-gfx_3.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_9wri4uIqw0c/TTH3jS0X47I/AAAAAAAAAKU/wY1Ebo8S5nM/s200/webx-stack-gfx_3.png" width="190" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;El pasado 13 de enero tuvo lugar el evento &lt;a href="http://channel9.msdn.com/Shows/Web+Camps+TV/CodeMash-2011-WebMatrix-Launch-Keynote"&gt;CodeMash 2011&lt;/a&gt; en el que se lanzó &lt;a href="http://www.microsoft.com/web/enter/"&gt;WebMatrix&lt;/a&gt;. Sinceramente no había trasteado hasta ahora con el producto, había oído hablar de él hace tiempo, de la sintaxis Razor que se utiliza, etc. pero muy por encima. Pero unos twits de &lt;a href="http://twitter.com/esmsdn"&gt;@esmsdn&lt;/a&gt;&amp;nbsp;despertaron mi curiosidad al decir que estaban haciendo una demo en vivo desplegando un portal DotNetNuke con la herramienta. ¿Desplegando DotNetNuke con WebMatrix? ¿Cómo? Y luego otro hablando de despliegues de Umbraco, Drupal, ...¿perdón? Nada, tarea para el fin de semana.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Y una vez que he estado trasteando hoy y visto &lt;a href="http://www.desarrolloweb.com/manuales/manual-microsoft-webmatrix.html"&gt;alguna guía de iniciación a WebMatrix&lt;/a&gt;&amp;nbsp;para aclarar conceptos, me he quedado realmente boquiabierto.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;¿Qué es WebMatrix? Es una herramienta de Microsoft con la que se pueden crear proyectos ASP.NET de forma &lt;u style="font-weight: bold;"&gt;sencilla&lt;/u&gt; -recalco lo de forma sencilla porque con ese eslógan abrieron la sesión de CodeMash sobre WebMatrix.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Pero no sólo ASP.NET, y aquí es donde empieza el baile de novedades y siglas de los que he podido percatarme:&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;se trabaja de igual modo con PHP,&amp;nbsp;mySQL,&amp;nbsp;SQL Server, de forma integrada en el entorno de trabajo. También integración con Visual Studio y control de código fuente para soluciones más avanzadas&lt;/li&gt;&lt;li style="text-align: justify;"&gt;se están generando infinidad de addons y scriptlets -denominados &lt;a href="http://www.microsoft.com/web/webmatrix/partners.aspx"&gt;Helpers&lt;/a&gt;- para integrar en nuestras webs módulos de conexión con terceros (p.e. añadir Twitter o Facebook, realizar una compra PayPal, o &lt;u style="font-weight: bold;"&gt;interactuar con almacenamiento en Azure&lt;/u&gt; con 1 línea de código)&lt;/li&gt;&lt;li style="text-align: justify;"&gt;una infinidad de plantillas web y motores CMS open source como punto de partida (ahora mismo cuento 39) que están integradas con la herramienta: DotNetNuke, WordPress, Umbraco CMS, ASP.NET MVC 3, nopCommerce, mojoPortal, Drupal, Moodle, Joomla, SugarCRM, MonoX, y un largo etc.&lt;/li&gt;&lt;li style="text-align: justify;"&gt;publicación y actualización directa de los websites&lt;/li&gt;&lt;li style="text-align: justify;"&gt;generación de informes: rendimiento, SEO, etc. para corregir errores comunes&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Y todo esto...¡GRATIS! ¿Cómo? Sí...&lt;b&gt;¡GRATIS!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Mi primer portal DNN con WebMatrix&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Lo primero que quise comprobar después de ver a la gente de DNN en la presentación, fue seguir unos sencillos pasos para crear un sitio web con DotNetNuke a través de la herramienta. En menos de 15 minutos, ya estaba funcionando y otros 5 después publicado en Internet. ¡Mola!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para empezar, hay que instalar WebMatrix a través del Web Platform Installer. Para ello se puede seguir &lt;a href="http://www.microsoft.com/web/gallery/install.aspx?appid=webmatrix"&gt;este enlace&lt;/a&gt;. Una vez instalado, podemos seguir descargando e instalando plantillas para tenerlas ya preconfiguradas en WebMatrix y no tener que descargarlos en el momento del primer uso de las plantillas. En esta prueba descargué la plantilla de DotNetNuke para ver qué tal iba:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TTHlFYKeGMI/AAAAAAAAAJY/ZrFfb8hOa1Q/s1600/DNNDown.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="282" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TTHlFYKeGMI/AAAAAAAAAJY/ZrFfb8hOa1Q/s400/DNNDown.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9wri4uIqw0c/TTHmVCX-FiI/AAAAAAAAAJc/zm77aFg72YY/s1600/DNNDown2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="219" src="http://3.bp.blogspot.com/_9wri4uIqw0c/TTHmVCX-FiI/AAAAAAAAAJc/zm77aFg72YY/s320/DNNDown2.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TTHmW_6UDVI/AAAAAAAAAJg/Y3-sUrdUrOE/s1600/DNNDown3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="81" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TTHmW_6UDVI/AAAAAAAAAJg/Y3-sUrdUrOE/s320/DNNDown3.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;NOTA: a día de hoy, la versión de DNN que se descarga es la 5.6.0. La que presentaron en CodeMash es la &lt;a href="http://dotnetnuke.codeplex.com/releases/view/59108"&gt;5.6.1 RC del 13 de enero&lt;/a&gt; que tiene soporte Razor y que ahora mismo es Beta, por lo que tuve que descargarme manualmente &amp;nbsp;desde CodePlex esa versión para ver lo de los Helpers. En la sesión comentaron que el día 19 de enero la versión será definitiva, por lo que no habrá que hacer ningún paso adicional a partir de esa fecha.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Una vez instalado, se abre una simple interfaz para seleccionar lo que queremos hacer: construir un sitio web a partir de la galería de plantillas -también se puede abrir un sitio DNN pre-existente con el botón derecho del ratón:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHoKHMfuFI/AAAAAAAAAJk/znrLSfNHtg4/s1600/WebMatrixHome.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHoKHMfuFI/AAAAAAAAAJk/znrLSfNHtg4/s320/WebMatrixHome.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A continuación nos sale la galería...y se me ponen los pelos de punta :). Seleccionamos DNN, le ponemos el nombre al sitio y le damos a continuar:&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHog0cfcgI/AAAAAAAAAJo/6sqdv_DLE-U/s1600/Gallery.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="277" src="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHog0cfcgI/AAAAAAAAAJo/6sqdv_DLE-U/s400/Gallery.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;El paso siguiente es la selección del tipo de base de datos -DNN sólo soporta SQL Server. Hay una peculiaridad a tener en cuenta. El asistente busca una instancia local de SQL Express, dándote la opción de instalarla si no la encuentra, aunque también te da la opción de seleccionar un servidor de base de datos remoto. &lt;b&gt;En el caso de que tengas una edición superior instalada en local &lt;/b&gt;(SQL Standard, por ejemplo) el asistente no la detectará, por lo que debes seleccionar la opción "remoto" y apuntar a tu PC.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHqDDKxrsI/AAAAAAAAAJs/5UKIkcVqvRs/s1600/SQLInstall.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHqDDKxrsI/AAAAAAAAAJs/5UKIkcVqvRs/s400/SQLInstall.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;Comienza el proceso de instalación que completa con éxito:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TTHqcupauMI/AAAAAAAAAJw/kX-LUVlBasU/s1600/InstallFinish.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="278" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TTHqcupauMI/AAAAAAAAAJw/kX-LUVlBasU/s400/InstallFinish.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Inmediatamente después se abre el portal en WebMatrix listo para trastear con él. Simplemente pulsando sobre el enlace que nos propone se abre el navegador para realizar la configuración de primer uso de DNN para instalar los módulos, etc.-no explico eso aquí ya que no difiere en nada de la configuración de cualquier portal DNN.&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9wri4uIqw0c/TTHrUHxeByI/AAAAAAAAAJ0/mfaWLGlzHf8/s1600/WebMatrixTenerifeDev.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://3.bp.blogspot.com/_9wri4uIqw0c/TTHrUHxeByI/AAAAAAAAAJ0/mfaWLGlzHf8/s400/WebMatrixTenerifeDev.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;A través de las pestañas de la barra inferior izquierda, podemos acceder a distintas opciones como acceder a los ficheros del portal -véase integración con Visual Studio-, manipular la base de datos o obtener informes de rendimiento y SEO del portal.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHsjI92bLI/AAAAAAAAAJ4/GNTBmOTNvRY/s1600/Files.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="246" src="http://4.bp.blogspot.com/_9wri4uIqw0c/TTHsjI92bLI/AAAAAAAAAJ4/GNTBmOTNvRY/s400/Files.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHska2XPGI/AAAAAAAAAJ8/AQZRYoAOXWw/s1600/Databases.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHska2XPGI/AAAAAAAAAJ8/AQZRYoAOXWw/s400/Databases.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHslivfX3I/AAAAAAAAAKA/I36mAZ8R3Gs/s1600/Reports.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHslivfX3I/AAAAAAAAAKA/I36mAZ8R3Gs/s400/Reports.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Volviendo a la pestaña principal, pulsamos sobre el botón de publicación. Esta publicación realiza un proceso de búsqueda de cambios desde la última publicación, con lo que tenemos la opción de subir sólo los ficheros que han sido modificados desde ésta. El proceso también realiza una prueba inicial de compatibilidad de publicación para comprobar que se puede publicar sin problemas.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Para publicarlo lo podemos hacer a través de FTP o un Web Deploy, y la herramienta también nos ayuda a buscar un proveedor de hosting en caso de no disponer de alguno. En mi caso, he utilizado publicación por FTP en un servidor en GoGrid y la subida ha transcurrido sin problemas.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9wri4uIqw0c/TTHu9sUpRQI/AAAAAAAAAKE/HAGdZP1Luo4/s1600/PublishWebMatrix.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="http://3.bp.blogspot.com/_9wri4uIqw0c/TTHu9sUpRQI/AAAAAAAAAKE/HAGdZP1Luo4/s320/PublishWebMatrix.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHvUP9VTgI/AAAAAAAAAKM/jp1Oxuw8TYs/s1600/Compatibility.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHvUP9VTgI/AAAAAAAAAKM/jp1Oxuw8TYs/s1600/Compatibility.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Una vez que pasamos por el taller de chapa y pintura, ya tenemos nuestro portal funcionando en la red. Nótese que en la imagen he remarcado el nuevo módulo que da soporte Razor al portal y a través del cual podremos utilizar todos los Helpers de terceros, como Facebook, Twitter, PayPal o Azure (ver enlaces al final del post). Esa parte la voy a dejar para un segundo post, ya que si no éste se va a hacer eterno. El vídeo de CodeMash sobre el módulo de eventos me dio una idea para el registro de eventos de TenerifeDev :)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHwfWb_mEI/AAAAAAAAAKQ/T7BZ-e_6guI/s1600/Final+Install.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="275" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TTHwfWb_mEI/AAAAAAAAAKQ/T7BZ-e_6guI/s400/Final+Install.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Conclusión&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;La frase de Leonardo da Vinci con la que abrieron las sesiones lo resume todo: &lt;b&gt;&lt;i&gt;"La simplicidad es la máxima sofisticación"&lt;/i&gt;&lt;/b&gt;. Tener a nuestra disposición una herramienta como esta, de acabado excepcional y con integración con las últimas tecnologías en lo que se refiere a CMS, redes sociales, Azure, PayPal, etc. es casi impensable, pero...¿gratis? Y vuelvo a recalcar...¿GRATIS?&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Para todo lo demás... :)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;Os dejo dos enlaces por si queréis seguir ampliando conocimientos. Mañana más.&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/Shows/Web+Camps+TV/CodeMash-2011-WebMatrix-Launch-Keynote"&gt;Grabaciones en vivo del evento CodeMash 2011 con el lanzamiento de WebMatrix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.microsoft.com/web/webmatrix/partners.aspx"&gt;Helpers desarrollados por Partners de Microsoft&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2108571541428662807?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2108571541428662807/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/01/introduccion-webmatrix-dotnetnuke.html#comment-form' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2108571541428662807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2108571541428662807'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/01/introduccion-webmatrix-dotnetnuke.html' title='Introducción a WebMatrix + DotNetNuke'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_9wri4uIqw0c/TTH3jS0X47I/AAAAAAAAAKU/wY1Ebo8S5nM/s72-c/webx-stack-gfx_3.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-2093803606204168975</id><published>2011-01-13T20:30:00.004Z</published><updated>2011-01-13T22:06:15.325Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MadeinLocal.com'/><category scheme='http://www.blogger.com/atom/ns#' term='TenerifeDev'/><title type='text'>Nuevo evento TenerifeDev: MadeinLocal.com</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_9wri4uIqw0c/TS9gOQxujCI/AAAAAAAAAJU/OuohwljqmEs/s1600/logoMadeinLocal.JPG" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" n4="true" src="http://1.bp.blogspot.com/_9wri4uIqw0c/TS9gOQxujCI/AAAAAAAAAJU/OuohwljqmEs/s1600/logoMadeinLocal.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Después de la buena aceptación que tuvo &lt;a href="http://davidjrh.blogspot.com/2010/12/nuevo-grupo-de-usuarios-net-tenerifedev.html"&gt;el primer evento TenerifeDev&lt;/a&gt; el pasado 22 de diciembre seguimos buscando temas para dar a conocer ideas interesantes y apuestas por el desarrollo de software en nuestro territorio.&lt;/div&gt;&lt;div align="justify"&gt;﻿&lt;/div&gt;&lt;div align="justify"&gt;Una de estas interesantes y novedosas ideas llevada a cabo con éxito es &lt;a href="http://www.madeinlocal.com/"&gt;MadeinLocal.com&lt;/a&gt;, una red social que conecta al usuario con sus amigos y con lo mejor de la ciudad al mismo tiempo. Esta red social desarrollada por emprendedores canarios ha ganado numerosos premios internacionales:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://www.24heures.ch/trouver-meilleur-bar-facebook-2010-01-22"&gt;Premio de Emprendeduría de la Escuela Hotelara de Lausanne&lt;/a&gt; (Suiza), una de las universidades de turismo con mayor prestigio y reconocimiento mundial Lausanne 2010&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://www.imd.org/news/IMD-2010-Startup-Competition-Winners.cfm"&gt;Premio Start up Competion&lt;/a&gt; otorgado por IMD Business School, escuela de negocio suiza con el MBA más importante de Europa&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;1er Premio &lt;a href="http://www.tfinnova.es/"&gt;Tenerife Emprende I+D+i&lt;/a&gt; a Empresas de Base Tecnológica Tenerife 2009&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://vpiv.epfl.ch/page-23003-en.html"&gt;Premio Innogrant 2008&lt;/a&gt;, EPFL (Escuela Politécnica Federal de Lausana)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Premio &lt;a href="http://venturekick.ch/"&gt;Venture Kick&lt;/a&gt; 2009&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;Pues en TenerifeDev queremos dar a conocer de primera mano cómo han conseguido este éxito&amp;nbsp;a través de dos charlas ofrecidas directamente por los responsables del mismo. Hemos dividido el evento en dos partes: la primera para&amp;nbsp;introducir MadeinLocal.com y los pasos que se han seguido desde el punto de vista de emprendeduría para hacer posible la idea; la segunda para ver con más detalle los aspectos tecnológicos y las tendencias a nivel internacional. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;El calendario de las charlas es el siguiente:&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;MadeinLocal.com, la red social canaria en la web, en tu iPhone y en Android&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Fecha y hora&lt;/strong&gt;: lunes 7 de febrero de 17:30h a 19:30h (GMT)&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Lugar&lt;/strong&gt;: Salón de grados de la Escuela Técnica Superior de Ingeniería Informática (ETSII)&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Descripción&lt;/strong&gt;: MadeinLocal.com es una red social que conecta al usuario con sus amigos y con lo mejor de la ciudad al mismo tiempo. Esta red social desarrollada por emprendedores canarios ha ganado numerosos premios internacionales&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Ponente&lt;/strong&gt;: Cristina Acevedo&lt;br /&gt;&lt;a href="http://events.linkedin.com/MadeinLocal-com-la-red-social-canaria-en/pub/529574"&gt;Formulario de registro &amp;gt;&lt;/a&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;El uso de las nuevas tecnologías en MadeinLocal.com&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Fecha y hora&lt;/strong&gt;: lunes 14 de febrero de 17:30h a 19:30h&lt;/div&gt;&lt;div align="justify"&gt;&lt;strong&gt;Lugar&lt;/strong&gt;: Salón de grados de la Escuela Técnica Superior de Ingeniería Informática (ETSII)&lt;br /&gt;&lt;strong&gt;Descripción&lt;/strong&gt;: Hablaremos de las diferentes tecnologías que integran los productos de Madeinlocal.com y las tendencias a nivel internacional. La charla contará con la presencia de Manuel Acevedo, responsable de desarrollo de Madeinlocal, en videoconferencia desde Suiza.&lt;br /&gt;&lt;strong&gt;Ponente&lt;/strong&gt;: Cristina Acevedo y Manuel Acevedo (videoconferencia)&lt;br /&gt;&lt;a href="http://events.linkedin.com/El-uso-de-las-nuevas-tecnologias-en/pub/529595"&gt;Formulario de registro &amp;gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;Si quieres seguir sus noticias y novedades puedes unirte al &lt;a href="http://www.facebook.com/home.php#!/pages/Red-social-canaria-MadeinLocal-Tenerife/132632236761183"&gt;grupo de MadeinLocal.com en Facebook&lt;/a&gt;. Para ir abriendo boca, os dejo una entrevista a Manuel Acevedo, CEO de MadeinLocal.com:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;object height="385" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/SnIpTaZBEfA?fs=1&amp;amp;hl=es_ES"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/SnIpTaZBEfA?fs=1&amp;amp;hl=es_ES" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="301"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9wri4uIqw0c/TRsmt85ZP3I/AAAAAAAAAIo/i3BOPusx-Hg/s1600/Logo250.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="44" n4="true" src="http://3.bp.blogspot.com/_9wri4uIqw0c/TRsmt85ZP3I/AAAAAAAAAIo/i3BOPusx-Hg/s200/Logo250.jpg" width="200" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TS9e6_QQcHI/AAAAAAAAAJQ/jWY3pD-YP_c/s1600/logoObraSocial.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="53" n4="true" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TS9e6_QQcHI/AAAAAAAAAJQ/jWY3pD-YP_c/s200/logoObraSocial.png" width="200" /&gt;&lt;/a&gt;&lt;a href="http://3.bp.blogspot.com/_9wri4uIqw0c/TS9e1RwwNeI/AAAAAAAAAJM/0OyBemVfXEM/s1600/logoCeull.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" n4="true" src="http://3.bp.blogspot.com/_9wri4uIqw0c/TS9e1RwwNeI/AAAAAAAAAJM/0OyBemVfXEM/s320/logoCeull.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6799714001395379845-2093803606204168975?l=davidjrh.intelequia.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://davidjrh.intelequia.com/feeds/2093803606204168975/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://davidjrh.intelequia.com/2011/01/nuevo-evento-tenerifedev-madeinlocalcom.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2093803606204168975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6799714001395379845/posts/default/2093803606204168975'/><link rel='alternate' type='text/html' href='http://davidjrh.intelequia.com/2011/01/nuevo-evento-tenerifedev-madeinlocalcom.html' title='Nuevo evento TenerifeDev: MadeinLocal.com'/><author><name>David Rodriguez</name><uri>http://www.blogger.com/profile/13396845659834108816</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://1.bp.blogspot.com/_9wri4uIqw0c/TLwZ4VY1pPI/AAAAAAAAAAM/zFB_byrTAYA/S220/PerfilFacebook.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_9wri4uIqw0c/TS9gOQxujCI/AAAAAAAAAJU/OuohwljqmEs/s72-c/logoMadeinLocal.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6799714001395379845.post-6671387799205098150</id><published>2011-01-09T20:00:00.001Z</published><updated>2011-01-09T20:03:02.491Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNetNuke'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Azure'/><title type='text'>DotNetNuke en Azure: usando Blob Storage</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_9wri4uIqw0c/TSoTqM8FJcI/AAAAAAAAAJI/0FDaXhBfLtI/s1600/the-blob.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="155" src="http://3.bp.blogspot.com/_9wri4uIqw0c/TSoTqM8FJcI/AAAAAAAAAJI/0FDaXhBfLtI/s200/the-blob.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Hoy abrimos el primer post del año retomando el trabajo pendiente sobre la migración de DNN a la plataforma Windows Azure, esta vez con la utilización de Azure Storage para el almacenamiento de contenidos.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Partiendo del módulo "FileManager" que viene de serie con el portal, podemos observar que se pueden utilizar 3 tipos de soporte de archivos para los archivos -ver &lt;a href="http://www.mitchelsellers.com/blogs/articletype/articleview/articleid/167/dotnetnuke-folder-types-explained.aspx"&gt;post de Mitchel Sellers&lt;/a&gt; para información ampliada:&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;Sistema de archivos (estándar)&lt;/b&gt;: la gestión de archivos se realiza sobre el sistema de ficheros tradicional, tratándose de una simple colección de carpetas y archivos en disco;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;Sistema de archivos (seguro):&lt;/b&gt; similar a la anterior salvo que utiliza internamente el "truco" de agregarles la extensión ".resources" a cada archivo con lo que no se puede tener acceso directo por URL a los mismos, sino que hay que utilizar un mecanismo de procesamiento de ficheros a través del archivo "LinkClick.aspx";&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;b&gt;Base de datos (seguro)&lt;/b&gt;: este sistema lo que hace es almacenar el contenido de los ficheros en SQL Server, con lo que hay que utilizarlo con cuidado dependiendo del tamaño de los archivos que se suban al mismo o la base de datos crecerá demasiado -recordemos que el coste de disco es mucho más barato que el de SQL Server- además de tener un procesamiento adicional en servidor para la manipulación de los mismos.&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Al llevar el portal a Azure, nos encontramos rápidamente con el dilema de dónde colocar los contenidos:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;Si usamos sistema de archivos -independientemente de si es en modo seguro o estándar- nos topamos con el problema de que al reciclarse el webrole ante cualquier eventualidad, los archivos desaparecen ya que se vuelve a desplegar una nueva imagen del webrole. Una solución podría ser reescribir el código para que utilice LocalStorage en este sistema de almacenamiento, aunque también habría que retocar toda la parte de sincronización de los sistemas de archivos entre las distintas instancias del webrole;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;Si usamos el sistema de base de datos, nos encontramos con los problemas descritos anteriormente. Imaginad almacenar un vídeo de varios Gb en SQL Azure, aparte de ser una burrada nos come el presupuesto :)&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Azure Blob Storage al rescate&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Una solución idónea, es la de utilizar Azure Blob Storage para el almacenamiento de contenidos. Si estos contenidos son públicos, &lt;b&gt;&lt;u&gt;no hace falta ni siquiera que el portal esté migrado a Azure&lt;/u&gt;&lt;/b&gt;, sino que se podría usar Blob Storage simplemente para almacenamiento en Azure de los contenidos -con todas los beneficios que aporta- mientras que el portal puede seguir estando alojado en tu hosting de siempre.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Echando un vistazo a la versión de DotNetNuke Community -recuerden que siempre trabajo con la versión completa con código fuente para mayor flexibilidad en los desarrollos- realizaremos una serie de modificaciones para que podamos interactuar con Azure desde el mismo portal.&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Comenzando por los tipos de sistemas de archivos, nos encontramos con el enumerado "StorageLocationTypes" al que le vamos a agregar un nuevo valor, que será por el que discriminaremos más tarde en todas las operaciones:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: blue;"&gt;Enum&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;StorageLocationTypes&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InsecureFileSystem = 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SecureFileSystem = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DatabaseSecure = 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;AzureStorage = 3&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Enum&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A continuación modificamos el módulo FileManager para agregar la opción de poder crear carpetas de este tipo:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Private&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; BindStorageLocationTypes()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: #fff2cc; background-image: initial; background-origin: initial;"&gt;&amp;nbsp;&amp;nbsp;ddlStorageLocation.Items.Add(&lt;span style="color: blue;"&gt;New&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;ListItem&lt;/span&gt;(&lt;span style="color: #2b91af;"&gt;Localization&lt;/span&gt;.GetString(&lt;span style="color: #a31515;"&gt;"AzureStorage"&lt;/span&gt;, &lt;span style="color: blue;"&gt;Me&lt;/span&gt;.LocalResourceFile), &lt;span style="color: #a31515;"&gt;"3"&lt;/span&gt;))&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Con ello, agregamos a la lista desplegable el nuevo tipo de carpetas (los archivos creados en un tipo de carpeta "heredan" el tipo de almacenamiento) y podemos crear carpetas de este tipo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_9wri4uIqw0c/TSoFkRZhCQI/AAAAAAAAAI4/GPkkm3VpA1o/s1600/TipoCarpetas.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="83" src="http://2.bp.blogspot.com/_9wri4uIqw0c/TSoFkRZhCQI/AAAAAAAAAI4/GPkkm3VpA1o/s400/TipoCarpetas.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ahora toca modificar el código para que cuando se cree un tipo de carpetas no cree la estructura lógica en el sistema de archivos. Realmente para las carpetas no se debe hacer nada más, ya que en Blob Storage no existe el concepto de carpetas, sino que todos los archivos cuelgan de un mismo container. El concepto de directorios virtuales parte de la idea de utilizar en el nombre de los blobs el carácter "/", con lo que da la apariencia de estar organizados de tal modo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;La rutina a modificar es "AddFolder" de FileSystemUtilities.vb&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Public&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;Shared&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; AddFolder(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; _PortalSettings &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;PortalSettings&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; parentFolder &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; newFolder &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; StorageLocation &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; uniqueId &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Guid&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Consolas; font-size: 13px;"&gt;.......&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;&lt;span style="color: blue;"&gt;If&lt;/span&gt; StorageLocation &amp;lt;&amp;gt; &lt;span style="color: #2b91af;"&gt;FolderController&lt;/span&gt;.&lt;span style="color: #2b91af;"&gt;StorageLocationTypes&lt;/span&gt;.AzureStorage &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dinfo &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.IO.&lt;span style="color: #2b91af;"&gt;DirectoryInfo&lt;/span&gt;(parentFolder)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dinfoNew &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.IO.&lt;span style="color: #2b91af;"&gt;DirectoryInfo&lt;/span&gt; = &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.IO.&lt;span style="color: #2b91af;"&gt;DirectoryInfo&lt;/span&gt;(parentFolder &amp;amp; newFolder)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;If&lt;/span&gt; &lt;span style="color: blue;"&gt;Not&lt;/span&gt; dinfoNew.Exists &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;dinfoNew = dinfo.CreateSubdirectory(newFolder)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;FolderPath = dinfoNew.FullName.Substring(ParentFolderName.Length).Replace(&lt;span style="color: #a31515;"&gt;"\"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"/"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="background-color: #fff2cc; font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: blue;"&gt;Else&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="background-color: #fff2cc; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;nbsp;&amp;nbsp; FolderPath = (parentFolder.Replace(ParentFolderName, &lt;span style="color: #a31515;"&gt;""&lt;/span&gt;) &amp;amp; newFolder).Replace(&lt;span style="color: #a31515;"&gt;"\"&lt;/span&gt;, &lt;span style="color: #a31515;"&gt;"/"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="color: green;"&gt;'Persist in Database&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;AddFolder(PortalId, FolderPath, StorageLocation, uniqueId)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;End&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Una vez que podemos crear las carpetas de tipo Azure, todos los archivos que creemos dentro serán del mismo tipo. Al pulsar el botón "Subir archivo" nos redirige a la página de upload. Seleccionamos un archivo y para que este se suba correctamente a nuestro Blob Storage hay que realizar las siguientes modificaciones:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1) Añadir dos entradas en el web.config -o en el archivo de configuración del servicio si tienes migrado el portal a Azure :)- con los datos de configuración:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt;"&gt;add&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;key&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;WindowsAzure.DataStore.ConnectionString&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;value&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;UseDevelopmentStorage=true&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt;"&gt;add&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt;"&gt;key&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;WindowsAzure.DataStore.RootContainer&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;value&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;dotnetnuke&lt;/span&gt;"&lt;span style="color: blue;"&gt;/&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;2) Agregar una función para la creación del container de Blobs en Azure:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Public&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;Shared&lt;/span&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt; GetAzureRootContainer() &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;CloudBlobContainer&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;' Setup the connection to Windows Azure Storage&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Dim&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; storageAccount &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;CloudStorageAccount&lt;/span&gt; = &lt;span style="color: #2b91af;"&gt;CloudStorageAccount&lt;/span&gt;.Parse(&lt;span style="color: #2b91af;"&gt;Config&lt;/span&gt;.GetSetting(&lt;span style="color: #a31515;"&gt;"WindowsAzure.DataStore.ConnectionString"&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Dim&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; _BlobClient &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;CloudBlobClient&lt;/span&gt; = storageAccount.CreateCloudBlobClient()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 9.5pt;"&gt;' Create the root container&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt; text-align: left; text-indent: 35.4pt;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt;"&gt;Dim&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt;"&gt; _BlobContainer &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;CloudBlobCon
