Tag Archives: windows 8

Another go at Windows 8 from Microsoft’s hardware partners but strategy puzzles remain

I am at the IFA consumer electronics event in Berlin, and have been struck by the number of new Windows 8 tablets on display. Some are hybrid laptop/tablet affairs, but there are also small tablets at keen prices (less than $199) which look superficially similar to Android tablets.

image

Under the covers though, they could not be more different. Android, like it or loath it, is well designed for tablets and low-maintenance for the user. Windows 8 on the other hand is a PC operating system with a split personality: apps that run in the don’t-call-it-Metro environment (Windows Store apps) and which work well with touch; and desktop applications most of which are hard to operate with touch.

Today’s PCs should also be low-maintenance; but they are vulnerable to badly behaved applications or even malware, applications that insist on installing themselves at start-up executables; applications that hijack file associations and cause confusion, and so on. Users have to understand the Windows Control Panel or burrow around in utilities like Task Manager and System Configuration (msconfig) to fix problems.

Microsoft foresaw this when Windows 8 was launched, and created a safer version of the operating system called Windows RT. It is perhaps not quite as low maintenance as Android, but since you cannot install desktop applications, all apps are sandboxed and can be easily installed or removed. Windows RT runs on ARM chipsets.

Unfortunately Windows RT was a flop, thanks to its confusing name and a lack of compelling apps in the Windows Store. Users seemed to be demanding “full Windows”, running on Intel chipsets, so that any Windows software can be installed.

There is no inherent reason, as far as I am aware, why x86 Windows cannot be locked down in the same way as Windows RT; this was a decision Microsoft made to differentiate the two. However they are not locked down, and therefore just as vulnerable and complex as any other PC.

The optimistic view is that the new wave of tablets will stimulate Windows Store app development and revive Windows 8. A Toshiba representative assured me that updates Microsoft made in Windows 8.1 had increased user acceptance of the new user interface.

I will not believe this though until we see Windows 8 tablets flying off the shelves in the same way as Android tablets or iPads; and further, I do not expect this to happen. Nor am I sure that they will be good for non-expert users; if they are like most PCs (and they are), they will get gradually slower and less usable as stuff (often unwanted) gets installed; Java, Ask Toolbar, Google Chrome and Toolbar, Silverlight, Flash, Adobe AIR and all the rest.

The current wave of tablets also makes me wonder what is the long-term thinking. With the near-demise of Windows RT, my expectation is that some future iteration of Windows Phone designed for larger displays will take its place, hopefully with full Windows Runtime compatibility or at least easy porting.

However, Windows 9 “Threshold” is also on the way. Are we going to end up with Windows 9 x86 tablets in form factors such as 7” and 8” tablets, as well as Windows Phone OS tablets in similar sizes? Or will Microsoft remove the desktop and lock down the OS in Windows 9 for phones and small tablets, to make it more like Windows RT, and call it Windows Phone 9?

CEO Satya Nadella speaks of “One Windows” but we are not close to it yet, and the developer story still seems uncertain to me. The one sure point is that Microsoft will use the Universal App concept to assist developers in targeting multiple Windows platforms (and perhaps even iOS and Android via Xamarin integration). The question though: what will those multiple Windows platforms look like a year or two from now?

Hands on with Surface Pro 3

I am about to hand back my Surface Pro 3 after a week or so of use – how is it?

image

I reviewed the Surface on The Register, where I tried to bring out the changed focus of the device, compared to the first two iterations. Surface RT (the first to be released) was released simultaneously with Windows 8 and represented Microsoft’s best effort at creating a device that made Windows 8 work in both its roles, as a tablet controlled by touch and as a laptop replacement. Surface RT runs on ARM and does not allow installation of desktop applications, though with Office pre-installed the desktop is still useful. The first Surface Pro came later and uses the same 10.6" screen and form factor, though because of its more powerful x86 (Core i5) CPU it is thicker and more power-hungry (short battery life). I use both Surface 2 (the second iteration of Surface RT) and Surface Pro regularly so I know the products well.

Surface Pro 3 was designed to be a better laptop replacement. It has a larger 12” display and a 3:2 screen ratio, in place of 16:9. The new size feels far more spacious and comfortable for applications like Word, Excel, Photoshop or Visual Studio. It is less obviously suited if you use a horizontally split view, part of the original Windows 8 design concept, but in practice it is such a high resolution screen (2160 x 1440) that it still works OK.

image

The new display is superb; the only two things I have against it are first, that it is glossy which is a slight annoyance in most environments and a disaster out of doors; and second, that it makes the device larger and therefore less convenient in space-constrained environments like crowded trains if you don’t have a table seat.

There is no one perfect size for a computing device, but Surface 3 is large enough that you will may want to have a smaller tablet with you, such as an iPad Mini or a Google Nexus 7. That said, phones are getting larger, so perhaps a phablet-sized phone and a Surface 3 is a good compromise.

I had to turn on “Experimental features” in Adobe Photoshop to get high-density display scaling and full touch support:

image

