Enterprise Apps in Windows Azure - Calling the Internet Service Bus (.NET Services from Azure)

In the last days I implemented a typical enterprise cloud app on Windows Azure.

WARNING: Beyond this step no Hello World scenarios! Watch your step!

image

The scenario is based on the famous TimeTracker SL3 Sample which you can find in the Expression Gallery. It is a vendor management system where I can track my vendors time and i can approve the tasks and then have them send over to SAP to create a Purchase Order.

image

The Data Model is quite simple, too and done with Entity Framework over SQL Azure.

image

In 2010 it is nice that you can generate DDL from the Diagram using a right click and select generate database from model. I used that and modified a bit of the code to work in SQL Azure.

With help of the SQL Azure Data Explorer you can actually see the data from within
VS2010

image

Based on the time-tracker sample it was quite easy to adjust the connection string to point to SQL Azure and add a .xap mapping for SL to the web.config. Then the Time-Tracker already runs smoothly on Windows Azure. Also I added support for SSL and SSO on Windows Azure

image

image

Now the reason why i am blogging: I found it quite easy to use the Echoing Sample from the .NET Services SDK as a basis to add communication from my WebRole to my ERP system. However this seemed to work only on my machine and in the simulator.

image

After quite some time I found what was going wrong when accessing the Service Bus from within a WebRole in Azure (when deployed) using NetTcpBinding. I got Configuration Binding Extension not found.

image

I then asked the .NET Services Team what is wrong and it turns out that:

To use the config elements in Azure you need to move the extensions into your web.config. To find them, take a look at your machine.config file. You’ll have to replicate the system.serviceModel extensions that reference the Microsoft.ServiceBus assembly into your web.config that you deploy into Azure. We haven’t made a cut & paste snippet for that yet, but we really should.

If this Problem did not occur i might not have blogged about the whole story. So it seems also to have its good side. ;-).

Now all works fine also in the Cloud ;-)

image

Happy Cloud Computing!

Tim