Category Archives: microsoft

Platform churn? If it is in Windows 8, we are committed to it says Microsoft

I interviewed Corporate VP of Microsoft’s developer division Soma Somasegar at the Visual Studio 2012 launch last week; see the article on the Register here. I asked about the inconsistency of the Microsoft platform, and the way the platform story has changed over the years (Win32, .NET, WPF, Silverlight and now Windows Runtime). Can developers trust in the longevity of today’s platform, especially on the client?

Here is what I thought was interesting about his reply:

Any technology you see shipping as part of Windows 8, we are very committed to that.

So what ships in Windows 8? Well, for reasons which are hard to discern for those of us outside Microsoft, Silverlight is not shipped in Windows 8. It is an optional download. In fact, the only plug-in installed by default is Adobe Flash:

image

No, that does not imply that Microsoft is committed to Flash; but it does suggest lack of commitment to Silverlight, which we knew.

What you do get though is .NET Framework 4.5. This is baked in and cannot be removed as far as I can tell, though you can add and remove some advanced features.

This means you also have Windows Presentation Foundation (WPF); and in fact Somasegar specifically refers to this alongside Win32 and the new Windows Runtime.

The inclusion of technology in a current Microsoft product has implications for its support lifecycle. The ancient Visual Basic runtime, for example, is still assured of a long life since it is part of Office 2013.

image

My guess is that Microsoft’s thinking goes something like this. Right now, as the October launch date of Windows 8 approaches, what Microsoft needs most urgently is a viable ecosystem for its new Windows Runtime environment. This, you will notice, is the focus of the forthcoming BUILD conference as so far announced.

image

What, though, of the Windows desktop, has Microsoft abandoned it as legacy? My guess is that we will get deliberately mixed messaging on the subject. On the one hand, Microsoft has relegated the desktop to a single tile in the new Start screen. On the other hand, most of us will spend most of our time in the desktop, not least developers who need it to run Visual Studio. If Microsoft succeeds in establishing the new Windows Runtime platform, it would not surprise me to see a little more love given to the desktop in, say, Windows 9.

Microsoft’s platform story is messy, without question, and especially so in mobile. We have seen Windows Mobile replaced by the incompatible Windows Phone 7, and now those loyal developers who invested in the Silverlight/XNA Windows Phone 7 technologies are finding that it is all change again in Windows Phone 8 and Windows 8 (though the exact details await the release of the Windows Phone SDK).

It seems clear though that the company’s current intent is that Windows Runtime evolves as the primary client platform for both phone and tablet, while desktop remains for legacy support and for applications that do not fit the new model, such as Visual Studio and (for the time being) Office.

What if Microsoft fails to establish the Windows Runtime as a popular app platform? All I can add is that I know of no Plan B.

Information Density in Metro, sorry Windows Store apps

Regular readers will recall that I wrote a simple blog reader for Windows 8, or rather adapted Microsoft’s sample. The details are here.

This is a Windows Store app – a description I am trying to get used to after being assured by Microsoft developer division Corp VP Soma Somasegar that this really is what we should call them – though my topic is really the design style, which used to be called Metro but is now, hmm, Windows Store app design style?

No matter, the subject that caught my attention is that typical Windows Store apps have low information density. This seems to be partly due to Microsoft’s design guidelines and samples, and partly due to the default controls which are so boldly drawn and widely spaced that you end up with little information to view.

Part of the rationale is to make touch targets easy to hit with fat fingers, but it seems to go beyond that. We should bear in mind that Windows Store apps will also be used on screens that lack touch input.

I am writing this on a Windows 8 box with a 1920 x 1080 display. Here is my blog reader, which displays a mere 7 items in the list of posts:

image

This was based on Microsoft’s sample, and the font sizes and spacing come from there. I had a poke around, and after a certain amount of effort figuring out which values to change in the list’s item template, came up with a slightly denser list which manages to show 14 items in the list. The items are still easily large enough to tap with confidence.

image

Games aside though, I am noticing that other Windows Store apps also have low information density. Tweetro, for example, a Twitter client, shows only 11 tweets to view on my large display.

The densest display I can find quickly is in Wordament, which is a game but a text-centric one:

image

