Le Post de MCNEXT

Les articles des consultants de MCNEXT

Bienvenue sur le Post de MCNEXT !

  • MCNEXT, la Build 2014 et la SharePoint Conference

Chaque année, MCNEXT propose à des collaborateurs de l’entreprise de se rendre aux grandes conférences de Microsoft aux Etats Unis. L’objectif est de découvrir les nouveautés et de nous permettre de mieux appréhender les grandes évolutions technologiques. Chez MCNEXT, nous aimons partager et les comptes rendus de toutes les sessions auxquelles ils participent sont publiés sur mcnextpost.com .

Retrouvez ici tous les post pour la Microsoft Build 2014 et ici tous ceux de la SharePoint Conference 2014

[JSS 2014] Session : Deep Dive : Hive

Speaker : David Joubert & Julien Buret
Level : 400

Objectif : Découvrir la technologie Hive et démontrer la convergence Datawarehouse et Big Data

Introduction :
Intégré par défaut sur la plateforme Hadoop, Hive est un lien manquant entre SQL et Big Data dans l’éco-système.
Langage, stockage, exécution, cet entrepôt de données Big Data s’est toujours inspiré de ses équivalents relationnels dans son évolution.
Nous allons présenter Hadoop dans un premier temps puis Hive et son historique, type de stockage et quelques comparaisons de performance.
Le Big Data n’est pas au programme de cette session, ainsi que l’analyse en temps réel.

Hadoop :
Hadoop est un Framework permettant de développer des applications distribuées et scalables. Ce n’est pas une base. Hadoop utilise un système de fichiers distribués (HDFS) et le moteur de calcul MapReduce.
Sa mauvaise performance sur les données en temps réel est un inconvénient. Beaucoup d’évolutions dépendent de cette problématique.

Hive :
Historiquement, Hive était un projet interne à Facebook lancé en 2007. Il a été rendu open source en 2009. Aujourd’hui, il est possible de requêter en SQL sur Hadoop (HiveQL).
Hive n’est pas un moteur de base de données. C’est une application cliente de Hadoop qui permet de générer des jobs MapReduce à partir d’un langage plus performant.
Hive se compose de 2 principaux modules :

  • Hive METASTORE : base relationnelle pour indiquer comment est structurée une table dans Hadoop (HDFS)
  • Hive DRIVER : interprête les requêtes SQL fournies par le client et les transforme en job MapReduce (M/R)

DeepHive_HiveFonctionnementGlobal

Exemple de plan d’exécution :

DeepHive_MR

Démo Hive : Création d’une table, dite externe (ne copie pas les données sur disque)
Petite comparaison SQL VS Hive

Une démo rapide pour montrer la création d’une table externe :
CREATE EXTERNAL TABLE tableName (

);

Quel usage de Hive ?
On stocke le maximum de données dans Hadoop. Hive permet de traiter les use-cases complexes qu’on ne peut pas gérer dans les datawarehouses. L’inconvénient, c’est qu’il est très difficile d’avoir des requêtes interactives dues à ses latences.
Plusieurs projets ont été développés afin de gérer ces requêtes interactives (Presto, Apache, HawQ, …).

DeepHive_QuelUsage
« schema on read » = il n’y a pas de validation à l’insertion. Elle se fait à la lecture

Nouveaux moteurs :
MapReduce, c’est fini pour Hadoop. De nouveaux moteurs d’exécution ont fait leur apparition : Tez, Spark, etc. Nous allons nous focaliser sur Tez.
Tez supporte le M/R et les jointures. Il permet de construire des plans d’exécutions plus complexes que M/R (pipelining, utilisation de la mémoire à la place du disque, multiple étapes de Reduce). L’idée est de ne garder que les M/R sans écrire dans HDFS.

Démo : Hive M/R VS Hive Tez
Petite comparaison de performance entre les deux moteurs.
Résultat : Tez est environ 2 fois plus rapide que M/R.

Hive sur les données brutes :
Hive peut analyser des formats de type Text. Par contre, le parsing est coûteux et il y a un problème de compression.
Le format orienté colonne (Oriented Row Columnar, ORC) permet de stocker les données en colonne. Cela améliore les performances en lecture, écriture et traitement, notamment grâce à la compression et l’encodage des données. Grâce à cela, le traitement massif des données est plus adapté pour Hive.

