I made introductory presentation about Universal Windows Applications to local Microsoft User Group. In the end of presentation I introduced some of my speculations about the future of Universal Windows Applications. Here’s my thoughts about what happens next.
From PCL to universal apps
Before Universal Windows Applications (UWA) we had Portable Class Library (PCL). PCL was good solution as it allowed us to share code between applications that are built for different .NET Framework target platforms.
But PCL had no official support for sharing XAML between applications. Yes, it was still possible to do but it was still unsupported hack that worked for some developers and not for others. UWA solves this problem as it supports also shared views with code-behind.
|Portable Class Library||Universal Windows Applications|
So, practically UWA is PCL with XAML support. There is also one other change – there’s no target framework for UWA project. It’s just a dummy project with code, XAML and assets shared between applications.
The dawn of mobile development
Xamarin is IDE + set of tools that allows us to use .NET Framework and C# to write also Android and iPhone applications. Also Xamarin components integrate to Visual Studio and this way you can write apps to all three major platforms: Android, iPhone and Windows Phone.
Okay, there are hacky things to get C# and .NET libraries to run on Android and iPhone and Android packages even for small apps can be 10MB beasts but it still works pretty okay until we don’t hunt extremely good performance.
So, with little help by Xamarin components we can build also iPhone and Android apps on Visual Studio and projects for these apps can be part of our Visual Studio solutions.
Beyond universal windows applications
In the middle of March this year ZDNet published article Is Microsoft about to buy Xamarin? Why should Microsoft be interested in acquiring Xamarin? What can they possibly do besides better integration between Xamarin components and Visual Studio?
NB! Everything from this point on is pure speculation that is based on public information and my own common sense and estimations. There is no confirmation by Microsoft or Xamarin to me that things will go the way as speculated here.
Xamarin is currently on the limits of what it can do to transform .NET code to Android and iPhone platforms. Microsoft has advanced engineering power and advanced technologies to take Xamarin to next level. How?
- Roslyn. Roslyn is .NET compiler platform that provides also API-s to handle our source code in our source code. Cool? Main strength of Roslyn is actually on the compiler stuff and these functionalities together give strong platform for handle C# code and prepare it for compilation or to transform it to something else.
- .NET Native. .NET Native is engine that converts CLI code to native C++ code for Windows Store apps. After conversion the code is built with C++ compiler that produces native executables for target platform.
These two technologies can be used to make better bridge between C# and other mobile languages like Java and Objective-C. If Microsoft wants to go with .NET versions for Android and iPhone then it doesn’t need to acquire Xamarin. Of course, it’s possible that the final solution includes both – platform specific code and special versions of .NET libraries that are deployed as shared libraries.
As after these moves the new core of app development technologies cover also other platforms I think they will remove the word “Windows” and what we will get is Universal Applications.
One question still remains – will there be layout conversion engine that converts XAML-views to Android and iPhone views or will there be layout engine that allows us to use XAML-views on Android and iPhone?
The future seems to be very interesting…