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.
Balancing the agility of development with the delivery of a consistent, repeatable and timely infrastructure from Ops has proven to be one of the toughest hurdles to cross for any organisation focusing on adopting a true DevOps mantra. With Server 2016, Microsoft is introducing both Windows Containers, and providing us with the ability to host an Azure consistent environment in our Data Center. Independently or combined these technologies provide the platform to address the challenges faced with operations through the concepts of 'Infrastructure as Code' and 'Software Defined Data Centres'. Join us, to learn why these technologies matter, how they help to deliver the infrastructure of DevOps, and to see first-hand how to leverage the developer's tool belt of Visual Studio, GIT and Release Management; adding infrastructure as just another project within our solution.