Démo : Stockage natif VS Stockage en colonne

  • Création de table de type ORC : ajouter « STORED AS ORC » à la fin de la requête CREATE TABLE
  • Gain de temps d’environ 4 fois plus en stockage colonne

Vectorization :
Hive traite les données ligne à ligne alors qu’avec la Vectorization, c’est bloc à bloc.
Le Query Engine a été modifié pour traiter des « vecteurs de colonne ». Nous avons une meilleure utilisation du CPU et des caches.
L’arbre d’exécution a été optimisé (Partition pruning, Projection pruning, filter push/down). Il n’y a pas d’optimisation liée à la donnée. L’ordre des tables dans les jointures est très important.

Cost-Based Optimizer (CBO) :
Le CBO utilise les statistiques de base de données pour générer plusieurs plans d’exécution et choisir le moins coûteux.

Démo : Performance avec et sans CBO

  • Ajouter « EXPLAIN » devant la requête pour afficher le plan d’exécution
  • On désactive CBO, active le moteur Tez, sans vectorization : 136s pour 164 lignes
  • On désactive CBO, active le moteur Tez, avec vectorization : 80s pour 164 lignes
  • On créé les stats, active CBO : 69s pour 164 lignes
    • le plan d’exécution est différents des 2 précédentes configurations
    • il y a moins de mapper

Pourquoi convergence ?

DeepHive_Convergence

Futur du SQL sur Hadoop :

  • SQL 20XX
    • Supporter les fonctionnalités analytics
    • WINDOWS, ROOLUP, CUBE
  • Transaction
  • Hive LLAP
  • Materialized views

Foudhil BABA ALI & David TANG

[JSS 2014] Data Mining Avec SSAS et Azure ML

Speaker : Patrice Harel

Titre : Data mining Avec SSAS et Azure ML

Objectif : Comparaison de Mise en place d’un process de Data Mining avec SSAS Vs Azure Machine Learning

 

Introduction :

Une introduction theorique sur le data mining

Les données utilisées pour la démo sont les données des accidents sur les routes (source : data.gouve.fr  2006-2011)

Les Données ne sont pas très volumineuses (700 000 lignes) mais avec plusieurs colonnes (attributs), l’objectif est de trouver des relations entre les attributs.

Exemple des attributs: Catégorie de route \ Luminosité \ Type d’agglomération \ Conditions atmosphériques

Data Mining :

Le premier travail du data-mineur est:

  • s’approprier le domaine métier
  • Donner du sens supplémentaire aux données ou l’information
  • Etablir une corrélation entre les attributs

Exemple : Luminosité vs condition atmosphériques: Si il y a beaucoup  de brouillard donc forcément peu de luminosité.

Ce premier travail a pour but de définir quels attributs vont contribuer dans le travail du data mining.

Les données peuvent être utilisées directement dans leur état brut. De préférence avoir des  données propres et organisées, sans pour autant les stocker dans une Base SSAS.

 

Un petit tableau de comparaison :

Data mining Machine Learning
Appliquer des algorithmes de recherche de modèles (patterns) sur d’importants volume de données Se réfère à la partie algorithme du data mining
Trouver des relations supplémentaires, faire de la prédiction, intelligible pour un humain « Désigne les ajustements dun système par lui-même dans le sens ou ce système pourra effectuer une même tâche une seconde fois mais de manière plus efficace »
Né des besoins sur les bases de données Né des besoins en intelligence artificielle

 

Les étapes de mise en place d’un modèle de datamining :

  • Se poser les bonnes questions, définir ses objectifs (si le résultat est non satisfaisant, il faut se poser la question est-ce que le résultat est mauvais ou est-ce qu’on s’est posé les mauvaises questions)
  • Définir deux types de variable :
    • les variables explicatives (condition atmosphérique)
    • Les variables à expliquer (le nombre de morts et de blessés)
  • Définir la population cible : a qui est destiné l’étude
  • Scinder la source de données en deux
    • Un échantillon de travail
    • Un échantillon de validation