Performance-wise, I have no complaints about Surface Pro 3; it exceeded my expectations. Although the review unit is only a Core i5, it is among the most responsive Windows PCs I have used; of course it helps that the OS is a fresh install. Considering that the Surface will in some circumstances throttle performance anyway, and that heat may be a problem with a higher spec CPU, it seems to me that there is no necessity to get the Core i7 variants for most purposes.

I have not done comprehensive performance tests but did run 3DMark RT on which the Surface Pro 3 scored about 9% better than my old Surface Pro, and the JavaScript SunSpider test on which it was 44% faster. Of course it is a faster Core i5 (1.9 GHz vs 1.7 GHz).

image

Thanks to Intel’s Haswell design, this performance comes alongside good battery life. The advertised 9 hours is optimistic, but 6 hours plus is realistic. I also noticed that Surface Pro 3 is much better at holding its charge on standby, a common annoyance with older models.

The power connector has been improved to make it both easier and firmer to connect.

image

The power supply still has that handy USB power supply built-in; I am often grateful for this.

image

What about the new fold-up keyboard, where the keyboard cover attaches across the bottom of the device to form a stronger hinge?

image

I am not sure about this one. The benefit is real; it is a firmer attachment and better when you use the Surface on your lap (though I have never really found this hard). It is a compromise though. Support for this feature has pushed the Windows key to the right hand of the screen, where you can easily hit it by accident if using Surface as a tablet in landscape mode. It also makes the taskbar hard to tap. A more subtle disadvantage is that the keyboard cover now has two hinges; you can think of it as a flap with two panels, a large one for the keyboard itself, and a thin one for the fold-up section. When you fold the keyboard to the back of the device for tablet use, this two-panel arrangement means it tends to move about more, it does not fit so snugly. I also prefer the keyboard to be flat on the desk when in tabletop mode, but find that it goes into the fold-up position by default and I have to unfold it.

The infinitely variable kickstand is also a mixed blessing. I like the flexibility it offers, but it means you now have to think about where to set it every time, it no longer clicks into place. Since I was happy with the choice of two in the 2nd edition models, the new hinge is little benefit to me, but I do appreciate that for some users it makes all the difference. The hinge does look strong, and hopefully will prove to be enduring.

image

These are fine details, and even the complaints do not detract from a positive experience overall. That said, whereas the old Surface is truly distinctive, with the new one I find myself asking whether a conventional Ultrabook with a better keyboard and more USB 3.0 ports is a more attractive purchase. It depends, I guess, how much you think you will use Surface Pro 3 in tablet mode.

Talking of tablet mode, the pen that comes with Surface Pro 3.0 is the best tablet pen I have used. It is capable of natural strokes and precise control. If you like inking word documents, for example, this is ideal.

image

I recognise this; but after years of experimentation have concluded that pen computing is not for me. I find them too easy to lose, and too awkward to use. Tablet in one hand, pen in the other: you are losing the freedom that tablet computing offers.

Note also the most clunky aspect of Surface Pro 3.0, which is how you park the pen. The magnetic attachment to the power connector port is hopeless; it falls off in no time. The keyboard loop is better, but my loop has already come off twice, and this will get worse. Time for some superglue? Microsoft should at a minimum make the loop sewn in to the keyboard. Everybody gets a pen, after all, though I also wish it were optional so I could save some money.

image

Another annoyance is only one USB 3.0 port; if Microsoft could squeeze another one in I would find that useful.

The camera is pretty good but no better than the one on Surface 2 (which is also pretty good); both are 5MP. However it easily beats the 720p camera on the Surface Pro 2. The Surface Pro 3 has a better front-facing camera than Surface 2.

The speakers are better than earlier models too. I am not sure how much this matters, since most of the time you will use a headset or external powered speakers, but sometimes the built-in ones are all you have to hand.

As a long-term Surface user I must not neglect to mention the best feature of the device, which is great portability combined with the ability (in the Pro versions) to run most PC applications. I travel enough to appreciate this greatly; it slips into a small bag and is far more convenient to carry than most laptops. I will never go back to a traditional laptop, though I might be tempted by a conventional Ultrabook; some of these are also relatively slim and light, though not so much as a Surface.

I like the Surface Pro 3 and regard it as decent value for money, given the all-round high quality. There are compromises though, and personally I would like to see Microsoft retain a smaller 10.6" screen model in the range as in some ways that works better for me.

On Microsoft Surface: premium hardware, declining vision

image
Microsoft’s Panos Panay shows off Surface Pro 3

Microsoft’s Surface Pro 3 was launched yesterday, but the roots of Microsoft’s Surface project – the company’s first own-brand PC – go back a long way. There are three big issues which it attempts to tackle:

1. The PC OEM hardware ecosystem was (and to a large extent still is) stuck in a vicious loop of a price-sensitive market driving down prices and forcing vendors to skimp on design and materials, and to pre-install unwanted third-party applications that damage user experience. Most high-end users bought Macs instead. With Surface Microsoft breaks out of the loop with premium design and zero unwanted add-ons.

2. The tablet market. Windows 8 is designed for touch, at least in its “Metro” personality. But desktop apps need a keyboard and mouse. How do you combine the two without creating a twisty monster? Surface with its fold-back, tear-off keyboard cover is an elegant solution.

