To benefit the .NET developer community, every year Microsoft hosts the virtual event, .NET Conf. Usually, there are feature announcements, interesting demos, and a sampling of what's coming to .NET in the future. With many changes on the horizon, Microsoft had a lot to share for 2018!
Microsoft has had a lot of success with .NET Core since it introduced it a few years ago, and it's clear that it is a key part of their future. They touted the performances increases inherent to .NET Core, and they demonstrated some cool new features, including using it with Swagger to generate documentation for your web APIs.
A tidal change is coming to desktop as well, since WinForms and WPF will support .NET Core 3.0 next year. They demonstrated the potential performance improvements of that shift with a basic WinForms sample that ran roughly twice as fast on the new platform. Microsoft wants to talk about this as much as they can since this will be a big shift for most .NET developers. If you're interested in porting your app to .NET Core 3.0 (when it becomes available), you should check out their recently released tool for analyzing the portability of your existing apps.
Many flavors of WebAssembly (Wasm) are being developed right now, but Microsoft seems to favor Blazor most of all. Wasm is a very cool technology that packages your code into an assembly-like format for executing code in Web pages. This means you can write and compile C# code to develop your web applications. While this may give some developers a flashback to SilverLight, Wasm doesn’t require any kind of plugins, and is supported by Mozilla, Apple, Google, and Microsoft. Blazor is a .NET web framework that uses a combination of C#, Razor, and HTML to develop web apps. The technology is still relatively young, but it's an interesting (though experimental) project.
C# has a few new features that Microsoft touched on that will be of interest for most developers. Null references are always a pain point when developing. However, Microsoft is making it much easier to specify syntax for when to expect a null value:
string? s = null;
Or you can always use non-nullable types if preferred. This makes it a little easier to express the intent of an object. In other words, that null could be an expected outcome. It's still up to developers to handle that null value, so there are no runtime errors when executing their code.
Microsoft also highlighted the Span
Finally, Microsoft shared some updates from the Xamarin team! Day one support for iOS 12 (as well as all of Apple's other OS's) is once again available for Xamarin developers. This is important, as Apple's new iPhone XS, XS Max, and XR just launched. Xamarin also showed off a cool new "Shells" feature for Xamarin.Forms. This will help new developers avoid some common mobile design pitfalls, and assit with the development of attractive app UIs.
They also announced new controls for their Xamarin.Forms stack, including a CollectionView and CarouselView. There is a new CollectionView control (think UICollectionView and not the .NET variety) that will allow developer to lay out items in a vertical, horizontal, or grid-like list. The control moves away from the concept of cells and moves towards data templates. Many users will likely opt into using this control over the Xamarin.Forms ListView (which, while functional, had many limitations). An updated CarouselView is also on its way, and it will fill another notable gap that's persisted in the Xamarin platform for several years.
.NET Conf wrap-up
.NET Conf was especially forward-looking this year, and it's clear there are many changes coming to all of Microsoft's platforms. We're all excited to see their platforms mature and change. The next year should be an exciting one for all .NET developers!
Get GrapeCity's .NET Tools Hone your .NET skillset with the latest version of ComponentOne Studio for Xamarin
Get GrapeCity's .NET Tools
Hone your .NET skillset with the latest version of ComponentOne Studio for XamarinDownload Now!