Les études du Datamining mettent à notre disposition des données utiles qui complémentent celles de la BI,

 

Différence entre l’analyse descriptive et l’analyse prédictive :

Analyses descriptives : Quels sont les clients qui consomment le plus de parfums.

Analyses prédictives : Quel va être mon chiffre d’affaire l’année prochaine.
Dans notre cas d’étude « Essayer de prévoir selon les caractéristique de l’accident si oui ou non il va y avoir des morts et\ou des blessés »

 

Cycle de développement :

  • Choix du sujet, définition des objectifs
  • Inventaire des données disponibles
  • Extraire, transformer, corriger et rassembler les données (évacuer les données aberrantes, Choisir des variables ni trop corrélées ni très peu corrélées avec la variable qu’on veut expliquer)
  • Statistiques descriptives
  • Choix de l’algorithme
  • Souvent dans le datamining on crée des variables booléens, c’est plus facile à traiter
  • Validation du modèle, déploiement

 

La problématique :

Puis-je prédire, en fonction des caractéristiques d’un accident si il y aura ou non des morts/hospitalisés?

  • Création d’une nouvelle variable : EstGrave (Booléen)

 

Objets SSAS DM :

SSAS DM

Case : la table qui va contenir les caractéristiques de notre étude de cas

Nested : la table qui contient des caractéristiques complémentaires (pas indispensable)

Input : variables explicatives

Output : variables à expliquer

DEMO Datamining sous SSAS :

Les étapes de création dans SSDT :

  • Créer une solution SSAS
  • Définir une data source
  • Créer data source view
  • Créer la structure mining
  • Choisir le modèle de mining à utiliser (L’algorithme) : Arbre de décision
  • Choisir les cas & nested
  • Key : identifiant de chacune des instance de nos case
  • Input : var explicatives
  • Predict : var à expliquer
  • Définir le pourcentage de data pour l’étude, et le reste servira à la validation (30/70)
  • Observer le résultat : la courbe Lift permet de définir le niveau de prédiction du modèle (80%)

PS : Un modèle qui fait 60% est considéré comme pas mal, 75% est très bon, 90% est parfait.

 

Object Azur Machine Learning :

AML

 

DEOM AML :

Les étapes de création :

  • Créer une nouvelle expérimentation (l’interface ressemble à SSIS)
  • Importer le data set (pas de possibilité de travailler sur des externes)
  • Ajouter le composant Project column (selectionner les attributs que l’on va utiliser)
  • Ajouter le composant Split (30%, 70%)
  • Choisir le model (Algo): 2 class (boosted decision tree)
  • Choisir la variable à expliquer
  • Evaluate
  • Run
  • Résultat : 76% (algo est légèrement diffèrent par rapport à celui implémenté dans SSAS)

 

Conclusion :

Conclusion

[JSS 2014] Sécurité Via policies

Description :

Basée sur mon expérience dans les banques suisses, je vous propose une manière simple de contrôler la sécurité via les policies. Quels types de contrôle doit-on mettre en place au niveau de l’instance, au niveau de la base de données? Comment les gérer sur plusieurs serveurs? Avoir de beaux petits rapports ou emails en retour… Essayons de répondre ensemble à toutes ces petites questions que nous avons aux niveaux des audits de sécurité…

Level : 200

Date & heure : 2 décembre 2014 – 10h30

Speaker(s) : Stéphane Haby

 

Dans cette session Stéphane Haby nous a expliqué comment le DBA peut-il devenir le Gardien des données.

Dans un 1 er temps nous avons fait un tour des Bests practices de sécurisation générale puis dans un second nous avons vu comment mettre en place des policies sur SQL Server :

1.     Bests practices de sécurisation :

Afin de s’assurer de la sécurité des données existantes dans notre environnement Stéphane Haby nous propose de l’auditer afin de lister l’ensemble des points à surveiller.

Des résultats obtenus de son expérience, il va nous proposer de contrôler les niveaux suivants :

  1. Server
  2. Instance
  3. Database
  4. Data

1.Server :

Dans cette partie, nous avons fait le tour des bonnes pratiques à mettre place coté sécurité sur le serveur hébergeant la ou les instances de bases :

 

  • Permission sur les disques des serveurs (enlever le Read / Read & execute / List Folder) pour tous les utilisateurs)