I have noticed this low information density issue less with iPad apps. Two reasons. One is that iOS does not push you in the same way towards such extremely large-looking apps. The other is that you only run iOS on either iPhone or iPad, not on large desktop displays.

Is Windows 8 pushing developers too far towards apps with low information density, or has Microsoft got it right? It is true that developers historically have often tried to push too much information onto single screens, while designers mitigate this with more white space and better layouts. I wonder though whether Windows 8 store apps have swung too far in the opposite direction.

When will Blend, Microsoft’s Visual Studio design tool, be done? Not for a while says Soma Somasegar

During the Visual Studio 2012 launch last week I took the opportunity to ask Developer division Corp VP Soma Somasegar when Blend, Microsoft’s design tool for Visual Studio 2012, will be finished. A tricky question to answer, since there are multiple versions, as explained here:

  • Blend for Windows Store apps (HTML or XAML) is fully released and available as part of Visual Studio 2012

    image

  • Blend for WPF and Silverlight is in preview. For production you are meant to use the old Blend 4, unless you are targeting Silverlight 5 where you have no choice but to use the preview version.
  • Blend for Windows Phone is part of the Windows Phone SDK 7.1

The SketchFlow prototyping tool is also part of the preview Blend.

So when will Blend for Visual Studio 2012 be done? Somasegar refers to HBlend, which is the HTML version, and XBlend, which is for XAML.

“We shipped HBlend, and we shipped a preview of XBlend. It will take several months to finish. We also want to continue adding to HBlend. So I can’t tell you that Blend is ever going to be done [laughs],” he told me.

That said, the full Blend for Visual Studio 2012 will come out of preview sometime. Will it coincide with the first update for Visual Studio, announced for later this year?

“It is going to be later than the update, but I don’t have a specific timeframe,” he said.

Personally I have mixed (ha!) feelings about Blend. On the one hand, it is obvious that the simple designer in the Visual Studio IDE is insufficient, and that the rich Blend tool is needed, for those who can make sense of its intricate user interface. On the other hand, the designer aspect of Microsoft’s tooling seems to me messy, with too many versions of Blend and overlap between Blend and Visual Studio which gives developers a difficult choice: do I work with Blend, or stay within the simpler but more limited IDE tools?

Visual Studio 2012 launch: focus on Modern Apps

Microsoft is holding a launch event in Seattle for Visual Studio 2012, attended by selected Microsoft-platform developers as well as press from around the world.

image

Corporate VP Soma Somasegar kicked off the keynote, saying that Visual Studio 2012 has already been downloaded 600,000 times since its release to the web around one month ago – a take-up, he said, which exceeds previous versions.

image

But what is Visual Studio 2012 all about? It’s for Modern Apps, said Somasegar, though you would be wrong to imagine that this means a Windows 8 formerly-known-as-Metro app. Rather, a Modern App implies continuous services and multiple client devices, connected over both public and private networks. In other words, think mobile as well as desktop, public and private cloud, and bring your own device as well as corporate desktops.

Fair enough, but it is all a bit vague and still leaves us wondering what exactly apps for the Windows Runtime are called at Microsoft. Visual Studio calls them Windows Store apps, which does not make complete sense when you consider that you can deploy the apps without going through the Store, and that the Store can include desktop apps although these are links rather than direct downloads.

Visual Studio 2012 is a vast and impressive product though. Developers were shown various new features, including asynchronous development for maintaining a responsive user interface, pixel-level debugging in DirectX, after the fact debugging using Intellitrace, and new HTML and CSS support in the editor, with error highlighting that adapts to the specified version of HTML.

There was a quick demonstration of developing for Kinect, in which we saw an avatar mimic the movements of VP Jason Zander.

image

Technical Fellow Brian Harry spent some time showing off application lifecycle features in Team Foundation Server, including improved Scrum support and an emphasis on agile concepts like whole team development (the development team is not just developers).

There were a couple of announcements, including news of an update in preparation for Visual Studio 2012 which will include new features. There will be a preview later this month and delivery by the end of 2012.

Visual Studio Express for the desktop has now shipped and is available for download. This supports development in C#, Visual Basic and C++, so there is now a free C++ compiler available for Windows desktop development in the Visual Studio 2012 family.

