FSharpLunchNLearn
Introduction
- F# is a functional programming language that can be used to create .NET applications
Goals / Motivation
- Learn F# by building a web app from scratch
- Interested more on the App Dev side of F# and less on Domain Modeling / Functional Programming in F# (lots of resources for this)
- F# Web Dev
Why F#?
- Looking to learn a new language while still building my understanding of DDD and .NET
- Can utilize the .NET ecosystem which I already am familiar with
- Functional Programming is a different way of thinking about problems. Learn different set of best practices and patterns
- A lot of the concepts in F# are being ported to C# (Pattern Matching, Records, etc) so deepen C# understanding as well
- Definitely not learning VB.NET ๐
- Have fun! ๐
Commentary on Socials and Community
- Small but active
- Niche enthusiast subject or passion project for most
- F# has a steep learning curve which is representative of the community in my experience, few intermediate F# resources compared to advanced resources
Who I follow
Tooling
Time to look at some code!
Domain Modeling Made Functional
Open in VS, look at the code, run the tests
Falco
1 - Initialize new F# Web App using ASP.NET Core
Create this to show a resemblance to minimal APIs
dotnet new web -lang F# -o FSharpWebApp
2 - Add Falco dependencies and dive in!
- Program entry point
- Simple Index Page
- Setup Entity Framework and seed Sqlite DB
- More complex Contributors Page with create endpoint
Future takeaways and next steps
- Type Unions with Entity Framework
- Donald
- F# with bare metal ASP.NET Core
- F# with Azure Functions ๐