Category Archives: windows

Notes from the field: Office 365 pain following Windows 10 upgrade

I got involved in looking at a PC where a few Office 365 problems had arisen following an upgrade to Windows 10 (prompted by Microsoft supposedly ending its free upgrade offer).

In particular, SharePoint online was crashing Internet Explorer. Internet Explorer? Don’t Windows 10 users stick to Edge?

Unfortunately Edge is problematic with certain sites. It works OK with Office 365 but there are some issues. For example, open a SharePoint document library in IE and you get the very useful option to “Open with Explorer”, an Explorer UI for your cloud-hosted files.

image

Try this in Edge and you get:

image

Note how the help information does not tell you how to fix the problem.

For reasons like this, the user still had a shortcut to SharePoint online in IE on the Windows 10 taskbar. Click it though, and IE would crash with its “Internet Explorer has stopped working” dialog.

Probably an add-on, I thought. This was proved right when I opened IE with add-ons disabled – try running:

"%ProgramFiles%\Internet Explorer\iexplore.exe" –extoff

– and found that SharePoint online worked fine. After some experimentation, I discovered that the SharePoint Export Database Launcher add-on was causing the problem. Disabled it and SharePoint worked fine.

image

This add-on is installed by Microsoft Office. It prompts a couple of thoughts.

I do not know if every Windows 10 PC is similarly afflicted, but problems like this do suggest a lack of quality control in some areas. It is also unfortunate that when you install Office 365 Professional Plus you do not get any options; you get everything. Including, in this case, a buggy add-on.

Second, I wish Microsoft would pause from its energetic feature work with Office 365 and sort out the core functionality of working with documents in SharePoint online. As someone pointed out to me on Twitter today, the situation with OneDrive sync clients remains a mess, and when it goes wrong it is not always easy to troubleshoot.

Incidentally, I cannot resist telling you how to fix another OneDrive for Business issue. Here’s the problem: you open a document library in a web browser (even works in Edge), hit Sync, and OneDrive for Business fires up. If this is the first document library to be synced you might be prompted to sign in. So you enter your email address, hit Next, and then enter your password and click Sign in. Sometimes though nothing happens and you can’t sign in. What’s the fix? Don’t click Sign-in, press Enter!

The battle to own Windows Explorer shell overlay icons, or why your OneDrive green ticks have stopped working

There are a number of dark areas in Windows that do not work quite right. MAXPATH anyone? But here is another one that I have only recently become aware of.

If you use applications such as Mozy, OneDrive (Business or Personal), Adobe Creative Cloud, Tortoise (a developer utility) or Dropbox, you will be familiar with the idea of files in Explorer showing little icons to indicate their state: synced, not synced, in conflict, excluded and so on.

image

A common complaint is that while everything still works, the little green ticks (or whatever) no longer appear.

The reason for this is simple, if depressing. Well, there are two reasons. One is that Windows has a limit of 15 overlay icons. If more than that are specified (by multiple applications) then anything over the limit does not work.

The second is that multiple applications cannot apply overlays to the same file. So if you tried to set up your Tortoise repository in a OneDrive folder (do not do this), one or other would win the overlay battle but not both.

The overlay configuration is stored in the registry, at HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShelliconOverlayIdentifiers\

If you visit this location in RegEdit, you will notice something interesting:

image

Some of these entries, including AccExtIco (Adobe Creative Cloud), OneDrive (personal OneDrive) and SkyDrivePro (OneDrive for Business), have a leading space in their name. Why? That is because the authors of these applications want THEIR stuff to work right, so by including the leading space they get to the top of the queue.

(I also have entries for SkyDrive as well as OneDrive, registry bloat caused by the name change no doubt).

Microsoft’s support article on the subject therefore suggests renaming these entries to have TWO leading spaces:

Rename the following registry keys. To do this, right-click the folder, select Rename, and then rename the folder. When you rename the folder, add two spaces at the beginning of the name.

You can see where this is going to end … Adobe will install its entries with three spaces, Microsoft will come back with four, and so on. Possibly.

It is also an imperfect solution. On a machine suffering from this issue I performed an Office repair, which restored the old entries with a single leading space while not removing those with two leading spaces. More bloat.