I spoke to a couple of the invited developers after the morning event. Visual Studio 2012 looks good, they told me, but then again what choice is there for Windows platform development? That said, they had expected a stronger push for Windows 8 development, especially on the Metro-style side. Why did Microsoft not spend more time evangelising Windows 8 app development and the Windows Store? Of course there is a lot to cover but given how critical app momentum is to the success of the new Windows, it struck me as a valid point.

SharpDX: Managed DirectX for Metro from the community

One of the disappointments in Microsoft’s new Windows Runtime platform is lack of support for XNA, a gaming/fast graphics API which wraps DirectX and is supported on Windows, Windows Phone and on Xbox 360.

Developer Alexandre Mutel has stepped up to fill the gap with the open source SharpDX, which also provides access to the DirectX API from C#, supports both desktop and Windows Runtime development. One of the first games to use SharpDX, ARMED, has already arrived in the Windows Store.

image

In addition, Mutel says “it will certainly be possible to use ShardDX from Windows Phone 8”.

SharpDX was made possible by a custom tool called SharpGen which generates the .NET API automatically from the DirectX SDK.

The puzzle is why Microsoft did not make more effort to support XNA in Windows 8, or failing that to provide an alternative for .NET developers.

If you want to use SharpDX, be prepared for considerable effort learning the API, as there is little documentation so far. Still, it will likely be easier than learning C++, which is the official solution for DirectX on the Windows Runtime.

Adobe’s Roy Fielding patches Apache to ignore IE10 Do Not Track privacy request

Adobe’s Roy Fielding, who is also the original author of the W3C’s Tracking Preference Expression draft, has patched Apache, the open source web server, to ignore the Do Not Track header sent by Microsoft’s Internet Explorer 10, the browser in Windows 8:

image

Under the heading “Apache does not tolerate deliberate abuse of open standards,” Fielding’s patch sets Apache to remove the Do Not Track request header if IE10 is the web browser.

Fielding’s argument, one presumes, is that IE10 breaches clause three in the Tracking Preference Expression draft:

Key to that notion of expression is that it must reflect the user’s preference, not the choice of some vendor, institution, or network-imposed mechanism outside the user’s control. The basic principle is that a tracking preference expression is only transmitted when it reflects a deliberate choice by the user. In the absence of user choice, there is no tracking preference expressed.

However the document goes on to say (highlighting is mine):

We do not specify how tracking preference choices are offered to the user or how the preference is enabled: each implementation is responsible for determining the user experience by which a tracking preference is enabled. For example, a user might select a check-box in their user agent’s configuration, install an extension or add-on that is specifically designed to add a tracking preference expression, or make a choice for privacy that then implicitly includes a tracking preference (e.g., Privacy settings: high). The user-agent might ask the user for their preference during startup, perhaps on first use or after an update adds the tracking protection feature. Likewise, a user might install or configure a proxy to add the expression to their own outgoing requests.

Here is what happens in Windows 8 after startup. This is among the first screens you see when installing Windows 8, before you get full access to the operating system:

image

One of the settings specified is “Turn on Do Not Track in Internet Explorer. If you click Learn more about express settings you get this:

image

If you click Customize you get this:

image

Does this respect the user’s preference? It seems to me a reasonable effort. The only objection I can see is if you consider that any user agent that defaults to setting Do Not Track on cannot be respecting the user’s preference. The draft specification does not state what the default should be.

It is also worth noting that clause 3 in the Tracking Preference Expression draft has changed; the wording about “not the choice of some vendor” was inserted in the 7th September draft, after Windows 8 was released to manufacturing. Here it is in the latest (March 2012) W3C Working draft:

Key to that notion of expression is that it must reflect the user’s preference, not the preference of some institutional or network-imposed mechanism…

Even if you agree with Fielding’s views on browser defaults, quietly patching the world’s most used web server to ignore the IE10 setting looks hard to defend, especially on a matter that is far from clear cut. Fielding is personally involved, not only as the author of the Tracking Preference Expression document, but also as an employee of Adobe, which specialises in digital marketing and may be more aligned with the vendors and their brands which may want to track user activity wherever their ads appear, rather than with end users.

