Tag Archives: microsoft

Hands on: building an app for Windows 8 Metro

How difficult is it to build an app for the Windows Runtime (WinRT), which powers Metro-style apps in Windows 8?

Here is how I created a simple calculator app (this is one in an occasional series) using Visual Studio 11 beta. I started with a new Visual C# Windows Metro Style project, choosing a blank template.

image

A slight complication is that you are prompted to install a Developer License, which means logging into your Windows Live account.

image

Next, I had to layout the controls. Visual Studio creates a single-page app with a main page called BlankPage.xaml. I renamed this to Calc.xaml. I also used Visual Studio’s refactor menu to rename the page class from BlankPage to Calc.

image

The default application has a black background, which seems gloomy. I changed the Background of the container grid to white.

My basic calculator design is based on six rows and four columns, so I added 6 RowDefinitions and 4 ColumnDefinition to the XAML grid. The units for RowDefinitions and ColumnDefinitions can be set to Auto, Pixel or Star. Star means the unit is a weight which is calculated at runtime. For example, if you set the value of one RowDefinition.Height to 2 and the others to 1, the first one would be twice as high as the others. Here is my basic grid:

image

Next, I placed controls in the grid. The easiest way to get them to fill the space neatly is to set their HorizontalAlignment and VerticalAlignment properties to Stretch. Then you control the margin round the control with the Margin property. You can have a control fill more than one cell by using the Grid.ColumnSpan and Grid.RowSpan properties.

I found it easier to add the controls in code using copy and paste.

image

A Grid has no FontSize property, and although the Page has a FontSize property it does not seem to be inherited by the controls. I therefore set the FontSize individually for each control but there must be a better way of doing this.

I then wrote minimal code that performs calculations without always crashing, and tested the app.  When you debug, you can choose Local Machine, Simulator, or Remote Machine. I found it easier to debug using the simulator, since if you use Local Machine and Visual Studio is running on the main display, then the app you are debugging becomes invisible if you hit a breakpoint or exception. The simulator seems really good (it is actually a remote session into your own machine) and I would like some way of running all Metro apps in a window like this, not just for debugging!

image

A few reflections

A developer with experience of C# and XAML (which is also used by Windows Presentation Foundation and by Silverlight) will not have much trouble getting started with WinRT, though I noticed that XAML is substantially cut-down, as Patrick Klug observes here.

Visual Studio 2011 is an excellent IDE although I do not much like the new property editor; a minor point, but I find the latest go at prettification detrimental to usability; it is too busy. This may be a matter of familiarity and it is a minor point.

image

The XAML visual designer is slow to refresh even with my simple app, so this could be annoying with a more complex layout.

Layout with XAML works well, though it is more difficult than say Windows Forms for a new developer. It is easy to get peculiar results unless you do everything with pixel layout, which is not the best approach.

What about Metro itself? Apps always run full screen, and I had a problem with this in that my little calculator does not need all that space.

image

I am not a designer; and I suppose with a bit of effort you could add some decoration or effects to use the space, or add extra features. But why?

I was thinking about the Atari ST the other day, following the death of Jack Tramiel. The ST did not really multitask, but to get around the problem of needing to run a second app without closing the first, it had the concept of desktop accessories, available from a pull-down menu. My calculator would work well as a desktop accessory in Metro, except there is no such concept – unless you count the “Snap” split view. I wonder if Microsoft is too religious about its “Immersive UI” concept.

A few reservations then; but that does not take away from the overall impression of a strong integrated development experience for building Metro-style apps.

Windows Phone and Windows 8 convergence: a few more hints from Microsoft

The moment when Nokia is in the midst of the US launch for its Lumia 900 phone, which both Nokia and Microsoft hope will win some market share for Windows Phone 7, is not the best time to talk about Windows Phone 8 from a marketing perspective. Especially when Windows Phone 8 will have a new kernel based on Windows 8 rather than Windows CE, news which was leaked in early February and made almost official by writer Paul Thurrott who has access to advance information under NDA:

Windows Phone 8, codenamed Apollo, will be based on the Windows 8 kernel and not on Windows CE as are current versions. This will not impact app compatibility: Microsoft expects to have over 100,000 Windows Phone 7.5-compatible apps available by the time WP8 launches, and they will all work fine on this new OS.

Nevertheless, Microsoft is talking a little about Windows Phone 8. Yesterday Larry Lieberman posted about the future of the Windows Phone SDK. After echoing Thurrott’s words about compatibility, he added:

We’ve also heard some developers express concern about the long term future of Silverlight for Windows Phone. Please don’t panic; XAML and C#/VB.NET development in Windows 8 can be viewed as a direct evolution from today’s Silverlight. All of your managed programming skills are transferrable to building applications for Windows 8, and in many cases, much of your code will be transferrable as well. Note that when targeting a tablet vs. a phone, you do of course, need to design user experiences that are appropriately tailored to each device.

Panic or not, these are not comforting words if you love Silverlight. Lieberman is saying that if you code today in Silverlight, you had better learn to code for WinRT instead in order to target future versions of Windows Phone.

The odd thing here is that while Lieberman says:

today’s Windows Phone applications and games will run on the next major version of Windows Phone.

(in bold so that you do not doubt it), he also says that “much of your code will be transferrable as well”. Which is equivalent to saying “not all your code will be transferrable.” So how is it that “non-transferrable code” nevertheless runs on Windows Phone 8 if already compiled for Window Phone 7? It sounds like some kind of compatibility layer; I would be interested to know more about how this will work.

I was also intrigued by this comment from Silverlight developer Morton Nielsen:

Its really hard to sell this investment to customers with all these rumors floating, and you only willing to say that my skill set is preserved is only fuel onto that. The fact is that there is no good alternative to Silverlight, and its an awesome solution for distribution LOB apps, but the experience on win8 is horrible at best. And it doesn’t help that the blend team is ignoring us with a final v5, and sl5 is so buggy it needs 100% DEET but we don’t see any GDRs any longer.

What are these acronyms? DEET just means insect repellent, ie. bug fixes. GDR is likely “General Distribution Release”; I guess Nielsen is saying that no bug-fix releases are turning up are turning up for Silverlight 5, implying that Microsoft has abandoned it.

All in all, this does not strike me as a particularly reassuring post for Windows Phone developers hoping that their code will continue to be useful, despite Lieberman’s statement that:

I hope we’ve dispelled some of your concerns

Still, it has been obvious for some time that WinRT, not Silverlight, is how Microsoft sees the future of its platform so nobody should be surprised.

Update: Several of you have commented that Lieberman talks about WinRT on Windows 8 not on Windows Phone 8. Nobody has said that WinRT will be on Windows Phone 8, only that the kernel will be the that of Windows 8 rather than Windows CE. That said, Lieberman does specifically refer to “the long term future of Silverlight for Windows Phone” and goes on to talk about WinRT. The implication is that WinRT is the future direction for Windows Phone as well as for Windows 8 on tablets. Maybe that transition will not occur until Windows Phone 9; maybe Windows Phone as an OS will disappear completely and become a form factor for Windows 8 or Windows 9. This aspect is not clear to me; if you know more, I would love to know.

The incredible moving cursor: why your cursor jumps around when typing on your Windows 7 laptop

Here is the problem: you are typing on your laptop and suddenly the input cursor jumps to a different place and you are typing somewhere in a previous paragraph.

It is infuriating and there are long threads on the subject on Microsoft Answers here and here, for example.

I have just been speaking to a user with exactly this problem. The clue: he had recently created a new profile, which resets your Windows user settings to the default.

The answer was simple. Laptops have touchpads or trackpads which have a feature called tapping. Just tap with the finger and it registers a mouse click. Double tap and it registers a double-click.