If you get this problem, the best solution is to remove applications so that there is no conflict. If you want to use Mozy for backup, Dropbox because it works, and two OneDrives because they are nearly free, well, you are not going to have all your icon overlays working and that is that.

Microsoft financials April-June 2016: on track but continued drift away from consumers

Microsoft has announced its latest financials, and I have made a quick table summarising the year-on-year comparison for the quarter. See the end of this post for what the confusing segment categories represent.

Quarter ending  June 30th 2016 vs quarter ending June 30th 2015, $millions

Segment Revenue Change Operating income Change
Productivity and Business Processes 6969 +308 3000 -167
Intelligent Cloud 6711 +415 2190 -443
More Personal Computing 8897 -346 964 +359
Corporate and Other -1963 -1943 -3074 +5384

A few observations.

Office 365 is Microsoft’s current big success. According to the company’s press release, Office 365 revenue grew 54%, which is huge. However, on-premise sales declined which meant that overall revenue growth in “Office commercial products and cloud services” was only 5%. Still, that’s a successful transition.

The picture was similar in consumer Office, with Office 365 consumer increasing by 23.1% while overall revenue grew by only 19%.

Dynamics CRM is moving to the cloud. Microsoft says that Dynamics CRM online grew by more than 2.5 times, while overall revenue grew only 6%. The maths may be deceptive, if CRM online grew from a small base, but it is a clear trend. Not to be confused with Dynamics 365, which is ERP/Business process management, though Nadella is also bullish on the latter.

Azure revenue grew 102%.  Microsoft’s cloud results are not quite as sparkling as those from Amazon Web Services, but still impressive.

Enterprise Mobility is growing. This is a suite of tools built around InTune, Microsoft’s Mobile Device Management solution.

Surface is doing OK. Revenue up 9% thanks to Surface Pro 4 and Surface Book.

Windows news is mixed. “Windows OEM non-Pro revenue grew 27% and OEM Pro 2%” says the release, which given the weak PC market is decent. Windows 10 is at 350 million active devices, which Nadella said in the earnings webcast is the fastest ever adoption rate for a new version Windows; hardly surprising given the free upgrade offer and high-pressure upgrade marketing.

Xbox news is mixed. Gaming revenue is down 9%. Xbox Live revenue grew 4% but Xbox console revenue is down.

Windows Phone dives towards oblivion. Revenue is down 71%, from a base that was already tiny.

Microsoft cares less and less about consumers. “We will deliver more value and innovation” in Windows, says Nadella, “particularly for enterprise customers.” I also note the remark in the press release that “Search advertising revenue excluding traffic acquisition costs grew 16% (up 17% in constant currency) with continued benefit from Windows 10 usage,” suggesting that part of the Windows 10 consumer strategy is to use it as a vehicle for advertising; this is known in the business as “adware” and does not encourage me; it will push canny users towards Mac or Linux. In the earnings call, Nadella said that 40% of search advertising revenue is from Windows 10 devices. “The Cortana search box has over 100 million monthly active users with 8 billion questions asked to date,” said Nadella.

A reminder of Microsoft’s segments:

Productivity and Business Processes: Office, both commercial and consumer, including retail sales, volume licenses, Office 365, Exchange, SharePoint, Skype for Business, Skype consumer, OneDrive, Outlook.com. Microsoft Dynamics including Dynamics CRM, Dynamics ERP, both online and on-premises sales.

Intelligent Cloud: Server products not mentioned above, including Windows server, SQL Server, Visual Studio, System Center, as well as Microsoft Azure.

More Personal Computing: What a daft name, more than what? Still, this includes Windows in all its non-server forms, Windows Phone both hardware and licenses, Surface hardware, gaming including Xbox, Xbox Live, and search advertising.

Adapting a native code DLL to be called from a Store or Universal Windows app

I am writing a Bridge game in C# – yes, I have been doing this for some time, it does run now but it is not ready for public unveiling.

It is good fun though and a learning experience, as I am writing it as a Windows 8 Store app. This means it can also be a Universal Windows Platform app but I have kept it compatible with Window 8.1 as I don’t want to lose that large market of Windows 8 users who have not upgraded to 10. Hmm.

