Articles

Contravariance et Covariance

Contravariance et Covariance La covariance et la contravariance sont des termes qui font référence à la possibilité d'utiliser un type plus ou moins dérivé (plus ou moins spécifique) que celui spécifié à l'origine. Covariance Vous permet d'utiliser un type plus dérivé que celui spécifié à l'origine. Vous pouvez assigner une instance de IEnumerable<Derived> à une variable de type IEnumerable<Base>. Contravariance Vous permet d'utiliser un type plus générique (moins dérivé) que celui spécifié à l'origine. Vous pouvez assigner une instance de IEnumerable<Base> à une variable de type IEnumerable<Derived>. Invariance Signifie que vous pouvez utiliser uniquement le type spécifié à l'origine : pour un paramètre de type générique indifférent, il n'est ni covariant ni contravariant. Vous ne pouvez pas attribuer une instance de IEnumerable<Base> à une variable de type IEnumerable<Derived> et inversement.

Warrants

Les Warrants sont des produits de Bourse à effet de levier listés en Bourse de Paris. De nature optionnelle, ils permettent d’amplifier les variations du sous-jacent à la hausse ou à la baisse. Les Warrants sont des produits adaptés aux investisseurs avertis désireux de dynamiser leur portefeuille sur un horizon court à moyen terme. Grâce à leur effet de levier, les Warrants permettent d’amplifier les variations du sous-jacent (action, indice, devise, matière première, taux, etc.) à la hausse comme à la baisse tout en limitant le risque au capital investi. Les Call seront utilisés pour profiter d’une hausse d’un actif sous-jacent et les Put pour profiter de leur baisse. Fonctionnement du produit à maturité Un Warrant donne à l’investisseur le droit, et non l’obligation, d’acheter (dans le cas d’un Call) ou de vendre (dans le cas d’un Put) un actif sous-jacent à un prix fixé à l’avance (le prix d’exercice) à une date donnée : la maturité. A cette date, fin de vie du Warrant, l’investiss...

MACD

Le MACD, abréviation de Moving Average Convergence Divergence est dû à Gerald Appel, publicateur de "Systems and Forecasts". La MACD est simplement la différence entre deux Moyennes Mobiles Exponentielles de période différente. On emploie couramment les périodes de 12 et 26 jours pour ces MME (E pour Exponentielle dont la formule est MME= fermeture du jour*0.09+MM de la veille * 0.91). Sur la figure, la MACD est la courbe tracée en violet qui reflète donc la différence d'une Moyennes Mobiles Exponentielles sur 12 jours avec une autre sur 26 jours, d'où son codage dans la littérature: MACD(e12,e26). Cette MACD reflétant une différence, elle passera par zéro chaque fois que ces deux MME seront égales. La droite horizontale violette représente cette ligne zéro où la MACD est nulle. Pourquoi Les Moyennes Mobiles employées sont exponentielles? Pour donner plus d'importance aux cours récents dans la courbe, donc lui donner un dynamisme plus sensible aux changements. Uti...

REST API

Representational State Transfer REST est un style d'architecture pour les systèmes hypermédia distribués, créé par Roy Fielding en 2000 dans le chapitre 5 de sa thèse de doctorat. Contraintes Une architecture REST doit respecter les contraintes suivantes : Client-serveur : les responsabilités sont séparées entre le client et le serveur. L'interface utilisateur est séparée de celle du stockage des données. Cela permet aux deux d'évoluer indépendamment. Sans état : chaque requête d'un client vers un serveur doit contenir toute l'information nécessaire pour permettre au serveur de comprendre la requête, sans avoir à dépendre d'un contexte conservé sur le serveur. Cela libère de nombreuses interactions entre le client et le serveur. Mise en cache : le serveur envoie une réponse qui donne l'information sur la propension de cette réponse à être mise en cache, comme la fraîcheur, sa date de création, si elle doit être conservée dans le futur. Cela permet à des serv...

Architecture Orientée Service

L'architecture orientée services est un modèle d'interaction applicative qui met en œuvre des services (composants logiciels) : avec une forte cohérence interne (par l'utilisation d'un format d'échange pivot, le plus souvent XML) des couplages externes « lâches » (par l'utilisation d'une couche d'interface interopérable, le plus souvent un service web WS-*) L'objectif d'une architecture orientée services est donc de décomposer une fonctionnalité en un ensemble de fonctions basiques, appelées services, fournies par des composants et de décrire finement le schéma d'interaction entre ces services. Notion de Service C'est une fonction encapsulée dans un composant que l'on peut interroger à l'aide d'une requête composée d'un ou plusieurs paramètres et fournissant une ou plusieurs réponses. Idéalement chaque service doit être indépendant des autres afin de garantir sa réutilisabilité et son interopérabilité. Des...

Framework Microsoft .NET

 Composants du Framework Common Language Runtime Machine virtuelle exécutant le code généré par la compilation des langages .NET (IL). Common Type Specification Norme définissant un ensemble de types indépendants du langage .NET. Intermediate Language Langage de bas niveau généré lors de la compilation des langages haut niveau .NET. GAC Global Assembly Cache. Zone réservée aux assemblies d'une machine hôte (répertoire de stockage des assemblies communs à l’ensemble des applications .NET installées. On y trouve par exemple les assemblies de base du framework .NET). NET.Core Communication à distance La communication à distance est utilisée pour communiquer entre les domaines d’application qui ne sont plus pris en charge. Pour une communication simple entre les processus, envisagez les mécanismes de communication entre processus (IPC) comme alternative à la communication à distance, telle que les classes System.IO.Pipes ou MemoryMappedFile . Pour les scénarios plus complexes,...

Debugging Tips

====== Debuggage facile avec Visual Studio ====== <code> [DebuggerDisplay("Nom : {Nom}, Prénom : {Prenom}")] public class Personne { public String Nom { get; set; } public String Prenom { get; set; } public int Age { get; set; } } </code> La chaine de caractère en attribut permet d’afficher les valeurs des propriétés Nom et Prenom dans le débuggeur. La syntaxe est assez simple, il faut écrire “{PropertyName}” pour afficher la valeur de PropertyName.