Nice idea, but it is a vile feature for some – possibly most – users since it is so easy to trigger accidentally. Anything might happen: emails sent by mistake, documents closed, buttons clicked, and so on. It is as if your computer is being remote controlled by a malevolent third party, especially if you have a slight tremor for any reason.

Fortunately you can disable the setting, but it is among the most buried in Windows. The instructions on my Toshiba are as follows:

Go to Control Panel, Mouse, Change Mouse Settings, Advanced tab, click Advanced Feature Settings, then click Settings under Detailed Settings for Touch Pad operations, then uncheck Enable Tapping.

The path may be different for you, particularly if you have a different brand of touchpad. The above is for a Synaptics; Alps has different dialogs, for example. Poke around in mouse settings until you find it.

The setting “Disable tapping while typing” is not sufficient for some reason.

Why does this make your cursor jump, even if you do not use your touchpad? It is the vibration from your typing that is enough to trigger a tap on some machines, registering a “click” wherever the pointer happens to be (and the pointer is usually hidden when typing, making this appear even more mysterious).

The question which puzzles me is why this annoying feature is enabled by default, when it should be disabled, and second, why it is so hard to find the setting, when it is something that many people need?

I imagine this single feature has driven some users to the Mac. Most users never discover the fix, but just have the impression that Windows is buggy.

Developers: will you do Metro?

It is fascinating to watch the Metro-fication of all things Microsoft, from the Xbox 360 user interface to Windows Phone to Windows 8 to forthcoming versions of Office and other applications.

Future versions of Dynamics products were previewed at the Convergence 2012 event (which included a session called CRM goes Metro) and there are a bunch of screenshots here.

image

Microsoft calls Metro a design language and you can see its guiding principles here. Calling it a language does not seem quite right; the word “style” is more accurate, but it does have building block elements (and yes it is blocky) which I guess make it more than just a style.

A safe prediction at this point is that all Microsoft’s products will be touched by Metro influence, even though not all will become full Metro apps running on the Windows Runtime (WinRT).

In the past the style adopted by Microsoft for its own applications have strongly influenced third-party applications as well. Once Windows, Office, Dynamics and other apps have a Metro look, other apps that do not may begin to look dated or out of place.

Metro is controversial though, perhaps even more so than the Office Ribbon which replaced menus in Office 2007 and 2012. There is some connection: members of the Office team who worked with Steven Sinofsky on the design of Office 2007, including Julie Larson-Green and Jensen Harris, are now working with him on Windows 8. Harris has written extensively about the work on Office 2007 on his Office User Interface Blog, though the last substantial post was in 2008.

What’s not to like about Metro? Here’s a few arguments against:

  • Beauty is in the eye of etc; but the blockiness of the Metro style does give it a utilitarian appearance. In Windows Phone 7 it is nice to use, but not so great to look at.
  • The Live Tile concept, where shortcut blocks can be populated with current information, adds a random element to Metro start screens which does not always look good.
  • The emphasis on simplicity and immersion makes Metro vulnerable to the accusation that it wastes too much precious screen space.
  • Metro tends to be a horizontally scrolling style, though I am not sure if this is baked into the guidelines. This takes some adjustment since most of us are more used to vertical scrolling to see more content.
  • Metro seems to be optimized for a touch UI, and while its advocates insist that it is just as good with keyboard and mouse, that is a stretch. Metro seems to be a big bet on touch as the future of human-computer interaction.

On the other hand, the usability of Windows Phone 7 is a point in its favour, and some are convinced. Paul Greenberg, in a positive take on Microsoft’s strategy based on his trip to Convergence 2012, says:

They have nailed UX (a.k.a user experience). Nailed it. Their combination of the extremely well done Metro interface and their work on natural user interfaces involving voice and touch is the new gold standard – and I’m someone who loves Apple products. (please, Mac fanboys, spare my life.)

I would be interested to hear from developers whether you expect to embrace the Metro style in your apps, wither in WinRT or elsewhere.

What’s new in SQL Server 2012?

Microsoft’s SQL Server 2012 is released next month and available to download now (I am not sure what the distinction is). I have a high regard for Microsoft’s database server; it seems to me that the team mostly gets it right. The product has become somewhat diffuse though, especially as the Business Intelligence aspect has grown, and this may account for what to me is a rather unfocused launch for SQL Server 2012, even though its name suggests that it is the most significant release since SQL Server 2008.

The following slide summarises the new features, presumably with the type size suggesting the importance of each one.

image

But is the ODBC Driver for Linux really more important than the SQL Server Data Tools, for example? Not in my view; but that reflects how SQL Server represents different things to different people.

So what are the key new feature? Here’s my quick take.

Always On

A new feature called Availability Groups that is an improved version of database mirroring

Improved failover clustering which supports multi-site clustering across subnets – above to failover across datacentres.

ColumnStore Index

A new type of index for data warehouses. This is actually pretty simple: the name says it all. Here is Microsoft’s illustration:

image

and explanation:

A columnstore index stores each column in a separate set of disk pages, rather than storing multiple rows per page as data traditionally has been stored.

Why do this? Because it is more efficient when the query only requests a a few columns from the table. Microsoft claims performance improvements from 6X to 100X in cases where the the data can be cached in RAM, and thousand-fold improvements where the working set does not fit in RAM.

SQL Server Data Tools

This is my favourite feature, probably because it is developer-focused. These are the tools that were code-named “Juneau” and which install into Visual Studio 2010. There are some visual tools, but this is essentially a code-centric approach to database design, where you design your database with all its tables, queries, triggers, stored procedures and so on. You can then build it and test it against a private “localdb” instance of SQL Server. What I like is that the database project includes the entire design of your database in a form that can be checked into source control and compared against other schema versions. Here is the Add New Item dialog for a database project:

image

Data Quality Services

Data Quality Services (DQS) lets you check your data against a Data Quality Knowledge Base (DQKB), the contents of which are specific to the type of data in the database and may be created and maintained by your business or obtained from a third-party. If your data includes addresses, for example, the DQKB might have all valid city names to prevent errors. Features of DQS include data cleansing, de-duplication through data matching, profiling a database for quality, and monitoring data quality.

image

Illustration and more details are here.

Updated SQL Server Management Studio

SQL Server Management Studio now runs in the Visual Studio 2010 shell.

LocalDB

LocalDB is a local instance of SQL Server aimed at developers and for use as an embedded database in single-user applications. It is a variant of SQL Server Express, but different in that it does not run as a service. Rather, the LocalDB process is started on demand by the SQL native client and closed down when there are no more connections. You can attach database files at runtime by using AttachDBFileName in the connection string. LocalDB is intended to replace user instances which are now deprecated.

FileTables

This is the most intriguing feature in SQL Server 2012. It is described here:

The FileTable feature brings support for the Windows file namespace and compatibility with Windows applications to the file data stored in SQL Server … In other words, you can store files and documents in special tables in SQL Server called FileTables, but access them from Windows applications as if they were stored in the file system, without making any changes to your client applications.

and the purpose:

Enterprises can move this data from file servers into FileTables to take advantage of integrated administration and services provided by SQL Server. At the same time, they can maintain Windows application compatibility for their existing Windows applications that see this data as files in the file system.

Integration of the file system and the database is not a new idea, and Microsoft has tried variants before, such as the “M” drive that was once part of Exchange, the aborted WinFS feature planned for Windows Longhorn (Vista), and SharePoint, which can store documents in SQL Server while presenting them as Windows file shares through WebDAV.

That said, FileTables in SQL Server 2012 are not an attempt to reinvent the file system, but presented more as a way of supporting legacy applications while managing data in SQL Server. It is an interesting feature though, and it would not surprise me if users find some unexpected ways to exploit it.

