donderdag 17 oktober 2013

Feature Toggle libraries for .NET

Als je regelmatig een nieuwe versie wil releasen, maar de ontwikkeling van een bepaald feature duurt langer dan de normale ontwikkelingstijd van één versie, dan kan het handig zijn om dat feature tijdelijk te verbergen om tussentijds toch al versies te kunnen releasen.
Een alternatief is om met feature branches te werken, maar dan heb je al een aparte deploymentomgeving nodig om een versie van jouw applicatie mét dat feature tussentijds al eens te kunnen laten zien aan eindgebruikers.

Facebook releaset elke dag, wat uiteraard korter is dan de normale ontwikkelingstijd van de meeste features. Logisch dat zij dus een goed uitgebouwd feature toggle framework hebben, genaamd Gatekeeper. Features kunnen aan- en uitgezet worden op basis van tal van parameters: enkel voor werknemers, bepaalde landen, random 5% gebruikers, één bepaald datacenter, enzovoort.

Dat willen we natuurlijk makkelijk kunnen inbouwen in onze .Net applicatie zonder het warm water opnieuw te moeten uitvinden. In juli vorig jaar maakte David Gardiner een overzichtelijke vergelijking van bestaande .Net feature toggle libraries en hoe ze werken. Een dikke week later deed Phil Hale hetzelfde. Ze vermelden NFeature, FeatureToggle, FeatureSwitcher en nToggle.

Voorlopig hebben we gekozen voor NFeature van Ben Aston, maar met een schil errond, zodat we vrij zijn om later te switchen naar een andere library of naar een volledig eigen implementatie.

De eerste simpele uitbreiding die we gaan maken is waarschijnlijk het aan- en uitzetten van features op basis van lidmaatschap van een Windowsgroep.
Een reactie plaatsen