Archives par mot-clé : code

Npm et yarn – quelques fonctions utiles

Lister tout les paquets premier niveau

Npm

npm list -g --depth=0

Yarn

yarn global ls

ajout global

Npm

npm -g install pkg

Yarn

yarn global add pkg

Log4Net – Multi configuration

Pour avoir une configuration de Log4net propre à chaque configuration de votre solution, vous pouvez utiliser les XDT transformations , une implémentation automatisée est fourni par l’extension SlowCheetah avec interface graphique pour Visual Studio.
Une fois cette extension installée, clic-droit sur le fichier log4net.config et sélectionner « Add Transform ».

2 sous-fichiers sont ajoutés:

log4net.config
|
+—- log4net.Debug.config
+—- log4net.Release.config

La transformation la plus simple, « Replace », est faîte en ajoutant le tag xml xdt:Transform= »Replace » sur le noeud que vous souhaîtez remplacer.

exemple:

<log4net xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xdt:Transform="Replace">

Remplacera le noeud log4net complet.

Un exemple de résultat log4net est ci-inclus .
log4net.config
log4net.Debug.config
log4net.Release.config

Vous pouvez pré visualiser la transformation en effectuant un clic droit sur la version debug ou release et en sélectionnant « Preview Transform » .

La syntaxe de transformation est définie dans la documentation disponible sur:

MSDN Doc Xdt transform

Utiser fd-slider avec AngularJS par l’intermédiaire d’une directive

AngularJs est un très bon framework javascript et combiné avec des plugins préexistant, il devient imbattable.

Ci-dessous, le code pour une directive pour utiliser l’excellent plugin fd-slider avec angularJs et lié par binding une textbox et un slider.

  .directive('fdSlider', ["$parse", function ($parse) {
        return function (scope, elm, attrs) {
            var scaleStr = attrs.scale || "{}";
            var scale = $.parseJSON(scaleStr);
            if ("fdSlider" in window) {
                fdSlider.createSlider({
                    // Associate an input
                    inp: elm[0],
                    // Declare a step
                    step: attrs.step || 1,
                    // Declare a maxStep (for keyboard users)
                    maxStep: attrs.step || 1,
                    // Min value
                    min: attrs.min || 1,
                    // Max value
                    max: attrs.max || 100,
                    // Define a scale (multiple points supported, I'm just using one for the
                    // demo)
                    scale: scale,
                    callbacks : {
                        "change": [function(inp) {
                            scope.$apply(attrs.sliderModel + "=" + inp.value);
                        }]
                    },
                    // Use the "jump to click point" animation
                    animation: "jump"
                });
            }
        };
    }]);

et un exemple de code html utilisant cette directive :

<input type="number" step="1" min="10" maxStep="100" max="30000"
                        scale='{"25": "10","50": "100","75": "1000","85": "3000","90": "10000"}'
                                slider-model="myScopeModel" fd-slider="" ng-model="myScopeModel"></div>

Votre modèle angularJs:

...
$scope.myScopeModel = 1000;
...

++