Power View

Codenamed “Project Crescent”, this is a web-based reporting client for businesses that have embraced Microsoft’s platform, because it has several key dependencies:

  • SharePoint Server Enterprise Edition
  • SQL Server Reporting Services
  • Silverlight on the client

In fact, Power View is described as:

a feature of SQL Server 2012 Reporting Services Add-in for Microsoft SharePoint Server 2010 Enterprise Edition

Power View reports that I have seen do look good, and have an Office ribbon style designer for designing customising the report. That said, I would guess that Microsoft now wishes it had used HTML 5 rather than Silverlight for this – there are those Apple iPad and Windows 8 Metro users to think of, after all.

Microsoft emphasises that Power View is not a replacement for Report Designer or Report Builder, but an ad-hoc reporting tool.

Closing thoughts

There is more in SQL Server 2012, as a glance back at the initial slide will tell you, but the above is a starting point if you are wondering what it is all about. It is also worth noting that Microsoft still gives away SQL Server Express which supports up to 10GB per database and includes many of same features as the paid-for versions; it is the same product at heart.

Someone who finds that SQL Server Express actually meets all their needs asked me why Microsoft gives it away. My guess is that this is a consequence of all the other free database engines available such as MySQL, PostgreSQL, interesting  newer NoSQL options like mongoDB, and of course equivalent free versions of Oracle and IBM DB2. A proportion of customers who start with SQL Server Express will grow into the paid-for editions.

This does make SQL Server Express an excellent choice for smaller scale applications and small businesses, particularly since it integrates smoothly into Microsoft’s developer stack. Having said which, I am becoming something of an Entity Framework sceptic, but that is a story for another day – and fortunately you do not have to use EF if you do not want to.

Just three Windows 8 on ARM tablets at launch? Not good for Microsoft

image

Bloomberg reports unknown sources stating that only three Windows on ARM (WOA) tablets will be available at launch:

There will be fewer ARM-based devices in the rollout because Microsoft has tightly controlled the number and set rigorous quality-control standards, said one of the people. The new version of Windows will be the first to use ARM processors, which are most commonly found in smartphones. Windows 7, the current version, only works with Intel’s technology. Three of the Windows 8 ARM devices will be tablets, the people said.

This may be nonsense but I can see this playing out badly for Microsoft. I am making several assumptions here:

1. The design of Windows 8 is all about tablets. If it fails on tablets, then it has failed.

2. Windows 8 Intel tablets will not compete with the Apple iPad and will probably not do well. The main reason is the old one: Windows desktop is mostly unusable with touch alone. I mean, you can get it to work but it is not much fun, and that will not change.  Supplementary reasons are that Intel CPUs are less efficient than ARM which means shorter battery life, and that traditional Windows applications expect lots of disk space and RAM, and that OEMs will want to pre-install anti-malware and other foistware, and repeat the mistakes of the past that are driving users with relief towards iPads.

I can also imagine Windows 8 Intel tablets being sold with add-on styluses and keyboards that are necessary to operate desktop applications, but a nuisance in all sorts of ways.

3. Windows on ARM has more potential to be a compelling iPad alternative. Metro-style apps are designed for tablets and will work well with touch alone. ARM devices may be lightweight and with long battery life. The locked-down Windows Store is some protection against excessive OEM interference. With Microsoft Office compatibility thrown in, these might appeal to a business user who would otherwise buy an iPad.

Despite the above, my guess is that Microsoft’s OEM partners will instinctively put most of their effort into Windows 8 on Intel tablets, because that it the way it has always been, and because of an assumption that someone buying a Windows 8 device will want to run Windows applications, and not just Metro-style apps.

The problem is that such people will try Windows 8 on Intel tablets, hate them because of the reasons in (2) above, and end up buying iPads anyway.

The counter argument? That Apple conquered the tablet market with just one model, so perhaps three is more than enough.