3. Fixing Windows. Users of today’s PCs live on a precipice. One false click and the adware and malware invades. Live in the “Metro” environment, or use an iPad, and that is unlikely to happen. Use Windows RT (Windows on ARM) and it is even less likely, since most malware cannot install.

Surface could not have happened without Windows 8. The efforts to make it work as a tablet would make no sense.

Now we have Surface 3. How is Microsoft doing?

I have followed Surface closely since its launch in September 2012. The models I know best are the original Surface RT, the second Surface RT called Surface 2, and the original Surface Pro, which is my machine of choice when travelling. A few observations.

There is plenty that I like (otherwise I would not use it so much). It really is slim and compact, and I would hate to go back to carrying a laptop everywhere. It is well-made and fairly robust, though the hinge on the keyboard covers is a weak point where the fabric can come unglued. The kickstand is handy, and one of my favourite configurations is Surface on its kickstand plus Bluetooth keyboard and mouse, with which I can be almost as productive as with a desktop (I do miss dual displays). I can also use the Surface successfully on my lap. In cramped aircraft seats it is not great but better than a laptop.

There are also annoyances. Only one USB port is a severe limitation and seems unnecessary, since there is room along the edge. For example, you plug in an external drive, now you cannot attach your camera. Not being able to upgrade the internal SSD is annoying, though I suppose inherent to the sealed design. Performance was poor on the original Surface RT, though Surface 2 is fine.

More annoying are the bugs. Sometimes the keyboard cover stops working; detaching and re-attaching usually but not always fixes it. Sometimes the wifi plays up and you have to disable and re-enable the wifi adapter in device manager. Another problem is power management, especially on Surface Pro (I gather that Pro 2 is better). You press power and it does not resume; or worse, you put it into your bag after pressing power off (which sends it to sleep), only to find later that it is heating your bag and wasting precious battery.

The key point here is this: Microsoft intended to make an appliance-like PC that, because of the synergy between first-party hardware and software, would be easy to maintain. It did not succeed, and even Surface RT is more troublesome to maintain than an iPad or Android tablet.

Microsoft also ran into user acceptance problems with Windows RT. Personally I like RT, I think I understand what Microsoft is (or was) trying to achieve, and with Surface specifically, I love the long battery life and easier (though this imperfect) maintenance that it offers. However, the apps are lacking, and Microsoft has so far failed to establish Windows as a tablet operating system like iOS and Android. People buy Windows to run Windows apps, they make little use of the Metro side, and for the most part Surface customers are those who would otherwise have bought laptops.

Incidentally, I have seen Surface RT used with success as a fool-proof portable machine for running Office and feel it deserved to do better, but the reality is that Microsoft has not persuaded the general public of its merits.

Another issue with Surface is the price. Given most Surface customers want the keyboard cover, which is integral to the concept, the cost is more than most laptops. But was Microsoft going for the premium market, or trying to compete with mass-market tablets? In reality, Surface is too expensive for the mass-market which is why its best success has been amongst high-end Windows users.

Surface Pro 3 and the launch that wasn’t

That brings me to Surface Pro 3. The intriguing aspect of yesterday’s launch is that it was rumoured to be for a new mini-sized Surface probably running Windows RT. Why else was the invite (which someone posted on Twitter) for a “small gathering”?

image

Admittedly, it is a stretch to suppose that the Surface Mini was cancelled between the date the invitations were sent out (around four weeks ago I believe) and the date of the event. On the other hand, this is a time of change at Microsoft. The Nokia acquisition completed on  25th April, putting former Nokia CEO Stephen Elop in charge of devices. Microsoft CEO Satya Nadella has only been in place since February 4. While cancelling a major hardware launch at such short notice would be surprising, it is not quite impossible, and a report from Bloomberg to that effect seems plausible.

It is also well-known that Microsoft does not intend to continue with three mobile operating systems: Windows x86, Windows on ARM, and Windows Phone. Windows Phone and Windows RT will “merge”, though merge may just mean that one will be scrapped, and that it will not be Windows Phone.

The promised arrival of a touch-friendly Microsoft Office for Windows Phone and Windows 8 further will rob Windows RT of a key distinctive feature.

This does not mean that Microsoft will not complete in the growing market for small tablets. It means, rather, that a future small tablet from Microsoft will run the Windows Phone OS – which is what some of us thought Microsoft should have done in the first place. This is a company that sometimes takes the hardest (and most expensive) possible route to its destination – see also Xbox One.

Surface Pro 3 specs: a MacBook Air compete

Surface Pro 3 is a large-size Surface Pro. It has a 12 inch 2160×1440 screen, a pen, and a redesigned keyboard cover that has an additional magnetic strip which sticks to the tablet when used laptop-style, for greater stability.

The kickstand can now be used at any angle, supposedly without slipping.

image

The weight is 800g making it lighter than a MacBook Air.

image

though note that the MacBook Air has a keyboard built in.

Battery life is quoted as “up to 9 hours”. There is still only one USB port. Full specs are here.

The Surface Pro 3 looks like a nice device. In the UK it starts at £639 for an Intel i3 device with a tiny 64GB SSD (I am running out of space with 128GB). And don’t forget the cover which will be at least £110 on top (prices include VAT).

