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