Fixing a Metro-style app in Windows 8 Consumer Preview

I am a fan of Wordament for Windows Phone and Windows 8. This is a Metro-style app. I was annoyed though to discover that it was broken on my Windows 8 slate. That is, it could not be launched because it did not exist when searching the Start menu, nor in the “All apps view”, but it could not be installed because the Store considered that it was already installed.

I could go into Store – Settings – Accounts and see it listed under “View your apps”, where it also said it was installed.

There was some kind of warning of problems, in that from time to time Windows 8 had been offering to fix a problem with Wordament, usually after I had set the slate to sleep while the app was running. When prompted, I always accepted and let it do its stuff, but the result of the last effort was the app had disappeared completely.

How to fix this? I found one piece of official advice for a similar problem which suggested refreshing the PC. This is not much fun because you lose all installed applications other than Metro apps – ugh. I did a bit of digging.

My first thought was to try manually deleting the app to see if I could trigger a reinstall. I got a little way with this. I found that Metro-style apps are installed into the WindowsApps folder, which is a sub-folder of Program Files. However, if you double-click this folder you get an access denied message, though the message also invites you to continue.

image

I did not wish to trample all over the security features of Windows 8, though following a hunch I did try restarting in safe mode. You can do this by choosing Settings – More Settings and clicking Restart now under Advanced startup. The PC restarts and you get to a “Choose an option” screen where you can click Troubleshoot. Next, click Windows Startup Settings and then Restart. This gets you the familiar F8 options including Safe mode.

In Safe mode you have read-only access to the WindowsApps folder, and there I could see the Wordament install files.

image

Here you can verify that this is an HTML and JavaScript app, just as its creators said. The JavaScript is minified so opening it up is not all that rewarding.

image

Still, I could confirm that the app was in fact installed, but I could not run it.

I had another idea. If all I needed was a shortcut to the app, perhaps I could grab one from another profile on the machine. I restarted in normal mode, created another user (which must be one with a Microsoft Live ID) and logged in as that user (shutdown /l logs off without shutting down). I installed Wordament, and it ran fine.

So where are the per-user shortcuts? Easy, just go along to c:\users\[username]\AppData\Local\Microsoft\Windows\Application Shortcuts and there they are.

image

Again I had to grab permission to access this folder, but doing this in a user folder is not so bad as in a system folder.

I copied the shortcut to the same location in my normal home folder and lo, Wordament reappeared in the Start menu.

image

Not too bad; but it seems to me that Windows 8 should have a built-in way of fixing this kind of problem – perhaps it has, and I missed it.

Microsoft deprecates Subsystem for UNIX, recommends open source instead

I am getting started with the Windows Server 8 beta and noticed this in the list of Features Removed:

The Subsystem for UNIX-based Applications (SUA) is deprecated. If you use the SUA POSIX subsystem with this release, use Hyper-V to virtualize the server. If you use the tools provided by SUA, switch to Cygwin or Mingw.

Cygwin and Mingw are open source tools which let you use some Unix tools on Windows. That said, my preference would be the virtualisation route, rather than installing these layers on Windows Server itself.

Crisis in Microsoft land: what next after the mixed reception for Windows 8 Consumer Preview?

Microsoft will have expected some users to find the transition from Windows 7 to Windows 8 challenging, but I doubt it was ready for the reaction from its own community that it is receiving for Windows 8 Consumer Preview.

image

The best place to start is the comments on Building Windows blog here and here – at the time of writing, around 1300 comments, most from users who have downloaded and tried the Consumer Preview. It is worth browsing through them if this is something you care about; some are knee-jerk negative reactions, but some others are thoughtful and wanting Microsoft to succeed.

Overall, the message is: don’t make us use Metro, let us stay in the desktop if we choose.

I’m still waiting for an explanation as to why my 30" desktop screen has to look like a smartphone, that’s what my smartphone is for.