Of course Apache is an open source project and Fielding’s patch has attracted the attention of the Apache community and may not survive.

It is also possible that a future draft of the Tracking Preference Expression document will state that Do Not Track must be off by default; but even if it does, patching the web server to ignore the browser’s header strikes me as a contentious solution.

Finally, it is worth noting that sending the Do Not Track header has little effect on whether or not your activity is tracked, since its meaning is unclear and respecting its value is a a choice made by third-parties, so this is a debate with little practical impact for the time being.

Microsoft’s Hyper-V Server 2012: too painful to use?

A user over on the technet forums says that the free standalone Hyper-V is too painful to use:

I was excited about the free stand-alone version and decided to try it out.  I downloaded the Hyper-V 2012 RC standalone version and installed it.  This thing is a trainwreck!  There is not a chance in hell that anyone will ever use this thing in scenarios like mine.  It obviously intended to be used by IT Geniuses in a domain only.  I would really like a version that I can up and running in less than half an hour like esxi.  How the heck is anyone going to evaluate it this in a reasonable manner? 

To be clear, this is about the free Hyper-V Server, which is essentially Server Core with only the Hyper-V role available. It is not about Hyper-V in general as a feature of Windows Server and Windows 8.

Personally I think the standalone Hyper-V Server is a fantastic offering; but at the same time I see this user’s point. If you join the Hyper-V server to a Windows domain and use the administration tools in Windows 8 everything is fine; but if you are, say, a Mac user and download Hyper-V Server to have a look, it is not obvious what to do next. As it turns out you can get started just by typing powershell at a command prompt and then New-VM, but how would you know that? Further, if Hyper-V is not joined to a domain you will have permission issues trying to manage it remotely.

Install Hyper-V Server, and the screen you see after logging on does not even mention virtualization.

image

By contrast, with VMWare’s free ESXi has a web UI that works from any machine on the network and lets you get started creating and managing VMs. It is less capable than Hyper-V Server; but for getting up and running quickly in a non-domain environment it wins easily.

I have been working with Hyper-V Server 2012 myself recently, upgrading two servers on my own network which run a bunch of servers for development and test. From my perspective the free Hyper-V Server, which is essentially Server Core with only the Hyper-V role available, is a great offer from Microsoft, though I am still scratching my head over how to interpret the information (or lack of it) on the new product page, which refers to the download as a trial. I am pretty sure it is still offered on similar terms to those outlined for Hyper-V Server 2008 R2 by Program Manager Jeff Woolsey, who is clear that it is a free offering:

  • Up to 8 processors
  • Up to 64 logical processors
  • Up to 1TB RAM
  • Up to 64GB RAM per VM

These specifications may have been improved for Hyper-V Server 2012; or perhaps reduced; or perhaps Microsoft really is making it a trial. It is all rather unclear, though I would guess we will get more details soon.

It is worth noting that if you do have a Windows domain and a Windows 8 client, Hyper-V Server is delightfully easy to use, especially with the newly released Remote Server Administration Tools that now work fine with Windows 8 RTM, even though at the time of writing the download page still says Release Preview. You can use Server Manager as well as Hyper-V Manager, giving immediate access to events, services and performance data, plus a bunch of useful features on a right-click menu:

image

In addition, File and Storage services are installed by default, which I presume means you can use Storage Spaces with Hyper-V Server, which could be handy for hosting VMs with dynamically expanding virtual hard drives. Technically you could also use it as a file server, but I presume that would breach the license.

For working with VMs themselves of course you have the Hyper-V Manager which is a great tool and not difficult to use.

image

The question then: with all the work that has gone into these nice GUI tools, why does Microsoft throw out Hyper-V Server with so little help that a potential customer calls it “too painful to use”?

Normally the idea of free editions is to entice customers into upgrading to a paid-for version. That is certainly VMWare’s strategy, but Hyper-V seems to be different. It is actually good enough on its own that for many users it will be a long time before there is any need to upgrade. Microsoft’s hope, presumably, is that you will run Windows Server instances in those Hyper-V VMs, and these of course do need licenses. If you buy Windows 8 to run the GUI tools, that is another sale for Microsoft. In fact, the paid-for Windows Server 2012 can easily work out cheaper than the free editions, if you need a lot of server licenses, since they come with an allowance of licenses for virtual instances of Windows Server. Hyper-V Server is only really free if you run free software, such as Linux, in the VMs.