A sensible Core i5 with 256GB SSD and a Type 2 cover will be around £1200. Not a bad buy; though personally I am not sure about the larger size.

Note that Microsoft has now abandoned the 16:9 wide-screen format which characterised the original release of Windows 8, designed to work well with two apps side by side. Surface Pro 3 has a conventional 3:2 screen ration.

Declining vision

Microsoft’s Surface project had a bold vision to reinvent Windows hardware and to usher in a new, more secure era of Windows computing, where tablet apps worked in harmony with the classic desktop.

It was bold but it failed. A combination of flawed implementation, patchy distribution, high prices, and above all, lack of success in the Windows Store ecosystem, meant that Surface remained at ground level.

What we have now is, by all accounts, an attractive high-end Windows hybrid. Not a bad thing in itself, but far short of what was originally hoped.

Microsoft is moving on, building on its investment in Active Directory, Azure cloud, and Microsoft Office, to base its business on an any-device strategy. The market has forced its hand, but it is embracing this new world and (to my mind) looks like making a success of it. It does not depend on the success of Surface, so whether or not the company ends up with a flourishing PC business is now almost incidental.

Microsoft announces the return of the Start menu to Windows 8 – again

Just announced at Microsoft’s Build conference in San Francisco: a new desktop Start menu:

image

Note that this is not part of Windows 8.1 Update 1 (about to become available) but rather a future Windows 8.1 update. It will be free to all users.

The Start button was re-introduced in Windows 8.1, but only takes you to the Start screen. This new one runs entirely on the desktop.

Another key new feature in this future update is the ability to run universal Windows apps (which are Store apps) in a window on the desktop.

The plan to make Windows 8 a more compelling update for desktop users, and to promote Store apps to users who use keyboard and mouse and mainly desktop apps.

Entering Microsoft’s XAML labyrinth: is it worth it?

I spent some time at the weekend working on a Bridge game for the Windows Store. I am writing it in XAML and C#. The UI is hardly demanding, given that Bridge is a card game, but it has made me take a fresh look at XAML, the markup language for a Windows Store App user interface (unless you use HTML and JavaScript). XAML is also used in Windows Presentation Foundation and in Silverlight/Windows Phone.

As part of the game, the user selects a “bid” which consists of a number from 1 to 7 and a suit of cards (or double, redouble or pass). Most bridge games show this as a grid though functionally it is like a combo-box (choosing from a pre-defined range of options).

Naturally I looked for the easiest way to accomplish this. The solution I came up with was to nest TextBlock controls in Border controls in Grid cells. Then I wrote C# code that detects which cell the user taps and updates the background of the selected Border accordingly.

image

I have in mind to replace the text with graphics and make the numbers a bit smarter at some future date. My solution works fine; here it is at runtime:

image

At the weekend I happened to be chatting with a developer more expert in XAML than myself, who told me I had done it wrong. In XAML everything should be in Style definitions. I should use a ListView and design it in Blend.

Well, I knew that I had somewhat subverted how XAML is meant to work, so I sat down to investigate this different approach. A ListView looks nothing like what I want out of the box.

image

However, with the magic of XAML it can be transformed. I made the ListView horizontal by defining an ItemsPanelTemplate in Application.Resources:

<ItemsPanelTemplate x:Key="ItemsPanelTemplate1">
  <StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>

and adding 

ItemsPanel="{StaticResource ItemsPanelTemplate1}

as an attribute of the ListView.

Then I added an ItemTemplate to draw the kind of block that I wanted:

<ListView.ItemTemplate>
    <DataTemplate>
        <Border BorderThickness="1" Height="130" Width="130" BorderBrush="Black">
            <TextBlock FontSize="24" FontWeight="Bold" HorizontalAlignment="Center" VerticalAlignment="Center"
                       Text="{Binding Name}" Foreground="Black" />
        </Border>
    </DataTemplate>
</ListView.ItemTemplate>

Note that I am using a DataTemplate because the ListView is bound to an ObservableCollection in the proper XAML way.

At this point I am close to what I want – never mind that the numbers are missing, they can easily be added with a second ListView:

image

However I do not want that little tick mark appearing, the selected background colour is not to my taste, and the spacing of the items is wrong. How do I fix that?

My search led me to this post which explains a far-from-obvious series of steps you can take in Blend. The steps did not quite work for me but got me on track to create a new Style resource which I called ListViewItemStyleNoGlyph and which lets me adjust the margin and also a previously hidden property called SelectionCheckMarkVisualEnabled. Blend generated a substantial block of code for this:

image

This has helped and now my ListView looks like this:

image

Well, it is nearly there and I can see that with a bit more effort I can get what I want. Even so, I am beginning to wonder whether my initial approach, in which I understood all the code, had advantages over this exploration into the labyrinth.

Is XAML well loved out there? I came across this post by Paul Stovell from a couple of years back which seems relevant. “I’ve lived and breathed the technology for the last six years”, he says, but writes:

What’s disappointing is that WPF started out quite positively during its time. Concepts like dependency properties, styles, templates, and the focus on data binding felt quite revolutionary when Avalon was announced.

