Tag Archives: windows 8

Death of the Start Screen Exagerated

It seems like the online media is foaming at the mouth about Windows 8.1 Update 1 supposedly making the move to boot by default to the desktop. The first article I came across was by Steven J. Vaughan-Nichols over at Computerworld followed by an article at Mary Jo Foley over at ZDNet (who gives the topic a much more balanced treatment).

Where Mary Jo Foley stops at reporting the news, Steven’s opinion piece is vitriolic which is typical of his previous articles. I mentioned to one of my co-workers the other day that I was disappointed in the state of tech journalism these days. Alas, there is only so much news to go around which means that content ends up being rehashed – so the only way to stand out is to write an opinion piece, the more bitter the better.

With that out-of-the-way, I have to acknowledge that where there is smoke, there is fire. So what about the rumour that Windows 8.1 Update 1 will boot straight to the desktop. If the rumour is true it is worth stepping back and thinking practically how this might work.

When Microsoft introduced Windows 8.x, the Start Screen didn’t replace the desktop. Rather the Start Screen replaced the Start Menu. The Desktop was always there in the background, it was just as if immediately after login that the Start button had been pressed and a full screen start menu was being displayed.

I suspect that Microsoft might ideally want to just boot to the desktop by default for devices that don’t have a touch first experience (desktop PCs and laptops) leaving touch first devices to boot to the Windows 8-style Start Screen. This would give users balance the best possible experience on their particular devices form-factor.

Some of the press has pointed out that if you boot to the desktop, then how will users know to launch metro-style apps? Well, remember that the Start Screen did not replace the Desktop, it replaced the Start Menu. So when a user presses the start button on the desktop (or on their keyboard) the Start Screen would still be displayed. If this continues to be the case then metro apps would still be discoverable in a desktop environment.

As Mary Jo Foley pointed out, leaked screenshots of the Windows 8.1 Update 1 UX reveal that users will be able pin metro-apps to the start menu. This means that users could quickly switch between legacy desktop apps and modern apps. I suspect that Microsoft has more plans for blending the metro and desktop environments.

I speculate that in a future release (not necessarily Windows 8.1 Update 1) we’ll see metro apps being able to run in floating windows on the desktop along with API support to make apps intelligently respond to this environmental change. Windows Runtime (or WinRT) is the underlying platform for modern metro applications, but that doesn’t mean that you can’t produce a UI in it that is more optimal for a mouse/keyboard user.

The second change we MIGHT see is a Start Menu / Start Screen hybrid. So far the best concept of how this might work I have seen is this start menu/screen transition video which was posted recently (and received great reviews).

What this video hints at is that the theme for phone, tablet and PC operating systems moving forward is convergence. Microsoft has pretty much confirmed this to be the case for Windows and Windows Phone, but I suspect this will also happen with OSX/iOS. Google is an interesting case because they have two quite different approaches to apps in Android and Chrome OS.

For Windows the key ingredient to convergence is Windows Runtime. Not only does Windows Runtime expose the UI building capabilities, but it also surfaces other OS features, file system, networking, sensors etc. WinRT modernizes key aspects of the existing Windows API (in Win32) in a way that is suitable for desktop, tablet and phone.

In summary, I don’t think that booting to the desktop on desktop-style devices spells the end for either metro, or the Windows 8-style start screen. Rather I think it’s just a continued fine-tuning of the user experience to support as broader range as users as possible. Indeed this kind of UX spread is a necessary feature of a single operating system running on a multitude of devices.

Presenting on VS2013 and Windows 8.1 in Brisbane.

I’m up in Brisbane for a week at the moment and on Monday the 28th I am giving two presentations back to back on What’s new in VS2013, and a separate session on improvements in Windows 8.1 for Enterprise Applications. We’ve got quite a few registrations at the moment and I’m not sure what the cut-off is but if you would like to come along and check out the latest improvements in VS2013, and get a handle on how you might using Windows 8.1 in your business then register here.

I’ll be around for a little while after the event so if you want to discuss some app ideas or whiteboard anything then I’ll be available.

DNS Limitations in Windows Runtime

Lately I’ve been looking at line-of-business applications for Windows 8.x and how you would go about deploying such applications in the real world. When you build a line-of-business application in-house you can often get away with doing things like hard coding service URLs, but if you are building software that is going to redistributed to multiple customers or even on the Windows Store you need to figure out how your application is going to “discover” where the services are located.

The simple and obvious approach is for the application, upon starting to ask the user for a server name to connect to, but in enterprise environments this information is often opaque to the end-user. Further, once this information “gets out” it can be notoriously hard to retrain users to enter some other value if the network topology changes.

