Archive for category Development
Connecting to Azure Table Storage
Posted by Richard in Azure, Development, Programming on March 12, 2009
After you finally manage to get Table Storage working (see nice tutorial here) you’ll try to deploy it to your staging environment. That means you need to change the configuration.
There are three settings to use: AccountName, AccountSharedKey and TableStorageEndpoint.
Unfortunately, the values you need for them aren’t what you would naturally expect.
AccountName: This isn’t your account name, but the name of your storage account. (I guess that’s why it has to be a unique name at the time you create it.) On the summary page of your storage project you will only see the value you need in the list of endpoints. It’s the first part of each of the three domain names.
AccountSharedKey: This is the Primary Access Key as found in the summary page of your storage project in the developer portal.
TableStorageEndpoint: This isn’t the endpoint as described in the summary page, but rather a shortened version. Just lop off the AccountName part of the endpoint you use as described in the summary page. That should give you something like http://table.core.windows.net.
For more information see this article on MSDN.
It is so time-consuming to get right, that it really makes sense to follow the advice in the documentation. First, test locally. Then test your local hosted app using the live Storage account. Finally, load your app and test that in the staging environment.
Saying that, I haven’t yet managed to get the second scenario to work. It just crashes on start-up. (Help!)
Learning Windows Azure
Posted by Richard in ASP.Net, Azure, Development, Programming, Software on March 12, 2009
I started to learn how to use the Azure Cloud Service from Microsoft this week. Currently it’s still in Tech Preview stage. Unfortunately you can tell that from the SDK documentation.
Here’s some useful links to get you going:
- Screencasts: http://msdn.microsoft.com/en-us/azure/dd439432.aspx
These are quite basic, but trust me, you need them to be basic to get you started. - SDK: http://www.microsoft.com/downloads/details.aspx?FamilyID=80e3eabf-0507-4560-aeb6-d31e9a70a0a6&displaylang=en
Contains CHTM-style documentation, tools and samples. Don’t expect too much from the docs; they explain enough to get you confused, and then have an API reference. You need to unzip the samples and get into them to start understanding how everything fits together. - Visual Studio Templates: http://www.microsoft.com/downloads/details.aspx?FamilyID=8e90b639-1ef0-4e21-bb73-fc22662911bc&displaylang=en
This gives you a set of project and item templates which you can use to create and publish Azure applications. Don’t worry about the extra projects it adds to a solution, or the config files. You will learn more about them later. - The Azure developer center on MSDN: http://msdn.microsoft.com/en-us/azure/default.aspx
Assuming you already registered for Azure, that’s all you really need to get started.
The biggest problem I found at first was deploying an app. Once you have generated an Azure project in Visual Studio, you expect to be able to publish it from Visual Studio too. Unfortunately you can’t, and it takes a little more effort. I’ll write more about that in another post.
I also needed help trying to understand what to focus on to get started. So here’s a big tip: Ignore .Net Services, Live Services, and SQL Data Services. They aren’t part of Azure per se. You can come back to them later. First you just need a hosted project and some storage – either blob storage or table storage. (There’s also queue storage, but I bet no one will want to use that straight away – it’s for tying two apps together, which no one will want to do at first.)
I recommend you download the SDK and the Visual Studio templates, create yourself a “Web Role” project (which is really the equivalent of an ASP.Net project), and work on that. Then move onto table and blob storage. You can use the screencasts to help you.
Good luck getting started!
Easy Data-loading with LINQ-to-SQL and LINQ-to-XML
Posted by Richard in .Net, Development, LINQ, LINQ to SQL, LINQ-to-XML, Software, VB.Net, Visual Studio on March 20, 2008
.Net 3.5 had some nice tricks in it. LINQ-to-XML was one of them. With the new "X"-types, you can make working with XML really easy.
VB.Net 9 takes it one step further, and lets you write XML in your code without strings.
"Hey Rich, that’s old news," I hear you say. "And who’s interested in VB today anyway?"
Well, apparently there are a lot of VB-er’s still out there. I am mainly a C# developer myself, but I found that VB was perfect for a problem I had recently - loading of XML data into a SQL Server table.
Design Guidelines for LINQ
Posted by Richard in .Net, C# 3.0, Design, Development, Extension Methods, LINQ, Programming, Software on March 13, 2008
Have you wondered if and when you should use the new LINQ features in .Net 3.5?
Like, where should I put a new extension method? Should I use Func<T> or a custom delegate? How do I best implement a mix-in (extension methods on an interface)?
Well, Mircea Trofin has just published a new draft of some LINQ design guidelines. You might just find your answers there.
ExtensionMethod.net – An Extension Methods Database
Posted by Richard in .Net, C# 3.0, Development on March 3, 2008
While surfing around tonight, I came across ExtensionMethod.net, a database of useful Extension Methods for C# 3.0 and VB 9. I thought it might be useful, so I added a few of my own extension methods.
There aren’t many there yet, but there are one or two on there from Scott Guthrie.
Have you got any code you could put up there? You could be one of the first if you go now.
Remove and Sort Those Ugly “using-Statements”
Posted by Richard in .Net, C# 3.0, Development, Programming, Refactoring, Visual Studio on March 3, 2008
Visual Studio 2008 has lots of goodies in it, like LINQ syntax, CSS editing, and testing tools. There’s a lesser-known feature which I really appreciate though – the “Remove and Sort Usings” command in the C# editor.
You activate the command by placing your cursor over the using statements and clicking on the right mouse-button.
Refactoring C# Series: Aggregation of IEnumerable
Posted by Richard in .Net, C# 2.0, C# 3.0, Development, Refactoring on March 2, 2008
I was recently reading Programming Ruby: The Pragmatic Programmers’ Guide, Second Edition, and came across this piece of example Ruby code:
[1,3,5,7].inject(0) {|sum, element| sum+element} -> 16
[1,3,5,7].inject(1) {|product, element| product*element} -> 105
Inject is a method which acts on an array by aggregating or accumulating the values within that array. It loops through the array, and for every item in the array, it performs a function. It then saves the result for the next iteration of the loop and eventually returns the aggregated value.
In C# 1.0 you would probably write such a method like this:
int sum = 0; int[] list = new int[] { 1, 3, 5, 7 }; foreach (int item in list) { // Perform some function, then save the result sum = sum + item; }
It’s a bit long-winded, and if you wanted to make it reusable, you’d have a hard time.
In C# 3.0, you can do it just like you can in Ruby.
The LinqDataSource and the Hidden Viewstate
Posted by Richard in .Net, ASP.Net, C# 3.0, Development, LINQ, Programming, Quaility, Software, Visual Studio on February 21, 2008
Yesterday I thought I’d learn about the LinqDataSource in ASP.Net 3.5, and got an interesting surprise.
The new LinqDataSource can also be used with a LINQ-to-SQL model to perform updates. You simply add the DataSource to your page, set the table name, and set EnableUpdate to true. Then, using a standard DataControl, you can make updates to your data entities.
The question is, how does this work? It appears to be a bit magical. Read the rest of this entry »