Bridge is a card game in which a pack of 52 cards is dealt into 4 hands of 13 cards. Each hand is played as a sequence of 13 4-card “tricks”, and each trick is won one of two opposing pairs of players according to the cards played. Each pair of course tries to win as many tricks as possible, so one of the points of interests is how many tricks can be won if you play perfectly (ie with full knowledge of all four hands). Another point of interest is how each card played affects the potential number of tricks you can win with best play. For example, leading a King might cost you a trick (or more) if your opponents hold both the Ace and the Queen of that suit.

This is called “double dummy” analysis and smart people have written algorithms to calculate the answers. A double dummy analysis is useful in a bridge game for two reasons. One is that users may like to know, after playing a hand, what their best score could have been, or even to analyse the hand and see how if they played this card rather than that card at trick such-and-such the outcome would have varied. The other is that you can use it to assist the software in finding the best play. Of course it is important that the software plays fair by not using knowledge of all four hands beyond what would be known by human players; but it is legitimate to try out various possible hands that match what is currently known and use double dummy analysis on these hands.

One such smart person is Bo Haglund who wrote a C++ Windows library for double dummy analysis, called Double Dummy Solver (DDS) and released it as open source under the Apache 2 license. It works very well and is widely used in the Bridge software community, and has now been ported to Mac and Linux; you can find the latest code on Github.

Modifying a native code DLL to use with a Store app

I wanted to use the library in my own Bridge game but faced a compatibility problem. Windows Store apps can only call into DLLs that meet certain requirements, such as using only a subset of the Windows API, and DDS did not meet those requirements. My choice was either to port the DLL to C#, or to modify the code so that it would work as a Windows Runtime native DLL.

I have no doubt that the code could be ported to C# but it looks like rather a long job that would result in a library with slower performance (please feel free to prove me wrong). I thought it would be more realistic to modify the code, so I created a new Windows 8.1 DLL project in Visual Studio 2013 (I am now using Visual Studio 2015 but it is the same for this) and set about modifying the code so that it would compile.

In no particular order, here are some notes on what I learned.

I was able to get the DLL to compile after disabling the multi-threading support (more on this later), and commenting out some functions that I don’t yet need.

Another issue I hit was that Visual C++ by default performs “Security Development Lifecycle” checks (compile with /sdl). This means that that common functions like strcpy, strcat, sprintf and others will not compile. You have to use “secure” versions of those functions, strcpy_s, strcat_s, sprintf_s and so on. These are specific to Microsoft’s libraries though. Of course you can just not compile with /sdl, or define _CRT_SECURE_NO_WARNINGS, but I chose to fix all of these. Now the library compiled.

But did it work? No. I had introduced a stupid bug which took me a while to fix. Did it then work? Yes, but it took me some time to get it working from C#.

Next, I kept getting DLLNotFound exceptions. OK, so you have to add the DLL as content in your C# project, and make sure it is set to copy to your output. I still got DLLNotFound exceptions. It turns out that you get this exception even when the DLL is present, if there is a dependency in the DLL which is not found. What dependency was not found? I downloaded the Sysinternals Process Monitor utility and set the filter to monitor my C# game. I excluded SUCCESS results. Then I tried to load the DLL. This told me that it was looking for the file msvcr120_app.dll (the Windows Runtime version of the Visual C++ runtime library). My first thought was to add runtime libraries from the appx deployment packages, in:

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0

image

Then I discovered that all you need to do is to add a reference to the Visual C++ runtime packages, much easier. That fixed DLLNotFound.

Next, I had some problems calling the 64-bit DLL with Platform Invoke (PInvoke) from C#. I found it easier to compile both my C# app and the DLL itself as 32-bit code. I may go back to the 64-bit option later.

Concurrency issues

Now I had everything working; except that my DDS port was far inferior to the standard one because it was single-threaded. The original used QueueUserWorkItem which is not available in a Windows Runtime DLL. I searched for what to do, and came across this MSDN article which recommends using RunAsync, WorkItemHandler and IAsyncAction. However my DLL was not currently compiled using /ZW for “Consume Windows Runtime Extension”. I could add that of course; but then my DLL would have a dependency on the Windows Runtime and if I wanted to use the code for, say, Windows 7, it would not work. or not without yet more #ifdef blocks. No big deal perhaps; but my preference was to avoid this dependency.

There may be other solutions, but the one that I found was to use the Concurrency Runtime. Previously, QueueUserWorkItem was called in a for loop. I simply modified this to use a parallel_for loop instead, using the example here for guidance. I also added:

#include <ppltasks.h>

using namespace concurrency;

to the top of the code. It works well, speeding performance by about three times on my quad-core desktop. Of course I was greatly helped by the fact that the code was already written with concurrency in mind.

image

The effect is spoiled by the time it takes to load the DLL but fortunately you can get DDS to solve multiple boards in one call though I have yet to experiment with this.

Is Windows 10 stable? Mostly it is, but there are some concerns

“Windows 10’s lack of stability is really starting to be an issue for me” says Mary Jo Foley over on zdnet.

The problems she experienced include the Store not working, the Mail app not syncing and then wiping her accounts after an update, and the PC randomly shutting down. She has now done a clean install and so far all is good.

I am using Windows 10 now for most of my work, having in-place upgraded from Windows 8.1. My experience has been better, with no random shutdowns, and the desktop environment has been perfectly stable. There are some bugs and annoyances though. Here are the ones that come to mind:

The Start menu bug is the biggest annoyance. This one deserves some reflection. If you have a lot (possibly more than 512, possibly some other factors) of Start menu entries, Windows 10 does not show them all. Even Cortana/Search does not find them. The entries exist though, and I use my Explorer workaround to find them.

I find this bug astonishing. It looks like poor coding in a hugely sensitive part of Windows, the first thing people mention when they explain why they dislike Windows 8. There is still no fix from Microsoft, though some users report improvement after various updates.

Another annoyance is that on my HP laptop I cannot disable tap-to-click. I can disable it temporarily but it reverts, certainly on the next start-up.

image

While some users like tap-to-click, I loathe it and do not think it should ever be on by default. In many Windows laptops the setting is hard to find and some users have ditched Windows because of it, and switched to Macs. The reason is that it is easy to tap the trackpad by mistake; and an accidental click can have dire consequences, such as sending an email by mistake, or clicking Yes in a dialog when you meant No. If you suffer from any sort of tremble it is a disaster.

I am not sure who is responsible for this bug; it could be the Synaptics driver, but it was fine in Windows 8.1.

Another annoyance relates to the new Windows calculator. On my desktop PC I am in the habit of pressing the Calculator key to open it (I have a Microsoft keyboard). In earlier versions of Windows the calculator appears instantly. In Windows 10 it may take several minutes or not appear at all. Of course what you tend to do is to assume that you did not press the key hard enough and press it again. Eventually lots of instances appear. I’ve looked into this a little; the Calculator does appear in the Task Manager process list, but with a status of Suspended. I’ve also had a scenario where the calculator appears but does not accept input until you click on it with the mouse, defeating the value of the key.

I am using the Edge browser but in practice it is not that good. I like the direction Edge is taking, but some sites do not work properly, and there are bugs. Favourites do not work when you have a long list; you click a sub-folder but the wrong entries appear, until it settles down and starts functioning correctly. You can pin the task pane (with Favourites, History etc) but the setting does not persist when you next start the browser. I also sometimes get long delays opening a web page; it is always hard to say what causes these and sometimes it will be a server issue, but Edge is worse than other browsers so I think it is partly to blame.

Some of the new apps show promise but are not 100% stable. Photos is good but I have had it exit silently when scrolling through a long list (perhaps related to OneDrive issues). I still prefer Paint for quick cropping and simple editing. The Music app has its attractions, but Foobar2000 is much faster, and Spotify is better if you want all the cloud streaming and social aspects.

Talking of OneDrive, the lack of placeholders in Explorer, where a file is listed but only downloaded on request, is an issue though I do not find it too difficult to work around. I have a OneDrive folder called synced which I sync on every PC I use. Photos of course does have a kind of OneDrive placeholder system.

