Farmer and ARM

FarmerARM Template
Core ARM features
Repeatable deployments?Yes, Farmer runs on top of ARMYes
ARM deployment mechanisms?All, plus easy-to-use F# deploymentAll
Variables support?Yes, native support in F#Yes
Parameters support?Yes, native support in F# or secure parametersYes
Supported resources?All, including custom builders for ~50 popular resourcesAll
Declarative model support?YesYes
Support for all ARM tools?Yes, Farmer runs on top of ARMYes
Linked Template support?No - generally not required.Yes
Authoring
Easy to author?YesNo
Easy to read?YesNo
Documented?Yes, website and discoverable intellisenseLimited, documented but often out-of-date
Editor support?Yes, any F# editor including VS Code, VS and RiderLimited, only VS Code has any support
Safety
Type-safe?Yes, full support from the F# compiler and type systemLimited through VS Code extension and LSP
Validation support?Edit-time, run-time, deploy-timeDeploy-time and limited edit-time
Flexibility
Link resources easily?YesNot easily complex path expressions must be known
Compose resources together?YesNot easily
Create multiple resources simultaneously?YesNo, each resource must be defined separately
Create resources in several ways?Yes, builders, records, functions or classesNo, must use JSON
Full programming language?Yes, F# is a simple yet powerful programming languageNo, JSON with limited functions
Imperative model?Yes, F# supports imperative programmingNo, you must program in a declarative style
Interop and extensibility
Add your own ARM resources?Yes, plug-in model to add new ARM resourcesN/A
Create your own combinations of resources?YesNo, each resource must be defined separately
Use external libraries?Yes, use any NuGet packages during authoring and full .NET CoreNo, fixed set of functions
Use in .NET applications?Yes, Farmer is a .NET Core library and can be used in-procNo, JSON files