Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeUsing DNN Platf...Using DNN Platf...Using Modules a...Using Modules a...Using SQL Azure with ModulesUsing SQL Azure with Modules
Previous
 
Next
New Post
1/4/2012 5:40 PM
 

At the DNN World Conference and in the blogs we heard the message loud and clear that DNN supports Azure and is moving into the cloud.

We have a, Community edition 6.1 that is NOT hosted in Azure, but is utilizing the SQL Azure DB.  There are three modules that we need to install and none of them will install.  These modules are very mainstream so there is nothing crazy that we are trying to do (forms, photo gallery, and calendar).

Install errors we get are:

  • ROW GUID COLUMN is not supported in this version of SQL Server
  • 'Filegroup reference and partitioning scheme' is not supported in this version of SQL Server
  • Tables without a clustered index are not supported in this version of SQL Server

Older articles such as http://social.msdn.microsoft.com/Foru.../ seem to infer that there is support coming to address some of these issues, but it is particularly frustrating that it is not here yet.  Is there anything we can do to firm up when this support is coming?

Can anyone comment on how they have worked around common problems like this (other than re-developing the module itself)?

DNN installed fine and the modules that are included in the core work fine, this was even commented on in some of the information found at: http://www.dotnetnuke.com/Resources/W....  GUIDs and non-clustered indexes are prevalent.  Was there some trick to making DNN Core work well or was it just testing and hard work?

 Lastly, can any module developers comment on whether they are SQL Azure compliant or not?


Brilliance Business Solutions | Manufacturing E-commerce
Use AspDotNetStorefront with DotNetNuke in a way that is seamless for the end user.
Learn more at InnestoNuke | DotNetNuke E-commerce
 
New Post
1/4/2012 7:24 PM
 

When I was first working through getting DotNetNuke to run on Azure, I found a number of issues with the core SQL Scripts that made it impossible to run on SQL Azure.  These generally were divided into 4 categories of problems:

  1. Table hints
  2. String Literal Column Aliases
  3. Unsupported features
  4. Indexes

Table Hints
DotNetNuke scripts contained a number of places where table hints were used without a WITH clause.  This often looked like:

SELECT * FROM sometable (nolock) WHERE somecondition = true

These instances were changed to add the WITH clause:

SELECT * FROM sometable WITH (nolock) WHERE somecondition = true 

String Literal Aliases
There were a number of areas where column aliases used string literals which are not supported in SQL Azure:

SELECT 'ColumnAlias' = column FROM sometable WHERE somecondition = true

Instead, these scripts should define column aliases using the AS keyword:

SELECT column AS 'ColumnAlias' FROM sometable WHERE somecondition = true 

Unsupported Features
There are a number of features which are not supported in SQL Azure.  Often this is because you should not be worrying about the specifics of how your database is stored in the cloud and because you don't have permissions to many system tables or stored procedures.  In the core framework this meant removing any reference to the PRIMARY filegroup and to replication hints (e.g. constraints marked as "NOT FOR REPLICATION").

I did not run into any errors when migrating columns since we don't use ROWGUIDCOL and instead inject a GUID generated by the data layer of the application or by using a DEFAULT CONSTRAINT that sets the value to newid() (see this forum post on MSDN). 

Indexes
As you rightly pointed out, all tables must have a clustered index.  This is easy to fix by ensuring that either the primary key or another table index is marked as CLUSTERED.

If you want to correct issues with a specific module, I recommend creating a single roll-up script for the module and then modifying that script to be SQL Azure compatible.  This will prevent the need to modify several scripts per module.  Following this approach you should be able to quickly test any script by executing it directly against a SQL Azure sandbox or by using the SQL Azure Migration Wizard to test the script.



Joe Brinkman
DNN Corp.
 
New Post
1/4/2012 11:35 PM
 
Joe-

This is helpful and good insight, thank you.

Brilliance Business Solutions | Manufacturing E-commerce
Use AspDotNetStorefront with DotNetNuke in a way that is seamless for the end user.
Learn more at InnestoNuke | DotNetNuke E-commerce
 
New Post
1/5/2012 7:49 AM
 

Hi,

Joe has made a good summary of the tips for making SQL Azure compatible modules. These are other tips that could help:

  • The DNN 6.x core is 100% compatible with SQL Azure, but I’m not sure that all the non-core modules are compatible today. With the 6.0 release –seven months ago- I discovered which non-core modules need to be fixed. On this link you can check the results and download the fix (note that surely the modules has been officially updated since July): http://dotnetnuke6.intelequia.com/en-...
  • It’s not a good idea to host the database on SQL Azure and the website outside Azure. Since this initially works, you will find that the performance is very poor and may derive on some random SQL connection issues. Also have in mind that all the outgoing Azure traffic will be invoiced, so take care when you make a query to SQL Azure from outside the datacenter. The best solution for that is to host the website in Azure.
  • I would like to hear about an “Azure compatible module” tag on the modules at Snowcovered and promote this. Actually most of the 3rd party modules have this type of incompatibility that can be solved in a few minutes. If you plan to buy some modules for using on Azure, my advice is to ask to the vendor for Azure support.

 Hope this helps,

 David Rodriguez


David Rodriguez
DNN Cloud Team Lead Engineer | Microsoft Azure MVP | Microsoft Azure Insider / Advisor

 
New Post
7/8/2013 7:05 PM
 
I recommend reading this Wiki topic for making DNN Modules Azure Compatible:

http://www.dotnetnuke.com/Resources/W...
 
Previous
 
Next
HomeHomeUsing DNN Platf...Using DNN Platf...Using Modules a...Using Modules a...Using SQL Azure with ModulesUsing SQL Azure with Modules


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out