Feature Management vs. Configuration Keys in Dynamics 365 Finance & Operations
Question 44 — What Feature Management is, and why partners should still rely on configuration keys.
Interview Question
Model Answer (Short)
Feature Management is a workspace that lets administrators turn Microsoft-delivered features on or off without code changes, often on a schedule as features become mandatory. However, the guideline is clear: Feature Management is not officially supported for partners to use — it is solely used by Microsoft, and Microsoft confirmed it does not replace configuration keys. Because its APIs might change, it is not advised for use on partner/customer projects. So for enabling/disabling your own customizations, you should continue to use configuration keys (system-wide on/off) and parameters (per-company behaviour), not Feature Management.
Detailed Explanation
What Feature Management is
- A workspace for enabling/disabling features without code deployment.
- Used by Microsoft to roll out features, often becoming mandatory over time.
- Lets admins preview and adopt new capabilities at their own pace.
Why partners should not rely on it
- It is not officially supported for partners to use.
- It is solely used by Microsoft.
- Microsoft confirmed it does not replace configuration keys.
- Its APIs might change, so it is not advised on projects.
What to use instead
- Configuration Key — enable/disable a customization system-wide.
- Parameter — control behaviour at the company (legal entity) level.
- Assign a configuration key to every new table, view and menu item.
Prerequisites (Rule 5)
- Visual Studio with the Dynamics 365 developer tools.
- A custom model / package for your objects.
- A configuration key object and/or a parameter table for your feature.
Code Example — Prefer a configuration key check
// Partner-safe: gate custom logic on a configuration key (not Feature Management)
if (isConfigurationKeyEnabled(configurationKeyNum(AbcNewModule)))
{
// Execute the customization
this.runAbcFeature();
}
Company-level behaviour via a parameter
AbcParameters parameters = AbcParameters::find();
if (parameters.EnableAbcFeature)
{
// Behaviour that can differ per company
this.runAbcFeature();
}
Feature Management vs. Configuration Key
| Aspect | Feature Management | Configuration Key |
|---|---|---|
| Owned/used by | Microsoft | Partner / customer |
| Partner support | Not officially supported | Fully supported |
| Effect when off | Feature hidden/disabled | Tables/fields removed from DB |
| API stability | May change | Stable |
| Use for customizations | Not advised | Recommended |
Points the interviewer wants to hear
- Feature Management enables/disables features without code, but is Microsoft-only.
- It is not officially supported for partners and its APIs may change.
- It does not replace configuration keys.
- Use configuration keys (system-wide) and parameters (per company) for customizations.
- Every new table/view/menu item should carry a configuration key.
Likely Follow-up Questions
- Why is Feature Management not recommended for partner customizations?
- Does Feature Management replace configuration keys?
- What is the difference in effect when a configuration key vs. a feature is disabled?
- Which mechanism would you use to enable a feature only for one company?
Key Takeaway
Feature Management is a Microsoft-owned mechanism that is not officially supported for partners and does not replace configuration keys. For enabling/disabling your own customizations, stick with configuration keys (system-wide) and parameters (per company).