Personally I like Hyper-V Server for another reason. Its restricted features mean that there is no temptation to run other stuff on the host, and that in itself is an advantage.

Upgrading to Hyper-V Server 2012

After discovering that in-place upgrade of Windows Hyper-V Server 2008 R2 to the 2012 version is not possible, I set about the tedious task of exporting all the VMs from a Hyper-V Server box, installing Hyper-V Server 2012, and re-importing.

There are many reasons to upgrade, not least the irritation of being unable to manage the VMs from Windows 8. Hyper-V Manager in Windows 8 only works with Windows 8/Server 2012 VMs. It does seem to work the other way round: Hyper-V Manager in Windows 7 recognises the Server 2012 VMs successfully, though of course new features are not exposed.

The export and import has worked smoothly. A couple of observations:

1. Before exporting, it pays to set the MAC address of virtual network cards to static:

image

The advantage is that the operating system will recognise it as the same NIC after the import.

2. Remove any snapshots before the export. In one case I had a machine with a snapshot and the import required me to delete the saved state.

3. After installing Hyper-V 2012, don’t forget to check the date, time and time zone and adjust if necessary. You can do this from the sconfig menu.

4. The import dialog has a new option, called Restore:

image

What is the difference between Register and Restore? Do not bother pressing F1, it will not tell you. Instead, check Ben Armstrong’s post here. If you choose Register, the VM will be activated where it is; not what you want if you mistakenly ran Import against a VM exported to a portable drive, for example. Restore on the other hand presents options in a further step for you to move the files to another location.

5. For some reason I got a remote procedure call failed message in Hyper-V Manager after importing a Linux VM, but then when I refreshed the console found that the import had succeeded.

6. Don’t forget to upgrade the integration services. Connect to the server using the Hyper-V Manager, then choose Insert Integration Services Setup Disk from the Action menu.

image

Cosmetically the new Hyper-V Server looks almost identical to the old: you log in and see two command prompts, one empty and one running the SConfig administration menu.

Check the Hyper-V settings though and you see all the new settings, such as Enable Replication, Virtual SAN Manager, single-root IO virtualization (SR-IOV), extension support in a virtual switch, Live Migrations and Storage Migrations, and more.

No in-place upgrade for Hyper-V Server 2012

Microsoft’s free Hyper-V Server is a great bargain though I am beginning to think the company is pulling back on the idea. It is there for download; but the home page makes no mention of the fact that it is free, and the download page calls it trial software:

image

Further, support information for this specific edition is hard to come by. Here is one thing I discovered though: there is no in-place upgrade from Hyper-V Server 2008 R2, though the setup teases. This is what you get. First, an offer to upgrade in-place:

image

with the text, “This option is only available when a supported version of Hyper-V Server is already running on this computer”.

and then the bad news:

image

which in case you cannot read it says,  “Hyper-V Server (Server Core) cannot be upgraded to Hyper-V Server 2012”.

This document, which covers in-place upgrade options for Server 2012, does not even mention Hyper-V Server. It does say this about Server Core, on which Hyper-V Server is based:

Upgrades that switch from a Server Core installation to the Server with a GUI mode of Windows Server 2012 in one step (and vice versa) are not supported. However, after upgrade is complete, Windows Server 2012 allows you to switch freely between Server Core and Server with a GUI modes.

Note that it says “in one step”, suggesting that an upgrade from Server Core to Sever Core should work; then you can add the GUI later if you want. In the case of Hyper-V Server, there is no GUI option anyway; so you would have thought it should be OK. Given the lack of attention to this edition generally though, I wonder if it is a victim of “it’s the free version, let’s not bother".

Incidentally, in-place upgrade from Hyper-V Server 2008 to Hyper-V Server 2008 R2 worked fine.

Nokia and Windows Phone 8: more questions than answers

Nokia’s CEO Stephen Elop announced the Lumia 820 and 920 yesterday in New York; new versions of its high-end Windows smartphones and the first to run the forthcoming Windows Phone 8 operating system. Windows Phone 8 runs the same kernel as Windows 8 on PCs and is a significant step towards unification of Microsoft’s development platform.