DNS Support in Windows Runtime

Discovering service endpoints is a common challenge. For example, when you set-up e-mail in many mobile devices an automated discovery process is undertaken which involves querying DNS for addresses such as “autodiscover.mycompany.com” when you tell the mail client that your e-mail is “someone@mycompany.com”.

The Domain Name System actually has a mechanism to support discovery of services associated with a domain name via the use of SRV records. An SRV record is a DNS record which combines a service name, protocol, domain and target address to tell a program (via a DNS resolver) which endpoint it should connect to. Many technologies and/or products such as Active Directory and Lync rely on this mechanism.

Getting back to Windows 8.x, I was investigating the best way to enable an service address discovery mechanism which followed this basic process:

  1. On initial start-up of application, ask user for their e-mail address.
  2. Use the domain part of the e-mail address to initiate an SRV record lookup (DNS)
  3. Use the target address from the SRV to connect to service address.

Unfortunately, Windows Runtime doesn’t expose a good mechanism to do this, and the .NET API subset exposed to Windows Runtime doesn’t contain the classes that you might have used to do this in a traditional desktop application. There is some suggestion that you can use the DatagramSocket class to do SRV record lookups for UDP endpoints, but my scenario is for TCP connections.

Workaround

Without the ability to execute sophisticated DNS queries from modern applications in Windows 8.x the only thing that you can do from a discovery point of view is abandon using SRV records and use an “autodiscover” mechanism similar to the way that Microsoft Outlook uses to find the mail server based on the e-mail address.

This process would look something like the following:

  1. On initial start-up of application, ask user for their e-mail address.
  2. Use the domain part of the e-mail address and prefix with a unique string (e..g myappdiscover.mycompany.com).
  3. Send a request to this endpoint to download configuration data which can be used to locate service endpoints.
  4. If this fails fallback to ask for detailed configuration information.

As it happens I believe that Microsoft has already encountered this problem. If you’ve used Lync, you’ll know that there are two different Lync clients for Windows. The standard desktop Lync client, and the modern version of the Lync client. The modern Lync client relies on a mechanism similar to the above (lyncdiscover.mycompany.com), whereas the desktop client can make use of the SRV records to discover the location of the server.

The “autodiscover” or “lyncdiscover” approach for Exchange or Lync respectively rely on a CNAME record being present in the DNS and a server available at that address to respond to the discovery requests. This would be largely unnecessary if the platform supported querying SRV records.

You might be tempted to look at implementing your own DNS client using the sockets API in Windows Runtime. Of course this would take some time to implement correctly, but more than that, you need to be able to discover the address of your assigned DNS server, which from what I can tell is not exposed to modern applications via Windows Runtime.

Installing Windows 8.1 Preview on the Acer Iconia W3-810 from scratch!

I was lucky enough for my employer to send me to BUILD 2013 this year (videos on Channel 9). The major topics for the event were Windows 8.1, Windows Azure and improvements in the development platform and tooling coming with Visual Studio 2013.

Of course, nobody does giveaways like Microsoft (and their partners). Each attendee that was at the conference received two free tablet PCs. The first is an Acer Iconia W3-810 and the second was a Surface Pro. As you can imagine the attendees were all pretty excited to pick up their goodies at the end of day one.

The devices came pre-loaded with Windows 8, and we had a USB stick that we could use to load up Windows 8.1 preview to give it a spin on the new hardware. That was exactly what I did that night back at the hotel and I can say that I am pretty happy with the progress that has been made with Windows 8.1 since Windows 8 was shipped. I’m now running Windows 8.1 on all of my devices and its working great.

Nothing Like a Fresh Install

One of my long established hang-ups about new hardware is that I like to go through the process of installing Windows on a blank drive, removing all of the cruft that comes out of the box from the hardware vendor. You’ll often hear people referring to this as bloatware.

I’ve done this regularly with almost all of my devices, except the W3-810 (and Surface Pro) which I simply did an in-place upgrade on. This weekend I decided it was time to go through the ritual. Boy did I regret it!

The Acer Iconia W3-810 is very new hardware for the Windows platform. Whilst it ships with Windows 8 pre-installed, the engineers at Acer would have pre-loaded the image with all the drivers necessary to make Windows 8 work. I had no such conveniences when doing a fresh install of Windows 8.1 from the MSDN ISO image.

The first challenge you have to over come is kicking off the installation. The way that I did this was hold down the power and start menu on boot to get into the diagnostic menus for Windows 8. I then navigated my way through the advanced settings and launched a command-line. When Windows is running out of this mode it appears to be operating out of a RAM disk, so I plugged in the USB key that had Windows 8.1 on it and ran setup. I stepped through the process and deleted the partitions on the local machine and then triggered the install of Windows 8.1 itself.