So there are annoyances, and others will have different ones, but nothing I would describe as instability. Most applications run fine, and I have found application compatibility with Windows 7 and 8 very good. I like the faster boot and resume. I like the new Task View button and the multiple desktops. Overall it is working OK for me.

My general advice when consulted about whether to upgrade is to wait until next year, unless there are pressing reasons to go more quickly. I am also aware of numerous issues related to the in-place upgrade. One user for example upgraded from Windows 7 because of the annoying nags from Windows Update. The upgrade worked, but for some reason resulted in tablet mode being enabled (I cannot be sure whether this was a mis-click or an upgrade issue). This is on a desktop PC. Unfortunately, tablet mode is almost as confusing as Windows 8 was for a less technical user. The taskbar is hidden and it is not easy to find your applications.

I am sure Windows 10 will be the best version yet. It is taking time though and from a user perspective there is no rush (yes, it was released before it was ready). From Microsoft’s point of view it is important that the worst bugs get fixed soon (Start menu, please); and the generally poor performance of the Universal apps is a concern, considering the strategic significance of the platform.

Update: a newer Synaptics driver on the HP site has improved the trackpad problem; at least, the setting has survived a reboot so I hope it is fixed.

Windows 10: My Surface Pro is mocking me

I have a Surface Pro, first version, still a reasonable spec with Core i5 and 4GB RAM, though the 128GB SSD is too small and a frustration.

Still, Microsoft hardware, Windows 8.1 installed and in good shape, Windows 10 upgrade will be a breeze?

Now, I know there is an ISO route that would probably work but I decided to wait for the upgrade to arrive via Windows Update since I have yet to see this run successfully. In due course the GWX (Get Windows 10) update sprang to life and said my upgrade was ready.

image

Note that in anticipation of the big day I had freed over 10GB of disk space which should be enough, right?

The upgrade failed though.

image

Well, I understand that things go wrong sometimes; but note that Microsoft has not seen fit to give us any log entries to give a clue about what might be going wrong, just an error code and a useless link that leads to generic Windows Update troubleshooting tips.

I did try a few things. Freeing more disk space. Resetting Windows Update. The famous sfc /scannow beloved of generic forum respondents. I was rewarded for my efforts with a variety of different error codes but the same outcome.

Now my Surface is mocking me. Every time I boot up, I get the little pop up assuring me that my upgrade is ready. Every time I shutdown I am am invited to “update and restart”, the machine attempts to install Windows 10, and then again it fails.

I guess I should get the message: this is not going to work.

image

Again, I know there is an ISO route and I guess I will have to use it; but while I am not really surprised, it is disappointing that even on first-party hardware the automatic upgrade is so problematic.

Postscript

I am not sure what changed, but I tried the update again a couple of days ago and it worked. This is the first time I have successfully upgraded a PC to Windows 10 via Windows Update.

image

Using Explorer as an alternate Start menu for Windows 10 to work around missing entries

There are a couple of issues with the Start menu in Microsoft’s just-released Windows 10. One is that some sort of bug means there may be missing entries. Second, the All Apps list is not great for navigation even when it is working. There are two many clicks: click Start, click All Apps, click a letter or start scrolling, maybe expand the folder you want, and you eventually get there.

I have upgraded my own desktop PC to Windows 10, which was running Windows 8.1 Enterprise. The good news is that the upgrade went smoothly, but unfortunately I have run into this bug and some applications are missing from the All Apps list.

I am reluctant to install a third-party Start menu like Start 10, though this is a good solution for many users, since I like to keep Windows as plain as possible as well as tracking changes Microsoft makes to the user interface. How than can I retain easy access to all my applications until this bug is fixed?

My first thought was to use the Windows libraries feature. Using this, you can combine the two main locations for Start menu entries into a single list in Explorer. These are the locations:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

C:\Users\[Username]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

The first location is for applications available to all users of your PC, while the second is per-user. I combined these in a new library which I called Store Complete and was initially pleased; all the shortcuts were there. Except they were not: I realised that my new Start folder did not include any Store apps, since the shortcuts for these are handled differently.