My users range from tech savvy to plant workers and truck drivers. Like all of us, the start button is baked into our DNA … How can I make the desktop the default UI?  I’m not going to deploy metro desktop to my users as the default screen. I would rather deploy a slew of ipads and I’m no ipad fan that is for sure.

In 17 years of using Windows I have never used the Windows key. Interestingly I’ve never seen any user of a computer use the Windows key. I don’t want to learn and remember key combinations to do things that I can currently do trivially using the start menu.

Let me tell you something, I always have a gazillion webbrowser instances and tabs open (rarely less than 50 browser tabs and as much as 100) – I often run 5-10 Visual Studio instances simultaneously (and I know your usage statistics says average is 1, so you won’t make it easier to distinguish between them, but this is a different matter..) – usually have 10+ explorer windows – and I absolutely love working this way, I am productive this way and that’s what counts for me. I run 2 big screens with 2560×1440 resolutions to give me as much working space as possible, so I can easily switch between a lot of my open applications, browser tabs and explorer windows. Even if I had a use for some Metro UI application, I would be looking for a desktop alternative, so I could have it running side-by-side with my other applications – let’s be honest, one application at a time might be great for the average joe, but it’s a horrible solution for professional users.

Part of the problem here is that the Metro UI Windows 8 is more about solving a problem Microsoft has – how to compete with the iPad – than a problem its users face. It has been clear since Windows 8 was first previewed that the tablet UI and new Windows Runtime was Microsoft’s main focus, and that desktop users would get less value than they might normally expect from a major release. The reaction to the Consumer Preview though is more serious than that: many users are saying that Windows 8 is, for them, a substantial step backwards.

I am writing this in Windows 8 on a desktop and it is not that bad. Apps are easy to launch once you get the hang of Windows Key – Search, and there are workarounds for the annoyances. There is no doubt though: if you are working mainly in the desktop – which is inevitable for most users upgrading – the “immersive UI” does get in the way at times. Since it must run full screen, a Metro app obliterates the taskbar and handy features like the time and date which shows bottom right in the notification area. If there were an option to run Metro apps in a window, I would grab it.

The irony here is that the name “Windows” refers to the ability to run multiple apps in windows, as opposed to the single application UI offered by DOS.

Another issue is that if you switch between Metro and Desktop, you have to learn two ways to do common tasks. For example, I tend to use the taskbar previews to find browser tabs, since if you have numerous tabs open it is the quickest way to find the one you want. If you are in the Metro browser though, you have to right-click to show the tabs. Right-click by mistake in the desktop browser, and you get a context menu. Add to favourites? Different. History? Different. All friction if you just want to get your work done.

If you have multiple monitors, Microsoft’s “Move the mouse to the corner” idea for raising the Charms does not work well. The “Corner” is on the primary display, but if you have multiple displays it is not a corner but the border between two screens. You have to position the pointer just so to make it work.

There is more; but it is not my intention to iterate through every annoyance. I am more interested in the reaction overall and in what Microsoft will do next.

I will add that I admire what Microsoft has done from a technical standpoint in the Windows Runtime and that Windows 8 on a touch device with the right screen size has great promise as a new tablet operating system. It is my first choice for travelling; iPad and Android tablets are too limited, and I am more than ready to leave the bulky, awkward laptop at home.

Needless to say, few of those commenting will have tried such a device, for reasons I have described before. Windows 8 in a virtual machine is a worst case, and it is a shame that so many (for good reasons) are trying it that way.

What next for Windows 8?

It seems to me that Microsoft now has, broadly, three options for Windows 8.

1. Plough on regardless. This, I imagine, is the plan as it stands currently. Microsoft has deliberately made Metro unavoidable in Windows 8, I presume to ensure that it will not be ignored. There will be some refinements in the final release, improved discoverability of features users are struggling to find, but no fundamental change to the design approach. The plan as stated last month is that there will be no further beta, and the next public release will be the release candidate.

