Northwestern Mutual has been helping achieve financial security for nearly 160 years. In order to continue to offer the same efficient service and solid security that has earned them 4.3 million customers, they knew they had to change. The IT solutions the institution depended on wasn't up to today's fast-paced demands or high-security requirements. Agile software development firm, Centare, offered to create and implement an innovative continuous delivery pipeline solution using the capabilities of Microsoft development technologies and Application Lifecycle Management (ALM) processes. While the big changes that the new system makes is primarily internal in nature, Northwestern Mutual has been around long enough to know that they have a direct impact on the bottom line and the satisfaction of their customer.
Live Code Analyzers are used to add custom error messages and warnings that appear live as you're typing, along with automatic code fixes to help you clean them up. They are available as NuGet packages that you add to your projects in Visual Studio 2015. In this video, you'll see how the FxCop analyzer package now helps you improve your code even before you build. You'll also see the Azure Code Analysis package, which teaches you best practices for building Azure apps by spotting bugs the moment you introduce them.
Given a sufficiently strong type system, you can model your problem domain in such a way that invalid states become unrepresentable. This is one of the corner stones of encapsulation, but requires a lot of effort in mainstream object-oriented languages. In functional languages like F# and Haskell, on the other hand, this is possible using a purely declarative approach to types. Once your types can guarantee that only valid states are representable, Property-Based Testing becomes a breeze.
In this talk, we'll look at using the powerful combination of F# types and properties to address an example problem.