March 2009 - Posts
Video Session Content
Seeing through the Clouds: Introduction to Azure Service Platform
While not specifically about just Windows Azure, James Conard covers cloud services from a high level and how the Azure Services Platform fits into this picture. This talk is recommended for customers new to cloud computing concepts and wishing to get a feel for the breadth of the entire Azure Platform.
Overview of Windows Azure
Manuvir Das covers the goals and value of the Windows Azure service in this introductory video. Additionally, this video gives a great overview of the pieces that comprise the service as well as the general architecture of applications running in the cloud. For customers looking at Windows Azure for the first time, this is an excellent introduction.
Building Web Applications with Windows Azure
Steve Marx delivered a developer focused session at MIX09, covering the programming model as well as demoing a PHP application running in Windows Azure live. See the live application called Tweval. This sample was used during this session (as well as other sessions) as a way for users to rate the session using Twitter. Steve covers the architecture of this sample at roughly the 61 min mark in the video.
Windows Azure Storage
Everything you could want to know about storage in Windows Azure is covered in this comprehensive session by Brad Calder. Topics covered include the design goals, security model, programming model, as well as the blob, queues, and tables APIs. Be sure to check out the table performance tips around the 40 min mark.
Using the Windows Azure Tools for Visual Studio
In this very practical session, Jim Nakashima covers the tooling story for Windows Azure inside Visual Studio and walks through how to create cloud applications. In very short order, Jim covers the tooling, debugging, development fabric, and how to use the new native code features.
ScottGu is releasing a 185-pages end to end tutorial on how to write a simple ASP.net MVC application from scratch. This chapter is set to be released by WROX as part of a complete ASP.net MVC book titled “Professional ASP.NET MVC 1.0” pre-order it on Amazon.
As part of his deal with WROX, he secured the rights to distribute this chapter as a download for free to anyone who wants to read it: download this free end-to-end tutorial chapter
Recently, I started a blog at (http://cloudfex.com) to blog on topics like Windows Azure, Cloud Computing, .NET and any interesting technology news I receive in my mailbox. Before setting off to start this blog, I wanted to make sure I started off with search engine optimization (SEO) in mind so I don’t have to reinvent the wheel a few months down the road. Doing it right the first time will give you more benefit as SEO is a time-driven process (your site benefit more when you do it earlier).
I started the blog around10 days ago on 19th March and here’s how I start my SEO planning (I’m just using simple SEO tips/tricks):
1. Determine the topic that I want to talk about and write down a list of them
It is important that we identify keyword that we wish to target. An example of keyword is what do you visualize your visitor will search on the search engine (SE) when trying to locate your site. This is also the same set of keyword you use to track your SEO progress (in this case, trying to be listed and climbing up the SERP (search engine result page).
In my case, the keyword I’ve selected are “Windows Azure”, “Cloud”, “Technology”, “Yizhe”
2. Start to select a good domain name. Your domain name has a strong significant on the type of content that exist on the site thus the search engine placed a huge emphasis on this area. For example, if you want to talk about sports, it’s best to have sports being part of your domain name (e.g. mysportsite.com, sports.com). If you are unable to get a domain with the keyword in it, you can also use it as a subdomain (sports.mysite.com)
3. Once you have your domain, you can start to install your own blogging software. I will skip the installation instruction but if you need information about installing Community Server on Windows 2008: http://cloudfex.com/cs/blogs/cloud/archive/2009/03/23/installing-community-server-on-windows-server-2008.aspx.
4. After installing it, it’s time to do some simple SEO on your site page. Firstly, choose a good title for your blog pages. In most blogging software, you can specify the following properties of your site:
- Title
- Meta Description
- Meta Keyword
- H1
These 4 properties are extremely important when the search engine crawlers search your site and try to figure out what content exist on it. When finding the content for the 4 properties, it is important to make use of keyword placement. For example, my blog site have the following:
Title:
Since I am targeting Windows Azure as my primary keyword, I have to make sure it is shown prominently on the title page of my landing page at (http://cloudfex.com)
I’ve also selected the following meta description:
Meta-Description is extremely important as it will be shown on the SERP and it should be a call-to-action statement to entice visitors to click on it. Your target keyword should also be in the meta-description as it is weighted heavily by the search engine.
Meta-Keyword are a set of keywords that search crawlers will identify and associate your site with those keyword. However, it isn’t being weighted heavily these days as most crawler will ignore this. But nevertheless, there’s no harm including it.

Lastly, do include your keyword in your H1 tag as the crawler will make use of H1 to find the topic that is being discussed on the page. In my case, this is my H1:
Once all of these is completed, it’s time to load up content onto the site. I’ll discuss this further in my subsequent post but here’s the 3 core tips that everyone should keep in mind.
1. The content is the only reason why your visitor is visiting your site. No amount of SEO can help your site if the content you write is not relevant to your target visitor group. Write good content and you will be rest assured that people will come to your site.
2. Try to get the crawler to reach your site.
To do so, the easiest way is to submit your site directly to the search engine.
http://search.live.com/docs/submit.aspx
http://www.google.com/submityourcontent/index.html
Another interesting way to get your site crawler is to start asking your friends (especially those who owns blog that is very popular) to start linking to your site. Crawlers usually crawl sites that are popular more frequently thus the crawler will be directed to your site from your friend’s popular site. If you happen to own other website, do put links to your site too.
Furthermore, popular and reputable sites who provide you with in-bound links will help boost your ranking of your domain as search engines trust those site to link to reputable site too.
3. Submit your site to feedburner or blog aggregation site.
This is an important step as you will get a lot more viewership from those site. Keep your topic attractive and exciting so that people will click your URL. Blog regularly and start to build up your loyal friend. It is also important to ensure that things you blog have a follow up action such as revisiting your site later for updated news so that people will keep coming back.
For my experiment, I’ve managed to boost my ranking of my site [with my keyword] to the top ranking SERP result on search engine within a week with an average of 150-200 pages view and 50+ unique per day.
I’ll blog more about page specific SEO in the next post. Happy SEO-ing!
http://toughestdeveloperpuzzleever.com/
If you have any interesting ideas, feel free to drop me an email and I’ll forward it to the site owner and you need hosting for your puzzle, drop me a mail too so I can get it for you folks. Simply go to http://cloudfex.com/cs/blogs/cloud/archive/2009/03/30/participating-in-creating-challenging-online-puzzle-for-developers.aspx for more information. Join us in this fun project and do check out http://toughestdeveloperpuzzleever.com/ to see if you can get pass the first 20 level. It should be pretty easy ;-)
Recently, a patch on Windows Forefront and Windows Defender Client Security signature on March 9, 2009 PST modified the host file of machines to prevent malicious redirection of website. However, by doing so, it also removed the entry for localhost which caused site launched by the Web Dev Server to display the “Internet Explorer cannot display the webpage error”.
To fix this, simply navigate to C:\Windows\System32\drivers\etc\hosts and
If you see this:
Simple add another “:” to ::1 localhost
so it will be :::1 localhost
This will fix your problem. However, if you receive any permission error on Vista when trying to access this file. What you have to do is to run “notepad” using administrator mode and then navigate to the file to modify it.

During my past few session talking about Windows Azure, the topic of Azure vs. Amazon will always pop up during the Q&A session and I hope to give my personal opinion on the difference I can see from both offerings.
This is not an official comparison and I am comparing both services after using both of them for the past 6+ months.
Let compare Azure .NET Hosted Services and Amazon EC2:
If you are a startup that wants to make use of the raw capability of a virtualized server, e.g. installing different variety of Operating Systems (e.g. Windows, Linux, etc) and you want to have the full flexibility of configuring the OS and running custom codes (e.g. invoking certain system calls), then EC2 is your best option.
However, the trade-off that you will experience for using EC2 is that you will be responsible for the maintenance of the system. This is similar of hosting your own virtualized server farm which in theory is exactly what EC2 offers you – hosted virtualized server. Thou you still get the benefits of the typical cloud computing service offerings like just-in-time scalability and pay-per-use model, you are trading system administration efforts with raw capability of hosting your own server.
Windows Azure on the other hand is different. There is no need for you to patch your system or do any system maintenance. You simply have to upload your .NET code using the online interface and it’ll be deployed onto the Azure .NET hosting services automatically. It’s really easy and you can read more about it at http://cloudfex.com/cs/blogs/cloud/archive/2009/03/27/windows-azure-hosted-service-and-storage-account.aspx if you’re interested to learn more.
However, just like EC2, there’s a tradeoff for this ease of deployment and maintenance. The tradeoff is the ability to run funky stuff on your server as you are currently restricted to running .NET codes (thou it may change in the very near future as the team expands to support other languages). This is more than sufficient for most businesses especially if you are running on the .NET stack all along. Furthermore, your existing code base requires minimal modification and can be deployed onto the Azure Cloud with ease.
It’s pretty interesting to observe that both companies are doing their best to push out their cloud offering and yet both started their journey at the both extreme (Amazon: High Maintenance + Very flexible vs Azure: Low Maintenance + Limited Flexibility). Recently, I’ve been observing how both offerings are progressing and it seems that they both moving towards each other and certain sections of the service started to converge.
Azure is currently on CTP and Amazon is a released product. Both offers a unique service that caters for the needs of most businesses. It’ll be really exciting to how they evolve over time and if new players were to come into this market.
I’ll blog more about Table Storage in my next few post.
The BizSpark is running a campaign for you to invite your friends to the BizSpark program. Check out the competition site: http://bizspark-sg.web.officelive.com/sparkafriend.aspx
It’s very easy to participate, simply refer startups to the program and stand a chance to win those great prizes. BizSpark is a very cool program where startups can gain access to full suite of Microsoft software for free, more information on the site itself.
For some of you who wish to explore more about using Windows Azure Storage Account that are under the Windows Azure Platform, here’s a short walkthrough that can guide you along the process:
To start off, you will need to first get an account Windows Azure: http://www.microsoft.com/azure/windowsazure.mspx
At this point of time, this is a limited public test, so there are limited slots for users who wants to test out .NET Services and SQL Data Services. There’s 2 way to get into the program here: http://lx.azure.microsoft.com/fs
1. Sign up via Connect and be on the waiting list
2. Get a special invite during selected Microsoft events (rarely)
The main reason why this is a limited test is due to the fact that every account that is provisioned has a set of “real” resources allocated to it. This means that when Microsoft provisions you an account on Azure, it is actually giving you some RAM, CPU and DISK. And as much as the team will love to give you an account, they will have to make sure that they have the necessary hardware to support you before you can be provisioned. The last I’ve heard, they have started a new wave of invites so do sign up as soon as possible!
Once you have an account, you can login via your Live ID and gain access to the control panel:
When you click on New Project, there are 2 type of Windows Azure project that you can create:
You should have 2 Storage Account and 1 Hosted Service remaining when you first get your Azure Account.
In our case, I’ve already created a few projects for our sample, they are:
Azure Demo Application = Hosted Service
Azure Demo Storage = Storage Service
The project creation process is quite easy and you should be able to do it without much help.
Now that we have everything setup, we can start to develop some simple code. First off, let’s make sure we have all the required add-on for visual studio before we start:
The Windows® Azure SDK provides developers with the APIs, tools, documentation, and samples needed to develop Internet-scale applications that run on Windows Azure. Using the Windows Azure SDK, developers can create applications and run it in a local development fabric even without a registered account*.
Windows Azure Tools for Microsoft® Visual Studio® extend Visual Studio to enable the creation, building, debugging, running and packaging of scalable services on Windows Azure.
Once we have all these installed on our machine, let’s start up visual studio.
When you create a new project, you will realize that you have an additional section called Cloud Service:
For today, we will use Web Cloud Service which is basically an ASP.net site on the cloud. However, do note that Windows Azure can not only run website but they can also perform worker services such as “resizing a picture”, “batch job to complete certain task”, “running some algorithms to find the largest prime number”, etc. A lot of misconception regarding Azure being just a hosted ASP.net site is wrong.
Once you’ve created the Web Cloud Service, you will realize there are something different between this project and a typical ASP.net project:
There are additional files such as ServiceConfiguration.cscfg and ServiceDefination.csdef. These files are used to tell Windows Azure what sort of service configuration and model you wish to have so that they can provision it for you. An example will be to set the number of processes to run the particular site, the ports to open, etc We will explain this further in the later part of this post.
The MyCloudService_WebRole look like your typical ASP.net project and if you are still wondering if you can import any ASP.net project onto Azure, the answer is YES! Most ASP.net projects can be run on Azure unless it uses funky stuff that hasn’t been implemented on Azure yet like running native code, etc.
Let’s start by doing the famous Hello World example first:
Then, let’s set something in Visual Studio so that it knows which application ID is this project going to be deployed on (this step is optional if you wish to navigate manually to the control panel site to deploy yourself)
Right click on MyCloudService, then select Properties->Portal and you can enter the Application ID of the Azure Hosted Project. You can find the Application ID on the Azure Portal by going to the project page and finding it:
In the screenshot above, I masked out the Application ID and Secret Key but you should have them there.
Okay, now it’s time for us to deploy!
When you deploy, you right click on MyCloudService and Click on Publish. If there’s no error, the output folder will appear along with the direct link to the .NET Hosted Service Project Site:
Now, you will need to upload the file onto Azure and everything should be quite self-explanatory. Simply click on deploy:
Simply upload the 2 files onto Azure and click deploy:
Once you’ve uploaded, you can see your status to be at “Deploying…” and shortly after that you will get “Allocated”, when you are ready to start the service, simply click on “Run” and you will get a status update for your web role to be in Initializing Stage. It is normal for it to take a while (maybe a few minutes) to get deployed, but if you are facing prolong period of waiting and end up getting either an error or stopped status, you can refer to this post for more information: Windows Azure Deployment Stuck in Initializing Stage
Great! Now, let’s do something more funky. Since Azure also comes with storage accounts that you provides Blobs, Tables and Queue services which is pretty awesome as you can have the same kind of ‘scale as you go; pay as you go’ model for storage along with your hosted solution (which in theory means that you can run both all 3 Tier (Presentation, Business Logic and Data Storage) layer on Azure itself.
To setup the link for our project to access our storage project, we will need to modify the configuration file (ServiceDefination.csdef):
<ConfigurationSettings>
<Setting name="AccountName"/>
<Setting name="AccountSharedKey"/>
<Setting name="TableStorageEndpoint"/>
</ConfigurationSettings>
After you setup the settings, you will need to give the settings some value (in ServiceConfiguration.cscfg): (I’ve masked out the SharedKey)
You can find this information at the Azure Portal and within your storage project: (I’ve masked out the SharedKey)
Do note that the EndPoint, instead of the one specified within the Storage Project Website, you need to remove the account ID from the URL as the application will automatically infer the URL from your setting (“AccountName”). So in this case, you should just use
http://table.core.windows.net instead of http://yzdemo.table.core.windows.net
Once you are done, let’s write some code. First of all, let’s add reference to the .NET Storage client library that comes with the SDK. The storage client library can be found here:
After adding the reference, let’s import the library:
In this example. we will create an entity which inherit the TableStorageEntity class:
We will also need create a class that inherits the TableStorageDataServiceContext
After we’ve created the entity and the data service context, we can proceed to perform LINQ query on the DatServiceContext just like what you can do using LINQ to SQL. Everything will be the same. For example to add an object:
To list the content of the Table:
Here you are, with your LINQ knowledge, you can manipulate Azure Storage tables easily! However, there are two thing that we didn’t discuss today which is partition key and row key – these are system properties that exist for every entity. To read more (http://msdn.microsoft.com/en-us/library/dd179338.aspx):
Tables are partitioned to support load balancing across storage nodes. A table's entities are organized by partition. A partition is a consecutive range of entities possessing the same partition key value. The partition key is a unique identifier for the partition within a given table, specified by the PartitionKey property. The partition key forms the first part of an entity's primary key. The partition key may be a string value up to 32 KB in size.
You must include the PartitionKey property in every insert, update, and delete operation.
The second part of the primary key is the row key, specified by the RowKey property. The row key is a unique identifier for an entity within a given partition. Together the PartitionKey and RowKey uniquely identify every entity within a table.
The row key is a string value that may be up to 32 KB in size.
You must include the RowKey property in every insert, update, and delete operation.
The Timestamp property is a DateTime value that is maintained on the server side to record the time an entity was last modified. Table Storage uses the Timestamp property internally to provide optimistic concurrency. You should treat this property as opaque: It should not be read, nor set on insert or update operations (the value will be ignored).
(Credit: http://bits.blogs.nytimes.com/2009/03/20/steve-ballmer-maps-microsofts-cloud-y-future/)
Steve Ballmer met up with Saul Hansell from NYTimes and tried to show what’s Microsoft’s cloud future is. Very interesting read.It’s interesting to note that Steve Ballmer can actually draw out the whole cloud infrastructure to quite an accurate degree. *Chuckle*
When I logged onto Webmaster Center today, I realized the crawlers are throwing back a ton of 404 errors coming from all the tag links on my blog:
I went to check and realize every single one is throwing back a 404 error! Apparently, this is an issue when you run CS on 2008 but there’s a quick fix to this.
Simple add the following line to your web.config and everything should work:
<system.webServer>
<security>
<requestFiltering
allowDoubleEscaping="true">
</requestFiltering>
</security>
</system.webServer>
Want to know the full reason? You can check out this thread: http://dev.communityserver.com/forums/p/492866/605291.aspx
Today NASA and Microsoft announced an agreement that will provide a framework for significantly closer working situation, and specifically taking data from the planetary data system and publishing it thru WWT's spherical format (TOAST) that preserves polar data and makes near instant visual access to data in WorldWide Telescope.
Here is the press release
http://www.microsoft.com/presspass/press/2009/mar09/03-24NASADataPR.mspx
This is a huge step forward, in that previously WWT (and others) had to reprocess and host NASA planetary data in-house. Now NASA will host the data in a visualization friendly format that will allow for large scale public access.
Dreamspark URL: http://www.dreamspark.com/
For all DreamSpark users (in Singapore, I believe NUS/NTU can both access it using their campus verification):
Login to DreamSpark (Register for 1 if you haven’t done so).
Navigate to Get Training
Click on Limited Offer and you will go to a page where you can generate 1 Registration Code which qualify you for 1 free training certification.
In case you are wondering if I will continue to give student exam code in my previous post: http://cloudfex.com/cs/blogs/cloud/archive/2009/03/26/free-microsoft-certification-exam-code.aspx. I’ll still continue to give them out (thou I only have a few codes left) as you may need a few exam before attaining the full certification.
From 24 March 2009, enjoy 50% discount for selected best selling Microsoft Press titles.
Limited Stock only.
To take advantage of this sale, visit www.mspress.sg.
Add the selected titles to your shopping cart, Login and Proceed Checkout.
For those who are interested to learn more about Search Engine Optimization from a web developer perspective, MIX09 have session on that which you can download now at :
T86M Search Engine Optimization (SEO) for Web Developers (Thomas Deml) WMV WMV (High) Zune

I have a few exam code which can get you a free certification exam. Here are the details:
· Each voucher code is valid for a single attempt Microsoft Certified Technical Specialist academic exam only.
· Offer valid at any participating Prometric testing center. There is a limited supply of registration seats (free exams). Students must register voucher code online with Prometric to ensure redemption.
· Vouchers must be redeemed by June 30, 2009. This means you must register for the exam before this date.
· Students must register voucher code online at Prometric. Online registration for students valid for this offer only.
· Students are required to show proof of student status with an accredited academic institution (student ID card) and bring in a printed copy of this email upon arrival to take the exam
· Vouchers cannot be redeemed for cash, resold or combined with any other offer. Vouchers may only be redeemed by students registered at an accredited academic institution
· This offer does not include Second Shot
I believe each test is about S$220+ if you were to take it. Email me
if you are interested to get one. I will have a limit of 5 exam code to give away!
Register your voucher code right away to guarantee your free exam! There is limited number of vouchers, so you better hurry!
You will be prompted to create a Prometric user name and password during the registration process if you don’t already have one.
When selecting the exam number of your choice, be sure to only select exams with a (TS) at the beginning of the description as your voucher code is valid for Technical Specialist exams only
Some information about certification:
We know that tech savvy students like you will be driving business and technology decisions for tomorrow’s companies. Microsoft will be there with you through every step of your career with career planning, training, certification, and community! It’s no secret that there is a shortage of qualified IT Professionals and Developers in today’s workforce. But did you know that:
- 55% of hiring managers consider employee certification as a criterion for hiring
- 46% of Hiring Managers consider employee certification as a criteria for promotion
- 43% of individuals reported salary increases as a result of Microsoft certification
What Is the Value of Microsoft Certification?
Simply put, it is trust and recognition. It means that you stand out in your field with a set of qualifications that demonstrate your skills and commitment to staying current with the very latest and most relevant technology. And for the millions of annual technical graduates over the world, Microsoft credentials are known and trusted differentiators of an individual’s technical competency within a job role or with a specific Microsoft product.
FOR NUS STUDENT: Simply send me using your NUS mail account and you will be in a special queue for 5 reserved vouchers that are given to NUS student. (There is still some vouchers left, I am trying my best to secure more vouchers for you folks so please check back on this site for more information in the by the end of this week). For those who need study materials: there’s a 50% off MS PRESS books campaign going on @ http://cloudfex.com/cs/blogs/cloud/archive/2009/03/27/50-special-discount-for-selected-microsoft-press-books.aspx
ALL STUDENT ON DREAMSPARK PROGRAM WILL QUALIFY FOR 1 EXTRA FREE CERTIFICATION VOUCHER AT: http://cloudfex.com/cs/blogs/cloud/archive/2009/03/27/free-1-x-technical-specialist-microsoft-certification-for-all-dreamspark-users.aspx
Update: All my free cert is given out. However, if you really want a copy, drop me a mail and I'll put you in the queue when I receive my next batch.
More Posts
Next page »