image

Among the key features announced yesterday:

Wireless charging with the Qi standard and a couple of deals to place charging points in public places. The London Heathrow Virgin Atlantic lounge and the Coffee Bean & Tea Leaf chain will have charging points; not much, but a start. Wireless charging accessories include the JBL PowerUP which combines wireless charging and an audio dock.

PureView imaging technology. This is Nokia’s brand name for a bunch of photo features. Most significant is “floating lens technology” on the larger 920 which, Nokia claims, overcomes camera shake to enable the camera to take in “five times more light”; think of it as a virtual tripod that allows longer exposure without motion blur. If it works it is a huge feature for photo enthusiasts.

City Lens augmented reality which overlays the view through the phone’s camera with data about what to do and where to go; apparently there is data for indoor as well as outdoor locations.

image

Synaptics ClearPad touch which enables gloved finger support. Since Synaptics is a third-party I guess this feature is unlikely to be exclusive to Nokia for long.

Windows Phone 8 operating system shown off by Microsoft’s Joe Belfiore, including more customizable Live Tiles and a “Blink” feature from Microsoft Research which takes multiple shots in quick succession to enable interesting features like avoiding closed eyes and allowing after-the-event editing using alternate shots.

Screenshots are now a built-in feature. Who cares? Journalists of course; non-availability of this trivial feature meant fewer screenshots of Windows Phone 7 on the web.

Lumia 920 has a 4.5 inch screen, 1.5Ghz dual core Snapdragon S4, front and rear cameras, 1GB RAM, 32GB storage.

Lumia 820 has a 4.3 inch screen,  1.5 Ghz dual core Snapdragon S4, front and rear cameras, 1GB RAM, 8GB storage, microSD slot.

The big disappointment yesterday: no announcement concerning price or availability. Here is what the press release says:

Both phones will be available in pentaband LTE and HSPA+ variants and are expected to start shipping in select markets later in the year. Nokia will announce pricing and specific roll-out dates country by country when sales are due to begin.

Worries about a delay were not relieved by Microsoft’s announcement that the Windows Phone SDK preview will be available to select developers from September 12. “Next Wednesday I’ll share detailed instructions on how current Windows Phone developers with published apps can apply. But I do want to set your expectations that program access will be limited,” says Microsoft’s Todd Bix. He adds that, “The full Windows Phone 8 SDK will be made publically available later this year when we unveil Windows Phone 8.”

That suggests a considerable wait before availability. Even if the Lumias go on sale the same day that the SDK is final, it sounds like November at best; and that gives developers no time at all to work with the new SDK before launch. Key developers have early access of course.

image

Overall the event was less than it should have been, at a time when Android looks vulnerable thanks to Apple’s patent win over Samsung last month.

In some ways though, Nokia’s announcements have little to do with the key questions over Nokia’s Lumia range and Windows Phone 8. Quality is one issue; the launch of the Lumia 800 was damaged by the device’s poor battery life and tendency to sulk and become unchargeable; the rumour is that return rates were unusually high. The knock-on effect is to make it hard for retailers to recommend it to their customers, though firmware updates eventually improved matters. How is battery life on the 820 and 920? What has been done to address quality issues?

Another question, and to me the biggest one, is how Windows 8 for PCs will fare in the market and the impact it will have on Windows Phone. The more time I spend with Windows 8 the more I like it, especially on a tablet, but also on the desktop. There is a barrier to adoption though as the new user interface is a demanding transition for some users. If Windows 8 tablets succeed, there will be instant recognition for the phone user interface and users will have a reason to demand it over iPhone or Android, something that has been lacking up to now.

On the other hand, if appreciation for the nice features of Windows 8 is drowned out by a chorus of “give us back the Start menu”, while vendors focus on expensive fiddly hybrids rather than simple, lightweight tablets, then I doubt Windows Phone 8 will take off either.

Currently I use a Lumia as my main smartphone and (battery life aside) get on well with it. Nokia’s experience with the operating system should mean that this new generation is better, and the phones look good. As Elop himself said though, this is all about ecosystems, and the viability of his third ecosystem is still in the balance.