This led me to investigate Store app shortcuts, and I came across another approach. Make a new shortcut (no need for a library), and in the Target field type:

c:\windows\explorer.exe shell:AppsFolder

image

I called the Shortcut Apps but you can call it what you like. This creates a folder with shortcuts to all your applications, both Store and desktop apps. The snag: they are all in a single list, whereas the Library approach preserves the hierarchy if an application has several subfolders of shortcuts (like some developer tools).

The Apps list on my PC has 836 items and it is complete. For example, I have the application Password Safe, which is not listed in All Apps, nor is Futuremark’s PC Mark which I have just installed:

image

Actually PC Mark should be under F for Futuremark, but it is not there either:

image

Nor are they found if I type Password Safe or PC Mark into Cortana/Search in the taskbar. But they are there in my Apps folder:

image

Scrolling through this list is a little tedious, but it also has a search box which works. Not ideal, but a workable alternative.

Note: I tried pinning this folder to the Start panel but that does not work. However you can pin it to the taskbar for quick access.

Windows 10

The launch of Windows 10 today is a key moment for Microsoft and users of its platform. A few observations.

I like new Windows more than I had expected. I get on fine with Windows 8, though mostly on the desktop since that is where the applications are. Being able to run Store apps in a window makes a big difference though, and there is a real chance that this will kick-start Microsoft’s app platform at last. See my overview on The Register here.

Is Windows 10 ready, or rushed out too soon? The latter I fear. The desktop side is solid as far as I can tell, with the exception of the new Start menu – actually a Universal Windows Platform (UWP) app – which is a bit broken. Since this is how users launch applications that is a serious problem. Still, it might work OK for you if you have fewer than 512 application shortcuts. I have also seen issues with search within the Start menu, either not finding apps, or in one case just hanging (reboot sorted it).

It really should not be difficult to have reliable search across a tiny database.

The Windows Store is another source of problems. I tried to install the latest Twitter app, and ended up with a “Restoring user data” message that would not go away. It is frustrating because you cannot simply cancel the process and try again. At this time my event viewer filled with DCOM activation errors, which may or may not be related, but did remind me how much intricate and ancient technology remains in Windows.

Microsoft also has this mad idea that all eligible users should be upgraded automatically using a Get Windows 10 (GWX) application installed via Windows Update. From what I have heard so far, failures are common. Users who suffer a long update process that ends with an error message and return to the previous version of Windows may never try again, or next time buy a Mac.

This is exactly what you would expect from an in-place upgrade. There are simply too many variations of hardware and software, too many things to go wrong, for this to work reliably across millions of users.

These things will distract attention from what matters more, which is Microsoft steering Windows towards becoming a modern, mobile-friendly operating system. There is also a lot of good work on the business side, in security and manageability. In six months time Windows 10 will be a delight.

The coverage of Windows 10 in the general media also interests me. Never mind Microsoft’s generally strong financials, the common view is that the company is failing because of its lack of success in mobile. That may prove true, but it is not true yet.

In this light, I am still puzzled by CEO Satya Nadella’s decision to dismantle the Nokia acquisition, at huge cost. At the Build conference in April, Microsoft seemed determined to make Windows Phone work, with the universal app platform, Android runtime layer, and Objective C compiler support. The Nokia team had the skills to design and build phones. Disposing of it seems short-sighted.

If the app platform in Windows 10 does succeed, users will want to run those apps on their smartphones too.

Microsoft financials April-June 2015: loss from Nokia write-down, comments on future direction

Microsoft has reported its financials for its fourth quarter. The company made a loss of over three billion dollars ($bn 3.195) but this was because of an eight billion dollar write-down mostly on the phone business – in effect, writing off the value of its Nokia acquisition. It still has plenty of cash in the bank – over $96 bn according to its balance sheet. Perhaps it is too easy for companies of this size to make bad business decisions (I leave open whether it was the acquisition or the way it was handled that was the bad decision, but one of them was).

Here are the latest figures:

Quarter ending  June 30th 2015 vs quarter ending June 30th 2014, $millions

