Raf's laboratory Abstracts Feed Raffaele Rialdi personal website

I am Raf logo

Thoughts from the build conference 2014

April 14, 2014

It's a long time I don't blog because the twitter-mania moved my thoughts out there. Furthermore I am very happy about my last October renewal as a developer security MVP which continue to give me the chance to discuss a lot of cool stuff with the cool people (and friends) inside Microsoft.

While attending the conference I twitted a long series of comments but 140 characters are not enough to summarize the long series of lucubration invading my mind.

Windows Phone 8.1

As I said a long time ago in 2010 (Italian blog: http://blogs.ugidotnet.org/raffaele/archive/2010/10/29/the-land-of-confusion.aspx) it was definitely possible to run full-Windows on small ARM devices. At that time ARM SoC were not even announced but the prediction was obvious IMO.

Anyway with WP8.1 now we have the same WinRT runtime running over the whole platform of devices, the Universal Project Template now available in Visual Studio 2013. Obviously the views are worth to be customized depending on the screen size and orientation, and the universal template offer a pretty straightforward way to reach this goal.

Windows Phone 8.1 and Cortana

Cortana is the WP8.1 speech and soul who did the show during the keynote. It's not just text to speech but a real personal assistant which you can see in action in this hilarious video here. From an artificial intelligence point of view it's nothing revolutionary, at least according to Dr. James McCaffrey who presented an awesome session about neural networks where he revealed Cortina, his answer to Cortana (see 38:40 of the video).
WP is still missing a decent voice recognition in non-English languages but it's only a matter of time.

Windows 8.1 Update 1

The operation 'desktop recovery' (my personal naming) is probably the most awaited news of the conference and it's finally here. Well, Windows 8.1 Update 1 does not still deploy all the changes most of the users are expecting for the desktop but Microsoft finally got the wishes from their customers.

First of all the modern apps running in a desktop environment now have a title bar allowing to minimize or close the applications. They still can't be windowed but they keynote clearly said that a upcoming update will add this so long sighted feature.

Another key point announced during the keynote is that WPF rules the desktop world. Unfortunately the announcement was not as complete of details as it deserved after years of waiting. There was a Desktop panel with a long discussion about the future of desktop development. They are still grabbing requirements for WPF vNext so most of the decision are not taken yet. I hope in an investment on bringing the WinRT library on the desktop.

The excellent Harry Pierson demo showed another key aspect of the desktop integration. There is now the ability for side-loaded applications to run a brokered process which is not sandboxed and can allow a Windows Store app to run code requiring full access to the local machine. The Modern app still runs inside the sandbox but can access this special full-access process. The communication is made by (please sit down and read well) … DCOM (yes, that old DCOM technology which screwed up devs in the nineties). Currently only .NET apps are supported but soon C++ developers who are probably more familiar with DCOM will get this feature.
The main point here is that DCOM communication is a quick&dirty solution but the communication (depending on the use-case) can certainly slow-down the app performance. The long term solution is certainly to open the sandbox for the side-loaded scenarios but, Harry Pierson said me, this requires more work. They are aware of the problem and this is the most important point.


After the renaming to Microsoft Azure, the stack gained a lot of enhancements on Virtual Machines, Web Sites, SQL Azure, Mobile Services and a brand new Azure portal (in preview). The portal is certainly something that every developer awaited for. But also the Visual Studio integration is very welcome as we could enjoy from the demos.

Nothing is better than an exhaustive list of the new features instead of trying to remember of the cool details.

Internet of Things

This is probably the most important news of the build conference. Microsoft wants to fight this battle and the strong move consists in offering Windows Operating System for free for all devices below 9 inches…. wow, great move.

Currently Windows for IoT will run only on Intel devices like Galileo and the upcoming "Sharks Cove" board which was presented in a session showing how easy is developing device drivers. Now the driver kit is available for free inside the express edition of Visual Studio (double wow). We were said there is commitment also for MicroFramework but let me be skeptical about the success of this operation. The full Windows board like Galileo and Sharks Cove have comparable prices to the very low performance Micro-Framework cards. Unless a Micro-Framework board become even cheaper than a 35$ Raspberry-PI, there is no hope for MicroFramework IMO.

Windows 8.1 Handheld devices

Yes, it's too late but now there is at least a roadmap for the new generation of industrial PDAs. Now that the market is totally lost there is at least an excellent technological proposal to restart from. I just hope the manufacturers of those devices will promptly understand the need for developers to have devices based on this new Windows.

Roslyn and the new open-source wave

The Roslyn compiler will be the next generation of .NET  (VB and C#) compilers. Anders Hejlsberg published the sources on codeplex during the keynote and substantially opened a new era for the .NET Framework.

  • It is open source and available to be ported on Mono as well on Xamarin supported platforms
  • It is the best way to create add-ons for Visual Studio (refactoring, intellisense, etc.) as demoed on stage from Anders.
  • It allows adding semantic rules which are specific to your team/project/domain. I already used this capability with a CTP and it's terrificly productive.

Beyond opening the sources of Roslyn, DotNetFoundation has been launched as the gateway to access the sources of an important number of projects, some of them managed from Microsoft Open Technologies.

In addition to that, a new version of the .NET Framework Library reference source website has been launched which allow powerful searches brought by Roslyn infrastructure.

Another announcement was about the WinJs library going open source too.


Xamarin has just reached its top popularity in this conference. The ability to create and run application cross-devices is THE business. Everyone expected the announcement of Microsoft acquiring Xamarin … but it was not the case. I believe this would be the best moment for Miguel De Icaza to sell its company, from a $$$ perspective.

.NET Native and the new jitter

The rumored Project N has been unveiled at build under the name of .NET Native, the ability of creating a set of native dll/exe using the C++ backend compiler.
After enabling this feature from Visual Studio, the "Any CPU" benefits are obviously lost and it is necessary to compile once for every platform. The old compilation model is and will be always available… nothing goes lost.

The main benefits are:

  • better performance at startup because no more JIT compiling is needed
  • lower memory profile because the JIT compiler is not needed anymore
  • better performance thanks to the C++ backend compiler optimization such as SIMD instructions and (in the future) auto-vectorization
  • no more IL code in the deployed assemblies. This will raise the bar in disassembling the code. I understand that metadata must still be there giving some hints for decompiling purposes. Also having only CPU instructions does not mean that the code cannot be decompiled. IDA Pro is a great tool for this purpose and I guess they are already working on some enhanced feature using the precious hints given by the .NET metadata.

When the compilation ends the application exe become a small stub invoking via COM a separate DLL containing all the native compiled code coming both from the .NET Framework and the application code (both dll and exe).

This feature will be available at the moment only for Windows Store applications because, we were said at the .NET booth, it uses the smallest subset of .NET assemblies. The ARM devices, which are currently less powerful, will immediately benefit from this feature. Microsoft wants to compile in native code automatically every app in the store so that apps on phones and tables will be immediately faster.

For the future, I believe the main driver for the new .NET native stuff is the huge gain of CPU and memory on Azure. Think about for a second how many CPUs cycles are spent JIT-compiling code and how many times the JIT code is loaded in all the machines on Azure. This definitely justify the effort and money of this project.

In addition to .NET Native the new RyuJIT CTP3 was launched. This effort is totally separate from the .NET Native one. The code produced by the new 64bit jitter is more performant and takes less time at startup.

Other technologies

  • Orleans is a sort of revamped version of Remoting. Cool for scaling but with a proprietary protocol (yes, you can hear my voce at the end of the session asking about a C++ client). The concept of transparency is important in many scenarios as opposed to explicit boundary that often is also extremely important. So it's important to have a cool new technology enforcing transparency but absolutely not going to replace any service-based architecture.
  • DirectX 12. New improved performance cross-devices. A lot of efforts but I still miss three basic things:
    • The ability to access DX as a native WinRT API (which would allow accessing DX from .NET for example)
    • A simplification of the model which is now very powerful but also very cumbersome
    • A decent set of templates because the current ones are misleading and with no appropriate layer separation
  • VC++ conformance roadmap. The team plans to almost close the gap of the missing C++11 and C++14 features with the next major step of the compiler. The commitment is high and the C++ community wants it.
    I must say that all the C++ related talks I attended were full-rooms. This is a strong message coming from the attendees to all those who wrongly believe that native languages and specifically C++ are gone.
    Furthermore I could see a lot of enthusiasm of my tweet about the announcement of the new parallel STL library that is coming.
  • Typescript 1.0 is done. The announcement is a big goal for Microsoft. This is not exactly a new language but a way to write a better javascript. Another incredible success by Anders Hejlsberg and his team.

rated by 0 users

Share this page on Twitter

Privacy | Legal Copyright © Raffaele Rialdi 2009, Senior Software Developer, Consultant, p.iva IT01741850992, hosted by Vevy Europe Advanced Technologies Division. Site created by Raffaele Rialdi, 2009 - 2015 Hosted by: © 2008-2015 Vevy Europe S.p.A. - via Semeria, 16A - 16131 Genova - Italia - P.IVA 00269300109