Sec_Pol_1

 

  • Formater les partitions en NTFS ( Le format NTFS a pour avantage de disposer d’une encryptions et de l’ALS)
  • Installation que des outils nécessaires sur les instances ( faire attention aux outils ajouté automatiquement : par exemple DQS s’installe automatique lors de l’installation d’une infrastructure en cluster )
  • Installer les derniers Services Packs et Security Fix
  • Supprimer les scripts d’installation => un mdp administrateur peut trainer par la …
  • Désactiver NetBios et SMB

2. Coté instance :  

Dans cette partie Stéphane Haby nous expose les modifications à effectuer coté instance SQL Server permettant d’améliorer la sécurité : 

  • Changer les ports (il est facile d’attaquer le 1433)
  • Enlever le browser (on masque les instances … Seul les utilisateurs connaissant les bonnes chaines de connexions peuvent les trouver …)
  • Depuis la version 2012, il est possible de cacher les instances
  • Il est utile de créer un compte de service pour chaque instance
  • Utiliser des password Complexes
  • Préférer l’Authentication Windows
  • Eviter le Grant Control server to [public]
  • Revoke Extended and OLE Automation stored procedures for the public Role
  • Supprimer les BUILTIN\Administrator
  • Sa => mdp complexes
  • Supprimer les login obsolète
  • Désactiver le cmd shell
  • Désactiver cross db ownership chaining
  • Désactiver le sql Server web assistant
  • Désactiver CLR intégration
  • Désactiver le Ad hoc remote queries
  • Activer l’audit de sécurité
  • Activer les traces par défaut

3.Database :

 Dans cette partie nous avons fait une revue des bonnes pratiques coté base de données : 

  • Minimiser les rôles DBO
  • Supprimer les comptes orphelins (comptes d’utilisateurs n’ayant plus de bases rattachés ou plus utilisés)
  • Supprimer les schémas dbo 

4.Data 

   Enfin coté données nous avons vu que la meilleur sécurité était le cryptage de celles-ci

2.     Mise en place de policy  :

Les policies SQL Server correspondent à une stratégie de sécurité mis en place pour automatiser les contrôles de conformités du Serveur. 

Objectif :

  • Mettre en place des règles et vérifier les écarts sur les différentes instances ( par exemple : différences de droits sur les bases entre l’instance de DEV et de PROD , auditer les modifications intempestive de donnée effectué par des développeurs malin qui incluent des Grant dans les scripts , verifier l’arrivée de nouveaux utilisateurs … )
  • Automatiser le contrôle des instances par l’intermédiaire de reporting ou de mail  (Automatiser cet « Audit » en envoyant des mails réguliers aux DBA’s et aux équipes de sécurité)

Pour avoir une meilleure compréhension sur le concept de gestion axée sur les policies il ya quelques termes à comprendre :

  • Target- Permet à l’administrateur de gérer ses règles sur un type d’entité : Par exemple, une table, une base de données ou un index
  • Facet – Permet de gérer la gestion des règles. Un exemple de Facet est le nom d’un trigger ou la propriété de Réduction automatique de la base de données (Auto Shrink).
  • Conditions – Critères qui spécifie l’état de la « Facet » à vrai ou faux. Par exemple, vous pouvez vérifier et régler l’état d’une Facet qui vous donne des informations de toutes les procédures stockées dans le schéma «dbo».
  • Policy – Un ensemble de règles définies pour les objets de serveur ou les propriétés de base de données.

Sec_Pol_2

 

Sec_Pol_3

 

Après avoir compris ces différents concepts Stéphane Haby nous a présenté comment créer une policy et comment les déployer pour les exécutés : 

  • A la demande
  • De manière automatique
  • Lors de detection de changement

Dans sa démo Stéphane Haby nous détail chaque étape en nous présentant les tenant et les aboutissant et les différents rendus présentés aux DBA qui peuvent s’avérer utile sur le terrain:

  1. Créer une condition
  2. Créer la policy
  3. Evaluer la policy
  4. Le déployer sur plusieurs serveurs
  5. L’automatiser (par l’intermédiaire de rapport ou de mail)

Julien PIERRE

Consultant Décisionnel

[JSS 2014] Ma première analyse avec Machine Learning

Level : 200 Date & heure : 2 décembre 2014 – 10h30 Speaker: Florian Eiden

Titre : Ma première analyse avec Machine Learning

Objectif : Concevoir un système automatisé et intelligible qui apprendra de ses expériences

Introduction :

Rappel sur la BI dite classique, ses limites avantages et inconvénients.
Schéma du positionnement de la technologie Machine Learning par rapport à la BI traditionnelle. (Hacking skills, mathematiques, BI Analyst)

A qui est-elle destinée ?

Aux utilisateurs métiers de l’entreprise qui souhaitent avoir des éléments de réponse à une question posée.
Exemple : Quelle est le meilleur prix de vente pour mon appartement sur le marché parisien?

Quelles sont les interlocuteurs qui vont la mettre en œuvre ?

IT, Matheux, statisticiens, data scientist

Dans quel but ?

BI classique analyse l’existant et permet d’apporter des éléments de réponses basés sur des indicateurs de performance.

Machine Learning s’attaque à la prédiction des événements futurs au travers d’un algorithme mathématique qui une fois entrainé (Train model) obtient d’un échantillon (training set) une tendance sur l’avenir.

Use case :

Estimer le prix du marché d’un appartement Parisien par rapport à sa surface, son arrondissement, et le prix du m2 afin de pouvoir le vendre au meilleur prix.

Fait appel aux cours de mathématiques (fonction affine, régression linéaire, valeur discrète, continue).

L’idée étant de déterminer le prix en fonction du nombre de m2 et de la superficie, le prix d’un appartement à Paris par l’expérience (experiment). Cela se traduit par une courbe constituée par un ensemble continue de valeurs discrètes où Y étant le prix de l’appartement à vendre qui est égal à X le nombre de m2 par rapport à un coefficient à déterminer qui s’appuie sur la tendance du marché. D’où la formule y=h(x).

Les données piochées proviennent du site PaP dont les données ont été aspirées avec l’outil Kimono (firme américaine) qui permet d’obtenir des données structurées dans une table (dataset) à partir d’un navigateur web.

Démo :

Plateforme azure (dans le cloud) avec un navigateur web et un compte azure sont les seuls éléments dont vous devrez vous acquitter pour commencer à développer :

On retrouve des composants classées et rangées par catégorie tels que la source, les splits qui ne sont pas sans rappeler les éléments de la toolbox SSIS auxquels vont se greffer de nouveaux concepts/modèles (train model, score model, algorithmes, evaluate model, script, langage R).
Ces différents éléments précités s’imbriquent les uns dans les autres pour constituer un workflow relié par des flux au travers desquels les données vont transitées. Chaque élément peut être visualisé pendant son traitement et permet d’expliciter les données en apportant des éléments sur la précision, la pertinence des données traitées sur une courbe. Le speaker insiste sur l’importance d’intégrer le maximum de données concrètes pour améliorer et entrainer le modèle.

Conclusion :

Une Technologie d’avenir qui vient enrichir l’écosystème CLOUD de Microsoft et nécessite une forte propension à comprendre les concepts mathématiques.

La prise en main est rapide et ne nécessite aucune installation logicielle.
Concevoir des modèles  et bénéficier de la puissance mathématique des algorithmes (initialement développés pour XBOX et BING) en utilisant le  « Drag and Drop » des composants présents dans ML Studio.

Ces projets verront le jour en réunissant les compétences  d’un mathématicien  couplées à  celles d’un data scientist qui aura la charge d’apporter des données nettoyées en source afin de construire le workflow pertinent.

Pour aller plus loin,
Apprentissage des codes et pratiques du Data Scientist au travers d’une Formation Machine Learning  dispensée par la société coursera cursus de 10 semaines, nécessite des notions en mathématiques et statistiques. Vidéos de présentations sur le site studio.azure.ml.

 

[JSS 2014] Session : L’agilité n’est pas une fatalité

Speaker(s) : Michel Perfetti – Nicholas Suter
Level : 200

Cette session nous présente la méthode Agile comme une révolution qui touche non seulement les différentes entités mais aussi son impact dans le futur.
L’Agilité touche aujourd’hui presque tous les domaines de développement, même la BI n’y échappe pas.
La session a commencé d’abord par plusieurs interrogations légitimes, à savoir :
Si l’Agilité est une révolution pour certains.
Cela implique-t-il qu’il faut outrepasser les Designers et passer directement au code ?
Nous avons vu aussi que l’agilité touche 3 royaumes
Utilisateur : Définit son besoin et attend le résultat
Développeurs : Leur travail est souvent vu de l’extérieur comme une boîte noire.
Opérationnels : Ils attendent surtout des livrables.

En tant que professionnel de la Data il faudra trouver sa place entre ces 3 royaumes.
Les Speakers nous montrent que la vraie révolution sera autour du DevOps.
Car il faudra en finir avec la guerre entre les Devs et les Ops et qu’il faudra un mur de confusion.
D’une part l’équipe de dév qui la plupart des cas est amené à maximiser les changements et d’autres part les équipes Système et Infra qui cherchent le plus souvent à minimiser le changement.

Cette révolution se ressentira à plusieurs niveaux :
– Les individus et leurs interactions
– Les logiciels opérationnels
– La collaboration avec le client
– L’adaptation au changement
– La réduction des Cycles de Livraison
– L’optimisation des ressources
– L’amélioration de la qualité

Et l’agilité dans le futur ?
• Dans un futur assez lointain (10 ans) Nicholas Suter nous promet:
o Des cycles de développement ultra cours
o Des infrastructures différentes
o Des livrables plus petits et plus simples

• Dans les 3 ans l’Agilité aura touché ces domaines:
o Cloud
o Big Data
o Machine Learning

Conclusion :
S’il y avait qu’un seul mot à retenir ce serait « raz de marée ».
Michel Perfetti – Nicholas Suter nous ont montré que l’agilité bouleverse toute l’organisation et en gros c’est quelque chose qu’on subit tous.
Les speakers on finit néanmoins par quelques tips à savoir :
– Déployer en ligne de commande si possible, ce qui permet de confier le déploiement à un Ope par exemple
– Ne pas hésiter à regarder ce qu’il y a sous le capot(le code)
Et je ne peux que confirmer cela pour avoir déjà travaillé en mode Agile sur un projet pendant presque un an.

Cheikh SECK – Consultant décisionnel MCNEXT

[JSS 2014] Session : BI et déploiement automatique avec TFS

Speaker : Romuald COUTAUD & Khirdine HADDAR
Level : 200

Objectif : Déploiement des solutions BI (SQL, SSIS, SSAS, SSRS) automatiquement avec TFS

Introduction :
Dans tous les projets BI, il y a différentes façons de gérer l’industrialisation de nos projets (SQL, SSIS, SSAS, SSRS). Cette session va permettre d’illustrer TFS (Team Foundation Server), l’un des moyens d’industrialisation de ces projets en automatisant la génération et le déploiement des livrables dans les différents environnements (Dev, Intégration, Prod).
Ce qui va être présenté ici, ce sont juste le versioning des solutions ainsi que la génération et le déploiement automatique des différents projets (TFS Build).

TFS :

  • Gestion des versions des projets
  • Packager les livrables
  • Build TFS
    • Extraction et copie automatique sur le serveur
    • Génération des projets (se fait à l’aide de MSBuild, un framework dotNet)
    • Déploiement

Le déploiement se fait à l’aide de WWF (Windows Workflow Foundation). Il est possible d’utiliser des scripts PowerShell pour compléter ces tâches.
Beaucoup de DLL (codeplex) ont été développées par la communauté et seront utilisées.

Outils :
SSIS : MSBuildSSIS2012 (génération & déploiement)
SSAS : SSASHelper (génération)
SSRS : SSRSMSBuildTasks

Démo : Déploiement SQL Server

  • définition du Build avec les différents arguments (deploy, environment, …)
    • fait appel à TFSBuild.exe

>> Toute la base a été déployée sur l’instance DB indiquée, avec les schémas associés.

