Previous month:
January 2014
Next month:
January 2015

April 2014

Fine-Tuning of Windows 8

An great session at the Build 2014 conference was about traps with the user interface design: "It's a trap! 3 remarkably common UI traps and how to avoid them in your designs". What's intuitive? There's no such a thing, it's only learned .vs. not yet learned. A one year old is learning to move objects. So the Microsoft design principle Authentically digital to take full advantage of the digital medium and remove physical boundaries are perfect. However, there are traps like "invisible elements". They are good for features like shortcuts for power users, but dangerous for critical features in the system. Remember search from Windows 8 and how it moved into the SearchBox of the app with Windows 8.1? Similar issues happened with search in Windows Phone and Xbox. Now I have to find out how users find share and and play to within my Picture Search app ;-)

This blog post is about Windows 8.+ features coming in Windows 8 Update, what's coming to Windows Store apps, and more.

UI Tuning

The upcoming releases to Windows 8 have some fine-tuning of Windows 8 features to make it more accessible. Windows 7 had some fine-tuning of Windows Vista to make good concepts like UAC (user account control) easier to use.

Windows 8 Update stays on this path. The turn off/shutdown button moved to the start screen. It can now be found easily, it's no longer necessary to click on the Start button as we learned with Windows 95, and it's not necessary to open the Charms bar as we learned with Windows 8. To click on the User name to sign out should be more easily detectable as well. Closing Windows store apps you no longer need to find out about the gesture with the move from top to bottom, just click the close button on top of the app. Of course for a power user, these features are not helpful, as how this could be done was already learned. However, what's great for power users as well is that Windows Store apps are listed in the task bar. You just need to find the setting Show Windows Store apps on the taskbar.

ShowAppsinTaskbar

The next version of Windows will also have the start menu back that contains tiles for Windows Store apps. Not sure if users could be happy with the start screen by that time anyway. With this version it will also be possible that Windows Store apps are running within a Window on the desktop. This way I can not only open three apps, but a huge number of apps on my big screen.

By the way, an easy way how to find out what users are doing with the app and what features of the app they do or do not find is by using Application Insights.  

Universal Apps

A great feature of the Visual Studio 2013 Update 2 are the Universal Apps templates. Having a more detailed look here, code sharing between projects could easily be done with earlier edtions of Visual Studio as well. Creating file links for code sharing is already described in my book Professional C# 5.0 and .NET 4.5.1, and Universal Apps are not part of the book. The really great feature is that Windows Phone Apps make use of the same Windows runtime like Windows Store apps, and the XAML code is very similar. More C# code and XAML code sharing between these platforms! It's interesting how the appbar switches automatically between the larger and smaller screen sizes for a tablet and the phone.

The Xbox One will be added to Universal Apps as well. Why this wasn't named "One App Model" instead of "Universal Apps" - I have no idea. Anyway, I like the name "Universal Apps" :-)

Windows Phone Silverlight 8.1 is the legacy version of Windows Phone programming. Instead of moving to the new model, the Windows runtime can be used from Silverlight phone apps as well!

Windows Store Business Apps

A great feature demonstrated by calling ADO.NET from Windows Store apps is the broker that allows calling into the complete .NET Framework. Of course, this is not allowed from apps in the Windows Store. This can be used for sideloading apps. This feature gives an easy way to use code from older applications such as Windows Forms applications, and give them a new UI.

What needs to be solved here is the licensing model for sideloading, the requirement of either the Enterprise editon or buying of sideloading rights for every device. Wait - this is solved as well! Enterprise Sideloading rights is granted to certain Volume License programs at no additional costs (starting in May-2014), and every customer can purchase Enterprise Sideloading rights for an unlimited number of devices for just $100,-. More information here in Windows for Business.

Sideloading rights together with using the complete .NET framework should create more interest for businesses developing Windows Store apps.

Summary

Windows 8 is on the way to make it easier for users to find features, both for touch and using keyboard and mouse. Windows 8.1 Update adds a lot for usability with keyboard and mouse.

With the application model, Windows Store apps, Windows Phone apps, and Xbox One are coming together. Using the same Windows Runtime, the same XAML. This move was expected, and makes steps into the right direction.

Many companies moved not to long ago to Windows 7. With this late update from Windows XP, creating Windows Store apps was not an option anyway. Because of the need to rewrite the code completely, and expensive licensing models depending on the company size, not a single thought was made about this. Now, as time progressed, the Windows Runtime is available in its second version with Windows 8.1, sideloading constraints removed, and it's even possible to use the complete .NET Framework from sideloaded apps, creating Windows Store business apps should get another thought.

