Tag Archives: microsof

Installing Windows 10 on Surface 3 with Windows To Go

I am working on a review of Surface 3, Microsoft’s recently released Atom-based tablet, and wanted to try Windows 10 on the device. How to do this though without endangering the correct functioning of my loan unit?

The ideal answer seemed to be Windows To Go (WTG), which les you run Windows from a USB drive without touching what is already installed – well, apart from a setting in control panel that enables boot from Windows to Go.


Luckily I have an approved Windows to Go USB drive, a 32GB Kingston DataTraveler Workspace. I downloaded the Windows 10 iso (64-bit, build 10074) and used the Control Panel applet on my Windows 8 desktop (which runs the Enterprise edition) to create a WTG installation.

(There are unofficial ways to get around both the requirement for Enterprise edition, and the need for an approved USB device, but I did not have to go there).

Next, I plugged the drive into the Surface 3 and restarted. Windows 10 came up immediately. An interesting feature was that I was prompted to sign into Office 365, rather than with a Microsoft account. It all seemed to work, though Device Manager showed many missing drivers.


The wifi driver must have been one of them, since I had no network.

I had anticipated this problem by downloaded the surface 3 drivers from here. These were inaccessible though, since a WTG installation by default has no access to the hard drive on the host PC. I could not plug in a second USB device with the drivers on it either, since there is only one USB port on the Surface 3.

No matter, you can mount the local drives using the Windows Disk Management utility. I did that, and ran the Surface 3 Platform Installer which I had downloaded earlier. It seemed to install lots of drivers, and I was then prompted to restart.

Bad news. When trying to restart, boot failed with an “inaccessible boot device” error.

Fool that I am, I tried this operation again with a small variation. I rebuilt the WTG drive, and instead of mounting the drives on the host, I used it first on another PC, where the wifi worked straight away. I copied the Surface 3 files to the WTG drive C, then booted it on the Surface 3. Ran the Surface 3 Platform Installer, restarted, same problem “Inaccessible boot device”.

The third time, I did not run the Surface 3 Platform Installer. Instead, I installed the drivers one by one by right-clicking on the Unknown Devices in Device Manager and navigating to the Surface 3 drivers files I had downloaded using another PC. That looks better.


I restarted, and everything still worked. I have wifi, Bluetooth, audio, cameras and everything. So something the Platform Installer tries to do breaks WTG on my device.

The next question is whether the system will update OK when set to Fast for the Windows 10 bleeding edge. So far though, so good.

Note: there is an issue with power management. If the Surface 3 sleeps, then it seems to wake up back in Windows 8 if you leave it long enough. Not too much harm done though; restart and you are back in Windows 10.

Note 2: new builds will not install on WTG, they complain about an unsupported UEFI layout

Microsoft open sources further ASP.NET Frameworks, publishes code with Git

Microsoft has released two further ASP.NET frameworks as open source, joining ASP.NET MVC which was already open source. These are published on CodePlex, Microsoft’s open source repository site, using the newly added Git support. You can find the code here.

The two additional frameworks are ASP.NET Web API and ASP.NET Web Pages. Just to recap, ASP.NET supports several frameworks:

ASP.NET Web Forms: the original framework shipped with .NET 1.0 and greatly enhanced since then. Excellent for quickly assembling a dynamic web site but somewhat heavyweight with its ViewState field and complex page lifecycle. Designed in pre-Ajax days.

ASP.NET MVC: A more elegant framework with separation of content from code, amenable to test-driven development, based on controllers and routing.

ASP.NET Web Pages formerly known as Razor: An alternative view engine designed to work with ASP.NET MVC. Uses .cshtml or .vbhtml extension in place of .aspx. A declarative language with codewords like @foreach and @if – though Microsoft’s Scott Guthrie says it is not a language but rather a template markup syntax.

ASP.NET Web API: formerly known as WCF Web API is a framework for building REST services. A key framework if you have a cloud + mobile target in mind. Now gets installed with ASP.NET MVC.

So why is ASP.NET Web Forms not open source? According to Microsoft’s Scott Hanselman:

The components that are being open sourced at this time are all components that are shipped independently of the core .NET framework, which means no OS components take dependencies on them. Web Forms is a part of System.Web.dll which parts of the Windows Server platform take a dependency on. Because of this dependency this code can’t easily be replaced with newer versions expect when updates to the .NET framework or the OS ships.

though it is not clear why this prevents the code being published.

Hanselman adds that Microsoft is not only publishing the code, but also taking contributions:

Today we continue to push forward and now ASP.NET MVC, Web API, Web Pages will take contributions from the community.

Why is Microsoft doing this? Within Microsoft, there have always seemed to be open source advocates like Hanselman, and others who pull back. One answer is that the open source folk are winning more arguments now.

Another take is that this is the outcome of industry-wide changes. Microsoft’s platform is less dominant than it was; it still reigns on the desktop, but Macs, tablets and smartphones are eroding its position on the client, and on the web Netcraft’s figures show steady decline since June 2010:


Most of the competition is open source and it is possible that this is a factor behind the latest moves. Microsoft is not open sourcing its IIS web server yet, though Hanselman does make the point that ASP.NET MVC runs well on Mono, the open source implementation of the .NET Framework, which is often used with Apache.