Segment Revenue Change Gross margin Change
Devices and Consumer Licensing 3233 -1670 2966 -1555
Computing and Gaming Hardware 1933 +591 435 +417
Phone Hardware 1234 -748 -104 -158
Devices and Consumer Other 2300 +538 594 +303
Commercial Licensing 10451 -782 9529 -769
Commercial Other 3076 +814 1350 +659

A few points to note. The confusing segment names are summarised at the end of this post. Revenue was slightly down quarter on quarter, from $bn 23.4 to 22.2, largely because of a decline in consumer Windows (weak PC sales). Commercial licensing was also down, which Microsoft attributes to the end of the XP migration boom.

Phone aside, Microsoft’s hardware is performing well, thanks to Surface Pro 3 and Xbox One. Although Xbox One has been outsold by Sony’s PlayStation 4, it is holding its own and Microsoft says that Xbox Live usage has grown by over 30% over the year. The company says this is “deeper user engagement”; another way of looking at this is that playing games without an Xbox Live subscription is often disappointing.

Microsoft’s cloud and server projects are both growing. Business cloud revenue (Office 365, Azure and Dynamics CRM) is up 106% over the year and server products up 12%.

A bright spot is that search advertising revenue grew by 21% and Bing is expected to be profitable in the next financial year. The search wars are last year’s thing but Microsoft’s determination has won it a small but viable slice of the market. It is important because the data from search is essential for high quality predictive analysis and personalisation services, which is still a coming thing (Cortana, Siri, Google Now).

In the earnings call, CEO Satya Nadella revealed some data:

  • 15 million consumer Office 365 subscribers growing by 1 million per month
  • 50,000 new SMB customers for Office 365 per month
  • Paid seats for Dynamics CRM up 140% year on year
  • 17,000 customers for Enterprise Mobility Services (Mobile Device Management)
  • Over 100% growth in Azure both in revenue and compute usage

Of Windows 10, Nadella says:

While the PC ecosystem has been under pressure recently, I do believe that Windows 10 will broaden our economic opportunity and return Windows to growth.

A short-term boost from Windows 10 would not be surprising, but does he think that Microsoft can reverse the trend from PC to mobile, or that Windows can be successful enough in the mobile category (tablets and phones) to benefit from that trend? If the latter, perhaps destroying the Nokia acquisition was not the best move (but I must not harp on about this).

On Windows 10, Nadella described three phases:

Upgrade phase: From July 29th when free Windows 10 upgrades begin.

OEM device phase: From “the fall” when Windows 10 PCs and devices go on sale.

Enterprise upgrade phase: Piloting and deployments from January 2016

Note from the last that Windows 10 is not fully business-ready yet. Enterprise Store, OneDrive for Business client, “Project Centennial” which lets you wrap Win32 apps for Store deployment, none of these are done.

How is Microsoft hoping to grow its business? CFO Amy Hood identified three areas, in response to a question on operational expenditure:

The first one is Windows 10. The second is the first party hardware where we just had such terrific performance again this Q4. And then, finally, the third bucket was about accelerating our commercial cloud leads.

Of these, the third looks a sure bet, the other two are more speculative. Microsoft will continue to be a fascinating business to watch.

Microsoft’s segments summarised

Devices and Consumer Licensing: non-volume and non-subscription licensing of Windows, Office, Windows Phone, and “ related patent licensing; and certain other patent licensing revenue” – all those Android royalties?

Computing and Gaming Hardware: the Xbox One and 360, Xbox Live subscriptions, Surface, and Microsoft PC accessories.

Devices and Consumer Other: Resale, including Windows Store, Xbox Live transactions (other than subscriptions), Windows Phone Marketplace; search advertising; display advertising; Office 365 Home Premium subscriptions; Microsoft Studios (games), retail stores.

Commercial Licensing: server products, including Windows Server, Microsoft SQL Server, Visual Studio, System Center, and Windows Embedded; volume licensing of Windows, Office, Exchange, SharePoint, and Lync; Microsoft Dynamics business solutions, excluding Dynamics CRM Online; Skype.

Commercial Other: Enterprise Services, including support and consulting; Office 365 (excluding Office 365 Home Premium), other Microsoft Office online offerings, and Dynamics CRM Online; Windows Azure.

