<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Note to self - a blog by Lucas Canavan</title><link>http://blogs.msdn.com/b/lucascan/</link><description>Ramblings of a .NET web developer, IT generalist and advocate of the Windows Azure cloud platform</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Storing database connection strings for Azure cloud services (including encypting the connection strings)</title><link>http://blogs.msdn.com/b/lucascan/archive/2012/10/26/storing-database-connection-strings-for-azure-cloud-services-including-encypting-the-connection-strings.aspx</link><pubDate>Fri, 26 Oct 2012 08:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10362984</guid><dc:creator>lucascanavan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=10362984</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2012/10/26/storing-database-connection-strings-for-azure-cloud-services-including-encypting-the-connection-strings.aspx#comments</comments><description>&lt;div&gt;As my Surface didn't arrive on launch day, I had nothing better to do on a Friday night so here&amp;rsquo;s a&amp;nbsp;blog post on Azure configuration settings.&lt;/div&gt;
&lt;div&gt;Prior to Azure, web.config was the place ASP.NET devs would store settings.&amp;nbsp; However, as you should consider web.config read-only in Azure, you should use the Azure .cscfg instead IF you&amp;rsquo;ll ever want to change the settings without a re-deployment.&lt;/div&gt;
&lt;div&gt;For most Azure work I&amp;rsquo;ve done, I&amp;rsquo;ve used something like:&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;ASP.NET web.config&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;connectionStrings&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;lt;add name="DBConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True;Persist Security Info=False;MultipleActiveResultSets=True" /&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;/connectionStrings&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Azure .cscfg&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;ConfigurationSettings&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;lt;Setting name="DBConnection" value="Server=tcp:xxxxxxxx.database.windows.net,1433;Database=xxxxxxxx;User ID=xxxxxxxx@xxxxxxxx;Password=xxxxxxxx;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True" /&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;/ConfigurationSettings&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;// Default to reading from ASP.NET web.config.&lt;/div&gt;
&lt;div&gt;string dbConnection = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;&lt;/div&gt;
&lt;div&gt;// If running in Azure.&lt;/div&gt;
&lt;div&gt;if (RoleEnvironment.IsAvailable)&lt;/div&gt;
&lt;div&gt;{&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Read from Azure .cscfg instead.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbConnection = RoleEnvironment.GetConfigurationSettingValue("DBConnection");&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;However, due to a requirement to encrypt db connection strings on a recent project, I&amp;rsquo;ve done the following instead:&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;ASP.NET web.config&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;Store both connection strings in web.config.&lt;/div&gt;
&lt;div&gt;&amp;lt;connectionStrings&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;add name="DBConnection" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=tdirect3;Integrated Security=True;Persist Security Info=False;MultipleActiveResultSets=True" /&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;add name="DBConnectionAzure" providerName="System.Data.SqlClient" connectionString="Server=tcp:xxxxxxxx.database.windows.net,1433;Database=xxxxxxxx;User ID=xxxxxxxx@xxxxxxxx;Password=xxxxxxxx;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True" /&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;/connectionStrings&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Azure .cscfg&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;Storing the &amp;ldquo;key&amp;rdquo; to the desired web.config setting in the Azure .cscfg.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&amp;lt;ConfigurationSettings&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;Setting name="DBConnection" value="DBConnectionAzure" /&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;/ConfigurationSettings&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Code&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;// Default to the &amp;ldquo;key&amp;rdquo; for the ASP.NET connection string setting I want when not running in Azure.&lt;/div&gt;
&lt;div&gt;string dbConnectionRef = "DBConnection";&lt;/div&gt;
&lt;div&gt;// If running in Azure.&lt;/div&gt;
&lt;div&gt;if (RoleEnvironment.IsAvailable)&lt;/div&gt;
&lt;div&gt;{&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Use the key for the ASP.NET connection string setting I want when running in Azure.&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dbConnectionRef = RoleEnvironment.GetConfigurationSettingValue("DBConnection");&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt;string dbConnection = ConfigurationManager.ConnectionStrings[dbConnectionRef].ConnectionString;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Azure .csdef&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;WebRole&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;lt;Startup&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Task commandLine="Startup.cmd" executionContext="elevated" /&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp; &amp;lt;/Startup&amp;gt;&lt;/div&gt;
&lt;div&gt;&amp;lt;/WebRole&amp;gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;Azure Startup.cmd&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;REM *** Encrypt the web.config connectionStrings element.&amp;nbsp; More info: &lt;a href="http://msdn.microsoft.com/en-us/library/dtkwfdky(v=vs.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/dtkwfdky(v=vs.100).aspx&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"&lt;/div&gt;
&lt;div&gt;%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -pef "connectionStrings" "e:\approot"&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;The MSDN link above includes an example of what the ASP.NET web.config looks like when deployed to Azure with the encrypted connection strings.&lt;/strong&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10362984" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/ASP-NET/">ASP.NET</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/SQL/">SQL</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Azure/">Azure</category></item><item><title>Powershell script to re-install Nuget packages</title><link>http://blogs.msdn.com/b/lucascan/archive/2011/11/24/powershell-script-to-re-install-nuget-packages.aspx</link><pubDate>Thu, 24 Nov 2011 05:23:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10241180</guid><dc:creator>lucascanavan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=10241180</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2011/11/24/powershell-script-to-re-install-nuget-packages.aspx#comments</comments><description>&lt;p&gt;Here's a simple Powershell script I wrote to re-install the Nuget packages that are associated with the current Visual Studio solution.&lt;/p&gt;
&lt;p&gt;In case you're wondering why you might want to do this, I often create backups of code that I'm working on.&amp;nbsp; I&amp;nbsp;deliberately exclude the "packages" folder from the backup so I keep the backup file size as small as possible.&amp;nbsp; For what it's worth, I typically exclude the "bin" and "obj" folders too.&amp;nbsp; Anyway, if I need to refer to one of my backups, I wanted a way to easily re-build the packages folder.&amp;nbsp; As the packages.config file IS included in my backups, I can easily re-install the relevant packages via the following Powershell script executed from the &lt;a href="http://nuget.org" target="_blank"&gt;Nuget&lt;/a&gt; Package Manager Console.&amp;nbsp; For example:&lt;/p&gt;
&lt;p&gt;PM&amp;gt; .\Install-Packages.ps1&lt;/p&gt;
&lt;p&gt;Where "Install-Packages.ps1" contains the following code and is in the same folder as my Visual Studio solution (.sln) file:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;$projects = Get-Project -All&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;foreach($proj in $projects)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;$projName = $proj.Name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;Write-Host "Processing project $projName..."&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;$path = Join-Path (Split-Path $proj.FileName) packages.config&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;if(Test-Path $path)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;Write-Host "Processing $path..."&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;$xml = [xml]$packages = Get-Content $path&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;foreach($package in $packages.packages.package)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;$id = $package.id&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Write-Host "Installing package $id..."&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Install-Package -Id $id -Version $package.version&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new,courier;"&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;A possible improvement would be to wrap the above code in a Powershell function and include that unction in my Nuget profile as discussed in&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: arial,helvetica,sans-serif;"&gt;&lt;a href="http://docs.nuget.org/docs/start-here/Using-the-Package-Manager-Console#Setting_up_a_NuGet_Powershell_Profile" target="_blank"&gt;Setting up a NuGet Powershell Profile&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10241180" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Nuget/">Nuget</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Powershell/">Powershell</category></item><item><title>Using a Windows Azure startup script to prevent your site from being shutdown</title><link>http://blogs.msdn.com/b/lucascan/archive/2011/09/30/using-a-windows-azure-startup-script-to-prevent-your-site-from-being-shutdown.aspx</link><pubDate>Fri, 30 Sep 2011 08:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10218488</guid><dc:creator>lucascanavan</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=10218488</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2011/09/30/using-a-windows-azure-startup-script-to-prevent-your-site-from-being-shutdown.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Did you know that, by default, IIS will shutdown your site upon the following events?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;a) After being idle for 20 minutes.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;b) Every 29 hours (due to recycling).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first vistor to your site after one of these events will encounter a poor user experience (slow response) whilst a new IIS app pool is initialised.&amp;nbsp; Note, this IIS behaviour is "inherited" by Azure so read on if you're hosting your site on Azure and care about a consistant user experience.&lt;/p&gt;
&lt;p&gt;To prevent this behaviour you can't just go into the IIS manager and make the necessary amendments to the default configuration when your site is hosted on Azure.&amp;nbsp; &lt;strong&gt;Any configuration changes you make in a remote desktop session to your Azure instance(s) will get lost when the Azure fabric controller recycles your instances.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The solution is to make the necessary IIS configuration changes via an Azure statup script as follows:&lt;/p&gt;
&lt;p&gt;1) Startup script - add a startup script (batch file) to your web role project.&amp;nbsp; I like to store mine in \Startup\Startup.cmd.&lt;/p&gt;
&lt;p&gt;REM *** Prevent the IIS app pools from shutting down due to being idle.&lt;br /&gt;%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00&lt;/p&gt;
&lt;p&gt;REM *** Prevent IIS app pool recycles from recycling on the default schedule of 1740 minutes (29 hours).&lt;br /&gt;%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.recycling.periodicRestart.time:00:00:00&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;*** GOTCHA 1 of 2 - Make sure your startup script is ANSI (not UTF-8) encoded.&amp;nbsp; I've found good ol' "Visual Notepad" is the best way to achieve this task.&amp;nbsp; However, I believe Visual Studio has an equivilent&amp;nbsp;File...Save As option also.&lt;br /&gt;*** GOTCHA&amp;nbsp;2 of 2 - Make sure you select "Copy Always" as the&amp;nbsp;"Copy to Output Directory" option in the properties for your startup script file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2) ServiceDefinition.csdef -&amp;nbsp;merge the "Startup" element highlighted below into your ServiceDefinition.csdef.&lt;/p&gt;
&lt;p&gt;&amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;&amp;lt;ServiceDefinition name="MyWindowsAzureProject" xmlns="&lt;a href="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"&gt;http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition&lt;/a&gt;"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;WebRole name="MyWebRole" vmsize="Small"&amp;gt;&lt;br /&gt;&amp;nbsp;...&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Startup&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Task commandLine="Startup\Startup.cmd" executionContext="elevated" /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #ffff00;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Startup&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/WebRole&amp;gt;&lt;br /&gt;&amp;lt;/ServiceDefinition&amp;gt;&lt;/p&gt;
&lt;p&gt;Startup scripts run from "f:\approot" on your Azure instances so bear that in mind if you're using relative folder references.&amp;nbsp; Personally, I like to make&amp;nbsp;any path referencing as explicit as possible.&lt;/p&gt;
&lt;p&gt;Startup scripts are the recommended way to make any pre-requisite installations and/or configuration changes that might be needed by your application.&amp;nbsp; Mastering startup scripts&amp;nbsp;is essential to performing more complex deployments to Azure.&amp;nbsp; Whilst it might take a little more effort that the "old way", I'm confident that you'll appreciate the many benefits of the Platform As A Service (PaaS) approach employed by Azure so the additional, incremental effort, is well worth it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10218488" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/ASP-NET/">ASP.NET</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/IIS/">IIS</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Azure/">Azure</category></item><item><title>My SharePoint 2010 developer machine build post</title><link>http://blogs.msdn.com/b/lucascan/archive/2010/07/09/yet-another-sharepoint-2010-developer-machine-build-post.aspx</link><pubDate>Fri, 09 Jul 2010 10:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10036325</guid><dc:creator>lucascanavan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=10036325</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2010/07/09/yet-another-sharepoint-2010-developer-machine-build-post.aspx#comments</comments><description>&lt;p&gt;I've built&amp;nbsp;a few&amp;nbsp;machines for &lt;strong&gt;SharePoint 2010 development&lt;/strong&gt; lately so I thought I'd make a note of my key learnings for my future benefit and, hopefully, the benefit of others also. &lt;/p&gt;
&lt;p&gt;Note, the following comments are only appropriate to a DEVELOPMENT environment.&amp;nbsp; PRODUCTION environments should follow &lt;a target="_blank" href="http://technet.microsoft.com/en-au/library/ff608031.aspx"&gt;deployment documentation on Technet&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Firstly, some assumptions:&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You really need at least 4Gb of RAM (preferrably more).&amp;nbsp; Even the &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/ee554869.aspx"&gt;official documentation&lt;/a&gt; acknowledges this.&lt;/li&gt;
&lt;li&gt;I prefer to keep my development environments as close as possible to production and for that reason I develop on Server 2008 R2.&lt;/li&gt;
&lt;li&gt;I'm building a development machine for full SharePoint Server 2010 not the free SharePoint Foundation 2010.&lt;/li&gt;
&lt;li&gt;I'd prefer a "complete" install rather than "stand-alone" install for a variety of reasons including I want full SQL not SQL Express.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;FAQs.&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;1) Physical or virtual?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Virtual is more flexible if you have enough RAM (ie 6Gb minimum for single VM approach).&amp;nbsp; Personally, due to the limitation of 4Gb of my laptop I've gone with physical using a .VHD native boot approach as disccussed in &lt;a target="_blank" href="http://blogs.msdn.com/b/lucascan/archive/2009/05/23/building-a-win7-2008-r2-box-that-boots-off-vhd-s.aspx"&gt;this post&lt;/a&gt;.&amp;nbsp; However, there are reasons why this work-around isn't desirable is discussed in &lt;a target="_parent" href="http://tristanwatkins.com/?p=885"&gt;this post&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2) If I choose virtual, 1, 2 or 3 servers?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;3 is great if you've got enough RAM as you can keep AD, SQL and SharePoint all on seperate physical tiers just as I know you would in a production deployment.&amp;nbsp; However, you'll need 8Gb RAM to get a 3 server approach running well.&amp;nbsp; Many developers prefer to go with a single VM so they don't have to boot multiple VMs.&amp;nbsp; 2 VMs is a possible comprimise (ie AD &amp;amp; SQL on same box).&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3) I heard I can do a complete installation on a single server using non-domain accounts?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;It's possible and documented at &lt;a target="_blank" href="http://sharepoint.microsoft.com/blogs/fromthefield/Lists/Posts/Post.aspx?ID=112"&gt;this post&lt;/a&gt;.&amp;nbsp; However, there are reasons why this work-around isn't desirable some of which are discussed in &lt;a target="_parent" href="http://tristanwatkins.com/?p=885"&gt;this post&lt;/a&gt;. &lt;/p&gt;
&lt;h2&gt;My Installation Checklist&lt;/h2&gt;
&lt;p&gt;1) Install 2008 R2. If you go physical, resolve any driver issues as you normally would..&lt;/p&gt;
&lt;p&gt;2) Add "Active Directory Domain Services" role.&lt;br /&gt;&amp;nbsp;- Run dcpromo.exe, new forest, 2008 R2 functional level.&lt;br /&gt;&amp;nbsp;- Install DNS.&lt;/p&gt;
&lt;p&gt;3) SQL 2008 R2&lt;br /&gt;&amp;nbsp;- Database Engine Services&lt;br /&gt;&amp;nbsp;- Full-Text Search&lt;br /&gt;&amp;nbsp;- Managent Tools (Basic &amp;amp; Complete)&lt;br /&gt;&amp;nbsp;- Use the same service account, system.&lt;br /&gt;&amp;nbsp;- FILESTREAM - enable for both Transact-SQL &amp;amp; file I/O&lt;/p&gt;
&lt;p&gt;&amp;nbsp;4) SharePoint Server 2010&lt;br /&gt;&amp;nbsp;- PrerequisiteInstaller.exe then setup.exe.&lt;br /&gt;&amp;nbsp;- Choose to run the configuration wizard.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Create a new server farm.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Create a domain user and use it for the db access account.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Central admin onto a known port eg 9999.&lt;br /&gt;&amp;nbsp;- Central admin farm config wizard&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Use the existing managed account.&lt;/p&gt;
&lt;p&gt;5) Office 2010&lt;br /&gt;&amp;nbsp;- Don't need Access &amp;amp; Publisher&lt;/p&gt;
&lt;p&gt;6) SharePoint Designer 2010&lt;/p&gt;
&lt;p&gt;7) Visual Studio 2010&lt;br /&gt;&amp;nbsp;- Custom install, uncheck:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - VB. C++. f#&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Graphics library&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - Dotfuscator&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; - SQL Express&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10036325" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/SharePoint/">SharePoint</category></item><item><title>Azure ASP.NET to SQL Hello World! on the Introductory offer</title><link>http://blogs.msdn.com/b/lucascan/archive/2010/06/05/azure-asp-net-to-sql-hello-world-on-the-introductory-offer.aspx</link><pubDate>Sat, 05 Jun 2010 11:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10020385</guid><dc:creator>lucascanavan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=10020385</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2010/06/05/azure-asp-net-to-sql-hello-world-on-the-introductory-offer.aspx#comments</comments><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;&amp;ldquo;Inspired&amp;rdquo; by a pub discussion with a mate last night, I finally got around to doing a &amp;ldquo;hello world&amp;rdquo; ASP.NET-&amp;gt;SQL sample on Azure today.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Unfortunately, I couldn&amp;rsquo;t leave it up as I don&amp;rsquo;t want it to start accruing charges.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;However, I included a screen capture of it running below!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri; font-size: small;"&gt;I set it up under the &amp;ldquo;free&amp;rdquo; &lt;/span&gt;&lt;a href="http://www.microsoft.com/WindowsAzure/offers/popup.aspx?lang=en&amp;amp;locale=en-US&amp;amp;offer=COMPARE_PUBLIC"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;Introductory Special&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt; that is available to the general public.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;The most limited "free"&amp;nbsp;resource under the intro offer is the 25 hours.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; Note, &lt;/span&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-au/subscriptions/ee461076.aspx"&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;The intro offer available to MSDN subscribers&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt; is much more generous.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Key findings from my investigation:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;I needed to provide my credit card even for the &amp;ldquo;free&amp;rdquo; intro.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;I needed to delete the app to prevent it using up my hours.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Stopping it isn&amp;rsquo;t good enough.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;Fortunately, you can keep the URL when you delete the app as long as you don&amp;rsquo;t delete the service.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;The db will start accruing charges if you leave it there beyond 3 months provided by the intro.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;You can&amp;rsquo;t stop a db but you can drop it or the entire server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Calibri;"&gt;&lt;span style="font-size: small;"&gt;Generating a SQL Azure compatible script to create a typical app db was easy (Tasks-&amp;gt;Generate Scripts).&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;However, you do need the SQL R2 version of SQL Management Studio.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraph"&gt;&lt;span style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol;"&gt;&lt;span style="mso-list: Ignore;"&gt;&lt;span style="font-size: small;"&gt;&amp;middot;&lt;/span&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Calibri;"&gt;Here&amp;rsquo;s an example ASP.NET web.config db connection string:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;span style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: Consolas; color: #a31515; font-size: 9.5pt;"&gt;add&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt; &lt;/span&gt;&lt;span style="font-family: Consolas; color: red; font-size: 9.5pt;"&gt;name&lt;/span&gt;&lt;span style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;=&lt;/span&gt;&lt;span style="font-family: Consolas; font-size: 9.5pt;"&gt;"&lt;span style="color: blue;"&gt;MyDB&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;connectionString&lt;/span&gt;&lt;span style="color: blue;"&gt;=&lt;/span&gt;"&lt;span style="color: blue;"&gt;Server=tcp:&lt;i style="mso-bidi-font-style: normal;"&gt;your_server&lt;/i&gt;.database.windows.net;Database=&lt;i style="mso-bidi-font-style: normal;"&gt;your_db&lt;/i&gt;;User ID=&lt;i style="mso-bidi-font-style: normal;"&gt;your_user@your_server&lt;/i&gt;;Password=&lt;i style="mso-bidi-font-style: normal;"&gt;your_password&lt;/i&gt;;Trusted_Connection=False;Encrypt=True;&lt;/span&gt;"&lt;span style="color: blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;o:p&gt;&lt;span style="font-family: Calibri; font-size: small;"&gt;&amp;nbsp;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-89-51/6505.AzureTest.png" border="0" /&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10020385" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/ASP-NET/">ASP.NET</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/SQL/">SQL</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Azure/">Azure</category></item><item><title>Interesting freely available content from recent web conference</title><link>http://blogs.msdn.com/b/lucascan/archive/2010/04/04/interesting-freely-available-content-from-recent-web-conference.aspx</link><pubDate>Sun, 04 Apr 2010 06:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9990225</guid><dc:creator>lucascanavan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=9990225</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2010/04/04/interesting-freely-available-content-from-recent-web-conference.aspx#comments</comments><description>&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Thought I’d share that I noticed that the videos from the sessions at MIX10 are freely available at:&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;A href="http://live.visitmix.com/Videos"&gt;&lt;FONT size=3 face=Calibri&gt;http://live.visitmix.com/Videos&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;For those unfamiliar with MIX10, it’s a “conference for web designers and developers building the world's most innovative web sites”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I’m planning to incorporate watching some of these videos into my ongoing training plan.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The session on Orchard is particularly of interest, “&lt;SPAN style="COLOR: #525e50; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;the Orchard project is focused on delivering a .NET-based CMS application that will allow users to rapidly create content-driven Websites, and an extensibility framework that will allow developers and customizers to provide additional functionality through extensions and themes”&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="COLOR: #525e50; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-ansi-language: EN-AU; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.orchardproject.net/"&gt;http://www.orchardproject.net/&lt;/A&gt;&lt;/SPAN&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9990225" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/ASP-NET/">ASP.NET</category></item><item><title>SharePoint Application Page Button Click Not Working After First Click</title><link>http://blogs.msdn.com/b/lucascan/archive/2010/04/03/sharepoint-application-page-button-click-not-working-after-first-click.aspx</link><pubDate>Sat, 03 Apr 2010 02:41:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9989904</guid><dc:creator>lucascanavan</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=9989904</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2010/04/03/sharepoint-application-page-button-click-not-working-after-first-click.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;I was recently working on a SharePoint &lt;A href="http://msdn.microsoft.com/en-us/library/bb418732.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb418732.aspx"&gt;Application Page&lt;/A&gt; and encountered an issue whereby button clicks were only working for the first click.&amp;nbsp; The second and subsequent clicks weren't working.&lt;/P&gt;
&lt;P mce_keep="true"&gt;The issue appears to be due to SharePoint interfering with the JavaScript that is necessary to process an ASP.NET post-back.&amp;nbsp; Anyway, adding an OnClientClick attribute as illustrated in the following example resolved the issue for me.&amp;nbsp; I hope this helps you to overcome this issue if you happen to encounter it also!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;lt;asp:Button ID="btnMybutton" runat="server" OnClick="btnMybutton_OnClick" Text="Button" &lt;SPAN style="FONT-SIZE: 20px; FONT-WEIGHT: bold"&gt;OnClientClick="_spFormOnSubmitCalled = false;"&lt;/SPAN&gt; /&amp;gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9989904" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/SharePoint/">SharePoint</category></item><item><title>Skip buttons weren't working after installing Win7 RC</title><link>http://blogs.msdn.com/b/lucascan/archive/2009/05/23/skip-buttons-weren-t-working-after-installing-win7-rc.aspx</link><pubDate>Sat, 23 May 2009 08:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9636780</guid><dc:creator>lucascanavan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=9636780</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2009/05/23/skip-buttons-weren-t-working-after-installing-win7-rc.aspx#comments</comments><description>&lt;P&gt;After installing Win7 RC on my production Media Center box (ie the box I literally can't watch TV without) I noticed an annoying problem.&lt;/P&gt;
&lt;P&gt;The skip forward &amp;amp; back buttons didn't work!&lt;/P&gt;
&lt;P&gt;At first I feared the issue was&amp;nbsp;an intended "by design" change.&amp;nbsp; After all, I'm sure&amp;nbsp;the commercial TV networks don't like us skipping over their ads.&amp;nbsp; Fortunately, it seems&amp;nbsp;it's a compatibility&amp;nbsp;issue between Win7 RC and my IR receiver (in case, Zalman HD160, IRTrans).&lt;/P&gt;
&lt;P&gt;The solution:&lt;/P&gt;
&lt;P&gt;Map the IR codes to the keyboard equivalents for the skip buttons via the following changes in %ProgramFiles%\IRTrans\remotes\apps.cfg.&lt;/P&gt;
&lt;P&gt;[APP]MEDIACENTER&lt;/P&gt;
&lt;P&gt;NEXT [KEY]\CTRLF&lt;BR&gt;PREV [KEY]\CTRLB&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9636780" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Troubleshooting/">Troubleshooting</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Windows7/">Windows7</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Media+Center/">Media Center</category></item><item><title>Building a Win7/2008 R2 box that boots off .vhd's</title><link>http://blogs.msdn.com/b/lucascan/archive/2009/05/23/building-a-win7-2008-r2-box-that-boots-off-vhd-s.aspx</link><pubDate>Sat, 23 May 2009 08:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9636737</guid><dc:creator>lucascanavan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=9636737</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2009/05/23/building-a-win7-2008-r2-box-that-boots-off-vhd-s.aspx#comments</comments><description>&lt;P&gt;A&amp;nbsp;cool new feature in Windows7 &amp;amp; Server 2008 R2 is the ability to&amp;nbsp;boot from a .vhd file!&lt;/P&gt;
&lt;P&gt;Having your OS isolated to a .vhd file has a number of advantages including but not limited to:&lt;BR&gt;- easier to backup, &lt;BR&gt;- multi-boot scenarios that are more isolated from each other,&lt;BR&gt;- ability to trial new builds on your physical hardware without trashing your existing installation.&lt;/P&gt;
&lt;P&gt;Whilst there's a variety of ways that boot from .vhd can be achieved, here's the steps I've used.&amp;nbsp; Note, I deliberately tried to avoid the installation GUI by doing part of the install via the WinPE command line.&amp;nbsp; It's possible to automate the remainer of the installation process via an unattend.xml file.&amp;nbsp; However, that's a potential topic for a future blog post.&lt;/P&gt;
&lt;P&gt;1) Install the Windows AIK.&lt;/P&gt;
&lt;P&gt;Windows® Automated Installation Kit (AIK) for Windows® 7 RC&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=60a07e71-0acb-453a-8035-d30ead27ef72" mce_href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=60a07e71-0acb-453a-8035-d30ead27ef72"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=60a07e71-0acb-453a-8035-d30ead27ef72&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;2) Create bootable WinPE media (DVD or USB key) and include imagex.exe from the AIK on it.&lt;/P&gt;
&lt;P&gt;Windows PE Walkthroughs&lt;BR&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd799278(WS.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/dd799278(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/dd799278(WS.10).aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;3) (optional) Include the install.wim from your desired Windows installation media on your WinPE media.&amp;nbsp; Alternatively, I suppose you can always refer to the original installatiom media instead.&lt;/P&gt;
&lt;P&gt;4) Boot off your WinPE media then run the following DISKPART commands (possible to script this via DISKPART /s)&lt;/P&gt;
&lt;P&gt;select disk 0&lt;BR&gt;clean&lt;BR&gt;create partition primary size=100&lt;BR&gt;format quick fs=ntfs label=System&lt;BR&gt;assign letter=s&lt;BR&gt;active&lt;BR&gt;create partition primary&lt;BR&gt;format quick fs=ntfs label=Data&lt;BR&gt;assign letter=d&lt;BR&gt;create vdisk file=d:\win7rc.vhd type=fixed maximum=10240&lt;BR&gt;attach vdisk&lt;BR&gt;select disk 1&lt;BR&gt;create partition primary&lt;BR&gt;format quick fs=ntfs label=OS&lt;BR&gt;assign letter=c&lt;BR&gt;exit&lt;/P&gt;
&lt;P&gt;5) Extract the Windows image to your .vhd and copy the necessary boot file to your system partition.&lt;/P&gt;
&lt;P&gt;imagex /apply w7rc_x86.wim 5 c:&lt;BR&gt;bcdboot c:\windows /s s:&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;*** START OF UPDATE 7-Aug-2009 ***&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3 face=Calibri&gt;You *might*&amp;nbsp;need the following also.&amp;nbsp; I don't recall doing this when I originally posted this however I needed this in a recent attempt.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3 face=Calibri&gt;bcdedit /store &lt;I&gt;drive:&lt;/I&gt;\boot\bcd /set {guid} device vhd=[locate]\win7rc.vhd&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;bcdedit /store &lt;I&gt;drive:&lt;/I&gt;\boot\bcd /set {guid} osdevice vhd=[locate]\win7rc.vhd&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;Where &lt;I&gt;drive:&lt;/I&gt; is the system partition.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;*** END OF UPDATE 7-Aug-2009 ***&amp;nbsp;&lt;/P&gt;
&lt;P&gt;exit&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your system will reboot and proceed with installation.&amp;nbsp; For those that are keen to automate the remainder of the installation, here's a link to the relevant info:&lt;/P&gt;
&lt;P&gt;Step-by-Step: Basic Windows Deployment for IT Professionals&lt;BR&gt;&lt;A href="http://technet.microsoft.com/en-us/library/dd349348(WS.10).aspx" mce_href="http://technet.microsoft.com/en-us/library/dd349348(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/dd349348(WS.10).aspx&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9636737" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Windows7/">Windows7</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Virtualization/">Virtualization</category></item><item><title>SQL updates failing on WSS Developer VM</title><link>http://blogs.msdn.com/b/lucascan/archive/2009/05/16/sql-updates-failing-on-wss-developer-vm.aspx</link><pubDate>Sat, 16 May 2009 00:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9619929</guid><dc:creator>lucascanavan</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/lucascan/rsscomments.aspx?WeblogPostID=9619929</wfw:commentRss><comments>http://blogs.msdn.com/b/lucascan/archive/2009/05/16/sql-updates-failing-on-wss-developer-vm.aspx#comments</comments><description>&lt;p&gt;I noticed SQL updates (KB960089 but also SQL SP3) were failing to apply on the WSS Developer VM.&lt;/p&gt;
&lt;p&gt;After many hours of frustration, I located this great blog post that helped me to overcome the issue:&amp;nbsp; &lt;br /&gt;&lt;a href="http://blogs.msdn.com/sqlserverfaq/archive/2009/01/30/part-1-sql-server-2005-patch-fails-to-install-with-an-error-unable-to-install-windows-installer-msp-file.aspx"&gt;http://blogs.msdn.com/sqlserverfaq/archive/2009/01/30/part-1-sql-server-2005-patch-fails-to-install-with-an-error-unable-to-install-windows-installer-msp-file.aspx&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In my case, the missing .msi's were from SQL Developer edition.&amp;nbsp; The missing .msp's were from SQL SP2 &amp;amp; KB948109.&lt;/p&gt;
&lt;p&gt;Here's the download location for SQL KB948109:&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/7/c/7/7c7e394d-ddbf-4f2a-9e86-cf054e04931d/SQLServer2005-KB948109-x86-ENU.exe"&gt;http://download.microsoft.com/download/7/c/7/7c7e394d-ddbf-4f2a-9e86-cf054e04931d/SQLServer2005-KB948109-x86-ENU.exe&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Windows SharePoint Services 3.0 SP1 Developer Evaluation VPC Image&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=1beeac6f-2ea1-4769-9948-74a74bd604fa"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=1beeac6f-2ea1-4769-9948-74a74bd604fa&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9619929" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/Troubleshooting/">Troubleshooting</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/SharePoint/">SharePoint</category><category domain="http://blogs.msdn.com/b/lucascan/archive/tags/SQL/">SQL</category></item></channel></rss>