<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Andrew Whitten&#039;s .NET Blog</title>
	<atom:link href="http://andrewwhitten.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrewwhitten.wordpress.com</link>
	<description>Microsoft in the Enterprise</description>
	<lastBuildDate>Fri, 27 Jan 2012 06:19:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='andrewwhitten.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Andrew Whitten&#039;s .NET Blog</title>
		<link>http://andrewwhitten.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://andrewwhitten.wordpress.com/osd.xml" title="Andrew Whitten&#039;s .NET Blog" />
	<atom:link rel='hub' href='http://andrewwhitten.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Fastest Disk for Running Virtual Machines?</title>
		<link>http://andrewwhitten.wordpress.com/2011/09/21/fastest-disk-for-running-virtual-machines/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/09/21/fastest-disk-for-running-virtual-machines/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 11:08:37 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[HyperV]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=324</guid>
		<description><![CDATA[I read a discussion the other day about a laptop review as well as comments about running virtual machines on a Solid State Disk (SSD). The two comments that made me think were (to paraphrase): 1) &#8220;I heard running virtual machines can cause issues with your SSD&#8220; 2) &#8220;I don&#8217;t notice a large performance difference [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=324&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I read a <a href="https://plus.google.com/109123888989768381249/posts/4QGXEAT6ztg?hl=en">discussion the other day</a> about a laptop review as well as comments about running virtual machines on a Solid State Disk (SSD).</p>
<p>The two comments that made me think were (<em>to paraphrase</em>):</p>
<p>1) &#8220;<em>I heard running virtual machines can cause issues with your SSD</em>&#8220;</p>
<p>2) &#8220;<em>I don&#8217;t notice a large performance difference between running a virtual machine on an SSD and a normal disk</em>&#8220;</p>
<p>These comments were of interest to me since I run my primary virtual machines off my SSD disk. Am I potentially trashing it for no performance improvement?</p>
<p>I put together my own speed test based on a few disks I have lying around.</p>
<p>The contenders are:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="205"><strong>Disk</strong>&nbsp;</td>
<td valign="top" width="95"><strong>Connection</strong></td>
<td valign="top" width="316"><strong>Comment</strong></td>
</tr>
<tr>
<td valign="top" width="205"><strong>Intel X-25M SSD (160GB)</strong>&nbsp;</td>
<td valign="top" width="95">SATA</td>
<td valign="top" width="316">My Solid State Disk in a laptop caddy</td>
</tr>
<tr>
<td valign="top" width="205"><strong>Western Digital 7,200 RPM 2.5” (200 GB)</strong>&nbsp;</td>
<td valign="top" width="95">E-SATA</td>
<td valign="top" width="316">Generic external enclosure</td>
</tr>
<tr>
<td valign="top" width="205"><strong>Western Digital Passport (1TB)</strong>&nbsp;</td>
<td valign="top" width="95">USB 3</td>
<td valign="top" width="316">My latest external disk</td>
</tr>
<tr>
<td valign="top" width="205"><strong>Western Digital Passport (80GB)</strong>&nbsp;</td>
<td valign="top" width="95">USB 2</td>
<td valign="top" width="316">My first external disk, still going strong after 6 years</td>
</tr>
</tbody>
</table>
<div id="attachment_325" class="wp-caption alignnone" style="width: 640px"><a href="http://andrewwhitten.files.wordpress.com/2011/09/disks.png"><img class="size-full wp-image-325" title="disks" src="http://andrewwhitten.files.wordpress.com/2011/09/disks.png?w=630&#038;h=472" alt="" width="630" height="472" /></a><p class="wp-caption-text">(From Left to Right) Intel X25-M SSD, Generic WD e-Sata, WD Passport USB3, WD Passport USB2</p></div>
<p><strong>Disclaimer</strong></p>
<p>This test is definitely not exhaustive, and applies only to Hyper-V and my particular laptop configuration.</p>
<p>In addition, only some general aspects of the newly released Windows 8 (<em>Developer Preview</em>). The comparisons for the operations that interest you may be quite different. The comparisons I made were just to determine if there was a trend between the underlying disks.</p>
<p>A better test would do similar comparisons between Virtual Box, VMWare, Virtual PC etc.</p>
<p>Finally, the SSD had the advantage of being directly connected to the main SATA bus. I could have tested a normal disk in the caddy as well, but I felt e-SATA should be nearly as fast (<em>if not as fast</em>).</p>
<p><strong>Test Setup</strong></p>
<p>I have created a 20GB Hyper-V disk file with Windows 8 installed. The same file is copied to each of the disks above.</p>
<p>The Hyper-V machine for each has 4 processors with 4092MB of RAM. The configurations are identical.</p>
<p>Just to make things fair, I tested each machine twice by shutting down and then starting again.</p>
<p>The laptop was a Lenovo W520 with an i7 CPU and 16GB of RAM. The operating system was Windows Server 2008 R2 Standard Edition.</p>
<p>Nothing was running except for the Hyper-V process itself, and only the machine being tested run running.</p>
<div id="attachment_326" class="wp-caption alignnone" style="width: 338px"><a href="http://andrewwhitten.files.wordpress.com/2011/09/hyperv.png"><img class="size-full wp-image-326" title="hyperv" src="http://andrewwhitten.files.wordpress.com/2011/09/hyperv.png?w=630" alt=""   /></a><p class="wp-caption-text">A list of my Hyper-V machines. Windows 8 test machines at the bottom</p></div>
<p><strong>Testing</strong></p>
<p>I just tested and timed some simple operations in Windows 8 that anyone can do out of the box.</p>
<p><strong>Results</strong></p>
<p>The results in seconds are below:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="123"><strong>Test</strong>&nbsp;</td>
<td valign="top" width="123"><strong>Intel X-25-M</strong></td>
<td valign="top" width="123"><strong>WD e-Sata</strong></td>
<td valign="top" width="123"><strong>WD Passport USB3</strong></td>
<td valign="top" width="123"><strong>WD Passport USB2</strong></td>
</tr>
<tr>
<td valign="top" width="123"><strong>Windows Startup</strong>&nbsp;</td>
<td valign="top" width="123">
<p align="center">10</p>
</td>
<td valign="top" width="123">
<p align="center">21</p>
</td>
<td valign="top" width="123">
<p align="center">26</p>
</td>
<td valign="top" width="123">
<p align="center">35</p>
</td>
</tr>
<tr>
<td valign="top" width="123"><strong>Windows Login</strong>&nbsp;</td>
<td valign="top" width="123">
<p align="center">5</p>
</td>
<td valign="top" width="123">
<p align="center">4</p>
</td>
<td valign="top" width="123">
<p align="center">5</p>
</td>
<td valign="top" width="123">
<p align="center">8</p>
</td>
</tr>
<tr>
<td valign="top" width="123"><strong>Launch Visual Studio 11</strong>&nbsp;</td>
<td valign="top" width="123">
<p align="center">6</p>
</td>
<td valign="top" width="123">
<p align="center">24</p>
</td>
<td valign="top" width="123">
<p align="center">26</p>
</td>
<td valign="top" width="123">
<p align="center">36</p>
</td>
</tr>
<tr>
<td valign="top" width="123"><strong>Build basic HTML5 solution in Visual Studio</strong>&nbsp;</td>
<td valign="top" width="123">
<p align="center">1</p>
</td>
<td valign="top" width="123">
<p align="center">4</p>
</td>
<td valign="top" width="123">
<p align="center">4</p>
</td>
<td valign="top" width="123">
<p align="center">7</p>
</td>
</tr>
<tr>
<td valign="top" width="123"><strong>Launch Expression Blend 5</strong>&nbsp;</td>
<td valign="top" width="123">
<p align="center">2</p>
</td>
<td valign="top" width="123">
<p align="center">8</p>
</td>
<td valign="top" width="123">
<p align="center">15</p>
</td>
<td valign="top" width="123">
<p align="center">19</p>
</td>
</tr>
</tbody>
</table>
<p><strong><span style="font-size:small;"><span class="Apple-style-span" style="line-height:normal;">Conclusion</span></span></strong></p>
<p>There is a considerable speed advantage to using a Solid State Disk for running your Hyper-V virtual machines.</p>
<p>e-Sata still proved to be slightly faster than USB 3.</p>
<p>Surprisingly, USB 2 was not extremely slow compared to its USB 3 successor.</p>
<p><strong>What Next?</strong></p>
<p>I recognize that by using my SSD to run virtual machines, I am potentially reducing the life of the disk quite considerably.</p>
<p>At the time of writing an Intel SSD with 160GB is retailing at USD $300. Therefore the productivity advantage (for me) seems to outweigh the cost of the disk itself.</p>
<p>I will still run some machines (<em>such as Active Directory and betas</em>) on a &#8216;normal&#8217; disk.</p>
<p>I&#8217;m also likely to use USB 3 more from now on. Although my e-Sata disks are a little faster, I find the connection more temperamental as well as needing two cables (<em>data + power</em>) which is inconvenient.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/324/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/324/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/324/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=324&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/09/21/fastest-disk-for-running-virtual-machines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/09/disks.png" medium="image">
			<media:title type="html">disks</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/09/hyperv.png" medium="image">
			<media:title type="html">hyperv</media:title>
		</media:content>
	</item>
		<item>
		<title>Hyper-V RemoteFX GPU driver crash with IE9</title>
		<link>http://andrewwhitten.wordpress.com/2011/08/31/hyper-v-remotefx-gpu-driver-crash-with-ie9/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/08/31/hyper-v-remotefx-gpu-driver-crash-with-ie9/#comments</comments>
		<pubDate>Wed, 31 Aug 2011 02:38:17 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[HyperV]]></category>
		<category><![CDATA[RemoteFX]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=315</guid>
		<description><![CDATA[I am running Windows Server 2008 R2 with Service Pack 1, and wanted to try out RemoteFX. It looks really good, except the GPU driver kept crashing, and I kept having to reboot the machine to RDP back into it. I noticed it only happened when IE was running, and I suspected that the new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=315&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I am running Windows Server 2008 R2 with Service Pack 1, and wanted to try out RemoteFX.</p>
<p>It looks really good, except the GPU driver kept crashing, and I kept having to reboot the machine to RDP back into it.</p>
<p>I noticed it only happened when IE was running, and I suspected that the new GPU features in IE 9 &#8216;might&#8217; be the culprit.</p>
<p>So I turned off the setting in IE options and sure enough the driver is no longer crashing!</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/08/ie9.png"><img class="alignnone size-full wp-image-316" title="ie9" src="http://andrewwhitten.files.wordpress.com/2011/08/ie9.png?w=630" alt=""   /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Update: 1st September 2011</strong></p>
<p>I found another tip from Microsoft to prevent the RemoteFX display driver going into &#8216;Turn Off Display&#8217; mode:</p>
<p><a href="http://support.microsoft.com/kb/2501816">http://support.microsoft.com/kb/2501816</a></p>
<p>Basically two commands:</p>
<ul>
<li>powercfg -X -monitor-timeout-ac 0</li>
<li>powercfg -X -monitor-timeout-dc 0</li>
</ul>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/315/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/315/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/315/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=315&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/08/31/hyper-v-remotefx-gpu-driver-crash-with-ie9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/08/ie9.png" medium="image">
			<media:title type="html">ie9</media:title>
		</media:content>
	</item>
		<item>
		<title>Podcast List</title>
		<link>http://andrewwhitten.wordpress.com/2011/05/22/podcast-list-2/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/05/22/podcast-list-2/#comments</comments>
		<pubDate>Sun, 22 May 2011 08:01:26 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Podcasts]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=311</guid>
		<description><![CDATA[Just a list of Podcasts I&#8217;m listening to right now: IT Related Title Description Web URL .NET Rocks A look each week at a different aspect of developing with .NET http://www.dotnetrocks.com Run As Radio The same as .NET Rocks, but from an IT Pro perspective. This is pretty valuable for developers to listen to in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=311&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Just a list of Podcasts I&#8217;m listening to right now:</p>
<p><strong>IT Related</strong></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="112"><strong>Title</strong></td>
<td valign="top" width="191"><strong>Description</strong></td>
<td valign="top" width="123"><strong>Web URL</strong></td>
</tr>
<tr>
<td valign="top" width="112">.NET Rocks</td>
<td valign="top" width="191">A look each week at a different aspect of developing with .NET</td>
<td valign="top" width="123"><a href="http://www.dotnetrocks.com">http://www.dotnetrocks.com</a></td>
</tr>
<tr>
<td valign="top" width="112">Run As Radio</td>
<td valign="top" width="191">The same as .NET Rocks, but from an IT Pro perspective. This is pretty valuable for developers to listen to in order to understand the issues encountered in the infrastructure world.</td>
<td valign="top" width="123"><a href="http://www.runasradio.com">http://www.runasradio.com</a></td>
</tr>
<tr>
<td valign="top" width="112">Hanselminutes</td>
<td valign="top" width="191">Scott Hanselman interviews interesting people in Microsoft and ALT.NET.</td>
<td valign="top" width="123"><a href="http://www.hanselminutes.com">http://www.hanselminutes.com</a></td>
</tr>
<tr>
<td valign="top" width="112">This Developer’s Life</td>
<td valign="top" width="191">A look at the emotions experienced by developers through their careers.</td>
<td valign="top" width="123"><a href="http://thisdeveloperslife.com">http://thisdeveloperslife.com</a></td>
</tr>
<tr>
<td valign="top" width="112">SharePoint Pod Show</td>
<td valign="top" width="191">Informative show that gives you an insight into experiences and best practices from SharePoint experts.</td>
<td valign="top" width="123"><a href="http://www.sharepointpodshow.com">http://www.sharepointpodshow.com</a></td>
</tr>
<tr>
<td valign="top" width="112">Stack Exchange</td>
<td valign="top" width="191">Back after a year! Jeff Atwood and Joel Spolsky (founders of StackExchange) talk about the building of the site, which helps you think about the interactions of business and technology in growing a startup.</td>
<td valign="top" width="123"><a href="http://blog.stackoverflow.com/category/podcasts/">http://blog.stackoverflow.com/category/podcasts/</a></td>
</tr>
</tbody>
</table>
<p>Other</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="112"><strong>Title</strong></td>
<td valign="top" width="191"><strong>Description</strong></td>
<td valign="top" width="123"><strong>Web URL</strong></td>
</tr>
<tr>
<td valign="top" width="112">In Our Time</td>
<td valign="top" width="191">Always interesting discussion around the history of a wide variety of science, religious and social topics.</td>
<td valign="top" width="123"><a href="http://www.bbc.co.uk/radio4/features/in-our-time/">http://www.bbc.co.uk/radio4/features/in-our-time/</a></td>
</tr>
<tr>
<td valign="top" width="112">Judge John Hodgman</td>
<td valign="top" width="191">Comic time out</td>
<td valign="top" width="123"><a href="http://www.maximumfun.org/shows/judge-john-hodgman">http://www.maximumfun.org/shows/judge-john-hodgman</a></td>
</tr>
<tr>
<td valign="top" width="112">Korean Class 101</td>
<td valign="top" width="191">Free Korean lessons. They also sell a good iPad application based on this material.</td>
<td valign="top" width="123">feed://www.koreanclass101.com/wp/wp-feed-audio-video.php</td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/311/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/311/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/311/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=311&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/05/22/podcast-list-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>
	</item>
		<item>
		<title>Where is Disk Cleanup for Windows Server 2008?</title>
		<link>http://andrewwhitten.wordpress.com/2011/03/06/where-is-disk-cleanup-for-windows-server-2008/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/03/06/where-is-disk-cleanup-for-windows-server-2008/#comments</comments>
		<pubDate>Sun, 06 Mar 2011 07:54:05 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=306</guid>
		<description><![CDATA[Discovered something new today.. in order to use the handy Disk Cleanup utility in your Windows Server 2008 machine, you need to enable the &#8216;Windows &#8216;Desktop Experience&#8217; feature. Fantastic, so I get to slow down my server in order to use the clean up utility? Luckily, this guy worked out how to enable that utility [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=306&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Discovered something new today.. in order to use the handy Disk Cleanup utility in your Windows Server 2008 machine, you need to enable the &#8216;Windows &#8216;Desktop Experience&#8217; feature.</p>
<p>Fantastic, so I get to slow down my server in order to use the clean up utility?</p>
<p>Luckily, this guy worked out how to enable that utility again with very little effort (<em>just drop it from one location into your System32 folder</em>)</p>
<p><a href="http://juliusphua.com/2010/10/disk-cleanup-missing-in-windows-server-2008-and-windows-server-2008-r2/">http://juliusphua.com/2010/10/disk-cleanup-missing-in-windows-server-2008-and-windows-server-2008-r2/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/306/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=306&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/03/06/where-is-disk-cleanup-for-windows-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>
	</item>
		<item>
		<title>Developing Custom Screens for SharePoint 2010</title>
		<link>http://andrewwhitten.wordpress.com/2011/02/20/developing-custom-screens-for-sharepoint-2010/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/02/20/developing-custom-screens-for-sharepoint-2010/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 11:39:36 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=298</guid>
		<description><![CDATA[When building a SharePoint site, you may find yourself having to build custom screens. This may be because you need to integrate with a third party system, or perhaps your users require a more sophisticated user interface than can be provided out of the box. There are a few (non exhaustive) options around building custom [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=298&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When building a SharePoint site, you may find yourself having to build custom screens. This may be because you need to integrate with a third party system, or perhaps your users require a more sophisticated user interface than can be provided out of the box.</p>
<p>There are a few (non exhaustive) options around building custom screens in SharePoint 2010, and I have created them on the basis that you need to read and write to some tables held in a separate SQL Server instance.</p>
<p>There is no conclusion to the best method. You should always consider your business requirements in determining which is most appropriate.</p>
<p>This is also assuming that you have to use SharePoint as a platform instead of ASP.NET.  (At least for Options 1 &amp; 2)</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/02/options.png"><img class="alignnone size-full wp-image-299" title="Options" src="http://andrewwhitten.files.wordpress.com/2011/02/options.png?w=630&#038;h=360" alt="" width="630" height="360" /></a></p>
<h2>Option 1: Custom .NET WebPart + Services</h2>
<p>For total flexibility, you can create a custom web part with any kind of experience you like.  You can employ AJAX, Javascript and third party UI components such as Infragistics or Telerik.</p>
<p>The seperate service layer allows you to abstract your data access code away from your User Interface. The additional benefit is that your service layer can take advantage of .NET 4.</p>
<h3>Advantages</h3>
<ul>
<li>Implement any user interface you like</li>
<li>Abstract data access / business logic away from user interface</li>
<li>Easier to secure (no database connections in web site web.config)</li>
<li>Easier to unit test web services</li>
<li>Leverage .NET 4 in your service layer</li>
</ul>
<h3>Disadvantages</h3>
<ul>
<li>Requires more coding for extra layer</li>
</ul>
<h2>Option 2: Custom .NET Webpart + Direct Access</h2>
<p>This is the same as Option 1, with the Service Layer removed.</p>
<h3>Advantages</h3>
<ul>
<li>Implement any user interface you like</li>
<li>Faster to develop.</li>
</ul>
<h3>Disadvantages</h3>
<ul>
<li>Restricted to .NET 3.5</li>
<li>Database connection strings in SharePoint web.config</li>
<li>Harder to unit test User Interfaces than abstract services.</li>
</ul>
<h2>Option 3: JavaScript + SharePoint REST Services</h2>
<p>SharePoint 2010 can now expose all of its lists through a REST API. This combined with External Data Sources make SharePoint a good web service provider.</p>
<p>The idea is that the whole User Interface can be built with JavaScript ( and JQuery ), that can easily consume and update data through the SharePoint REST API.</p>
<p>The JavaScript is hosted in a content web part, although a Visual Web Part may give you more flexibility for this.</p>
<h3>Advantages</h3>
<ul>
<li>No .NET coding required, just JavaScript / JQuery</li>
<li>Easy to configure SharePoint to do this</li>
<li>For a large number of end users, this approach will be far less demanding on the SharePoint server. (<em>All User Interface processed on the client machine</em>).</li>
</ul>
<h3>Disadvantages</h3>
<ul>
<li>All User Interface is managed on the Web Browser</li>
<li>Permissions to read / update / delete data are manages far down in the database</li>
<li>Harder to build event driven logic in JavaScript than ASP.NET</li>
<li>All JavaScript can be read by the end user. Hacking may be possible.</li>
</ul>
<h2>Option 4: InfoPath</h2>
<p>SharePoint 2010 can host InfoPath forms inside the browser. This combined with External Data Sources means you can very quickly create a user experience on top of external data.</p>
<h3>Advantages</h3>
<ul>
<li>No .NET coding required, just define InfoPath forms</li>
<li>InfoPath rules are easier/safer to implement than .NET business logic</li>
<li>Easy to configure SharePoint to do this</li>
<li>Ideal for simple operations such as filling a table with data.</li>
</ul>
<h3>Disadvantages</h3>
<ul>
<li>Little control over the User Interface and the controls you want to use (few custom development options)</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/298/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/298/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=298&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/02/20/developing-custom-screens-for-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/options.png" medium="image">
			<media:title type="html">Options</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple Hyper-V Test Domain for SharePoint</title>
		<link>http://andrewwhitten.wordpress.com/2011/02/14/simple-hyper-v-test-domain-for-sharepoint/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/02/14/simple-hyper-v-test-domain-for-sharepoint/#comments</comments>
		<pubDate>Mon, 14 Feb 2011 11:40:56 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=287</guid>
		<description><![CDATA[Did you ever have that feeling that something fundamental was missing from your relationship? I have been feeling this for some time, and the time has come to face the cold brutal truth.. a life of SharePoint development is just empty without Active Directory. So I have taken the first brave step in admitting this.. now what? [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=287&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Did you ever have that feeling that something fundamental was missing from your relationship? I have been feeling this for some time, and the time has come to face the cold brutal truth.. a life of SharePoint development is just empty without Active Directory.</p>
<p>So I have taken the first brave step in admitting this.. now what?</p>
<p>Back in the days of Virtual Server, it WAS possible to set up a domain controller on a virtual machine. It was also rather painful.</p>
<p>But in these days of Hyper-V, I wondered.. just how hard can it be? You will still need all your infrastructure skills for the advanced features, but for basic &#8220;Lets create domain service accounts, users and groups&#8221; it is actually pretty easy.</p>
<p>These are the steps I took:</p>
<h2><strong>First Task: Set up the Domain Controller</strong></h2>
<p><strong>Step 1:</strong> Create a &#8216;New virtual network&#8217;, and make it a Private virtual machine network</p>
<div></div>
<div><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc1.png"><img class="alignnone size-full wp-image-288" title="dc1" src="http://andrewwhitten.files.wordpress.com/2011/02/dc1.png?w=630&#038;h=590" alt="" width="630" height="590" /></a></div>
<div></div>
<div><strong>Step 2</strong>: Install Windows Server 2008 R2 Standard Edition on a new Virtual Machine.</div>
<div></div>
<div>(<em>Handy tip: Install this machine with 2GB of RAM. After installation you can crank it back down to 512MB. If you install with 512MB then be prepared to wait a awhil</em>e)</div>
<div></div>
<div><strong>Step 3</strong>: Set the network for this machine to your new private network.</div>
<div></div>
<div><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc2.png"><img class="alignnone size-full wp-image-289" title="dc2" src="http://andrewwhitten.files.wordpress.com/2011/02/dc2.png?w=630&#038;h=590" alt="" width="630" height="590" /></a></div>
<div></div>
<div><strong>Step 3:</strong> Configure the TCP/IP settings- Use the values below (<em>Static values are the way to go</em>)</div>
<div></div>
<div><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc3.png"><img class="alignnone size-full wp-image-290" title="dc3" src="http://andrewwhitten.files.wordpress.com/2011/02/dc3.png?w=630&#038;h=435" alt="" width="630" height="435" /></a></div>
<div></div>
<div>
<div><strong>Step 4</strong>: Change the name of the Computer to &#8216;DC&#8217; (<em>or actually, whatever you want.. it is YOUR domain controller after all</em>)</div>
<div></div>
<div><strong>Step 5</strong>: Add the &#8216;Active Directory Domain Services&#8221; role. (<em>I have used Andrew.com, but I&#8217;m sure you can come up with better</em>)</div>
</div>
<div></div>
<h2><strong>Second Task: Connect your SharePoint Machine to the domain</strong></h2>
<p><strong>Step 1:</strong> Add a second network adapter to your SharePoint machine. Associate this with the Internal network that your DC is sitting on.</p>
<p>(<em>Note: By having two network adapters, you can connect to the domain on the internal network and the internet on the other at the same time</em>)</p>
<p>(<em>Note 2: I seem to have installed a legacy adapter here. It seems to work fine howeve</em>r)</p>
<p>(<em>Note 3: You probably want to configure SharePoint after you connect to the domain, since you may want to use those nice domain service accounts</em>)</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc4.png"><img class="alignnone size-full wp-image-291" title="dc4" src="http://andrewwhitten.files.wordpress.com/2011/02/dc4.png?w=630&#038;h=590" alt="" width="630" height="590" /></a></p>
<p><strong>Step 2</strong>: Change the TCP/IP settings on the Internal Network to be consistent with those of the Domain Controller machine.</p>
<p>(Note: Use the same values as the screenshot)</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc5.png"><img class="alignnone size-full wp-image-292" title="dc5" src="http://andrewwhitten.files.wordpress.com/2011/02/dc5.png?w=630&#038;h=482" alt="" width="630" height="482" /></a></p>
<p><strong>Step 3</strong>: Connect your SharePoint machine to the domain.</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc6.png"><img class="alignnone size-full wp-image-293" title="dc6" src="http://andrewwhitten.files.wordpress.com/2011/02/dc6.png?w=630" alt=""   /></a></p>
<p><strong>Step 4</strong>: Create lots of test users named after characters in Battlestar Galactica</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc7.png"><img class="alignnone size-full wp-image-294" title="dc7" src="http://andrewwhitten.files.wordpress.com/2011/02/dc7.png?w=630&#038;h=285" alt="" width="630" height="285" /></a></p>
<p><strong>Step 5:</strong> Savor the thrill of adding Battlestar Galactica users into your SharePoint</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/02/dc8.png"><img class="alignnone size-full wp-image-295" title="dc8" src="http://andrewwhitten.files.wordpress.com/2011/02/dc8.png?w=630&#038;h=345" alt="" width="630" height="345" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/287/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/287/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/287/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=287&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/02/14/simple-hyper-v-test-domain-for-sharepoint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc1.png" medium="image">
			<media:title type="html">dc1</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc2.png" medium="image">
			<media:title type="html">dc2</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc3.png" medium="image">
			<media:title type="html">dc3</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc4.png" medium="image">
			<media:title type="html">dc4</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc5.png" medium="image">
			<media:title type="html">dc5</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc6.png" medium="image">
			<media:title type="html">dc6</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc7.png" medium="image">
			<media:title type="html">dc7</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/02/dc8.png" medium="image">
			<media:title type="html">dc8</media:title>
		</media:content>
	</item>
		<item>
		<title>Microsoft OneNote for iPhone (US Only)</title>
		<link>http://andrewwhitten.wordpress.com/2011/01/23/microsoft-onenote-for-iphone-us-only/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/01/23/microsoft-onenote-for-iphone-us-only/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 07:22:32 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=284</guid>
		<description><![CDATA[This news &#8216;almost&#8217; made my day, until the realization that it isn&#8217;t going to be available outside the US iTunes store anytime soon. So two issues really: A) I have locked myself into the Apple iTunes platform, and they make it difficult to publish widely B) Microsoft went to the effort to publish this, but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=284&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=410395246&amp;mt=8&amp;affId=1380330#">This news &#8216;almost&#8217; made my day</a>, until the realization that it isn&#8217;t going to be available outside the US iTunes store anytime soon.</p>
<p>So two issues really:</p>
<p>A) I have locked myself into the Apple iTunes platform, and they make it difficult to publish widely</p>
<p>B) Microsoft went to the effort to publish this, but not the extra effort to publish internationally.</p>
<p>&nbsp;</p>
<p>With regards to music, although frustrating, I understand that there is complex regional licensing around all published music and as such it isn&#8217;t always feasible to publish a new album in all regions.</p>
<p>With &#8216;Apps&#8217;, what is the big deal???</p>
<p>&nbsp;</p>
<p>I hope Microsoft learn from this and make a &#8216;Version 2.0&#8242; that utilizes the iPad and is global! I also hope we can look back on this in 10 years time and laugh at the illogical regional barriers to all content, whether it is free or paid for. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/284/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/284/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/284/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=284&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/01/23/microsoft-onenote-for-iphone-us-only/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>
	</item>
		<item>
		<title>Bing Maps Javascript Control as SharePoint Consumer Web Part</title>
		<link>http://andrewwhitten.wordpress.com/2011/01/22/bing-maps-javascript-control-as-sharepoint-consumer-web-part/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/01/22/bing-maps-javascript-control-as-sharepoint-consumer-web-part/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 10:35:22 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Bing Maps]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Mapping]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=277</guid>
		<description><![CDATA[I previously showed you how to add the Javascript flavor of Bing Maps to a SharePoint 2010 page, and consume data from a SharePoint list via the handy REST interface. However the benefits of SharePoint WebParts can be made more readily available by connecting to the List from where the data is published. The code [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=277&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I previously showed you how to add the <a href="http://andrewwhitten.wordpress.com/2011/01/03/use-bing-maps-as-a-dashboard-visualization-in-sharepoint-2010/">Javascript flavor of Bing Maps to a SharePoint 2010 page,</a> and consume data from a SharePoint list via the handy REST interface.</p>
<p>However the benefits of SharePoint WebParts can be made more readily available by connecting to the List from where the data is published.</p>
<p>The code below extends the Web Part in order to connect to the list of travel requests.</p>
<p>This works by parsing the incoming data to a JSON array that can be easially passed to the ASPX page.</p>
<p>I constructed the JSON with the <a href="http://json.codeplex.com/">Json.NET o</a>pen source library:</p>
<p><pre class="brush: plain;">

/// &lt;summary&gt;
 /// Property that will be read from the ASPX page
 /// &lt;/summary&gt;
 public string FlightRequests { get; set; }

 private IWebPartTable _provider;
 private ICollection _tableData;

 [ConnectionConsumer(&quot;Table&quot;)]
 public void SetConnectionInterface(IWebPartTable provider)
 {
 _provider = provider;

 if (_provider != null)
 {
 _provider.GetTableData(new TableCallback(GetTableData));
 }
 }

 /// &lt;summary&gt;
 /// Call back method for TableCallback
 /// &lt;/summary&gt;
 /// &lt;param name=&quot;tableData&quot;&gt;&lt;/param&gt;
 private void GetTableData(object tableData)
 {
 // Set property to value
 _tableData = (ICollection)tableData;

 if (_provider != null)
 {
 // Discover schema
 PropertyDescriptorCollection props = _provider.Schema;

 // String into which we will write our JSON
 StringBuilder sb = new StringBuilder();
 StringWriter sw = new StringWriter(sb);

 using (JsonWriter jsonWriter = new JsonTextWriter(sw))
 {
 // This is going to be one looooooong string so that Javascript can use it.
 jsonWriter.Formatting = Formatting.None;

 if (props != null &amp;&amp; props.Count &gt; 0 &amp;&amp; _tableData != null)
 {
 jsonWriter.WriteStartObject();
 jsonWriter.WritePropertyName(&quot;TravelRequests&quot;);
 jsonWriter.WriteStartArray();

 // For each travel request
 foreach (DataRowView o in _tableData)
 {
 int counter = 0;
 jsonWriter.WriteStartObject();

 // For each 'column' in the list
 foreach (PropertyDescriptor prop in props)
 {
 string propertyName = prop.DisplayName;

 // I really don't like this, but for a valid JSON string we need to strip out the ':' and spaces.
 propertyName = propertyName.Replace(':', ' ');
 propertyName = propertyName.Replace(&quot; &quot;, &quot;&quot;);

 jsonWriter.WritePropertyName(propertyName);

 if (o[counter] is String)
 {
 string value = o[counter] as String;
 // ... and the commas.. whos know what chaos may ensue?
 value = value.Replace(',', ' ');
 jsonWriter.WriteValue(value);
 }
 else
 {
 jsonWriter.WriteValue(o[counter]);
 }

 counter++;
 }

 jsonWriter.WriteEndObject();
 }

 jsonWriter.WriteEndArray();
 jsonWriter.WriteEndObject();
 }
 }

 // Finally add this JSON to our FlightRequests string property.
 FlightRequests = sb.ToString();

 }
 }

</pre></p>
<p>Then in the ASPX file, get a reference to the string:</p>
<p><pre class="brush: plain;">
 var theFlightRequests = '&lt;%= FlightRequests %&gt;';

</pre></p>
<p>and in the Javascript file, process it with the following function:</p>
<p><pre class="brush: plain;">

function SetFlightRequests() {

 var results = JSON.parse(theFlightRequests);

 $.each(results.TravelRequests, function (i, result) {

 var origin = new VELatLong(result.OriginLatitude, result.OriginLongitude);
 var originShape = new VEShape(VEShapeType.Pushpin, origin);
 originShape.SetCustomIcon(originIcon);
 map.AddShape(originShape);

 var destination = new VELatLong(result.DestinationLatitude, result.DestinationLongitude);
 var destinationShape = new VEShape(VEShapeType.Pushpin, destination);
 destinationShape.SetCustomIcon(destinationIcon);
 map.AddShape(destinationShape);

 var line = new VEShape(VEShapeType.Polyline, [origin, destination]);
 line.HideIcon();

 map.AddShape(line);
 });
}

</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/277/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/277/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/277/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=277&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/01/22/bing-maps-javascript-control-as-sharepoint-consumer-web-part/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>
	</item>
		<item>
		<title>Use Bing Maps as a Dashboard Visualization in SharePoint 2010</title>
		<link>http://andrewwhitten.wordpress.com/2011/01/03/use-bing-maps-as-a-dashboard-visualization-in-sharepoint-2010/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/01/03/use-bing-maps-as-a-dashboard-visualization-in-sharepoint-2010/#comments</comments>
		<pubDate>Mon, 03 Jan 2011 10:43:40 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Bing Maps]]></category>
		<category><![CDATA[Business Intelligence]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=260</guid>
		<description><![CDATA[In my previous two posts, I have shown how to define a SharePoint list from external data, and how to integrate a simple map into SharePoint. Now I would like to show how they can be used together in a Dashboard style visualization. My external list is a collection of Airports around the world (along [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=260&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my previous two posts, I have shown how to <a href="http://andrewwhitten.wordpress.com/2010/12/30/using-external-source-data-for-sharepoint-lists/">define a SharePoint list from external data</a>, and how to integrate<a href="http://andrewwhitten.wordpress.com/2011/01/02/bing-maps-in-my-sharepoint-it-is-more-likely-than-you-think/"> a simple map into SharePoint</a>.</p>
<p>Now I would like to show how they can be used together in a Dashboard style visualization.</p>
<p>My external list is a collection of Airports around the world (along with descriptions and geographical locations).</p>
<p>I want to create a new list that allows users to place travel requests between two airports, and then visualize those requests on a map like this:</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map6.png"><img class="alignnone size-full wp-image-262" title="map6" src="http://andrewwhitten.files.wordpress.com/2011/01/map6.png?w=630&#038;h=608" alt="" width="630" height="608" /></a></p>
<p>This SharePoint page will consist of a Map WebPart and a List.</p>
<p><strong>Step 1: </strong>Create a geographically aware list</p>
<p>I created a Travel Requests List using two columns of External Data from my external Airports List:</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map7.png"><img class="alignnone size-full wp-image-263" title="map7" src="http://andrewwhitten.files.wordpress.com/2011/01/map7.png?w=630&#038;h=193" alt="" width="630" height="193" /></a></p>
<p><strong>Step 2: </strong>Read the contents of the Travel Requests list via the REST interface</p>
<p>SharePoint 2010 has the the great facility that allows you to access list data via REST.</p>
<p>Since I am using JQuery in the Map component, this is really useful.</p>
<p>The REST interface (in my instance is<span style="text-decoration:underline;"><span style="color:#0000ff;"><em> http://winsuite2010/sites/FlightTracks/_vti_bin/listdata.svc/TravelRequests</em></span></span> )</p>
<p>Here is a fragment of my Travel Requests list:</p>
<p><pre class="brush: xml;">
&lt;pre id=&quot;line1&quot;&gt; &lt;m:properties&gt;
        &lt;d:ContentTypeID&gt;0x010013786946E27C1041A4AAE48EEB53186C&lt;/d:ContentTypeID&gt;
        &lt;d:Title&gt;PDC Conference&lt;/d:Title&gt;
        &lt;d:Approved m:type=&quot;Edm.Boolean&quot;&gt;true&lt;/d:Approved&gt;
        &lt;d:OriginCity&gt;Paris&lt;/d:OriginCity&gt;
        &lt;d:OriginCountry&gt;France&lt;/d:OriginCountry&gt;
        &lt;d:OriginName&gt;Charles De Gaulle&lt;/d:OriginName&gt;
        &lt;d:DestinationCity&gt;Los Angeles&lt;/d:DestinationCity&gt;
        &lt;d:DestinationCode&gt;LAX&lt;/d:DestinationCode&gt;
        &lt;d:DestinationCountry&gt;United States&lt;/d:DestinationCountry&gt;
        &lt;d:DestinationLatitude m:type=&quot;Edm.Double&quot;&gt;33.9425&lt;/d:DestinationLatitude&gt;
        &lt;d:DestinationLongitude m:type=&quot;Edm.Double&quot;&gt;-118.407222&lt;/d:DestinationLongitude&gt;
        &lt;d:DestinationName&gt;Los Angeles International&lt;/d:DestinationName&gt;
        &lt;d:OriginCode&gt;CDG&lt;/d:OriginCode&gt;
        &lt;d:OriginLatitude m:type=&quot;Edm.Double&quot;&gt;49.016667&lt;/d:OriginLatitude&gt;
        &lt;d:OriginLongitude m:type=&quot;Edm.Double&quot;&gt;2.55&lt;/d:OriginLongitude&gt;
        &lt;d:Id m:type=&quot;Edm.Int32&quot;&gt;3&lt;/d:Id&gt;
        &lt;d:ContentType&gt;Item&lt;/d:ContentType&gt;
        &lt;d:Modified m:type=&quot;Edm.DateTime&quot;&gt;2011-01-01T12:11:24&lt;/d:Modified&gt;
        &lt;d:Created m:type=&quot;Edm.DateTime&quot;&gt;2011-01-01T12:11:24&lt;/d:Created&gt;
        &lt;d:CreatedById m:type=&quot;Edm.Int32&quot;&gt;1&lt;/d:CreatedById&gt;
        &lt;d:ModifiedById m:type=&quot;Edm.Int32&quot;&gt;1&lt;/d:ModifiedById&gt;
        &lt;d:Owshiddenversion m:type=&quot;Edm.Int32&quot;&gt;1&lt;/d:Owshiddenversion&gt;
        &lt;d:Version&gt;1.0&lt;/d:Version&gt;
        &lt;d:Path&gt;/sites/FlightTracks/Lists/Travel Requests&lt;/d:Path&gt;
      &lt;/m:properties&gt;
&lt;/pre&gt;
</pre></p>
<p><strong>Step 3:</strong> Adapt the map rendering Javascript to display travel paths</p>
<p>Using JQuery getJSON method, we can easily call this REST service, loop through the elements and add them as geographic objects to the map.</p>
<p><pre class="brush: jscript;">

var originIcon = &quot;&lt;div class='OriginAirport'&gt;&lt;/div&gt;&quot;
var destinationIcon = &quot;&lt;div class='DestinationAirport'&gt;&lt;/div&gt;&quot;

function GetMap() {
 map = new VEMap('myMap');
 map.LoadMap(null, 1);
}

$(document).ready(function () {
 GetMap();
 GetLocations();
});

function GetLocations() {

 $.getJSON('http://winsuite2010/sites/FlightTracks/_vti_bin/listdata.svc/TravelRequests', function (data) {
 var count = 0;
 $.each(data.d.results, function (i, result) {

 var origin = new VELatLong(result.OriginLatitude, result.OriginLongitude);
 var originShape = new VEShape(VEShapeType.Pushpin, origin);
 originShape.SetCustomIcon(originIcon);
 map.AddShape(originShape);

 var destination = new VELatLong(result.DestinationLatitude, result.DestinationLongitude);
 var destinationShape = new VEShape(VEShapeType.Pushpin, destination);
 destinationShape.SetCustomIcon(destinationIcon);
 map.AddShape(destinationShape);

 var line = new VEShape(VEShapeType.Polyline, [origin, destination]);
 line.HideIcon();

 map.AddShape(line);
 });
 });
}

</pre></p>
<p><strong>Step 4:</strong> Create better icons for PushPins (<em><strong>Optional</strong></em>)</p>
<p>Add a SharePoint Mapped Folder to Template-&gt;Layouts-&gt;Styles</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map8.png"><img class="alignnone size-full wp-image-267" title="map8" src="http://andrewwhitten.files.wordpress.com/2011/01/map8.png?w=630" alt=""   /></a></p>
<p><strong>Step 5:</strong> Define Pushpin look (<em><strong>optional</strong></em>)</p>
<p>Create an empty stylesheet (CSS) file. I called mine FlightTracks.css<br />
I wanted to define the icons in CSS for the origin and destination airports. I wanted to draw circles and didn&#8217;t want to use a graphic.</p>
<p><pre class="brush: css;">
 .OriginAirport
 {
    height: 1em;
    width: 1em;
    -webkit-border-radius: 5em;
    -moz-border-radius: 5em;
    border: 0.2em solid #888943;
    background-color: #CACC7F;
    margin: auto;
 }

  .DestinationAirport
 {
    height: 1em;
    width: 1em;
    -webkit-border-radius: 5em;
    -moz-border-radius: 5em;
    border: 0.2em solid #B25900;
    background-color: #FF8000;
    margin: auto;
 }

</pre></p>
<p><strong>Step 6</strong>: Add reference to StyleSheet in in WebPart (<em><strong>Optional</strong></em>)</p>
<p>You can just add the SharePoint CssRegistration control:</p>
<p><pre class="brush: xml;">

&lt;SharePoint:CssRegistration runat=&quot;server&quot; ID=&quot;css&quot; EnableCssTheming=&quot;true&quot; Name=&quot;FlightTracks.css&quot; /&gt;

</pre></p>
<p><strong>Fun Fact: </strong>The circle effect is not supported by IE8 and below and will appear as squares. It works with IE9 as well as all major CSS 3 compliant browsers (Firefox, Chrome etc)</p>
<p><strong>Advantages of this approach:</strong></p>
<ul>
<li>Lightweight way of displaying a map and results in SharePoint</li>
<li>Works on almost every client / device</li>
</ul>
<p><strong>Disadvantages of this approach:</strong></p>
<ul>
<li>Requires Internet connection on client machine to display map</li>
<li>Internet facing sites may not want to expose the SharePoint REST service in this way</li>
<li>Map WebPart does not truly integrate with SharePoint list</li>
</ul>
<div id="_mcePaste" class="mcePaste" style="overflow:hidden;position:absolute;left:-10000px;top:2322px;width:1px;height:1px;"></p>
<p>[/sourcecode]</p>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/260/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/260/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/260/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=260&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/01/03/use-bing-maps-as-a-dashboard-visualization-in-sharepoint-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map6.png" medium="image">
			<media:title type="html">map6</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map7.png" medium="image">
			<media:title type="html">map7</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map8.png" medium="image">
			<media:title type="html">map8</media:title>
		</media:content>
	</item>
		<item>
		<title>Bing Maps in my Sharepoint? It is more likely than you think..</title>
		<link>http://andrewwhitten.wordpress.com/2011/01/02/bing-maps-in-my-sharepoint-it-is-more-likely-than-you-think/</link>
		<comments>http://andrewwhitten.wordpress.com/2011/01/02/bing-maps-in-my-sharepoint-it-is-more-likely-than-you-think/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 02:39:29 +0000</pubDate>
		<dc:creator>andrewwhitten</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint 2010]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://andrewwhitten.wordpress.com/?p=252</guid>
		<description><![CDATA[Actually, there are many mapping solutions for SharePoint, both commercial and open source. The thing I didn&#8217;t understand was why it was hard to find a &#8216;Hello World&#8216; example for a Javacript based map? Microsoft provide an interactive SDK that allows you to quickly get maps up and running in HTML. To do the same [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=252&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Actually, there are many mapping solutions for SharePoint, both commercial and open source.</p>
<p>The thing I didn&#8217;t understand was why it was hard to find a &#8216;<em>Hello World</em>&#8216; example for a Javacript based map?</p>
<p>Microsoft provide <a href="http://www.microsoft.com/maps/isdk/ajax/#">an interactive SDK</a> that allows you to quickly get maps up and running in HTML.</p>
<p>To do the same in SharePoint 2010, I will use this SDK as the basis of an example WebPart built in Visual Studio 2010.</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map1.png"><img class="alignnone size-full wp-image-253" title="map1" src="http://andrewwhitten.files.wordpress.com/2011/01/map1.png?w=630&#038;h=504" alt="" width="630" height="504" /></a></p>
<p>The main problem of integration these examples is that the Map has to be created after the page has finished loading, hence the definition of the &lt;Body onload=&#8221;"&gt; tag.</p>
<p>It is really hard to add this <em>onload </em>attribute to SharePoint since we do not have ready access to it. In addition, by hacking away at the underlying template you might break something else.</p>
<p>The solution is to not use onload, but to use JQuery&#8217;s <em>$(document).ready</em> function, that will also make a call back once the document has finished loading.</p>
<p>It does mean some extra configuration of your code however.. follow the steps below:</p>
<p><strong>Step 1</strong>: Create a SharePoint WebPart project in Visual 2010</p>
<p><strong>Step 2</strong>: Add a SharePoint Mapped Folder to your project</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map2.png"><img class="alignnone size-full wp-image-254" title="map2" src="http://andrewwhitten.files.wordpress.com/2011/01/map2.png?w=630" alt=""   /></a></p>
<p><strong>Step 3</strong>: In the following dialog, add the Templates-&gt;Layouts folder</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map3.png"><img class="alignnone size-full wp-image-255" title="map3" src="http://andrewwhitten.files.wordpress.com/2011/01/map3.png?w=630" alt=""   /></a></p>
<p>This will add a corresponding folder to your WebPart solution.</p>
<p><strong>Step 4:</strong> Create a unique folder under Layouts, and add javascript files.</p>
<p><a href="http://andrewwhitten.files.wordpress.com/2011/01/map4.png"><img class="alignnone size-full wp-image-257" title="map4" src="http://andrewwhitten.files.wordpress.com/2011/01/map4.png?w=630" alt=""   /></a></p>
<p>Create a unique folder here (I have used the name &#8216;FlightTracks&#8217;).</p>
<p>In this folder, add the JQuery javascript file. <a href="http://jquery.com/">Download from here</a>. (<em><strong>Hint</strong>: Use the development version for easy debugging</em>)</p>
<p>Then create a new empty javascript file such as &#8216;FlightTracks.js&#8217;.</p>
<p><strong>Step 5:</strong> Add content to the custom Javascript file</p>
<p><pre class="brush: jscript;">
function GetMap() {
map = new VEMap('myMap');
map.LoadMap();
}

$(document).ready(function () {
GetMap();
});
</pre></p>
<p><strong>Step 6:</strong> Add code to the UserControl&#8217;s CodeBehind file</p>
<p><pre class="brush: csharp;">
        protected void Page_Load(object sender, EventArgs e)
        {
            HtmlGenericControl bingMapsScript = new HtmlGenericControl(&quot;script&quot;);
            bingMapsScript.Attributes[&quot;type&quot;] = &quot;text/javascript&quot;;
            bingMapsScript.Attributes[&quot;src&quot;] = &quot;http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.2&quot;;

            HtmlGenericControl jQueryScript = new HtmlGenericControl(&quot;script&quot;);
            jQueryScript.Attributes[&quot;type&quot;] = &quot;text/javascript&quot;;
            jQueryScript.Attributes[&quot;src&quot;] = ResolveClientUrl(&quot;../../_LAYOUTS/FlightTracks/jquery-1.4.4.js&quot;);

            HtmlGenericControl flightTracksScript = new HtmlGenericControl(&quot;script&quot;);
            flightTracksScript.Attributes[&quot;type&quot;] = &quot;text/javascript&quot;;
            flightTracksScript.Attributes[&quot;src&quot;] = ResolveClientUrl(&quot;../../_LAYOUTS/FlightTracks/FlightTracks.js&quot;);

            HtmlGenericControl script = new HtmlGenericControl(&quot;script&quot;);
            script.Attributes[&quot;type&quot;] = &quot;text/javascript&quot;;
            script.InnerText = &quot;var map = null; &quot;;

            Page.Header.Controls.Add(bingMapsScript);
            Page.Header.Controls.Add(jQueryScript);
            Page.Header.Controls.Add(script);
            Page.Header.Controls.Add(flightTracksScript);
        }
</pre></p>
<p>Please note that if you havn&#8217;t named your Javascript folder as &#8216;FlightTracks&#8217;, then you will need to adjust here.</p>
<p><strong>Step 7:</strong> Define the HTML entry of the map</p>
<p>Bing Maps will take over a defined DIV to turn into a map. Add this line to your custom control (ascx) file:</p>
<p><pre class="brush: xml;">
&lt;div id='myMap' style=&quot;position:relative; width:600px; height:400px;&quot;&gt;&lt;/div&gt;
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/andrewwhitten.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/andrewwhitten.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/andrewwhitten.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/andrewwhitten.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/andrewwhitten.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/andrewwhitten.wordpress.com/252/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/andrewwhitten.wordpress.com/252/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/andrewwhitten.wordpress.com/252/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=andrewwhitten.wordpress.com&amp;blog=1591511&amp;post=252&amp;subd=andrewwhitten&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://andrewwhitten.wordpress.com/2011/01/02/bing-maps-in-my-sharepoint-it-is-more-likely-than-you-think/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/686d59832827ed5f913ea6d8d7f67f2a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Andy</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map1.png" medium="image">
			<media:title type="html">map1</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map2.png" medium="image">
			<media:title type="html">map2</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map3.png" medium="image">
			<media:title type="html">map3</media:title>
		</media:content>

		<media:content url="http://andrewwhitten.files.wordpress.com/2011/01/map4.png" medium="image">
			<media:title type="html">map4</media:title>
		</media:content>
	</item>
	</channel>
</rss>
