Giter VIP home page Giter VIP logo

featurz's Introduction

Build status Stories in Ready Featurz - toggle me

Featurz is a feature toggle manager for .Net applications. The central feature of this tool is to determine if a feature is active or not. Active can be determined by multiple strategies.

Featurz was developed on top of the Archer Application Architecture and uses a CQRS'ish architecture.

Why use Featurz

Feature toggles allow you to develop in trunk or your main line without having to worry about complex branching strategies. If you are working on a new change and it isn't ready for production, you can hide it behind a feature toggle and it won't be exposed in production. Martin Fowler explains it better, http://martinfowler.com/bliki/FeatureToggle.html. Feature toggles are just simple logic (if/else) that can be implemented without a manager like Featurz. Featurz just makes it so much easier to get started with toggles and toggle management without the development cost. Additionally, with Featurz, you have the source code so if something isn't to your liking, you can change it.

Use Featurz

You can poke around the project, but nothing is really ready yet. The code in the repo is a very early stage proof of concept, may not work, has a lot undone, and will have UIs and APIs changed drastically.

If you don't have MongoDb installed you need to install it.

In the project you want to toggle features for:

  • Install the mongocsharpdriver to your project.
  • Add web.config/app.config settings:

<appSettings>
    <!-- featurz.ticketsystemurl will be used to compose links for the ticket
    numbers you add to features. Example: if you url is http://ticketsystem/
    and you ticket is T1234, your link will be http://ticketsyste/T1234 -->
    <add key="featurz.ticketsystemurl" value="http://url-for-your-ticket-system/" />
    <!-- archer.db.connectionstring.mongo is the connection string to your
    MongoDb -->
    <add key="archer.db.connectionstring.mongo" value="mongodb://localhost/{DB_NAME}"/>
    <add key="archer.db.name" value="Featurz"/>
</appSettings>
<connectionStrings>
    <!-- MongoServerSettings is not currently used, but is kept for testing
    purposes -->
    <add name="MongoServerSettings" connectionString="mongodb://localhost/Featurz" />
</connectionStrings>
  • Install Featurz NuGet package or add a reference to:
    • Featurz.dll
    • Featurz.Application.dll
    • Archer.Core.dll.

Wishlist

  • Follow recommendations in the book Developing Large Web Applications and Angular App Structure
  • Activate features by a dynamic strategy - features can be activated by multiple strategies that allow the extension of what an active feature means (e.g. active for 25% of users, active between a date range...).

Contribute

Contributions are welcome, but all contributions must be licensed under GPL v3.

License

Copyright 2014 Charles Bryant. Licenced under GPL v3.

References and Inspiration

featurz's People

Contributors

charleslbryant avatar waffle-iron avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.