The question: can Microsoft do enough tweaking to win over a majority of its own community? Right now my sense is probably not. A negative reaction on release will be costly for the company and for all those third-parties who depend on its platform; yes, Windows 7 will have a prolonged life, but there will be loss of momentum for the platform overall.

2. Delay Windows 8 for further refinement. Go through the reactions to this broad public beta test, and work out how to fix the issues without losing the vision behind this “reimagined” Windows. Delay would be painful, of course, but less bad than a failed release.

The quick version of this would be to do what many are asking for: make the Metro-style personality in Windows 8 optional. Would that be such a disaster?

3. Release Windows on ARM (WOA) ahead of the full Windows 8. Most of the objections users have to Windows 8 do not apply to WOA, where Metro is primary, where all devices are touch tablets, and where those desktop applications (mainly Office) and utilities that are included are there to fill the gaps which Metro cannot yet fill. As for x86, users are still happy with Windows 7. When Vista was the current version, users could not wait for the next release, but there is no such pressure with Windows 7.

Microsoft’s platform nearly invisible at QCon London 2012

QCon London ended yesterday. It was the biggest London QCon yet, with around 1200 developers and a certain amount of room chaos, but still a friendly atmosphere and a great opportunity to catch up with developers, vendors, and industry trends.

Microsoft was near-invisible at QCon. There was a sparsely attended Azure session, mainly I would guess because QCon attendees do not see that Azure has any relevance to them. What does it offer that they cannot get from Amazon EC2, Google App Engine, Joyent or another niche provider, or from their own private clouds?

Mark Rendle at the Azure session did state that Node.js runs better on Windows (and Azure) than on Linux. However he did not have performance figure to hand. A quick search throws up these figures from Node.js inventor Ryan Dahl: 

  v 0.6.0 (Linux) v 0.6.0 (Windows)
http_simple.js /bytes/1024 6263 r/s 5823 r/s
io.js read 26.63 mB/s 26.51 mB/s
io.js write 17.40 mB/s 33.58 mB/s
startup.js 49.6 ms 52.04 ms

These figures are more “nothing to choose between them” than evidence for better performance, but since 0.6.0 was the first Windows release it is possible that it has swung in its favour since. It is a decent showing for sure, but there are other more important factors when choosing a cloud platform: cost, resiliency, services available and so on. Amazon is charging ahead; why choose Azure?

My sense is that developers presume that Azure is mainly relevant to Microsoft platform businesses hosting Microsoft platform applications; and I suspect that a detailed analysis would bear out that presumption despite the encouraging figures above. That said, Azure seems to me a solid though somewhat expensive offering and one that the company has undersold.

I have focused on Azure because QCon tends to be more about the server than the client (though there was  a good deal of mobile this year), and at enterprise scale. It beats me why Microsoft was not exhibiting there, as the attendees are an influential lot and exactly the target audience, if the company wants to move beyond its home crowd.

I heard little talk of Windows 8 and little talk of Windows Phone 7,  though Nokia sponsored some of the catering and ran a hospitality suite which unfortunately I was not able to attend.

Nor did I get to Tomas Petricek’s talk on asynchronous programming in F#, though functional programming was hot at QCon last year and I would guess he drew a bigger audience than Azure managed.

Microsoft is coming from behind in cloud -  Infrastructure as a Service and/or Platform as a Service – as well as in mobile.

I should add the company is, from what I hear, doing better with its Software as a Service cloud, Office 365; and of course I realise that there are plenty of Microsoft-platform folk who attend other events such as the company’s own BUILD, Tech Ed and so on.

Update:

This is the basis for the claim that node.js runs better on Windows:

IOCP supports Sockets, Pipes, and Regular Files.
That is, Windows has true async kernel file I/O.
(In Unix we have to fake it with a userspace thread pool.)

from Dahl’s presentation on the Node roadmap at NodeConf May 2011.