What are the Workflow Authoring Modes?

WF enables you to separate workflow definition from business logic. You can develop your entire workflow by using code, where you specify the workflow structure and logic in the Microsoft Visual C# development tool or the Microsoft Visual Basic development system. The typical workflow-authoring scenario in Visual Studio provides a designer to specify the workflow definition and then uses code in Visual C# or Visual Basic to represent business logic in separate code-behind pages.

read more

What Is Windows Workflow Foundation?

WF includes visual designers for use in Visual Studio 2008, which enable you to quickly design and develop workflow applications. By using workflow classes and custom data types, you can also define your workflow structure programmatically and develop the entire solution in code.

The following table shows some of the commonly used namespaces in WF.

read more

AZURE: Error: (400) Bad Request

Have you been playing with Azure storage, trying to create Blobs, Tables or Queue’s ??

Have you been getting any of the following errors:

[Azure Blob Storage]
Microsoft.WindowsAzure.StorageClient.CloudBlobClient ccb = account.CreateCloudBlobClient();
CloudBlob cb = ccb.GetBlobReference(“myblob2871618”);
cb.DeleteIfExists();

FAILS with: StorageClientExecption
“One of the request inputs is out of range.”
“The remote server returned an error: (400) Bad Request.”
Error code: BadRequest

[Azure Table Storage]
Microsoft.WindowsAzure.StorageClient.CloudTableClient cct = account.CreateCloudTableClient();
cct.DoesTableExist(“MyTable”);
“Exception of type ‘Microsoft.WindowsAzure.StorageClient.StorageClientException’ was thrown.”
StatusCode: System.Net.HttpStatusCode.BadRequest

[Azure Queue Storage]
Microsoft.WindowsAzure.StorageClient.CloudQueueClient ccq = account.CreateCloudQueueClient();
CloudQueue cq = ccq.GetQueueReference(“myqueue”);
cq.Exists();

“One of the request inputs is out of range.”
“The remote server returned an error: (400) Bad Request.”
System.Net.HttpStatusCode.BadRequest

Well, the solution is as I found a little simpler than imagined.

When I created my Storage account online I created it with my standard Camel Case name. PaulStorage. On my connection string I had the name of the storage and my key.

So it looked like:

DefaultEndpointsProtocol=https;AccountName=PaulStorage;AccountKey=XYZ..

When you try and open the connection for my Cloud Storage Account, and pass this in, it will work fine, when you try and do anything like the statements above you get the errors listed.

I knew that for other things like Queue’s in Azure you need to specify them in lowercase or they don’t work. I asked around and found that Azure was very fussy when it came to case. Even though I had specified the Storage account as Camel case I needed to pass it in as lower case to have it work:

DefaultEndpointsProtocol=https;AccountName=paulstorage;AccountKey=XYZ..

Once I made this remarkable at the time, discovery.. Everything started working.

One thing to note is that development storage is a lot more forgiving and you don’t have to worry about any of this.

Development storages connection string is as simple as it gets:

UseDevelopmentStorage=true

Taking HTTP support in WCF to the next level

If you are building for the web and the cloud, then you know that HTTP is important. WCF is no stranger to HTTP. Since .NET 3.5, we’ve been continually delivering capabilities in the platform to enable developers to expose services as resources over HTTP. Now we’re looking to raise the bar several notches.

At PDC, I’ll be showing work we are doing to unlock the full richness of HTTP within your network based applications.

  • We’re going to let you have complete control over HTTP.
  • Support a multitude of media types (formats) i..e XML, JSON, ATOM, OData, and custom formats including those that are hypermedia driven
  • Give you full access to your Uri and headers,
  • Provide richer support for web frameworks like JQuery
  • Provide a more simplified configuration story.

That is just the beginning. We want you to have it your way with HTTP!

Want to hear more? Watch my talk

Building Web APIs for the Highly Connected Web

Glenn Block

Friday, 9:00 AM-10:00 AM (GMT-7)

Room: Kodiak