Sadly, these good ideas, when put into practice, didn’t have great implementations. Dependency properties are terribly verbose, and could have done with some decent language support. Styles and templates were also verbose, and far more limited than CSS (when WPF shipped I imagined there would be a thousand websites offering high quality WPF themes, just like there are for HTML themes; but there aren’t, because it is hard).

Data binding in WPF generally Just Works, except when it doesn’t. Implementing INotifyPropertyChanged still takes way too much code. Data context is a great concept, except it totally breaks when dealing with items like ContextMenus. ICommand was built to serve two masters; the WPF team who favored routed commands, and the Blend team who favored the command pattern, and ended up being a bad implementation for both.

Stovell mentions the verbosity of XAML, and that it is hard, both of which sound right to me. He contrasts the way ASP.NET has evolved, with ASP.NET MVC a great improvement on web forms. Read the full post for more detail.

It seems to me that XAML does offer much that is wonderful: flexibility, capability, and the ability to separate presentation from data. At the same time, neither XAML nor Blend are intuitive tools for developers; they may make more sense to designers, but it seems to me that removing a tick mark from a ListViewItem should be more straightforward. Perhaps it is, in which case there is a failure of documentation or tooling rather than functionality, but it makes little difference to the developer.

The problem with backpedalling on Windows 8: it is the wrong direction

Lukas Mathis has a detailed post on Windows 8, including its advantages over the Apple iPad as a productivity tablet. Mathis switched from the iPad to a Surface Pro:

In general, I really love the Surface, and I use it much more, and for many more things, than I ever used any iPad I ever owned. But it’s not perfect.

Mathis likes the Metro (Windows Runtime) UI:

Almost everything that happens inside the Metro environment is fantastic. It’s clean, fast, and powerful. The apps are easy to use, but still offer a lot. The gesture-based user interface requires you to learn a few new things, but takes very little time to get used to.

This makes interesting reading for Windows users (and there seem to be many) who have convinced themselves that Metro is difficult, pointless or obstructive, though of course it may be those things to them. It is also true that you cannot easily get your work done in Metro alone. Office, Visual Studio, Windows Live Writer are three quick examples of applications which do not have any good substitute, not to mention countless custom line of business applications, so you still need the desktop whether you like it or not.

Mathis is also scathing about various aspects of Windows:

The problems with Windows 8 don’t end with the integration between desktop and Metro. There’s also the problem that good old Windows seems to be a pretty terrible operating system.

He relates encounters with DLL errors, inconsistent visual design, old stuff left in for legacy reasons, and a culture of adware, spyware and malware.

Personally I have learned how to navigate the Windows software world and have fewer problems than Mathis but that said, his complaints are justified.

These problems are hard to fix which is why Microsoft made such radical changes in Windows 8, making a new, secure and touch-friendly personality the centre and (conceptually at least) isolating the old desktop into a legacy area for running your existing apps. Although there are many flaws in the way this change has been executed, it seems to me a reasonable approach if Windows is to have a future beyond business desktops.

What was and is wrong with Windows 8? My own list of flaws includes:

  • Poor selection and quality of apps, even the built-in ones that had no reason not to be great
  • A design that lacks visual appeal
  • An immature development platform, too difficult, buggy and incomplete
  • Lack of a status bar in Metro so you cannot see at a glance essentials like time, date and battery life
  • Widescreen design that does not work well in portrait
  • Confusions like two versions of Internet Explorer, Metro PC settings vs Control panel and so on

I could go on; but there are also plenty of things to like, and I disagree with commonly expressed views like “it is no good without touch” (I use it constantly with only keyboard and mouse and it is fine) or “bring back the Start menu” (I like the new Start menu which improves in several ways over its predecessor).

It does not matter what I think though; the truth is that the business world in particular has largely rejected Windows 8, and the consumer world is hardly in love with it either. I look at lists of PCs and laptops for sale to businesses and the majority state something like “Windows 8 downgraded to Windows 7” or “Windows 7 with option to upgrade to Windows 8”. This tells the whole story.

It seems to me that the Windows 8 team has been largely disbanded, following Stephen Sinofsky’s resignation and Julie Larson-Green’s sideways moves; she is now “Chief Experience Officer in the Applications and Services Group”; and whatever that means, she is no longer driving the Windows team. Microsoft has to come to terms with the failure of Windows 8 to meet its initial objectives and to make peace with the user base that has rejected it. There are signs of this happening, with coming updates that improve integration between Metro and Desktop and ease the learning path for keyboard and mouse users:

Most of the changes in the update are designed to appease keyboard and mouse users, with options to show Windows 8 apps on the desktop taskbar, the ability to see show the desktop taskbar above Windows 8-style apps, and a new title bar at the top of Windows 8 apps with options to minimize, close, or snap apps.

The big question though is what happens to Metro in the next major release of Windows, bearing in mind that its chief advocates are no longer running the show. Should and will Microsoft stop trying to push the unwanted Metro environment on users and go back to improving the desktop, as it did when moving from Windows Vista to Windows 7?

My guess is that we will see some renewed focus on the desktop; but Microsoft will also be aware that the problems that gave rise to Metro still exist. The Windows desktop is useless on tablets, the Windows culture foists numerous applications with evil intent on users, and the whole design of traditional Windows is out of step with modern moves towards simpler, safer and easier to manage computing devices.

