Functional C# with Simon Painter & .Net Configuration Easy? with Steve Collins

Public group

Sheffield Hallam University, Owen Building Room 1028

Sheffield Hallam University Owen Building Room 1028 · Sheffield

How to find us

Through the main Sheffield Hallam University entrance until you get to the lifts then take the lifts to the 10th floor, we'll be in room 1028

Location image of event venue


This event will be split into two parts, Simon Painter presenting Functional Programming in C# and the second half will be Steve Collins presenting .NET Configuration Easy ... Right?.

📅 Agenda
- 👋 Welcome
- 🗑️ Housekeeping
- 👨‍🏫 Functional Programming in C#
- 🍕 Food/Drinks
- 👨‍🏫 .NET Configuration Easy ... Right?
- 🍻 Social @

👉 Functional Programming in C#
Functional Programming is becoming increasingly popular and relevant with each year that goes by. With so much discussion around languages such as F#, Haskell, and Erlang - it can seem as though getting started with Functional programming would mean first learning a whole new syntax... but what if it didn't?

Most .NET developers are familiar with the use of Linq, and basic constructs such as IEnumerable, Func delegates, arrow functions, and ternary expressions - but did you know that you can use all of this to implement some of the most powerful patterns and techniques from the world of functional programming?

This talk will demonstrate how, using only familiar features available in out-of-the-box C#, to write Functional code that is:

* More robust
* Easier to read
* Easier to maintain

As well as these benefits, Functional code is a great enabler for the use of concurrency with Async functions and Serverless applications with technologies such as Azure Functions.

👨‍💻Simon Painter

Simon has been programming in some form from the day in the early 90s when he first realised his ZX Spectrum+ could do more than just play Magicland Dizzy, and professionally for around 13 years. He is passionate about development, open source and old British TV programs. Will code for money.
🔗 twitter:

👉.NET Configuration Easy ... Right?
Let's face it, we've all done it at some point. You have a value in your code that you don't want to hard code as it will vary in different environments or needs to change in a runtime environment, so you want to make it configurable in a file. That's where the fun begins.

In the .NET Framework, you usually create an XML configuration file and reference it using some static methods. Or maybe you use the designer in Visual Studio to do the work for you? In .NET Core, you are given a JSON file by default and access it through the IConfiguration interface. Job done ...or so you think.

· How do you code the keys to access the values?
· How do you unit test it and what if you need to test different values?
· What if you want to store values other than primitive types?
· What if you want to have secure passwords, but don't want them in your source control?
· What if you don't want to use json files ... or come to that, don't want to use files at all?
· What if you want to change values in a Docker container

.. and the questions go on and on.

In this talk, we start with a brief overview of the history of configuration in .NET Framework and how Microsoft handed developers a loaded gun to shoot themselves in the foot. Moving on to .NET Core, things are much better, but there are still some gotchas.

Lastly, the talk goes on to deal with the questions raised above with a "SOLID" based approach that makes configuration not only fully testable, but adds enhancements to handle encrypted configuration values (because you're not storing passwords as clear text in source control are you?) and validation of the configuration data before it hits your code.

👨‍💻Steve Collins
Steve Collins is an independent software developer/architect with over 25 years’ experience in the industry working with Microsoft technologies.

Steve first started programming on the ZX Spectrum and released his first open source project in 1989 … well kinda … he had a program printed in Your Sinclair magazine (with his name spelt wrong).

Steve blogs (when he can) at and tweets @SteveTalksCode.

🔗 twitter: