<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wely&#039;s Cloud Journey</title>
	<atom:link href="http://wely-lau.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://wely-lau.net</link>
	<description>A Wordpress Blog, Running on Windows Azure</description>
	<lastBuildDate>Sun, 19 May 2013 05:55:39 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>ASP.NET Bad Practices: What you shouldn&#8217;t do in ASP.NET (Part 2)</title>
		<link>http://wely-lau.net/2013/05/19/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-2</link>
		<comments>http://wely-lau.net/2013/05/19/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-2/#comments</comments>
		<pubDate>Sun, 19 May 2013 05:55:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Bad Practices]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1806</guid>
		<description><![CDATA[This is the second article of ASP.NET Bad Practices: What you shouldn’t do in ASP.NET series of blog post. You may want to take a look at the first article here. Now let’s carry on to discuss the next 5 taboos in ASP.NET. 6. Leftover Debug Code DO NOT *in the production WHY Longer compilation [...]]]></description>
			<content:encoded><![CDATA[<p>This is the second article of ASP.NET Bad Practices: What you shouldn’t do in ASP.NET series of blog post. You may want to take a look at the first article <a href="http://wely-lau.net/2013/05/11/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-1/">here</a>. Now let’s carry on to discuss the next 5 taboos in ASP.NET. </p>
<h2>6. Leftover Debug Code</h2>
<h3><font color="#ff0000">DO NOT</font></h3>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/05/debug.png"><img title="debug" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="debug" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/05/debug_thumb.png" width="349" height="34" /></a></p>
<p align="center"><strong><font color="#ff0000">*in the production</font></strong></p>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Longer compilation time</li>
<li>Longer code execution</li>
<li>More memory usage at runtime</li>
<li>Images and scripts are not cached</li>
</ul>
<p>You can read the post by <a href="http://weblogs.asp.net/scottgu/archive/2006/04/11/Don_1920_t-run-production-ASP.NET-Applications-with-debug_3D001D20_true_1D20_-enabled.aspx">Scott Gu</a> and <a href="http://www.hanselman.com/blog/MostCommonASPNETSupportIssuesReportingFromDeepInsideMicrosoftDeveloperSupport.aspx">Scott Hanselman</a> on how serious this bad practice is.</p>
<h3>DO</h3>
<p>Always set debug=“false” in the production</p>
<p>*By default, web.config transformation will transform the debug to <strong>false</strong> during publishing. So don’t try to be naughty by turning it to true.</p>
<p>&#160;</p>
<h2>7. Improper usage of static Variable</h2>
<h3><font color="#ff0000">TRY TO AVOID</font></h3>
<p>Using static variable in ASP.NET improperly</p>
<p>UNLESS you know what you’re doing and the impact</p>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Inconsistent value during concurrent access</li>
<li>It will be shared across other requests / users</li>
<li>Value might be overridden by one and another</li>
</ul>
<h3>PREFER</h3>
<p>Read only scenario =&gt; use const or readonly</p>
<p>Maintaining value when post back =&gt; use viewstate</p>
<p>Maintaining value across multiple page =&gt; use session</p>
<p>To cache the data =&gt; use cache</p>
<h3><font color="#ffc000">However</font></h3>
<p>Static variable is useful when:</p>
<ul>
<li>Locking object to avoid multi-write synchronization</li>
<li>Global-wide level object sharing (static VS application object)</li>
</ul>
<p>&#160;</p>
<h2>8. Performing heavy tasks in databound event</h2>
<h3><font color="#ff0000">TRY TO AVOID</font></h3>
<ul>
<li>Calling heavy tasks in each databound event</li>
<li>Heavy tasks:</li>
<ul>
<li>SQL calls, </li>
<li>Web service calls</li>
</ul>
<li>DataBound Event</li>
<ul>
<li>RowDataBound in GridView</li>
<li>ItemDataBound in Repeater</li>
</ul>
<li>*Especially NO PAGING</li>
</ul>
<h3><font color="#ff0000">WHY</font></h3>
<p>It will be called N times, while N denotes page sizes</p>
<h3><font color="#ffc000">UNLESS</font></h3>
<p>If your page size is relatively small. But still be careful!</p>
<h3>PREFER</h3>
<ul>
<li>Using custom data source to enable server side paging</li>
<li>Generated from view (in you’re using EF)</li>
</ul>
<p>&#160;</p>
<h2>9. Breaking the stack unnecessarily when you re-throw an exception</h2>
<h3><font color="#ff0000">TRY TO AVOID</font></h3>
<p>Breaking the stack trace unnecessarily when re-throwing exception with “throw ex”</p>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Losing the original stack trace</li>
<li>It’s harder to trace back / debug which codes really causes error during production</li>
</ul>
<h3><font color="#ffc000">UNLESS</font></h3>
<p>You really expect the outcome</p>
<h3>PREFER</h3>
<ul>
<li>“throw”</li>
<li>Wrapping up the exception with another exception while retaining the original as the inner exception</li>
</ul>
<p>&#160;</p>
<h2>10. Storing clear-text password in config files</h2>
<h3><font color="#ff0000">DO NOT</font></h3>
<p>Storing clear-text password in config files</p>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Easy to get stolen</li>
<li>Unauthorized access</li>
</ul>
<h3>DO</h3>
<ul>
<li>Encryption</li>
<ul>
<li>Consider the encryption with <a href="http://msdn.microsoft.com/en-us/library/zhhddkxy(v=vs.100).aspx">aspnet_regiis</a>, example:</li>
</ul>
</ul>
<p align="center"><font color="#ff0000">aspnet_regiis -pe &quot;connectionStrings&quot; -app &quot;/SampleApplication&quot;</font></p>
<ul>
<li>Combined with another mechanism such as certificate</li>
</ul>
<p>&#160;</p>
<p>Ok, I think we’re good to stop here today. Shall continue this again in the next post. See you!</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/05/19/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET Bad Practices: What you shouldn&#8217;t do in ASP.NET (Part 1)</title>
		<link>http://wely-lau.net/2013/05/11/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-1</link>
		<comments>http://wely-lau.net/2013/05/11/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-1/#comments</comments>
		<pubDate>Sat, 11 May 2013 01:18:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Bad Practices]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1800</guid>
		<description><![CDATA[I’ve been blogging for Windows Azure stuff for the past 3 years. Nonetheless, I’m still catching up .NET and its family pretty closely. We’ve been listening to the best practices so far from anywhere (such as MSDN, conferences, blogs, etc.). But whether to follow the best practices or not could be another side of the [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve been blogging for Windows Azure stuff for the past 3 years. Nonetheless, I’m still catching up .NET and its family pretty closely.</p>
<p>We’ve been listening to the best practices so far from anywhere (such as MSDN, conferences, blogs, etc.). But whether to follow the best practices or not could be another side of the story. Today, I’m gonna blog something special (at least to me). Not <font color="#0000ff">best practices</font>, but <font color="#ff0000"><strong>bad practices</strong></font>. Aha! This serves as the warnings to you when developing ASP.NET application, things that you shouldn’t do in ASP.NET.</p>
<p>I’ve been gathered quite a few bad practices from various sources including personal experiences, feedback from colleagues, online articles and blogs, presentations, MSDN, and so many more. I’ll be discussing 5 of them first in this post will catch up more in upcoming posts.</p>
<h1>Disclaimers!</h1>
<p>Don’t get me wrong when you see the title. I’m not saying to use ASP.NET is a bad practice. Not even saying that ASP.NET is bad. To me, ASP.NET is awesome web development platform and I really love it. In fact, some of the web vulnerabilities or shortages has been answered and covered by ASP.NET by default. </p>
<p>Unfortunately, sometimes there’re always misuses, overuses, abuses, or deprecated features that we should really paying attention to. Coz they really can be timed-bomb in your house and make your days worst.</p>
<p>Most of them within the discussion here are ASP.NET related. However, you might see some of them are pretty generic web programming mistakes / bad practices, which also applicable in ASP.NET. </p>
<p>Additionally, you will also find some that are generic in .NET which applicable in others .NET app, not only applicable in ASP.NET. But I believe they’re significant enough to be in the discussion.</p>
<p>Alright, now let’s go for them now!</p>
<h1>ASP.NET Bad Practices</h1>
<p>&#160;</p>
<h2></h2>
<h2>1. Not Validating User Input</h2>
<p>This is very fundamental yet frequently-made mistake. The impact might be pretty serious if it’s combined with others bad practices (discussed subsequently)</p>
<h3><font color="#ff0000">DO NOT</font></h3>
<ul>
<li>Forget to validating user input</li>
<ul>
<li>Think all users are bad guys!</li>
<li>Especially Textboxes and FileUploaders</li>
</ul>
</ul>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Potential of SQL Injection victim</li>
<li>Potential of Cross Site Scripting victim</li>
</ul>
<h3>DO</h3>
<ul>
<li>Validate! Validate! Validate!</li>
<ul>
<li>max length</li>
<li>type (int, string, etc.)</li>
<li>special character (with Regex)</li>
</ul>
<li>Double Protection</li>
<ul>
<li>Client Side + Server Side</li>
<li>ASP.NET Validation Controls</li>
</ul>
</ul>
<p>&#160;</p>
<h2>2. Connection to database with inline SQL</h2>
<h3><font color="#ff0000">DO NOT</font></h3>
<ul>
<li>Executing database command with inline SQL query and concatenated string</li>
</ul>
<p>&#160;</p>
<p><font face="Consolas"><font size="3"><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: blue; mso-style-textfill-fill-alpha: 100.0%"><font color="#0000ff">string</font></span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"> </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">cmd</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"> = </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: blue; mso-style-textfill-fill-alpha: 100.0%"><font color="#0000ff">string</font></span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">.Format</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(</span><font color="#a31515"><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">&quot;SELECT </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">ProductId</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">, </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">ProductName</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">, </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">QuantityPerUnit</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">, </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">UnitPrice</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%"> FROM PRODUCTS WHERE </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">ProductName</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%"> like &#8216;%</span></font><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: mediumseagreen; mso-style-textfill-fill-alpha: 100.0%"><font color="#3cb371">{0}</font></span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%"><font color="#a31515">%&#8217;&quot;</font></span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">, </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">searchText</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">);</span></font></font></p>
<p><font face="Consolas"><font size="3"><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"></span></font></font></p>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Potential of SQL Injection victim</li>
</ul>
<h3>DO</h3>
<ul>
<li>Cmd.Parameters.Add()</li>
<ul>
<li>This is slightly better</li>
</ul>
</ul>
<p>&#160;</p>
<p style="margin-bottom: 0pt; unicode-bidi: embed; word-break: normal; direction: ltr; margin-left: 0in; margin-top: 0pt; language: en-us; mso-line-break-override: none; punctuation-wrap: hanging" align="left"><font face="Consolas"><font size="3"><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">sqlCmd.Parameters.Add</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: blue; mso-style-textfill-fill-alpha: 100.0%"><font color="#0000ff">new</font></span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"> </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #2b91af; mso-style-textfill-fill-alpha: 100.0%"><font color="#2b91af">SqlParameter</font></span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">(</span><font color="#a31515"><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">&quot;@</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">ProductName</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: #a31515; mso-style-textfill-fill-alpha: 100.0%">&quot;</span></font><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">, </span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">txtProductName.Text</span><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%">));</span></font></font></p>
<p style="margin-bottom: 0pt; unicode-bidi: embed; word-break: normal; direction: ltr; margin-left: 0in; margin-top: 0pt; language: en-us; mso-line-break-override: none; punctuation-wrap: hanging" align="left"><font face="Consolas"><font size="3"><span style="font-family: ; background-image: none; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; color: ; language: en-us; mso-ascii-font-family: consolas; mso-fareast-theme-font: minor-fareast; mso-bidi-theme-font: minor-bidi; mso-highlight: white; mso-font-kerning: 12.0pt; mso-style-textfill-type: solid; mso-style-textfill-fill-color: black; mso-style-textfill-fill-alpha: 100.0%"></span></font></font></p>
<h3>PREFERRED</h3>
<ul>
<li>Stored Procedure</li>
<li>ORM (Entity Framework / NHibernate / etc.)</li>
</ul>
<p>&#160;</p>
<h2>3. User accounts privilege on database access</h2>
<h3><font color="#ff0000">DO NOT</font></h3>
<ul>
<li>Give <u>more than sufficient </u>permission database access</li>
</ul>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Unauthorized access</li>
<li>If it’s SQL Injected, you will be like this:</li>
</ul>
<p><img style="float: none; margin-left: auto; display: block; margin-right: auto" src="http://images.colourbox.com/thumb_COLOURBOX3461207.jpg" /></p>
<p align="center"><a href="http://images.colourbox.com/thumb_COLOURBOX3461207.jpg"><font size="1">http://images.colourbox.com/thumb_COLOURBOX3461207.jpg</font></a></p>
<h3>DO</h3>
<ul>
<li>Find out what permission the app really needs</li>
<li>Give only what they need</li>
<ul>
<li>Execute Store Proc only</li>
<li>Execute Table only </li>
</ul>
</ul>
<p>&#160;</p>
<h2>4. Paging in data controls</h2>
<h3><font color="#ff0000">TRY TO AVOID</font></h3>
<ul>
<li>Using Default Paging on ASP.NET data controls </li>
<li>It’s actually <font color="#ff0000">depending on your data source</font></li>
</ul>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>It’s bringing entire data in the table while just showing a fraction of it</li>
<li>Unnecessary round trip from web server to DB Server</li>
</ul>
<h3>UNLESS</h3>
<ul>
<li>When data is relatively small</li>
<li>Assess your trade-off</li>
<ul>
<li>Dev effort VS performance</li>
</ul>
</ul>
<h3>PREFER</h3>
<ul>
<li>Using custom server side paging</li>
<li>Using effective data source:</li>
<ul>
<li>ADO.NET EF Data Source</li>
</ul>
<li>TIPS: Use SQL Profiler to see the generated T-SQL when performing paging</li>
</ul>
<p>&#160;</p>
<h2>5. Storing big objects in viewstate and sessions</h2>
<h3><font color="#ff0000">TRY TO AVOID</font></h3>
<ul>
<li>Storing big / plenty objects in ViewStates and Sessions </li>
</ul>
<h3><font color="#ff0000">WHY</font></h3>
<ul>
<li>Performance</li>
<li>Big size page, due to viewstate, like this:</li>
</ul>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/05/image.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/05/image_thumb.png" width="512" height="273" /></a></p>
<ul>
<li>Memory leakage on web / app server</li>
</ul>
<h3>DO</h3>
<ul>
<li>Know really what you need</li>
<li>Store only what you use</li>
<li>Disposing them away when no longer in used</li>
</ul>
<p>&#160;</p>
<p>Okay, that’s all for the part 1. Check out again the part 2 soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/05/11/asp-net-bad-practices-what-you-shouldnt-do-in-asp-net-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Singapore Chapter of Global Windows Azure Bootcamp&#8211;Recap</title>
		<link>http://wely-lau.net/2013/04/29/singapore-chapter-of-global-windows-azure-bootcamprecap/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=singapore-chapter-of-global-windows-azure-bootcamprecap</link>
		<comments>http://wely-lau.net/2013/04/29/singapore-chapter-of-global-windows-azure-bootcamprecap/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 13:41:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Events]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1751</guid>
		<description><![CDATA[27th April 2013 was an awesome day! Why? On that day, we have events for more than 96 locations, 154 speakers, 194 sessions, and 7432 attendees. That’s what we called Global Windows Azure Bootcamp. Cool, isn’t it? We also ran one in Singapore, participated by about 70 attendants. Although it was a rainy Saturday morning, [...]]]></description>
			<content:encoded><![CDATA[<p>27th April 2013 was an awesome day! Why? On that day, we have events for more than 96 locations, 154 speakers, 194 sessions, and 7432 attendees. That’s what we called <font color="#0000ff" size="4"><strong>Global Windows Azure Bootcamp</strong></font>. Cool, isn’t it?</p>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/gwab.png"><img title="gwab" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="gwab" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/gwab_thumb.png" width="604" height="319" /></a></p>
<p>We also ran one in Singapore, participated by about 70 attendants. Although it was a rainy Saturday morning, the attendants are all very passionate. Deeply appreciate it guys!</p>
<p align="center"><img src="http://sphotos-h.ak.fbcdn.net/hphotos-ak-prn1/922746_536489916394146_352828291_n.jpg" width="285" height="190" />&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3642.jpg"><img title="_N7K3642" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3642" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3642_thumb.jpg" width="285" height="190" /></a></p>
<h2>Welcome by Wely &amp; Faizal (AzureUG.SG Founders)</h2>
<p>We started the event with welcome not from me and Faizal as the founders of the Windows Azure User Group Singapore. We talked briefly about how the UG was started, some statistic on Global Windows Azure Bootcamp, Sponsors, and Agendas of the day.</p>
<h2>Windows Azure State of Union – Hammad Rajjoub</h2>
<p>Right after the welcome note, Hammad started his session of Windows Azure – State of Union. Hammad did a great job to describe the overview of the entire Windows Azure core components and building block.</p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3639.jpg"><img title="_N7K3639" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3639" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3639_thumb.jpg" width="284" height="190" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3640.jpg"><img title="_N7K3640" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3640" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3640_thumb.jpg" width="280" height="187" /></a></p>
<h2>Windows Azure Web Sites – Faizal</h2>
<p>The second session was delivered by Faizal about Windows Azure Web Site. The session was more demo-centric and covers many ways deploying website on Windows Azure Web Sites (code name Antares).</p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3657.jpg"><img title="_N7K3657" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3657" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3657_thumb.jpg" width="163" height="244" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3642.jpg"><img title="_N7K3642" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3642" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3642_thumb.jpg" width="308" height="205" /></a></p>
<h2>Windows Azure Mobile Service – Hammad Rajjoub</h2>
<p>After lunch, Hammad continued his next topic about Azure Mobile Service. Regardless what mobile platform you’re using (iOS, Android, Windows Phone), Mobile Services takes care of the backend for you.</p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3643.jpg"><img title="_N7K3643" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3643" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3643_thumb.jpg" width="277" height="185" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3640.jpg"><img title="_N7K3640" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3640" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3640_thumb.jpg" width="278" height="186" /></a></p>
<h2>Designing Allocation Planning Engine with Windows Azure Cloud Services – Wely Lau</h2>
<p>The subsequent one was my session that describe about Windows Azure Cloud Services. But I took a different approach of delivery. </p>
<p>The first part illustrated about the basic concept of Windows Azure Cloud Services including the roles, service model, SDK, and deployment. I believe people would love the second part more as I illustrated on of the project as the case study. How to design a cloud application with various component on Windows Azure.</p>
<p align="center"><img src="http://sphotos-h.ak.fbcdn.net/hphotos-ak-frc1/72148_536575059718965_1877990423_n.jpg" width="160" height="240" />&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8272.jpg"><img title="IMG_8272" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8272" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8272_thumb.jpg" width="244" height="164" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8283.jpg"><img title="IMG_8283" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8283" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8283_thumb.jpg" width="164" height="244" /></a></p>
<h2>Windows Azure IaaS – Richard Qi</h2>
<p>The last session was delivered by Richard Qi, the infra guy. Richard explained Windows Azure IaaS covering Virtual Machine and Virtual Network. He also covers a few possible scenario to deploy key server apps such as SQL Server and SharePoint on Azure VM.</p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8291.jpg"><img title="IMG_8291" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8291" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8291_thumb.jpg" width="164" height="244" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8295.jpg"><img title="IMG_8295" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8295" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8295_thumb.jpg" width="244" height="164" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8286.jpg"><img title="IMG_8286" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8286" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8286_thumb.jpg" width="164" height="244" /></a></p>
<p>And here’re some of Microsoft &amp; MVP folks, thanks for your assistance on the event as well.</p>
<p align="center"><img src="http://sphotos-d.ak.fbcdn.net/hphotos-ak-ash4/485496_536488559727615_1617267721_n.jpg" width="180" height="270" />&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3668.jpg"><img title="_N7K3668" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="_N7K3668" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/N7K3668_thumb.jpg" width="302" height="201" /></a>&#160;<img src="http://sphotos-a.ak.fbcdn.net/hphotos-ak-prn1/923420_536489643060840_882863196_n.jpg" width="178" height="250" />&#160;</p>
<h2>Lucky Draws</h2>
<p>After all sessions were done, we spent some time to have the lucky draw, sponsored by global sponsor. And here are some of the winners. Congratulations <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Smile" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/wlEmoticon-smile.png" />&#160;</p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8361.jpg"><img title="IMG_8361" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8361" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8361_thumb.jpg" width="164" height="244" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8357.jpg"><img title="IMG_8357" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8357" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8357_thumb.jpg" width="164" height="244" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8337.jpg"><img title="IMG_8337" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8337" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8337_thumb.jpg" width="164" height="244" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8374.jpg"><img title="IMG_8374" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="IMG_8374" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/04/IMG_8374_thumb.jpg" width="164" height="244" /></a></p>
<p>We would like to thank a lots of people to make this happen successful:</p>
<ul>
<li>Global Sponsors </li>
<li>Global Organizers</li>
<li>Microsoft (especially DPE team &amp; MVP team) </li>
<li>Fellow MVPs and volunteers </li>
</ul>
<p>And finally here’s our group photo!</p>
<p><img style="float: none; margin-left: auto; display: block; margin-right: auto" src="http://sphotos-c.ak.fbcdn.net/hphotos-ak-prn1/551456_536594536383684_1815750217_n.jpg" width="587" height="391" /></p>
<p>Hope to see you again in the upcoming meet-ups and event.</p>
<p>Cheers,</p>
<p>Wely</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/04/29/singapore-chapter-of-global-windows-azure-bootcamprecap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Windows Azure and Online Gaming</title>
		<link>http://wely-lau.net/2013/03/28/windows-azure-and-online-gaming/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-azure-and-online-gaming</link>
		<comments>http://wely-lau.net/2013/03/28/windows-azure-and-online-gaming/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 10:03:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Online Gaming]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1717</guid>
		<description><![CDATA[Online Gaming For the last recent years, online gaming industry keeps growing tremendously. The advantages are very obvious: reach more audience lower running cost anytime and anywhere access and so many more People literally port any kind of games to online space. There are poker card games (such as partypoker.com), arcade, sports, RPG, and so [...]]]></description>
			<content:encoded><![CDATA[<h1>Online Gaming</h1>
<p>For the last recent years, <a href="http://news.cnet.com/8301-13506_3-20077120-17/video-game-spending-set-to-hit-$74-billion-this-year/">online gaming industry keeps growing tremendously</a>. The advantages are very obvious:</p>
<ul>
<li>reach more audience</li>
<li>lower running cost</li>
<li>anytime and anywhere access</li>
<li>and so many more</li>
</ul>
<p>People literally port any kind of games to online space. There are poker card games (such as <a href="http://www.partypoker.com/tournaments.html">partypoker.com</a>), <a href="http://www.freearcade.com/">arcade</a>, <a href="http://www.sportgamesarena.com/">sports</a>, RPG, and so many more.</p>
<h1>Perfect patterns for cloud model</h1>
<p>Likewise some of the system that may experience burst (either predictable or unpredictable), online gaming would face the similar challenges as well.</p>
<p>I believe the following scenarios are not a stranger to you. They are a few patterns that suits most for cloud computing.</p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image_thumb.png" alt="image" width="240" height="135" border="0" /></a> <a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image_thumb.png" alt="image" width="240" height="135" border="0" /></a> <a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image_thumb.png" alt="image" width="240" height="135" border="0" /></a> <a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="image" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/image_thumb.png" alt="image" width="240" height="135" border="0" /></a></p>
<p align="center"><span style="font-size: xx-small;"><strong>Figure 1. Perfect scenario for cloud!</strong></span></p>
<h1>Case Study: Games on Windows Azure</h1>
<p>Many gaming companies are aware of the power of the cloud and have started to build new or migrate the existing game on Windows Azure.</p>
<p><strong>1. Halo 4</strong></p>
<p><a href="http://www.halowaypoint.com/halo4/en-us/"><img src="http://www.microsoft.com/casestudies/resources/Logos/4000014937.jpg" alt="343 Industries" /></a></p>
<p>One of the very popular example would be <a href="http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?casestudyid=710000002102">Halo 4</a>. Apart from using high computing power, it also uses <a href="http://channel9.msdn.com/Blogs/Subscribe/How-Halo-4-is-using-Windows-Azure-Service-Bus">Service Bus as messaging engine</a>.</p>
<p><strong>2. Gameizon</strong></p>
<p><a href="http://www.gameizon.com/"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border: 0px;" title="4000012324" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/4000012324.jpg" alt="4000012324" width="234" height="61" border="0" /></a></p>
<p><a href="http://www.microsoft.com/india/casestudies/windows-azure/gameizon/gaming-company-embraces-the-cloud-to-improve-service-simplify-it-and-reduce-costs/710000000581">Gamizone is another case study of online gaming</a> company that utilize Windows Azure improve service, simplify IT maintenance, and obviously reduce costs.</p>
<p><strong>3. Waappy</strong></p>
<p><a href="http://www.microsoft.com/casestudies/Windows-Azure/Waappy/Game-Developer-Uses-Scalable-Cloud-Solution-to-Reduce-Costs-Meet-Demand/710000001172"><img src="http://www.microsoft.com/casestudies/resources/Logos/4000013206.jpg" alt="Waappy" /></a></p>
<p>Waappy was is online gaming company that make use of Windows Azure to accommodate the demand that grew periodically</p>
<h1>Windows Azure Toolkit for Social Gaming</h1>
<p>&nbsp;</p>
<p>For those who are not aware, Microsoft also released Windows Azure Toolkit for Social Gaming, a set of guidance, samples, and tools that helps developers quickly get started building a casual or social game on Windows Azure.</p>
<ol>
<li>There are two main components of this project. First, there is the toolkit. This download contains the core services and samples needed to learn the basics of social game development. The toolkit contains several simple games and the required server APIs.</li>
<li>The second portion of this project is the game Tankster. Tankster is a multi-player social game that is built on top of the core toolkit. The full source Tankster sample is available for download including images, audio, JavaScript, and more.</li>
</ol>
<p><img style="float: none; margin-left: auto; display: block; margin-right: auto;" src="http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-components-imagefileviewer/communityserver-blogs-components-weblogfiles-00-00-01-13-25/2450.TanksterBeta.png_2D00_550x0.png" alt="" width="371" height="238" /></p>
<p>Check out the tutorial on <a href="http://channel9.msdn.com/Shows/Cloud+Cover/Episode-52-Tankster-and-the-Windows-Azure-Toolkit-for-Social-Games">Cloud Cover Show</a> and an introduction to tankster <a href="http://channel9.msdn.com/Series/Social-Gaming-on-Windows-Azure/Tankster-a-Social-Game-Built-for-Windows-Azure">here</a>.</p>
<p>Download from GitHub <a title="https://github.com/WindowsAzure-Toolkits/wa-toolkit-games" href="https://github.com/WindowsAzure-Toolkits/wa-toolkit-games">https://github.com/WindowsAzure-Toolkits/wa-toolkit-games</a></p>
<p>Happy gaming with Windows Azure!</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/03/28/windows-azure-and-online-gaming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Invitation: Global Windows Azure Boot Camp, Singapore Chapter</title>
		<link>http://wely-lau.net/2013/03/19/invitation-global-windows-azure-boot-camp-singapore-chapter/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=invitation-global-windows-azure-boot-camp-singapore-chapter</link>
		<comments>http://wely-lau.net/2013/03/19/invitation-global-windows-azure-boot-camp-singapore-chapter/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 13:44:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Event]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1700</guid>
		<description><![CDATA[I’m pleased to announce AzureUG.SG (Singapore Windows Azure User Group) is taking part to conduct an Azure Boot Camp in Singapore together with other UG from more than 66+ location world-wide. This’s gonna be an interesting one as we’re all doing one-day boot camp at Saturday, 27 April 2013! Here’s the flyer! Remember to register [...]]]></description>
			<content:encoded><![CDATA[<p>I’m pleased to announce AzureUG.SG (Singapore Windows Azure User Group) is taking part to conduct an Azure Boot Camp in Singapore together with <a href="http://globalwindowsazure.azurewebsites.net/">other UG from more than 66+ location world-wide</a>.</p>
<p>This’s gonna be an interesting one as we’re all doing one-day boot camp at Saturday, 27 April 2013!</p>
<p>Here’s the flyer!</p>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/flyer.jpg"><img title="flyer" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="flyer" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/03/flyer_thumb.jpg" width="594" height="783" /></a></p>
<p align="center">Remember to register yourself at <a href="http://gwabsg.eventbrite.com"><font size="6">http://gwabsg.eventbrite.com</font></a>. </p>
<p>See you!</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/03/19/invitation-global-windows-azure-boot-camp-singapore-chapter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Preserving Static IP Address in Windows Azure</title>
		<link>http://wely-lau.net/2013/03/02/preserving-static-ip-address-in-windows-azure/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=preserving-static-ip-address-in-windows-azure</link>
		<comments>http://wely-lau.net/2013/03/02/preserving-static-ip-address-in-windows-azure/#comments</comments>
		<pubDate>Sat, 02 Mar 2013 03:32:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[IP Address]]></category>
		<category><![CDATA[Virtual Machine]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1631</guid>
		<description><![CDATA[It is a pretty common practice to use an IP address to provide access on whitelisting service. As an example a trading partner Contoso only allows my company Northwind to access their web service. Only the predefined IP address will be accepted by Contoso while others will be denied. The question now is: Am I [...]]]></description>
			<content:encoded><![CDATA[<p>It is a pretty common practice to use an IP address to provide access on whitelisting service. As an example a trading partner Contoso only allows my company Northwind to access their web service. Only the predefined IP address will be accepted by Contoso while others will be denied. </p>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/a.jpg"><img title="a" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="a" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/a_thumb.jpg" width="395" height="194" /></a></p>
<p>The question now is: Am I able to preserve the IP address of my Windows Azure application in the cloud environment? This article is to explain how to preserve a static IP address for both PaaS and IaaS.</p>
<p>While there is internal IP address being assigned to each VM, this article emphasizes on public VIP (virtual IP address). We don’t really care about the internal IP address since it’s invisible to external parties.</p>
<h1>PaaS: Web and Worker Role</h1>
<p>In PaaS, the IP address is assigned on the deployment (either production or staging) of our service package. The IP address will be stay static through the lifecycle of service deployment. As of today, there’s <a href="http://blogs.msdn.com/b/windowsazure/archive/2011/07/06/windows-azure-deployments-and-the-virtual-ip-address.aspx">no way to reserve an IP address outside the lifetime of the deployment</a>:</p>
<p align="center"><i>“Windows Azure currently does not support a customer reserving a VIP outside of the lifetime of a deployment.”</i></p>
<p>The following diagram illustrates how the deployment looks like:</p>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/b.jpg"><img title="b" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="b" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/b_thumb.jpg" width="517" height="250" /></a></p>
<h2>You won’t lose your IP address</h2>
<ul>
<li>Operations including <b>in-place upgrade, VIP swap, and scaling</b> will not make you to lose your public IP address. </li>
<li>Fortunately, you will also never lose your IP Address in any case of hardware failure recovery. </li>
</ul>
<h2>You will lose your IP address</h2>
<ul>
<li>When you <b>delete a deployment</b> of a cloud service, you will lose the IP address. Windows Azure will assign you another new public IP address on the new deployment. </li>
</ul>
<p>Thus, please be reminded that do not delete the deployment if you want your IP address to be persisted. You should always consider using in-place <b>upgrade or VIP swap</b> to keep the public VIP.</p>
<h1>IaaS: Virtual Machine</h1>
<p>There is only production deployment in IaaS Virtual Machine. The IP address is assigned when a VM attached to <b><font color="#ff0000">an empty</font></b> cloud service. </p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/c.jpg"><img title="c" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="c" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/c_thumb.jpg" width="240" height="189" /></a>&#160; <a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/d.jpg"><img title="d" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="d" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/d_thumb.jpg" width="240" height="186" /></a></p>
<p>The left hand side of the following figure shows the assignment of a public VIP when VM 1 is being created. The right hand side of the figure shows that there isn’t any IP address change when a new VM attached to the existing cloud service.</p>
<h2>You won’t lose your IP address</h2>
<ul>
<li>Operations including <b>vertical scale (changing size of VM)</b> and <b>adding new VM</b> to cloud service will not make you to lose your public IP address. </li>
<li>Likewise PaaS, you will also never lose your IP Address in any case of hardware failure recovery. </li>
</ul>
<h2>You will lose your IP address </h2>
<ul>
<li>When <b>there isn’t any VM attached to a cloud service</b>, you will lose the IP address. This can be shown with the following figure. </li>
</ul>
<p><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/e.jpg"><img title="e" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="e" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/01/e_thumb.jpg" width="240" height="194" /></a></p>
<p>What if you really need to delete a VM but you don’t want to lose the public VIP? The workaround is to deploy a “dummy” VM for a time being until the new deployment is done. This will ensure that your public VIP will be retained.</p>
<h1>Conclusion</h1>
<p>To conclude, this article explains under certain circumstances, you will lose or will not lose the public VIP of your Windows Azure service. It also covers both PaaS and IaaS on how they differs each other on deployment management. Hope this gives you better insight on managing your Windows Azure public VIP.</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/03/02/preserving-static-ip-address-in-windows-azure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Awesome Experience in MVP Global Summit 2013</title>
		<link>http://wely-lau.net/2013/02/28/awesome-experience-in-mvp-global-summit-2013/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=awesome-experience-in-mvp-global-summit-2013</link>
		<comments>http://wely-lau.net/2013/02/28/awesome-experience-in-mvp-global-summit-2013/#comments</comments>
		<pubDate>Thu, 28 Feb 2013 11:14:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Windows Azure Platform]]></category>
		<category><![CDATA[MVP]]></category>
		<category><![CDATA[MVP Summit]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1662</guid>
		<description><![CDATA[Aha, I’m back to Singapore after a long long flight from Seattle. The trips was actually to attend 2013 MVP Global Summit from Feb 18 – 21 in Redmond and Bellevue. What’s MVP Global Summit? The MVP Global Summit is a multi-day event that is hosted in Bellevue and at Microsoft headquarters in Redmond, Washington. [...]]]></description>
			<content:encoded><![CDATA[<p>Aha, I’m back to Singapore after a long long flight from Seattle. The trips was actually to attend <a href="http://www.2013mvpsummit.com/">2013 MVP Global Summit</a> from Feb 18 – 21 in <a href="http://binged.it/13oWzGC">Redmond</a> and <a href="http://binged.it/TaZUhR">Bellevue</a>. </p>
<h1>What’s MVP Global Summit?</h1>
<blockquote><p>The <strong>MVP Global Summit</strong> is a multi-day event that is hosted in Bellevue and at Microsoft headquarters in Redmond, Washington. With a large catalog of technical sessions and a variety of networking opportunities, the MVP Global Summit enables MVPs to connect with other MVPs, build relationships with Microsoft product managers, and provide feedback on Microsoft products and technologies.</p>
</blockquote>
<p><font style="background-color: #f7f7f7"></font><font style="style">Source: <a title="http://www.2013mvpsummit.com/about" href="http://www.2013mvpsummit.com/about">http://www.2013mvpsummit.com/about</a></font></p>
<h1>Departure from Singapore</h1>
<p><font style="style">I departed from Singapore with fellow MVPs (<a href="http://triston.rcpt-to.me/">Triston Wan</a>, <a href="http://davidlim66.wordpress.com/">David Lim</a>, <a href="http://jefferytay.wordpress.com/">Jeffrey Tay</a>, <a href="http://blog.libinuko.com/">Riwut Libinuko</a>) and later joined by <a href="http://community.sgdotnet.org/blogs/microlau/default.aspx">Alvin Lau</a> who missed the departure flight.</font></p>
<p><font style="style">It took about 6.5 hours from Singapore to Tokyo/Narita and another 9 hours from Tokyo/Narita to Seattle/Tacoma. It’s indeed a long and tiring flight. Interestingly, we departed at 08:30 AM from Singapore and arrived at 09:00 AM in Seattle because timezone difference.</font></p>
<h1>MVP Showcases @ 17 Feb 2013</h1>
<p><font style="style">The registration started at 17 Feb 2013 in <a href="http://www.bellevue.hyatt.com/">Hyatt Regency Bellevue</a> where we would verify ourselves to get the conference pass. On the afternoon, there was MVP Showcases. It was awesome to see world-wide MVPS showcasing their projects and products.</font></p>
<p><font style="style">My favorite one was done by </font><font style="style">Korean MVP (<a href="http://hugeflow.com/">HugeFlow</a>). It’s to capture our photo which automatically sync to Surface Board. We could furthermore edit the photo using different digital stamps. It will then be sent through email or printed out as hardcopy. Well, that’s pretty simple but it’s interesting!</font></p>
<p><font style="style">Here’s a sample.</font></p>
<p><font style="style"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/wely-mvp-summit.jpg"><img title="wely-mvp-summit" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="wely-mvp-summit" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/wely-mvp-summit_thumb.jpg" width="313" height="236" /></a></font></p>
<h1>It’s all about technical sessions! 18 – 21 Feb 2013</h1>
<p><font style="style">We have very very pack sessions everyday from 8 AM till 6 PM. </font>As <font style="style">most of the contents are Microsoft NDA, I’m not able to disclosed anything here <img class="wlEmoticon wlEmoticon-openmouthedsmile" style="border-top-style: none; border-left-style: none; border-bottom-style: none; border-right-style: none" alt="Open-mouthed smile" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/wlEmoticon-openmouthedsmile.png" />.</font></p>
<p><font style="style"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130218_093449.jpg"><img title="20130218_093449" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 10px 0px 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="20130218_093449" align="left" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130218_093449_thumb.jpg" width="184" height="244" /></a><font style="style">But I would say it was a very great exposure to interact with Microsoft Product Group (program managers, development leads, and top executives), understanding the product roadmap and strategy.</font></font></p>
<p><font style="style">Here’s a shot with <a href="http://weblogs.asp.net/scottgu/">Scott Guthrie</a>, Corp Vice President in Microsoft Server and Tools Business. Although at his senior position in the corporation, he is still very humble and such a nice person to chat with. </font></p>
<p><font style="style">He always listens to communities and customers expectation. I believe that’s the reason why he is respected by many people in communities.</font></p>
<p><font style="style"></font></p>
<p><font style="style"></font></p>
<p><font style="style">While sharing Microsoft strategy and roadmap, Microsoft also gathers various feedbacks from MVPs, the practical experts in the industry. </font></p>
<p><font style="style">In addition, it was also a good chance to get to know and network with others MVPs coming from different parts of the world.</font></p>
<p>&#160;</p>
<p>&#160;</p>
<p>&#160;</p>
<p><font style="style"></font></p>
<p><font style="style"></font></p>
<h1>Parties and networking sessions</h1>
<p><font style="style">Aside of technical sessions in the morning till afternoon, we have numerous of parties and networking sessions in the evening. That varies depending on our MVPs competency and origin as well. And here are mine</font>:</p>
<ul>
<li><font style="style">Sunday : We had </font><font style="style"><font style="style"><a href="https://azuremvpmixer.eventday.com/">Azure MVP Mixer Party</a></font> at <a href="http://taphousegrill.com/locations.html">Tap Grill House</a>. It was a great opportunity to meet and greet Azure MVPs, Azure Product Group, and Azure Partners / Sponsors.</font><font style="background-color: #f7f7f7"></font> </li>
<li>Monday : Welcome Reception and Dinner at Hyatt Grand Ballroom. This was where by all attendees are gathered around, clustered by regions. Here we are from South-east Asia, leaded by Captain Lilian Quek. </li>
</ul>
<p align="center">&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130218_192527.jpg"><img title="20130218_192527" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="20130218_192527" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130218_192527_thumb.jpg" width="274" height="206" /></a>&#160; <img style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; padding-right: 0px; border-top-width: 0px" border="0" src="http://sphotos-h.ak.fbcdn.net/hphotos-ak-ash3/563472_10151526589373745_1000256122_n.jpg" width="309" height="206" /></p>
<ul>
<li>Tuesday : Another dinner in Tuesday night featuring SEA + Greater China (PRC, Taiwan, and Hong Kong) MVPs. This time was at <a href="http://www.koberestaurantwa.com/">Kobe Restaurant</a>. It was attended by about 60+ MVPs. Here’s again Lilian’s army. </li>
</ul>
<p><img style="float: none; margin-left: auto; display: block; margin-right: auto" src="http://sphotos-e.ak.fbcdn.net/hphotos-ak-prn1/164437_10151759596762627_2060209678_n.jpg" width="383" height="254" /></p>
<ul>
<li>Wednesday : Product Group Evening Evening. This one was seriously cool and very cold as it’s winter in US! Happened in <a href="http://www.centurylinkfield.com/">Century Link Field</a>, a soccer field. Various activities from dinner, dancing, fire-crackers, and many more. </li>
</ul>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_201942.jpg"><img title="20130220_201942" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="20130220_201942" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_201942_thumb.jpg" width="317" height="239" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_201925.jpg"><img title="20130220_201925" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="20130220_201925" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_201925_thumb.jpg" width="318" height="240" /></a></p>
<p align="center"><a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_210052.jpg"><img title="20130220_210052" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="20130220_210052" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_210052_thumb.jpg" width="319" height="241" /></a>&#160;<a href="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_210427.jpg"><img title="20130220_210427" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="20130220_210427" src="http://welymsdnwordpress.blob.core.windows.net/wordpress/2013/02/20130220_210427_thumb.jpg" width="320" height="240" /></a></p>
<p>The last photo was with Captain Identity (who recently promoted to Admiral Identity), <a href="http://blogs.msdn.com/b/vbertocci/">Vittorio Bertocci</a>. </p>
<p>All in all, it was fun and enjoyable experience. Hope to attend another MVP Summit in the future.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/02/28/awesome-experience-in-mvp-global-summit-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Virtual Machine: A look at Windows Azure IaaS Offerings (Part 2)</title>
		<link>http://wely-lau.net/2013/01/09/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-2</link>
		<comments>http://wely-lau.net/2013/01/09/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-2/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 01:28:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[IaaS]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1645</guid>
		<description><![CDATA[We’ve seen the basic concept of Azure IaaS in my last article. This article will take a deeper look at how Images and Disks are being used in Windows Azure Virtual Machine. Later in the article I’ll bring you another tutorial to let you have better understanding and hands-on experience. There are two basic yet [...]]]></description>
			<content:encoded><![CDATA[<p>We’ve seen the basic concept of Azure IaaS in <a href="http://acloudyplace.com/2012/08/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-1/">my last article</a>. This article will take a deeper look at how Images and Disks are being used in Windows Azure Virtual Machine. Later in the article I’ll bring you another tutorial to let you have better understanding and hands-on experience.</p>
<p>There are two basic yet important concepts in Windows Azure Virtual Machine: <strong>Images and Disks</strong>. Although both of them are eventually in <a href="http://en.wikipedia.org/wiki/VHD_(file_format)">VHD format</a>, there are significant differences between them.</p>
<h1>Images</h1>
<p>Images are virtual hard drives (VHDs) that have already been generalized (technically, been<a href="http://technet.microsoft.com/en-us/library/cc766049(v=ws.10).aspx">sys-prepped</a> /generalize). They are basically templates that will be used to clone the Virtual Machine. They come without any specific settings such as computer name, user account, and network settings.</p>
<h2>Predefined / Platform Images</h2>
<p>Windows Azure provides numbers of predefined images including Windows and Linux. The following figure shows the predefined images on Windows Azure as of today.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/VM-platform-images.png"><strong><font size="1"><img title="VM platform images" alt="VM platform images" src="http://acloudyplace.com/wp-content/uploads/2012/10/VM-platform-images.png" width="548" height="347" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 1 – Virtual Machine Platform Images</font></strong></p>
<h2>Creating or Bringing Our Own Images</h2>
<p>Apart from predefined image, we can actually provide our own images as well. This will be certainly useful when we want to reuse the configured VM in the future. It could be done either <a href="https://www.windowsazure.com/en-us/manage/windows/how-to-guides/capture-an-image/">by capturing a running VM on Windows Azure</a> or <a href="http://msdn.microsoft.com/en-us/library/windowsazure/gg466228.aspx">uploading the VHD On-Premise with CSUPLOAD</a>.</p>
<p>Both techniques require us to sysprep the VHD properly. Eventually, the image should be created in the portal.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/creating-image-from-vhd.png"><strong><font size="1"><img title="creating image from vhd" alt="creating image from vhd" src="http://acloudyplace.com/wp-content/uploads/2012/10/creating-image-from-vhd.png" width="549" height="505" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 2 – Creating Image from VHD</font></strong></p>
<h1>Disk</h1>
<p>Disks are the actual VHDs that are ready to be mounted by the Virtual Machine. There are two kinds of Disk: <strong>OS Disk and Data Disk</strong>.</p>
<h2>OS Disk</h2>
<p>OS Disk is a VHD that is being instantiated by an image and obviously contains operating system files. At the time a VM is being provisioned, the OS Disk will be automatically created and mounted as <strong>C:\ drive</strong>.</p>
<p>The default caching policy for OS Disk is enabled for <strong>ReadWrite</strong>. Meaning that, although the OS Disk is stored at Windows Azure Storage as Page Blob, there will be a caching disk sitting on the host OS. At any time reading / writing happens on the OS Disk, it will always reach the caching disk first and gradually flush them to Blob Storage. The reason why ReadWrite cache being enabled for OS Disk is because the usage pattern that Azure team expects. As the working sets of data being read and written are relatively small, it fits perfectly to have a local cache so that it can perform efficiently.</p>
<p>The maximum size of OS Disk is 127 GB as of today. The recommended approach is to let customers store larger data in the Data Disk.</p>
<h2>Data Disk</h2>
<p>Data Disk is VHD that allows us to store any data. The Data Disk can then be mounted on the VM. T As the data disks are stored in Windows Azure Blob Storage as <a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx">page blobs</a>, it inherits from the maximum size of 1 TB. However, there are limits on how many disk can be mounted. This depends on the size of Virtual Machine as presented below.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/VM-size-for-Azure-VM.png"><strong><font size="1"><img title="VM size for Azure VM" alt="VM size for Azure VM" src="http://acloudyplace.com/wp-content/uploads/2012/10/VM-size-for-Azure-VM.png" width="550" height="225" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 3 – VM Size for Azure VM       <br />(From WAPTK – WindowsAzureVirtualMachines.pptx slide 16)</font></strong></p>
<p>The default caching policy for Data Disk is “None” or No Cache. This means that when any reading or writing happens, it always goes directly to Blob Storage.</p>
<h2>*Temporary Disk</h2>
<p>Apart from OS Disk and Data Disk, there is also a temporary disk stored in the VM itself. This is used for the OS Paging file. Importantly, the disk is considered not persistent.</p>
<p>The following diagram illustrates how the disks are being stored in Windows Azure Storage.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/How-disks-are-stored.png"><strong><font size="1"><img title="How disks are stored" alt="How disks are stored" src="http://acloudyplace.com/wp-content/uploads/2012/10/How-disks-are-stored.png" width="549" height="375" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 4 – How disks are stored</font></strong></p>
<h1>A hands-on tutorial</h1>
<p>We have talked about the concepts above. Now let’s jump into the demo to see them in action. I assume you have gone through the tutorial in <a href="http://acloudyplace.com/2012/08/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-1/">my previous article</a>, please do so if you have not.</p>
<h2>Attaching Disks to Virtual Machines</h2>
<p><strong>1. </strong> Log in to New Management Portal with your Live Id. After successfully logging in, navigate to the Virtual Machine section and you will see the Dashboard tab appear. At the bottom part of Dashboard, you will notice the “disk” section. By default, there is only one disk attached, which type is OS Disk. If you notice carefully, the OS Disk VHD refers to Windows Azure Storage URL.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/dashboard-at-virtual-machine-section.png"><strong><font size="1"><img title="Virtual Machine dashboard" alt="Virtual Machine dashboard" src="http://acloudyplace.com/wp-content/uploads/2012/10/dashboard-at-virtual-machine-section.png" width="550" height="382" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 5 – Virtual Machine dashboard</font></strong></p>
<p><strong>2.</strong> Now, click on the “Attach” button and select the “Attach Empty Disk”.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/Attaching-Disk-to-VM.png"><font size="1"><strong><img title="Attaching Disk to VM" alt="Attaching Disk to VM" src="http://acloudyplace.com/wp-content/uploads/2012/10/Attaching-Disk-to-VM.png" width="369" height="260" /></strong></font></a></p>
<p align="center"><font size="1"><strong>Figure 6 – Attaching Disk to VM</strong></font></p>
<p>As the dialog box show up, define the <strong>File Name</strong> as “DataDisk1” and <strong>Size</strong> as “1023”.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/Attaching-an-Empty-Disk.png"><font size="1"><strong><img title="Attaching an Empty Disk" alt="Attaching an Empty Disk" src="http://acloudyplace.com/wp-content/uploads/2012/10/Attaching-an-Empty-Disk.png" width="510" height="460" /></strong></font></a></p>
<p align="center"><font size="1"><strong>Figure 7 – Attaching an Empty Disk</strong></font></p>
<p>It may take a while (2 to 3 minutes) to get the Data Disk ready.</p>
<p><strong>3.</strong> Repeat Step 2 one more time.&#160; Define <strong>File Name</strong> as “DataDisk2” and<strong> </strong>let the <strong>Size</strong> remain the same as “1023”.</p>
<p><strong>4.</strong> After a while, you can see that there are two additional data disks being attached besides the original OS Disk.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/OS-Disk-and-Data-Disk-on-VM.png"><strong><font size="1"><img title="OS Disk and Data Disk on VM" alt="OS Disk and Data Disk on VM" src="http://acloudyplace.com/wp-content/uploads/2012/10/OS-Disk-and-Data-Disk-on-VM.png" width="554" height="167" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 8 – OS Disk and Data Disk on VM</font></strong></p>
<p><strong>5.</strong> Click “Connect” to remote desktop inside the VM. When the RPD file is prompted, simply open it.</p>
<p><strong>6.</strong> Once you have successfully remote desktopped inside the VM, open up Server Manager and expand the Storage – Disk Management Menu.</p>
<p><strong>7. </strong>You might be prompted with the Initialize Disk dialog. This dialog appears since we have just attached two disks on the VM but haven’t initialized them yet. We are required to select the partition type either: <a href="http://en.wikipedia.org/wiki/Master_boot_record">MBR</a> and <a href="http://en.wikipedia.org/wiki/GUID_Partition_Table">GPT</a>.&#160; In this demo, we select “MBR” and click “OK”.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/Initializing-Data-Disks.png"><font size="1"><strong><img title="Initializing Data Disks" alt="Initializing Data Disks" src="http://acloudyplace.com/wp-content/uploads/2012/10/Initializing-Data-Disks-1024x720.png" width="548" height="385" /></strong></font></a></p>
<p align="center"><font size="1"><strong>Figure 9 – Initializing Data Disks</strong></font></p>
<h2>Striping Volume to Data Disks in VM</h2>
<p>The earlier section of this article mentions that the maximum size of each blob is 1 TB. People often make the mistake of thinking that the maximum size of data you can store in Azure Disk is 1 TB. This is not really true, as we can actually store up to 16 TB data (for Extra Large VM). The idea is to <a href="http://technet.microsoft.com/en-us/magazine/ff382722.aspx">use Striped Volume in Windows</a>.</p>
<p><strong>8.</strong> Right click on “Disk 2″ which we have just initialized and click “New Striped Volume”.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/new-striped-volume.png"><strong><font size="1"><img title="new striped volume" alt="new striped volume" src="http://acloudyplace.com/wp-content/uploads/2012/10/new-striped-volume-1024x576.png" width="553" height="311" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 10 – New Striped Volume</font></strong></p>
<p><strong>9.</strong> As the dialog comes up, add the “Disk 3” on the <strong>Available</strong> list and click “Add”. Click “Next” to proceed.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/Adding-Disk-to-Striped-Volume.png"><font size="1"><strong><img title="Adding Disk to Striped Volume" alt="Adding Disk to Striped Volume" src="http://acloudyplace.com/wp-content/uploads/2012/10/Adding-Disk-to-Striped-Volume.png" width="506" height="406" /></strong></font></a></p>
<p align="center"><font size="1"><strong>Figure 11 – Adding Disk to Striped Volume</strong></font></p>
<p><strong>10. </strong>Choose your preferred Drive Letter. In this example, I selected E. Click “Next”.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/assign-drive-letter-or-path.png"><font size="1"><strong><img title="assign drive letter or path" alt="assign drive letter or path" src="http://acloudyplace.com/wp-content/uploads/2012/10/assign-drive-letter-or-path.png" width="508" height="406" /></strong></font></a></p>
<p align="center"><font size="1"><strong>Figure 12 – Assign Drive Letter or Path</strong></font></p>
<p><strong>11. </strong>The next step is about formatting the volume. Simply give the volume a label. In this case, I call it DATA. Click “Next” to finalize the wizard</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/defining-format-volume.png"><font size="1"><strong><img title="defining format volume" alt="defining format volume" src="http://acloudyplace.com/wp-content/uploads/2012/10/defining-format-volume.png" width="506" height="405" /></strong></font></a></p>
<p align="center"><font size="1"><strong>Figure 13 – Defining Format Volume</strong></font></p>
<p><strong>12. </strong>Open up Windows Explorer, notice that the DATA Volume can take up to 2 TB size as they are basically stored in two different Data Disks.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/10/Result-of-striped-disk.png"><strong><font size="1"><img title="Result of striped disk" alt="Result of striped disk" src="http://acloudyplace.com/wp-content/uploads/2012/10/Result-of-striped-disk.png" width="551" height="412" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 14 – Result of striped disk</font></strong></p>
<h1>Conclusion and coming up next</h1>
<p>We’ve seen how the image and disk being design and used in Windows Azure Virtual Machine.</p>
<p>In the subsequent article, we will discuss other aspects of Windows Azure IaaS in more detail such virtual network capabilities and also how PaaS and IaaS work together to bring more possibilities.</p>
<h4></h4>
<h1>Review</h1>
<p>Technical Reviewer: Corey Sanders, Principal Program Manager Lead, Microsoft Corporation.</p>
<h1>References</h1>
<p>-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://www.microsoft.com/en-us/download/details.aspx?id=8396">Windows Azure Platform Training Kit</a></p>
<p>-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2012/AZR209">Mark Russinovich – Windows Azure IaaS: Virtual Machine and Virtual Network</a></p>
<p>-&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://channel9.msdn.com/Events/TechEd/Europe/2012/AZR201">Corey Sanders – Windows Azure IaaS and How It Works</a></p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2013/01/09/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows Azure Virtual Machine: A look at Windows Azure IaaS Offerings (Part 1)</title>
		<link>http://wely-lau.net/2012/11/14/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-1/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-1</link>
		<comments>http://wely-lau.net/2012/11/14/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-1/#comments</comments>
		<pubDate>Wed, 14 Nov 2012 03:05:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Azure IaaS]]></category>
		<category><![CDATA[Windows Azure]]></category>

		<guid isPermaLink="false">http://wely-lau.net/?p=1619</guid>
		<description><![CDATA[This article looks at the journey Windows Azure has taken from when it was first launched as a PaaS, to the newly announced IaaS offerings. In the later part of this article, I’ll also provide a quick, hands-on tutorial on how to set up a Windows Azure Virtual Machine. Started with PaaS, the stateless VM [...]]]></description>
			<content:encoded><![CDATA[<p>This article looks at the journey Windows Azure has taken from when it was first launched as a PaaS, to the newly announced IaaS offerings. In the later part of this article, I’ll also provide a quick, hands-on tutorial on how to set up a Windows Azure Virtual Machine.</p>
<h1>Started with PaaS, the stateless VM model</h1>
<p>As many of you might be aware of Microsoft started Windows Azure with PaaS (Platform as- a Service) model, <a href="http://blogs.msdn.com/b/windowsazure/archive/2010/02/01/windows-azure-platform-now-generally-available-in-21-countries.aspx">generally available in February 2010</a>.</p>
<p>With PaaS, Web and Worker Roles were introduced, customers only had to take care of the application and data, not the operating system and infrastructure. The stateless Virtual Machine (VM) concept was also brought into the picture. This means at the runtime, each VM should not store the data locally as it’ll be gone if the VM is reincarnated due to unexpected events, such as hardware failures. Instead, data should be stored in persistent storages such as SQL Database or Windows Azure Storage.</p>
<p>One primary advantage of this model is scaling in and out could be easily done. In fact, it’s just a matter of changing a parameter and within a few minutes the VM(s) will get provisioned.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/08/Scaling-in-Windows-Azure-Pass.png"><strong><font size="1"><img title="Scaling in Windows Azure Paas" alt="Scaling in Windows Azure Paas" src="http://acloudyplace.com/wp-content/uploads/2012/08/Scaling-in-Windows-Azure-Pass.png" width="548" height="268" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 1 – Scaling in Windows Azure PaaS “Cloud Services”</font></strong></p>
<h4></h4>
<h1>Challenges of PaaS</h1>
<p>Although since its launch <a href="https://www.windowsazure.com/en-us/home/case-studies/">many customers have adopted Windows Azure</a> as a cloud platform, there have also been many unsuccessful deals because of various stumbling blocks, especially when migrating the existing applications to the PaaS model. The following summarizes two major challenges:</p>
<p><strong>1. Migration and portability</strong></p>
<p>When talking about the effort involved in migration, a lot of it depends on the architecture of the application itself. I’ve written a series of <a href="http://wely-lau.net/tag/migration-to-azure-migrating-to-azure-paas/">articles on moving an application to the PaaS cloud model</a>.</p>
<p>If you’ve decided to migrate your application to the PaaS regardless of the effort, what about bringing them back to on-premise? It might take more effort again. Alternatively, you could maintain two copies of your application source code.</p>
<p><strong>2. Stateless virtual machine</strong></p>
<p>Although there are some techniques to <a href="http://acloudyplace.com/2012/05/installing-third-party-software-on-windows-azure-what-are-the-options/">install third-party software on Windows Azure Stateless VM</a>, the installation could be only done when setting up the VM; any changes at runtime wouldn’t be persistent. This restricts customers to install and run state-full applications on Windows Azure.</p>
<h4></h4>
<h1>Introducing IaaS</h1>
<p>With feedback from customers and communities, an initiative of supporting Infrastructure as a Service (IaaS) was finally announced on 7 June 2012 at the <a href="http://www.meetwindowsazure.com/">Meet Windows Azure</a> event. This is an awesome move by Microsoft bringing more powerful capabilities to the platform and also competing with other cloud providers. Exciting news to customers!</p>
<p>Typically, the support of IaaS is implemented with Windows Azure Virtual Machine (WAVM). The major difference between this newly launched IaaS VM and PaaS so-called “Cloud Services” VM is the persistence. Yes, the IaaS VM is now persistent. Meaning that, any change that we perform at runtime will stay durable although the VM is reimaged. Aside from WAVM, the IaaS offerings are also supported with various new networking features. They offer a rich set of capabilities to establish connection amongst cloud VMs and also between cloud VM and on-premise network infrastructure.</p>
<p><strong>Disclaimer</strong>: at the time this article was written, Windows Azure IaaS offerings including Virtual Machine are still in <strong>Preview</strong>. As such, any changes might be applied till the GA (general availability).</p>
<h1>Windows Azure Virtual Machine</h1>
<p>Windows Azure Virtual Machine utilizes the fantastic backend Windows Azure Storage. As such, it inherits the highly-available benefit so that the VM image is replicated for 3 copies.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/08/Windows-Azure-Virtual-Machine-on-Blob-Storage.png"><strong><font size="1"><img title="Windows Azure Virtual Machine on Blob Storage" alt="Windows Azure Virtual Machine on Blob Storage" src="http://acloudyplace.com/wp-content/uploads/2012/08/Windows-Azure-Virtual-Machine-on-Blob-Storage.png" width="550" height="210" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 2 – Windows Azure Virtual Machine on Blob Storage       <br />(Source: MS TechEd North America 2012 – AZR201.pptx – Slide 30)</font></strong></p>
<p>The VM is represented in a standard and consistent form of VHD file. Thus, the VHD can be effortlessly moved from an on-premise virtualized environment (Hyper-V) to Windows Azure or the other way around, or even to other cloud providers. This gives the customer lots of mobility, portability, and no lock-in experience.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/08/Image-Mobility.png"><strong><font size="1"><img title="Image Mobility" alt="Image Mobility" src="http://acloudyplace.com/wp-content/uploads/2012/08/Image-Mobility.png" width="548" height="308" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 3 – Image Mobility       <br />Windows Azure Platform Training Kit – WindowsAzureVirtualMachines.pptx – Slide 11</font></strong></p>
<h5></h5>
<h2>Supported OS Images in Windows Azure VM</h2>
<p>Windows Azure supports several versions of Windows Server and several distros of Linux as can be seen in the figure below:</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/08/Supported-OS-in-Windows-Azure-Virtual-Machine.png"><strong><font size="1"><img title="Supported OS in Windows Azure Virtual Machine" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/Supported-OS-in-Windows-Azure-Virtual-Machine.png" width="548" height="239" /></font></strong></a></p>
<p align="center"><strong><font size="1">Figure 4 – Supported OS in Windows Azure Virtual Machine       <br />(Source: Windows Azure Platform Training Kit – VirtualMachineOverview.pptx – Slide 7)</font></strong></p>
<p>Some of you might be surprise to see Linux distros are on the list. This proves that Microsoft is now heading in an open direction to reach more Microsoft and open-source customers.</p>
<h4></h4>
<h2>A hands-on tutorial</h2>
<p>0. This tutorial requires you to have Windows Azure subscription. If you don’t have one, you can sign up the free trial <a href="https://www.windowsazure.com/en-us/pricing/free-trial/">here</a>. As Windows Azure IaaS is still in Preview at the moment, you are required to request the preview features <a href="https://account.windowsazure.com/PreviewFeatures">here</a>. It might take some time for them to grant you the preview features.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/Virtual-Machines-and-Virtual-Networks1.png"><img title="Virtual Machines and Virtual Networks" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/Virtual-Machines-and-Virtual-Networks1-1024x515.png" width="549" height="276" /></a></p>
<p>1. If you are ready with the subscription and preview features, log on to new <a href="https://manage.windowsazure.com/">Windows Azure Management Portal</a> with your live ID and password. You will see the following screen if you’ve successfully logged in to the portal.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/windows-axzure-management-portal.png"><img title="windows azure management portal" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="windows azure management portal" src="http://acloudyplace.com/wp-content/uploads/2012/08/windows-axzure-management-portal.png" width="549" height="374" /></a></p>
<p>2. To create a Virtual Machine, click on the “+ New” button located in the left bottom corner. When the pop-up menu shows up, select Virtual Machine in the left hand menu and select FROM GALLERY.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/From-Gallery.png"><img title="From Gallery" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/From-Gallery.png" width="551" height="308" /></a></p>
<p>3. (VM OS Selection screen) It will then show the available OS images. Let’s choose Microsoft SQL Server 2012 Evaluation Edition. This is basically Windows Server 2008 R2 with SQL Server 2012 Evaluation Edition pre-installed.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/VM-OS-Selection.png"><img title="VM OS Selection" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="VM OS Selection" src="http://acloudyplace.com/wp-content/uploads/2012/08/VM-OS-Selection.png" width="551" height="414" /></a></p>
<p>4. (VM Configuration Screen) The subsequent step requires us to fill in the VM configurations. Please remember your password; you will need to use it again in later steps.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/selection-screen.png"><img title="selection screen" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/selection-screen.png" width="551" height="400" /></a></p>
<p>5. (VM Mode Screen) This screen allows you to define how and where your VM will be stored. Choose the STANDALONE VIRTUAL MACHINE option and enter your preferred DNS Name for you service. As mentioned above, WAVM will use Blob Storage to store the VHD. This screen allows you to choose the Storage Account, Affinity Group, and Subscription.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/VM-Mode-Screen.png"><img title="VM Mode Screen" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="VM Mode Screen" src="http://acloudyplace.com/wp-content/uploads/2012/08/VM-Mode-Screen.png" width="548" height="395" /></a></p>
<p>6. (VM Options Screen) This screen requires you to define the Availability Set of your Virtual Machine. Just simply click accept button image, leave the configuration as default. I will explain more about the Availability Set in a subsequent article.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/VM-Options.png"><img title="VM Options" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/VM-Options.png" width="550" height="398" /></a>7. If everything goes well, you will see the VM is being provisioned.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/provisioning.png"><img title="provisioning" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/provisioning.png" width="548" height="369" /></a></p>
<p>It might take few minutes for the VM to be ready; you will see the status change to Running. You can then click on the VM to see the details.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/virtual-machine.png"><img title="virtual machine" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/virtual-machine.png" width="552" height="344" /></a>8. Clicking “Connect” will download a RDP file. Open the RDP file and you should see the Windows Security pop up. Enter the password that you specified in step 4.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/credentials.png"><img title="credentials" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/credentials.png" width="440" height="331" /></a>9. When it prompts you with the certificate error, just simply accept it by clicking “Yes”.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/errornotice.png"><img title="errornotice" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/errornotice.png" width="410" height="407" /></a></p>
<p>10. As can be seen, I’ve successfully RDP-in to the VM. Most importantly, any changes that we do now (at the runtime) will be persistent.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/VM-empty-screen.png"><img title="VM empty screen" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/VM-empty-screen.png" width="552" height="322" /></a></p>
<p>You can also see that SQL Server 2012 is pre-installed for us.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/08/sql-server.png"><img title="sql server" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/08/sql-server.png" width="549" height="321" /></a></p>
<h1>Coming Up Next</h1>
<p>In the next article, we will continue to look at Windows Azure Virtual Machine in more detail, including disk and images concepts, networking features, the combination of PaaS and IaaS, and so on. Stay tuned.</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2012/11/14/windows-azure-virtual-machine-a-look-at-windows-azure-iaas-offerings-part-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Independent Review of Explorer Tools for Windows Azure Blob Storage</title>
		<link>http://wely-lau.net/2012/09/25/an-independent-review-of-explorer-tools-for-windows-azure-blob-storage/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=an-independent-review-of-explorer-tools-for-windows-azure-blob-storage</link>
		<comments>http://wely-lau.net/2012/09/25/an-independent-review-of-explorer-tools-for-windows-azure-blob-storage/#comments</comments>
		<pubDate>Tue, 25 Sep 2012 06:36:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Windows Azure Storage]]></category>

		<guid isPermaLink="false">http://wely-lau.net/2012/09/25/an-independent-review-of-explorer-tools-for-windows-azure-blob-storage/</guid>
		<description><![CDATA[Windows Azure Blob Storage Windows Azure Storage is one of the core components in Windows Azure that offers a scalable, highly available, and competitively priced storage option. Amongst others abstractions in Azure Storage (Table Storage and Queue Storage), Blob Storage is perhaps the most widely-used service. Blob Storage allows us to store any unstructured text [...]]]></description>
			<content:encoded><![CDATA[<h1>Windows Azure Blob Storage</h1>
<p>Windows Azure Storage is one of the core components in Windows Azure that offers a scalable, highly available, and competitively priced storage option. Amongst others abstractions in Azure Storage (Table Storage and Queue Storage), Blob Storage is perhaps the most widely-used service. Blob Storage allows us to store any unstructured text and binary data such as video, audio, images, and so many more.</p>
<p>Blob Storage can either be accessed through the API programmatically or explorer tools. This article discusses and reviews several popular explorer tools for Blob Storage.</p>
<h1>Reviews and Ratings</h1>
<h2>Disclaimer</h2>
<p>The reviews and ratings are entirely my individual opinion and preference. The reviews and ratings are based on my personal experience when using each product, and what I consider important.</p>
<h2>Measurement Criteria</h2>
<p>This review will examine these products using the following four dimensions:</p>
<ul>
<li><strong>User interface and experience</strong>      <br />I’ll look at how usable the product is. Have the user interface and experience been designed to be comfortable and user friendly? </li>
<li><strong>Basic features</strong>      <br />This category covers the standard and basic functionality when dealing with Blob Storage. This includes operations such copying / moving files, managing security, and access. </li>
<li><strong>Advanced settings</strong>      <br />This dimension measures how flexible and configurable the product is. This includes the ability to adjust settings or preferences such as defining block size, retry policy, bandwidth settings, and so on. </li>
<li><strong>Others notable features</strong>      <br />This metric is about supplementary features that enrich the product, making the product more powerful and beneficial for users. This might include innovative features such as multi-language support, directory comparison, graphical user interface for logging, etc.</li>
</ul>
<p>For each measurement, I’ll provide a brief description and rating ranging from 1 to 5. 1 means the product provides a poor experience or lacks capability, 5 means the product provides awesome proficiency. Additionally, I would be also giving a N/A (not applicable) for the product that doesn’t have any applicable features.</p>
<h1>1. Cloud Storage Studio 2 by Cerebrata</h1>
<p>We start the review with <a href="http://www.cerebrata.com/Products/CloudStorageStudio">Cloud Storage Studio 2 (CSS2)</a> from <a href="http://www.cerebrata.com/">Cerebrata</a>, <a href="http://www.cerebrata.com/Blog/post/Cerebrata-is-now-part-of-Red-Gate-software.aspx">a company acquired by Red Gate last Oct 2011</a>. CSS 2 is an exploration tool not only for Blob Storage, but also for Tables and Queue Storage.</p>
<p>The product costs $195 for a Professional License (volume discounts apply). Customers are encouraged to try it out with a<a href="http://www.cerebrata.com/Products/CloudStorageStudio/Download.aspx"> 30-day free trial</a>.</p>
<h2>a) User interface and experience</h2>
<p>CSS2 provides a powerful UI grouping concept and navigation, enabling users to group related storage accounts and subscriptions together – as can be seen in the Figure 1.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-tools.png"><img title="cerebrata-tools" alt="Cloud Storage Studio UI from Cerebrata" src="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-tools-1024x567.png" width="550" height="304" /></a></p>
<p align="center">Figure 1 – Cloud Storage Studio UI</p>
<p>The Navigation (in red) and Tabs (in yellow) area look good to me. However, I find the Explorer Area (in blue) is tedious. Copying files and directories will prompt a dialog box that only allows us to copy the blobs within the container only as can be seen in Figure 2. I believe there should be more intuitive way to implement this.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-blob-copying.png"><img title="cerebrata-blob-copying" alt=" Cloud Storage Studio Copying Blobs" src="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-blob-copying.png" width="361" height="167" /></a></p>
<p align="center">Figure 2 – Cloud Storage Studio Copying Blobs</p>
<p align="center"><font color="#ff0000" size="3"><strong>Rating: 3.5</strong></font></p>
<h5></h5>
<h2>b) Basic features</h2>
<p>I would say it satisfies most of the basic needs when dealing with Blob Storage. Starting from managing containers, displaying directories, all the way down to individual blob level are all properly supported.</p>
<h5 align="center"><strong><font color="#ff0000" size="3">Rating: 5.0</font></strong></h5>
<h2>c) Advanced settings</h2>
<p>CSS2 provides powerful settings that enable users to easily define the configuration settings.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-configuration-settings.png"><img title="cerebrata-configuration-settings" alt="Cloud Storage Studio Configuration Settings" src="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-configuration-settings.png" width="550" height="329" /></a></p>
<p align="center">Figure 3 – Cloud Storage Studio Configuration Settings</p>
<p align="center"><font color="#ff0000" size="3"><strong>Rating: 4.5</strong></font></p>
<h2>d) Other notable features</h2>
<p>One of the features that I like most in CSS2 is the graphical UI for Storage Analytic Logging and Metric. It provides a really expressive experience and has a good look and feel.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-chart-view.png"><img title="cerebrata-chart-view" alt="Figure 4 - Cloud Storage Studio Data Views" src="http://acloudyplace.com/wp-content/uploads/2012/07/cerebrata-chart-view-1024x545.png" width="549" height="292" /></a></p>
<p align="center">Figure 4 – View Storage Analytics Data</p>
<p align="center"><font color="#ff0000" size="3"><strong>Rating: 4.0</strong></font></p>
<h1>2. CloudXplorer by ClumsyLeaf</h1>
<p><a href="http://clumsyleaf.com/products/cloudxplorer">CloudXplorer</a> is a lightweight yet handy explorer tool from <a href="http://clumsyleaf.com/">ClumsyLeaf Software</a>. It has been very popular and has been used by many people including Microsoft folks in various events.</p>
<p>CloudXplorer is entirely free-of-charge, downloadable from <a href="http://clumsyleaf.com/downloads/cloudxplorer.zip">here</a>.</p>
<h2>a) User interface and experience</h2>
<p>CloudXplorer comes with Windows Explorer-like user interface, providing a friendly experience, especially for Windows users. Uploading and downloading Blobs are implemented with “Copy / Cut and Paste” experience, and the same when dealing with our local files.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cloudxplorerui.png"><img title="cloudxplorerui" alt="Figure 5 – CloudXplorer User Interface" src="http://acloudyplace.com/wp-content/uploads/2012/07/cloudxplorerui.png" width="518" height="350" /></a></p>
<p align="center">Figure 5 – CloudXplorer User Interface</p>
<h5 align="center"><strong><font color="#ff0000" size="3">Rating: 5.0</font></strong></h5>
<h2>b) Basic features</h2>
<p>I would say it satisfies most of the basic needs.</p>
<h5><strong>Rating: 5.0</strong></h5>
<h2>c) Advanced settings</h2>
<p>I don’t find any options for user to define advanced configuration and settings.</p>
<h5 align="center"><strong><font color="#ff0000" size="3">Rating: N/A</font></strong></h5>
<h2>d) Other notable features</h2>
<p>Unfortunately, I also didn’t find any fancy features in CloudXplorer.</p>
<p align="center"><font color="#ff0000" size="3"><strong>Rating: N/A</strong></font></p>
<h1>3. CloudBerry Explorer for Azure Blob Storage by CloudBerry Lab</h1>
<p>The last product I’m reviewing is the <a href="http://www.cloudberrylab.com/microsoft-azure-explorer-pro.aspx">CloudBerry Explorer</a>. <a href="http://www.cloudberrylab.com/">CloudBerry Labs</a> offers many great products focusing for explorer tools and online backup for various cloud providers such as<a href="http://aws.amazon.com/">Amazon AWS</a>, <a href="https://www.windowsazure.com/">Windows Azure</a>, and <a href="http://www.rackspace.com/">RackSpace</a>.</p>
<p>Furthermore, CloudBerry Explorer supports multi-languages: English, Chinese, and Japanese. The product comes in two versions:</p>
<ul>
<li>Free version </li>
<li>And PRO version, purchasable at $ 39.99</li>
</ul>
<p>Check out the following for <a href="http://www.cloudberrylab.com/microsoft-azure-explorer-pro.aspx">the comparison</a> between the two.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cloudberry-ui.png"><img title="cloudberry ui" alt="Figure 6 – CloudBerry Explorer User Interface" src="http://acloudyplace.com/wp-content/uploads/2012/07/cloudberry-ui-1024x632.png" width="553" height="341" /></a></p>
<p align="center">Figure 6 – CloudBerry Explorer User Interface</p>
<h5 align="center"><strong><font size="3">Rating: 4.5</font></strong></h5>
<h2>b) Basic features</h2>
<p>Like the other two tools, I would say it satisfies most needs.</p>
<h5 align="center"><strong><font color="#ff0000" size="3">Rating: 5.0</font></strong></h5>
<h2>c) Advanced settings</h2>
<p>CloudBerry Explorer also provides a powerful and flexible option for user to configure settings such as setting bandwidth, chunk size, encryption, etc. However, I notice that a few of the features such as encryption and compression are only available in PRO version.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cloudberry-ex-options.png"><img title="cloudberry ex options" alt="Figure 7 – CloudBerry Explorer Options" src="http://acloudyplace.com/wp-content/uploads/2012/07/cloudberry-ex-options.png" width="552" height="361" /></a></p>
<p align="center">Figure 7 – CloudBerry Explorer Options</p>
<h5 align="center"><strong><font color="#ff0000" size="3">Rating: 5.0</font></strong></h5>
<h2>d) Other notable features</h2>
<p>My favorite feature of CloudBerry Explorer is Compare and Sync Folders. This is an extremely useful feature enabling us to compare and sync either cloud or local folders. As seen in the screenshot below, the tool shows the comparison result between the two displays. Then we can finally define to either sync left to right, right to left, or in both directions.</p>
<p align="center"><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cloud-ex.png"><img title="cloud ex" alt="Figure 5 – CloudBerry Explorer User Interface" src="http://acloudyplace.com/wp-content/uploads/2012/07/cloud-ex.png" width="551" height="294" /></a></p>
<p align="center">Figure 5 – CloudBerry Explorer User Interface</p>
<h5 align="center"><strong><font color="#ff0000" size="3">Rating: 4.5</font></strong></h5>
<h1>Conclusion</h1>
<p>We have gone through three explorer tools for Windows Azure Blob Storage. I would say all three products are pretty awesome. There are always advantages from one to another. The following table summarizes reviews and ratings that we’ve come across.</p>
<p><a href="http://acloudyplace.com/wp-content/uploads/2012/07/cloud-explorer-tools.png"><img title="cloud explorer tools" style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="http://acloudyplace.com/wp-content/uploads/2012/07/cloud-explorer-tools.png" width="552" height="159" /></a></p>
<p>In conclusion, if you need a simple and lightweight explorer, CloudXplorer is probably the way to go. However, if you need more flexible settings and innovative features, you should consider Cloud Storage Studio or CloudBerry Explorer.</p>
]]></content:encoded>
			<wfw:commentRss>http://wely-lau.net/2012/09/25/an-independent-review-of-explorer-tools-for-windows-azure-blob-storage/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