Therefore the correct direction for Microsoft is to improve Metro, rather than to abandon it. If we see a renewed focus on the desktop to the extent that energetic Metro development ceases, Microsoft will be marching backwards (and perhaps it will).

The only plausible “Plan B” is to do what some thought Microsoft should have done in the first place, which is to evolve Windows Phone to work on tablets and to replace Metro with a future generation of the Windows Phone OS, perhaps running alongside the desktop in a similar manner. Since Microsoft has stated its aim of a unified development platform for Windows Phone and Windows Runtime, Plan B might turn out the same as Plan A.

All this is late in the day, maybe too late, but the point is this: a revitalised desktop in Windows 9 will do little to arrest its decline.

Microsoft improves its web app builder for Windows Phone, but where is it going with this?

Microsoft has improved its browser-based Windows Phone App Studio beta and added the ability to generate Windows Store apps. The changes are described here.

First, a quick tour. App Studio is carefully described as a tool for building “content-based apps”. The personal use case is an app to show off your recent holiday, favourite band, movie or team, and for businesses, a showcase for your company or a menu for your restaurant.

I find this curious. What is the point of this kind of app? If I want to create a fan project, wouldn’t a mobile-friendly web site or blog be better? And for businesses, what is the value of an app that lacks intelligence? For example, a restaurant might want an app linked to a loyalty scheme where you collect points towards a free meal or qualify for offers, but how many will want an app just to check a menu, which they could easily do online?

Still, I like the idea of an app that will make it easier to read this blog on Windows Phone, so I went in and built an app.

Microsoft is continuing its peculiar and infuriating aversion to proper documentation, but there is a a how to that is somewhat informative. “You can also create a custom action”, it says, but does not tell you what such an action can do or how to use it.

That said, the development environment is reasonably intuitive. There is no interface builder at the level of buttons and listboxes; rather, you drag high-level elements into sections and the user interface is built for you. For example, I added an RSS feed, entered the URL for this blog, and it built a UI to browse and read blog entries.

image

Everything is data bound, and the data can be stored either locally or else hosted by Microsoft, in which case you can amend it dynamically:

App Studio Data Services means the data is stored in App Studio and depends on an internet connection. If you update your data in App Studio, your app will automatically update. This allows you to create live apps that don’t need to be updated when you want to change data.

Large or sophisticated data sets are not the target here though. You could store a short list of addresses, for example.

You can also add elements including HTML text, RSS feeds, YouTube videos, Flickr photos, and Bing searches. You can add actions including initiating a phone call or email, searching Nokia music, or getting directions from Nokia HERE maps.

As you work, a live preview of the app appears alongside your work, a nice feature.

Once done, you can generate the app.

image

New in this version is the ability to generate a Windows Store App for Windows 8.1, as well as a phone app. Once in Visual Studio, you can do what you like, though there is no way back to the visual builder. Apps generated use XAML and C#.

image

App Studio also compiles a Windows Phone binary package (not yet for Windows Store apps) which you can install immediately, provided you have added the necessary certificate. You can install the app by scanning a QR code.

image

There is good work here, and if by any chance you do want to build a “content app” of the type envisaged, it is great.

I have a couple of reservations though.

First, it is too limited to be useful for real-world apps, unless you just use it as a starting point for a Visual Studio project. It needs the ability to write snippets of code, and the ability to link to business data sources like Azure Mobile Services and SQL Server. It also needs a login facility supporting at least Office 365 and Microsoft IDs.

Second, it seems to me that Microsoft is working simultaneously on several projects with overlapping purpose, which is to simplify app building.

Project Siena is a visual app builder implemented as a Windows 8 app; I looked at it here.

Visual Studio Lightswitch is a visual app builder in Visual Studio, which builds apps for Silverlight and HTML.

Access 2013 Web Apps let you build custom databases that hook into Office 365. I looked at these here. This is one easy app builder that really makes sense to me, allowing reasonably sophisticated data models and using Office 365 identities for log-in and permissions.

Windows Phone App Studio as described above.

Now, I appreciate that there are slightly different target markets in each of these. Lightswitch cannot build store apps, Access Web Apps require SharePoint or Office 365, Project Siena cannot build phone apps, and so on.

However, Microsoft needs to unify its development platform, and a proliferation of tools all going for the supposed non-technical app developer is not helping its cause. I also suspect that the demand for consumer “content-based apps” is vanishingly small.

Personally I think Microsoft should both improve and shout from the rooftops about the under appreciated Access 2013 web apps, scrap at least two of the other three, and integrate their functionality so that we have one easy to use app builder that can target Windows Store apps and Windows Phone apps.

Microsoft and developer trust

David Sobeski, former Microsoft General Manager, has written about Trust, Users and The Developer Division. It is interesting to me since I recall all these changes: the evolution of the Microsoft C++ from Programmer’s Workbench (which few used) to Visual C++ and then Visual Studio; the original Visual Basic, the transition from VBX to OCX; DDE, OLE and OLE Automation and COM automation, the arrival of C# and .NET and the misery of Visual Basic developers who had to learn .NET; how DCOM (Distributed COM) was the future, especially in conjunction with Transaction Server, and then how it wasn’t, and XML web services were the future, with SOAP and WSDL, and then it wasn’t because REST is better; the transition from ASP to ASP.NET (totally different) to ASP.NET MVC (largely different); and of course the database APIs, the canonical case for Microsoft’s API mind-changing, as DAO gave way to ADO gave way to ADO.NET, not to mention various other SQL Server client libraries, and then there was LINQ and LINQ to SQL and Entity Framework and it is hard to keep up (speaking personally I have not yet really got to grips with Entity Framework).

