Catch up on the biggest updates from Microsoft Build 2018, and learn about the latest developer tooling and framework updates.
Modern Microsoft is all about Artificial Intelligence and Cloud Computing - something that was on full display on Day 1 of the annual Build conference. However, Microsoft also deeply cares about developer experiences through rich tooling and longevity of developer platforms. There was much to rejoice from Build 2018 on this front - let’s recap.
.NET has been the bread and butter for developers on Microsoft technology stack for years now. And Build 2018 saw some big movements to better align the different flavors of .NET. While not much time was spared for .NET during the keynotes, there was plenty of love shared. The so-called lesser Scotts - Hunter and Hanselman did a wonderful roundup of all that .NET means to developers going forward. Let’s recap the major announcements:
.NET Core was a gigantic leap forward from the aging .NET Framework. Written from ground up, .NET Core is lean, modular and sports a cross-platform runtime. Love for .NET Core seems to come in feature waves - .NET Core 1.X was all about getting the new performant framework out there. .NET Core 2.X was all about steadying the ship, maturing tools and completing the ASP.NET story with API parity.
Build saw the announcement of .NET Core 3 - to be available as Preview later this year, with final bits coming in 2019. This time the focus is Windows desktop - taking all of the Core goodness to re-energize .NET development on desktop. .NET Core 3 will support Windows desktop apps - Windows Forms, Windows Presentation Framework (WPF), and UWP XAML. Developers will be able to run new or existing Windows desktop applications on .NET Core, and the benefits are obvious:
While .NET Core 3 is clearly the big announcement, the .NET Framework is getting some love as well. 2019 will see the release of .NET Framework 4.8, sporting many of the features from .NET Core as well as targeted improvements. The full .NET Framework, however, will not be able to reside with varying side-by-side versions - too many registry dependencies.
Since pictures are sometimes worth more than words, here's a pictorial view of how .NET Core 3 plans to support Windows desktop apps. Once .NET Core 3 lands, any new Windows desktop development should likely be on top on .NET Core. Any Windows-specific APIs missing in .NET Core can be bridged using compact Windows Desktop Packs on top of Core - available as NuGet packages.
Based on who you talk to, Universal Windows Platform (UWP) has seen varying levels of success. On the brighter side, UWP provides developers a unifying app and API canvas to build modern Windows apps. And UWP apps run on any Windows device - from phones, tablets, desktops, Surface Hubs and even Hololens. However, attracting developers to the UWP platform has proven to be a bit of a challenge.
A new innovative solution aims to remedy two problems with one strike - invigorate UWP development to target all Windows PCs and bring modern app development benefits/tooling into desktop technologies. Build saw the introduction of XAML Islands - a way to host UWP controls inside Windows desktop WinForms or WPF apps.
Think of XAML Islands as little containers inside WinForms or WPF apps - ones that can hold little pieces of XAML to render UWP controls. This provides a way to bring modern UWP browser and media controls within desktop apps, thus enabling rich app experiences. Developers can drop in complex UWP controls - like media players, Edge-based webviews, ink canvas, maps or even custom UI - directly inside desktop apps. Developers can pair XAML Islands with the Fluent Design system to build truly universal modern Windows app experiences.
It is no secret that Xamarin has largely democratized modern native cross-platform mobile app development for .NET developers. Build 2018 saw a healthy serving of Xamarin love. Let’s recap:
After what seemed like an eternity, Xamarin.Forms 3.0 is now a stable release - much to the delight of Xamarin developers worldwide. Included in Xamarin.Forms 3.0 is a ton of goodness and flexibility for developers. Some major new features are:
In addition to XAML Styles, developers can now style their Xamarin.Forms XAML using Cascading Style Sheets (CSS) - this allows for the flexibility to choose what developers find productive. With CSS, developers can reuse existing skills and potentially share styling code between web/mobile apps. While optional, there are some real benefits to CSS styling in Xamarin.Forms and one can easily mix/match CSS with XAML Styles for app-wide themes.
Inspired by Flexbox on browsers, FlexLayout is a new layout system for Xamarin.Forms. This is particularly well suited to support a variety of screen dimensions for mobile form factors with a flexible UI layout. FlexLayout is great for handling UI distribution/direction and content spacing/alignment/justification - a more streamlined option for Xamarin.Forms developers to plan their app content layout.
Visual State Manager (VSM) has been a much-loved feature in other XAML UI platforms - and now it is here for Xamarin.Forms. The core idea is to define various states for UI layouts and controls declaratively in XAML - and have the state changes be driven my user behavior. Xamarin.Forms supports several VSM states for most visual tree controls, and developers can easily define custom states.
Empathy actually makes a lot of business sense - love and care in apps drive up user engagement. One way mobile developers can achieve this is by supporting Localization - and Xamarin.Forms now makes this super easy to right-to-left localizations. With a simple FlowDirection XAML property or direction CSS style, app content can flow in either direction - making it easy for developers to target locale languages such as Arabic and Hebrew that flow right-to-left.
While support for new platform heads with Xamarin.Forms has been pulled into master branches for a while, it is important to realize that Xamarin.Forms 3.0 is the first stable release sporting new platform support. Yes, developers can now light up app support in new platforms - like WPF, MacOS, Linux and Tizen - all from a Xamarin.Forms code base.
In addition to the Xamarin.Forms 3.0 release, Build also saw a string of tooling announcements for Xamarin developers - let’s recap the major improvements.
With the Windows 10 April 2018 update, the Google Android Emulator is now compatible with Hyper-V running on Windows. This means for Xamarin developers, the hardware-accelerated Android emulator can now run side-by-side with other Hyper-V based technologies - like Docker containers and VMs.
Xamarin.Forms has been like the cool distant cousin to other XAML counterparts - speaking a similar language, but with a slightly different dialect. The latest Visual Studio 2017 should see vast improvements in Xamarin.Forms XAML editing - now powered by the same IntelliSense engine from WPF and UWP. Developers can expect better IntelliSense, binding/commanding/resource completion, lightbulb suggestions and improved code navigation.
Provisioning iOS devices for side-loading apps has never been for the faint hearted - now Xamarin developers can breathe a sigh of relief. Automatic iOS provisioning in Visual Studio 2017 now streamlines the complicated process - including requesting a development certificate, generating a signing key, adding a device in the Developer Center and downloading the provisioning profile. Developers can do it all - without ever leaving Visual Studio.
Google is retiring the Android VHD manager - this is turning out to be a blessing in disguise. Xamarin developers can now enjoy a new SDK manager tool to keep tabs on various Android SDKs and emulator images. There is now a one-stop shop to manage all Android VHD variations and Android projects are automatically matched to corresponding SDK versions.
Aside from .NET and Xamarin updates, Microsoft shared other goodies to make developers more productive, enable easier DevOps workflows and provide connected data experiences to power modern apps. Let’s take a look.
Visual Studio Live Share is an innovative tool to enable real-time developer collaboration. With a simple extension for Visual Studio 2017 or Visual Studio Code, developers can now work with anyone across the globe in real-time. Collaboration stretches across the development lifecycle - including live edits, group debugging and shared server/terminal. Developers get to collaborate using their preferred tools and familiar personalized environment - full multi-file context is recreated for shared projects, without cloning repositories or needing dependencies.
There are some valid privacy concerns however - security of information going over the wire or opening terminal access through a link. All of these concerns can be addressed though, and the productivity benefits of VS Live Share are tremendous. And VS Live Share is free for all. Hallelujah!
Most deployed apps follow a lifecycle pattern - the smaller the loop, the faster the development cycle. Microsoft’s efforts have been focused on ‘shifting left’ and tightning the loop through easier DevOps integrations. This story continued at Build. For apps deployed on Azure, DevOps through Visual Studio Team Services (VSTS) is now integrated within the Azure developer portal.
For mobile, app lifecycles are well pronounced and repeat fast. Visual Studio App Center is meant to be mission control for all mobile apps - Build. Test. Deploy. Engage. Repeat. Visual Studio App Center works for apps written in a variety of ways - native apps in Swift/Java and cross-platform apps in Xamarin/React Native.
Visual Studio App Center is now integrated within GitHub mobile app projects. Developers can simply grab the App Center extension from GitHub Marketplace and set up CI/CD pipelines for mobile projects - automated Build-Test-Distribute process for the entire app lifecycle.
Build Day 2 keynote was entirely dedicated to Microsoft 365. If you are new to the term, here’s the simple breakdown:
Microsoft 365 = Windows 10 + Office 365 + Enterprise Mobility & Security (EMS)
Windows 10 continues to evolve and drive up adoption numbers. Continuous efforts are underway to make Windows 10 the best possible developer box for developers, for the intelligent cloud and intelligent edge. With rich developer IDEs, matured programming languages and cross-platform app reach, Windows continues to lure developers.
Build also saw increased focus on the Microsoft Graph - the API canvas for Microsoft 365, securely connecting developers to Office 365, Windows 10, and Enterprise data. Developers get to tap into rich contextual data to provide continuity of experience within all of Microsoft 365 and drive up user productivity. With deep insights and a broad user base, Microsoft Graph is positioned to provide a set of rich APIs for powering intelligent apps throughout Microsoft developer platforms.
The call to action is clear: lure developers to Windows and provide rich tooling/APIs to build smart apps for the intelligent cloud/edge.
Build 2018 was a milestone event allowing Microsoft to share its tech vision with developers. While Cloud and AI dominated the overall tech landscape, practical developer tooling enhancements and updates to existing frameworks keep inviting developers to the Microsoft technology stack.
As always, we at Progress are here to clear roadblocks for developers to be successful. With Telerik and Kendo UI, we’ll continue to provide rich UI controls and frameworks to light up your Windows/Web/Desktop apps. With an eye towards the future, close partnership with Microsoft and heavy investments to make top notch developer tooling, needless to say - we’re here for you, today and tomorrow.
Sam Basu is a technologist, author, speaker, Microsoft MVP, gadget-lover and Progress Developer Advocate for Telerik products. With a long developer background, he now spends much of his time advocating modern web/mobile/cloud development platforms on Microsoft/Telerik technology stacks. His spare times call for travel, fast cars, cricket and culinary adventures with the family. You can find him on the internet.