Microsoft completes Visual Studio 2015

Microsoft has completed Visual Studio 2015, the latest version of its all-encompassing development tool. You can download it here. Today is also the release day for TypeScript 1.5 (a language which compiles to JavaScript)

image

Windows 10 is released in just 9 days, so all eyes will be on this and its new/old app platform – the Universal Windows Platform, based on the Windows Runtime, as found in Windows 8, but considerably revised so that developers can in theory write one app and run it on any Windows 10 device, from PC to tablet to phone to Xbox to HoloLens, and sell or distribute it from a unified Windows Store.

Microsoft CEO Satya Nadella recently confirmed that the Windows Store is a key part of the Windows 10 strategy:

Why then make all these changes to the Start Menu with Windows 10? It’s not because I just want to bring back the old. It’s because that’s the best way to improve the liquidity [of] our store. Windows 8 was great except that nobody discovered the store. In Windows 10, the store is right there and done in a tasteful way.

The Store is more visible in Windows 10 than in 8 because in Windows 10 there are no longer two separate environments (Metro and desktop), but only one (desktop). Windows Runtime apps run in desktop windows. This makes the experience a little worse for tablet users, but the advantage is that now desktop users are more likely to interact with the Store, and more likely to use the apps they install, since they run in a familiar environment.

Another key change is “Project Centennial”, which I wrote up for the Register here. This lets developers package desktop apps for delivery from the Store, using app virtualisation (based on an Enterprise product called App-V). If Microsoft gets this right, Project Centennial will be the preferred way to deliver most desktop apps, since it is both easier and safer for the user.

If the Store does take off (and if it does not, Windows 10 will in part have failed), then Visual Studio will be the key tool for created or repackaging apps for Windows.

Windows 10 is important, but so too is Azure, Microsoft’s cloud platform. Visual Studio has a key role here, too. Microsoft has an entire stack, including Windows as both operating system and development environment, Visual Studio for coding and testing, and Azure for hosting cloud applications. Since the early days of Azure, the development experience has improved, so that with a modest understanding of the ASP.NET MVC framework you can go from an idea to a working demo, hosted on Azure, that you can show customers, in a short space of time.

There is also a new Cloud Explorer in Visual Studio which lets you view Azure resources from the IDE.

image

Mobile is Microsoft’s weak point, but the the company has made efforts to support Android and iOS both through mobile service back-ends hosted on Azure, and by supporting various approaches to building cross-platform apps. Visual Studio 2015 includes Xamarin project types, though out of the box these just tell you to go and install Xamarin, which lets you build Android and iOS apps with C#, subject to a separate Xamarin subscription.

Another option is to use Microsoft’s new iOS tools to code in Visual Studio while targeting Apple’s mobile platform, though this does require a Mac running a remote agent.

There is also Visual Studio Tools for Apache Cordova, where you code in JavaScript and wrap the results as native apps for both Windows and mobile platforms.

Visual Studio comes with an Android emulator, based on Hyper-V, for debugging either Xamarin or Cordova apps. Xamarin also offers its own emulator and I am not sure how these compare.

In addition to the above, Visual Studio 2015 introduces C# 6.0, Visual Basic 12, the Roslyn compiler platform which enables new IDE features, and .NET Core which is an open source, cross-platform fork of the .NET Framework. Thanks to .NET Core, the latest version of ASP.NET runs on Mac and Linux as well as Windows.

Despite Microsoft’s new cross-platform focus, Visual Studio itself runs only on Windows. In a world of Mac-wielding developers that is a problem, so the company has come up with Visual Studio code, an editor with some IDE features that runs on Window, Mac and Linux. Other options for non-Windows developers are to run Windows in an emulator such as Parallels, or on a virtual machine hosted in the code (Azure has suitable pre-baked images with Visual Studio), or to use third-party tools.

Visual Studio is a critical product then, but is it really done? Although you can download the final product today, many parts are not available (Project Centennial) or still in beta (ASP.NET 5 is beta 5). This is a milestone though, and credit to the team for bringing it out in advance of Windows 10 (I recall some Windows releases where Visual Studio was still in preview on release day).