Microsoft hosted its premier fall developer event – Connect(); // 2016 in New York on November 16-17, and streamed it live and for free on Channel 9 to developers around the world. While we may be a little late in doing a recap, we wanted to take our time to go through these announcements before writing about what’s new and exciting for Developers in and outside Microsoft’s Developer Ecosystem.
What's New and Exciting in Microsoft's Open Dev Ecosystem
.NET Core 1.1
.NET Core 1.1 is the first new minor version of .NET Core - a cross-platform, open source, and modular .NET platform for creating modern .NET applications. Unlike the LTS (Long Term Support) version 1.0, .NET Core 1.1 is categorized as “Current” release. While LTS releases have a 3-year support period from the original release or 1 year from the next LTS release, the “Current” releases are only eligible for support as long as their parent LTS release or 3 months after the next “Current” release, whichever comes first. The two versions can safely be installed side-by-side, so that individual applications on the same machine can use either one.
The focus of this release was performance. The big news was that ASP.NET Core is now included in the TechEmpower web framework benchmarks, and is the fastest mainstream full stack framework in the Plaintext category.
Several new features were added to ASP.NET Core 1.1 as well:
- With MVC filters, you can now apply middleware only to specific controllers or actions.
- Two new middleware are included: URL rewriting and response caching.
- Web Listener Server for Windows is available as an alternative to Kestrel. With it, you can take advantage of Windows specific features, such as Windows authentication, HTTP/2 over TLS, and others.
- Compiling views during the publish process is now supported.
Entity Framework Core 1.1 now has built-in support for connection resiliency and SQL Server memory-optimized tables. Thanks to improved LINQ translation, the database engines can successfully execute more queries than before. New APIs were added for explicit loading, mapping to fields and a few other features.
MSBuild tooling for .NET Core became available in preview. This means that standard .csproj project files can be used instead of project.json. To better align the two formats, MSBuild now supports wildcard-based inclusion of files for folder based projects, and direct NuGet package references. A wizard for migrating project.json projects to .csproj is included as well.
Visual Studio 2017 Release Candidate
Visual Studio “15” now has its official name: Visual Studio 2017. You can now download Visual Studio 2017 Release Candidate and even use it in production with the exception of features marked as in preview, and are not yet supported.
The new version of Visual Studio comes with many productivity improvements:
- better filtering and default suggestions in IntelliSense dialogs,
- easier navigation with redesigned Find All References and Go To functionalities,
- new Exception Helper dialog with more information and support for filtering exceptions by the assembly they originate from,
- quick reattaching and filtering by process name in the Attach to Process dialog,
- continuous running of tests and coverage information for individual code lines with Live Unit Testing (only available in Enterprise edition),
- Figure 1: Live Unit Testing in action
- additional code refactorings,
- configurable code style, and more.
Better performance is also a high priority: Visual Studio 2017 starts faster, has shorter load times for solutions, and a faster, more componentized installer. To further speed-up initial loading of large solutions; lightweight solution loading can be enabled for them, which defers the full loading of projects to a later time when they are first needed.
Extensions can also largely affect the overall responsiveness of Visual Studio. The new performance-monitoring feature will now warn the user about extensions which slow down Visual Studio. Other improvements to extensions include:
- batched installs and updates,
- built-in roaming extension manager, and
- support for extensions to detect missing dependencies and trigger their installation in Visual Studio.
A few other new features in Visual Studio 2017 that are also worth mentioning:
- New versions of C# and Visual Basic provide many new language features, as described in my previous article for Dot Net Curry magazine.
- A new Service Capabilities page is now the centralized location for adding cloud service dependencies to a project.
- You can record tests for mobile applications using the new mobile test recorder and upload them directly to Xamarin Test Cloud.
- A preview version of Visual Studio Tools for Unity 3 is now included in the installer. Among other improvements, it adds full syntax coloring and IntelliSense support for Unity event functions.
Visual Studio for Mac
The Visual Studio product family got a new member: Visual Studio for Mac. The preview is already available for download. The application is an evolved version of Xamarin Studio, more closely aligned to the Visual Studio experience on Windows. It supports development of Xamarin based mobile applications, and their cloud backends in .NET Core, using either C# or F#. It features the same Roslyn powered compiler, IntelliSense code completion and refactoring experience as Visual Studio. The same MSBuild project format allows for seamless sharing of projects between Visual Studio on Windows and Mac.
Mobile Development with Xamarin
The Xamarin team announced stable releases of several new tools.
Xamarin Inspector is an extension for Visual Studio and Xamarin Studio, which can attach to a running iOS, Android, Mac or WPF application. It provides a structured look into the current view of the attached application, without pausing its execution with a debugger. You can even modify its properties via a graphical user interface or by executing custom C# code in the application context.
Xamarin Workbooks is an editor and viewer for interactive documents, consisting of rich formatted documentation with live runnable code. This makes it very useful for creating and consuming learning materials, guides and teaching aids. A large selection of workbooks on different Microsoft technologies is already available for download.
Figure 2: C# 6 workbook in Xamarin Workbooks
Remoted iOS Simulator for Windows provides a convenient way for testing and debugging iOS applications from Visual Studio on Windows. Although the simulator still requires a connected Mac machine where the simulator is actually running, you can fully interact with it directly from Windows. It even provides full touchscreen support, including Apple Pencil simulation using a stylus – that is if you have a touchscreen connected to your Windows machine. The simulator does not support Apple Watch devices yet.
Xamarin Profiler is everything you would expect from a profiler for Xamarin based applications. Its three main views allow tracking of memory allocations and footprint, performance tracking with method execution sampling, and tracking of memory cycles that cannot be released and cause memory leaks.
Remoted iOS Simulator and Xamarin Profiler are only available to owners of Visual Studio Enterprise license.
The other large announcement was the preview of Visual Studio Mobile Center. It is the successor to HockeyApp and Xamarin Test Cloud, an integrated cloud service for the complete lifecycle of your mobile applications, providing a wide spectrum of functionalities:
- continuous integration and release management,
- automated testing on devices,
- application distribution to your test users and enterprise users,
- crash reporting and usage metrics,
- backend services for authentication and data storage, with push notifications and more coming in the future.
It currently supports iOS and Android applications written in Objective-C, Swift, Java, Xamarin or Reactive Native. Support for UWP and Cordova applications has already been announced.
Xamarin Test Cloud itself was also improved. It already supported tests written in C# with Xamarin.UITest and in Ruby with Calabash. Now it also supports tests written in Java with Appium.
A stable release of Xamarin.Forms 2.3.3 became available, introducing two noteworthy new features:
- With the help of native view declarations in XAML, you can now create a single declarative XAML file, using a different native view for each of the platforms without additional code. Even data binding to native views works as expected.
- Platform specifics are an alternative to custom renderers, when certain behaviors are required for a single platform only. You can consume them using fluent API or XAML.
Visual Studio Tools for Samsung’s Tizen
Tizen is Samsung’s Linux-based open source operating system, used in over 50 million of their devices: smart TVs, wearables, smartphones and IoT devices. At the event, Samsung announced its intention on collaborating with Microsoft to bring .NET Core to ARM devices, and add Tizen support to Xamarin.Forms.
The first preview of Visual Studio Tools for Tizen is already available. It provides an alternative to existing C and HTML 5 based programming models for Tizen. Currently only mobile application development is supported, but other types of devices will follow in the future. All the development is done in C# with.NET Core, Xamarin.Forms for the user interface, and wrappers for many native APIs to access device specific functionalities - everything with full IntelliSense support. Debugging takes advantage of device emulators, which are included in the download.
The official release is planned for 2017, when the .NET Core runtime will also ship to devices.
A Quick Recap
While a lot came out of Connect 2016 this year, here’s a quick recap of some major announcements made:
- Microsoft joins the Linux Foundation as a Platinum member
- Google joins the .NET Foundation
- Samsung releases Visual Studio Tools for Tizen
- Microsoft announces Visual Studio 2017
- Visual Studio 2017 will have cross-platform support
- Microsoft announces Visual Studio for Mac
- Microsoft announces Visual Studio Mobile Center
- Microsoft has the most contributors on GitHub
- SQL Server for Linux is now publicly available. SQL Server 2016 Service Pack 1 available.
- Azure Data Lake Analytics and Store
- Azure Functions and N-Series available now. First Cloud Bot-as-a-Service announced.
Microsoft continues to offer a great set of benefits and tools for any developer, any app, and any platform. Since the first Connect(); event in 2014, Microsoft has been using it to announce many important development related releases. This year was no exception. From Visual Studio 2017 Release Candidate with “go-live license” and Visual Studio for Mac Preview to new Xamarin tooling and new .NET Core version, there was something of interest for any developer already working with Microsoft tools or technologies. At the same time, as Microsoft expands its focus from Windows to other platforms, these announcements have become increasingly interesting to developers who are not in Microsoft’s ecosystem yet.
The new Microsoft has showed that isn’t afraid of making big bets, and delivering on them. Wake up and Code!