F#

- Microsoft origin, OSS
- General purpose
- Functional-first
- .NET / Mono / .NET Core / Web browser
- https://fsharp.org/
???

https://www.troofal.com/services/mean-stack

https://www.programmableweb.com/news/what-mean-stack-and-why-it-better-lamp/analysis/2015/12/22

https://www.unixmen.com/how-to-install-lamp-stack-ubuntu-17-04

https://twitter.com/krisajenkins/status/903988761171820544
Creating SAFE project
Prerequisites:
Creating SAFE project
- Install SAFE template:
dotnet new -i SAFE.Template
- Create project from template:
dotnet new SAFE
- Build & run:
fake build --target run
- Wait for build to finish: app opens up in browser
Architecture
-
Shared code
-
Server side
-
Client side
Talking to server side
- Fable.Remoting
- Server refresh (dotnet watch)
- Triggering calls from Client side
Deploying the app
- Bundle
- Azure Resource Manager (ARM) Template
- Azure App Service