All was going fine until it rebooted and I discovered that neither the WiFi or the touch-screen had in-box driver support. So I pulled out the USB key that I used to install the operating system and plugged in a USB keyboard (the bluetooth keyboard that came with the device was no good at this point either). I used the keyboard to navigate through the personalisation prompts whilst I started downloading the drivers for the device from Acer’s web-site.

The next challenge was how do I get the device drivers onto the tablet with no network, and only one USB port currently being used by the keyboard (note, I didn’t have a USB hub handy). In the end I wrote a simple little batch script and kicked it off which copied all the files from a particular directory on the USB stick to a local directory and then looped around and did it again. I yanked the keyboard out, plugged the USB stick in and bingo, the driver files copied across to the local disk on the tablet.

Next I plugged in the USB keyboard again and triggered the installation of the drivers. There are three driver packages that come with the device. One is a big “other” drivers package which basically contains all the Intel drivers which make up the bulk of the hardware in the device. The remaining two are for Wireless LAN and Bluetooth.

The Intel drivers went on without a hitch and I noticed almost all the unidentified hardware on the device was detected sans the Bluetooth and WiFi adapters of course (Broadcom devices both). When I tried to install the WiFi driver it didn’t work. The driver package has a simple “install.bat” file which if you double click on results on plenty of activity on the screen before disappearing.

In the end I opened up a command-prompt window and ran install.bat and saw the nature of my error. Basically the command prompt needed to run elevated to install. I did so and suddenly the WiFi driver kicked into action.

One of the issues that I noticed after installing the large Intel driver package was that any of the modern user experience elements in Windows 8.1 were showing blocked out text (like the CIA had redacted Windows or something :P). That is a sure hint that video drivers are a problem so I flicked over the the desktop Windows Update screen and triggered a download of all the drivers/updates (one of which was an Intel Graphics driver). After this update everything was working as expected, except the Bluetooth driver which I then installed.

Phew! I managed to go from nothing working to a clean tablet!

Some Lessons for PC Vendors and Microsoft

One of the great things about the Windows eco-system is that of choice. When you choose to run Windows, you can choose which hardware you want to run it on and it comes in a variety of form factors with a multitude of different features.

However, all of these features aren’t worth anything if you load the base image for the PC up with loads of junk that is either truly useless, or just gets in the road of the native experience. As long as vendors keep doing that, people like me are going to continue to tear down the machine and reload a vanilla version of the operating system.

I can accept that if I am going to do that then I’m choosing to inflict some pain on myself, but at a minimum a tablet PC should have the following in-box driver support:

  1. Keyboard / Mouse
  2. Touch Screen
  3. Wireless LAN
  4. Video

Even if it is just rudimentary support out of the box with a subsequent Windows Update delivery to get it all up to the latest drivers. My installation experience would have been dramatically simpler if I had just had WiFi support.

I hope that moving forward Microsoft continues to put pressure on vendors not to mutilate the installation of Windows, and provide improved in-box driver support. After installation, detected hardware can have updated drivers delivered via an improved Windows Update experience which might (if we are lucky) lead to more Windows Store apps being installed which interact with those drivers through the app/driver bundling methods included in Windows.

Finally, I should say that the Acer Iconia W3-810 is a really nice device – thanks to Microsoft and Acer for giving them away at BUILD 2013. I’ve got a Google Nexus 7″ and it effectively replaces that for me.

Upcoming Talks at DDD Melbourne and TechEd Australia

For those of you who are interested in catching up, I’m going to be attending DDD Melbourne (20th July 2013) and TechEd Australia (3rd-6th September 2013) this year. Looking forward to catching up with folks.

At DDD Melbourne I’m going to be delivering a hands-on workshop on Windows 8 Apps for Business, and at TechEd Australia I’ll be delivering two sessions. One on Windows 8 Application Architecture for Enterprises, and another on Adding PowerShell Support to Enterprise Applications.

The DDD Melbourne Windows 8 talk and the TechEd Australia talk will be similar in content but delivered slightly differently where the DDD talk will be hands on (and the TechEd talk will be up on stage). I’m particular passionate about the PowerShell talk because although I think that IT pros have now embraced PowerShell, we can do more as software developers to make the solutions we produce more manageable, which is an important piece in the overall DevOps story.

Anyway – see you at DDD Melbourne and TechEd Australia!

Windows 8 Tablets in Queensland Schools

I’ve read two articles (Australian, ZDNet) today mentioning a rather large deal between the Queensland Education, Acer and presumably Microsoft around the deployment of Acer Iconia W701 tablets to students within schools. This news is of interest to me because although I now live in Victoria, I grew up in Queensland and actually worked for the Department of Education there as a teachers aide (focused on IT administration/network support).

This deployment is significant because I think it is fair to say that Apple has quite a bit of the mind share around deployment of hardware into the hands of kids. This deployment of Windows 8 onto convertible tablet devices shifts the deal significantly towards Microsoft’s offering.

After a quick search, I found this PDF file on the department’s web-site which outlines some setup instructions for students which lists the pre-installed software (predominantly desktop app focused). One of the interesting things that I picked up was that they have deployed “SCCM” or System Centre Configuration Manager. This is a piece of agent software that the department can use to manage the fleet of devices. In particular this could be used to push out native Windows 8 applications when the devices connect back to the education network.

I hope that the department is strongly considering the deployment of native Windows 8 applications which take advantage of the impressive hardware that they are deploying.

One of the obvious applications that needs to be constructed is a native application which acts as “folio” for homework where files can not only be saved, but also shared with the teacher for marking. In fact this could be integrated with the report card processes. Further, I think that major eBook vendors with existing native offerings should consider updating their software so that it can “connect” to an educational account where student textbooks can be distributed in electronic form. There are literally hundreds of awesome things that could be done here to help students.

At Readify I’ve been doing a lot of work recently on approaches for designing and building Windows 8 applications for use inside organisations. The same design principles for internal line-of-business applications applies to software that will be used by students and teachers. Personally I am excited by what kinds of applications we could bulid that target students, teachers and even parents which help the educational process not to mention the side effect of technical literacy.

Back when I was a teachers aide there was some concern that technology like this would be unevenly distributed, and whilst that is a concern I don’t think that should stop Australian schools pushing forward with technology deployments like this. The future of this country depends on the quality of our education system and the ability for these kids to participate in an advanced technology society with intelligent use of our natural resources. Right now Australia has the edge in that this technology is within reach, but if we don’t invest when we have the opportunity the only place we’ll go is backwards.

Hats off to the Department of Education in Queensland. I hope that this is the beginning of a sustained deployment of assisting technology to support our students and educators.

Touted Demise of Windows RT and Marketing Lessons for Microsoft

I read an article this morning on The Motley Fool about a consumer electronics trade show in  Taipei. The headline “Does This Mean Microsoft Windows RT is Dead?”.

I won’t comment on whether devices running the “RT Edition” of Windows 8 are going disappear based on the presence of new devices at a trade show. But the headline did stand out for me because it is an example of the confusion caused when you “borrow” a technical term and slap it onto the end of a product name.

In this specific case Windows RT actually means two things. First, to me as a developer Windows RT means Windows Runtime, an API layer inside introduced in Windows 8 and Windows Phone 8 and is the basis for modern applications.

On the other hand, if you aren’t a developer and you are more focused on “products” and “devices”, the term Windows RT might identify a lower power device running a special build of Windows 8 which introduces some limitations for these lower powered machines.

The problem is when the journalists go around saying “Windows RT” is dead, IT managers who might not know about the lower level details of the Windows 8 platform might start to disregard the proposition that they might like to build a Windows 8 application that targets the Windows Runtime (Windows RT).

Confused? Yep, so are most folks and this is why MIcrosoft needs to be very careful about tacking the RT suffix on products like the Microsoft Surface RT and Office RT. They might accidentally build the impression that the underlying runtime itself is going away if indeed the industry is moving back towards an Intel centric architecture. I think Microsoft should drop the RT moniker all together on their OS, Office and devices (including partner devices) and come up with some other suffix. Leave WinRT to the developers.

Some might say it is unlikely that ARM processors running Windows will disappear, but the X86 and X64 architectures have proven incredibly resilient in the face of other architectures (ia64, ARM etc). One exception might be in the Windows Phone space where you really do have some heavy power conservation requirements and the expectations are considerably lower than that of a PC or a tablet device.

My gut feel is that Windows RT (the runtime, or the device class) aren’t going away any time soon, and it is certainly too premature to say that based on what you are seeing at this years trade shows. What is far more relevant is what we see announced at BUILD 2013 this year in terms of Windows and Windows Phone platform convergence.

The big question I have is will the rumoured “phablet” devices run a Windows Phone-like build of Windows RT, or a Windows-like build of Windows RT. Based on some of the projects I am seeing at the moment I am hoping that a phablet is running something derived from the current Windows 8 generation of platforms. The Windows Phone UX is great for small surface areas but I don’t think it will scale well up to a phablet size.