There is much truth in what Sobeski says; yet his perspective is, I feel, overly negative. At least some of Microsoft’s changes were worthwhile. In particular, the transition to .NET and the introduction of C# was successful and it proved an strong and popular platform for business applications – more so than would have been the case if Microsoft had stuck with C++ and COM-based Visual Basic forever; and yes, the flight to Java would have been more pronounced if C# had not appeared.

Should Silverlight XAML have been “fully compatible” with WPF XAML as Sobeski suggests? I liked Silverlight; to me it was what client-side .NET should have been from the beginning, lightweight and web-friendly, and given its different aims it could never be fully compatible with WPF.

The ever-expanding Windows API is overly bloated and inconsistent for sure; but the code in Petzold’s Programming Windows mostly still works today, at least if you use the 32-bit edition (1998). In fact, Sobeski writes of the virtues of Win16 transitioning to Win32s and Win32 and Win64 in a mostly smooth fashion, without making it clear that this happened alongside the introduction of .NET and other changes.

Even Windows Forms, introduced with .NET in 2002, still works today. ADO.NET too has been resilient, and if you prefer not to use LINQ or Entity Framework then concepts you learned in 2002 will still work now, in Visual Studio 2013.

Why does this talk of developer trust then resonate so strongly? It is all to do with the Windows 8 story, not so much the move to Metro itself, but the way Microsoft communicated (or did not communicate) with developers and the abandonment of frameworks that were well liked. It was 2010 that was the darkest year for Microsoft platform developers. Up until Build in October, rumours swirled. Microsoft was abandoning .NET. Everything was going to be HTML or C++. Nobody would confirm or deny anything. Then at Build 2010 it became obvious that Silverlight was all-but dead, in terms of future development; the same Silverlight that a year earlier had been touted as the future both of the .NET client and the rich web platform, in Microsoft’s vision.

Developers had to wait a further year to discover what Microsoft meant by promoting HTML so strongly. It was all part of the strategy for the tablet-friendly Windows Runtime (WinRT), in which HTML, .NET and C++ are intended to be on an equal footing. Having said which, not all parts of the .NET Framework are supported, mainly because of the sandboxed WinRT environment.

If you are a skilled Windows Forms developer, or a skilled Win32 developer, developing for WinRT is a hard transition, even though you can use a familiar language. If you are a skilled Silverlight or WPF developer, you have knowledge of XAML which is a substantial advantage, but there is still a great deal to learn and a great deal which no longer applies. Microsoft did this to shake off its legacy and avoid compromising the new platform; but the end result is not sufficiently wonderful to justify this rationale. In particular, there could have been more effort to incorporate Silverlight and the work done for Windows Phone (also a sandboxed and touch-based platform).

That said, I disagree with Sobeski’s conclusion:

At the end of the day, developers walked away from Microsoft not because they missed a platform paradigm shift. They left because they lost all trust. You wanted to go somewhere to have your code investments work and continue to work.

Developers go where the users are. The main reason developers have not rushed to support WinRT with new applications is that they can make more money elsewhere, coding for iOS and Android and desktop Windows. All Windows 8 machines other than those running Windows RT (a tiny minority) still run desktop applications, whereas no version of Windows below 8 runs WinRT apps, making it an easy decision.

Changing this state of affairs, if there is any hope of change, requires Microsoft to raise the profile of WinRT among users more than among developers, by selling more Windows tablets and by making the WinRT platform more compelling for users of those tablets. Winning developer support is a factor of course, but I do not take the view that lack of developer support is the chief reason for lacklustre Windows 8 adoption. There are many more obvious reasons, to do with the high demands a dual-personality operating system makes on users.

That said, the events of 2010 and 2011 hurt the Microsoft developer community deeply. The puzzle now is how the company can heal those wounds but without yet another strategy shift that will further undermine confidence in its platform.

Figuring out Project Siena: a Windows 8 app to build Windows 8 apps

A couple of weeks back I took a look at Project Siena, a preview of a new tool for building Windows 8 apps. Project Siena features a simplified user interface builder, an Excel-like expression language, and data-bound controls. It generates Windows 8 JavaScript apps. Project Siena is itself a Windows Store app, and runs fine on Windows RT (the ARM version). I have been using it successfully on Surface 2, on which it runs sweetly.

When I first looked at Project Siena I tried to build the same first app that I have used for numerous simple tests of development tools over the years: a to-do list. I was impressed by how easy it was to create the user interface, but unable to work out the code to complete it. Unless I missed it, the key information is not included in any of the initial documentation. I found this disappointing, since it has been easy to work out the code in every other programming environment I have tried.

I gradually worked it out. Here is the app:

image

