May 28, 2022

Sidekick: Another Project Involving HoloLens with NASA

PHOTO DATE: 05-06-15 LOCATION: Ellington Field - NASA C-9 Aircraft SUBJECT: Reduced Gravity Office's JPL research flights. Flight 3 PHOTOGRAPHER(S): BILL STAFFORD

PHOTO DATE: 05-06-15
LOCATION: Ellington Field – NASA C-9 Aircraft
SUBJECT: Reduced Gravity Office’s JPL research flights. Flight 3


This news is bigger than you think, that’s why I rush to post it.

NASA and Microsoft are on another project beside OnSight, called SideKick. See how HoloLens helps astronauts through SideKick project:

Sidekick has two modes of operation. The first is “Remote Expert Mode,” which uses Skype, part of Microsoft, to allow a ground operator to see what a crew member sees, provide real-time guidance, and draw annotations into the crew member’s environment to coach him or her through a task. Until now, crew members have relied on written and voice instructions when performing complex repair tasks or experiments.

The second mode is “Procedure Mode,” which augments standalone procedures with animated holographic illustrations displayed on top of the objects with which the crew is interacting. This capability could lessen the amount of training that future crews will require and could be an invaluable resource for missions deep into our solar system, where communication delays complicate difficult operations.

Brilliant. Now here is the news:

A pair of the devices is scheduled to launch on SpaceX’s seventh commercial resupply mission to the station on June 28.

A second set of devices to be delivered on a future mission will test and verify Sidekick functionality with network connectivity to test the Remote Expert Mode.

Sidekick also will be used and evaluated during the NASA Extreme Environment Mission Operations (NEEMO) 20 expedition set to begin July 21 when a group of astronauts and engineers live in the world’s only undersea research station, Aquarius, for two weeks. The Aquarius habitat and its surroundings provide a convincing analog for space exploration.

Those are test missions for SideKick, and,

NASA expects astronauts on the station will first use Sidekick by the end of the year.

This one sounds like a real thing. Can we expect HoloLens to be released by the end of the year? That’s why I am writing this post.

By the way, they are okey with the FOV?

Oh, NASA also posted a video.



Cambridgeshire Constabulary Is Soon to Begin Using Microsoft’s HoloLens


This news is interesting in many levels.

News comes from Computing that UK’s Cambridgeshire police will SOON start using HoloLens. You heard it right, the title is direct copy from the post. The implementation is in collaboration with a consultancy firm Black Marble, which is likely a Microsoft value added distributor or partner.

A Microsoft spokesperson later told Computing that, while it’s unlikely that members of the Cambridgeshire force will go out on the beat wearing the slightly cumbersome devices in the near future, the technology could well be used in the recreation of crime scenes.

I don’t know how, but sounds like an interesting idea, and a big deal for police forces, but I think HoloLens can do more than recreating crime scenes.  It’s good to know that police decide to use it before it is even released.

The word “soon” is interesting. I would assume, next year is not soon, right?

Interestingly, the same constabulary is also currently using Microsoft Band. This is how they use it:

Finally, wearable device Microsoft Band is also now being utilised in a unique way, in a trial period in Cambridgeshire. If the user’s heart rate goes over a certain level, or if it is removed from an officer’s wrist, it triggers an alarm and officers will scramble to support their colleague.







Why Is There No HoloLens SDK?



This post is long over due. I have had it in the backlog for a while, now I can’t wait anymore.


A Bit of History…

Since the day HoloLens went public, which was January 21, 2015, the developer community have been discussing the possibility of HoloLens SDK. People posted on  Channel 9 of the up coming Windows Holographic APIs from Windows 10 build 9926. They have discovered that there are many holographic related namespaces, even holographic controls (in C++):


