Oh no, you're thinking, yet another cookie pop-up. Well, sorry, it's the law. We measure how many people read us, and ensure you see relevant ads, by storing cookies on your device. If you're cool with that, hit “Accept all Cookies”. For more info and to customize your settings, hit “Customize Settings”.

Review and manage your consent

Here's an overview of our use of cookies, similar technologies and how to manage them. You can also change your choices at any time, by hitting the “Your Consent Options” link on the site's footer.

Manage Cookie Preferences
  • These cookies are strictly necessary so that you can navigate the site as normal and use all features. Without these cookies we cannot provide you with the service that you expect.

  • These cookies are used to make advertising messages more relevant to you. They perform functions like preventing the same ad from continuously reappearing, ensuring that ads are properly displayed for advertisers, and in some cases selecting advertisements that are based on your interests.

  • These cookies collect information in aggregate form to help us understand how our websites are being used. They allow us to count visits and traffic sources so that we can measure and improve the performance of our sites. If people say no to these cookies, we do not know how many people have visited and we cannot monitor performance.

See also our Cookie policy and Privacy policy.

This article is more than 1 year old

Devs ask Microsoft for real .NET universal apps: Windows, Mac, iOS, Android

Windows 10 only is not a universal solution

Microsoft introduced the Universal Windows Platform (UWP) this year: applications that run across many device types, provided that they all run Windows 10.

Unfortunately, that proviso means that the UWP is far from universal, targeting only a small minority of Windows PCs out there, and leaving other operating systems untouched. In a world where Macs are commonplace, and mobile is owned by iOS and Android, UWP apps are more niche than universal. If Microsoft succeeds in migrating most users to Windows 10 over the next couple of years, that will improve matters, but only on the PC.

Now developers are petitioning Microsoft for a true universal app model.

“The goal is to enable *one* .NET Client Application Project to build deliverables for the following platforms,” states the request on the Visual Studio 2015 feedback site, and goes on to list Windows 10, Legacy Windows, Unix, Linux, Android, iOS, Mac and HTML5.

The problem Visual Studio developers face is that they want to continue coding in .NET languages like C#, and to use the powerful XAML language to build a user interface, but their customers demand support for platforms other than Windows, especially iOS, Android and Mac.

The Microsoft of today is already making every effort to promote cross-platform development (as long as it is not Java). Visual Studio 2015 comes with cross-platform technologies to the point of confusion, including third-party Xamarin tools for compiling C# for non-Windows platforms, Apache Cordova for wrapping HTML and JavaScript as native applications, and Visual C++ compilers for Android and iOS.

The Xamarin tools come closest to what developers are demanding. Xamarin targets iOS, Android and Mac, and Xamarin Forms is an implementation of XAML that enables a cross-platform user interface. There are several snags though. This is a third-party implementation of .NET, based on the open source Mono framework, and therefore not perfectly aligned with Microsoft’s .NET Framework. It is also expensive, with businesses paying at least $999 per developer per platform for a one-year subscription. Third, the XAML in Xamarin Forms is not compatible with any of Microsoft’s existing implementations, and does not target desktop Windows or Mac, only iOS, Android or Windows Store applications.

Another existing piece which has cross-platform promise is .NET Core, a fork of the .NET Framework which runs on Windows, Mac OSX and Linux. Currently, .NET Core only targets server-side applications using ASP.NET, or the UWP, but in principle it could be extended to client applications. That said, with Visual Studio 2015 pointing developers firmly in Xamarin’s direction for cross-platform clients, it is hard to see Microsoft investing in its own alternative.

CSHTML5 cross-compiles C# to HTML and JavaScript

CSHTML5 cross-compiles C# to HTML and JavaScript

Extending .NET to HTML5 clients may seem a stretch, yet there is already a Userware project called CSHTML5 in preview which claims to implement 99% of C#, 70% of XAML and 40% of .NET Core by compiling to HTML and JavaScript. In conjunction with Apache Cordova, something like this can also work as a mobile solution.

The C# language has been a big success for Microsoft, and is now one of its key assets in attracting or keeping developers coding for its platform. C# cannot thrive forever as a Windows-only technology though, and these cross-platform options are now critical to its future. ®

 

Similar topics

TIP US OFF

Send us news


Other stories you might like