Christian

CN innovation

 


New Love for .NET and C#

At the Build 2014 conference, Microsoft showed new love for .NET. This blog post shows how Microsoft's love reveals.

WP_20140403_07_28_04_Pro

.NET Compiler Platform

The biggest thing for .NET is the .NET Compiler Platform ("Roslyn"). In development since the year 2009, Roslyn is nearing completion and has a new preview available.

Both C# and Visual Basic compilers are rebuilt using this compiler platform. What is the advantage of rebuilding the compiler when there are already working ones that have been implemented with native code?

For the Microsoft teams, this platform gives a clean architecture to evolve on. It's a lot easier to add features to C# and Visual Basic. Implementing a new features for these two languages doesn't mean the effort duplicated for every language, it can be done with just 1.2x instead of 2x. The effort to implementing new language features is a lot less compared to the older native C# compiler, as can be seen in the number of new features for C#.

For partners, it is a lot easier to create source-based tools and extensions for Visual Studio. Xamarin will use the .NET Compiler Platform in an upcoming edition. I also bet, tools like ReSharper will make use of this platform to create new features.

For developers, the .NET Compiler Platform gives a richer C# IDE experience. Coming with the preview you can already see smarter refactoring features. More to come :-)

Anders Hejlsberg demonstrated just three small changes in the code base for defining a new string literal. As the .NET Compiler Platform is open source, changes could be done by everyone. I just don't expect many to do their own C#. However using the .NET Compiler Platform it is easy to define guidelines for code styling, and easy allow for automatic code changes with preview of the changes shown.

Dustin Campbell demonstrated how easy it is to use the .NET Compiler Platform SDK to create a guideline for requiring braces with the block of if and else statements.

The preview can be downloaded from Microsoft Connect after registration.

.NET Foundation

The .NET Foundation was announced for faster open development and collaboration around many open source technologies for .NET. Among the projects in the foundation are the .NET Compiler Platform, ASP.NET MVC, ASP.NET Web API, Composition (MEF), ASP.NET SignarlR, Entity Framework, Rx (Reactive Extensions), Windows Azure .NET SDK, and also third party libraries such as Xamarin.Mobile, Xamarin.Auth, Couchbase for .NET, .NET Map Reduce API for Hadoop...

C# 6

Let's get into the history of C#. C# 2.0 offered generics with the language. C# 3 added LINQ and all the language features needed for LINQ such as Lambda expressions, type inference, anonymous types, and others. The theme of C# 4 was dynamic to make an easier integration with scripting languages and COM, offering the dynamic keyword, optional and named parameters. C# 5 was about async programming, just offering two new language keywords async and await. However, these small keywords again changed programming dramatically.

C# 6 is not about such a big change like generics, LINQ, or dynamic. However, it has many changes. With the .NET Compiler Platform, it is a lot easier to create new features. Thus many things that needed to wait with previous editions can be done now. Among the things that were shown at Build are primary constructors, declaration expressions, and indexed members.

Creating immutable types was always possible with .NET, but we had to write a lot of code. With the new language features, creating such types is possible reducing the code a lot.

New JIT Compiler, .NET Native

RyuJIT is a new JIT compiler for the .NET runtime. This compiler is a lot faster than the one now part of .NET. Rujit CTP 3 is available now. This version supports SIMD instructions (running the same operation on multiple data points simultaneously.

It gets even faster with .NET Native. 60% faster startup for Windows Store apps, and much smaller memory footprint. This product consists from a .NET Native compiler that makes use of a VC++ compiler backend and the .NET Native runtime (refactored and optimized CLR).

With Windows Store apps, it is still possible to upload MSIL app packages to the store. Later on the compiler in the cloud compiles the app in the store that is compiled for ARM and x64 architectures. x86 will follow.

Using this compiler also has the advantage that the compiler creates just one file containing native code for all libraries. Using IL code tools to analyze this code is no longer possible, it's native code.

Not only this, this compiler also creates just one file containing native code for all the libraries. Currently this native compiler is only available for Windows Store apps, but other technologies will follow.

Apps such as Wordament and Fresh Paint already make use of .NET Native and see great improvements.

Summary

With these developments I'm seeing really big steps forward with .NET. With many of these technologies it's just the beginning. For example, I can imagine big improvements in upcoming tools based on the .NET Compiler Platform. And then don't forget the new C# language features, .NET Native, RyuJIT, and the huge open source progress going on.

Another big thing for .NET are Universal Apps that I talk about in another blog post.

Christian

CN innovation