Démo : Déploiement SSIS

  • le fichier .proj a été modifié pour prendre en compte des options non natifs
  • possibilité d’ajouter un fichier .xaml (WWF) pour avoir des options en plus aussi (BuildSSIS, …)
  • lancement du Build
    • compilation du projet SSIS + déploiement
    • le build peut se lancer aussi en ligne de commande. En changeant les paramètres, on peut facilement déployer les mêmes sources mais sur des instances différentes

Démo : Déploiement SSAS

  • mêmes procédés que précédemment à l’exception qu’un fichier de config.xml peut permettre de customiser ses différentes sources
  • comme indiqué dans la partie Outils, le codeplex pour SSAS ne permet pas de déployer les solutions SSAS. Pour la démo, un script PowerShell a été développé, permettant les déploiements

Démo : Déploiement SSRS

  • pas de surprise par rapport aux précédentes démos. La DLL, récupérée sur codeplex, met à disposition plusieurs méthodes permettant de checker l’existance d’un rapport, l’ajout/suppression d’un rapport, la modification de la source, etc.
  • les étapes de génération et déploiement restent les mêmes que précédemment

Pré-requis :

  • avoir un server TFS configuré
  • adapter tous les codeplex récupérés

Conclusion :
On entend beaucoup parler de TFS (surtout chez les dotNetiens) mais durant mes différentes missions, je n’ai pas eu l’occasion de voir cette méthode mise en place.
Très bonne session, on a pu voir qu’une fois que toutes les configurations, pour chaque type de solution, ont été mises en place, on peut facilement déployer nos solutions sur chacun de nos environnements et du coup, faciliter la tâche à nos chers collègues du support (et nous même).
Reste à voir ce que TFS peut donner avec les tests unitaires par exemple…

Aller un peu plus loin avec Azure DocumentDb

Mon article précédent avait pour but de montrer les fonctionnalités essentielles de Document Db. Aujourd’hui, nous allons voir comment simplifier l’accès aux données stockées dans Document Db avec le provider Linq fourni par Microsoft, puis nous verrons comment du code peut être intégré à une base Document Db au travers des procédures stockées, triggers et UDFs (User-Defined Functions). Les exemples décrits ici prennent la suite de ceux de l’article précédent : il est donc toujours question d’équipes de hockey et de leur composition.
Lire la suite

Premiers pas avec Azure DocumentDb

Au cours du mois d’Octobre 2014, Microsoft a mis à disposition une version préliminaire de DocumentDb. Ce service fournit une base de données NoSQL orientée documents assortie de fonctionnalités supplémentaires. Parmi celles-ci, on peut trouver :
– Le support de requêtes de type SQL
– Le support des transactions
– L’intégration profonde de JSON pour le stockage des données
– Le support de Javascript comme langage intégré au moteur

Cet article montre comment gérer ce service dans le portail Azure ainsi que l’utilisation des fonctionnalités (communes) de lecture/écriture de données.

Lire la suite

Common patterns when handling promises

Promises are becoming a top feature of JavaScript. They’re already part of most libraries and frameworks (jQuery, WinJS and AngularJS among others) and will soon be included natively in all browsers with the upcoming delivery of ECMAScript 6 (the standard behind JavaScript). They are heavily used every time you have to deal with asynchronous calls, like in Ajax, or in Single Page Applications which rely a lot on them.

I’ve been using them proficiently for different projects, and I noticed there are common patterns that keep popping in my code, and are not necessarily well known for the time being. I propose we take a look at three of them. Lire la suite

[TFS] Configuration avancée de TFS Proxy

Dans mon précédent post j’explique comment installer et configurer un serveur TFS proxy.

Pour rappel un serveur TFS proxy est utile pour des raisons de performances dans le cas d’une équipe de développeurs travaillant sur un site distant.

Après avoir installé et configuré le serveur TFS proxy on peut le configurer plus finement en modifiant le fichier proxy.config

Le fichier proxy.config

Ce fichier qui est au format XML se trouve sur le serveur TFS proxy dans le répertoire :

Program Files /Microsoft Team Foundation Server 12.0/Version Control Proxy/Web Services/VersionControlProxy/

proxy1

Une fois ouvert voici son contenu

proxy2 Lire la suite

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 28 autres abonnés