Connect 2016 At the Connect event under way in New York, Microsoft laid out its plans for developers targeting its platform – though what the "Microsoft platform" means has changed radically from what it used to be.
The slogan today is "Any developer, any app, any platform," whereas a couple of years ago the theme was "Windows everywhere."
The Connect event belongs to Microsoft's developer division, unlike the Build event, which is run by the Windows division. You would expect therefore a broader perspective, and in fact this was more than evident, with little attention given to developing the Windows operating system in the keynote.
Microsoft's relationship with Windows has become complex. On the one hand, it has a community of Windows developers with which it wants to keep faith; but on the other it wants to convince a wider developer community that it has tools and frameworks applicable to other platforms, in particular iOS and Android mobile clients, and Linux for web and server applications.
The company is therefore busy demolishing barriers to using its technology outside Windows. A quick glance at the major Connect announcements demonstrates this: Microsoft joins the Linux Foundation as a platinum member. Microsoft releases a public preview of SQL Server for Linux. Google joins the .NET Foundation. Visual Studio for the Mac is released in preview. Azure App Service now supports Linux. Samsung releases Visual Studio Tools for Tizen. Visual Studio Mobile Center announced for testing mobile applications on iOS, Android and Windows. Cross-platform .NET Core 1.1 and Entity Framework Core 1.1 released.
There is no sign now of Windows Everywhere, though there is some evidence of .NET Everywhere, with Google and Samsung showing support.
Xamarin's impact on Microsoft, following the acquisition earlier this year, is another notable aspect of Connect. Xamarin was founded to enable C# developers to target mobile platforms, and grew rapidly thanks to the success of iOS and Android. Microsoft, on the other hand, has struggled to attract developers to its Universal Windows Platform (UWP), because without iOS and Android it is not universal enough. Xamarin is providing the answer.
Developers who have followed the twists and turns of Microsoft's developer story over the years will know that there are many flavors of XAML, an XML-based language most often used to define a user interface. There are WPF (Windows Presentation Foundation) XAML, Silverlight XAML, and UWP XAML, all different. Xamarin introduced yet another variant, used by its Xamarin.Forms technology, allowing developers to define a UI once for multiple platforms.
Xamarin.Forms was immediately popular, more so than its creators expected, especially since the company had long advocated creating a native UI separately for each platform. Despite its limitations, it can be highly productive, especially for forms-over-data business applications, where the last degree of refinement is inessential. Xamarin.Forms now targets UWP as well as iOS and Android, and apparently will add Mac OS in a future version.
Microsoft Corporate VP Julia Liuson, in charge of the Developer Division, reminded me that Xamarin.Forms is not as capable as other variants of XAML.
"The version of XAML that UWP apps use is the true platform that will let you do everything that is possible, whereas Xamarin.Forms is a fantastic utility, but you cannot use it to describe everything that is possible to target all the different platform flavors," she said. Convergence between Xamarin.Forms and UWP XAML is not planned.
That said, Xamarin.Forms meets a more pressing developer need than UWP XAML, and it will not be a surprise if it turns out to have a brighter future.
I also raised with Liuson the delicate question of whether Visual Basic (VB) has a future. All the new features in Visual Studio 2017, which was delivered as a release candidate at Connect, "come equally to Visual Basic as C#," she said. A Visual Basic user "should feel great about how we're bringing more capability and more productivity."
That said, Liuson acknowledged that VB is not receiving the same degree of investment as C#. "As .NET keeps expanding its reach, what we have observed is that Visual Basic developers tend to focus on a well-known set of business applications: ASP.NET, Windows Forms, WPF. We will continue to do great support in those areas, but when it comes to brand new features sets, we have not observed Visual Basic developers embrace those. So we are focusing our efforts in the area that VB customers are working," she told The Reg.
The implication is that VB developers who want to follow Microsoft beyond Windows should learn C# or another language.