This project is read-only.

General Azure Guidance

Topics: Customizing Orchard, Writing modules, Writing themes
Feb 13, 2013 at 6:56 PM

I'm embarking on a new project using Orchard, It will ultimately be hosted on Windows Azure.
I'm just after a bit of advice for the best approach.

I want to develop on a local copy and then deploy to Azure as new functionality is completed.

1 - I've got the source and have run the Orchard.Azure solution ok, but I've followed the steps for creating an Azure package with the latest source code, and this fails in VS 2012, I saw on a thread on one of the how-tos someone else had this problem. Does anyone know if there is a problem running it with VS2012?

2 - When creating modules/themes, I guess I have to do this in the Orchard.Azure project?

3 - Each time I change something (new module/theme) and then want to deploy to azure, do i have to run the ClickToBuildAzurePackage.cmd (if i get it to work) and then deploy the resulting package?

Any help much appreciated.

Feb 13, 2013 at 10:35 PM
Yes, which is why we now recommend you use Azure Web Sites instead of the older instances.
Feb 14, 2013 at 8:36 AM
Edited Mar 31, 2013 at 1:54 PM
1) Here is described how publishing to Azure works (also directly from TFS (Team Foundation Service)

2) Use the Orchard.Azure.Web project.

3) No, that is not necesarry if you do the steps in 1)
Feb 14, 2013 at 3:29 PM
Thanks that link is really helpful.

Am I using the wrong source though? I can't find CopyModulesAndThemes.proj
Feb 14, 2013 at 3:36 PM
CopyModulesAndThemes.proj Must be in \src\Orchard.Azure\Orchard.Azure.Web. It is in the Orchard 1.6 Source File
Feb 14, 2013 at 3:37 PM
I forgot, another question...

Is there a good way to debug locally, I've run the solution with the azure emulator and it can take a few minutes to load.

Feb 14, 2013 at 6:12 PM
Or you could try Azure VMs what are the best way of running Orchard on Azure IMO (Orchard Hungary now runs on an XS Azure VM).
Feb 14, 2013 at 6:58 PM
@Piedone, very interesting. I hadn't thought of using Azure VM's. Another benefit of using a VM is that the disk storage is persistent, so you wouldn't have to rebuild the search index across instance resets the way you would with web roles.

One drawback: would you be able to load balance a site across multiple VM's though?
Feb 14, 2013 at 7:12 PM
Edited Feb 14, 2013 at 7:13 PM
For my Orchard azure projects, I do local dev work using the normal ASP.NET MVC solution because it makes for a faster develop/test-in-browser loop. I do have to sometimes make parallel changes to the Azure copy of the solution, for things like adding modules, files, or references to the solutions. When I'm ready to deploy to Azure I load the Azure solution locally to do a final test in the dev fabric environment before deploying. It's not the best workflow ever, but works. There are plusses and minuses to each possible approach right now.

Web Sites - Pros: primary pro: easy deploy, easy set up. Cons: Less control, volatile local storage, possibly slowest option.
Web Role / Cloud Service - Pros: full control, auto load balancing, easy horizontal scaling. Cons: complex, and slow deploy process. Volatile local storage.
Azure VM - Pros: persistent local storage, full control, easy deploy via xcopy/mspublish style deployments. Cons: Probably harder to scale this method out to multiple instances.
Feb 14, 2013 at 8:33 PM
You can load balance VMs (but there is also an option for an enormous instance: scaling vertically is always a quicker, although more expensive option) with other VMs (there's a pre-set load balancer role available for installation).
Feb 15, 2013 at 10:36 AM
I'll have a look at the VM, I'm a bit worried about the page load times you quote in your article for the other Azure options Piedone, do you think that is common?

Think I'll have to go down the same workflow as you TheMonarch, I was wondering whether just connecting directly to the Azure storage from my local copy would be quicker than the emulator though.

Thanks for your help.
Feb 15, 2013 at 12:26 PM
AWS was that bad for me on that particular test. It could have been some temporal issue and as written there, for others AWS works quite well with Orchard. So I'd advise to try it yourself.