May 2019
Volume 34 Number 5
![]() [C# 8.0]Pattern Matching in C# 8.0Pattern matching was introduced in C# 7.0 and changed the way we look at identifying the patterns and traits of our types. The changes in C# 8.0 make this even more intuitive and improve both flexibility and readability. How do you apply these new principles and patterns in your code, and what does it mean to introduce things like a switch expression? |
![]() [Data Points]EF Core in a Docker Containerized App, Part 2In the second in a series on using EF Core and Docker together to build a containerized app and add a data persistence mechanism, Julie Lerman looks at production-worthy solutions for targeting SQL Server when publishing an API inside of a Docker image. |
![]() [XAML]Custom XAML ControlsDon’t Repeat Yourself (DRY) isn’t just for classes and code. UIs repeat throughout XAML applications. User controls and custom controls in Windows Presentation Foundation (WPF) and Universal Windows Platform (UWP) allow developers to extend the standard UI, providing consistent XAML visuals and codebehind logic through varying strategies of encapsulation. |
![]() [The Working Programmer]Coding Naked: Naked CollectionsIn the latest in his series on the Naked Object Framework, Ted Neward discusses NOF collections—how a given domain object can have references to more than one of something. |
![]() [.NET Core 3.0]Create a Centralized Pull Request Hub with WinForms in .NET Core 3.0.NET Core 3.0 enables support for Windows Forms applications, which means self-contained applications, access to .NET Core-specific implementations, the .NET Core CLI and more. Take a look at how to build a sample .NET Core 3.0 WinForms application and easily package it for deployment. |
![]() [Cutting Edge]Routing and Route Templates in BlazorThe router is a crucial element in the architecture of client-side frameworks and the engine that maps incoming URLs to the actual processing code. While the Blazor router today provides a basic set of routing capabilities, more will come in the near future. |
![]() [Machine Learning]Using Survival Analysis for Predictive MaintenanceDevelopers and machine learning engineers can benefit from improved understanding of survival regression and its application in scenarios such as predictive maintenance of Industrial Internet of Things (IIoT) devices. This article walks through estimating the time until a machine should be serviced or maintained as a function of different explanatory variables. |
![]() [Test Run]Weighted k-NN Classification Using C#James McCaffrey shows how to implement the k-nearest neighbors classification technique, one of the simplest of machine learning algorithms where the predicted class of a new item is determined by examining the distance of the item to data points with known class values. |
![]() [Don't Get Me Started]Calc or Stats?Why are most college-bound students required to take calculus, when even workers in technical fields like medicine and software development rarely—if ever—use it? David Platt says it’s time we all got statistical. |
![]() [Editor's Note]Flight of FailureCommercial aviation has become significantly—even remarkably—safer over the past 30 years, but when accidents do happen, it’s often at the intersection of automated systems and the pilots who command them. Now the investigation into the crash of two Boeing 737 MAX aircraft is producing hard questions and even harder lessons about the role of software and automation in flight. |