Utilisation des "Task" en 5 min

Sommaire 1. Quelques patterns courants  Lancer l’exécution d’une tâche  Attendre la fin de l’exécution de la tâche  Récupérer le résultat d’une tâche  Notion de tâche parente  Utilisation de l’option de création “LongRunning”  FromException(), FromCanceled() et FromResult() 2. Gestion des exceptions  AggregateException  CancellationToken 3. TaskScheduler  Task et thread principal  Problème lecteur/écrivain 4. Exécution asynchrone 5. TaskCompletionSource…

Continuer à lire

Pourquoi implémenter "GetHashCode()" quand "Equals()" est surchargé ?

GetHashCode() permet de fournir un clé de hashage qui sera utilisée pour différencier l’objet par rapport à un autre. Par exemple, il sert pour les dictionnaires pour comparer rapidement des objets entre eux. Des objets de même type et ayant les valeurs (de propriétés par exemple) doivent avoir le même hash code. Tous les composants…

Continuer à lire

Mot clé C# dynamic

Permet d’introduire la notion de type dynamique en C#. Contrairement aux variables fortement typées, le type n’est pas connu à la compilation, il est déterminé à l’exécution en fonction de l’initialisation. On peut utiliser dynamic pour des variables locales, dans la signature de fonctions et pour les membres de classe, en revanche on ne peut…

Continuer à lire

Mot clé C# Volatile

Le mot clé volatile indique qu’un champ peut être modifié par plusieurs threads qui s’exécutent simultanément. Les champs qui sont déclarés volatile ne sont pas soumis aux optimisations du compilateur qui supposent l’accès par un seul thread. Cela garantit que la valeur la plus à jour est présente dans le champ à tout moment. Rien…

Continuer à lire

Formation MongoDB M101N: semaine 6 – Conception des applications

Semaine 1 Semaine 2 Semaine 3 Semaine 4 Semaine 5 Semaine 6 Introduction CRUDDriver .NET Conception Performances Aggregationframework Conception desapplications Durabilité des écritures Dans un contexte classique, on a: Application ⇔ driver ⇔ mongod ⇔ mongo Shell Des opérations d’écritures sont faites par l’application et par le mongo shell. Pour obtenir les erreurs: – dans…

Continuer à lire

Formation MongoDB M101N: semaine 4 – Performance

Semaine 1 Semaine 2 Semaine 3 Semaine 4 Semaine 5 Semaine 6 Introduction CRUDDriver .NET Conception Performances Aggregationframework Conception desapplications Fonctionnement d’un index Une table est rangée comme une liste de valeurs rangée les unes à la suite des autres. Lorsqu’on effectue une requête sur cette liste, si il n’y a pas d’index, on va…

Continuer à lire

Formation MongoDB M101N: semaine 5 – Aggregation framework

Semaine 1 Semaine 2 Semaine 3 Semaine 4 Semaine 5 Semaine 6 Introduction CRUDDriver .NET Conception Performances Aggregationframework Conception desapplications Permet de faire des requêtes proches de $group. La fonction “aggregate” fonctionne en utilisant des “pipes” comme une ligne unix. Chaque étape du pipeline correspond à des étapes ou “stage”. Il n’y a pas d’ordre…

Continuer à lire

Formation MongoDB M101N: semaine 3 – Conception

Semaine 1 Semaine 2 Semaine 3 Semaine 4 Semaine 5 Semaine 6 Introduction CRUDDriver .NET Conception Performances Aggregationframework Conception desapplications Quelques caractéristiques: – “Rich documents”: on peut stocker davantages que de simples valeurs, – “Prejoin” en utilisant des documents intégrés (embedded documents), – Pas de jointures en MongoDB, – Pas de contraintes, – Pas de…

Continuer à lire