The good people from NUI World had discovered namespaces like the following (in C#):


I had explored Windows 10 debug symbols myself. All those made us to believe that Windows Holographic Platform is well defined from the beginning. There were three distinct namespaces: Human, World, and Mirage, which represent the whole picture of the mixed reality. Please check my early post here.


Then It Happened…

We understand at the beginning that HoloLens is one of many Windows 10 devices. It is said from January 21 that all Windows 10 universal apps will run on HoloLens. We also understand HoloLens is a special Windows 10 device, maybe more special than a phone or a tablet. We understand again, for special device families, there is something called Extension SDK to deal with the specialties of certain features that are not implemented on all devices. Naturally, we have guessed this must be the case for HoloLens.

General consensus is there should a set of special APIs for Hololens, or more broadly for Windows Holographic Platform. Even today, you go to HoloLens official website, click Developers on top, then scroll to the bottom to Q&A section, expend “When will the SDK available?”, the answer shows,

We look forward to sharing information on the SDK for Microsoft HoloLens soon. The best way to ensure you receive developer updates and holographic APIs when available is to join the Windows Insider Program.

As it turns out this is false.

Yesterday, Alex Kipman (you don’t know who he is ?!) tweeted in response to #HoloLensDevs,

He actually said the same thing long before yesterday. He had made the clear at Build 2015, there is no special APIs that is specific for HoloLens, therefore SDK won’t be needed. Please check the embedded video at end of the post (@2:20).

Interesting thing is: Out of curiosity, I checked the latest Windows 10 debug symbol packages, well, the latest is still very old, it corresponds to Build 10074, the pdbs that contain afore-mentioned namespaces no longer exist.  For example there use to be,


and many other hologram related pdbs, now only a few suspected ones are left, like,


In any case, this is the very much a confirmation, that HoloLens APIs were planned, and then removed.


To Understand the Fact…

Knowing the fact there will be no HoloLens API, or HoloLens SDK, or Windows Holographic SDK in general is one thing, understanding it is another.

It’s kind of strange why there is no need for HoloLens SDK at all? The way I understand this is: HoloLens is no different than any other Windows 10 devices. It is a PC indeed, by any definition. The only difference, apart from worn on head and look nothing like a computer, is: it is a computer with a monitor, a keyboard, a mouse, touch interface, voice interface all built-in. As it happened, that’s a special monitor, it shows 2D objects and 3D objects, and they are called holograms. That’s all, why do we need any specially SDK at all?

One possible implication is developers will not have access to the spatial mapping data. This can be either a good thing or bad thing. Good thing because the OS hide the complexity, so developers wouldn’t have to worry about the contours of the environment. It’s real hard to write good games or apps if you consider that. Bad thing because sometimes, the environment matters, if you develop a virtual pet, you don’t want it to walk in the air right? This is unknown to me.

When you think of OEMs, who are developing VR devices or AR devices other than HoloLens. They need to write drivers in Windows 10 for their devices, there might be special DDKs for them, which is generally not what we are worrying about.

But wait, how about mixed reality video capturing. That was the thing appeared in the old debug symbols, but disappeared now. Alex had said the function is there (@ the end of the video). Will it be exposed to developer as an API, or to the end user through the OS, or both? We don’t have answer yet.



Microsoft Is Working to Implement Holo-Video Recording For HoloLens

Tech In Short: Surface 3




What’s the Deal with Windows 10 Release Schedule?



Neowin reported this morning that Windows 10 Mobile launch scheduled for late September. It was revealed by Microsoft’s briefing to OEMs at a local location. So the words are only semi-official, but it doesn’t matter.

Microsoft have said previously that Windows 10 will be on a staged release, with Desktop SKUs go public on July 29. Mobile, Xbox, IoT and possibly HoloLens SKUs follows. In reality, there are only two stages that matter: Back to school, and Thanks Giving/Christmas. Desktop SKUs (including desktop PCs, laptops, tablets 8″ and up) obviously made it to back to school sales. Everything else obviously didn’t.

Because I mainly cover HoloLens, so that’s where I pay most attention. At the beginning of the year, the plans was apparently targeting a July release for both HoloLens and Windows 10 Holographic SKUs. During the Build conference last month, they no longer talked about July. In a Build session (HoloLens Partners Share Dev Experience (Video) ), one developer from NASA used the word “Summer”. Combining these with realization of the FOV impact. I think it is safe to say that HoloLens and the Windows 10 SKU for Windows 10 release date is pushed back.

Indeed, allow me to be honest, Windows 10 Desktop SKU should be available early or mid July and RTM should already been done, but this delay is minor. Most people don’t know and don’t need to know.



Develop for Windows 10: (4) Fix Mobile Emulators




In another post: Develop for Windows 10: (3) Setup Tools, I have talked about how to setup development environment in order to start development for Windows 10. It turns out, there was a problem.

Everything goes fine, but after creating a project in VS 2105. Run it. You found the run target doesn’t have Emulator like the picture below.



Actually, at the end of VS 2015 installation, there was a warning saying mobile emulators install failed. Why?

The problem was these emulators are running under Hyper-V, which is a virtual machine itself. So, in this case, we are trying to run Hyper-V inside of VirtualBox. So far, there is no way it can work. Fortunately, VMware Player works.

If you are installing Windows 10 TP on a physical machine, like multiple boot. You can skip the following steps, but in any case, make sure you system (your physical machine) meets requirement for Hyper-V. Here is the link.

So follow the steps below. (This is an ugly post, bear with me, and as always, forgive my typos. I will try to fix them later.)

1. Download and install VMWare Player from,  scroll down to the bottom of the page, locate WmWare Player, click Download Product. Then download WmWare Player for Windows 64-bit.

2. Start WmWare Player.

Create a New Virtual Machine
Choose “I will install the operating system later”, click Next.
Choose Microsoft Windows and select Hyper-V (unsupported) not Windows 10 x64 (don’t ask me why), click Next.
Take a note of the Location (where the VM files a created, I call it {VM Folder}).
Click Next, and Next again.
Click Finish.

Open {VM Folder}\{VM Name}.vmx with Notepad.

Add following line to the end of file:

hypervisor.cpuid.v0 = “FALSE”

Save/close the file.

3. Now go back to VMWare Player, you should see your newly created VM.
Right click it -> Settings.

Highlight Processors, then on the right, Check Virtualize Intel VT-x/EPT or AMD-V/RVI
Highlight CD/DVD (SATA), then on the right, check Use ISO image file, click Browse to select your Windows 10 TP ISO file
Look at bottom of the dialog, click Add button, then select Network Adaptor(use defaults).

Click OK. You are back to the VMWare Player home screen.
Highlight your VM, click the green Power On button.

Now, Windows 10 TP will be installed on your machine. Make sure it is new installation not upgrade.

4. After Windows 10 TP is installed. You are probably getting build 10070. That’s too low, you need to upgrade. Go to Settings -> update and security -> Windows Update -> Advanced Options -> Scroll to the bottom -> Change from Slow to Fast.

Close Settings, then go back to Cortana (you know what I mean), and type Check for update and click it. Make sure get any updates that is higher than 10070. It should be 10130 as of today.

Change update from Fast back to Slow, up to you.

5. Unlock your VM for development. Settings -> update and security -> For Developers. Check Developer Mode.
(Why unlock? Before, any PC or Phone used to running an app outside of Windows Store (called side-load) need to be unlocked. There was a procedure to unlock your machine. Now, in Windows 10, you just turn on Developer Mode, it is unlocked. You can side load any apps.)

Now Install Viusal Studio 2015 RC, make sure choose “Custom”, and check Universal Windows App Development Tools and its suboptions.  (Please check the links Develop for Windows 10: (3) Setup Tools)


Develop for Windows 10: (3) Setup Tools

Please read Develop for Windows 10: (4) Fix Mobile Emulators before continue.

As of today (June 2nd), Windows 10 is still in Tech Preview (called Insider Preview now), Visual Studio 2015 is still in RC (Release Candidate). Windows 10 will release on July 29th, Visual Studio 2015 can’t be far away, but at the moment you have to use the TP and RC.  Windows 10 SDK can change a little at the time Windows 10 is released, but it’s safe to say, you can start write some code now. Changes will be minimal if there is any.

You need to install 2 things: Windows 10 Tech Preview, Visual Studio 2015 RC. You could install Visual Studio 2015 on a Windows 7, 8, 8.1 machine and develop for Windows 10, but some functions are not available (I don’t know what). So it is the best to install Windows 10 TP on a VM then have Visual Studio 2015 RC installed on it.


Install Windows 10 Technical Preview on VirtualBox

So your machine is running either Windows 7, or 8.1, if you are running anything other than these two, then you are reading the wrong article.

Download and install VirtualBox from here.

Download Windows 10 Tech Preview (now called Insider Preview) from here. You will need login with your insider account (if you haven’t signed up, please go to do so). Now click link download the ISO file .

PCWorld has a nice tutorial on how to install Windows 10 TP on VirtualBox.


Install Visual Studio 2015 RC on Windows 10 Preview

Got to, right on top of the page, you can download Visual Studio 20015 RC Community Edition or Enterprise Edition, doesn’t matter.

When Install VS 2015 RC, make sure choose custom install, then check Universal Windows App Development Tools and its subitems.



Note, current VS 2015 RC has Windows 10 SDK included.


If things goes fine, you have your environment ready to development App for Windows 10.




Develop for Windows 10 – (2) What to Know about UWP



In this post, I am trying to summarized what we have learned about UWP during Build 2015. I will only list the items, leave out details. In the future post I will try to get into some details if I can. After reading it, you will probably say, ah, that’s not much. I think that impression is correct. Even though there has been many sessions in the Build Conference, the changes are profound, but for developers, there isn’t a lot to learn. That’s a great job from Microsoft.



The most important thing in UWP is concept of adaptive programming. Keep this in mind: your application will potentially run on many different type of devices (from PC to Xbox, HoloLens), different size of screens, and different versions of UWP. Even though you have the option to write separate code for each case, but you mostly wouldn’t.

In order to deal with all situations, you need: 1) Runtime code detection to deal with different device types (families) since different device type may implement different set of APIs. 2) Set MinVersion, MaxTestedVersion and get latest SDK to cover most UWP versions, try to support cutting edge features while still keep backward compatibility. 3) Use controls like SplitView, RelativePanel and Pivot to adapt to screen sizes. Also can use VisualState in XAML or in the code behind to further adapt to screen changes.


Extension SDKs