The idea is that you have a listbox, an input box, and two buttons. One button takes the contents of the input box and adds it to the list. The other button removes the selected item in the list. All the functionality you need for a to-do list (actually a simple memo control would do, but that would be a bit too simple).

In Siena, data is stored in Collection objects, and you can bind a listbox to a collection. By default, a new listbox is bound to an object called ListboxSample, but you cannot use it for this; if you try, you get a squiggly line error with the message that ListboxSample is not a collection.

image

Instead, you have to create your own collection object. In Siena, you declare a variable by using it and its type is inferred. Enter this for the OnSelect property of the Add button:

Collect(mycollection,{Value: InputText1!Text})

This is the code that took me so long to work out. The Collect function adds an item to a collection. If the collection does not already exist, it creates it. The first argument to Collect is a collection object, and the second, an item. What is an item? In effect, a record or row in a table. The syntax for an item in Siena is:

{Fieldname1: fieldvalue1,Fieldname2: fieldvalue2,…}

where the dots represent additional fields as required. Therefore, the code I entered for the Add button creates or appends an item with a single field, called Value, to a collection called mycollection.

Now you can select the listbox and tap Data and then Items. The collection called mycollection magically appears for selection. Select it. In the case of multi-field collections, you can also choose which field appears in the list. Only one field it seems; yes, Siena needs a grid control.

Then you can run the app, tap Add, and see the content of the input box added to the list.

The Remove button is easy:

Remove(mycollection, Listbox1!Selected)

However, our app has a flaw. The data does not persist. Next time you run the app, the list will be empty. This is easy to fix too. Go back to the OnSelect property of the Add button. Type a semicolon after the existing line of code, and then:

SaveData(mycollection,"mycollection")

This saves the collection to isolated storage on your PC. Alternatively, you could call a web service and save to the cloud, but I am not sure of the code for that yet.

Next, we have to load the data when the app starts. You can use the OnVisible property of the screen for this. Type:

Clear(mycollection);Collect(mycollection,LoadData("mycollection"))

Note that since Collect appends to the collection, we have to clear it first, to avoid duplicate items.

Now the app is complete.

What do I think of Siena after doing this? It certainly has its frustrations, but I like it. I do think that the designers have gone too far in pretending that code is unimportant; it is silly that you have to type into a single line editor. It would also have saved me time if Microsoft had provided a syntax guide and programming guide, rather than concentrating on how to show pretty pictures.

Who is going to use Siena, if anyone? That is the harder question.

Toshiba ships DVD media with laptop without DVD drive

One day you will be able to buy a Windows device and have a smooth and delightful experience getting started.

To be fair, something like a Surface tablet can give offer a reasonable experience if you are lucky.

Not so a Toshiba Portege Z930 ultrabook – at least, not if you buy one with Windows 7 pre-installed, and want to run Windows 8, as a contact of mine has just done.

Why would you not buy one with Windows 8 pre-installed instead? With hindsight, that is what I would recommend; but since it says on the box, “This system is pre-installed with Windows 7 Pro software and also comes with a license and media for Windows 8 Pro software,” he did not think it much mattered.

The problem: The Z930 has no optical drive, but Windows 8 is supplied in the form of two recovery DVDs.

image

I thought that was pretty silly, but luckily I know all the tricks about creating a bootable USB drive from a DVD. I even spotted the note in the box that instructs you to go into the BIOS and change it from CSM Boot to UEFI Boot.

No go. It would not boot from the USB drive in UEFI mode, and in CSM mode (which is also meant to work for Windows 8, with a few limitations) it boots, starts a Toshiba recovery wizard, and then bombs out.

I spoke to support. The first thing they told me, unprompted, was to make Windows 7 recovery disks, since not everyone likes Windows 8.

Next, the support guy was surprised that a model without a DVD drive ships with DVDs. Had the machine been tampered with? Then he looked it up, and admitted that they are all like that.

After a little more investigation, he said there is no way it will work from a bootable USB drive, because it is coded to look for the DVD. The only way is to buy an external DVD drive and attach it via USB.

The behaviour began to make sense to me. The scripts must be hard-coded to look on the optical drive for the files. I’d guess you can fix it by modifying the scripts if you know where to look, but life is too short and I went out and bought a DVD drive.

Smooth after that? Not brilliant. Recover Windows 8, go to Store for Windows 8.1, remember that you have to apply updates before it appears, apply 80 Windows updates, remove McAfee trialware and a few other unwanted applications, back to Store, do large Windows 8.1 download, and done.

In an era where usability is king, it is remarkable that Toshiba thinks that shipping DVDs with a computer that cannot read them is a smart thing to do. That said, I have a few more observations.

  • If you got a product key for Windows 8 and could download the media from Microsoft, that would work. But OEM Windows 8 is now pre-pidded so you don’t get a key.
  • If Microsoft were not still making so much money from businesses paying for Windows licenses, it could give Windows away and offer users a more Apple-like upgrade experience.
  • If Microsoft had not come out with a Windows upgrade which many of its customers do not like, companies like Toshiba would not be selling so many laptops with Windows 7 pre-installed.

As for the Z930, it is a lovely light, fast laptop if you do not need touch. But when will Windows OEMs, and to some extent Microsoft itself, learn the importance of out-of-the-box user experience?