Extension SDKs bring in APIs that are not commonly implemented in UWP. There are desktop Extension SDKs, Mobile Extension SDKs, etc. All you have to do is reference them in your Visual Studio projects. Call the APIs after runtime API detection.


API Contracts

API Contracts is the way UWP groups functionalities. By putting a collection of APIs together, you don’t have to detect each one of them separately, because they are either implemented in full or none. Each API Contract can relate to certain type of devices.


New in XMAL

SplitView, RelativePanel and Pivot are mentioned above. Many know that Pivot control is the most used in Windows Phone, now it is implemented in UWP, only it becomes tabs in large screen automatically. Others are: ContentDialog (popup dialog), AutoSuggestBox, Map Control, PerspectiveTransform3D (transform control in 3D space: rotations and parallax), Windowing (can customize background, titlebar, etc.), Ink Canvas, Drag and Drop, WebView.

AppBar is not new, but if used properly, it can replace SplitView, make the app more visually compelling. I will look into this later.


Application Life Cycle

As a developer, we need to be aware that application states: not running -> running suspended -> not running. What trigger them. What to do before application is suspended.

Related topic is background task, how to start one and how to manage it.


I think that’s almost all (there are other things: notification, live tiles, advertising, Cortana, but they are not something you will certainly use). As you can see, every subtitles above except for the last one are actually part of “Adaptive”. So, I’d like to simplify it a little by saying “UWP means Adaptive”.




Develop for Windows 10 – (1) The Concept of UWP


Windows 10 was unveiled in January 21st. After BUILD Conference at the end of April, most of development stories are clear. Now we can sit down, clear up our minds and see what we have learned, how we get started.

The Windows 10 developer’s story boils down to two words: UWP and Classic.
The Classic Windows Apps

Before there are something called apps, software development, or programming had been a career for tens of years already. Commercial software usually takes many programmer-months of worth of work, unlike the small programs today, you do two on a weekend. On Windows, we call them software, or applications. In the foreseeable future, or maybe forever, those software will still support the entire business world. Microsoft now call them Classic Windows Apps.  You sense the effort of de-emphasis here, but before the business world adopt the so called modern apps, “Classic Windows Apps” is still in the front and center. Doesn’t matter you talk about it or not.

So what are “Classic Windows Apps” really? Any program that runs on Windows 10 that are not Universal Windows Apps. The term Classic Windows Apps is sometimes referred to as desktop applications.

What about MFC? MFC is still there and well. There is no worry it will go away any time soon. If you have been doing .NET programming for Window forms, WPF, you still do what you do.

The surprise is: Starting from Windows 10, Classic Windows Apps can be packaged as Windows Store Apps. It can be delivered over Windows Store, even taking advantage of UWP features.


The UWP: Universal Windows Platform

It’s exhausting to deal with the new terms.  I honestly don’t know when to use Universal Windows Apps, when to use UWP. But in any case, UWP is the center of Windows 10 programming, which doesn’t mean it is more important than the classic apps, but that’s the center of the conversation right now.

Universal Windows Apps are delivered through Windows Store. It’s called one store, one binary, one platform. As a developer, you write on the same code base, build one appx package, publish on one store. Users buy it once, and run on every Windows 10 devices, and have almost same experience.

In Visual Studio, you just choose to create a Windows Universal project type, that’s all. Of course you have to be aware of something call “adaptive app development”, “adaptive programming”.

The details lie in Adaptive: adaptive to difference screen sizes, adaptive to different device families, adaptive to UWP versions. And remember runtime feature detection, Extension SDKs, API Contracts.

From there, your UWP programming begins.



Windows 10 SKUs: The Most Concise List

Microsoft has released the whole list of Windows 10 SKUs, or Editions from user’s point view, through a blog post. But no one, including Microsoft has described it in the way that is comprehensibly short and to the point. So, I decide to say it in human language: accurate and understandable. Here it is.

For Personal Use:
1. Windows 10 Home: (No explanation needed)
2. Windows 10 Mobile: Phone and Tabets < 8″ (ARM or Intel)

For Enterprise:
3. Windows 10 Pro: For small business
4. Windows 10 Enterprise: All sizes of business, target volume licensing
5. Windows 10 Mobile Enterprise: Same as 2, but added enterprise features like security.

For IoT:
6. Windows 10 Enterprise (IoT): ATM, POS, etc.
7. Windows 10 Mobile Enterprise (IoT): Handheld terminals, etc.
8. Windows 10 IoT Core: For small footprint, low cost devices like gateways

That’s ALL.


Build 2015 Summary: API Contracts

This is another Build 2015 session recording, the topic is API Contracts. API Contract is a new concept in Universal Windows Platform. If you develop for Windows 10, this is something you have know. Basically They put some functionally related APIs inside a group, APIs in this group are either fully implemented nor not at all. So to use them you only need to check the API Contract instead of each one. Also talked about is Adaptive Programming in UWP using run time detection. Actually the video embedded below is not a video, it is a number of slides. You have to click the error button to move from slides to slides. I put the summary after the slides.


>>There are three aspects of adaptive programming in UWP:

> OS Version Adaptive
App runs on a base OS version but can use up-level APIs

> Device Family Adaptive
App uses device family specific APIs

> Form factor adaptive
App UI adjusts itself to different form factors

>>Version Adaptive:
>Windows is shipping more frequently, you can always call new APIs when they are availble in new version, but still work with base version.

>Target older version OS for most market share, support new OS for cutting edge features.

>>Device Family Adaptive
The more device family you support, the bigger market you can reach.

>> In Windows 10, >85% APIs are common

>> API detection has different levels:
1. if the API exists, if not, it throws exceptions
2. the API exists, but does nothing
3. API exists, does partial functionalities
4. API exists, supports full functionalities
5. API exists, supports full functionalities, with different behavior
6. API exists, supports full functionalities, added new functionalities not supported before

>> There is a full set of functions to detect present of APIs:

static class ApiInformation {
Boolean IsTypePresent([in] HSTRING typeName);


>> What is an API Contract?
A named and versioned set of functionally related APIs. API means types, interfaces, properties, methods, events, structs, enums
API contracts are atomic: Either API must be implemented of none of them.

>> Every WinRT API resides in an API contract.

>>APIs being in API Contract guarantees
Implemented in its entirety or not at all.
Support can be queried at runtime
Backward comparable

>>Adaptive Coding examples (hypothetical):

if(ApiInformation.IsTypePresent(“Windows.Networking.HttpClients”) {
HttpClient2 cleint = new Windows.Networking.HttpClient2();

if(ApiInformation.IsApiContractPresent(“Windows.Networking.networkingGameBroadcastContract”, 2, 0)) {
GameBroadcast gb = new GameBroadcast();
GameParty gp= new GameParty();

>> The concept of Device Family

Device family: like phone, XBox, implement API contracts that are not implemented in UWP.
Device family APIs are implemented in Extension SDKs, project need to reference those Extension SDKs to code the device family.




BUILD 2015 Summary: Application Lifecycle




This BUILD session is about Universal Windows Application lifecycle. What action should be taken when app enters certain state. Some new concepts are also touch in this video below: Background task and extended execution.  I recommend to watch the video, if you can’t, my notes below serves as a summary.

>> Foreground Application Lifecycle

Apps in 1 of 3 states
not running -> running <-> suspended -> not running

>> In VS 2015, there is lifecycle events button, you suspend, resume, and suspend and shutdown

Your code will get notice when app suspended, or resumed by subscribe the events.

>> How to process resume event? Usually you need save app state, user data, because a suspended app can shutdown by the OS, so you may not have chance to the save data then.

Usually, suspend action shouldn’t take more than 5 sec (?), if there is too much work in suspended event handler, Windows will kill it.

>> Extended Execution: ask the Windows your app needs more time before get suspended.
(Please watch video 10:00)

>> There is second form of Extended Execution, where your app is running on foreground, but about to start a  background task, like turn by turn navigation in map app: when user click go, app enter a ExtendedExecutionSession, your can either finish work within the session or get invoked. You have chance to process both.

This is best effort action, it is not guaranteed, depending on machine resource at the time. Your app can get kicked out of execution before you are done.

>> Background Execution
Tracking location, show info through notification, playing music.

>> Trigger based Background Tasks
Apps subscribes to triggers, when trigger is fired, app start to run.

TimerTrigger, SystemTrigger, there are many triggers you can subscribe. (30:00 for list)

>> Resource Management

Default background task has a memory cap 16M, 30sec run time, guaranteed 10% CPU, block in battery-saving mode. long running background task can run forever.

>>In-Proc Background Tasks
By default, background task and foreground task can run in separate process. Their life time are not related.

But you can choose to host a background task in side of foreground task. They are in same process. This make communication between foreground and background tasks much easier. Disadvantage is you have to keep the foreground process alive during the time.

>> Two important triggers

>> Application Trigger
triggered by your app.

Useful for invoking some background task, then foreground task can close, like syncing data to the cloud.

>> Socket Trigger
Register a task, that is triggered by Socket trigger, this task is background task. then foreground task can go away. When socket trigger fires, the background task is waved up.

Useful for notification.





//BUILD/2015 Live Blog


Well, that’s it. No announcement. But they are going to face the press. Some question may find answers.


Holographic Academy


Control Panel – that one hell of a UI


training, teaching…






the camera is wearing a hololens too.


app goes with you.


A room full of holograms


start screen


Windows Holograhic


beyond screen


my heart is flying out.


Alex on stage!!!!


need apps to work that way!


a windows phone is a PC.


That is a wow!


a phone works like a desktop.


continuum on phone




You don’t need much work to port current web browser addins.


support extensions.


blank tab is a whole web page from Cortana


It’s call Edge!


Spartan –


it is called Windows Spotlight.


a lot of things on lockscreen


Lock screen: tell windows what you want to see more on lock screen.


new installed apps appear in most recent


Jump List…


He said it is pretty close to “done”


JoeB is here.


It is officially Universal Windows Platform(UWP) instead of UAP


HP spectre for everyone.


weirdness is right word.


4. Object C. – WTF.


I like Rodeway Inn.


3. android Java/C++ application for Windows 10.


Show Photoshop appears in Windows Store


2. .Net/Win32


and within web browser.


It runs as application frame.


Four way to write apps. 1. Web


Joe Belfiore will show Universal Windows Apps.


and on the phone.


Showcase WeChat on desktop.


Show USAToday new app: one binary run on all device. 1 hour refactor current code base.


USA Today has different apps for different devices.


Universal Windows Application


goal in 2 -3 year, 1 billion device on Windows 10.


Windows Store for business.


Carrier billing not only phones, but all WIndows devices.


Windows Store can be discovered from everywhere in Windows.


First mention of HoloLens.


Cortana, Holograms


Terry Myerson on stage!


across all devices.


one unified store.


Windows is a service. New way to deploy.


New gen of Windows.


Office part is shorter than I thought. Start Windows 10 !


If you have interest in develop Office addins, this part is import.


New Office UI is can be a model for complex applications.


Like the new Office UI. More like a Spartan. I think that would be a new standard for apps.


prepare for good chunk of time for Office presentation (20 -30mins).


business wise that’s a mart move. nothing is more important than money.


Office, Office 365, = a Platform: you can write app on it.


Up next: Office


ScottGu gone.


I think ScottGu is almost done.


This is boring so far, but there is logic for it: it means business.


Another Azure customer on stage talking about how they use Azure.


Azure Data Lake Service


Announce Azure Lake Service.


User case: NFL use Azure, device collect real time data, and analyze on real time.


Azure + IoT


SQL DB – SQL Data Warehouse – Power BI


ScottGu took most of the present time. I think many people are saying: are you done yet?


ScottGu: data + analytics


Elastic Database Pool: you know you have before you select type and capacity


I think Scott is about done, close to one hour now.


Azure service Fabrics.


ScottGu talks about SaaS


Visual Studio Code Free and available and works on any platform.


Visual Studio Code.


Logic App is a great conception.


Great thing about VS online is: you don’t your local computing power. So it can be really fast. And deploy to Azure is much easier.


Visual Studio Online!


ScottH talking about web application based Azure.


the other scott on stage.


Looks like develop Linux applications on VS 2015 on Windows is possible.


.NET support on Linux?



Software company Docker on stage talk about their work with Azure.


ScottGu: Cloud


third: Windows 10


second: Office as a platform


three major areas: first cloud


musician developer on stage show app for composing.. (StaffPad?)



not much to say so far.




Countdown clock is 0, but I would suggest a few more minutes wait.


Pay attention to UAP and how it’s done.


Remember the tag line: Live from New York, It’s Saturday Night!


Azure is a big story but not as big as HoloLens. No one in the press dare to ignore HoloLens.


There is usually a 5 – 10 minutes delay.




Jerry Nixon tweeted: what are the live tiles look on HoloLens? I think I already know that, but I am wonder what the holographic control look like: buttons, checkboxes, listCtrl(es).


Windows 10 is massively important but all focus is on HoloLens.


My predictions of the keynote:

Convergence Story

Windows 10 and Azure, Office 360

Demo of applications run across all devices, they may show unexpected devices

Demo of games run across all devices


HoloLens status

Hololens first party app/game demo, third party app/game demo

HoloLens work with other devices(!)



Another Scott, Scott Hanselman will talk about ASP.NET.


ScottGu will talk a lot about Azure and cloud I guess. I like this guy when he was in VS and developer tools.


Live stream from Channel 9:


there is new post in windowscentral saying there is latency of a second or two when Miracast from laptop to Xbox one. That’s a concern too.


I have some concerns over 400gram weight on Hololens. It affects user experience greatly. I want know more about it.



What am I going to at mostly in today’s presentation? Top of mind: weigh of HoloLens, and HoloLens as a display device, very important! I will talk about it later.


From Alex in SF:


This is live  blog post for //BUILD/2015 keynote April 29th, starting 11:30 ET. I will start before the event starts. I choose not to go “he said this or he is showing that” action by action style. I will post more comments than actions, but you won’t miss any important or interesting stuffs. I suggest that you watch the live stream (click here), and check back what I think from time to time, or afterwards.




Some Useful //BUILD/2015 Schedule Links




Microsoft has published BUILD 2015 schedules. Apart from tomorrow’s keynote 11:30 ~ 14:00, there are TONs of developer sessions. Those sessions are in the nature of workshops, presentations, forums. They mostly work as tutorials for developer to learn or get a feeling what it is like or how to get start around Windows 10 Universal Application Platform. Those sessions are not to be live streamed, but videos will be posted on Channel 9 after the event. Those videos already have placeholders on Channel 9.  So it’s a good idea to bookmark the ones of your interest, and watch it when they are available.

The thing is the list is very long. Even though  there are filters on the right side of the page, it is still hard to find the correct ones and it’s also hard to get a big picture of it. I did some work for you. I picked some of those I found interesting, and created this list below. Hope to save your time. Again, those links are place holders, only a short description, video will be available after the event. Also I listed the time and date of event, so you can guess when the video will be there (I have no idea).

By the way, Mary Jo Foley said in her post that UAP will be renamed to UWP (Universal Windows Platform), I don’t like that, regardless whose idea that is, just saying.

So, about the videos, Azure, Office 365, outlook take more than half of the list. I will just skip them now. Not because they are not important, but too much to deal with. Number two category is Windows 10 App platform (UAP). There are very few device specific topics except for IoT. There is one for HoloLens!

Also there will be a few more videos related to tomorrow’s keynote, which is be posted after the keynote. I will update this post when I find them.


1. HoloLens

Case Studies of HoloLens App Development  (May 1, 13:30-14:30 ET)

In this session, we’ll discuss the experience of three organizations with early access to developer kits. And we’ll get their advice on how developers can get started on their journey of creating holograms.


2. UAP

Introducing the Windows 10 App Model (April 29, 14:30-15:30 ET)
App Lifecycle: From Activation and Suspension to Background Execution and Multitasking in Universal… (April 29, 17:00-18:00 ET)
Developing Universal Windows Apps in Visual Studio 2015 (April 29, 17:00-18:00 ET)
From the Small Screen to the Big Screen: Building Universal Windows App Experiences with XAML (April 30, 17:00 to 18:00 ET)
API Contracts (or How I Learned to Stop Checking OS Versions and Love Feature Detection) (May 1, 12:00-13:00 ET)
Tiles, Notifications, and Action Center (May 1, 15:30-16:30 ET)
Navigation and Windowing in Universal Windows Apps(May 1, 13:30-14:30 ET)
Harnessing the Full Power of Input in Universal Windows Apps (April 29, 17:00-18:00 ET)
App Lifecycle: From Activation and Suspension to Background Execution and Multitasking in Universal Windows Apps (April 29, 17:00-18:00 ET)
What’s New in XAML for Universal Windows Apps (April 29, 17:00-18:00 ET)
Data Binding: Boost Your Apps’ Performance Through New Enhancements to XAML Data Binding (April 29, 18:30-19:30 ET)
Design: UX Patterns and Responsive Techniques for Universal Windows Apps (April 29, 20:00-21:00 ET)
Bring Fluid, Responsive, and Highly Scalable UI Experiences to Your Universal Windows Apps with the New Visual Layer (April 30, 14:30 to 15:30 ET)
Introducing DirectInk: Learn How to Unlock New Opportunities Using Ink in Your App (April 30, 17:00 to 18:00 ET)
Deep Dive into XAML and .NET Universal Windows App Development (April 30, 20:00 to 21:00 ET)
Screen Casting: Develop Multi-Screen Universal Windows Apps Using Casting Technologies (April 30, 21:30-22:30 ET)


3. DirectX

Advanced DirectX12 Graphics and Performance (April 30, 17:00-18:00 ET)


4. Game

Building Universal Windows Games with Unity (April 29, 20:00-21:00 ET)
Game Developers: Get the Most Out of Windows 10 (April 29, 18:30-19:30 ET)


5. Cortana

Cortana Extensibility in Universal Windows Apps (April 30, 18:30-19:30 ET)
Cortana and Speech Platform In Depth (April 30, 21:30-22:30 ET)


6. Skype

The Skype Developer Platform and Skype Web Developer Capabilities (May 1, 15:30-16:30 ET)


7. Spartan

What’s New in F12 for “Project Spartan” (April 29, 17:00-18:00 ET)
“Project Spartan”: Introducing the New Browser and Web App Platform for Windows 10 (April 29, 20:00-21:00 ET)


8. Porting to Windows 10

Moving to the Universal Windows Platform: Porting an App from Windows 8.1 XAML or Windows Phone Silverlight to Windows 10 (May 1, 13:30-14:30)


9. Windows Store Publish and Monetizing

Store: Deep Dive on Publishing Universal Windows Apps (April 30, 20:00-21:00 ET)
Monetize and Promote Your Universal Windows App with Ads (May 1, 15:30-16:30 ET)


10. IoT

Internet of Things Overview (April 29, 18:30-19:30 ET)
Windows for Makers: Raspberry Pi 2, Arduino and More (April 30, 21:30-22:30 ET)


11. 3D Print

Developing 3D Printing Apps and Services in Windows 10 (April 30, 21:30-22:30 ET)


12. NFC

New Retail Peripherals and NFC/HCE Support in Windows 10 (May 1, 17:00-18:00 ET)



Introducing ASP.NET 5 (April 30, 18:30 – 19:30 ET)
Deep Dive into ASP.NET 5 (May 1, 12:00-13:00 ET)


Read more:

Why Windows 10 Will Release in July?

The Possibility of Streaming from Xbox to HoloLens

What to Expect from //BUILD/ 2015 (Updated)



The State of Hamburger Button




So, I have heard a lot of discussion about the so called “hamburger button”. You know, I really hate these words together, I don’t know why. I like hamburgers, and as a programmer I certainly don’t hate buttons, I have problem with Velcros from time to time. I talked about SplitView before, I don’t have much issue with SplitView, even though that’s another name for “hamburger button”. Oh god, I really have problem to write this two words, from now on, the hell to “…”, whatever that is, I’ll call it SplitView.

That explains why so many people hate it. Honestly, I have never seen one single person who have said, “Oh, I like it.” Best words would be: I have no problem with it, I am OK with it. Second best is: You will get used to it. Folks, I don’t think “I am OK with it, or You will get used to it” are the words we want to hear about Windows 10, don’t you agree?

I understand, it can be symbolic. It has a lot to do with the fact that the UI is related to some ugly OS that no one wants to associate with. I think it’s not just symbolic. It’s more than that. I think most people embrace good things from other OSes, there are tons of evidence of that, I don’t have to list here.

So, lets get to the problem. I mean, why do they introduce this UI that everyone hate? What problem do they try to solve? This video explain it well (but he doesn’t give a solution). To make it short, they are not happy with the AppBar that has been there for both Windows Phone 8.1 and Windows 8.1. Their reason is not good for navigation. That’s the center of the problem. Their solution, as you already know, is the SplitView. I want correct many people: it’s not about top or bottom, or left hand or right hand. If I remember it right, they had said the SplitView can be on top or bottom.

Lets do some analysis. I want to see if they really tried to solve the issue, or if there is an issue. Or they just have some non-technical problems in their brain.

We used to have menus, which worked pretty well for decades. Menus can scale by simply hide/show items based on windows size. We have never separate actions from navigations. Well, it’s not a bad thing that we have separate actions for navigation, after all, we treat windows as pages now. My problem is,

What prevent AppBar from having navigation functions? And what prevent an AppBar to show app title for God’s sake?

What does this have to do with swipe? A pivot control can still work regardless all this. Why pivot is removed along with panorama?

Swipe is disproven, they said. How? The fluidity of the swipe UI is a work of art. They said, you have to swipe five times to get to the fifth tab. First of all, Swipe works both ways, you only swipe three time to get to the fifth. Second of all, apps are small applications. It is really hard to find apps have many pages. And third, if they do have more than 5, as I said, there is nothing prevent you from having navigation command from AppBar.

They said horizontal layout wouldn’t work, who said it has to be horizontal? The buttons on the AppBar can do whatever you want it to do. “Otherwise, what’s difference to SplitView?” you ask.

The difference is: 1. We have AppBar that is already working, if you want to add navigation to it, go ahead. What’s the point of SplitView. 2. If you want to have SplitView to replace AppBar, fine. Why make it look the same like the ones appeared on the ugly OS that I don’t want to name? 3. What’s the reason a pivot control don’t work with SplitView? 4. The problem with SplitView is not only it associates to an ugly OS, but also it’s dull, it’s static, which is in stark contrast to the smooth, animated UIs in Windows Phone.

In my view, the problem is totally non-technical. Some people in Microsoft have a wrong view angle of the company and their products. There are tons of fans who love your products, but you are telling them, people don’t like them. And you said there are data to prove that. True, Windows Phone haven’t got a large market share. I want to remind everyone, that has nothing to do with the products themselves. If anyone have any sense of objectivity, they choose Lumia 520 over any of the Samsung garbage.

The problem lies in the media relationship, not the product.

I have watched Windows Vista, Zune, KEN Phone, Surface and Metro design language, one thing in common among them, they are all state of the art from technical prospective, regardless what the media say.

Metro design language is the model for the future human computer interface design. It’s clear, modern, fluid and functional. Take a look at all the major websites today, you will realize there is a Metro revolution going on. The buzz word of web 2.0 has totally replaced by Metro. Just like anything else, Metro is evolving, one thing keep in mind is to incorporate styles with functions. Styles don’t override functions.

It would be sad to see the one who invented it, turns around and destroys it.


Further read:

UAP, HoloLens, Recommended Readings – Developer’s Collection

Why HoloLens Is Not Kinect

Surface 3 Will Be the Surface for the Mass

Digest the Windows 10 Technical Preview SDK (Updated)

HoloLens, Recommended Readings – Business Ideas Collection







Why Windows 10 Will Release in July?



It was leaked early this week that Windows 10 will release at end of July. It’s from the CEO of AMD, and she didn’t deny it after report came out. Consider it 99.99% accuracy. The 0.01% is left for Microsoft to change mind just in case the earth is shuttered by some Unidentified Fake Objects from the outer space. I would be surprised it doesn’t release before August, you can check my post here. I am very surprised that many tech writers, industry watchers are so surprised at the date, look here, here for instance. Tech enthusiasts are equally skeptical about the release date. WinBeta did a poll asking whether Microsoft should release Windows 10 in July. 47% said no, 42% said yes. Most frequently used phrase is: “given the current state of the operating system”.

So, lets look at the state of the operating system.

First of all, we have to realize that Windows 10 is a restructured Windows. At the center, there is a common core, which is shared by all flavors, including the IoTs. The core is very compact now, otherwise it won’t fit in the resource constrained IoTs. On top of that, there is a layer of common and device specific Windows basic functions, including file management, system settings, hardware management, process management and the GUI. That’s probably all about “the operating system”, everything else are moved to applications. Email is done in an app, web browsing is done in an app, photo is done in an app, music is done in an app, web browsing (Spatan) is done in an app, OneNote is an app, Office is an app, and so on.

Those apps are done separately, in parallel with Windows 10. Some of them are put into Windows TP, some are not. Certainly more and more are added in.

From what I see, the operating system part is in very good shape. It’s quite stable, I run Windows 10 daily for over a month, haven’t seen stability issue myself. What is missing in Windows 10 itself is really not much, and most of them are around GUI. User interface is always the final touch.

Most people who are worried about the state of Windows 10 are looking at perimeter functions, and the UI. They shouldn’t. If I look at the readiness of an OS, I look at two things: stability and driver availability. I can’t verify the second, but I feel good about the first.

“Wouldn’t the important apps need to be finished too?” you ask. The answer is yes, but I don’t worry about the state of the mail application, I don’t worried about the photo application, or music application. If Spartan is not done, IE should still work.  If Office is not ready, no one have a problem. My instinct feeling is those applications are also in final state. Most people look at cosmetic things: the UI doesn’t look finished, some buttons not doing any thing. I would speculate there are most people working on apps than the OS itself, that’s how it should work. There is no way in the world, they are going ship Windows 10 with a few apps. I mean in both number of essential apps coming with the OS and number of apps in Windows Store.

On Windows Weekly, when asked if there will be new features added from this time on, Gabe Aul didn’t say yes or no, but they way he was saying it made me felt that won’t be much.

Now, lets separate two things: “Will it release” and “Can it release”. Lets make it clear, the answer to the first question is yes, and already set in stone. I don’t want to repeat the logics here, but for starters, Microsoft already said Windows 10 will be released in summer. That means July, no second guess, period (I assume my readers don’t need explanation on this). Most people tend to think the answer to the second question is no, so they doubt about the first. I suggest everyone take a closer look at it.


Also check:

Windows 10: Speaking of Convergence

A Look Back at Windows Mobile

Use HoloLens as Adblocker Is a Terrible Idea




What to Expect from //BUILD/ 2015 (Updated)




Microsoft’s long-awaited, developer focused //BUILD/ conference, //BUILD/2015 will be staged in San Francisco next Wednesday 29th. BUILD happens annually, but this year is very special. Not only because it is the year of new Windows release, but also because of the changes made to this version comparing to the past. I would put Windows 10 in the similar magnitude of Windows 95. They are similar in amount of changes, but Windows 10 focuses on unification, or like what they say, convergence. Traditionally, it’s supposed be a developer event, but it affects general consumers more than developers. The one app runs on everything will be told and demoed again and again, but the star of the show will be Windows Holograhic and Hololens, and I don’t have to tell you why.

In anticipating of the big event, I am trying to put my thought in the past together, look at what will be showing, shinning and dazzling. I am quite confident about a few things, not sure about others. I will tell you when I am not.


Build Universal App: Why and How

Since Universal Application Platform (UAP) is the centerpiece of Windows 10, I am expecting the story of the convergence of Windows eco-system, and how things come together. Important thing is what happens if all device from 80″ screen to 0″ screen run exact the same application. I would expect a number of first party universal apps and a few third party universal apps demoed on stage. To developers, we will be shown how to work the magic ourselves.


Availability of Windows 10

I have a strong feeling, and a credible logic, that Windows 10 RTM date will be announced on the first day, 29th. It was reported that Microsoft had planned on June RTM (see the following link), but formal announcement and exact date would be nice. Also, I think there is strong likelihood that GA(General Availability) date will be announced too. It is said GA will be end of July, but not yet official.

Windows 10 to Release at the End of July


Availability of Visual Studio 2015

Microsoft already confirmed Visual Studio 2015 will be released in the summer. The exact date is not known. Common sense is availability of Visual Studio 2015 is tied to that of Windows 10. So, they are likely to be announced together. The date is likely end of July. Before that, developers can use Visual Studio 2015 CTP6 and Windows 10 tech preview SDK on Windows 10 tech preview.


Gamming on Windows 10

Starting from Windows 10, gamming is no longer just Xbox and PCs, a game that runs on Xbox should theoretically run on any device, resource permits and developer allows. So there will be certain number of games running across board.



I don’t expect major announcement around devices, like flagship Lumia, Surface Pro 4. It’s not clear when those two will be released, but there is a important timeline: before back-to-school or after. Both are possible.

Edit: There are rumors regarding Surface Pro 4 to be announced at BUILD. I am not sure how to take it. On one hand, the sources are not really credible, on the other, I feel they can be right. Surface Pro 3 was released in June last year, it’s about a year now. If SP4 is stopped by Windows 10, then there is no reason to hold off after July. Also we have seen SP3 price cut recently, but again, BUILD is software centered. If they announce it now and available in August? Unlikely. So I still vote no to that. We will have to wait and see.


Windows Hologram and HoloLens


I anticipate that the most exciting demonstration and announcement will be around the Windows Holograhic and HoloLens.

First off, the Windows Holographic API and SDK will be announced and available immediately! Remember Windows Holographic is not just HoloLens, it’s crazy thinking but I won’t be surprised if something else other than HoloLens based on Windows Holographic is announced: first party or second party. I have something in mind, but I rather not say, because I am afraid to be wrong. Anyway, I think something is definite there, I am just not sure if it will be unveiled this time.

And best of the bests, you already know it, is Hololens, so, be excited. There will be more demos, but I think this time there will be real applications and games. I expect third party apps and games on stage. There will be demos of how HoloLens work with other devices: like PC and Xbox. I am really excited about this.

Developers will get HoloLens right on the meeting. It will not be final product, but close to final, with all the functions ready.

Finally the biggest questions everyone is asking: HoloLens Release Date, and Price. Here is my low confidence guess: there is a chance HoloLens release date will be announced on 29th, and price will be kept secret, but we will certainly get a hint of both. The media will ask them those two questions any way.


Edit: I have misspelled Windows Holographic as Windows Hologram, just corrected.





Windows 10: Speaking of Convergence




Fig. 1 Convergence

Fig. 1 Convergence


Windows 10 will finally bring one thing we have been dreaming all along: One Windows runs on everything. That’s from 80″ Surface Hub to 20″ desktop, to 15″ laptop, to 10″/8″ tablet, to 6″ phablet, to 5″ smartphone, to 0″ IoT and wearables like HoloLens. However, when you look it from different angles, you will find it is not 100% pure one OS runs everywhere. In this post, basing on three of Mary Jo Foley’s articles (here, here, here) and my other readings, I am trying to give a clearer picture of what it is like after OS convergence of Windows 10.

The aforementioned Mary Jo’s articles are dated Nov, July 2014 and Jan. 2015 respectively when Windows 10 were not formally unveiled, but the main contents are still valid.

It’s likely the OS convergence or unification will be the main talk point regarding Windows 10 during the BUILD later this month. From developer’s point view, the convergence is very complete and ideal, thanks to Universal Application Platform (UAP). Because of this UAP layer, which abstracts any difference between Windows variations, now developers write code for UAP regardless device type. So, it will be one code base, one development platform, one binary, one app store, app runs everywhere. Though two things keep in mind: 1. Make your app adaptive to screen sizes and orientations (RelativePanel, SplitView). 2. If use specific device features, like Kinect on Xbox, you have to detect it at runtime.

For general users though, the convergence is not that full and complete. There will still be different flavors (SKUs) of Windows 10 for different kind of devices, and even same kind of devices. Here is the run down.

Review of Surface 3 Reviews, and My Thoughts

Windows 10 Desktop

Targeting x86 PCs, including desktops, laptops, two-in-ones and tablets. Windows 10 Desktop runs both Universal apps, and Win32 programs. Both desktop mode and tablet mode (I call it Metro Mode) are available. Also there is a feature called “Continuum” to auto-switch between two modes based form factor(attach/detach keyboard).


Windows 10 Mobile

Targeting both x86 and ARM architectures, including smartphones, and small tablets (under 8″). There will be no desktop mode. Win32 programs are unlikely to run even you have Intel-based hardware (This is not confirmed).


Windows 10 for IoT

1. Windows 10 Industry – Targeting x86 architecture, including POS, ATM, etc.

2. Windows 10 Compact – Targeting both x86 and ARM, for resource constrained devices. Run universal apps.

3. Windows 10 Micro – Based on “.NET Micro Framework” (a skimmed .NET framework), targeting x86 systems, including wearables.



(Microsoft’s slides put Windows 10 Mobile under Windows 10 for IoT, I question that even though it is from Microsoft)


And, here are some questions I don’t have answer:

1. What is Xbox running on? It is said to run a customized Windows 10, but which one? I don’t know.

2. What is Microsoft Band running on? Microsoft said there is no OS: “It runs on Microsoft’s wearable architecture (firmware), optimized for low-power micro-devices.” But, really? I ask this question because it doesn’t sound creditable, also things can change when Windows 10 is released.

3. What is HoloLens running on? I am pretty sure it is under Windows 10 for IoT, but which one? I tend to believe it is Windows 10 Compact, with some customization.


UAP, HoloLens, Recommended Readings – Developer’s Collection
Some Business Ideas with HoloLens – (19) Holo-Game Room
Why HoloLens Is Not Kinect



Windows 10 “Restone” and “Windows As a Service”




Mary Jo Foley wrote on her blog at ZDNet that there is new code name called “Redstone”. It is a code name for Windows 10’s first major update due in summer/fall time frame in 2016. Redstone will be go with regular Windows update, but it will be a large scale update, which is more than an update: new features will be added.

The real news behind this is there might be a change regarding Windows update since Windows 10. Traditionally, Windows updates are bug fixes. A major upgrade would bump the OS to a new minor version, like Windows 8.1 or in the form of service packs. The mentioning of “Windows as a service” leads me to think it may be more than that. We will see how that plays out, but important thing for now: whenever there is an upgrade, all Windows devices get upgrade the same time.





How to Choose Programming Language for UAP? – Updated




This is a short post, because it is a simple question and there is a simple answer. The reason I want this post is: if you ask anyone, you will get a long answer, and that never answers your question. Actually, I have talked about this before (here), but I feel I left Visual Basic out, and something about DirectX needs clarification.

The typical answer you get is: It depends. Then you get a few answers for different situations, and you have no idea what your situation is.

The choices are:

  1. HTML, CSS and JavaScript.
  2. XAML and C#/VB
  3. XAML, DirectX and C++

The answer is: Forget about #1, because it is silly. If you develop apps, #2 is your best choice, because it is easy, time-saving comparing to C++. If you develop games, #3 is your best choice, because that’s pretty much your only choice.

Update: If you want to develop both apps and games, the answer is: it’s still the best to learn both C# and C++. Reasons are: a. It’s not hard to do, because they are very similar in syntax. b. Writing apps in C# is a lot easier than in C++.

You can stop here, because you’ve already got the answer. The following explanations are not part of the answer, and can be ignored.

HoloLens Technology – Eye Tracking

I don’t have problem with JavaScript, as a matter of fact, I am coding it every day, right this moment. But writing serious application in JS is really silly. Microsoft put this up, hoping someone only knows JavaScript won’t have to learn C# or C++. I am not sure if there is a programmer who only writes in JavaScript.

Visual Basic is still supported, that doesn’t mean you should stick to it. I feel Visual Basic is in legacy state, but it’s just how I feel, not that I have any proof. I love Visual Basic. Visual Basic is the start of modern programming.

WinRT programming in C++, without MFC, is not programmer friendly. You don’t need write COM code, but IUnknown, QueryInterface() really turn me off, I have a fair amount of experience in COM programming though. However, C++/CX adopts C# style syntax, which makes it easier. But if you are developing games, you can’t avoid C++ for the moment. The reason is you can’t avoid DirectX.

Xbox + HoloLens: How Can They Work Together?

There was a time, when games can be done in Silverlight and XNA. This has changed to DriectX. At some point, DirectX has interface for .NET, so C# with DirectX worked. Since DirectX 10, there is no official support to .NET. There is no word in DirectX 12, which is available in Windows 10. We will have to wait for BUILD to check this out. There are third party packages that make DirectX work with .NET.  As of now, if you plan to write games, it’s XAML + DirectX + C++.

Do I have to use DirectX to develop games? No, but most games required timely response and deals with a lot of graphics, DirectX is your best bet, even though you are not doing 3D. Can I write apps with XAML + DirectX + C++? Yes. DirectX can be used whenever it fits, but it is not required. DirectX works with XAML as ImageSource or SwapChain.


UAP, HoloLens, Recommended Readings – Developer’s Collection

HoloLens, Recommended Readings – Business Ideas Collection


Digest the Windows 10 Technical Preview SDK (Updated)


Fig. 1 Convergence

Fig. 1 Convergence


Windows 10 Technical Preview SDK was released two days ago. This is probably the biggest change in the history of Windows, in terms of impact on user experiences and businesses. However, from a developer’s point of view, it is not easy to say. On one hand, it is huge because one binary runs everywhere, on the other, the technology is not entirely new. Coding for Universal Application Platform(UAP) is not much different than coding for Windows or Windows Phone. So the transition should be very smooth if you’ve ever done anything on Windows or Window Phone, coded for Silverlight or WPF. Well, that’s when you have a good understanding of the new development tools.

Along with the release of Windows 10 Technical Preview SDK, 14 videos titled Developer’s Guide to Windows 10 Preview was posted on Microsoft’s Channel 9 site. It’s Jerry Nixon and Andy Wigley talk about the new SDK and what’s new in UAP. If you have any interest in developing for Windows 10, I strongly recommend you to watch those videos to get a big picture of what’s going to come in the summer. BUILD conference starts April 29th, the official SDK will likely come out then, but it is important to get some feelings now. There are a total of 14 videos, I don’t think anyone have the time or patience to watch them all. So I did it for you. No, I just watch some of them, but enough to give an overview what it is about, before you spend time on it.

The Convergence Story

They talked about the story of convergence in Windows 10(please see Fig.1). There are a few checkpoints: At the time of Windows 7, Windows Phone 7.5, and Xbox 360, those devices are running on totally different operating systems. The first step of convergence happens during Windows 8, Windows Phone 8 and Xbox One, when NT kernel was adopted by all devices, but leave the UI and user experience separated. Windows 8.1 and Windows Phone 8.1 moved things a little closer: Developer can create one project and target both Windows and Windows Phone, but you still build two binaries, and summit them to two different market places, user has to buy them separately. With Windows 10, it comes to full convergence.



Fig.2 UAP

Fig.2 UAP

UAP – Universal App Platform is the single most important concept brought in with Windows 10. Under Windows 10, you no longer target specific type of devices (PC, phone, Xbox, HoloLens, etc.), you develop for UAP. It a big change, but it is also great news. You create one code, build one binary, publish it to one app store. I don’t know how you feel, to me, it’s a dream to both developers and users.

Extension SDK


Fig. 3 Extension SDK

Fig. 3 Extension SDK


UAP is great, but there are many things cannot be unified: A PC doesn’t make calls, a phone doesn’t have game controllers. The solution is Extension SDK. You can reference those extension module from Visual Studio. Also the SDK provide a way to check device capabilities at run time. Fig. 4 shows an example of that.


Fig. 4 Check Capability at Runtime

Fig. 4 Check Capability at Runtime

Another thing is you don’t need #if anymore. Well, the purpose of #if is to build more than one binaries on one code base, since you need only one binary, there is no need for #if anymore. It is still supported though. We now check device capabilities at run time.

The SplitView

This is first of two important new controls introduced in Windows 10. What is SplitView? This is SplitView (see Fig. 5).

Fig. 5 SplitView

Fig. 5 SplitView


It is a new style of menu that is more adaptable to the screen size changes, and work well for both touch and mouse. It is a control that can be constructed in XAML like other controls. Interesting thing to mention is the menu button can be positioned at the bottom (for phones and tablets), or at top (for PCs).

The RelativePanel

This is another important new control in Windows 10. It’s more important than you think. RelatvePanel is a panel, you use it for layout. It solves the problem that programmer has to anticipate screen size and orientation, and reorganize controls accordingly. Instead, you put controls inside a RelativePanel, define relationship between them. You are done. It won’t solve all layout problems, but most of them. See Fig. 6.


Fig. 6 RelativePanel

Fig. 6 RelativePanel


Now you have it. You probably want to watch some details on these videos: #2 Hello World, #4 Extenstion SDK, #5 SplitView, #8 RelativePanel. As to the other ones, it depends on your time.

Remember this is tech preview, things may change a little at end of April, but I don’t see much change then. I would expect the SDK will include Windows Holographic and HoloLens though.


-Update: Just found this video also on Channel 9: A First Look at Building Windows 10 Universal Apps. This is Kevin Gallo from Microsoft talking about Windows 10 UAP at MWC 2015. It’s important because there is live demo of how to adjust UI to suit different screen sizes. Also there are demos of SplitView and RelativePanel which I found better than the afore mentioned videos. You can go right to 18:05~37:00 (the whole video is long):

18:05 – 20:15 UAP
20:16 – 25:40 Adaptive UX, How UI change to adapt to screen sizes
29:28 – 37:00 Live Demo of Adaptive UI, SplitView and RelativePanel.

I want also post an interesting screenshot here. The picture is blurry but the content is good.


Yes, HoloLens is there!

Yes, HoloLens is there!