Développement logiciel, PHP, C, C++, autres langages
Transcription
Développement logiciel, PHP, C, C++, autres langages
Développement logiciel, PHP, C, C++, autres langages Conçus sur la base d'expériences concrètes, les cours Orsys en programmation vous permettront d'acquérir une parfaite maîtrise des langages phares que sont PHP, C, C++, et de leurs dernières évolutions, mais également de langages tels que l'Objective-C, le Perl, le Python ou encore le SQL. Vous verrez comment développer de nouvelles applications, les intégrer au système d'information de votre entreprise et assurer leur maintenance. Vous apprendrez à mettre en œuvre les Frameworks les plus utilisés et les méthodes les plus efficaces de test, d'industrialisation et d'optimisation. Apprentissage de la programmation Introduction à la programmation avec Visual Basic Introduction à la programmation avec Java Introduction à la programmation avec C# (réf. INJ) Best .... p.4 .... p.6 .... p.8 (réf. OGR) Initiation à la programmation avec Python (réf. INP) Best (réf. THO) .... p.10 PHP : préparation à la certification Zend PHP Zend Certified Engineer, préparation à la certification (réf. PPH) .... p.12 PHP : formations mixtes tutorées Développer des sites Web avec PHP .... p.14 (réf. ACB) New Mixte tutoré PHP : les fondamentaux PHP 7 et 5, développer un site Web dynamique (réf. PHH) Best .... p.16 PHP 7 et 5, maîtriser la programmation orientée objet (réf. POG) PHP 7 et 5, pour les développeurs objet .... p.20 (réf. OBP) Best PHP 7, nouveautés et bonnes pratiques de migration PHP 7 et 5, perfectionnement (réf. PHA) .... p.18 .... p.22 (réf. PHM) New .... p.24 PHP 7 et 5, perfectionnement pour les développeurs objet (réf. OBA) PHP 7 et 5, industrialisation des développements (réf. HPO) .... p.28 Architecture REST, développer des Web Services en PHP (réf. STE) PHP 7 et 5, sécuriser vos applications (réf. PSE) .... p.26 .... p.29 .... p.31 PHP : frameworks PHP, technique avancée de développement pour le Web (réf. PYM) Best Zend Framework 2 et 3, maîtrise du développement Web (réf. FAR) Zend Framework, maîtrise du développement Web (réf. ZEN) .... p.33 .... p.35 .... p.37 Langage C Programmation en C (réf. LGC) Best .... p.39 Programmation en C, perfectionnement (réf. CFT) C11, mise à niveau pour développeur C (réf. CDE) Linux industriel, temps réel et embarqué (réf. LXT) Best Linux/Unix, développement système (réf. LIS) Linux, drivers et programmation noyau .... p.42 .... p.44 .... p.46 .... p.48 (réf. LDI) Best .... p.49 Langage C++ ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 1 Programmation objet en C++ (réf. C++) Best Programmation C++, perfectionnement .... p.51 .... p.53 (réf. POP) Best C++11, mise à niveau pour développeur C++ (réf. VEC) .... p.55 C++, mise à niveau pour les développeurs C# et Java (réf. TDE) .... p.57 C++, développement d'applications graphiques en QT (réf. CQT) .... p.58 C/C++, programmer vos applications en Multicore (réf. MUC) .... p.60 C++, programmer avec CUDA sous Visual Studio (réf. CDU) New .... p.62 Visual Basic Développer en Visual Basic (réf. VB6) Best Visual Basic, perfectionnement .... p.64 .... p.66 (réf. VBE) Perl Langage Perl (réf. PRL) Best .... p.67 Langage Perl, programmation avancée Python, programmation objet Python, perfectionnement (réf. PYT) Best (réf. PYA) New .... p.69 (réf. LAP) .... p.70 .... p.72 Django, développement Web avec Python (réf. DJA) .... p.74 Windev/Webdev Windev, développement d'applications Desktop Webdev, développement Web (réf. DEV) .... p.76 .... p.77 (réf. WEB) Objective C iPhone/iPad, développer des applications en Objective-C iPhone/iPad, développement avancé en Objective-C (réf. ONE) Best (réf. DAN) New .... p.79 .... p.82 Swift Les bases du langage Swift (réf. FIW) .... p.84 iPhone/iPad, développer des applications en Swift (réf. PAW) .... p.86 SQL et langages SGBDR SQL Server, Programmation SQL (réf. PSQ) Best SQL Server, programmation SQL avancée SQL Server 2014 à 2008, développement .... p.88 (réf. PAV) Best (réf. SED) .... p.90 .... p.91 Transact-SQL, optimisation pour SQL Server 2014 à 2008 SQL Server 2014/2012, mise en œuvre SQL Server 2008, mise en œuvre Oracle SQL (réf. OSL) Best (réf. SEM) Best .... p.93 .... p.94 .... p.96 .... p.99 Oracle SQL, perfectionnement Oracle SQL pour le décisionnel Développer en PL/SQL (réf. QSM) (réf. TAS) (réf. OSP) .... p.100 (réf. ROD) (réf. ORD) Best .... p.102 .... p.103 Développer en PL/SQL, perfectionnement Oracle, optimisation d'applications SQL pour MySQL et PostgreSQL (réf. DSP) (réf. OPT) Best (réf. MYP) Best .... p.105 .... p.107 .... p.109 ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 2 MySQL, prise en main (réf. MSQ) Best PostgreSQL, prise en main .... p.111 (réf. POS) Best .... p.113 PostgreSQL, optimiser vos developpements (réf. DAV) .... p.115 Autres langages et outils Mettre en œuvre le contrôle de versions avec le système GIT RUBY On Rails 4, développement Web Programmation Cobol (réf. BOL) (réf. RUR) (réf. GIT) .... p.117 .... p.119 .... p.121 Corba, architecture, mise en œuvre (réf. COR) .... p.122 ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 3 Stage pratique de 3 jour(s) Réf : INP Participants Toute personne devant apprendre à programmer. Pré-requis Aucune connaissance particulière. Prix 2017 : 1880€ HT Dates des sessions Paris 12 déc. 2016, 27 fév. 2017 9 mai 2017 Introduction à la programmation avec Visual Basic Best > Développement logiciel > PHP, C, C++, autres langages Ce stage vous permettra de comprendre les fondements de la programmation et de l'algorithmique. Vous acquerrez des bases en programmation qui vous permettront d'aborder n'importe quel langage dans les meilleures conditions. Tous les aspects essentiels seront vus : les modèles de programmation, les éléments de lexique et de syntaxe, les outils, l'organisation du code, l'accès aux bases de données et les tests. OBJECTIFS PEDAGOGIQUES Structurer des programmes selon un algorithme Maîtriser les éléments de lexique et de syntaxe d'un langage pour écrire un programme Compiler et exécuter un programme Déboguer et tester un programme Accéder à une base de données Comprendre les grands principes de la programmation orientée objet 1) Les fondements de la programmation 2) Genèse d'un premier programme 3) Règles de programmation 4) Les variables 5) Opérateurs et expressions 6) Les structures de contrôle 7) Les procédures et les fonctions 8) Introduction à la programmation objet 9) L'accès aux bases de données 10) Maintenance, débogage et test des programmes Travaux pratiques Ce stage contient plus de 60 % de travaux pratiques effectués selon les besoins en Visual Basic (cours réf INP), en Java (cours réf INJ ), en C# (cours réf OGR) ou en Python (cours réf THO). 1) Les fondements de la programmation - Qu'est-ce qu'un programme ? Qu'est-ce qu'un langage ? Les différents paradigmes. Quel langage pour quelle application ? - Les compilateurs. Les exécutables. - Les responsabilités d'un programmeur. - Qu'est-ce qu'un algorithme ? - Les besoins auxquels répond un algorithme. - Le concept de pseudo-langage. Travaux pratiques Présentation de différents langages (Java, C#, Visual Basic, C, C++). Ecriture d'un premier algorithme en pseudo-langage. 2) Genèse d'un premier programme - Ecriture d'un programme simple : syntaxe et instructions. - Compilation et exécution du programme. - Qu'est-ce qu'une librairie ? Son rôle, son usage. Travaux pratiques Découverte de l'environnement de développement et d'exécution. Ecriture, compilation et exécution d'un premier programme. 3) Règles de programmation - Convention de nommage. - Convention syntaxique. - Utilisation des commentaires. Pourquoi commenter les développements ? - Améliorer la lisibilité des programmes : indentation du code, découpage du code... 4) Les variables - Qu'est-ce qu'une variable ? - Pourquoi typer une variable ? - Les types primitifs : entiers, chaînes de caractères, nombres réels, autres. - Déclaration, définition et initialisation d'une variable. - Les constantes. - Saisie, affichage, affectation, conversion de type. - Organiser ses données sous forme de tableaux. - Les types évolués : enregistrement, matrice, arbre. Travaux pratiques Ecriture de plusieurs programmes simples manipulant les variables. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 4 5) Opérateurs et expressions - Les différents opérateurs (multiplicatif, additif, comparaison, égalité, logique, affectation). - Combinaison d'opérateurs. - Expression booléenne. Travaux pratiques Manipulation des opérateurs et des expressions booléennes. 6) Les structures de contrôle - Les sélections alternatives (si, si-alors-sinon, sélection cas). - Les blocs d'insctructions (notion de début... fin). - Les boucles itératives (tant que-répéter, répéter-jusqu'à, pour-de-à). - Imbrication des instructions. - Les commentaires. Travaux pratiques Utilisation des structures de contrôle pour implémenter un algorithme. 7) Les procédures et les fonctions - Définitions : procédure, fonction. - Pourquoi sont-elles incontournables en programmation (réutilisabilité, lisibilité...) ? - Le passage de paramètres. - Le code retour d'une fonction. - Sensibilisation aux limites du passage de la valeur d'une variable. - Notion de passage par adresse. - Appel de fonctions. Travaux pratiques Debugging de programmes exemples. 8) Introduction à la programmation objet - Les concepts associés à la programmation objet : classe, attribut, méthode, argument. - La modélisation objet à partir des exigences fonctionnelles. - Introduction aux bonnes pratiques d'organisation de conception et d'organisation d'un programme. Travaux pratiques Illustration des concepts objets. 9) L'accès aux bases de données - Organisation et stockage des données. - Les traitements de base (connexion, requêtes, récupération des données). - Application cliente et serveur de données. - Affichage et manipulation des données dans l'application cliente. Travaux pratiques Création d'un formulaire de recherche d'informations dans une base de données. 10) Maintenance, débogage et test des programmes - Savoir lire et interpréter les différents messages d'erreurs. - Utiliser un débogueur : exécuter un programme pas à pas, points d'arrêts, inspecter les variables pendant l'exécution. - Prévoir les tests unitaires. Travaux pratiques Utilisation d'un débogueur pour contrôler l'exécution des programmes. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 5 Stage pratique de 3 jour(s) Réf : INJ Participants Toute personne devant apprendre à programmer. Pré-requis Aucune connaissance particulière. Prix 2017 : 1880€ HT Dates des sessions Paris 24 oct. 2016, 5 déc. 2016 30 jan. 2017, 3 avr. 2017 26 juin 2017, 21 aoû. 2017 Aix 13 fév. 2017, 2 mai 2017 Bordeaux 20 fév. 2017, 9 mai 2017 Bruxelles Introduction à la programmation avec Java Best > Développement logiciel > PHP, C, C++, autres langages Ce stage vous permettra de comprendre les fondements de la programmation et de l'algorithmique. Vous acquerrez des bases en programmation qui vous permettront d'aborder n'importe quel langage dans les meilleures conditions. Tous les aspects essentiels seront vus : les modèles de programmation, les éléments de lexique et de syntaxe, les outils, l'organisation du code, l'accès aux bases de données et les tests. OBJECTIFS PEDAGOGIQUES Structurer des programmes selon un algorithme Maîtriser les éléments de lexique et de syntaxe d'un langage pour écrire un programme Compiler et exécuter un programme Déboguer et tester un programme Accéder à une base de données Comprendre les grands principes de la programmation orientée objet 1) Les fondements de la programmation 2) Genèse d'un premier programme 3) Règles de programmation 4) Les variables 5) Opérateurs et expressions 12 déc. 2016, 13 mar. 2017 19 juin 2017 6) Les structures de contrôle 7) Les procédures et les fonctions 8) Introduction à la programmation objet 9) L'accès aux bases de données 10) Maintenance, débogage et test des programmes Geneve Travaux pratiques 12 déc. 2016, 13 mar. 2017 19 juin 2017 Ce stage contient plus de 60 % de travaux pratiques effectués selon les besoins en Visual Basic (cours réf INP), en Java (cours réf INJ), en C# (cours réf OGR) ou en Python (cours réf THO). Grenoble 20 fév. 2017, 9 mai 2017 Lille 13 fév. 2017, 2 mai 2017 Luxembourg 12 déc. 2016, 13 mar. 2017 19 juin 2017 Lyon 20 fév. 2017, 9 mai 2017 Montpellier 13 fév. 2017, 2 mai 2017 Nantes 13 fév. 2017, 2 mai 2017 Rennes 13 fév. 2017, 2 mai 2017 Sophia-antipolis 13 fév. 2017, 2 mai 2017 Strasbourg 13 fév. 2017, 2 mai 2017 Toulouse 20 fév. 2017, 9 mai 2017 1) Les fondements de la programmation - Qu'est-ce qu'un programme ? Qu'est-ce qu'un langage ? Les différents paradigmes. Quel langage pour quelle application ? - Les compilateurs. Les exécutables. - Les responsabilités d'un programmeur. - Qu'est-ce qu'un algorithme ? - Les besoins auxquels répond un algorithme. - Le concept de pseudo-langage. Travaux pratiques Présentation de différents langages (Java, C#, Visual Basic, C, C++). Ecriture d'un premier algorithme en pseudo-langage. 2) Genèse d'un premier programme - Ecriture d'un programme simple : syntaxe et instructions. - Compilation et exécution du programme. - Qu'est-ce qu'une librairie ? Son rôle, son usage. Travaux pratiques Découverte de l'environnement de développement et d'exécution. Ecriture, compilation et exécution d'un premier programme. 3) Règles de programmation - Convention de nommage. - Convention syntaxique. - Utilisation des commentaires. Pourquoi commenter les développements ? - Améliorer la lisibilité des programmes : indentation du code, découpage du code... 4) Les variables - Qu'est-ce qu'une variable ? - Pourquoi typer une variable ? - Les types primitifs : entiers, chaînes de caractères, nombres réels, autres. - Déclaration, définition et initialisation d'une variable. - Les constantes. - Saisie, affichage, affectation, conversion de type. - Organiser ses données sous forme de tableaux. - Les types évolués : enregistrement, matrice, arbre. Travaux pratiques Ecriture de plusieurs programmes simples manipulant les variables. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 6 5) Opérateurs et expressions - Les différents opérateurs (multiplicatif, additif, comparaison, égalité, logique, affectation). - Combinaison d'opérateurs. - Expression booléenne. Travaux pratiques Manipulation des opérateurs et des expressions booléennes. 6) Les structures de contrôle - Les sélections alternatives (si, si-alors-sinon, sélection cas). - Les blocs d'instructions (notion de Début... Fin). - Les boucles itératives (tant que-répéter, répéter-jusqu'à, pour-de- à). - Imbrication des instructions. - Les commentaires. Travaux pratiques Utilisation des structures de contrôle pour implémenter un algorithme. 7) Les procédures et les fonctions - Définitions : procédure, fonction. - Pourquoi sont-elles incontournables en programmation (réutilisabilité, lisibilité...) ? - Le passage de paramètres. - Le code retour d'une fonction. - Sensibilisation aux limites du passage de la valeur d'une variable. - Notion de passage par adresse. - Appel de fonctions. 8) Introduction à la programmation objet - Les concepts associés à la programmation objet : classe, attribut, méthode, argument. - La modélisation objet à partir des exigences fonctionnelles. - Introduction aux bonnes pratiques d'organisation de conception et d'organisation d'un programme. Travaux pratiques Illustration des concepts objets. 9) L'accès aux bases de données - Organisation et stockage des données. - Les traitements de base (connexion, requêtes, récupération des données). - Application cliente et serveur de données. - Affichage et manipulation des données dans l'application cliente. Travaux pratiques Création d'un formulaire de recherche d'informations dans une base de données. 10) Maintenance, débogage et test des programmes - Savoir lire et interpréter les différents messages d'erreurs. - Utiliser un débogueur : exécuter un programme pas à pas, points d'arrêts, inspecter les variables pendant l'exécution. - Prévoir les tests unitaires. Travaux pratiques Utilisation d'un débogueur pour contrôler l'exécution des programmes. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 7 Stage pratique de 3 jour(s) Réf : OGR Participants Toute personne devant apprendre à programmer. Pré-requis Aucune connaissance particulière. Prix 2017 : 1880€ HT Dates des sessions Paris 14 nov. 2016, 6 mar. 2017 6 juin 2017 Aix 28 nov. 2016 Bordeaux 12 déc. 2016 Grenoble 28 nov. 2016 Lille 28 nov. 2016 Lyon Introduction à la programmation avec C# > Développement logiciel > PHP, C, C++, autres langages Ce stage vous permettra de comprendre les fondements de la programmation et de l'algorithmique. Vous acquérez des bases en programmation qui vous permettront d'aborder n'importe quel langage dans les meilleures conditions. Tous les aspects essentiels seront vus : les modèles de programmation, les éléments de lexique et de syntaxe, les outils, l'organisation du code, l'accès aux bases de données et les tests. OBJECTIFS PEDAGOGIQUES Structurer des programmes selon un algorithme Maîtriser les éléments de lexique et de syntaxe d'un langage pour écrire un programme Compiler et exécuter un programme Déboguer et tester un programme Accéder à une base de données Comprendre les grands principes de la programmation orientée objet 1) Un programme 2) Nécessité d'un algorithme 3) Genèse d'un premier programme 4) Règles de programmation 5) Les variables 6) Opérateurs et expressions 7) Les structures de contrôle 8) Les procédures et les fonctions 9) Introduction à la programmation objet 10) L'accès aux bases de données Travaux pratiques Ce stage contient plus de 60 % de travaux pratiques effectués selon vos besoins en Visual Basic (cours INP), en Java (cours INJ), en C# (cours OGR) ou en Python (cours réf THO). 28 nov. 2016 Montpellier 12 déc. 2016 Nantes 12 déc. 2016 Rennes 12 déc. 2016 Sophia-antipolis 28 nov. 2016 1) Un programme - Qu'est-ce qu'un programme ? - Qu'est-ce qu'un langage ? Les différents paradigmes. - Quel langage pour quelle application ? - Les compilateurs. Les exécutables. - Les responsabilités d'un programmeur. Travaux pratiques Présentation de différents langages (Java, C#, Visual Basic, C, C++). Strasbourg 28 nov. 2016 Toulouse 12 déc. 2016 2) Nécessité d'un algorithme - Qu'est-ce qu'un algorithme ? - Les besoins auxquels répond un algorithme. - Le concept de pseudo-langage. Travaux pratiques Ecriture d'un premier algorithme en pseudo-langage. 3) Genèse d'un premier programme - Ecriture d'un programme simple : syntaxe et instructions. - Compilation et exécution du programme. - Qu'est-ce qu'une librairie ? Son rôle, son usage. Travaux pratiques Découverte de l'environnement de développement et d'exécution. Ecriture, compilation et exécution d'un premier programme. 4) Règles de programmation - Convention de nommage. - Convention syntaxique. - Utilisation des commentaires. Pourquoi commenter les développements ? - Améliorer la lisibilité des programmes : indentation du code, découpage du code... 5) Les variables - Qu'est-ce qu'une variable ? - Pourquoi typer une variable ? - Les types primitifs : entiers, chaînes de caractères, nombres réels, autres. - Déclaration, définition et initialisation d'une variable. - Les constantes. - Saisie, affichage, affectation, conversion de type. - Organiser ses données sous forme de tableaux. - Les types évolués : enregistrement, matrice, arbre. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 8 Travaux pratiques Ecriture de plusieurs programmes simples manipulant les variables. 6) Opérateurs et expressions - Les différents opérateurs (multiplicatif, additif, comparaison, égalité, logique, affectation). - Combinaison d'opérateurs. - Expression booléenne. Travaux pratiques Manipulation des opérateurs et des expressions booléennes. 7) Les structures de contrôle - Les sélections alternatives (si, si-alors-sinon, sélection cas). - Les blocs d'instructions (notion de Début... Fin). - Les boucles itératives (tant que-répéter, répéter-jusqu'à, pour-de- à). - Imbrication des instructions. - Les commentaires. Travaux pratiques Utilisation des structures de contrôle pour implémenter un algorithme. 8) Les procédures et les fonctions - Définitions : procédure, fonction. - Pourquoi sont-elles incontournables en programmation (réutilisabilité, lisibilité...) ? - Le passage de paramètres. - Le code retour d'une fonction. - Sensibilisation aux limites du passage de la valeur d'une variable. - Notion de passage par adresse. - Appel de fonctions. 9) Introduction à la programmation objet - Les concepts associés à la programmation objet : classe, attribut, méthode, argument. - La modélisation objet à partir des exigences fonctionnelles : introduction aux bonnes pratiques d'organisation de conception et d'organisation d'un programme. Travaux pratiques Illustration des concepts objets. 10) L'accès aux bases de données - Organisation et stockage des données. - Les traitements de base (connexion, requêtes, récupération des données). - Application cliente et serveur de données. - Affichage et manipulation des données dans l'application cliente. Travaux pratiques Création d'un formulaire de recherche d'informations dans une base de données. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 9 Stage pratique de 2 jour(s) Réf : THO Participants Toute personne devant apprendre à programmer. Pré-requis Aucune connaissance particulière. Prix 2017 : 1440€ HT Initiation à la programmation avec Python > Développement logiciel > PHP, C, C++, autres langages Ce cours vous initiera aux bases de la programmation et de l'algorithmique. Vous mettrez en œuvre les différentes étapes clefs de la construction d'un programme informatique au travers du langage Python. Vous découvrirez les éléments de lexique et de syntaxe, les outils, l'organisation du code et les tests. OBJECTIFS PEDAGOGIQUES Structurer des programmes selon un algorithme Maîtriser les éléments de lexique et de syntaxe d'un langage pour écrire un programme Compiler et exécuter un programme Déboguer et tester un programme Dates des sessions Paris 24 nov. 2016, 16 mar. 2017 22 juin 2017 1) Un programme 2) Genèse d'un premier programme 3) Règles de programmation 4) Les variables 5) Opérateurs et expressions 6) Les structures de contrôle 7) Les procédures et les fonctions 8) Maintenance, débogage et test des programmes Travaux pratiques 60 % de TP réalisés selon les besoins en Visual Basic (cours réf INP), en Java (cours réf INJ ), en C# (cours réf OGR) ou en Python (cours réf THO). 1) Un programme - Qu'est-ce qu'un programme ? - Qu'est-ce qu'un langage ? Les différents paradigmes. - Qu'est-ce qu'un algorithme ? Le pseudo-langage. - Les compilateurs. Les exécutables. Exercice Présentation de différents langages. Ecriture d'un premier algorithme en pseudo-langage. 2) Genèse d'un premier programme - Ecriture d'un programme : syntaxe et instructions. - Compilation et exécution du programme. - Qu'est-ce qu'une librairie ? Son rôle, son usage. Exercice Ecriture, compilation et exécution d'un premier programme Python. 3) Règles de programmation - Convention de nommage. Convention syntaxique. - Utilisation des commentaires. Pourquoi commenter les développements ? - Améliorer la lisibilité des programmes : indentation du code, découpage du code... 4) Les variables - Qu'est-ce qu'une variable ? - Les types primitifs : entiers, chaînes de caractères, nombres réels, autres. - Déclaration, définition et initialisation d'une variable. Les constantes. - Saisie, affichage, affectation, conversion de type. - Organiser ses données sous forme de tableaux. Travaux pratiques Manipulation des variables. 5) Opérateurs et expressions - Les différents opérateurs (addition, égalité...). - Combinaison d'opérateurs. - Expression booléenne. Exercice Manipulation des opérateurs et des expressions booléennes. 6) Les structures de contrôle - Les sélections alternatives (si, si-alors-sinon...). - Les blocs d'instructions (notion de Début... Fin). - Les boucles itératives (tant-que-répéter, répéter-jusqu'à, pour-de-à). - Imbrication des instructions. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 10 Exercice Utilisation des structures de contrôle. 7) Les procédures et les fonctions - Définitions : procédure, fonction. Intérêt. - Le passage de paramètres. - Le code retour d'une fonction. Appel de fonctions. 8) Maintenance, débogage et test des programmes - Savoir interpréter les différents messages d'erreur. - Utiliser un débogueur : exécution d'un programme pas à pas, points d'arrêt, inspecter les variables. - Tests unitaires. Travaux pratiques Utilisation d'un débogueur pour contrôler l'exécution des programmes. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 11 Stage pratique de 3 jour(s) Réf : PPH Participants Développeurs. Pré-requis Bonne connaissance opérationnelle de PHP 5.5 en contexte web, procédural et objet. PHP Zend Certified Engineer, préparation à la certification > Développement logiciel > PHP, C, C++, autres langages Ce stage vous délivrera l'ensemble des informations nécessaires au passage de l'examen de certification PHP. Il s'agit d'un test de préparation basé sur des révisions du PHP et non d'un cours PHP. Les principaux concepts du langage seront illustrés par la mise en œuvre d'exemples pour une meilleure assimilation. OBJECTIFS PEDAGOGIQUES Obtenir les informations relatives au passage de l'examen Zend Certified Engineer Réviser en profondeur les 12 sujets de la certification Acquérir les réflexes cognitifs en relation avec la procédure certifiante Mettre en œuvre les concepts abordés par des exemples pratiques 1) Introduction 2) Bases de PHP 3) Tableaux 4) PHP et POO 5) Manipulations avancées 6) Conception et théorie 7) Bases de données 8) Sécurité Méthodes pédagogiques Illustration de la théorie par des exemples pratiques. Démonstration Fourniture de codes commentés correspondant à la théorie étudiée. Mise en œuvre des codes fournis. Certification Préparation à la certification Zend. 1) Introduction - Certification PHP : pourquoi la certification ? - Bases de l'examen. Questions et stratégies. - Sujets de la certification. 2) Bases de PHP - PHP embarqué. - Variables & Constantes, portée. Variables système. - Types de données et transtypage. - Chaînes de caractères. - Opérateurs : arithmétiques, booléens, binaires... - Contrôles de flux : conditions & boucles. Itérateurs. - Fonctions : déclaration, paramètres & références. 3) Tableaux - Création, remplissage, fractionnement. - Ajout et suppression d'éléments. Bouclage. - Vérification des valeurs. Comparaisons. - Tri, tri personnalisé. Fusion 4) PHP et POO - Classes, propriétés, méthodes, instance. Constantes. - Propriétés et méthodes statiques. - Héritage. Propagation. - Interfaces et classes abstraites. SPL. - Chargement automatique. Réflexion. 5) Manipulations avancées - Extraction de chaînes. - Comparer et compter des chaînes. - Fonctions phonétiques. - Chaînes de caractères et tableaux. - Sorties formatées. Expressions régulières. - Différences PHP 4/5. 6) Conception et théorie - Motifs de conception : active record, fabrique, itérateur, MVC, Proxy, Singleton. - Fichiers, flux, réseaux : ressources et fichiers de sortie. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 12 - Lecture/écriture, opérations de fichiers, wrappers, flux. - Fonctionnalités Web : HTTP POST & GET, accéder aux données, uploads de fichiers, cookies. - XML et Services Web : XML, SOAP, WSDL; créer et utiliser un Web Service, débogage. 7) Bases de données - Théorie des SGBD. Typage, dimension et contraintes de champs. Index et clés étrangères. - SQL : DDL,DML et DQL. - Tris : ordre et sens. - Groupement. - Jointures (gauche et droite). 8) Sécurité - La défense en profondeur et les bonnes pratiques. - XSS : comprendre le Cross Site Scripting. - CSRF : principes et décompte des attaques. - Injections de fichiers distants (RFI). Exécution distante. - Sessions : vol et corruption de sessions. - Configuration de sécurité. - Uploads : erreurs, tailles et vérifications de type mime. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 13 Mixte tutoré de 2 jour(s) Réf : PHB Développer des sites Web avec PHP Prix 2017 : 1800€ HT > Développement logiciel > PHP, C, C++, autres langages New Mixte tutoré Dates des sessions Paris 13 mar. 2017, 29 mai 2017 OBJECTIFS PEDAGOGIQUES Maîtriser la syntaxe PHP en vue de développer des sites web dynamiques Traiter des formulaires web Gérer des sessions utilisateurs Accéder aux données d’une base de données MySQL Créer dynamiquement des images et des graphismes Concevoir des applications web MVC 1) 1. DISTANCIEL / E-LEARNING sur 4 semaines 2) 2. PRESENTIEL sur 2 jours 3) 3. DISTANCIEL / E-LEARNING sur 4 semaines 4) 4. BILAN 1) 1. DISTANCIEL / E-LEARNING sur 4 semaines Je fais un quiz pour évaluer mon niveau Je me prépare, j’assimile les fondamentaux - Les bases de PHP - Préparer son ordinateur, premiers pas, les variables - leçon 70’ + quiz. - Transmettre des données de page en page - L’url, variable superglobale, session, cookie - leçon 50’ - Page protégée par mot de passe - exercices + quiz. - Stocker des informations dans une base de données - Présentation des données, phpMyAdmin, lire, écrire, les fonctions et dates en SQL - leçon 70’ - Un blog - exercices + quiz. Boite à outils - Fiches de synthèse sur les points clés de la formation à utiliser dans mon quotidien professionnel et des leçons complémentaires - Utilisation avancée de PHP. Créer des images en PHP, Les expressions régulières (partie 1/2), Organiser son code selon l’architecture MVC. La POO. - Annexes : envoyer son site sur le Web, coder proprement, utiliser la documentation PHP. 2) 2. PRESENTIEL sur 2 jours Les bases de données - L’accès aux bases de données, les fonctions, MySQL. - Le langage SQL (sélection, modification, suppression). - Traitement des résultats des requêtes. - Exercice : Création de fiches produit. Les formulaires avancés - Moteur de recherche. - Les différents types de composants. - Fonctions avancées de sélection : recherches et tris. - Exercice : Créer un moteur de recherche avec sélection par catégorie, proposer une liste de liens. MVC - MVC : intérêt, objectif. - Type de code pour le Modèle, le Contrôleur, la Vue ? - Utilisation du Layout, ViewModel. - Gestion des erreurs, plug-ins de Contrôleurs. - Exercice : Mise en oeuvre du MVC. La gestion du graphisme - Création d’image, réutilisation. - Gestion des polices et de l’écriture en mode image. - Superposition de texte pour protection de droits. - Réalisation de graphiques statistiques. - Exercice : Réaliser des histogrammes. Récupérer des données à partir d’une base. Histogramme à l’échelle. Programmation Orientée Objet (POO) - Rappel UML. Modélisation des classes. Outils. - Conception objet : références, associations, héritage, classes abstraites, interfaces. - Sérialisation et stockage. Organisation des fichiers. - Exercice : Réalisation d’une classe Page Web. Plan d’actions ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 14 - Bilan des compétences acquises. - Plan de progrès individuel. 3) 3. DISTANCIEL / E-LEARNING sur 4 semaines Je complète ma formation selon mes objectifs - Utilisation avancée de PHP - Les expressions régulières (partie 2/2) - Exercice : créer un espace membres - Quiz - Annexes - Au secours ! Mon script plante ! - Protéger un dossier avec un .htaccess. - Mémento des expressions régulières. CAS PRATIQUE : Dès mon retour en entreprise je mets en application les connaissances acquises - Conception du site d’une librairie (formulaires de consultation des livres, de réservation, vérification des stocks…). CORRIGE TYPE / Je reçois un corrigé type avec des commentaires. - Assimiler la solution de mon tuteur. - Comparer sa solution avec la mienne. 4) 4. BILAN - Je donne mon avis et j’évalue la formation. - Je teste mes connaissances et mesure ma progression. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 15 Stage pratique de 4 jour(s) Réf : PHH Participants Développeurs et webmasters. Pré-requis Connaissances de base du langage HTML et d'au moins un langage de programmation. Prix 2017 : 2440€ HT Dates des sessions PHP 7 et 5, développer un site Web dynamique Best > Développement logiciel > PHP, C, C++, autres langages Ce cours vous permettra de maîtriser d'une manière opérationnelle le langage PHP dans le contexte de développement de sites Internet dynamiques. Il vous permettra aussi d'aborder les aspects connexes à ce type de développement : bases de données, langage SQL, manipulation de fichiers graphiques... OBJECTIFS PEDAGOGIQUES Maîtriser la syntaxe PHP en vue de développer de sites web dynamiques Traiter des formulaires web Gérer des sessions utilisateurs Accéder aux données d'une base de données MySQL Créer dynamiquement des images et des graphismes Paris 4 oct. 2016, 15 nov. 2016 5 déc. 2016, 31 jan. 2017 21 fév. 2017, 21 mar. 2017 18 avr. 2017, 16 mai 2017 13 juin 2017, 18 juil. 2017 22 aoû. 2017 1) Introduction 2) Automatisation d'une page Web 3) Les formulaires simples 4) Les variables complexes : tableaux 5) Gestion des sessions utilisateurs 6) Utilisation d'une base de données MySQL 7) Les formulaires complexes 8) Le graphisme en PHP Aix Travaux pratiques 13 déc. 2016, 7 mar. 2017 13 juin 2017 Des machines sous Windows ou Linux équipées du serveur Web Apache avec le module PHP et un serveur MySQL seront mis à la disposition des participants. Les participants vont créer un site complet de vente en ligne. Bordeaux 13 déc. 2016, 7 fév. 2017 30 mai 2017 Bruxelles 29 nov. 2016, 14 mar. 2017 13 juin 2017 Geneve 29 nov. 2016, 14 mar. 2017 13 juin 2017 Grenoble 13 déc. 2016, 7 fév. 2017 30 mai 2017 Lille 13 déc. 2016, 7 mar. 2017 13 juin 2017 Luxembourg 29 nov. 2016, 14 mar. 2017 13 juin 2017 Lyon 13 déc. 2016, 7 fév. 2017 30 mai 2017 Montpellier 13 déc. 2016, 7 mar. 2017 13 juin 2017 Nantes 13 déc. 2016, 7 mar. 2017 13 juin 2017 Rennes 13 déc. 2016, 7 mar. 2017 13 juin 2017 Sophia-antipolis 13 déc. 2016, 7 mar. 2017 13 juin 2017 Strasbourg 4 oct. 2016, 13 déc. 2016 7 mar. 2017, 13 juin 2017 Toulouse 13 déc. 2016, 7 fév. 2017 30 mai 2017 1) Introduction - L'architecture du Web : HTTP, CGI, interactivité : script client ou script serveur. - Qu'est-ce que PHP ? - Historique de PHP. - Les différences entre PHP 4, PHP 5 et PHP 7. - Notions d'architecture multicouche. Introduction aux principes MVC. - Présentation de l'exemple utilisé durant la formation : le site de vente en ligne. Travaux pratiques Revue des balises principales HTML et des commandes de style. Introduction à la feuille de style de l'application exemple. 2) Automatisation d'une page Web - Les principes du client-serveur. - Premiers éléments du langage. - Intégration de PHP dans une page HTML. - Variables et fonctions. - Librairies. - Fonctions de base, variables serveur et variable PHP. - Variables serveur et variable PHP. - Contrôles de flux et boucles. Travaux pratiques Réalisation de fonctions personnalisées. Réalisation d'une librairie de fonctions. 3) Les formulaires simples - Passage et transmission de variables. - Lecture/écriture de fichier. - Vérification de Login/mot de passe. - Redirection. 4) Les variables complexes : tableaux - Constructeur Array. - Fonctions associées aux tableaux. - Fonctions d'extraction. - Fonctions de navigation dans un tableau. Travaux pratiques Réalisation d'une fonction de création de liste déroulante. 5) Gestion des sessions utilisateurs - Variables persistantes : Cookies et Session. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 16 - Avantages et inconvénients des Cookies et Sessions. - Limitations et précautions. - Les variables de session. - Fonctions liées aux variables de session. - Les Cookies. - Sérialisation des variables complexes. - Utilisation. Travaux pratiques Réalisation d'un panier d'achat simple, version Cookie et Session. Gestion des quantités commandées. 6) Utilisation d'une base de données MySQL - Présentation de MySQL. - Concepts fondamentaux : bases, tables, champs, enregistrements. - Bases MySQL. - Tables MySQL. - Champs MySQL. - Enregistrements MySQL. - Fonctions PHP MySQL. - Introduction au langage SQL (sélection, modification, suppression). - Traitement des résultats des requêtes. Travaux pratiques Création d'une base MySQL. Remplissage de la base à partir d'une base texte. Création de fiches produit à la volée par extraction des données de la base. 7) Les formulaires complexes - Moteur de recherche : formulaire en relation avec une base de données. - Fonctions avancées de sélection : recherches et tris. Travaux pratiques Réalisation d'un moteur de recherche : la sélection sur auteur, titre et héros donne une liste de liens sur les fiches produit correspondantes. Implémentation multicouche. 8) Le graphisme en PHP - Présentation de la librairie GD2. - Création d'image, réutilisation. - Gestion des polices et de l'écriture en mode image. - Superposition de texte pour protection de droits. - Intégration au site. - Réalisation de graphiques statistiques. Travaux pratiques Intégration des différents modules réalisés. Affichage des images avec mention de Copyright. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 17 Stage pratique de 3 jour(s) Réf : POG Participants PHP 7 et 5, maîtriser la programmation orientée objet de la conception à l'implémentation des classes > Développement logiciel > PHP, C, C++, autres langages Développeurs désirant améliorer la pérennité et la maintenabilité de leurs développements. Vous découvrirez les fondements de la programmation orientée objet en PHP et apprendrez à concevoir une application "objet" en vous basant sur la notation UML. Vous réaliserez un site Web en mettant en oeuvre des concepts avancés tels que les objets métiers, les couches d'abstraction ou les design patterns. Pré-requis OBJECTIFS PEDAGOGIQUES Bonnes connaissances du PHP procédural ou connaissances équivalentes à celles apportées par le cours " PHP 7 et 5, développer un site Web dynamique " (réf. PHH). Prix 2017 : 1880€ HT Dates des sessions Paris 12 déc. 2016, 6 mar. 2017 6 juin 2017 Spécifier les exigences en fonction des cas d'usage Maîtriser les concepts de base de l'implémentation Objet Gérer la persistance des objets Mettre en œuvre des Design Patterns 1) Approche objet dans un contexte Web 2) Concepts de base de l'implémentation Objet 3) POO : concepts avancés et apports de PHP5 4) Persistance des objets 5) Refactoring MVC 6) Rétro-ingénierie Travaux pratiques Apprendre à interpréter des diagrammes de classes UML et à concevoir, développer ou réécrire des applications PHP en respectant le paradigme objet. 1) Approche objet dans un contexte Web - Expression initiale des besoins et exigences. - Cas d'utilisation et processus unifié simplifié. - UML : diagrammes de séquences et de classes. - Présentation des IHM. Réflexion collective Sur la base d'un cahier des charges, définir les objets de l'application à réaliser. 2) Concepts de base de l'implémentation Objet - Eclipse : un IDE adapté à la POO en PHP. - Définir une classe et la générer à partir d'UML. - Espaces de nommage PHP. - Instancier une classe. - Propriétés, statiques et constantes : This, Self et ORP. - Visibilité et protection. Accesseurs, mutateurs et surcharge selon PHP. - Constructeur et destructeur. - Maîtriser l'instanciation : Factory et Singleton. Travaux pratiques Depuis un logiciel UML, concevoir et générer les classes participantes. 3) POO : concepts avancés et apports de PHP5 - Typage Objet et interfaces. - Les interfaces de la librairie standard (SPL). - Egalités et tris d'objets, Design Pattern Strategy. - Référence, clonage, héritage, agrégation et association. - Polymorphisme, collections et Design Pattern Iterator. - Classes abstraites et finales. Les traits. Travaux pratiques Implémentation de classes mettant en oeuvre les concepts avancés. 4) Persistance des objets - Export et auto-sérialisation. - Enregistrement en base de données et en session. - JSON pour les requêtes client asynchrones. - Transmission http. Travaux pratiques Classes pour la persistance des données. Accès asynchrone depuis une interface Ajax-XHR. 5) Refactoring MVC - Chargement des classes : automatique ou paramétré. - Classes ADO, modèle, vue. Gestion des fichiers. - Les exceptions : gestion d'erreur orientée objet. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 18 Travaux pratiques Mise en oeuvre du design pattern Chaîne de Responsabilité. Refactoring du projet en MVC. 6) Rétro-ingénierie - Introspection et classe Reflection. - Framework de librairies PEAR. - Outils de documentation. - XMI et diagrammes de classes. Travaux pratiques Générer les fichiers XMI pour l'ensemble des classes du projet et visualiser les diagrammes UML. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 19 Stage pratique de 5 jour(s) Réf : OBP Participants Développeurs et webmasters. Pré-requis Bonnes connaissances des bases du HTML. La connaissance d'un langage objet permettra de mieux profiter de la formation mais n'est pas indispensable. Prix 2017 : 2610€ HT Ce cours fait l'objet d'un accompagnement vidéo Dates des sessions Paris 14 nov. 2016, 13 mar. 2017 15 mai 2017 PHP 7 et 5, pour les développeurs objet créer une application Web en POO Best > Développement logiciel > PHP, C, C++, autres langages Ce cours vous permettra de maîtriser d'une manière opérationnelle le langage PHP dans le contexte d'un développement objet. Vous apprendrez à créer un site Web dynamique et aborderez la mise en œuvre des aspects connexes à ce type de développement. L'ensemble du cours est orienté objet. OBJECTIFS PEDAGOGIQUES Maîtriser les bases du langage PHP Maîtriser les concepts de base de l'implémentation Objet Concevoir et naviguer dans des pages web Assurer le suivi des sessions utilisateurs Mettre en œuvre des formulaires Gérer la persistance des données 1) Introduction 2) Bases du langage PHP 3) Programmation Orientée Objet (POO) 4) Premières applications Web en PHP 5) Gestion des sessions utilisateurs 6) Utilisation d'une base de données MySQL 7) Une application Web professionnelle 1) Introduction - Qu'est-ce que PHP ? Interactivité avec les internautes. - Les différences entre PHP 4, PHP 5 et PHP 7. - Présentation de l'exemple utilisé durant la formation. 2) Bases du langage PHP - Automatisation d'une page Web. - Le client-serveur. Premiers éléments du langage. - Intégration de PHP dans une page HTML. - Variables et fonctions. Librairies. - Fonctions de base, variables serveur et variable PHP. - Contrôles de flux et boucles. Travaux pratiques Réalisation de fonctions personnalisées. 3) Programmation Orientée Objet (POO) - Rappel UML. Modélisation des classes. Outils. - Classes, propriétés, méthodes. Visibilité et protection. - Constructeur, destructeur. Appel implicite vs explicite. - Héritage et agrégation. Propagation. Polymorphisme. - Sérialisation et stockage. Organisation des fichiers. Travaux pratiques Réalisation d'une classe PageWeb. 4) Premières applications Web en PHP - Les formulaires simples. Passage de variables. Vérification de Login/mot de passe. Redirection. - Les variables complexes : tableaux des fonctions. Travaux pratiques Réalisation d'un objet de stockage. Réalisation d'un objet formulaire (texte, select et upload). 5) Gestion des sessions utilisateurs - Variables persistantes : Cookies et Session. - Avantages, limitations et précautions. - Variables de session et fonctions liées. Les Cookies. - Sérialisation des variables complexes. Utilisation. Travaux pratiques Réalisation d'un objet panier d'achat stockable en Cookie ou Session. Gestion des quantités commandées. 6) Utilisation d'une base de données MySQL - Concepts : bases, tables, champs, enregistrements. - Fonctions PHP Mysqli. Introduction au langage SQL. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 20 - Requêtes et traitement des résultats. Travaux pratiques Création d'une base MySQL et de fiches produits à la volée. 7) Une application Web professionnelle - Notions d'architecture multicouche. Principes MVC. - Formulaires complexes. Liaison aux données. - Fonctions avancées de sélection : recherches et tris. - Le graphisme en PHP : de la librairie GD. - Intégration au site. Travaux pratiques Réalisation d'un moteur de recherche. Amélioration de la classe SQL. Implémentation multicouche. Intégration des différents modules réalisés. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 21 Stage pratique de 2 jour(s) Réf : PHM Participants Développeurs PHP. Pré-requis Ce cours s'adresse aux développeurs ayant déjà une connaissance du langage dans le contexte Web, Orienté Objet. PHP 7, nouveautés et bonnes pratiques de migration New > Développement logiciel > PHP, C, C++, autres langages Vous découvrirez et mettrez en pratique les nouveautés pertinentes apportées par la version PHP 7 dans le cadre d'un développement orienté Web. Vous apprendrez également à préparer la migration d'un site Web écrit en PHP 5 vers la version PHP 7 en identifiant les points clés à prendre en compte en amont. OBJECTIFS PEDAGOGIQUES Acquérir une connaissance pratique des nouveautés du langage PHP 7 Identifier les familles de problèmes potentiels en fonction de la version à migrer Mettre en œuvre les bonnes pratiques de migration 1) Evolution de base 2) Le langage : ce qui change 3) Erreurs et Assertions 4) Fermeture et Générateur 5) POO : encore mieux ! 6) Migrer de PHP 5 à PHP 7 Méthodes pédagogiques Nombreux Travaux Pratiques Travaux pratiques Réalisation de scripts mettant en œuvre les nouveaux éléments syntaxiques. 1) Evolution de base - Le cycle de release. - Les éléments dépréciés. - La syntaxe des variables. - Intégration de l'Unicode au langage. - Refonte du moteur, optimisation des performances. Travaux pratiques Dans un ensemble de scripts procéduraux représentant le fonctionnement d'un site Web de vente en ligne, identifier les éléments dépréciés et mettre en œuvre une stratégie de migration. 2) Le langage : ce qui change - Les opérateurs de fusion et de comparaison (spaceship). - Les constantes. - Le déballage d'objets. - Les nouvelles fonctions : array_column. - Les expressions régulières. - La cryptographie. - Les fonctions qui évoluent. - Le typage d'entrée et de retour. Travaux pratiques A partir de classes ADO fournies, effectuer un refactoring des classes en tenant compte des nouvelles syntaxes. 3) Erreurs et Assertions - La nouvelle hiérarchie d'exceptions dans PHP 7. - Exception Constructeur. - Exception du Moteur. - Exception d'Erreur. - Les Erreurs presque fatales. - Throwable et Userland. - Appel de méthode sur non-objet. - Assertions et Expectations. Travaux pratiques Implémentation d'une stratégie de gestion d'erreur et d'exception, basée sur les interfaces standards. 4) Fermeture et Générateur - Closure : liaison à l'invocation. - Générateur : valeurs de retour et délégation. Démonstration Démonstration de code portant sur la syntaxe des générateurs et des closures. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 22 5) POO : encore mieux ! - Analyse lexicale contextuelle. - Dépréciation des constructeurs PHP 4. - Déclarations groupées. - Les classes anonymes. Travaux pratiques Dans un ensemble de classes fournies, identification des constructeurs obsolètes et implémentation des concepts abordés. 6) Migrer de PHP 5 à PHP 7 - Etablir la checklist des points à vérifier pour une bonne migration. - Identification des familles de problèmes potentiels en fonction de la version à migrer. - Contournement des problèmes. Travaux pratiques Mise en œuvre de la migration d'un site PHP 5 vers PHP 7. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 23 Stage pratique de 3 jour(s) Réf : PHA Participants Développeurs PHP ayant déjà une bonne pratique du langage en mode procédural. Pré-requis Bonnes connaissances du PHP ou connaissances équivalentes à celles apportées par le stage "PHP 7 et 5, développer un site Web dynamique" (réf. PHH). Prix 2017 : 1880€ HT Ce cours fait l'objet d'un accompagnement vidéo Dates des sessions Paris 10 oct. 2016, 14 nov. 2016 12 déc. 2016, 23 jan. 2017 27 mar. 2017, 22 mai 2017 24 juil. 2017 PHP 7 et 5, perfectionnement > Développement logiciel > PHP, C, C++, autres langages Vous étudierez dans ce cours les aspects avancés du langage PHP liés à l'authentification et aux manipulations des bases de données. L'ouverture vers les nouvelles perspectives (Web 2.0) est abordée au travers d'une introduction à Ajax et par l'utilisation de clients riches communiquant en flux XML avec le serveur. Vous utiliserez enfin quelques briques logicielles comme PEAR ou PHPLib pour optimiser vos développements. OBJECTIFS PEDAGOGIQUES Découvrir le paradigme objet du langage PHP Gérer les dépendances et les packages d'un projet PHP Implémenter une authentification LDAP Implémenter la persistance des données avec la librairie PDO Mettre en œuvre des services web SOAP et REST Gérer l'envoi de mails et la génération de PDF 1) Introduction 2) Programmation Orientée Objet (POO) 3) Espaces de Nommage 4) Composer / Packagist 5) Gestion des erreurs 6) Authentification LDAP 7) Bases de données : passer à PDO 8) XML/DOM/XSLT 9) Web Services 10) PDF et E-Mail Travaux pratiques Vous verrez comment mettre en pratique les concepts objets et les API utiles au développement d'applications d'entreprise (accès aux bases de données, aux annuaires LDAP, échange de données XML, appels de Web Services, etc.) en utilisant PHP. 1) Introduction - Optimisation des développements par utilisation de briques logicielles. - Développement et réutilisabilité : stratégies et enjeux. 2) Programmation Orientée Objet (POO) - Classes, propriétés, méthodes. Méthodes automatiques. - Visibilité et protection. - Constructeur, destructeur. Appel implicite vs explicite. - Héritage et agrégation. Règles de propagation. Polymorphisme et typage. - Concepts avancés de POO. Classe abstraite. Interface. SPL. Design Pattern. Clonage. Travaux pratiques Réalisation d'une classe formulaire. 3) Espaces de Nommage - Pertinence des Namespaces. - Syntaxe de base. - Implémentation et impacts sur le chargement. Travaux pratiques Modification des classes réalisées pour prise en compte d'un Namespace. 4) Composer / Packagist - Principe et enjeux. - Le gestionnaire de dépendances Composer. - Partager ses packages avec Packagist. - Installation / configuration de base. - Syntaxe des contraintes. - Chargeur universel et PSR. Travaux pratiques Paramétrage et utilisation de Composer pour l'intégration et le débugage du formulaire. 5) Gestion des erreurs - Gestion des erreurs et des exceptions avec PHP. - Création d'un gestionnaire d'erreurs. - Bufferisation et fichiers Log. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 24 Réalisation d'une classe d'exception personnalisée. Implémentation d'un affichage bufférisé et d'un fichier Log dans la classe. 6) Authentification LDAP - Introduction. - OpenLDAP. - Configuration et démarrage (fichiers conf et ldif). - Lecture. Connexion anonyme. Interrogation et récupération de données. - Ecriture. Connexion administrateur. Formatage des données et insertion. Travaux pratiques Implémentation d'une classe d'authentification. 7) Bases de données : passer à PDO - La librairie PDO (PHP Data Object/API abstraite d'accès aux bases de données). - Les avantages et inconvénients de PDO (performance, portabilité, cache...). - La gestion des transactions. - Erreurs et gestion des exceptions. - Sécurité : formatage des entrées et requêtes paramétrées. Travaux pratiques Création de classes ADO implémentant PDO en requêtes préparées et paramétrées. 8) XML/DOM/XSLT - XML. Format et validation. - DOM et XPath. Création, analyse. - Transformateurs XSL. Utilisation de XSLT. Travaux pratiques Création d'un siteMap Google. 9) Web Services - Présentation des web services. - Approche REST (JSON/XML). - Implémentation d'un client et d'un web service REST. - Approche SOAP (WSDL). - Créer un Web Service SOAP et son fichier de description. - Implémentation d'un client SOAP en requêtage multiservices. Travaux pratiques Création de web services SOAP et requêtages croisés. Création de flux RSS (mode REST) sur base de flux tiers (agrégation). 10) PDF et E-Mail - Présentation des principales librairies PDF : PDFLib et FPDF. - Opérations de base. Texte et mise en page. - Opérations avancées. Images et tracés vectoriels. - Mail et MIME : pièces jointes et format HTML. - Les formats Mixed, Multipart, Alternative/Related. - Les encodages particuliers. - Paramétrage d'un serveur de test. - La classe PhpMailer. Travaux pratiques Mise en œuvre d'une librairie FPDF pour la génération automatisée d'un rapport. Réalisation d'une classe xMail pour l'envoi de mails au format mime. Utilisation de la classe créée pour l'envoi d'une facture PDF en pièce jointe. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 25 Stage pratique de 2 jour(s) Réf : OBA Participants Développeurs. Pré-requis Bonnes connaissances de la programmation orienté objet sous PHP. Expérience souhaitable en développement PHP. Prix 2017 : 1440€ HT Dates des sessions Paris 7 nov. 2016, 20 mar. 2017 12 juin 2017 PHP 7 et 5, perfectionnement pour les développeurs objet > Développement logiciel > PHP, C, C++, autres langages Ce cours vous apprendra à tirer parti des extensions PHP et des briques logicielles existante. Vous verrez les aspects avancés liés aux bases de données (extension LDAP, API Oracle, PostgreSQL, MySQL), au XML (DOM et SAX), à AJAX, aux web services et aux extensions Mail et PDF. OBJECTIFS PEDAGOGIQUES Découvrir les bibliothèques PEAR et PHPLib Implémenter une authentification LDAP Implémenter la persistance des données avec la librairie PDO Mettre en œuvre des services web SOAP et REST Gérer l'envoi de mails et la génération de PDF 1) Rappel : Programmation Orientée Objet (POO) 2) PEAR et PHPLib 3) Authentification LDAP 4) Bases de données : manipulations avancées 5) XML/DOM/XSLT 6) Web service et SOAP 7) PDF pour Acrobat Reader 8) E-mail 1) Rappel : Programmation Orientée Objet (POO) - Classes, propriétés, méthodes. Visibilité et Protection. - Héritage. Règles de propagation. Polymorphisme. 2) PEAR et PHPLib - Structure, conventions et paramètres. - Principales librairies. Travaux pratiques PEAR : utilisation des librairies Html, Formulaires, CSS et DB. PHPLib : utilisation des librairies Template, Authentification. 3) Authentification LDAP - Introduction. OpenLdap. Configuration et démarrage. - Lecture. Connexion anonyme, interrogation et récupération de données. - Ecriture. Connexion administrateur. Formatage des données et insertion. Travaux pratiques Implémentation d'une classe d'authentification. 4) Bases de données : manipulations avancées - Bases multitables et jointure : avantages et limites. - Intégrité transactionnelle : assurer la cohérence des données. Procédures stockées : réutilisation lors de migrations technologiques. Champs multidimensionnels. XML. Sécurité : formatage des entrées et requêtes paramétrées. ODBC. Travaux pratiques Oracle : Commit / Rollback et pointeurs abstraits pour procédures stockées. MySQL : conversion multitables et adaptation des requêtes DML. 5) XML/DOM/XSLT - XML (format et validation), DOM (création, analyse), XSL/XSLT (transformation). - Clients riches : Ajax. Principe et enjeux. Travaux pratiques Création d'un flux XML pour une page Ajax et d'un flux RSS. 6) Web service et SOAP - Annuaires de services et accessibilité. WSDL et SOAP. - Créer un Web service et son fichier de description. Travaux pratiques Utilisation d'un Web service. 7) PDF pour Acrobat Reader - Opérations de base. Texte et mise en page. - Opérations avancées. Images et tracés vectoriels. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 26 Implémentation d'une classe PDF. 8) E-mail - MIME : pièces jointes et formats HTML - Les formats Mixed, Multipart, Alternative/Related. - Les encodages particuliers. Paramétrage d'un serveur de test. Etude d'une librairie. Travaux pratiques Gérer l'envoi de mails au format Mime et PDF en pièce jointe. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 27 Stage pratique de 3 jour(s) Réf : HPO Participants PHP 7 et 5, industrialisation des développements les bonnes pratiques > Développement logiciel > PHP, C, C++, autres langages Développeurs désirant améliorer la pérennité et la maintenabilité de leurs développements. Ce cours de perfectionnement est axé sur trois thèmes : l'optimisation du code au niveau algorithmique, l'adaptation de l'architecture logicielle aux nécessités du travail en équipes pluridisciplinaires ou multisites, et la rationalisation des développements orientés maintenabilité et réutilisabilité. Pré-requis OBJECTIFS PEDAGOGIQUES Bonnes connaissances de la programmation orientée objet sous PHP. Prix 2016 : 1840€ HT Dates des sessions Paris 12 déc. 2016 Analyser les performances d'une application et optimiser le code PHP associé Améliorer la productivité du développement d'une application web PHP Mettre en œuvre une architecture logicielle multicouche Introduire les Design Patterns dans la conception d'une application web PHP 1) Introduction 2) Optimisation de code 3) Productivité 4) Rationalisation des développements Travaux pratiques Des machines équipées des serveurs Apache2 avec PHP, MySql, Oracle, LDAP, FTP et mail seront mises à la disposition des participants. 1) Introduction - Problèmes classiques rencontrés en développement. - Culture d'entreprise : impacts à long et moyen termes. - Inflation non contrôlée du code et théorie de l'avalanche. Réutilisabilité : stratégies et enjeux. 2) Optimisation de code - Outils : de mesure (Pear), de simulation de charge client/serveur, d'optimisation. - Compression à la volée. Principe de la compression/décompression des pages. Précautions et limites. - Optimisation des algorithmes. Optimisation des boucles, des requêtes SQL. Fichiers texte et bases de données. - Gestion des flux de sortie. - Cache serveur. Réalisation d'un cache. Les classes existantes. Travaux pratiques Optimisation graduelle d'une page type, avec mesures comparées des performances obtenues. 3) Productivité - La POO : bienfaits et limites. Etude de cas, pertinence de l'approche POO vs procédurale. La solution mixte. - IDE et documentation. Les principaux IDE du marché. Outils de documentation et conventions. Configuration. - Serveurs à balancement de charge. Approche matérielle. Impact sur le développement. Travaux pratiques Analyse de performances et consommation mémoire. Utilisation d'un IDE et d'un générateur de documentation. Etude d'une classe "session" pour la conservation des données en environnement multiserveurs. 4) Rationalisation des développements - Architecture multicouche. Programmation " spaghetti " et maintenabilité. - Approche pluridisciplinaire et sous-traitance. - MVC : diviser pour mieux régner. MVC sans l'objet. - Concepts avancés de la POO : classes abstraites, interfaces. Méthodes automatiques, surcharge, sauvegarde, clonage. - Frameworks (cadres). Philosophie. Etude d'un framework " maison ". Principaux frameworks du marché. - Design patterns (motifs de conception). Principe de base et avantages. - Structure des patterns Usine. Singleton. Chaîne de commande. Observateur. Stratégie. - Encapsulation des concepts variables. Travaux pratiques Passage d'une page " spaghetti " à un modèle MVC. Réalisation d'un moteur de recherche avec un framework. Implémentation d'une classe de connexion pour la conservation des ressources. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 28 Stage pratique de 2 jour(s) Réf : STE Participants Développeurs PHP, chefs de projets. Pré-requis Bonnes connaissances du langage PHP en contexte Web (procédural et objet). Connaissances de base en XML et JavaScript souhaitables. Architecture REST, développer des Web Services en PHP > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage vous apprendra à implémenter une architecture de type REST pour l'exposition de ressources en ligne ou leur consommation, à utiliser les méthodes du protocole http ainsi qu'à manipuler en PHP des représentations XML de ressources Web. 1) Rappels sur la programmation orientée objet 2) XML, JSON, DOM, SAX et XPath 3) Approche REST 4) Implémenter un Web service REST 5) Implémenter un Client REST 6) Frameworks PHP Travaux pratiques Prix 2017 : 1410€ HT Développement d'une application web de type CRUD en mode REST. Dates des sessions Paris 21 nov. 2016, 9 mar. 2017 8 juin 2017 1) Rappels sur la programmation orientée objet - Classe, instance, propriétés et méthodes, visibilité. - Héritage, interface, classes abstraites. - Méthodes automatiques et surcharge. Travaux pratiques Réalisation de la classe ADO (Abstract Data Object) qui alimentera les Web Services. 2) XML, JSON, DOM, SAX et XPath - Document XML bien formé, règles de base. - Document XML valide : DTD ou XSL. - Le DOM PHP (analyse et création). - Les XPath avec PHP et la validation avec PHP. - Approche SAX : transformateurs XSLT. - Les fonctions PHP de manipulation du format JSON. Travaux pratiques Création d'une fonction récursive d'analyse DOM. Création d'une fonction d'encodage/décodage. Création d'une méthode de la classe ADO, renvoyant les données au format XML et JSON. 3) Approche REST - Principes de base et rappels HTTP. - Les autres formats d'échanges : JSON, PHP sérialisé, MessagePack. - Composants d'une architecture REST. - Guides de conception d'une architecture REST. - URL logiques vs. physiques. - Définition des codes erreurs. - Documenter un Web service REST. - ROA vs. SOA / REST vs. SOAP. Travaux pratiques Concevoir un Web Service. 4) Implémenter un Web service REST - Ecriture de Web services : lecture, insertion, mise à jour et suppression de données. - Sécurité des transactions. - Problématique du cachage. - Mashup. - Tester un service REST : navigateur et outils de tests. Travaux pratiques Création d'un Web service en mode CRUD, et sécurisation des opérations critiques. Paramétrage des types de retour. Création d'un flux RSS. 5) Implémenter un Client REST - Invoquer un Web service en mode GET depuis PHP. - Utilisation des sockets et de cURL pour la création d'un contexte d'appel avec d'autres méthodes (PUT/ DELETE/POST). - Gestion des erreurs. - Spécificités de l'approche AJAX en mode XML et JSON. - Spécificités de l'Approche AJAX. - Insertion de Mashup en mode DOM HTML. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 29 Implémentation d'une page Web consommant les Web services de plusieurs sources et présentation des résultats agrégés. 6) Frameworks PHP - Qu'est-ce qu'un framework ? - Les frameworks de création d'API REST en PHP. - Mise en place d'un Web Service avec un framework. Démonstration Implémentation d'un service REST via un framework. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 30 Stage pratique de 3 jour(s) Réf : PSE Participants Développeurs désirant développer des applications PHP plus sécurisées. PHP 7 et 5, sécuriser vos applications > Développement logiciel > PHP, C, C++, autres langages De par sa nature même, le service dynamique de pages Web ouvre de nombreuses portes sur le monde extérieur. Pour le développeur, il est primordial de prendre conscience des types d'attaques auxquelles son code sera potentiellement exposé et de savoir y faire face, double objectif de ce stage. Pré-requis OBJECTIFS PEDAGOGIQUES Bonnes connaissances des langages PHP et SQL. Connaissances de base de JavaScript. Prendre conscience des types d'attaques auxquelles son code peut être exposé Intégrer la sécurité dans les développements dès la conception Identifier les failles possibles au niveau des développements Développer des applications plus sécurisées 1) Introduction 2) Les pages Web 3) Formulaires : la grande porte 4) Cookies et sessions 5) Sécuriser PHP : les bons réglages 6) Bases de données 7) Sécuriser l'emploi des extensions 8) Considérations générales Travaux pratiques Des postes sous Windows XP Pro équipés des serveurs Apache2 avec PHP, MySql, Oracle, LDAP, FTP et mail seront mises à la disposition des participants. 1) Introduction - Présentation des risques. - Destruction de données. - Détournement de site. - Publication de données confidentielles. - Abus de ressources. - Vol d'identité. - Plan Sécurité : Conception, Développement et Maintenance. 2) Les pages Web - XSS principe et méthodes de protection. Moteur de recherche. - CSRF : principe et contre-mesures. Virus en base de données. 3) Formulaires : la grande porte - Les failles. Validation et limitations de l'approche JavaScript. Chaînage, attaques HTTP et Ajax. Contremesures. - Validation des entrées. Tests et principe des listes. Expressions régulières, standards et filtres. - Upload. Failles et contre-mesures. 4) Cookies et sessions - Cookies. Principes et risques. Manipulation JavaScript. Tableaux de cookies. - Sessions. Mode Cookie vs. Header. Principe du vol de session. 5) Sécuriser PHP : les bons réglages - PHP.ini. Directives sensibles, sessions et erreurs. - Protéger les scripts. Protection physique. Exécution de scripts distants ou à la volée. 6) Bases de données - Failles potentielles. Administration. Stockage. - Injections SQL. Principe et contre-mesure. Procédures stockées et requêtes paramétrées. Limites. - Fichiers d'accès. Organisation et valeurs par défaut. Accès anonymes et protocoles. 7) Sécuriser l'emploi des extensions - Email. Spam via un formulaire de contact : injections et contre-mesures. - Accès réseau par PHP. Appels séquentiels et récursifs. Attaque furtive. 8) Considérations générales - BFA. Principe. Identification et contre-mesures. - Phishing. Principe et formation des utilisateurs. - DoS. Quotas et gestion des charges. - Mots de passe. Renforcement et stockage. . - Chiffrement et signature. Cryptage / décryptage : implémentation PHP et MySQL. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 31 - Ruses. Pot de Miel, Obfuscation et Turing inversé. - Frameworks et briques logicielles. Gestion de la sécurité dans les développements composites. - Audit de sécurité. Méthodologie de base, Cross-test et rapport d'audit. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 32 Stage pratique de 3 jour(s) Réf : PYM Participants Développeurs PHP et chefs de projets. Pré-requis Bonnes connaissances de PHP. Connaissances de base de la Programmation Orientée Objet. Prix 2017 : 1880€ HT Dates des sessions PHP, technique avancée de développement pour le Web Best > Développement logiciel > PHP, C, C++, autres langages Vous apprendrez dans ce cours à développer des applications Web PHP avec les Frameworks les plus populaires du marché. Vous verrez comment installer un framework, créer des formulaires et des templates, organiser vos applications via une architecture MVC, manipuler des données persistantes et sécuriser les accès. OBJECTIFS PEDAGOGIQUES Installer et configurer un le Framework Appréhender les composants d'un Framework pour concevoir des applications web MVC Manipuler des données via l'ORM Doctrine Concevoir des formulaires et contrôler la validation des données Créer et utiliser des services Web REST et SOAP Paris 17 oct. 2016, 28 nov. 2016 23 jan. 2017, 27 mar. 2017 26 juin 2017 Aix 6 fév. 2017, 2 mai 2017 Bordeaux 1) Introduction aux Frameworks 2) Démarrer avec un Framework 3) La "couche contrôleur" et la gestion des URL 4) La "couche vue" et le moteur de template Twig 5) La couche Modèle 6) Les formulaires et leur validation 7) Aller plus loin avec les Frameworks 6 mar. 2017, 22 mai 2017 Bruxelles 14 nov. 2016, 6 mar. 2017 6 juin 2017 Geneve 14 nov. 2016, 6 mar. 2017 6 juin 2017 Grenoble 6 mar. 2017, 22 mai 2017 Lille 6 fév. 2017, 2 mai 2017 Luxembourg 14 nov. 2016, 6 mar. 2017 6 juin 2017 Lyon 6 mar. 2017, 22 mai 2017 Montpellier 6 fév. 2017, 2 mai 2017 Nantes 6 fév. 2017, 2 mai 2017 Rennes 6 fév. 2017, 2 mai 2017 Sophia-antipolis 6 fév. 2017, 2 mai 2017 Strasbourg 6 fév. 2017, 2 mai 2017 Toulouse 2 nov. 2016, 6 mar. 2017 22 mai 2017 1) Introduction aux Frameworks - Rappels de concepts liés à la programmation orientée objet. - Présentation globale d'un Framework : avantages / inconvénients. - Concepts principaux, architecture MVC. - Installation d'un Framework Web PHP. - Architecture d'un projet : application, bundles... Travaux pratiques Installation d'un Framework Web PHP. 2) Démarrer avec un Framework - Configuration de l'application et surcharge. - Outils de ligne de commande. - Outils de débogage du code : Web Debug Toolbar... - Autoloading des classes. Travaux pratiques Prise en main de l'environnement. Description de l'application Web qui servira de fil rouge. 3) La "couche contrôleur" et la gestion des URL - Définition d'un "contrôleur" et de ses "actions". - Mappage des contrôleurs au système de routage. - Accéder aux informations de la requête http. - Redirection vers une autre page, affichage d'une page d'erreur 404. - Mécanisme du routage et gestion des URL. - Injection de Dépendance et conteneurs de service. Travaux pratiques Mise en place du contrôleur de l'application. Manipulation des informations de requête et de session. Mise en œuvre de la redirection. 4) La "couche vue" et le moteur de template Twig - Utilisation des templates. Moteur de template Twig. - Héritage de templates. Inclusions dans les templates. - Templates modulaires. Helpers. Travaux pratiques Création et utilisation de templates. Mise en place de la couche Vue de l'application. 5) La couche Modèle - Définition du modèle et de la base de données. - Présentation de Doctrine 2 (DBAL et ORM). - Gestion des objets persistants. - Requêtage objet, accesseurs, relation et association. - Remaniement de code et objets métiers. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 33 Mise en place de la couche Modèle de l'application. 6) Les formulaires et leur validation - Création d'un formulaire simple. - Affichage d'un formulaire dans des templates. - Sécurité renforcée avec les tokens (CSRF). - Validation des formulaires. Travaux pratiques Création de formulaires. Ajout de pages à l'application fil rouge. Mise en place de la validation. 7) Aller plus loin avec les Frameworks - Sécurité, contrôle d'accès et authentification. - Tests automatisés avec PHPUnit. - Solution d'e-mail. - Services Web (SOAP et Rest). - Ajouter de nouvelles macros, fonctions à Twig. Travaux pratiques Mise en œuvre et tests. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 34 Stage pratique de 4 jour(s) Réf : FAR Participants Développeurs et architectes. Pré-requis Connaissances de base des concepts objet. Bonnes connaissances de PHP5 et du HTML. Prix 2017 : 2440€ HT Zend Framework 2 et 3, maîtrise du développement Web > Développement logiciel > PHP, C, C++, autres langages Ce cours vous apportera les meilleures pratiques de développement Web avec le Zend Framework version 2. Après l'avoir installé, vous en découvrirez l'architecture et les concepts. Vous concevrez des modules, des formulaires, aborderez l'injection de dépendances et utiliserez les principaux composants du framework. OBJECTIFS PEDAGOGIQUES Installer et configurer une application Zend Framework 2 et 3 Maitriser les Design Patterns objets en particulier le MVC Utiliser les principaux composants de Zend Framework Automatiser les tests dans Zend Framework Développer des composants métiers avec Zend\Db et Doctrine Dates des sessions Paris 22 nov. 2016, 21 mar. 2017 30 mai 2017 1) Introduction 2) Programmation orientée objet 3) Utilisation du framework 4) Accès aux bases de données 5) Les formulaires 6) Bonnes pratiques avec Zend Framework 7) Autres composants 8) Les nouveautés et changements de Zend Framework 3 1) Introduction - Définition d'un framework et de son intérêt. - Présentation générale du Zend Framework. - Evolutions successives depuis Zend 1. - Installation de Zend Framework avec de Composer. - Architecture MVC. Squelette d'application. Travaux pratiques Création d'un projet. 2) Programmation orientée objet - Rappels : classes, objets, visibilité, encapsulation, accesseurs, constructeur, méthodes magiques... - Conception objet : références, associations, héritage, classes abstraites, interfaces. - Design patterns : Factory, Model View Controller, Data Mapper, Table Gateway, Front Controller, Two Step View... - Normes PSR (0/1/2) et autochargement de classes. Travaux pratiques Conception d'un modèle Objet. 3) Utilisation du framework - Type de code pour le Modèle, le Contrôleur, la Vue ? - Utilisation du Layout, ViewModel, aides de vues disponibles et personnalisées. - Gestion des erreurs, plug-ins de Contrôleurs. Travaux pratiques Développement d'un carnet d'adresses sous Zend Framework. 4) Accès aux bases de données - Les bases de données simplifiées avec Zend\Db. - L'ORM Doctrine et le module Doctrine Module. Travaux pratiques Manipulation de données via l'ORM Doctrine. 5) Les formulaires - Zend\Form : gestion des formulaires. - Filtrage et validation : Zend\Filter, Zend\Validate, Zend\InputFilter. - Conversions objets/tableaux avec les Hydrateurs. 6) Bonnes pratiques avec Zend Framework - Injection de dépendances : Zend\Di et Zend\ServiceManager. - Ecriture de tests unitaires avec PHPUnit. Injection de Mocks via le ServiceManager. - Création de modules, utilisation de modules Zend Framework populaires : ZfcUser, ZendDeveloperTools, BjyProfiler... - Débogage et profilage avec XDebug. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 35 7) Autres composants - Authentification et gestion des droits. - Mails, Logs, Session, Config. - Internationalisation avec Zend\ I18n. - Zend\EventManager. 8) Les nouveautés et changements de Zend Framework 3 - PSR-7, zend-diactoros et zend-expressive. - Le nouveau ServiceManager. - Le nouvel EventManager. - Migrer une application Zend Framework 2 vers Zend Framework 3. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 36 Stage pratique de 3 jour(s) Réf : ZEN Participants Développeurs et architectes. Pré-requis Connaissances de base des concepts objet. Bonnes connaissances de PHP5 et du HTML. Prix 2017 : 1880€ HT Zend Framework, maîtrise du développement Web > Développement logiciel > PHP, C, C++, autres langages Ce cours vous apportera les meilleures pratiques de développement Web avec le Zend Framework. Après un rappel des prérequis techniques et théoriques à l'utilisation du framework, vous en découvrirez les concepts et apprendrez à l'installer, le configurer ainsi qu'à concevoir des applications Web. OBJECTIFS PEDAGOGIQUES Installer et configurer le Zend Framework Appréhender les composants du Zend Framework pour concevoir des applications web MVC Manipuler des données au sein d'une base Concevoir des formulaires et contrôler la validation des données Créer et utiliser des services Web REST et SOAP Dates des sessions Paris 5 déc. 2016, 3 avr. 2017 26 juin 2017 1) Prise en main du Zend Framework 2) Rappels sur la programmation orientée objet 3) Architecture MVC et composants de base 4) Base de données et passerelles 5) Utilisation avancée des composants 6) Interopérabilité et services Web 7) Tests sous Zend Framework 8) Bonnes pratiques Travaux pratiques Eclipse PDT et Wampserver seront utilisés pour les travaux pratiques. 1) Prise en main du Zend Framework - Définition d'un framework et de son intérêt. - Présentation générale du Zend Framework. - Téléchargement, installation et configuration de base. - Installation via la méthode SVN. - Premiers pas avec Zend Framework. 2) Rappels sur la programmation orientée objet - Concepts de la POO. Classes et objets. Implémentation en PHP : visibilité, constructeur, destructeur, héritage... - Modélisation : relations entre les classes, diagrammes UML. - Concepts objet PHP avancés. 3) Architecture MVC et composants de base - Organisation MVC du Framework Zend. - Gestion du flux d'exécution MVC. - Utilisation de Zend Controller. - Maîtrise des composants de base (Zend_Loader, Zend_Config, Zend_Log, Zend_Debug, etc.). - Configuration dans le fichier d'amorçage. 4) Base de données et passerelles - Utilisation de Zend_Db et de ses classes dérivées. - Utilisation du CRUD de Zend_Db_Table. - Gestion des relations entre les tables dans le modèle. - Utilisation, création de filtre et de validateur. - Utilisation de l'objet Zend_Form dans le contexte MVC. 5) Utilisation avancée des composants - Gestion des sessions avec Zend_Session, de l'authentification avec Zend_Auth et des autorisations avec Zend_Acl. - L'internationalisation et la localisation. - Ajout d'une fonctionnalité à un composant existant. - Intégration d'un composant externe. 6) Interopérabilité et services Web - La communication interapplications. - Utilisation des services Google, Amazon, Yahoo. - Lecture d'un flux RSS quelconque. - Utilisation et création d'un service Web REST et SOAP. 7) Tests sous Zend Framework - Installation de PHPUnit via Pear. - Tests unitaires avec Zend Framework et PHPUnit. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 37 8) Bonnes pratiques - Débogage d'une application Zend Framework. - Choix des outils adaptés. Astuces d'Eclipse PDT. - Profiling. Testabilité. Gestion des montées de version. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 38 Stage pratique de 5 jour(s) Réf : LGC Participants Développeurs, ingénieurs, chefs de projets proches du développement. Programmation en C Best > Développement logiciel > PHP, C, C++, autres langages Pré-requis Ce stage intensif vous permettra d'acquérir une connaissance réellement opérationnelle du langage. Il vous expliquera le fonctionnement des différents mécanismes et vous montrera leur mise en œuvre grâce à de nombreux exercices pratiques. A l'issue de ce stage, vous serez en mesure d'écrire des programmes C robustes et portables. Connaissances de base en programmation. OBJECTIFS PEDAGOGIQUES Prix 2017 : 2610€ HT Dates des sessions Paris 21 nov. 2016, 19 déc. 2016 6 fév. 2017, 10 avr. 2017 19 juin 2017, 21 aoû. 2017 Aix 12 déc. 2016, 13 mar. 2017 19 juin 2017 Bordeaux 28 nov. 2016, 20 fév. 2017 10 avr. 2017, 26 juin 2017 Bruxelles 12 déc. 2016, 6 mar. 2017 12 juin 2017 Geneve 12 déc. 2016, 6 mar. 2017 12 juin 2017 Grenoble 12 déc. 2016, 20 fév. 2017 10 avr. 2017, 26 juin 2017 Lille 12 déc. 2016, 13 mar. 2017 19 juin 2017 Luxembourg 12 déc. 2016, 6 mar. 2017 12 juin 2017 Lyon 12 déc. 2016, 20 fév. 2017 10 avr. 2017, 26 juin 2017 Montpellier 28 nov. 2016, 13 mar. 2017 19 juin 2017 Nantes 28 nov. 2016, 13 mar. 2017 19 juin 2017 Rennes 28 nov. 2016, 13 mar. 2017 19 juin 2017 Sophia-antipolis 12 déc. 2016, 13 mar. 2017 19 juin 2017 Strasbourg 12 déc. 2016, 13 mar. 2017 19 juin 2017 Toulouse 28 nov. 2016, 20 fév. 2017 10 avr. 2017, 26 juin 2017 Maîtriser la chaîne de production d'un programme écrit en langage C Mettre en oeuvre les opérateurs, les expressions et les structures de contrôle du langage C Manipuler des structures de données, des tableaux, des pointeurs et des chaînes de caractères Organiser le code d'un programme à l'aide de fonctions. Exploiter les principales bibliothèques standard du langage C 1) Premiers pas en C 2) Opérateurs et expressions 3) Structures de contrôle 4) Tableaux, pointeurs et chaînes de caractères 5) Les structures 6) Les fonctions 7) Compilation séparée, classe d'allocation 8) Le préprocesseur 9) Les bibliothèques standard Travaux pratiques Des machines sous système Unix ou Windows (PC) seront mises à la disposition des participants de manière à mettre en pratique les notions présentées. 1) Premiers pas en C - Présentation du langage C, ses atouts. - Le C++ par rapport au C. Normes C++11 et C11. - Les fichiers sources (.c, .h). - Structure générale d'un programme. - La syntaxe de base du langage. - Les types de données et les constantes de base. - Variables globales et locales. - Stockage et passage de paramètres. - Entrées/sorties formatées. - Les commentaires. - Utilisation élémentaire de la chaîne de production. - Les environnements d'édition, de compilation et d'exécution. - Exécution d'un premier programme. 2) Opérateurs et expressions - Opérateurs arithmétiques. - Mécanismes d'évaluation des expressions. - Post et pré-incrémentation de décrémentation. - Précédence et associativité des opérateurs. - Opérateurs d'affectation. - Mécanismes de fonctionnement des expressions logiques. - Expressions logiques dans les instructions while, if... - Opérateurs de comparaison : <, >, ==, !=... - Opérateurs logiques : ET, OU, négation. - Les types numériques composés. Règle de conversion dans les expressions mixtes. Conversions implicites/ explicites. - Initialisation des variables. - Arithmétique sur les adresses. - Formats d'entrée/sortie associés aux types numériques. - Opérateurs bit à bit : ET, OU, OU exclusif, complément à 1, négation. Opérateurs de décalage : >>, <<. - Expression conditionnelle avec l'opérateur ternaire. Travaux pratiques Mise en oeuvre des opérateurs et expressions. 3) Structures de contrôle - Notion de blocs. - Les structures de boucles : while, for. - Instructions de contrôle de boucles : break, continue. - Structures de choix : if, else, else if. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 39 - Structure de choix multiple : switch. Travaux pratiques Mise en oeuvre des structures de contrôle. 4) Tableaux, pointeurs et chaînes de caractères - Définition, initialisation et accès aux éléments d'un tableau. - Définition d'un pointeur. Récupérer l'adresse mémoire d'un objet. Accéder au contenu d'un pointeur. - Equivalences pointeurs/tableaux. - Calculs sur les pointeurs. - Chaînes de caractères. - Exemples de manipulation de chaînes de caractères. - Les chaînes de caractères Unicode de C11. Travaux pratiques Manipulation de tableaux, de pointeurs et des chaînes de caractères. 5) Les structures - Intérêts des structures. - Déclarer, initialiser et accéder aux champs d'une structure. - Utiliser des structures imbriquées. - Créer de nouveaux types en utilisant Typedef. - Les champs de bits. - Les unions. - Les énumérations. - Les structures et énumérations anonymes de C11. - Définir des pointeurs sur structures. Travaux pratiques Implémentation de nouvelles structures de données. 6) Les fonctions - Définition d'une fonction. - Appel d'une fonction. - Passage de paramètres : par valeur ou par référence. - Code retour d'une fonction. Les types de retour. - La fonction " main ". Travaux pratiques Découper son code à l'aide de fonctions. Gérer les appels de fonctions. 7) Compilation séparée, classe d'allocation - Mécanisme de fonctionnement de la chaîne de production. - Utilisation de bibliothèque de sources. - Notion de Makefile. - Configuration mémoire d'un programme C (pile, tas...). - Classes d'allocation des variables (auto, register, static, extern). - Différents cas de figure de la compilation séparée. - Notion d'objet externe. - Cas des données globales et statiques. - Cas des données locales. - Règle de visibilité. - Compléments sur les fonctions et les initialisations. 8) Le préprocesseur - Utilisation des macros prédéfinies (constantes symboliques). Définir ses propres macros avec #define. - Définir des macros comme des fonctions. Utilisation des marqueurs # et ##. - Annuler la définition de constante avec #undef. - La compilation conditionnelle : #if, #ifdef, #ifndef, #elif, #endif. - Inclure des ressources avec #include. Travaux pratiques Utilisation des directives du préprocesseur. Mise en place de la compilation conditionnelle. 9) Les bibliothèques standard - Les fonctions de calcul mathématique (sqrt, sin...). - Les fonctions d'entrées/sorties (fprintf, fscanf...). - Les fonctions d'accès aux fichiers (fread, fwrite...). - Les fonctions de manipulation de chaînes de caractères (strlen, strcat...). - Les fonctions de gestion de la mémoire (malloc, free...). - Mise en place de structures chaînées (listes chaînées, arbres n-aire...). - Les fonctions « sécurisées » de la librairie standard C11 (strcat_s, strlen_s, ...). ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 40 Travaux pratiques Utilisation des principales fonctions des bibliothèques standard. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 41 Stage pratique de 3 jour(s) Réf : CFT Participants Concepteurs, développeurs. Pré-requis Bonnes connaissances du langage C ou connaissances équivalentes à celles apportées par le stage "Programmation en C" (réf. LGC). Programmation en C, perfectionnement > Développement logiciel > PHP, C, C++, autres langages Cette formation vous permettra d'approfondir vos connaissances en langage C. Vous manipulerez les aspects avancés des pointeurs et intégrerez des algorithmes récursifs dans vos développements. Vous découvrirez les évolutions apportées par la programmation orientée objet ainsi que les ajouts majeurs de la norme C11. OBJECTIFS PEDAGOGIQUES Manipuler les pointeurs, les pointeurs de fonctions et les bibliothèques intégrées au langage Maîtriser les structures de données récursives et leurs algorithmes intrinsèques Utiliser les outils de développement associés au langage C Maîtriser les évolutions orientées objets et les ajouts majeurs de la norme C11 Prix 2017 : 1960€ HT Dates des sessions Paris 1) Les pointeurs et les tableaux 2) Les bibliothèques de fonctions 3) La récursivité 14 nov. 2016, 13 mar. 2017 19 juin 2017 4) Les outils de développement pour le langage C 5) Du langage C à la programmation orientée objet 6) Les aspects avancés de la norme C11 1) Les pointeurs et les tableaux - Rappels sur les pointeurs et les tableaux, différences et points communs entre les deux. - Les trois arguments de la fonction main(), les variables d'environnement. - Tableaux à plusieurs indices. - Pointeur de fonctions, tableau de pointeurs de fonctions. - Allocation dynamique repérée par les pointeurs. Travaux pratiques Développement de programmes utilisant les pointeurs de façon intensive. 2) Les bibliothèques de fonctions - Bibliothèques standard du langage : ctype.h, math.h, stdlib.h, time.h... et les autres. - Bibliothèques mathématiques avancées : Linpack, Lapack. - La gestion de l'allocation dynamique : fonctions calloc(), realloc(). - Fonctions à nombre d'arguments variables existantes et créées par le programmeur. Travaux pratiques Utilisation de plusieurs bibliothèques de fonctions. 3) La récursivité - Définition de la récursivité. - Fonctions récursives. - Structure de données récursives : listes, arbres. - Algorithmes intrinsèques sur les structures de données récursives (insertion, retrait...). Travaux pratiques Création d'une bibliothèque pour la manipulation des données récursives. 4) Les outils de développement pour le langage C - Recherche d'erreur dans les programmes : le debugger. - Outils de gestion de dépendances : make et touch. - Analyse dynamique de programmes : le profiler. - Outils de tests : CUnit. Travaux pratiques Utilisation des outils de développement pour le langage C. 5) Du langage C à la programmation orientée objet - Définitions des notions orientées objet : objet, encapsulation, classe, héritage, polymorphisme. - Domaines orientés objet traités avec le langage C. - Du langage C au langage C++. - Du langage C au langage Java. Travaux pratiques Conception orientée objet utilisant le langage C. 6) Les aspects avancés de la norme C11 - Le multi-threading. - Les structures et unions anonymes. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 42 - Les fonctions génériques. - La gestion du codage Unicode. - Réécriture de certaines fonctions, vérification des tailles des données. Travaux pratiques Utilisation des notions ajoutées par la norme C11. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 43 Stage pratique de 2 jour(s) Réf : CDE Participants Développeurs C souhaitant connaître les nouveautés définies par le standard C11. C11, mise à niveau pour développeur C > Développement logiciel > PHP, C, C++, autres langages Cette formation vous permettra d'assimiler les nouveautés introduites par le standard C11 ISO/IEC 9899:2011. Vous découvrirez la gestion du multithreading, la sélection générique de fonctions ainsi que de nombreuses autres fonctions de la bibliothèque standard offrant des interfaces de fonctionnement sûres. Pré-requis OBJECTIFS PEDAGOGIQUES Bonnes connaissances du langage C. Une expérience pratique de la programmation avec ce langage est fortement recommandée. Appréhender les nouveautés de C11 Développer des applications exploitant les threads standards C11 Améliorer la fiabilité d'une application à l'aide des nouvelles fonctions standards C11 Prix 2017 : 1440€ HT Dates des sessions Paris 24 nov. 2016, 30 mar. 2017 29 juin 2017 1) L'avènement de C11 2) Rappels sur les avancées de C99 3) Le multithreading 4) Utiliser les threads de C11 5) Les objets atomiques 6) La sûreté de fonctionnement 7) Améliorations diverses Travaux pratiques Des exercices pratiques de programmation permettront d'appréhender les différents concepts abordés. 1) L'avènement de C11 - Les différentes normes C ANSI, C99, C11. - Nouveautés de C11 et objectifs de cette norme ISO. - Compatibilité avec les anciennes versions. - Outils de développement (compilateurs, IDE...). Travaux pratiques Mise en place d'une chaîne de compilation C11. 2) Rappels sur les avancées de C99 - Les tableaux de taille variable. - Les fonctions inline. - Les nouveaux types de données long, _Complex, _Bool. - Les pointeurs "restreints" (restrict). - Mélanger instructions et déclarations de variables. - Le problème de la non-conformité des compilateurs. - Les reprises/abandons de C99. Travaux pratiques Compiler en C99 et en C11 et savoir dans quelle version on se trouve. 3) Le multithreading - Le concept de thread. Processus léger versus lourd. - Cycle de vie des threads (exécution...). - Partage de données entre threads. - Synchronisation, rendez-vous, sémaphores. - Les propositions des autres langages : Java, C#, C++. 4) Utiliser les threads de C11 - Appréhender les concepts présents dans la norme et les différences/similitudes avec Pthreads. - Créer un thread, le rendre exécutable. - Définir des pauses, attendre la fin d'exécution. - Utiliser les mutex. - Implémenter un producteur-consommateur. Travaux pratiques Utiliser les threads C11. 5) Les objets atomiques - Comprendre les problématiques de partage de données entre threads et le concept d'objet atomique. - Définir une donnée atomique. - Utiliser les opérations atomiques. - La gestion des données non-atomiques. Travaux pratiques Réaliser un partage de données entre threads. 6) La sûreté de fonctionnement ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 44 - La suppression de gets() par gets_s(). - La fonction fopen_s(). - Autres fonctions : strcat_s(), strcpy_s()... Travaux pratiques Manipulation de fonctions. 7) Améliorations diverses - L'alignement des structures (<stdalign.h>). - La gestion des chaînes Unicode (char16_t...). - Le support des structures et unions anonymes. - La sélection générique de fonctions au sein des macros (_Generic). - Manipulation des nombres complexes. - Le nouveau mode de fopen(). - Les assertions statiques. Travaux pratiques Mise en œuvre des améliorations. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 45 Stage pratique de 4 jour(s) Réf : LXT Participants Développeurs Linux/Unix. Pré-requis Bonnes connaissances d'un système Linux/Unix et de la programmation en C. Prix 2017 : 2440€ HT Dates des sessions Paris 22 nov. 2016, 20 déc. 2016 14 fév. 2017, 11 avr. 2017 20 juin 2017, 22 aoû. 2017 Aix Linux industriel, temps réel et embarqué Best > Développement logiciel > PHP, C, C++, autres langages Vous découvrirez dans cette formation l'architecture générale d'un système embarqué et mettrez en œuvre les outils de développement industriel disponibles librement sous Linux. Vous implémenterez les mécanismes d'ordonnancement temps partagé et réel souple, vous accéderez au développement temps réel strict avec l'extension LinuxRT ou Xenomai. Vous verrez enfin comment personnaliser le boot d'un système Linux. OBJECTIFS PEDAGOGIQUES Découvrir les outils de développement industriel sous Linux Maîtriser les mécanismes d'ordonnancement temps partagé et réel souple Accéder au développement temps réel strict avec l'extension LinuxRT ou Xenomai Personnaliser le boot d'un système Linux 1) Architecture 2) Développement industriel sous Linux 3) Ordonnancement temps partagé et réel souple 7 nov. 2016, 21 mar. 2017 27 juin 2017 Bordeaux 15 nov. 2016, 7 mar. 2017 30 mai 2017 Bruxelles 13 déc. 2016, 21 mar. 2017 13 juin 2017 Geneve 13 déc. 2016, 21 mar. 2017 13 juin 2017 Grenoble 7 nov. 2016, 7 mar. 2017 30 mai 2017 Lille 7 nov. 2016, 21 mar. 2017 27 juin 2017 Luxembourg 13 déc. 2016, 21 mar. 2017 13 juin 2017 Lyon 7 nov. 2016, 7 mar. 2017 30 mai 2017 Montpellier 15 nov. 2016, 21 mar. 2017 27 juin 2017 Nantes 15 nov. 2016, 21 mar. 2017 27 juin 2017 Rennes 15 nov. 2016, 21 mar. 2017 27 juin 2017 Sophia-antipolis 7 nov. 2016, 21 mar. 2017 27 juin 2017 Strasbourg 7 nov. 2016, 21 mar. 2017 27 juin 2017 Toulouse 15 nov. 2016, 7 mar. 2017 30 mai 2017 4) Temps réel strict - Extension Xenomai 5) Environnements restreints, systèmes embarqués 6) Personnalisation du boot du système Travaux pratiques Les nombreux exercices et études de cas progressifs sont réalisés sur un réseau de serveurs Linux. Tous les programmes réalisés en TP existent sous forme de squelettes que les participants complètent eux-mêmes. 1) Architecture - Système informatique ordinaire et système embarqué. - Contraintes d'un système embarqué. - Architecture générale d'un système embarqué. - Démarrage du système, étape de boot. - Architecture du noyau Linux. Emplacement des sources. - Démarrage du système, phases de boot (code dépendant, commun). Travaux pratiques Détection d'erreur à la compilation, à l'édition des liens, utilisation d'Eclipse/CDT, utilisation d'une chaîne de compilation croisée. Débogage. Détection des fuites mémoire et des débordements de buffers. Test de couverture sur l'exécution d'une application. 2) Développement industriel sous Linux - Environnement Linux. - Mode de fonctionnement : utilisateur, superviseur. - Licences et implications pour le développement industriel. - Outils de développement libres (compilateur, debugger, outils d'analyse, de trace et de tests). - Les différents IDE (Integrated Development Environment) : Eclipse, ... - Méthodes de compilation avancées. - La chaîne de compilation croisée. - La gestion de mémoire. - La détection des fuites mémoire. - Le débordement de buffers. 3) Ordonnancement temps partagé et réel souple - Précision des mesures horaires et des attentes. - Ordonnancement temps partagé. Les règles de la préemptibilité. - Le fonctionnement général de l'ordonnanceur, priorités et partage du CPU. - Quand le noyau devient-il préemptible ? - Gestion du temps et précision des timers. - Temps réel souple Posix.1b : principes. - Configuration de l'ordonnancement des processus et des threads. - Problèmes algorithmiques liés au temps réel. - L'ordonnanceur Linux : noyaux 3.x Travaux pratiques Création et gestion de processus. Priorités et partage du CPU. Examen du fonctionnement de l'ordonnanceur. Basculement de processus en temps réel. Vérification de la précision des timers et des sommeils. 4) Temps réel strict - Extension Xenomai - Principe du temps réel strict. - Vue d'ensemble de l'extension Xenomai. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 46 - Concepts de temps réel strict : principe des micro-noyaux Adeos, Xenomai, LinuxRT. - Installation et API de Xenomai. - Utilisation de l'extension LinuxRT. - Ordonnancement temps réel strict en mode utilisateur. - Interruptions (activation, désactivation, ...). - Protection contre les interruptions. - Gestion des communications. - Présentation de l'API de Xenomai, installation de Xenomai. - La gestion des tâches temps réel strict. Travaux pratiques Installation de Xenomai. Création de tâches temps réel strict. Gestion des communications. Ecriture d'un gestionnaire d'interruption, de processus ordonnancé en temps réel strict. Installation et utilisation de Xenomai. 5) Environnements restreints, systèmes embarqués - Problématique des systèmes embarqués. - Système LinuxRT, Xenomai : API, développement. - Linux embarqué : choix d'une version du noyau. - Bibliothèques système (Newlib, DietLibc). - Applications et utilitaires à embarquer. - Interface utilisateur. - Interfaces graphiques optimisées (directfb, etc). - Présentation et configuration d'un chargeur de démarrage. - Générer un noyau réduit. Généralité sur le système de fichiers. - Installation de la chaîne de compilation. Travaux pratiques Installation, compilation d'une application personnalisée LinuxRT, Xenomai et d'un noyau de taille réduite. Création d'un système de fichiers. Incorporation d'applications minimales. Ecriture d'application utilisant une interface par Leds ou afficheur LCD. Installation d'un serveur HTTP embarqué. 6) Personnalisation du boot du système - Les différentes phases de boot (mise sous tension, Bios, chargeur (Grub, UBoot...) du noyau. - Le rôle du processus Init. Le niveau d'exécution. - Le contenu du processus Init. - Le remplacement du processus Init par une version personnalisée. - Initialisation depuis l'espace utilisateur. Travaux pratiques Création et personnalisation d'un disque initrd. Remplacement du processus Init par une version personnalisée et remplacement par un script shell. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 47 Stage pratique de 4 jour(s) Réf : LIS Participants Développeurs Linux/Unix. Pré-requis Bonne connaissance d'un système Linux/ Unix et de la programmation en C. Prix 2017 : 2440€ HT Dates des sessions Linux/Unix, développement système > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Cette formation vous permettra de maîtriser toutes les facettes de la programmation applicative : gestion des processus et threads, gestion fine du système de fichiers et de la mémoire et bien entendu l'ensemble des outils de communication interprocessus. 1) Outils et méthodes de développement 2) Les processus 3) Les threads Posix 4) Communications entre processus 5) Gestion de la mémoire 6) Signaux 7) Communiquer sur le réseau 8) Entrées-sorties classiques et avancées Paris Travaux pratiques 12 déc. 2016, 28 mar. 2017 13 juin 2017 Les exercices et études de cas progressifs sont réalisés sur un réseau de serveurs Linux. Tous les TP existent sous forme de squelettes à complèter. 1) Outils et méthodes de développement - Environnement Linux : influences, logiciels libres, licence GPL, distributions. - Outils de développement : éditeurs et environnements intégrés, compilateurs et constructeurs, profileurs et débogueurs. Travaux pratiques Prise en main des outils de développement (gcc, make...). 2) Les processus - Concept de processus, identifications. - Création, terminaison d'un processus et exécution. - Problèmes de sécurité. 3) Les threads Posix - Principe des threads Posix.1c. - Exécution et terminaison des threads. - Synchronisation des threads : utilisation des mutex et des variables conditions. 4) Communications entre processus - Files de messages : principe. Files de message System V et Posix. - Mémoire partagée : principe. Segments de mémoire System V et Posix. - Synchronisation des accès : sémaphores Posix et nommés. - Tubes de communication : création d'un tube, redirection des entrées-sorties, tubes nommés. 5) Gestion de la mémoire - Principes de la mémoire virtuelle : espace d'adressage et mémoire physique. Segmentation et pagination. Fautes de page. - Allocation de la mémoire : fonctions classiques, exploration de l'espace d'adressage, réussite et échec d'allocation. - Utilisation de la mémoire : projection, configuration, détection des fuites et débordements mémoire. 6) Signaux - Gestion des signaux : émission et réception de signaux, blocages et attentes. - Signaux temps réel : principes. Emission et réception. 7) Communiquer sur le réseau - Appels système fondamentaux : résolution de noms, de services, création de sockets. - Communication TCP/IP et UDP/IP : serveurs multiprocessus et multithreads, clients TCP. - Transmission unicast, multicast et broadcast. 8) Entrées-sorties classiques et avancées - Descripteurs et flux : concepts, utilisation, paramétrage. - Entrées-sorties avancées : entrées-sorties non bloquantes et multiplexées, asynchronisme. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 48 Stage pratique de 4 jour(s) Réf : LDI Participants Développeurs Linux/Unix. Pré-requis Bonnes connaissances de Linux/Unix et de la programmation C. Prix 2017 : 2150€ HT Dates des sessions Linux, drivers et programmation noyau Best > Développement logiciel > PHP, C, C++, autres langages Cette formation vous permettra de maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes distributions de Linux. Vous verrez les différents types de périphériques, la gestion de la mémoire, l’implémentation de protocole réseau ainsi que les périphériques USB. OBJECTIFS PEDAGOGIQUES Maîtriser le développement de pilotes de périphériques Comprendre en détail les mécanismes internes du noyau Savoir développer et intégrer de nouveaux éléments dans le noyau Linux Ecrire un pilote périphérique en mode caractère ou bloc Paris 12 déc. 2016, 10 jan. 2017 7 mar. 2017, 16 mai 2017 18 juil. 2017 Bruxelles 6 déc. 2016, 21 mar. 2017 20 juin 2017 Geneve 6 déc. 2016, 21 mar. 2017 20 juin 2017 Luxembourg 6 déc. 2016, 21 mar. 2017 20 juin 2017 1) Présentation du noyau 2) Les outils utilisables 3) Gestion des threads, scheduling 4) Gestion de la mémoire, du temps et de proc 5) Périphérique en mode caractère 6) Linux Driver Framework - sysfs 7) Périphérique en mode bloc et systèmes de fichier 8) Interfaces et protocoles réseau 9) Drivers pour périphériques USB Travaux pratiques Les nombreux exercices et études de cas progressifs seront réalisés sur un réseau de serveurs Linux. Tous les programmes réalisés en TP existent sous forme de squelettes que les participants complètent euxmêmes. 1) Présentation du noyau - Vue d'ensemble du système et rôle du noyau. - Les sites de référence. - Spécificités des noyaux 2.6 et 3.x. - Cycles de développement du noyau, les patchs. - Mode de fonctionnement (superviseur et utilisateur). Appels système. - Organisation des sources (Include/linux, Arch, Kernel, Documentation...). - Principe de compilation du noyau et des modules. - Les dépendances et symboles. - Les exportations de symboles. - Le chargement du noyau (support, argument...). Travaux pratiques Compilation et installation d'un noyau 3.x. 2) Les outils utilisables - Outils de développement (Gcc, Kbuild, Kconfig et Makefile...). - Outils de débogage (GDB, KGDB, ftrace...). - Environnement de débogage (Linux Trace Toolkit...). - Outil de gestion de version (Git...). - Tracer les appels système (ptrace...). Travaux pratiques Installer l'ensemble des outils et des sources pour générer un module pour le noyau. Configurer le système pour effectuer le chargement automatique de module au boot. Ecriture et test de modules simples. 3) Gestion des threads, scheduling - Les différents types de périphériques. - Contextes de fonctionnement du noyau. Protection des variables globales. - Représentation des threads (état, structure task_stru, thread_info...). - Les threads, contexte d'exécution. - Le scheduler de Linux et la préemption. - Création d'un thread noyau (kthread_create, wakeup_process...). Travaux pratiques Créer un module qui crée un thread noyau lors de l'insertion et le décharge lors du rmmod. Ecriture d'un module d'horodatage d'événements à haute précision. Ecriture d'un module d'information sur les structures internes des processus. 4) Gestion de la mémoire, du temps et de proc - L'organisation mémoire pour les architectures UMA et NUMA. - L'espace d'adressage utilisateur et noyau. - La gestion de pages à la demande (demand paging). ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 49 - Allocations mémoire, buddy allocator, kmalloc, slabs et pools mémoire. - La gestion des accès à la mémoire (les caches et la MMU). - Les problèmes liés à la sur-réservation de la mémoire. - Gestion de la mémoire sur x86 et ARM, utilisation des Hugepages. - Optimisation des appels systèmes (IAPX32, VDSO). - Synchronisations et attentes dans le noyau, waitqueues, mutex et les completions. - Les ticks et les jiffies dans Linux. - L'horloge temps réel, RTC (real Time Clock), implémentation des timers. - Interface timers haute résolution, estampilles. - Les outils spécifiques au noyau, listes chaînées, kfifo et container_of. - L'interface noyau avec /proc par le procfs. Travaux pratiques Utilisation des timers et des estampilles. Implémentation d'un accès au procfs. Mise en œuvre de l'allocation mémoire dans le noyau et optimisation à l'aide des slabs. 5) Périphérique en mode caractère - Ecriture de pilotes de périphériques caractère. - Le VFS (Virtual File System). - Les méthodes associées aux périphériques caractères. - Gestion des interruptions DMA et accès au matériel. - Enregistrement des pilotes de périphériques de type caractère et optimisations. Travaux pratiques Ecriture progressive d'un pilote périphérique en mode caractère. Implémentation des synchronisations d'entrée-sortie entre threads et avec la routine d'interruption. Implémentation de l'allocation mémoire. 6) Linux Driver Framework - sysfs - Présentation du framework, kobject, kset et kref. - Les objets drivers, device driver, bus et class. - Utilisation et génération des attributs présentés dans le sysfs. - Interface avec le hotplug, méthodes match, probe et release. - Gestion du firmware. - Gestion de l'énergie, méthodes de gestion de l'énergie. Travaux pratiques Implémentation d'un bus, d'un driver et d'un device driver. Adaptation du pilote de périphériques caractère. Exemple d'utilisation de l'interface. 7) Périphérique en mode bloc et systèmes de fichier - Principe des périphériques en mode bloc. Enregistrement du driver. - Callback de lecture et écriture. Support du formatage et opérations avancées. - Ordonnanceur des entrées-sorties par bloc du noyau. - Conception des systèmes de fichiers. - Enregistrement d'un nouveau système de fichiers. Travaux pratiques Exemple de pilote complet de périphérique virtuel. Exemple d'un système de fichiers personnalisé. 8) Interfaces et protocoles réseau - Gestion des interfaces réseau sous Linux. - Utilisation des skbuff. - Les hooks netfilter. - Intégration d'un protocole. Travaux pratiques Exemple de driver réseau pour périphérique virtuel. Implémentation de protocole réseau. 9) Drivers pour périphériques USB - Principe des périphériques USB. Interface avec le module USB-core. - Interaction du périphérique avec le noyau Linux. - Construction d'un URB (USB Request Block). - Les gadgets USB. Travaux pratiques Enregistrement d'un driver USB. Ecriture d'un driver en mode isochrone. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 50 Stage pratique de 5 jour(s) Réf : C++ Participants Développeurs, ingénieurs et chefs de projets proches du développement. Pré-requis Bonnes connaissances d'un langage de programmation de type C, Java, C#, VB.NET ou PHP. Prix 2017 : 2610€ HT Dates des sessions Paris 24 oct. 2016, 28 nov. 2016 19 déc. 2016, 16 jan. 2017 13 fév. 2017, 6 mar. 2017 10 avr. 2017, 15 mai 2017 26 juin 2017, 24 juil. 2017 21 aoû. 2017 Aix 5 déc. 2016, 20 fév. 2017 15 mai 2017 Bordeaux 12 déc. 2016, 13 fév. 2017 10 avr. 2017, 26 juin 2017 Bruxelles 5 déc. 2016, 13 mar. 2017 19 juin 2017 Geneve 5 déc. 2016, 13 mar. 2017 19 juin 2017 Grenoble 5 déc. 2016, 13 fév. 2017 10 avr. 2017, 26 juin 2017 Lille 5 déc. 2016, 20 fév. 2017 15 mai 2017 Luxembourg 5 déc. 2016, 13 mar. 2017 19 juin 2017 Programmation objet en C++ Best > Développement logiciel > PHP, C, C++, autres langages Ce stage intensif a deux objectifs : initier les participants aux méthodes et réflexes de la programmation par objets ; leur apporter une maîtrise opérationnelle complète du langage C++. Il est le fruit d'une longue expérience en matière de développement en C++ et est construit selon une pédagogie rigoureuse reposant sur des travaux pratiques nombreux et progressifs. Ce cours est basé sur le standard C++ 11, version la plus récente de la norme C++. OBJECTIFS PEDAGOGIQUES Maîtriser la syntaxe du langage C++ Mettre en oeuvre les concepts de la conception orientée objet Utiliser les outils de développement associés au langage C++ Maîtriser les ajouts majeurs de la norme C++ 11 1) La syntaxe du C++ (différences entre C et C++) 2) Approche orientée objet 3) Les classes et les objets C++ 4) Dérivation et héritage 5) Les exceptions 6) La surcharge des opérateurs 7) Les modèles 8) Les I/O et aperçu sur la STL 9) Conclusion Méthodes pédagogiques Tous les exercices comportent une phase d'analyse/conception suivie d'une phase de programmation. Travaux pratiques Mise à disposition de stations de travail disposant des langages Visual C++ (sous Windows) et gcc (sous Unix). Les TP ont été conçus pour illustrer tous les éléments du langage et pour systématiquement mettre en oeuvre les concepts de la conception orientée objet. 1) La syntaxe du C++ (différences entre C et C++) - Données : définition, initialisation, types de données. - Expressions : notion de référence, mécanismes de cast. - Opérateurs (: :, new, delete). - Fonctions (passage de paramètres et valeur de retour par référence, valeurs par défaut, inlining, surcharge). - Utilisation du code C dans un programme C++. - Les références (arguments et valeurs de retour). - Les types constants. - Les espaces de nommage. - Le typage "automatique" avec le mot-clé auto (C++ 11). Lyon Travaux pratiques Prise en main de l'environnement de développement et programmation d'un programme simple. 5 déc. 2016, 13 fév. 2017 10 avr. 2017, 26 juin 2017 2) Approche orientée objet Montpellier 12 déc. 2016, 20 fév. 2017 15 mai 2017 Nantes 12 déc. 2016, 20 fév. 2017 15 mai 2017 Rennes 12 déc. 2016, 20 fév. 2017 15 mai 2017 Sophia-antipolis 5 déc. 2016, 20 fév. 2017 15 mai 2017 Strasbourg 5 déc. 2016, 20 fév. 2017 15 mai 2017 Toulouse 12 déc. 2016, 13 fév. 2017 10 avr. 2017, 26 juin 2017 - Les principes généraux des techniques objet. - C++ et la programmation objet. - Une introduction aux méthodologies orientées objet. - Une introduction aux modèles et à la notation UML (modèle statique, dynamique, modèle de coopération, scénario). Travaux pratiques Application des concepts à une étude de cas qui sera l'un des fils directeurs des exercices suivants. 3) Les classes et les objets C++ - Les aspects syntaxiques : les champs, les méthodes, les constructeurs. - Le contrôle d'accès. - L'autoréférence. - Les champs et méthodes statiques. - Les fonctions. - Les méthodes et les classes friend. - La création dynamique des tableaux d'objets. - Les aspects méthodologiques : la conception des classes. - Les constructeurs de copie et de déplacement (C++11). - La délégation de constructeurs (C++ 11). - Introduction aux problématiques de gestion mémoire (pile, tas, ramasse-miettes...). Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 51 La programmation de l'étude de cas. La conception et la construction d'une hiérarchie de classes et d'interfaces. 4) Dérivation et héritage - Principe de la dérivation. - Les aspects syntaxiques : la définition des classes dérivées, les constructeurs. - Le contrôle d'accès. - La mise en oeuvre du polymorphisme : les fonctions virtuelles. - La réutilisation de code : les classes abstraites. - Les interfaces. - La dérivation multiple. - Les aspects sémantiques et méthodologiques : la factorisation du code. Travaux pratiques La mise en place du polymorphisme dans l'étude de cas. 5) Les exceptions - Les aspects syntaxiques : les blocs de try, la génération des exceptions. - Les aspects méthodologiques : la construction d'une hiérarchie d'exception, l'utilisation des exceptions. Travaux pratiques L'introduction des exceptions dans l'étude de cas. 6) La surcharge des opérateurs - Principe de la surcharge. - Surcharge des opérateurs binaires. - Surcharge particulière : l'opérateur indice, fonction, conversion. - Surcharge des opérateurs de gestion mémoire. - Surcharge des opérateurs '<<' et '>>'. Travaux pratiques La surcharge de quelques opérateurs simples. 7) Les modèles - Modèle de classe. Principes et mécanismes généraux. Surcharge des modèles et redéfinition de méthodes. - Modèle de fonction. Principes et mécanismes généraux. Surcharge des modèles. - Modèles et surcharge des opérateurs. - Les modèles et les mécanismes de dérivation. - Les améliorations proposées par C++ 11. Travaux pratiques Exercices sur les modèles. 8) Les I/O et aperçu sur la STL - Les I/O. - Le principe des streams et la hiérarchie des classes d'entrée/sortie. - Description de quelques classes d'entrées/sorties. - Aperçu sur la STL. - Objectifs et principes. - Descriptions de quelques modèles et classes. - Les conteneurs, les itérateurs, la boucle basée sur un intervalle (C++ 11). 9) Conclusion - Cycle de vie du logiciel : test, intégration, méthode de mise en production. - Interaction avec les autres environnements. - Analyse critique du C++. - Evolution du C++. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 52 Stage pratique de 4 jour(s) Réf : POP Participants Concepteurs et développeurs d'applications en C++, chefs de projets, architectes logiciels. Pré-requis Bonnes connaissances en développement C++, ou connaissances équivalentes à celles apportées par le stage " Programmation Objet en C ++ " (réf. C++). Expérience requise. Programmation C++, perfectionnement Best > Développement logiciel > PHP, C, C++, autres langages En constante évolution, le langage C++ offre des mécanismes tels que la généricité ou la méta programmation qui permettent une conception robuste et très riche. Les récentes normes C++11 et C ++14 intègrent une part importante des bibliothèques du projet BOOST et améliorent notablement la Standard Template Library (STL). Cette formation vous permettra d'approfondir la conception en C++ par l'apprentissage des dernières évolutions du langage et l'utilisation effective de la STL. OBJECTIFS PEDAGOGIQUES Découvrir les nouveautés apportées par la version C++11 Maîtriser la gestion de la mémoire, des pointeurs et des références Implémenter la généricité en C++ Découvrir la bibliothèque standard STL Utiliser la librairie BOOST et C++11 Prix 2017 : 2150€ HT Dates des sessions Paris 13 déc. 2016, 21 fév. 2017 25 avr. 2017, 13 juin 2017 Aix 29 nov. 2016 Bordeaux 22 nov. 2016 Bruxelles 6 déc. 2016, 11 avr. 2017 27 juin 2017 1) Rappels 2) Les nouveautés langage de C++11 3) Gestion des opérateurs 4) Conversion et RTTI 5) La généricité 6) La STL (Standard Template Library) 7) Les nouveautés C++11 de la librairie standard 8) BOOST 9) Utilisation avancée de l'héritage Travaux pratiques Le cours se déroulera sur des stations de travail sous Windows/Visual C++. De nombreux exercices permettront de mettre en oeuvre les thèmes abordés plus spécifiquement sous l'angle de la conception. 1) Rappels Geneve Luxembourg - Classes d'allocation mémoire. - Construction, initialisation, embarquement d'objets. - Les fuites mémoire. - Constance, le mot-clé mutable, Lazy Computation. - Amitié (friendship) C++ et contrôle d'accès. - Destruction virtuelle. - Stratégie de gestion des exceptions. - Les espaces de nommage (namespace). 6 déc. 2016, 11 avr. 2017 27 juin 2017 2) Les nouveautés langage de C++11 6 déc. 2016, 11 avr. 2017 27 juin 2017 Grenoble 29 nov. 2016 Lille 29 nov. 2016 Lyon 29 nov. 2016 Montpellier 22 nov. 2016 Nantes 22 nov. 2016 Rennes 22 nov. 2016 Sophia-antipolis 29 nov. 2016 Strasbourg 29 nov. 2016 Toulouse 22 nov. 2016 - nullptr et autres littéraux. - Les directives =delete, =default. - Délégation de constructeurs. - Les énumérations «type safe». - Le mot-clé auto et boucle sur un intervalle. - Référence rvalue et impacte sur la forme normale des classes C++. - Les lambda-expressions. Travaux pratiques Réécriture d'un code C++ existant en C++11, comparaison des deux implémentations. 3) Gestion des opérateurs - Opérateurs binaires et unaires. - L'opérateur d'indirection, cas d'usage. - L'opérateur de référencement. - Les opérateurs d'incrémentation/décrémentation préfixés et post-fixés. - Les autres opérateurs : comparaison, affectation... - La surcharge de l'opérateur [], des opérateurs d'insertion (<<) et d'extraction (>>). - Les foncteurs et la surcharge de l'opérateur (), avantage par rapport aux fonctions. Travaux pratiques Création de foncteurs et de proxies (libération mémoire, comptage de références) avec les opérateurs étudiés. 4) Conversion et RTTI - Opérateurs de conversion. Constructions implicites, le mot-clé explicit. - Les opérateurs de casting const_cast, static_cast, reinterpret_cast. - Conversion dynamique et Runtime Type Information. - L'opérateur typeid, les exceptions liées. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 53 - La classe type_info. - Contrôle du " downcasting " à l'aide de l'opérateur dynamic_cast. Travaux pratiques Mise en oeuvre des idiomes " is-a " et " is-kind-of " avec dynamic_cast. 5) La généricité - Introduction aux patrons de classe. Généricité et préprocesseur. - Fonction générique. Classe générique. Composition générique. Généralisation générique. - Spécialisation partielle et totale. - Introduction à la méta-programmation. - La généricité, principe fédérateur des librairies STL et BOOST. Travaux pratiques Démarrage de l'étude de cas qui sera complétée avec la STL et BOOST. Mise en oeuvre de la composition et de la généralisation génériques. Création de plug-ins génériques. 6) La STL (Standard Template Library) - Composants de la STL : types complémentaires, conteneurs, algorithmes, itérateurs, objets fonctions, les adaptateurs. - Les chaînes de caractères STL, la classe template basic_string et ses spécialisations. - Les conteneurs séquentiels et associatifs : définition, rôle et critères de choix. - Les allocateurs et la gestion de la mémoire des conteneurs. - Les méthodes d'insertion, de suppression, d'itération et d'accès aux principaux conteneurs : Vector, List, Set, Stack... - Le concept d'itérateur. Parcours d'un conteneur. - Les différents groupes d'algorithmes STL : non mutants, mutants, de tri et de fusion, numériques. - Manipulation de conteneurs (manipulation, recherche de valeurs...). - Paramétrer les algorithmes génériques par des objets " fonction ". - Les " adapteurs " et la modification du comportement d'un composant. - La STL et les traitements sur les flux (fichiers, mémoire...). - Principe du RAII : les pointeurs automatiques et la classe auto_ptr. - Les exceptions standard de la STL. Travaux pratiques Implémentation des relations avec les collections de la STL. Utilisation d'algorithmes standard quelconques. 7) Les nouveautés C++11 de la librairie standard - Evolution historique : Boost --> TR1 --> C++11. - Les nouveaux conteneurs : array, forward_list, unordered_set, unordered_map. - La classe tuple. - Les pointeurs intelligents (smart pointer) : shared_ptr, weak_ptr, unique_ptr. - Les nouveaux foncteurs et binders. - Introduction à la gestion des threads. - Les expressions régulières. Travaux pratiques Mise en œuvre de la robustesse avec les smart pointers. Utilisation d'expressions régulières. 8) BOOST - La Pointer Container Library (destruction des données pointées d'un conteneur). - Les structures de données boost::any et boost::variant. - Programmation événementielle (connexions et signaux). - Gestion des processus, mécanismes de communication interprocessus et mémoire partagée. Travaux pratiques Amélioration de l'implémentation de l'étude de cas par l'utilisation la Pointer Container Library. 9) Utilisation avancée de l'héritage - Héritage versus embarquement. Héritage privé. Héritage protégé. - Exportation de membres cachés avec la Clause Using. - Héritage multiple et gestion des collisions de membres. - Héritage en diamant. Héritage virtuel et dynamic_cast. - Principes de conception : substitution de Liskov, principe d'ouverture/fermeture, inversion des dépendances. - Règles d'implémentation des interfaces en C++. Travaux pratiques Combinaison de l'héritage multiple, privé et de l'exportation pour concevoir des classes robustes et hautement évolutives. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 54 Stage pratique de 3 jour(s) Réf : VEC Participants Développeurs C++ souhaitant connaître les nouveautés définies par le standard C+ +11. Pré-requis Bonnes connaissances du langage C++. Une expérience pratique de la programmation avec ce langage est recommandée. Prix 2017 : 1960€ HT Dates des sessions Paris 21 nov. 2016, 3 avr. 2017 19 juin 2017 C++11, mise à niveau pour développeur C++ > Développement logiciel > PHP, C, C++, autres langages Cette formation vous permettra d'assimiler les nouveautés introduites par le standard C++ 2011. Vous découvrirez les expressions lambda, exploiterez les possibilités de la programmation fonctionnelle, maîtriserez la gestion de la mémoire et exploiterez les autres nouveautés de la bibliothèque standard C++. OBJECTIFS PEDAGOGIQUES Appréhender les nouveautés et les améliorations du langage C++11 Utiliser les lambda-expressions Exploiterez les possibilités de la programmation fonctionnelle Maîtriser les allocations-destructions d'objets Développer une application multi-threadée 1) L'avènement de C++11 2) Les améliorations du langage 3) Les modifications au niveau des classes 4) L'utilisation des threads 5) Autres nouveautés de la bibliothèque standard 6) La programmation fonctionnelle avec les lambda-expressions 7) La gestion mémoire et les conteneurs Travaux pratiques Des exercices pratiques de programmation permettront d'appréhender les différents concepts abordés. 1) L'avènement de C++11 - Les différentes normes C++98, C++03 et C++0x, C++11. - Les nouveautés de C++11 et les objectifs de cette norme. Le devenir de BOOST, STL. - La question de la compatibilité des codes anciens. - La disponibilité des outils de développement (compilateurs, débogueurs, IDE ...). Travaux pratiques Vérification de l'outillage à l'aide d'un code C++11 fourni. 2) Les améliorations du langage - Les énumérations fortement typées. - Les tableaux à taille fixe. - Le mot-clé auto pour simplifier le typage. - La boucle basée sur un intervalle. - Autres améliorations : templates à arguments variables, pointeur nul, littéraux... Travaux pratiques Mise en œuvre des améliorations. 3) Les modifications au niveau des classes - La délégation de constructeurs, les contraintes liées à l'héritage. - La nouvelle sémantique du déplacement et le constructeur par déplacement (move constructor). - Adaptation de la forme normale des classes aux nouveautés (move constructor). - Les directives =delete, =default. - Les initialiseurs de conteneurs et de données membres. Travaux pratiques Création de classes C++11. 4) L'utilisation des threads - Déclaration et exécution d'un thread. Attente de fin d'exécution avec join(). - La gestion des données locales à un thread, l'usage de volatile. - Récupérer un résultat avec future<> et async(). - Obtenir des informations sur les capacités d'exécution de la plateforme avec hardware_concurrency(). Travaux pratiques Multithreader un code séquentiel et mesurer le gain en termes de temps d'exécution. 5) Autres nouveautés de la bibliothèque standard - La gestion du temps avec le namespace chrono. - Le nouveau conteneur tuple. Travaux pratiques Mise en œuvre des nouveautés. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 55 6) La programmation fonctionnelle avec les lambda-expressions - Déclaration, typage, implémentation et utilisation. - L'intérêt d'auto avec les lambda-expressions. - La gestion des fermetures (closures), avec capture par valeur ou par référence des variables liées au contexte. Travaux pratiques Exercices de programmation fonctionnelle. 7) La gestion mémoire et les conteneurs - Les smart pointers : shared_ptr, weak_ptr, unique_ptr, auto_ptr. Usage conjoint avec la STL. Travaux pratiques Mise en œuvre de la gestion mémoire C++11. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 56 Stage pratique de 2 jour(s) Réf : TDE Participants Ce cours s'adresse aux développeurs Java et C# souhaitant acquérir des connaissances spécifiques au développement C++. Pré-requis Maîtrise de C# ou de Java ainsi que des concepts de programmation orientée objet. C++, mise à niveau pour les développeurs C# et Java > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Windows 8 a relancé l'intérêt du langage C++ auprès de développeurs pratiquant le C# et Java. Sur la base de vos connaissances objets, ce cours vous assurera une transition douce vers le C++ 11. Vous apprendrez comment C++ et sa librairie standard permettent d'écrire du code efficace et robuste pour vos applications. 1) Rappel des concepts de base du développement C++ 2) Présentation des concepts C++ avancés 3) Librairie standard : la BCL de C++ 4) Syntaxe C++ avancée 5) C++ et l'interopérabilité 1) Rappel des concepts de base du développement C++ - Les différents fichiers sources (.h, .cpp...). - Linkage et compilation de code écrit en C++. - Ecriture de classes et structures : la syntaxe de base. - Réutilisation de composants déjà compilés : .lib, .dll, .h etc. Travaux pratiques Création d'une solution multi-projets en C++, avec linkage statique et dynamique. 2) Présentation des concepts C++ avancés - Instanciation "statique" versus instanciation "dynamique" d'objets. - Les différents types de constructeurs (par défaut, par copie...). - Gestion de la mémoire sans garbage collector (manuellement ou en utilisant les smart pointers de la librairie standard). - Héritage multiple : cas pratiques et pièges à éviter. - Les Templates. - Orientation objet et comparaison avec C#. Travaux pratiques Atelier de manipulation des smart pointers de la librairie standard. 3) Librairie standard : la BCL de C++ - Représentations mémoires possibles d'une chaîne de caractère et manipulation avec std::string et std::wstring. - Introduction à la stl (standard template library). - Containers et itérateurs, les collections C++. Travaux pratiques Atelier de manipulation de chaînes de caractères et de collections en C++. 4) Syntaxe C++ avancée - Inférence de types et mot-clef automatique. - Orientation fonctionnelle du langage : Lambdas, Functors... et utilisation avec la stl. - Asynchronisme et parallélisation avec C++ 11. - Utilisation d'objets COM Microsoft, avec et sans smart pointers. Travaux pratiques Exercice d'introduction à la parallel platform library, et manipulation d'expressions Lambda. Cas pratique de consommation d'objets COM, illustration avec Direct 2D. 5) C++ et l'interopérabilité - Publication d'objets COM Windows réutilisables. - Interopérabilité avec .Net sur le Desktop : C++ CLI. - Interopérabilité avec .Net et JavaScript dans les applications Metro : C++ / CX. Travaux pratiques Création d'une application métro hybride C# / Xaml + C++ / Direct 2D. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 57 Stage pratique de 5 jour(s) Réf : CQT Participants Développeurs et chefs de projets. Pré-requis Bonnes connaissances du langage C++. Connaissances de base en XML. Expérience requise en développement C ++. Prix 2017 : 2610€ HT Dates des sessions Paris 24 oct. 2016, 19 déc. 2016 20 mar. 2017, 29 mai 2017 28 aoû. 2017 C++, développement d'applications graphiques en QT > Développement logiciel > PHP, C, C++, autres langages QT est un framework orienté objet qui offre des composants d'interface graphique (widgets), d'accès aux données, de connexions réseaux, etc. Cette formation vous apprendra à identifier les éléments importants d'un projet QT et les différents composants graphiques proposés, et à les utiliser avec le XML. OBJECTIFS PEDAGOGIQUES Développer des applications graphiques avec le Framework QT Découvrir les différents types de projets et leur structuration Maîtriser les différents composants graphiques et leurs interactions Comprendre et implémenter le système de plugin de QT 1) Présentation du langage QT 2) Les différents types de projets 3) Les éléments importants d'un projet 4) Les différents composants graphiques 5) La gestion des événements 6) Le système de plug-in de QT 7) Aller plus loin avec QT 1) Présentation du langage QT - Historique du langage. - Les différentes possibilités d'utilisation. - Les autres librairies graphiques existantes. 2) Les différents types de projets - Présentation des différents types de projets avec QT. - Présentation de QT Creator. - La structure de base d'une application à base d'IHM. Exercice Création d'une première application QT. 3) Les éléments importants d'un projet - Fichiers pro, de conception graphique (ui). - Les fichiers de gestion d'internationalisation (ts et qm). - Les types de bases du langage (qint, qfloat...). - La compilation avec qmake. - La classe QObject. - Présentation du modèle MVC. - Le modèle MVC dans QT. Exercice Etude d'un fichier projet pour la mise en place de l'application. 4) Les différents composants graphiques - Les composants de base de l'IHM (QMainWindow, QFrame, QLabel...). - La gestion du positionnement des composants. - Les boîtes de dialogue (QDialog). - Les menus (QMenu). - Modèles prédéfinis et personnalisés. - Les outils de conception visuelle de QT (QT Designer...). Exercice Mise en place de la structure de l'application. 5) La gestion des événements - Notions de signal et de slot. - Déclaration de signaux et de slots. - Installer des filtres d'événement. - Accéder à l'application pendant un traitement lourd (timer et hasPendingEvents). Exercice Ajout de la gestion des événements à l'application. 6) Le système de plug-in de QT - Comprendre ce que sont les plug-ins avec QT. - Les différentes classes de plug-in (QStylePlugin...). - Les éléments nécessaires à la mise en place d'un plug-in pour QT. - Mise au point d'application gérant des plug-ins. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 58 Exercice Mise au point d'un plug-in simple. 7) Aller plus loin avec QT - Utilisation de XML avec QT. Rappel sur XML, les parsers DOM et SAX. Parsing de documents XML en utilisant QT. - L'internationalisation. Rappel sur Unicode. L'objet QTranslator. L'application QT Linguist. - Applications multiplateformes. QT Mobility. Exercice Utilisation d'un fichier XML pour stocker les données de l'application. Internationalisation de l'application. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 59 Stage pratique de 3 jour(s) Réf : MUC Participants Développeurs, architectes logiciels, chefs de projet. Pré-requis Bonnes connaissances de C ou de C++. Connaissances de base des concepts liés aux applications Multicore. C/C++, programmer vos applications en Multicore > Développement logiciel > PHP, C, C++, autres langages Vous découvrirez les architectures Multicore et leur programmation, les techniques de mise en œuvre d'une approche multithread ou multiprocessus et les langages dédiés à la programmation parallèle. Vous étudierez également les contraintes en matière de synchronisation d'accès aux données et les précautions à prendre. OBJECTIFS PEDAGOGIQUES Maîtriser les enjeux de la programmation Multicore Concevoir et développer des applications à base de threads et de processus Maîtriser les modèles de programmation parallèle et les librairies disponibles Déboguer et profiler des applications Multicore Prix 2017 : 1880€ HT Dates des sessions Paris 28 nov. 2016, 6 mar. 2017 29 mai 2017 1) Introduction 2) Modélisation des applications 3) Threads 4) Processus 5) La programmation parallèle 6) Synthèse et conclusion Travaux pratiques Les travaux pratiques seront réalisés en C/C++ sous Visual Studio en environnement Windows. 1) Introduction - Enjeux de la programmation Multicore. - Tableau des technologies utilisables : processus, thread et parallélisme. - Description du fonctionnement d'un processeur. - Architecture en "Hyperthreading". - Architectures des processeurs INTEL et AMD. - Architectures NVidia et API. - Architecture en mémoire partagée vs mémoire distribuée. 2) Modélisation des applications - Importance des aspects modélisation. - Patterns de mise en parallèle des traitements. - Utilisation des mécanismes asynchrones. - Développer une nouvelle application : précautions et modélisation. Eviter les "singletons". - Modifier une application existante en Multicore. - Choix d'architecture : un compromis synchronisation et performance. Choix multiprocessus/multithreads. 3) Threads - Apport des threads dans une application industrielle. - Ordonnancement des threads. - Gestion des stacks et "call stack" dans les threads. - Débogueurs multithreads. - Gestion des objets de synchronisation : sections critiques, Mutex et Sémaphores. - Développer "Thread safe". - APIs de threads TBB, Clik++, C++11, boost threads, pthreads. Travaux pratiques Threads et synchronisation en C/C++. 4) Processus - Espaces d'adressage des processus, organisation. - Critères de choix d'une approche multiprocessus. - Techniques de communication interprocessus (IPC). - Outils de debugging multiprocessus. - Avantage et inconvénients des techniques multiprocessus. Travaux pratiques Gestion de traitements asynchrones avec l'API C/C++. 5) La programmation parallèle - Apport et objectifs de la programmation parallèle. - La librairie « OpenMP » C++ (programmation mémoire partagée). - La librairie « OpenMPI » (programmation mémoire distribuée). - Utiliser les GPU des cartes graphiques pour le calcul. - Kits de NVidia (CUDA) et ATI. - La librairie « OpenAcc » pour la programmation GPU. - La librairie « OpenCL » pour la programmation parallèle CPU et GPU. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 60 Travaux pratiques Paralléliser des algorithmes avec « OpenMP » en C++. Utilisation de l'API OpenCL. 6) Synthèse et conclusion - Conclusion des techniques étudiées. - Avenir du C++ avec le multicore. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 61 Stage pratique de 2 jour(s) Réf : CDU Participants Concepteurs et développeurs d'applications en C/C++, architectes logiciels. Pré-requis Bonnes connaissances du langage C/C++ et des threads, expérience requise. Connaissances de base du C ++11. Prix 2017 : 1440€ HT Dates des sessions Paris 1 déc. 2016, 23 mar. 2017 22 juin 2017 C++, programmer avec CUDA sous Visual Studio utiliser le GPU pour améliorer les performances New > Développement logiciel > PHP, C, C++, autres langages Cette formation vous propose de découvrir, d'évaluer et de manipuler le SDK CUDA de la société NVIDIA, leader en matière d'utilisation du GPU, pour améliorer les performances du parallélisme de données. Vous acquerrez toutes les connaissances nécessaires à la mise en œuvre de CUDA. OBJECTIFS PEDAGOGIQUES Comprendre l'intérêt de l'utilisation du GPU en tant que ressource de calcul indépendante Utiliser le GPU avec CUDA dans l'environnement de Visual Studio Assurer le lien entre les threads du C++11 et l'utilisation du GPU Vérifier l'intérêt dans le cadre d'un projet complet 1) Introduction 2) Installation de CUDA 3) La mise en oeuvre de base 4) L'utilisation des différentes options de mémoire de CUDA 5) Les autres utilisations de CUDA 6) Conclusion Méthodes pédagogiques Exposés théoriques suivis de relecture de code puis de mise en œuvre sur une application de test. Travaux pratiques Développement d'une application de test, évaluation des différentes solutions proposées et comparaison avec des traitements équivalents sur le CPU. 1) Introduction - Présentation de l'utilisation du GPU comparée au CPU. - Le SDK CUDA de la société NVIDIA. - Les alternatives et compléments à CUDA. Démonstration Présentation de l'application de test et évaluation des résultats sur le CPU. 2) Installation de CUDA - Installation du driver spécifique et du SDK de CUDA. - Installation de NSIGHT, l'environnement spécifique de CUDA sous Visual Studio. - Exploration des exemples d'application. - Récupération des capacités des cartes graphiques installées. Travaux pratiques Installation de CUDA, création d'un projet et validation de l'installation. 3) La mise en oeuvre de base - Les fondamentaux de l'exécution d'une fonction kernel. - La création d'une fonction kernel. - L'appel d'une fonction kernel. - Les transferts de mémoire entre le host et le GPU. - L'exécution asynchrone d'une séquence de code GPU. - Le débogage du code exécuté sur le GPU. Travaux pratiques Ajout d'une séquence de code à exécuter sur le GPU à l'application de test, comparaison des résultats avec l'existant en C++11. Utilisation du débogueur de NSIGHT. 4) L'utilisation des différentes options de mémoire de CUDA - La mémoire partagée à l'intérieur d'un bloc de threads, les différentes options. - L'optimisation entre la mémoire consacrée aux données et la taille du code à exécuter. - Les allocations mappées entre la mémoire du host et la mémoire de la carte graphique. - L'utilisation de la mémoire portable entre le host et plusieurs cartes graphiques. Travaux pratiques Manipulation des différentes options dans l'application de test. Recherche de la meilleure solution selon un cas étudié. 5) Les autres utilisations de CUDA ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 62 - L'utilisation des Streams, exécution en parallèle sur différentes cartes graphiques. - L'utilisation de CUDA en C++ avec Thrust. - Les alternatives ou compléments à CUDA comme le C++ AMP, OpenCL, OpenAPP. Etude de cas Exploration des solutions complémentaires et alternatives, comparaison à l'aide de l'application de test. 6) Conclusion - Le champ d'application de l'utilisation du GPU comme alternative au CPU. - Les bonnes pratiques. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 63 Stage pratique de 5 jour(s) Réf : VB6 Participants Développeurs, concepteurs d'applications. Les participants souhaitant aborder le VBA pour le développement d'applications liées au Pack Office doivent se diriger vers un autre stage. Pré-requis Connaissances de base en programmation. Expérience souhaitable en développement logiciel. Prix 2017 : 2300€ HT Dates des sessions Paris 17 oct. 2016, 21 nov. 2016 19 déc. 2016, 6 fév. 2017 10 avr. 2017, 12 juin 2017 28 aoû. 2017 Aix 21 nov. 2016 Bordeaux 14 nov. 2016 Bruxelles 19 déc. 2016, 20 mar. 2017 19 juin 2017 Geneve 19 déc. 2016, 20 mar. 2017 19 juin 2017 Grenoble 21 nov. 2016 Lille 21 nov. 2016 Luxembourg 19 déc. 2016, 20 mar. 2017 19 juin 2017 Lyon 21 nov. 2016 Montpellier 14 nov. 2016 Nantes 14 nov. 2016 Rennes 14 nov. 2016 Sophia-antipolis 21 nov. 2016 Strasbourg 21 nov. 2016 Toulouse 14 nov. 2016 Développer en Visual Basic Best > Développement logiciel > PHP, C, C++, autres langages Ce stage vous permettra de maîtriser pleinement les fonctionnalités et les capacités de Visual Basic. Tous les aspects essentiels du langage seront abordés, y compris la programmation objet, l'interaction avec les bases de données et les Active X Data Objects. A l'issue de ce cours, vous serez à même de réaliser des applications professionnelles. OBJECTIFS PEDAGOGIQUES Maîtriser la plateforme de développement Visual Basic Utiliser les éléments de lexique et de syntaxe du langage Développer des interfaces utilisateurs Accéder à une base de données et manipuler des fichiers 1) Positionnement de Visual Basic (vb, vba, vbscript) 2) Améliorer la conception des applications avec la programmation objet 3) La plateforme de développement Visual Basic 4) Visual Basic, le langage 5) Fenêtres, menus et boîtes de dialogue 6) Les composants graphiques (contrôles) 7) La gestion des erreurs 8) L'accès aux données 9) Touche finale 1) Positionnement de Visual Basic (vb, vba, vbscript) - La construction d'interfaces utilisateur. - L'accès aux bases de données. - Utilisation et création de composants. - Le développement Internet/Intranet. 2) Améliorer la conception des applications avec la programmation objet - Classes et objets. - Les objets graphiques : formes, contrôles. - Propriétés, méthodes, événements. - La programmation événementielle. 3) La plateforme de développement Visual Basic - Les principes récurrents. - Fenêtres, barre de menus, barre d'outils. - Aide en ligne et compléments. - L'éditeur de code. - Etapes de création d'une application. - Les différents types de fichiers. Travaux pratiques Prise en main de l'interface, enregistrement et compilation. 4) Visual Basic, le langage - Les variables. - Types de données et conversions. - Portée et durée de vie des variables. - Tableaux et types de données utilisateurs. - Les constantes. - Les variables objets. - Les conventions de dénomination. - Procédures événementielles et générales. - Subroutines et fonctions. - Portée des procédures : les modules standard. - Le passage d'arguments. - Les fonctions de Visual Basic. - Les opérateurs. Les structures de contrôle. Travaux pratiques Création de procédures, passage d'arguments. Création d'une fonction de vérification des dates. 5) Fenêtres, menus et boîtes de dialogue - Principe des MDI (Multiple Document Interface), formes et contrôles. Formes modales. Formes prédéfinies. - Chargement et affichage. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 64 - Principaux événements, méthodes et propriétés. - Menus, popup menus. - Les fonctions msgbox et inputbox. Travaux pratiques Création de formes et d'un menu de présentation. Gestion des événements de chargement et déchargement des formes. 6) Les composants graphiques (contrôles) - Contrôles standard, contrôles Active X. - Saisie et affichage : label, text box, masked edit. - Les boutons : command, check box, option. - Les listes : list box, combo box. - Présentation : Tool Bar, Status Bar, Image List, Scroll Bar, Progress Bar. - Les boîtes de dialogue standard : common dialog. - La minuterie : timer. - Le Drag and Drop. Objet source et objet cible. Evénements souris. Propriétés de la source. Evénements sur la cible. Travaux pratiques Gestion d'un formulaire de saisie, contrôles de validité. Manipulation des listes. Lancement de procédures. Déplacement d'un contrôle sur une forme. Déplacement d'un élément d'une liste dans une autre liste. 7) La gestion des erreurs - Traitement des erreurs logiques : le débogage. - Les points d'arrêt. Les expressions espionnes. - Les fenêtres de débogage. - Mode pas à pas et procédures. - Traitement des erreurs d'exécution. - L'interception et les gestionnaires d'erreurs. - L'objet Err. Travaux pratiques Interception d'une erreur d'exécution. Prise en main du debugger. 8) L'accès aux données - Manipulation des fichiers. Accès séquentiel, direct, binaire. Ouverture, fermeture. Instructions de lecture/ écriture. - Architecture et objets des bases relationnelles. - Le langage SQL. Le Data Environment. - L'architecture client serveur. - Les fournisseurs d'accès : ODBC et OLE-DB. - Les objets d'accès aux données : ADO (Active X data access). - Les outils d'accès aux données. Data Environment. Data Control. Data Report. Data Form Designer. - Les contrôles dépendant des données. Data Grid, Hierarchical Flex Grid. Data List, Data Combo. Travaux pratiques Création et manipulation d'un fichier en accès séquentiel (enregistrements de taille variable). Utilisation des contrôles d'accès aux données. 9) Touche finale - Les fichiers de ressources. - Enregistrement des paramètres d'une application. - Générer un exécutable et le distribuer. - Optimisation du programme. Travaux pratiques Création et utilisation d'un fichier de ressources. Utilisation de la base de registre pour conserver des paramètres dynamiques. Déploiement d'une application. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 65 Stage pratique de 4 jour(s) Réf : VBE Participants Développeurs Visual Basic 6. Pré-requis Bonnes connaissances en Visual Basic 6 et en bases de données. Ou connaissances équivalentes à celles apportées par le stage "Développer en Visual Basic" (réf. VB6). Expérience souhaitable en développement VB6. Visual Basic, perfectionnement > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage de perfectionnement insiste sur les accès aux bases de données (ADO), la création de composants COM et la création d'applications Web dynamiques. 1) L'accès aux bases de données 2) La création des composants Com 3) Exemple : les contrôles Active X 4) Client-serveur et multitiers : Com+ 5) Visual Basic et le développement Internet 6) Se préparer à Visual Basic .NET 1) L'accès aux bases de données - Les fournisseurs d'accès : ODBC et OLE-DB. - Les objets d'accès aux données : ADO. - Data Environnement, Data Control. Data Grid... - Les objets ADO - Modèle objet. Connexion à une source de données. Commandes. Récupération de données : le Recordset. - Mise à jour, recherche, tri. - Intégrité des données : transactions, verrous. - Exécution des procédures stockées. Travaux pratiques Utilisation des outils d'accès aux données. Création d'un formulaire de saisie. Récupération de données via une procédure stockée. Gestion d'une transaction d'écriture. 2) La création des composants Com - Réutilisabilité, simplification, optimisation. - Les interfaces standard, choix du type de composant. - Création d'une application cliente. - Variables objet, instanciation et manipulation d'objets. Les modules de classe. - Définitions des propriétés, méthodes, événements. - Le déclenchement des erreurs. - COM et ADO : les composants liés aux données. - Les collections. La création d'interfaces. - Compilation et enregistrement des composants. Travaux pratiques Création et test de composants : un COM Dll de services bancaires, un de connexion à une base de données avec ADO. 3) Exemple : les contrôles Active X - Création. Propriétés, méthodes, événements. - Création d'un contrôle dépendant des données. - Création d'un contrôle fournisseur de données. Travaux pratiques Création d'un contrôle Active X de saisie des dates. Création d'un contrôle Active X fournisseur de données avec ADO. 4) Client-serveur et multitiers : Com+ - Approche. Encapsulation des objets ADO. COM+ et MTS. Transaction multi-objets : le " double commit ". - Optimisation des ressources. COM+ et la sécurité. Travaux pratiques Gestion d'une transaction en " double commit ". 5) Visual Basic et le développement Internet - Développements côté serveur et côté client. - Le contrôle WebBrowser. Documents Active X. Visual Basic et Vbscript. DHTML. COM et ASP, COM et ADO. Travaux pratiques Création d'un navigateur sur une forme Visual Basic. Création d'un projet Document Active X s'exécutant dans IE. 6) Se préparer à Visual Basic .NET - La plateforme .NET, architecture. Le VB .NET. - Visual Studio.NET, ADO.NET. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 66 Stage pratique de 3 jour(s) Réf : PRL Participants Informaticiens concernés par des procédures d'exploitation en environnements Unix, Linux ou Windows. Pré-requis Connaissances de base de la programmation et d'un système d'exploitation (Windows ou Linux/Unix). Prix 2017 : 1880€ HT Dates des sessions Langage Perl scripts système Unix/Linux/Windows Best > Développement logiciel > PHP, C, C++, autres langages Ce stage vous apprendra à programmer ou maintenir des procédures d'exploitation écrites en Perl. Il permettra de maîtriser le langage lui-même mais aussi de découvrir la "philosophie Perl" avec notamment le recours à un grand nombre de modules permettant d'élargir quasiment à l'infini ses possibilités. OBJECTIFS PEDAGOGIQUES Maîtriser la syntaxe du langage PERL Mettre en œuvre des expressions régulières Gérer des fichiers et des répertoires Interagir avec le système d'exploitation Exploiter les données d'une base de données relationnelle Ecrire des scripts Perl dans un contexte Web Paris 24 oct. 2016, 21 nov. 2016 19 déc. 2016, 16 jan. 2017 20 fév. 2017, 20 mar. 2017 24 avr. 2017, 22 mai 2017 12 juin 2017, 10 juil. 2017 21 aoû. 2017 1) Présentation 2) L'essentiel du langage 3) Expressions régulières 4) Fonctions, procédures, modules Aix 12 déc. 2016, 28 mar. 2017 12 juin 2017 Bordeaux 5 déc. 2016, 13 mar. 2017 19 juin 2017 Bruxelles 5 déc. 2016, 20 mar. 2017 19 juin 2017 Geneve 5 déc. 2016, 20 mar. 2017 19 juin 2017 Grenoble 12 déc. 2016, 13 mar. 2017 19 juin 2017 Lille 12 déc. 2016, 28 mar. 2017 12 juin 2017 Luxembourg 5 déc. 2016, 20 mar. 2017 19 juin 2017 Lyon 12 déc. 2016, 13 mar. 2017 19 juin 2017 Montpellier 5 déc. 2016, 28 mar. 2017 12 juin 2017 Nantes 5 déc. 2016, 28 mar. 2017 12 juin 2017 Rennes 5 déc. 2016, 28 mar. 2017 12 juin 2017 Sophia-antipolis 5) Gestion des fichiers et des répertoires 6) Interactions avec le système d'exploitation 7) Aspects avancés, bases de données, implémentation objet 8) Scripts Perl dans un contexte Web, module CGI 1) Présentation - Historique du langage. - Perl, pour quel usage ? - Caractéristiques du langage Perl. - Les différentes distributions et versions. - La documentation officielle. - Installation et première exécution d'un programme Perl. - Fichiers sources, extension et interprétation. - Les outils pour utiliser Perl. Travaux pratiques Installation de l'interpréteur Perl. 2) L'essentiel du langage - Structure d'un programme Perl, en-tête de script. - Conventions de codage et règles de nommage. - Ajout de commentaires. - Les chaînes de caractères, interprétation de codes. - Les variables, nommage et typage. Portée des variables. - Les scalaires. - Les opérateurs : calcul, incrément, affectation, comparaison... - Les tableaux, initialisation, affichage du contenu. - Les tableaux associatifs (hash table), les fonctions keys et values. - Les références mémoires. - Les variables systèmes. - La notion de blocs. - Les structures de contrôle conditionnelles : if, if... else, if... elsif... else. - Les structures de contrôle itératives : while, for, until, foreach. - Les flux entrées/sorties standard (stdin, stdout, stderr). Travaux pratiques Manipulation du langage à travers l'écriture de différents programmes. 12 déc. 2016, 28 mar. 2017 12 juin 2017 3) Expressions régulières Strasbourg - Les cas d'utilisation des expressions. - Panorama des différents motifs : les méta-caractères, les quantificateurs, les caractères spéciaux. - Le Pattern Matching. - Le Pattern Substitute. - Options de la ligne de commande pour l'interpréteur. - Programme tiers : sed, awk... - Perl utilisé comme filtre supplémentaire. 12 déc. 2016, 28 mar. 2017 12 juin 2017 Toulouse 5 déc. 2016, 13 mar. 2017 19 juin 2017 Travaux pratiques Mise en oeuvre d'expressions régulières. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 67 4) Fonctions, procédures, modules - Définition des fonctions. Différence entre fonctions et procédures. - La déclaration d'une fonction, le mécanisme d'appel, le passage d'arguments et la récupération des résultats. - Visibilité des variables, l'opérateur my. - Utilisation des références. - Les fonctions intégrées dans Perl : chomp, chop, length... - Notion de "package" et de module. - Modules de la distribution standard. - Modules du CPAN, recensement, documentation, sites de ressources. - Installation de modules. - Utilisation d'un module "classique" et d'un module "Orienté Objet". Les fonctions require et use. - Fabrication d'un module. - Documenter les modules créés. Travaux pratiques Ecriture de fonctions. Intégration d'un module dans un développement. Création d'un module. 5) Gestion des fichiers et des répertoires - Notion de filehandle. - Gestion des fichiers : ouverture, lecture, écriture, fermeture... - Informations sur les fichiers (propriétaire, taille, droits...), la fonction stat. - L'opérateur diamant. - Gestion des répertoires : changement, parcours, création, suppression... - Gestion des erreurs sur manipulation des fichiers et des répertoires. Travaux pratiques Lecture/écriture dans un fichier. Manipulation des répertoires. 6) Interactions avec le système d'exploitation - Accès aux informations du système d'exploitation. - Les commandes agissant sur le système : mkdir, rmdir, chown, chroot, chmod, ... - Gestion des processus. - Création de processus fils : system, exec. - Les quotes inverses. - Interactions avec le système Windows (modules Win32 et Win32API). Travaux pratiques Création de processus fils. 7) Aspects avancés, bases de données, implémentation objet - Tris personnalisés. - Traitements complémentaires sur les chaînes de caractères. - Structures de données élaborées à l'aide des références anonymes. - Accès aux bases de données à l'aide du module DBI. - Etablissement et configuration d'une connexion, requêtage et récupération des résultats. - Création de la structure d'une classe et instanciation : paquetage, sous-programme et référence. - Constructeur et destructeur d'objets. - Invocation des méthodes d'une classe. - Le ramasse-miettes. Travaux pratiques Exploitation des données d'une base de données relationnelle. 8) Scripts Perl dans un contexte Web, module CGI - Protocole HTTP, serveur Web, schéma fonctionnel CGI. - Le module CGI. - Variables d'environnement, méthodes GET et POST. - Génération des éléments HTML du formulaire avec Perl. - Traitement des formulaires, exploitation des résultats. Travaux pratiques Ecriture d'un script CGI en Perl. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 68 Stage pratique de 2 jour(s) Réf : LAP Participants Informaticiens concernés par des procédures d'exploitation en environnements Unix, Linux ou Windows. Pré-requis Bonnes connaissances du langage Perl. Ou connaissances équivalentes à celles apportées par le stage PRL " Langage Perl ". Prix 2016 : 1410€ HT Dates des sessions Paris 7 nov. 2016 Langage Perl, programmation avancée > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage vous apprendra à maintenir efficacement vos programmes ainsi qu'à en améliorer la performance. Vous maîtriserez les principales primitives du noyau, la création d'interfaces graphiques et de masques de saisie. Vous découvrirez enfin l'approche plus moderne de la programmation Objet. 1) Programmation système 2) Perl et l'objet 3) Interface graphique : de Perl/Tk à GTK 4) Écrire du nouveau code en utilisant GTK 5) Evolutions 1) Programmation système - Rappel des principes des processus : fork et exec. - Rappel des principes de la gestion des signaux. - Envoyer un signal à des processus : la fonction kill - Gérer les signaux : le pragma sigtrap, installer un gestionnaire de signal. - Programmation des sockets et services de IO::Socket à Net::Server. - Présentation de la programmation des threads. Travaux pratiques Ecriture de programmes Perl pour manipuler les fonctions systèmes. 2) Perl et l'objet - Quelques définitions : programmation orientée objet, classe, instance, constructeur, destructeur, héritage ... - Mise en oeuvre de l'objet : le paquetage pour la classe, le hachage pour les attributs, les fonctions pour les méthodes. - La création d'instance : la bénédiction (bless) de la référence de l'objet. - Programmer un constructeur. - Agir quand l'objet est détruit, la méthode DESTROY. - L'héritage : le tableau @ISA et la classe UNIVERSAL. - La surcharge de méthode, l'utilisation de SUPER. - Abstraction : l'avenir de l'objet dans Perl, de Class::Std et Class::Accessor à Moose. Travaux pratiques Programmation de classes. Mise en oeuvre des concepts objets (héritage, surcharge...). 3) Interface graphique : de Perl/Tk à GTK - Comprendre et maintenir du code écrit en Perl/Tk. - Présentation et installation de Perl/Tk. - Gestionnaire de géométrie : Pack, Grid, Place. - Les Widgets par famille. - Les boutons : Button, Checkbutton, Radiobutton. - Libellé et zone de saisie : Label, Entry. - Ascenseur, liste, menu et saisie de texte : Scrollbar, Listbox, Menubutton, Optionmenu, Text. - Les conteneurs : Canvas, Frame, Toplevel. Travaux pratiques Création d'une application avec interface graphique en Perl/Tk et gestion événementielle. 4) Écrire du nouveau code en utilisant GTK - Lien entre Pert et GTK : installer GTK et ses bibliothèques. - Widget : hiérarchie, création, accélérateurs clavier, conteneurs de bases, ... - Widget : signaux et événements. - Les types de boutons : Toggle (interrupteurs), radio, ... Travaux pratiques Manipulation de différents composants : boutons, boite de boutons, Widget cadre, ... 5) Evolutions - Fonctionnalités apportées par Perl 5.10, 5.12, 5.14. - Perl 6 : un nouveau langage. - Nouveautés : les sigils, typage statique et dynamique, paramètres formels des fonctions. - Un véritable langage objet. - Les jonctions et l'évaluation paresseuse. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 69 Stage pratique de 5 jour(s) Réf : PYT Participants Développeurs, ingénieurs, chefs de projets proches du développement. Pré-requis Connaissances de base en programmation. Python, programmation objet Best > Développement logiciel > PHP, C, C++, autres langages Python est un langage de programmation multiplateforme permettant le développement d'une grande variété d'applications. Ce stage vous permettra d'en maîtriser sa syntaxe, ses principaux mécanismes et son paradigme objet. Vous découvrirez les principales fonctionnalités de la bibliothèque de modules standards, implémenterez des interfaces graphiques, accéderez aux données d'une base tout en appliquant sur la chaîne de développement les outils permettant de tester et d'évaluer la qualité du code produit. OBJECTIFS PEDAGOGIQUES Prix 2017 : 2610€ HT Dates des sessions Paris 10 oct. 2016, 14 nov. 2016 12 déc. 2016, 9 jan. 2017 6 fév. 2017, 6 mar. 2017 10 avr. 2017, 29 mai 2017 12 juin 2017, 17 juil. 2017 21 aoû. 2017 Aix Maîtriser la syntaxe du langage Python Acquérir les notions essentielles de la programmation objet Connaître et mettre en œuvre les différents modules Python Concevoir des interfaces graphiques Mettre en œuvre les outils de test et d'évaluation de la qualité d'un programme Python 1) Syntaxe du langage Python 2) Approche Orientée Objet 3) Programmation Objet en Python 4) Utilisation StdLib 5) Outils QA 6) Création IHM TkInter 7) Interfaçage Python/C 8) Conclusion 5 déc. 2016, 20 mar. 2017 12 juin 2017 Angers 5 déc. 2016, 6 mar. 2017 19 juin 2017 1) Syntaxe du langage Python Grenoble - Les identifiants et les références. Les conventions de codage et les règles de nommage. - Les blocs, les commentaires. - Les types de données disponibles. - Les variables, l'affichage formaté, la portée locale et globale. - La manipulation des types numériques, la manipulation de chaînes de caractères. - La manipulation des tableaux dynamiques (liste), des tableaux statiques (tuple) et des dictionnaires. - L'utilisation des fichiers. - La structure conditionnelle if/elif/else. - Les opérateurs logiques et les opérateurs de comparaison. - Les boucles d'itérations while et for. Interruption d'itérations break/continue. - La fonction range. - L'écriture et la documentation de fonctions. - Les Lambda expression. - Les générateurs. - La structuration du code en modules. 5 déc. 2016, 6 mar. 2017 19 juin 2017 Travaux pratiques Installation et prise en main de l'interpréteur Python. Bordeaux 19 déc. 2016, 6 mar. 2017 19 juin 2017 Bruxelles 12 déc. 2016, 13 mar. 2017 12 juin 2017 Dijon 5 déc. 2016, 6 mar. 2017 19 juin 2017 Geneve 12 déc. 2016, 13 mar. 2017 12 juin 2017 Lille 5 déc. 2016, 20 mar. 2017 12 juin 2017 Luxembourg 12 déc. 2016, 13 mar. 2017 12 juin 2017 Lyon 5 déc. 2016, 6 mar. 2017 19 juin 2017 Montpellier 19 déc. 2016, 20 mar. 2017 12 juin 2017 Nancy 5 déc. 2016, 6 mar. 2017 19 juin 2017 Nantes 19 déc. 2016, 20 mar. 2017 12 juin 2017 2) Approche Orientée Objet - Les principes du paradigme Objet. - La définition d'un objet (état, comportement, identité). - La notion de classe, d'attributs et de méthodes. - L'encapsulation des données. - La communication entre les objets. - L'héritage, transmission des caractéristiques d'une classe. - La notion de polymorphisme. - Association entre classes. - Les interfaces. - Présentation d'UML. - Les diagrammes de classes, de séquences, d'activités... - Notion de modèle de conception (Design Pattern). Travaux pratiques Modélisation en UML d'un cas d'étude simple. 3) Programmation Objet en Python Orleans 5 déc. 2016, 6 mar. 2017 19 juin 2017 Rennes 19 déc. 2016, 20 mar. 2017 12 juin 2017 Rouen 5 déc. 2016, 6 mar. 2017 19 juin 2017 - Les particularités du modèle objet de Python. - L'écriture de classes et leur instanciation. - Les constructeurs et les destructeurs. - La protection d'accès des attributs et des méthodes. - La nécessité du paramètre Self. - L'héritage simple, l'héritage multiple, le polymorphisme. - Les notions de visibilités. - Les méthodes spéciales. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 70 Sophia-antipolis 5 déc. 2016, 20 mar. 2017 12 juin 2017 Strasbourg 5 déc. 2016, 20 mar. 2017 12 juin 2017 Toulouse 19 déc. 2016, 6 mar. 2017 19 juin 2017 Tours 5 déc. 2016, 6 mar. 2017 19 juin 2017 - L'introspection. - L'implémentation des interfaces. - Les bonnes pratiques et les modèles de conception courants. - L'utilisation du mécanisme d'exception pour la gestion des erreurs. Travaux pratiques Pratique des différents concepts objet au travers de l'implantation de l'étude de cas. 4) Utilisation StdLib - Les arguments passés sur la ligne de commande. - L'utilisation du moteur d'expressions régulières Python avec le module "re", les caractères spéciaux, les cardinalités. - La manipulation du système de fichiers. - Présentation de quelques modules importants de la bibliothèque standard : module "sys", "os", "os.path". - Empaquetage et installation d'une bibliothèque Python. - Les accès aux bases de données relationnelles, le fonctionnement de la DB API. Travaux pratiques Mise en oeuvre de modules Python : expressions régulières, accès à une base de données, 5) Outils QA - Les outils d'analyse statique de code (pylint, pychecker). - L'analyse des comptes rendus d'analyse (types de messages, avertissements, erreurs). - Extraction automatique de documentation. - Le débogueur de Python (exécution pas à pas et analyse post-mortem). - Le développement piloté par les tests. - Les modules de tests unitaires Python (Unittest...). - L'automatisation des tests, l'agrégation de tests. - Les tests de couverture de code, profiling. Travaux pratiques Utilisation des outils pylint et pychecker pour la vérification d'un code Python. Mise en oeuvre de tests unitaires. 6) Création IHM TkInter - Les principes de programmation des interfaces graphiques. - Présentation de la bibliothèque TkInter. - Les principaux conteneurs. - Présentation des widgets disponibles (Button, Radiobutton, Entry, Label, Listbox, Canvas, Menu, Scrollbar, Text...). - Le gestionnaire de fenêtres. - Le placement des composants, les différents layouts. - La gestion des événements, l'objet event. - Les applications multifenêtres. Travaux pratiques Conception d'une interface graphique avec la bibliothèque Tkinter. 7) Interfaçage Python/C - Présentation du module Ctypes. - Le chargement d'une librairie C. - Appel d'une fonction. - La réécriture d'une fonction Python en C avec l'API Python/C. - La création de modules C pour Python avec Pyrex. - L'interpréteur Python dans C. - L'utilisation du profileur de code. Travaux pratiques Appel de fonctions écrites en C depuis Python. Création de modules C pour Python avec Pyrex. 8) Conclusion - Analyse critique de Python. - L'évolution du langage. - Eléments de Webographie et de bibliographie. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 71 Stage pratique de 4 jour(s) Réf : PYA Participants Ingénieurs et développeurs. Pré-requis Bonnes connaissances en développement Python, ou connaissances équivalentes à celles apportées par les stages THO ou PYT. Expérience requise. Prix 2017 : 2440€ HT Dates des sessions Python, perfectionnement New > Développement logiciel > PHP, C, C++, autres langages Le langage Python s'impose aujourd'hui comme un socle technologique pour le développement de grands projets logiciels. Vous mettrez en œuvre, dans cette formation, les techniques avancées du langage Python ainsi que ses principales librairies afin de pouvoir répondre aux exigences qualité de ces projets. OBJECTIFS PEDAGOGIQUES Implémenter de manière rigoureuse des Design Patterns reconnus Utiliser les techniques avancées du langage Python : Context Manager, métaclasses, closures, fonctions avancées Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme Packager et déployer ses artefacts Python Exploiter des librairies contribuant au succès du langage : calcul scientifique, intelligence artificielle, XML, réseau Paris 7 nov. 2016, 7 mar. 2017 6 juin 2017 1) Rappels importants sur le langage 2) Fonctions avancées 3) Programmation Orientée Objet avancée 4) Déploiement et qualité 5) Le parallélisme : optimiser les performances de vos programmes 6) Les librairies contribuant au succès du langage Méthodes pédagogiques Apports théoriques illustrés par des exemples de code puis consolidés par la réalisation d'un mini-projet (70% de travaux pratiques). 1) Rappels importants sur le langage - Affectation par référence et types de données modifiables, non modifiables (mutable). - Passage d'arguments, valeurs par défaut et variables locales. - Variables de classe et d'instances. - Les slices et structures de données avancées. - L'introspection. - Eléments avancés des structures de contrôle : la clause else des instructions for, while, try/except. Travaux pratiques Optimisation : intersection de listes et calcul de complexité d'algorithmes. 2) Fonctions avancées - Utilisation avancée de décorateurs (de la génération à la consommation, pipeline de consommateurs). - Les décorateurs et Design Patterns. - Fermeture/closure. Travaux pratiques Chaînage de consommateurs de données. Abonnement à des événements via les décorateurs. 3) Programmation Orientée Objet avancée - Les propriétés (property). - Les itérateurs. - L'héritage multiple et ses travers. - Les Context Managers. - Les classes et méthodes abstraites (ABC). - Les métaclasses. Travaux pratiques Implémenter une métaclasse pour créer des classes de type singleton. 4) Déploiement et qualité - Installer des librairies tierces (pip, easy_install). - Le Python Package Index (PyPI). - Packager ses librairies (distutils, setuptools). - Déployer un environnement autonome (virtualenv et buildout). Travaux pratiques Packager une librairie et la déposer sur PypI. 5) Le parallélisme : optimiser les performances de vos programmes - Profilez vos programmes avec Timeit et cProfile. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 72 - Parallélisation : évitez le multithreading et foncez avec le multiprocessing. - Calcul distribué avec la librairie Celery. Travaux pratiques Répartition et consolidation (Map Reduce) de calculs avec Celery. 6) Les librairies contribuant au succès du langage - Calcul scientifique et statistiques avec Numpy, Scipy, Matplotlib et Pandas. - Intelligence artificielle et algorithmes d'apprentissage avec Scikit-learn. - Recherche d'informations dans des fichiers XML avec ElementTree. - Réseau : relay tcp avec Twisted et supervision SNMP avec PySNMP. Travaux pratiques Extraction d'informations dans des fichiers de log XML, filtres et statistiques sur les données collectées puis représentation à l'aide de graphiques des tendances des informations. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 73 Stage pratique de 4 jour(s) Réf : DJA Participants La formation est destinée aux développeurs souhaitant acquérir une connaissance approfondie des bases du framework Django. Pré-requis Connaissances des bases du langage Python et technologies Web (HTML, JavaScript...) Prix 2017 : 2440€ HT Ce cours fait l'objet d'un accompagnement vidéo Dates des sessions Paris 22 nov. 2016, 14 mar. 2017 9 mai 2017, 25 juil. 2017 Django, développement Web avec Python > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Django est un framework Web MVC (Modèle-Vue-Contrôleur) basé sur le langage Python. Ce stage vous apprendra à mettre en oeuvre ce framework et à utiliser avec efficacité ses différents modules dans le cadre du développement d'applications Web. 1) Introduction 2) L'accès aux données avec Django 3) Gestion des vues 4) Les templates 5) Gestion des formulaires 6) Fonctions avancées 1) Introduction - Rappel des principes de la POO. - Le Design Pattern MVC. - Présentation du framework Django. - Origine et historique. Objectifs et avantages. - Les composants de framework Django. Exercice Préparation de l'environnement. Installation de Python, Django, Serveur Apache, MySQL et Eclipse. Création d'un nouveau projet. 2) L'accès aux données avec Django - Le modèle ORM Django. - Les modèles Django : Model, Field, Table, Column, Primary Key... - Mapping des associations : OneToMany, ManyToOne, ManyToMany, OneToOne. - Stratégies de mapping de l'héritage : Meta Class, OneToOneField, ManyToManyField... - Accès aux données avec les QuerySets. Exercice Développer une couche d'accès aux données. Interfacer Django avec MySQL. 3) Gestion des vues - Vues simples ou fonctions vues. - Les classes HttpResponse, HttpRequest et QueryDict. - Configuration des URL : UrlConf. - Vues génériques. - Exemples de vues génériques : Redirects, Create, Update, Delete... Exercice Développer des vues dynamiques HTML avec Django. 4) Les templates - Le rôle des templates. - Création et chargement des templates. - Gestion des contextes. - Utilisation des tags et filtres personnalisés. - Réutilisation des templates : héritage entre templates. Exercice Développer un template pour faciliter la génération de la présentation. 5) Gestion des formulaires - Les avantages des formulaires Django. - Création des formulaires. - Les différents types de champs. - Validation des données d'un formulaire. - Gestion et personnalisation des messages d'erreurs. - Génération des formulaires à partir des modèles. Exercice Développer les formulaires associés aux opérations CRUD de l'atelier précédent. 6) Fonctions avancées - L'internationalisation. - L'authentification et la gestion des sessions. - Optimisation et caches. - Intégration d'Ajax. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 74 - L'interface d'administration. - Les tests unitaires. Exercice Intégrer Ajax à travers le framework JQuery. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 75 Stage pratique de 5 jour(s) Réf : DEV Participants Développeurs. Nouveaux utilisateurs de Windev. Pré-requis Connaissances de base en programmation et d'un environnement graphique. Expérience souhaitable en développement logiciel. Windev, développement d'applications Desktop > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Cette formation vous apportera la maîtrise de l'environnement Windev. Vous verrez en détail ses différents éditeurs et comment l'utiliser efficacement pour programmer vos applications, les connecter à des bases de données, concevoir leurs IHM au standard Windows, les tester, les packager et les déployer. 1) Présentation de l'environnement Windev 2) La base de données 3) L'interface homme/machine 4) Les états 5) Les dossiers 6) La programmation 7) L'installation 1) Présentation de l'environnement Windev - L'environnement Windows. L'éditeur de fenêtres. - L'éditeur de sources : rechercher, remplacer, couper, copier, coller, imprimer. Personnalisation de l'éditeur. - L'outil de description des fichiers. L'éditeur d'états. - La compilation, la mise en bibliothèque. - L'exécutable : programme, bibliothèque, DLL. - Les utilitaires : WDMAP, WDBACKUP, WDRESTOR, WDOUTIL..., le RAD. 2) La base de données - Le format HyperFileSQL. - L'outil de description des fichiers. - Génération de l'analyse, modifications automatiques, liaisons entre les fichiers. 3) L'interface homme/machine - Les projets, les menus, les fenêtres. - L'ergonomie, le menu système, la barre de titre, l'éditeur de styles (feuille de style), les groupes de champs. - Etude des différents types d'objets. Les tables. - L'intégration automatique des rubriques d'un fichier dans un écran, la création d'une fenêtre VISION+. 4) Les états - La description de l'éditeur. - Les différents modes création : état lié à un fichier, étiquettes, état libre, tris, filtres, ruptures. - Les différents types de blocs (début de document, haut de page, corps, bas de page, etc.). - Les différents types d'objets (champ, libellé...). 5) Les dossiers - Les fichiers de données et leur structure. - Le dictionnaire des rubriques. - Les sources des fenêtres : dessin de la fenêtre, détail des objets, source associée à l'objet. 6) La programmation - Le projet, les procédures, les fonctions. - Le W-Langage : fonctionnement de l'éditeur de sources, opérateurs et fonctions. - Tables mémoire et tables fichier. Timer et multitâche. - Gestion des liaisons série. - Le grapheur. - OLE Automation vers Excel. Le dialogue DDE vers Excel. - Aspect monoposte, multi-instance ou réseau. - Gestion des triggers. 7) L'installation - La création d'un programme exécutable. - La mise en bibliothèque des objets. - L'installation sur un autre poste. - Les DLL. - Maintenance de l'application réalisée. - L'outil d'installation. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 76 Stage pratique de 3 jour(s) Réf : WEB Participants Cette formation pratique s'adresse aux futurs développeurs WebDev souhaitant réaliser des sites dynamiques Internet ou Intranet. Pré-requis Connaissances de base du HTML et de la programmation. Webdev, développement Web > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage vous montrera comment réaliser un site web dynamique à l'aide de WebDev. Vous verrez comment utiliser les fonctions courantes de l'environnement logiciel, créer vos IHMs, utiliser des bases de données et déployer vos applications sur un serveur Web. 1) Concepts de base 2) Accès aux données 3) Le code 4) Gestion de l'IHM 5) Pages pour l'impression 6) Créer le dossier du site 7) Déploiement de l'application Travaux pratiques Prise en main de l'environnement, la bonne méthode de création d'un nouveau projet WebDev. 1) Concepts de base - Qu'est-ce qu'un site Web dynamique. - L'environnement de développement. - L'éditeur graphique. - L'éditeur de code. - Etapes de création d'un nouveau projet. 2) Accès aux données - Créer une base de données HYPERFILE. - Se connecter à une base de données SQL Server, MySQL ou Oracle. - Création de l'application à l'aide du RAD. - Ajouter, supprimer, modifier des données automatiquement. Travaux pratiques Réalisation d'une base de données catalogue.de produits 3) Le code - Le WDLANGAGE (Variables, procédure, fonctions, boucles...) - Code coté client. - Code côté serveur. - Accéder aux données par le code. Travaux pratiques Création de pages personnalisés. 4) Gestion de l'IHM - Apparence des pages. - Création et utilisation de modèles. - Les différents objets des pages. - Réalisation de menus. Travaux pratiques Réalisation d'un IHM via le RAD, et ajout de pages spécifiques. 5) Pages pour l'impression - L'éditeur d'état. - Les différents états (Lié aux données, libres ...). - Composition d'un état WEBDEV (entêtes, corps, pieds...). - Les objets à disposition (différents types de champs). - Les options d'impression. - Génération d'impression HTML et PDF. Travaux pratiques Génération d'état pour l'impression, au format HTML et PDF. 6) Créer le dossier du site - Importance de ce dossier. - Génération du dossier (pages, états, code sources). Travaux pratiques Bien organiser ses dossiers de projet, créer la documentation de l'application. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 77 7) Déploiement de l'application - Génération de l'application. - Génération de la procédure d'installation. - Déploiement. Travaux pratiques Créer le programme d'installation et installation d'un programme ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 78 Stage pratique de 5 jour(s) Réf : ONE Participants Développeurs iPhone/iPad. iPhone/iPad, développer des applications en Objective-C Best > Développement logiciel > PHP, C, C++, autres langages Bonnes connaissances d'un langage orienté objet (type Java, C++, Objective-C). A l'issue de cette formation, vous serez en mesure de développer des applications complexes en ObjectiveC pour iPhone et iPad. Vous apprendrez à utiliser l'environnement de développement intégré sur MacOs-X, XCode, le générateur d'interface, l'iPhone Simulator et le debugger intégré. Vous apprendrez à développer des interfaces graphiques ergonomiques et exploiterez les fonctionnalités de votre iPhone/iPad. Vous maîtriserez également les mécanismes d'accès au réseau et de persistance des données. Prix 2017 : 2610€ HT OBJECTIFS PEDAGOGIQUES Pré-requis Dates des sessions Paris 21 nov. 2016, 16 jan. 2017 6 mar. 2017, 15 mai 2017 17 juil. 2017 Aix 27 fév. 2017, 15 mai 2017 Bordeaux 6 fév. 2017, 3 avr. 2017 12 juin 2017 Bruxelles Maîtriser la syntaxe du langage Objective-C et l'environnement de développement iOS Développer les vues et les contrôleurs d'une application Accéder au réseau et invoquer des services Web Rest Gérer les gestures Lire et enregistrer des données Exploiter les fonctionnalités du terminal (géolocalisation, accéléromètre...) 1) Introduction 2) Introduction à Objective-C 2.0 3) Enregistrement au programme Apple 4) L'environnement de développement 5) Conception et ergonomie 6) Développement 7) Réseaux et web services 8) Lire et enregistrer des données 9) Introduction aux fonctions avancées 12 déc. 2016, 6 mar. 2017 19 juin 2017 Geneve 12 déc. 2016, 6 mar. 2017 19 juin 2017 Grenoble 6 fév. 2017, 3 avr. 2017 12 juin 2017 Lille 27 fév. 2017, 15 mai 2017 Luxembourg 12 déc. 2016, 6 mar. 2017 19 juin 2017 Lyon 6 fév. 2017, 3 avr. 2017 12 juin 2017 Montpellier 27 fév. 2017, 15 mai 2017 Nantes 27 fév. 2017, 15 mai 2017 Rennes 27 fév. 2017, 15 mai 2017 Sophia-antipolis 27 fév. 2017, 15 mai 2017 Strasbourg 1) Introduction - Types de terminaux. - Le programme développeur Apple. - Architecture d'une application iOS. - Outils et SDK. Travaux pratiques Prise en main de l'environnement de développement. 2) Introduction à Objective-C 2.0 - Origine du langage Objective-C. - Syntaxe de base. Notion de classe. - Les Controllers. - Identification des objets, constantes : le type id, la valeur nil. - Héritage. - Références dans l'arborescence. - Description d'une méthode Objective-C. - Initialisation de l'instance d'un objet. - Les protocoles et le principe de la délégation (les delegates). - Les sélecteurs. - Le framework Foundation (chaînes de caractères, listes, dictionnaires). - Le comptage de références. Exercice Ecriture de programme en Objective-C. Un exemple avec le Slider. Gestion de la mémoire. 27 fév. 2017, 15 mai 2017 Toulouse 6 fév. 2017, 3 avr. 2017 12 juin 2017 3) Enregistrement au programme Apple - Enregistrement (informations personnelles, bancaires, de développement). Provisioning. - Enregistrement d'un certificat. - Ajouter un périphérique, identifiant UDID. - Ajouter un AppID Identifiant d'application. 4) L'environnement de développement - Description de l'interface (XCode, Simulateur, Instruments, ...). - Installation du SDK Apple (téléchargement, installation, localisation). - Méthodologie de développement. - Création d'un projet sous XCode. Interface XCode. - Les fichiers initialement générés. - Cycle d'exécution de l'application. - Définition des propriétés de l'application et le fichier Info.plist. - L'interface Builder et ses composants. - Construction de l'application. - Modèle-Vue-Contrôleur (MVC). - Les actions (déclarations, liaisons à l'interface). ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 79 - Compilation et lien. Utilisation du simulateur. - Limitations du simulateur. - Mécanismes d'aide, de complétion et de debug. - Utilisation du debugger et de la console, les options de Debug #natives#, les problèmes généraux de compilation. Exercice Création d'une application et débogage. 5) Conception et ergonomie - Méthodologie. - Identifier les fonctions-clés de votre applicatif. - Choisir le design pattern. - Ebaucher le storyboard et une charte graphique. - Développement de l'interface et de l'application. - Tests et optimisation. - Publication sur l'AppStore (éléments nécessaires, signature, ...). - Liste des icônes nécessaires à la publication. Exercice Améliorer la conception et l'ergonomie d'une application. 6) Développement - Instancier un contrôleur de vues. - Dimensions de l'application. - Dimensions des éléments graphiques. - Les éléments de saisie simple. - Les controls simples : Segmented controls. Switches. Progress Views. WebViews. - Le Slider. - Les contrôleurs de navigation, d'images, de vues et de vues personnalisées. - Ajouter des icônes. - Les Frames. - Rotation et animation des vues. - Contenu de la barre de navigation. - Listes d'éléments. - Action sur les listes. - Utilisation du multimédia (son, vidéo). - Lancement de l'application, icône de lancement. Splash Screen. Ecran de lancement. Exercice Manipuler des éléments de base, des vues, des éléments de navigation, le TableView, des listes. Ajouter un contenu multimédia. 7) Réseaux et web services - Architecture des couches réseau dans iOS. - Utiliser des web services REST et JSON. - Les API et Framework d'accès au réseau (NSURL, NSURLConnection...). - Les notifications locales et réseaux. - Introduction au multithreading. - Exécuter des tâches de manière asynchrone. Exercice Accéder à des services web. Gérer l'asynchronisme. 8) Lire et enregistrer des données - Les méthodes de stockage. Ecrire dans les ressources de votre application. - Sauvegarder et restaurer une chaîne de caractères dans un fichier. - Les préférences utilisateur. La classe NSUserDefaults. - Les fichiers de propriétés. Les plist. - Le format de données JSON. Manipulation XML. - Code principal dans le RootViewController. Exercice Sauvegarder et restaurer des données. Manipuler des fichiers XML, JSON et préférences utilisateur. 9) Introduction aux fonctions avancées - La manipulation de l'écran (détection de la position et des mouvements du doigt). - Déplacements simples, utilisation de l'accéléromètre. Zoom simple. - Internationaliser ses applications. - Utilisation du Wifi (détection de l'accès au réseau, ...) et du GPS (informations de géolocalisation, ...). - Créer une animation, enchaîner les images. Exercice ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 80 Manipuler quelques fonctions avancées. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 81 Stage pratique de 4 jour(s) Réf : DAN Participants Développeurs iPhone/iPad. Pré-requis Bonnes connaissances en développement iPhone/iPad ou équivalentes au stage "iPhone/iPad, développement d'applications" (réf. ONE). Prix 2017 : 2380€ HT Dates des sessions iPhone/iPad, développement avancé en Objective-C New > Développement logiciel > PHP, C, C++, autres langages Vous apprendrez à perfectionner vos techniques de programmation d'applications pour iPhone/iPad. Vous verrez notamment la gestion avancée de la mémoire, des contrôleurs de vue, des threads, de la persistance et des pushs notifications. OBJECTIFS PEDAGOGIQUES Maîtriser les concepts avancés de gestion de la mémoire Manipuler et combiner des contrôleurs de vues Persister les données de l'application via le Core Data Accéder aux informations personnelles Gérer les threads et l'asynchronisme Générer des actions push Paris 15 nov. 2016, 14 mar. 2017 13 juin 2017 1) Gestion avancée de la mémoire 2) Gestion avancée des contrôleurs de vue 3) Gestion avancée des threads 4) Persistance des données 5) Accès aux informations personnelles 6) Notifications 1) Gestion avancée de la mémoire - Rappel sur la gestion de base de la mémoire avec Objective-C. - Utilisation de l'Automatic Reference Counting (ARC). Débrayer ARC. - Mesurer vos applications avec Instruments (allocation et fuite mémoire, activité des threads, exécution...). - Optimiser la gestion de la mémoire. La recherche des objets zombies. - Les codes blocks : fonctionnement avancé et bonnes pratiques. Travaux pratiques Mesurer quelques métriques de l'application avec Instruments avant de l'envoyer à l'AppStore. 2) Gestion avancée des contrôleurs de vue - Rappel sur le contrôleur de navigation. - Combinaisons de contrôleurs et de vues. - Le PickerViewController (gestion photos et vidéos). - Le Page View contrôleur. - Le Split View Controllers. Popovers. In-App Mail. Travaux pratiques Manipuler des Split Controllers, des Popovers. Intégrer des fonctions mail dans une application. 3) Gestion avancée des threads - Rappel sur le principe de la gestion des threads. - Le Grand Central Dispatch. Les opérations asynchrones via des queues. - Les threads avec la classe NSThread. Verrouillage avec section critique et mutex. Travaux pratiques Gestion de threads. 4) Persistance des données - Rappels XML et JSON. - Stockage des données via le Core Data (Archi. et API). - Création du modèle de données avec XCode. - SQLite : accès à une base de données. Travaux pratiques Restituer des données collectées sur Internet et les stocker dans une base SQLite ou des structures Core Data. 5) Accès aux informations personnelles - Le carnet d'adresses. Fonctionnement et programmation par APIs et par contrôleurs spécifiques. - L'Event Kit et le calendrier. - Certification et e-Commerce. - La technologie In-App Purchase (inclure un mini Store au sein de ses applications pour acheter des produits numériques). Travaux pratiques Accéder aux informations du carnet d'adresses. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 82 6) Notifications - La gestion des notifications push. - Le process de gestion des notifications : serveur, APNs Apple et sur le mobile. - Le fonctionnement Apple Push Notification Service. - Les certificats spécifiques "ready to push notification". - Envoi de messages "push" via le payload en JSON. Travaux pratiques Générer des actions push. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 83 Stage pratique de 2 jour(s) Réf : FIW Participants Développeurs, chefs de projet. Pré-requis Connaissance des bases algorithmiques. Pratique d'un langage de programmation structurée. Il n'est pas nécessaire d'être développeur Apple. Les bases du langage Swift pour le développement Mac OS X et iOS > Développement logiciel > PHP, C, C++, autres langages Nouveau langage de programmation créé par Apple, Swift se présente comme une alternative à ObjectiveC, moderne et plus performante. Vous apprendrez dans cette formation à développer des Swift 3 en environnement MacOS. Vous découvrirez les concepts de base de Swift 2 et ses aspects novateurs. OBJECTIFS PEDAGOGIQUES Découvrir les concepts de base du langage Swift Créer un projet Swift Appréhender Swift Standard Library Comprendre comment intégrer Cocoa et du code Objective-C à une application Swift Prix 2017 : 1440€ HT Dates des sessions Paris 1 déc. 2016, 16 mar. 2017 15 juin 2017 1) Introduction à Swift 2) L'environnement de développement 3) Les concepts de base de Swift 4) Swift Standard Library 5) Les aspects novateurs et avancés 6) L'intégration avec Cocoa et Objective-C Travaux pratiques Exercices pratiques sous MacOS X et XCode 8. 1) Introduction à Swift - Pourquoi un nouveau langage de programmation dans l'univers Apple ? - Les différents cas d'usage de Swift (Mac OS X, iOS). - Les apports et nouveautés de Swift. - Le rapport de Swift avec les outils Apple classiques : Objective-C, XCode. - Ouverture à l'Open Source et aux autres systèmes. 2) L'environnement de développement - Découverte de l'environnement XCode, nouveautés de XCode 8, migrer depuis Swift 1 et 2 (Swift Migrator). - Installation et configuration de l'environnement de développement, ciblage d'une version d'OS spécifique. - Création d'un projet Swift et opérations de base (édition, exécution...). - Découverte de l'outil d'évaluation et de mise au point REPL (Read-Eval-Print-Loop). Travaux pratiques Mise en place de l'environnement de développement et découverte d'un premier projet. 3) Les concepts de base de Swift - Philosophie du langage : syntaxe, gestion mémoire, inférence de type, orientation objet ou fonctionnelle... - Les mécanismes classiques : typage, variables et constantes, instructions, fonctions... - Les concepts Objet : notion de classes, méthode. - La manipulation des chaînes de caractères. Travaux pratiques Réalisation de plusieurs applications mettant en œuvre les concepts exposés. 4) Swift Standard Library - Les types : String, Array, Dictionnary et numériques. - Les protocoles : Equatable, Comparable, Printable. - Les fonctions libres et algorithmes. Travaux pratiques Mise en œuvre des concepts. 5) Les aspects novateurs et avancés - Les mécanismes de typage de Swift, la généricité, le support des protocoles. - La notion de terrain de jeu (Interactive Playground). - Les clôtures (closures). - La gestion mémoire : constructeur, destructeur, gestion de références, lazy instanciation... - La gestion des erreurs. - Le multi-threading. - Introduction aux interfaces graphiques avec Swift (Cocoa, Cocoa Touch, iOS) - Le futur avec Swift 3. Travaux pratiques Découverte du Playground. Mise en pratique des closures et de la généricité. Utilisation des frameworks Cocoa et Cocoa Touch. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 84 6) L'intégration avec Cocoa et Objective-C - L'exploitation des frameworks Cocoa et Cocoa Touch depuis une application Swift. - L'utilisation conjointe de Swift et Objective-C. - Les trois modes de fonctionnement : Interoperability, Mix and Match, Migration. Travaux pratiques Intégration de code Swift et Objective-C. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 85 Stage pratique de 4 jour(s) Réf : PAW Participants Développeurs, chefs de projet. Pré-requis Bonnes connaissances d'un langage de programmation (Objective-C, Java, C++, C#). Connaissance du langage Swift souhaité. iPhone/iPad, développer des applications en Swift > Développement logiciel > PHP, C, C++, autres langages Vous découvrirez dans cette formation les spécificités du développement d'applications iOS en Swift 3, nouveau langage phare d'Apple. Vous apprendrez notamment à concevoir des interfaces via XCode, à gérer la navigation et les "gestures". Vous comprendrez également l'intérêt d'une intégration de code Swift/ Objective-C. OBJECTIFS PEDAGOGIQUES Développer simplement des applications iOS performantes en Swift Exploiter les fonctionnalités d'un iPhone et d'un iPad (GPS, caméra, accéléromètre...) Intégrer du code Swift et du code Objective-C Maîtriser le simulateur iOS Prix 2017 : 2440€ HT Dates des sessions Paris 1) Rappels Swift et iOS 2) Les spécificités du développement iOS 3) Composants et interface graphique 4) Réseau et persistance 5) Fonctions avancées 6) Intégration Swift / Objective-C 15 nov. 2016, 6 déc. 2016 7 fév. 2017, 4 avr. 2017 13 juin 2017 Travaux pratiques Aix Développements réalisés en environnement MacOS X avec les outils intégrés à XCode (simulateur...). 21 fév. 2017, 16 mai 2017 Bordeaux 1) Rappels Swift et iOS 21 mar. 2017, 20 juin 2017 Grenoble 21 mar. 2017, 20 juin 2017 Lille 21 fév. 2017, 16 mai 2017 - Les objectifs et différents cas d'usage de Swift, tant pour Mac OS X que pour iOS. - Création d'un projet Swift avec XCode. - Bases du langage : syntaxe, gestion mémoire, inférence de type, orientation objet ou fonctionnelle... - Librairie standard et accès au framework iOS. - Les éléments novateurs de Swift : REPL, Playground... Lyon 21 mar. 2017, 20 juin 2017 Montpellier 21 fév. 2017, 16 mai 2017 Nantes 21 fév. 2017, 16 mai 2017 Rennes 21 fév. 2017, 16 mai 2017 Sophia-antipolis 21 fév. 2017, 16 mai 2017 Strasbourg 21 fév. 2017, 16 mai 2017 Toulouse 21 mar. 2017, 20 juin 2017 2) Les spécificités du développement iOS - Le framework Cocoa Touch et ses principes fondateurs. - Les règles Apple relatives au développement iPhone/iPad et l'App Store. - Les principes de base des applications iOS : interface utilisateur, réseau, persistance... - Le paradigme Model - Vue - Contrôleur. - Ergonomie et éléments conceptuels indispensables. - Cycle de vie d'une application : storyboard, charte graphique, réalisation, tests, publication. - Prototyper et tester une application avec le simulateur iOS. Travaux pratiques Définir les éléments indispensables d'une application iOS. 3) Composants et interface graphique - Les différents types de vues et la présentation. - Positionnement et dimensionnement des vues et contrôles. - La navigation et les gestures. - L'utilisation d'Interface Builder. - Rotation et animation des vues. Travaux pratiques Création d'applications graphiques iOS à vues multiples (UITableView ou UI CollectionView). 4) Réseau et persistance - Différentes façons de stocker et de lire des données. - Fichiers de propriétés. - Préférences, fichiers et SQLLite (Core Data). - Sockets et REST/JSON. Usage de XML. Travaux pratiques Gestion de données et accès à un serveur proposant des ressources REST/JSON. 5) Fonctions avancées - Appels synchrones et asynchrones. - Manipulation de l'écran et gestion des capteurs (GPS, caméra, accéléromètre...). - Internationaliser une application. - Fonctions graphiques avancées (bases d'animation graphique). - Le multithreading (Grand Central Dispatch). Travaux pratiques Mise en œuvre d'aspects avancés. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 86 6) Intégration Swift / Objective-C - Les mécanismes de base Objective-C (variables, typage, instructions, classes de base). - La création d'un projet et d'éléments de code avec XCode. - Les trois modes de fonctionnement en intégration : Interoperability, Mix and Match, Migration. Travaux pratiques Intégration de code Swift / Objective-C dans le cadre du développement d'une application iOS. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 87 Stage pratique de 3 jour(s) Réf : PSQ SQL Server, Programmation SQL Best Participants > Développement logiciel > PHP, C, C++, autres langages Concepteur de requêtes SQL, futur développeur en SGBD, administrateur ou chargé de maintenance. Cette formation vous permettra d'appréhender les fondements du langage SQL. Vous y découvrirez les principes des bases de données relationnelles (algèbre relationnelle, théorie des ensembles), et explorerez la syntaxe du langage SQL pour interroger, analyser les données et manipuler les bases. Pré-requis OBJECTIFS PEDAGOGIQUES Connaissances de base en programmation. Prix 2017 : 1880€ HT Dates des sessions Paris 10 oct. 2016, 14 nov. 2016 12 déc. 2016, 16 jan. 2017 20 fév. 2017, 27 mar. 2017 24 avr. 2017, 22 mai 2017 26 juin 2017, 17 juil. 2017 21 aoû. 2017 Aix 28 nov. 2016, 6 fév. 2017 12 juin 2017 Comprendre le modèle relationnel et identifier les objets d'une base Interroger et classer les données d'une table à l'aide d'opérateurs simples Restituer les données de plusieurs tables grâce aux jointures et aux sous-requêtes Regrouper les données et réaliser des calculs à des fins d'analyse Manipuler les données dans les tables de la base 1) Algèbre relationnelle et norme SQL 2) Théorie des bases de données 3) Interrogation des données mono tabulaire 4) Interrogation multi tabulaire 5) Analyse de données 6) Mise à jour des données 7) Introduction au SQL procédural Travaux pratiques Les exemples et les travaux pratiques sont réalisés sur MS SQL Server, l'un des SGBDR les plus proches de la norme SQL. Bordeaux 5 déc. 2016, 27 fév. 2017 26 juin 2017 1) Algèbre relationnelle et norme SQL Bruxelles Geneve - Les principes du modèle relationnel. - Historique des SGBDR et du langage SQL. - Entités, associations et MCD. - Types de données et expression des valeurs 12 déc. 2016, 20 mar. 2017 19 juin 2017 Mise en situation Prise en main du logiciel SQL Server Management Studio. Découverte de la base étudiée. 12 déc. 2016, 20 mar. 2017 19 juin 2017 Grenoble 28 nov. 2016, 27 fév. 2017 26 juin 2017 Lille 28 nov. 2016, 6 fév. 2017 12 juin 2017 Luxembourg 2) Théorie des bases de données - Eléments du SGBD. - Tables, clefs et formes normales. - Entités, associations et MCD. - Contraintes de colonnes et de tables. Lyon Travaux pratiques Identifier les objets d'une base de données. Déterminer le type de forme normale d'une relation et la transformer, créer un MCD. 28 nov. 2016, 27 fév. 2017 26 juin 2017 3) Interrogation des données mono tabulaire Montpellier - Structure d'une requête SELECT. - Filtre WHERE, prédicats et logique ternaire (NULL). - Opérateurs et expressions SQL. - Fonctions prédéfinies. 12 déc. 2016, 20 mar. 2017 19 juin 2017 5 déc. 2016, 6 fév. 2017 12 juin 2017 Nantes 5 déc. 2016, 6 fév. 2017 12 juin 2017 Rennes 5 déc. 2016, 6 fév. 2017 12 juin 2017 Travaux pratiques Extraction à l'aide de la clause WHERE. Utilisation d'opérateurs IN, LIKE, CASE... des opérateurs numériques, dates, des fonctions de chaîne. Tri des données. 4) Interrogation multi tabulaire Sophia-antipolis 28 nov. 2016, 6 fév. 2017 12 juin 2017 Strasbourg 28 nov. 2016, 6 fév. 2017 12 juin 2017 Toulouse 10 oct. 2016, 5 déc. 2016 27 fév. 2017, 26 juin 2017 - Combiner des résultats avec les opérations ensemblistes (UNION, INTERSECT, EXCEPT). - Présentation de la jointure. - Imbrication des requêtes. - Utilisation des CTE et découverte des requêtes récursives. - Les sous-requêtes corrélées et l'opérateur EXISTS. Travaux pratiques Utilisation des opérations ensemblistes, création de requêtes avec jointures. 5) Analyse de données - Fonctions d'agrégation (AVG, SUM, COUNT...). - Création de sous-ensembles (clause GROUP BY). - Filtrage des agrégats avec la clause HAVING. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 88 - Découverte des fonctions d'analyse de données (LEAD, LAG...) et rangements (RANK, ROW_NUMBER, NTILE...). Travaux pratiques Analyse de données par écritures de requêtes utilisant des calculs avec regroupements. 6) Mise à jour des données - Les ordres INSERT, UPDATE, DELETE, TRUNCATE. - Mises à jour simples. - Mises à jour à l'aide de sous-requêtes. - Mise à jour des données à travers les vues. Travaux pratiques Opérations d'insertion et mises à jour de tables de la base de données. 7) Introduction au SQL procédural - Les dialectes SQL des principaux éditeurs. - Notions basiques sur les déclencheurs. - Introduction aux procédures stockées. - Les UDF ou fonctions "utilisateur". Travaux pratiques Création d'une procédure stockée. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 89 Stage pratique de 2 jour(s) Réf : PAV Participants Développeurs, administrateurs, utilisateurs avancés ayant à mettre en oeuvre des requêtes complexes avec SQL Server. Pré-requis Bonnes connaissances des bases du langage SQL ou connaissances équivalentes à celles apportées par le stage " SQL Server, programmation SQL " (réf PSQ). Prix 2017 : 1440€ HT Dates des sessions Paris 6 oct. 2016, 3 nov. 2016 8 déc. 2016, 19 jan. 2017 16 mar. 2017, 22 juin 2017 31 aoû. 2017 Aix SQL Server, programmation SQL avancée Best > Développement logiciel > PHP, C, C++, autres langages Grâce à ce cours, vous découvrirez les expressions et opérateurs SQL avancés, et verrez comment les utiliser avec efficacité pour résoudre des problématiques d'extraction de données complexes. Vous saurez traiter des besoins de regroupement, d'analyse, d'échantillonnage et de restitution de données hiérarchisées. OBJECTIFS PEDAGOGIQUES Ecrire des sous-requêtes et requêtes combinées Utiliser des fonctions de groupages décisionnels Mettre en œuvre des fonctions analytiques et de fenêtrage Ecrire des requêtes récursives Utiliser les commandes de mises à jour complexes avec l'instruction MERGE 1) Rappel sur les requêtes multitables 2) Opérateurs particuliers 3) Les expressions de tables 4) L'écriture des données Méthodes pédagogiques Les stagiaires pourront récupérer les nombreux exemples et TP ainsi que la base servant de fil rouge. Des références web et bibliographiques sont proposées pour en savoir plus sur chacun des sujets. Travaux pratiques Ce stage fait alterner la présentation des concepts et de la syntaxe, et de multiples exercices d'application. 23 fév. 2017, 23 mai 2017 Bordeaux 16 mar. 2017, 6 juin 2017 Bruxelles 15 déc. 2016, 2 mar. 2017 1 juin 2017 Geneve 15 déc. 2016, 2 mar. 2017 1 juin 2017 Grenoble 1) Rappel sur les requêtes multitables - Opérateurs ensemblistes UNION, INTERSECT et EXCEPT. - Rappel sur les jointures internes et externes. - Maîtriser les sous-requêtes dans les différentes parties des instructions SQL. - Corrélations des requêtes imbriquées. - Opérations d'intra-jointure avec APPLY (CROSS, OUTER) pour les fonctions et les fragments XML. Travaux pratiques Résolutions de cas de requêtes mettant en action plusieurs tables. 16 mar. 2017, 6 juin 2017 Lille 23 fév. 2017, 23 mai 2017 Luxembourg 15 déc. 2016, 2 mar. 2017 1 juin 2017 Lyon 16 mar. 2017, 6 juin 2017 Montpellier 23 fév. 2017, 23 mai 2017 Nantes 23 fév. 2017, 23 mai 2017 Rennes 23 fév. 2017, 23 mai 2017 Sophia-antipolis 23 fév. 2017, 23 mai 2017 Strasbourg 23 fév. 2017, 23 mai 2017 Toulouse 16 mar. 2017, 6 juin 2017 2) Opérateurs particuliers - Utilité du produit cartésien (CROSS JOIN). - La division relationnelle. - Groupage décisionnel avec CUBE, ROLLUP et GROUPING SET. - Fonctions analytiques et de fenêtrage : ordonnancement et agrégat avec les clauses OVER et WINDOW. - Tableaux croisés avec PIVOT et UNPIVOT. - Echantillon de données avec TABLESAMPLE. Travaux pratiques Résolution de cas de division relationnelle. Utilisation des fonctions de groupages décisionnels. Mise en oeuvre des fonctions analytiques. 3) Les expressions de tables - L'expression de table commune, Common Table Expression (CTE), ou vue non persistante. - L'utilisation du mot-clé WITH pour spécifier une CTE. - Les différentes techniques de requêtage dans les arborescences (adjacence, chemin, intervallaire, récursion). - Résolution de problèmes de graphes avec les requêtes récursives. - Utilisation de tables de nombres et de dates (tally tables) pour résoudre des requêtes complexes. Travaux pratiques Exprimer des requêtes sous la forme de la CTE récursive. 4) L'écriture des données - Mise à jour et suppression des données avec sous-requêtes. - Utilisation de la syntaxe étendue de mise à jour et suppression avec jointures. - Opérations d'insertion, de mise à jour ou de suppression à partir de résultats d'une jointure, l'opérateur MERGE. - Récupération des données ajoutées, modifiées ou supprimées, avec la clause OUTPUT. Travaux pratiques Ecriture de commandes de mises à jour complexes avec l'instruction MERGE et les sous-requêtes. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 90 Stage pratique de 4 jour(s) Réf : SED Participants Développeurs, chefs de projets. Pré-requis Connaissances de base en programmation. Notions sur les bases de données et le langage SQL. SQL Server 2014 à 2008, développement > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage vous procurera toutes les connaissances nécessaires pour développer des applications sous SQL Server. Il vous apprendra notamment à manipuler les objets d'une base de données, à optimiser les temps de restitution des données, et à réaliser les opérations de maintenance courantes du développeur. 1) La construction des bases de données 2) Requêtes d'extraction de données 3) Mise à jour des données 4) Coder en Transact SQL 5) Optimisation de l'exécution des requêtes 6) Maintenance courante pour le développeur Prix 2017 : 2440€ HT Dates des sessions Paris 29 nov. 2016, 7 fév. 2017 4 avr. 2017, 6 juin 2017 1) La construction des bases de données - Le stockage physique avec les fichiers et les groupes de fichiers. - Les schémas SQL ou le stockage logique. - Bon usage des différents types de données. - Créer des tables. Mise en place des contraintes. - Obtenir un rétro-script DDL. Travaux pratiques Créer les tables d'une base de données et définir les contraintes associées. 2) Requêtes d'extraction de données - Les opérateurs ensemblistes. - Les jointures internes et externes. Typologies. - Les sous-requêtes. - Utiliser les " Common Table Expression " (CTA) et les requêtes récursives. - Fonctions fenêtrées et clause OVER (ordonnancement, agrégat et fenêtrage RANGE/ROWS). - Les opérateurs particuliers (APPLY, PIVOT...). - La création des vues. Travaux pratiques Manipuler des requêtes d'extraction avec différents types de jointures. Présenter les données avec les fonctions d'agrégat. Créer des vues. 3) Mise à jour des données - Les mises à jour simples (INSERT, UPDATE et DELETE). - L'ordre SQL MERGE. - Mise à jour avec des sous-requêtes. - BULK INSERT et BCP pour le chargement de fichier et l'export de données. Travaux pratiques Réaliser des opérations de mise à jour de la base. Importer et exporter des données. 4) Coder en Transact SQL - Eléments du langage Transact SQL. Notion de Batch. - Créer des fonctions scalaires et des fonctions tables. - Présentation des transactions. - Programmation des déclencheurs. - Développer des procédures stockées. Travaux pratiques Créer des fonctions et des vues paramétrables. Créer des procédures stockées gérant des transactions. Automatiser des traitements à l'aide de déclencheurs. 5) Optimisation de l'exécution des requêtes - Visualisation des plans de requêtes. - Métrique (IO TIME) et comparaison d'exécution. - Présentation des index. Que faut-il indexer ? Travaux pratiques Comparer les temps d'exécution pour des scénarios d'indexation. Utiliser des plans de requêtes. 6) Maintenance courante pour le développeur - Sauvegarde des données. Scénarios de restauration. - Maintenir les index et les statistiques. - Vérifier l'intégrité physique d'une base et la réparer. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 91 Effectuer des sauvegardes et des restaurations. Elaborer un plan de maintenance des index. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 92 Stage pratique de 2 jour(s) Réf : TAS Participants Chefs de projet, concepteurs et développeurs TransactSQL. Pré-requis Bonnes connaissances des bases du langage SQL ou connaissances équivalentes à celles apportées par le stage " SQL Server, programmation SQL " (réf PSQ). Prix 2017 : 1440€ HT Dates des sessions Paris 27 oct. 2016, 7 nov. 2016 22 déc. 2016, 16 mar. 2017 22 juin 2017 Transact-SQL, optimisation pour SQL Server 2014 à 2008 > Développement logiciel > PHP, C, C++, autres langages Cette formation présente les règles de bonne écriture et d'optimisation du Transact-SQL, pour améliorer les performances des requêtes et éviter les écueils fréquemment rencontrés lors de la programmation en T-SQL. OBJECTIFS PEDAGOGIQUES Comprendre le fonctionnement de l'optimiseur SQL Bien choisir ses index pour optimiser l'accès aux données Utiliser le profiler et le Database Tuning Advisor pour améliorer les performances Utiliser les statistiques et le plan d'exécution pour auditer les performances des requêtes Améliorer les requêtes par de bonnes pratiques d'écriture Utiliser les requêtes ensemblistes 1) Le modèle relationnel et le langage SQL 2) Réussir l'indexation 3) Ecrire des requêtes performantes 4) Remplacer tables temporaires et curseurs 5) Bonnes pratiques pour les modules de code Travaux pratiques Formation interactive, alternant étroitement théorie et pratique. L'apprentissage se fait par l'expérimentation. 1) Le modèle relationnel et le langage SQL - Les spécificités des bases de données relationnelles et du langage SQL. - La normalisation du modèle de données. - Les notions d'écriture ensembliste et déclarative. Les spécificités du dialecte Transact-SQL. - Le fonctionnement de l'optimiseur SQL. Travaux pratiques Expérimentation de requêtes sur des modèles plus ou moins normalisés. 2) Réussir l'indexation - Les bases de l'indexation. La structure en B-Tree et les différents types d'index. - Comment choisir ses index en fonction des requêtes ? - La notion de couverture de requête par un index. - Le concept de SARG (Search Argument) pour favoriser l'utilisation de l'index. - Utilisation du profiler et du Database Tuning Advisor. Travaux pratiques Indexation de tables pour améliorer les performances de requêtes. 3) Ecrire des requêtes performantes - Les règles de bonne écriture des requêtes SQL. - Lire et utiliser les statistiques d'exécution et le plan d'exécution. Optimiser ses jointures et ses regroupements. - Optimiser le code de mise à jour des données. - Erreurs les plus communes : SQL dynamique, fonctions utilisateurs, comparaisons insensibles à la casse. Travaux pratiques Réécriture de requêtes peu performantes. 4) Remplacer tables temporaires et curseurs - Maîtriser les sous-requêtes et les opérateurs relationnels. - Utiliser l'instruction MERGE pour les mises à jour de données complexes. - Créer des tables de nombres et de dates pour résoudre les problèmes de façon relationnelle. - Utiliser les fonctions de fenêtrage et les fonctions statistiques. - Utiliser le CROSS JOIN pour résoudre les problèmes complexes. - Ecrire du code récursif en utilisant des expressions de table. Travaux pratiques Résolution de problématiques complexes par des requêtes ensemblistes. 5) Bonnes pratiques pour les modules de code - Règles pour l'écriture de procédures stockées. - Maîtriser la compilation et recompilation. - Minimiser l'impact des déclencheurs. Comprendre les transactions et les problèmes de verrouillage. - Utiliser les niveaux d'isolation de la transaction. Travaux pratiques Ecriture d'une procédure stockée optimisée. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 93 Stage pratique de 5 jour(s) Réf : QSM Participants Cette formation est destinée à des ingénieurs systèmes et des développeurs qui doivent utiliser ou mettre en oeuvre SQL Server 2012. Pré-requis Bonnes connaissances du langage SQL ou connaissances équivalentes à celles apportées par le stage " SQL Server, programmation SQL " (réf. PSQ). Prix 2017 : 2600€ HT Dates des sessions Paris SQL Server 2014/2012, mise en œuvre > Développement logiciel > PHP, C, C++, autres langages Ce stage vous apportera toutes les connaissances nécessaires à la pleine utilisation de SQL Server en version 2014 ou 2012. Vous apprendrez à écrire des ordres SQL et utiliser les extensions du langage, à modifier les structures et entrer les contraintes d'intégrité, à charger les données et exploiter les transactions. OBJECTIFS PEDAGOGIQUES Se familiariser avec l'environnement Management Studio Créer les tables de la base, et mettre en place les clés primaires et contraintes d'unicité Charger des données dans la base à l'aide de BULK INSERT et BCP Mettre en place des index sur la base de données pour améliorer ses performances Créer des requêtes et des procédures stockées, des déclencheurs et des fonctions, pour mettre à jour la base Intégrer la gestion des exceptions et les transactions dans les déclencheurs et les procédures 1) Présentation de SQL Server 2012 2) Bases de données et schémas SQL 3) Tables, vues et contraintes 4) Chargement de données et exports 21 nov. 2016, 6 fév. 2017 24 avr. 2017, 26 juin 2017 Aix 19 déc. 2016 Bordeaux 14 nov. 2016 Bruxelles 12 déc. 2016, 27 mar. 2017 26 juin 2017 Geneve 12 déc. 2016, 27 mar. 2017 26 juin 2017 Grenoble 19 déc. 2016 Lille 5) Indexation et plans de requêtes 6) SQL avancé avec Transact SQL, code procédural 7) Transactions et gestion des exceptions 8) Introduction aux techniques avancées 1) Présentation de SQL Server 2012 - Architecture de SQL Server 2012. - Outils de développement et d'administration. Travaux pratiques Prise en main du gestionnaire de configuration et de Management Studio. 2) Bases de données et schémas SQL - Les identifiants : nommage des objets SQL Server. - Création de la base de données. Schémas SQL. - Cycle de vie des objets d'une base. 3) Tables, vues et contraintes 19 déc. 2016 Luxembourg 12 déc. 2016, 27 mar. 2017 26 juin 2017 Lyon 19 déc. 2016 Montpellier 14 nov. 2016 Nantes 14 nov. 2016 - Langage DDL : création d'objets, contraintes. - Types de données natifs et types utilisateurs. - Création des tables et des vues. - Les contraintes de domaine et de colonne. - Clé primaire et clés alternatives. Gestion de l'intégrité référentielle. Travaux pratiques Création de types utilisateurs. Création de tables et de vues. Ajout de contraintes. Mise en place de clés primaires et de contraintes d'unicité. 4) Chargement de données et exports Rennes 14 nov. 2016 Sophia-antipolis 19 déc. 2016 Strasbourg 19 déc. 2016 Toulouse 14 nov. 2016 - La commande BULK INSERT. - Import/export en ligne de commande avec BCP. - Fonctions OPEN pour interroger les données externes. - Présentation d'Integration Services. Travaux pratiques Chargement des données à l'aide de BULK INSERT et BCP. Utilisation d'OPENROWSET. 5) Indexation et plans de requêtes - Structure des index : arbre équilibré, index clustered... - Création d'index : approche de création... - Analyse des performances. - Utilisation du Database Tuning Advisor. Travaux pratiques Mise en place d'index sur la base de données et constat sur les performances. 6) SQL avancé avec Transact SQL, code procédural - Groupages OLAP et clauses OUTPUT, SELECT INTO... - Ordre SQL MERGE. Chiffrement des données. - Fonctions, procédures stockées, curseurs, déclencheurs. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 94 Création de requêtes avancées de Transact-SQL. Réalisation d'une fonction table multi-instructions. Procédure stockée pour l'insertion combinée. 7) Transactions et gestion des exceptions - Les transactions. Niveaux d'isolation. Gestion des exceptions. Transactions imbriquées. Travaux pratiques Intégration de la gestion des exceptions et des transactions dans les déclencheurs et les procédures stockées. 8) Introduction aux techniques avancées - Présentation du Système d'Information Géographique-SIG. Utilisation de XML au sein de SQL Server 2012. Travaux pratiques Utilisation du SIG. Interrogation XML. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 95 Stage pratique de 5 jour(s) Réf : SEM Participants Cette formation est destinée à des ingénieurs système et des développeurs qui doivent utiliser ou mettre en œuvre SQL Server 2008. Pré-requis Bonnes connaissances du langage SQL ou connaissances équivalentes à celles apportées par le stage " Programmation SQL " (réf. PSQ). Prix 2017 : 2970€ HT Dates des sessions Paris 28 nov. 2016, 20 mar. 2017 26 juin 2017 Aix SQL Server 2008, mise en œuvre Best > Développement logiciel > PHP, C, C++, autres langages Cette formation vous apportera toutes les connaissances nécessaires à la pleine utilisation de SQL Server 2008. Elle vous permettra de comprendre le rôle des divers composants de SQL Server 2008, d'utiliser les outils de requête, et d'écrire des ordres SQL de manipulation des données incluant les extensions au langage SQL propres à SQL Server. Elle vous montrera comment modifier la structure des tables, mettre en place les contraintes d'intégrité et comment exploiter au mieux le concept de transaction. OBJECTIFS PEDAGOGIQUES Créer une base de données avec SQL Server 2008, définir ses paramètres généraux Créer les tables de la base et les utilisateurs, importer et exporter des données Mettre en place des clés sur les tables et autres vérifications sur les données Manipuler les données de la base avec les fonctions du Transact-SQL Optimiser les performances en mettant en place des index sur la base de données Programmer des déclencheurs et procédures stockées 1) Présentation de SQL Server 2008 2) Bases de données et schémas SQL 3) Tables et vues 4) Les contraintes 5) Chargement de données et exports 6) SQL avancé avec Transact SQL 7) Indexation et plans de requêtes 8) Codage procédural 9) Transactions et gestion des exceptions 10) Introduction aux techniques avancées 12 déc. 2016 Bordeaux 14 nov. 2016 Grenoble 12 déc. 2016 Lille 12 déc. 2016 Lyon 12 déc. 2016 1) Présentation de SQL Server 2008 - Présentation de SQL Server 2008. Versions. - Architecture de SQL Server 2008. - Outils de développement et d'administration. - Les bases systèmes. Travaux pratiques Prise en main des outils graphiques de SQL Server : gestionnaire de configuration et Management Studio. Montpellier 14 nov. 2016 Nantes 14 nov. 2016 Rennes 14 nov. 2016 Sophia-antipolis 12 déc. 2016 Strasbourg 12 déc. 2016 Toulouse 14 nov. 2016 2) Bases de données et schémas SQL - Les identifiants : nommage des objets SQL Server. - Stockage physique : fichiers de données et journal de transactions. - Création de la base de données : gestion des espaces de stockage paramètres de création. - Schémas SQL : concept et utilisation. - Cycle de vie des objets d'une base. - Brèves notions sur la gestion des privilèges. - Vues et procédures de métadonnées. Travaux pratiques Création physique d'une base de données. Mise en place de différents schémas SQL. Modification des paramètres de la base de données. 3) Tables et vues Langage DDL : création d'objets, contraintes - Types de données SQL Server et types utilisateurs. - Création des tables : définition des colonnes. - Gestion des auto-incréments. - Création et utilisation des vues. - Conditions de mise à jour à travers les vues. Travaux pratiques Création de types utilisateurs. Création de tables et de vues. Manipulation des auto-incréments. Mise à jour à travers les vues. 4) Les contraintes - Les contraintes de domaine (CHECK). - Contraintes de colonne NOT NULL et DEFAULT. - Clé primaire et clés alternatives. - Gestion de l'intégrité référentielle. - Utilisation de déclencheurs (triggers) pour la réalisation des assertions. Travaux pratiques ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 96 Ajout de contraintes de domaines aux types utilisateurs et aux colonnes. Mise en place de clés primaires et de contraintes d'unicité. Mise en place de clés étrangères. Réalisation de contraintes complexes CHECK à l'aide de fonctions et de déclencheurs. 5) Chargement de données et exports - Chargement de fichier avec la commande BULK INSERT. - Import/export en ligne de commande avec bcp. - Fonctions OPEN pour interroger les données externes. - Gestion des flux interserveurs. - Integration Services. Travaux pratiques Chargement des données à l'aide de BULK INSERT et bcp. Utilisation d'OPENROWSET pour faire des requêtes externes. 6) SQL avancé avec Transact SQL - Manipulation de données booléennes. - Groupages OLAP (CUBE, ROLLUP, GROUPING SETS...). - Fonction de fenêtrage et clause OVER. - Tableaux croisés avec PIVOT et UNPIVOT. - Clauses TOP et SAMPLE. - Clauses OUTPUT, SELECT INTO, TRUNCATE TABLE. - Ordre SQL MERGE. - Gestion d'objets larges à l'aide du type filestream. - Cryptage des données. Travaux pratiques Exercices de requêtes mettant en œuvre les fonctions avancées de Transact-SQL. 7) Indexation et plans de requêtes - Présentation : rôle des index, utilisation. - Structure des index : arbre équilibré, index ordonné et non ordonné, statistiques de distribution. - Création d'index : approche de création, choix des index. - Utilisation du Database Tuning Advisor. - Indexation de vues : indications et contraintes. - Index pour recherche en texte intégral. - Analyse des performances. Travaux pratiques Mise en place d'index sur la base de données et constat sur les performances. 8) Codage procédural - Syntaxe procédurale du Transact SQL (variables, affectation, types de données et structures). - Création de fonctions scalaires (UDF). - Fonctions tables (requêtes paramétrées). - Principe des procédures stockées. - Création et utilisation de tables temporaires et de variables table. - Manipulation de curseurs. - Déclencheurs : types de triggers. - Débogage du code Transact-SQL. Travaux pratiques Réalisation de fonctions scalaires et de déclencheurs pour gérer la qualité des données. Réalisation d'une fonction table multi-instruction. Programmation d'une procédure stockée pour l'insertion combinée. 9) Transactions et gestion des exceptions - Principe des transactions : mode implicite et explicite. - Définition des frontières des transactions. - Anomalies transactionnelles, gestion des niveaux d'isolation et mise en place des verrous. - Gestion des exceptions. - Problématique des transactions imbriquées. - Transactions distribuées et commit à deux phases. Travaux pratiques Intégration de la gestion des exceptions et des transactions dans les déclencheurs et les procédures stockées. 10) Introduction aux techniques avancées - Présentation du SIG de SQL Server (système d'information géographique). - Utilisation de XML au sein de SQL (requêtes avec XQuery/XPath et clause FOR XML). - Introduction à l'indexation textuelle (Full Text Search). - Intégration de .NET dans SQL Server. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 97 Travaux pratiques Utilisation du SIG, interrogation XML et recherches "plain text". ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 98 Stage pratique de 3 jour(s) Réf : OSL Oracle SQL Best Participants > Développement logiciel > PHP, C, C++, autres langages Des informaticiens désirant se servir de SQL en environnement Oracle. Une formation pratique aux aspects essentiels, logique et syntaxe, du langage SQL. Ce cours vous apportera une méthode sûre d'écriture de requêtes SQL complexes. Pré-requis OBJECTIFS PEDAGOGIQUES Connaissances de base en informatique. Comprendre le modèle relationnel Savoir identifier les objets d'une base des données Oracle Interroger et classer les données d'une table Manipuler les données dans les tables de la base Savoir restituer les données Prix 2017 : 1880€ HT Dates des sessions Paris 10 oct. 2016, 14 nov. 2016 12 déc. 2016, 9 jan. 2017 6 fév. 2017, 6 mar. 2017 3 avr. 2017, 2 mai 2017 6 juin 2017, 3 juil. 2017 21 aoû. 2017 Aix 28 nov. 2016, 6 mar. 2017 26 juin 2017 Bordeaux 1) Introduction 2) Les outils 3) Introduction SQL 1) Introduction - Le modèle relationnel. - Les notions de base : relation (table), attributs (colonnes), contraintes d'intégrité. - Les contraintes d'intégrité. 12 déc. 2016, 27 fév. 2017 24 avr. 2017, 12 juin 2017 2) Les outils Bruxelles - Présentation du SQL*Plus. - Présentation du SQL Developer. 12 déc. 2016, 27 fév. 2017 26 juin 2017 Geneve 12 déc. 2016, 27 fév. 2017 26 juin 2017 Grenoble 28 nov. 2016, 27 fév. 2017 24 avr. 2017, 12 juin 2017 Lille 28 nov. 2016, 6 mar. 2017 26 juin 2017 4) Interrogation des données 5) Objets d'une base de données Oracle 6) Instructions SQL complexes 3) Introduction SQL - Les types de données Oracle. - Création des tables. - Introduction aux instructions de mise à jour. - Utilisation des séquences. - Introduction à l'interrogation (SELECT). 4) Interrogation des données Montpellier - Tri et suppression des doublons. Utilisation des alias et des préfixes. - Traitement de la valeur NULL. Utilisation des fonctions SQL. - Utilisation des pseudo-colonnes : ROWID et ROWNUM. Utilisation des agrégats : COUNT, SUM, AVG... - Opérations ensemblistes : union, intersection, différence. - Requêtes imbriquées : opérateurs IN, EXISTS. - Utilisation des jointures. - Jointures externes. - Groupement : GROUP BY et HAVING. 12 déc. 2016, 6 mar. 2017 26 juin 2017 5) Objets d'une base de données Oracle Luxembourg 12 déc. 2016, 27 fév. 2017 26 juin 2017 Lyon 28 nov. 2016, 27 fév. 2017 24 avr. 2017, 12 juin 2017 Nantes 12 déc. 2016, 6 mar. 2017 26 juin 2017 Rennes 12 déc. 2016, 6 mar. 2017 26 juin 2017 Sophia-antipolis 28 nov. 2016, 6 mar. 2017 26 juin 2017 Strasbourg 28 nov. 2016, 6 mar. 2017 26 juin 2017 Toulouse - Création et suppression des tables. - Gestion des contraintes d'intégrité : clé primaire, unicité, non-nullité, CHECK, contraintes référentielles. - Utilisation des vues. - Utilisation des synonymes. - Dictionnaire de données. 6) Instructions SQL complexes - Paramétrage des scripts SQL*Plus. - Division et interrogations complexes. - Instructions de mise à jour avec des requêtes imbriquées. - Les requêtes hiérarchiques. - Utilisation des expressions régulières. 12 déc. 2016, 27 fév. 2017 24 avr. 2017, 12 juin 2017 ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 99 Stage pratique de 2 jour(s) Réf : OSP Participants Toute personne impliquée indirectement dans l'exécution de requêtes SQL avancées (développeur, DBA, maître d'ouvrage). Pré-requis Bonnes connaissances des bases du SQL ou connaissances équivalentes à celles apportées par le stage "Oracle SQL" (réf. OSL). Expérience requise. Prix 2017 : 1440€ HT Dates des sessions Paris 17 nov. 2016, 9 mar. 2017 11 mai 2017 Aix 8 déc. 2016, 16 mar. 2017 18 mai 2017 Bordeaux 15 déc. 2016, 23 mar. 2017 11 mai 2017 Oracle SQL, perfectionnement > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Cette formation très pratique se propose de développer les aspects avancés du langage SQL comme les opérateurs ensemblistes, la gestion des LOB, des Bfiles et du XML, les fonctions d'agrégation et de statistiques. 1) Les fonctions complémentaires 2) Les opérateurs ensemblistes 3) La gestion des LOB et des Bfiles 4) Agrégation, jointures et sub-select 1) Les fonctions complémentaires - Fonctions de transformation. - Fonctions analytiques : Rank, Dense_Rank. - Fonction hiérarchique. Autres fonctions : Rowid, etc. Travaux pratiques Mise en forme de données disparates (dates, numériques), liste d'une hiérarchie à plusieurs niveaux. 2) Les opérateurs ensemblistes - Union et Union ALL. - Différence Minus. - Exists, Some, Any, All. Bruxelles Travaux pratiques Recherche des différences entre plusieurs tables. 15 déc. 2016, 13 avr. 2017 22 juin 2017 3) La gestion des LOB et des Bfiles Geneve - Utilisations possibles. Définition des tables. - Insertion et mises à jour des LOB. - Gestion d'un Bfile. 15 déc. 2016, 13 avr. 2017 22 juin 2017 Grenoble 8 déc. 2016, 23 mar. 2017 11 mai 2017 Lille 8 déc. 2016, 16 mar. 2017 18 mai 2017 Luxembourg 15 déc. 2016, 13 avr. 2017 22 juin 2017 5) La gestion des intégrités 6) La gestion du XML 7) Le partitionnement des données 8) La gestion des tables distantes Travaux pratiques Ajout d'une photo dans une table, ajout d'un CV dans une table. 4) Agrégation, jointures et sub-select - Les fonctions d'agrégation et statistiques : Group By Rollup. Group by Cube. Group by Sets. - Rappel des jointures " classiques ". Auto-jointure. FULL, RIGHT, LEFT. - Sub-select corrélés/non corrélés avec des Insert, Update, Delete. Lyon Travaux pratiques Statistiques et regroupements sur plusieurs critères. Création d'une table à partir d'autres tables. 8 déc. 2016, 23 mar. 2017 11 mai 2017 5) La gestion des intégrités Montpellier 15 déc. 2016, 16 mar. 2017 18 mai 2017 Nantes - Rappel des définitions : unicité, référentielle, cohérence. - Mise en oeuvre : Primary Key, Foreign Key, Increment, Check. - Principes d'utilisation. Bonnes pratiques et limites. Rennes Travaux pratiques Création de tables en intégrité référentielle. Ajout/suppression des contraintes d'intégrité et des contrôles par Check. 15 déc. 2016, 16 mar. 2017 18 mai 2017 6) La gestion du XML Sophia-antipolis - Stockage de XML. Utilisation de fonctions avancées XML. 15 déc. 2016, 16 mar. 2017 18 mai 2017 8 déc. 2016, 16 mar. 2017 18 mai 2017 Strasbourg Travaux pratiques Gestion d'un document XML. 8 déc. 2016, 16 mar. 2017 18 mai 2017 7) Le partitionnement des données Toulouse - Les différents types de partitionnements possibles. - Mise en oeuvre du partitionnement des données. 15 déc. 2016, 23 mar. 2017 11 mai 2017 Travaux pratiques Création de tables partitionnées, rechargement des données. 8) La gestion des tables distantes ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 100 - Rappel des principes : schémas, ODBC, DRDA. - Accès à une table distante. Jointures avec des tables distantes. Travaux pratiques Lecture des tables d'autres BD. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 101 Stage pratique de 3 jour(s) Réf : ROD Participants Ce stage s'adresse aux développeurs d'applications décisionnelles sous Oracle désireux d'utiliser tout le potentiel SQL d'Oracle. Pré-requis Bonnes connaissances du langage SQL. Oracle SQL pour le décisionnel > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Un cours intensif pour acquérir toutes les compétences nécessaires à l'utilisation des fonctionnalités décisionnelles du SQL d'Oracle. 1) Introduction 2) Groupements des données 3) Agrégation et analyse des données 4) La clause MODEL 5) Mise à jour des données 6) Objets Prix 2017 : 1880€ HT 1) Introduction Dates des sessions - Informatique décisionnelle. Etat de la norme SQL. Norme SQL3 et décisionnel. - Rappels des concepts liés à un datawarehouse. Notions de CUBE. Concept OLAP. Analyse multidimensionnelle. - Modélisation en étoile et constellation. Notions de dimension. Notion de table de fait. Paris 14 nov. 2016, 27 fév. 2017 22 mai 2017, 10 juil. 2017 Etude de cas Présentation : le modèle, les problématiques. 2) Groupements des données - Fonctions horizontales. Fonctions verticales. Fonctions d'agrégat. - Le groupe. Rappels : fonctionnement du GROUP BY, fonctionnement du HAVING. - Fonctions GROUPING. Syntaxe. Exemples. Gestion des valeurs NULL. - Le groupe à deux niveaux. Travaux pratiques Manipulation de la syntaxe et des fonctionnalités de groupements. 3) Agrégation et analyse des données - Extensions ROLLUP et CUBE. Expression de GROUPING SET. - Fonctions de groupes. Fonctions analytiques. La clause de partitionnement. - La clause d'ordre. La clause de fenêtrage. Fonctions de classement. - Ordonner les tris. Fonctions de classement. Fonctions de fenêtres. Travaux pratiques Manipulation de la syntaxe et des fonctionnalités d'agrégation. 4) La clause MODEL - La mise en oeuvre. La fonction CV. - La fonction ITERATION_NUMBER. La fonction PRESENTNNV. - La fonction PRESENTV. La fonction PREVIOUS. Travaux pratiques Manipulation de la syntaxe de la clause MODEL. 5) Mise à jour des données - Insertion multitables. Insertion sans condition. - INSERT_ALL, INSERT_FIRST. Mises à jour conditionnées. Travaux pratiques Alimentation du modèle en étoile. 6) Objets - Les ETL (Extraction, Transformation, Chargement). - Interrogation de tables externes. Vues du dictionnaire de données. - Vues Matérialisées (VM). Intérêt. Syntaxe de création. Options. - Vues Matérialisées et optimisation. Réécriture de requêtes. Dimensions et hiérarchies. Travaux pratiques Utilisation des tables externes pour le déplacement des données. Création des vues matérialisées pour optimiser les requêtes. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 102 Stage pratique de 3 jour(s) Réf : ORD Participants Concepteurs, développeurs et toute personne impliquée dans des développements utilisant la base de données Oracle. Pré-requis Bonnes connaissances de SQL. Prix 2017 : 1880€ HT Dates des sessions Paris 10 oct. 2016, 14 nov. 2016 5 déc. 2016, 16 jan. 2017 13 fév. 2017, 13 mar. 2017 10 avr. 2017, 22 mai 2017 19 juin 2017, 3 juil. 2017 28 aoû. 2017 Développer en PL/SQL Best > Développement logiciel > PHP, C, C++, autres langages Le cours PL/SQL a comme objectif la maîtrise du langage PL/SQL et l'utilisation des traitements stockés et des triggers dans les applications. Les concepts abordés sont systématiquement mis en pratique. OBJECTIFS PEDAGOGIQUES Comprendre le traitement transactionnel dans Oracle. Maîtriser les éléments du langage PL/SQL Savoir accéder une base de données Oracle Créer des procédures et de fonctions stockées Utiliser les différents types des triggers 1) Introduction et rappels 2) Eléments du langage 3) Accès à la base 4) Traitements stockés 5) Gestion des erreurs 6) Triggers 7) Compléments 1) Introduction et rappels Bordeaux - Traitement transactionnel dans Oracle. - Objets et dictionnaire d'une base Oracle. - SQL et PL/SQL. Vue globale de PL/SQL. - Outils utilisés. Documentation Oracle. 12 déc. 2016, 27 fév. 2017 16 mai 2017, 3 juil. 2017 2) Eléments du langage Bruxelles - Environnements hôtes. Introduction syntaxique. Déclarations de variables et de constantes PL/SQL. - Types de données et conversion. Fonctions prédéfinies. - Instructions de contrôle : IF- ELSE, la boucle LOOP, la boucle FOR. - Types composites : records, tables indexées. - Types objets. Définition des sous-programmes. - Paramétrage des sous-programmes. Aix 28 nov. 2016, 13 fév. 2017 22 mai 2017 12 déc. 2016, 20 fév. 2017 29 mai 2017 Geneve 12 déc. 2016, 20 fév. 2017 29 mai 2017 Grenoble 28 nov. 2016, 27 fév. 2017 16 mai 2017, 3 juil. 2017 Lille Exercice Déclaration de variables. Manipulation de la date. Attributs de typage. Utilisation des collections et de leurs méthodes. 28 nov. 2016, 13 fév. 2017 22 mai 2017 3) Accès à la base Luxembourg - La base et la notion de curseur. - Accès via curseur implicite : update, delete, insert, select. Utiliser les clauses RETURNING et BULK COLLECT. - Collections et FORALL. - Boucles FOR à curseur. Curseurs en mise à jour. - Curseurs explicites. Variables curseur. 12 déc. 2016, 20 fév. 2017 29 mai 2017 Lyon 28 nov. 2016, 27 fév. 2017 16 mai 2017, 3 juil. 2017 Montpellier 12 déc. 2016, 13 fév. 2017 22 mai 2017 Nantes 12 déc. 2016, 13 fév. 2017 22 mai 2017 Rennes 12 déc. 2016, 13 fév. 2017 22 mai 2017 Sophia-antipolis Exercice Utilisation de curseur explicite et de BULK COLLECT. 4) Traitements stockés - Gestion de sous-programmes stockés, de bibliothèques stockées et de paquetages. - Gestion des traitements stockés : droits d'accès, vues du dictionnaire et dépendance. - Utilisation des packages. Exercice Création de procédures, de fonctions stockées et de paquetages. 28 nov. 2016, 13 fév. 2017 22 mai 2017 5) Gestion des erreurs Strasbourg - Traitement d'une exception. - Utilisation de RAISE_APPLICATION_ERROR. - Déclenchement d'une exception via RAISE. - Propagation et gestion transactionnelle. 28 nov. 2016, 13 fév. 2017 22 mai 2017 Toulouse 12 déc. 2016, 27 fév. 2017 16 mai 2017, 3 juil. 2017 Exercice Utilisation de Raise et de RAISE_APPLICATION_ERROR. 6) Triggers - Définition et types de triggers Evénement/Action. Triggers Ordre. - Lignes (utilisation de : NEW et : OLD), E/C/A (Evénement/Condition/Action). ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 103 - " INSTEAD OF " sur les vues, sur les événements système. - Utilisation des transactions autonomes. Exercice Création de triggers ordre et triggers ligne. 7) Compléments - SQL dynamique. Utilisation de dbms_application_info et de WRAP pour cacher le code source. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 104 Stage pratique de 3 jour(s) Réf : DSP Participants Développeurs Oracle. Pré-requis Bonnes connaissances de la programmation PL/SQL ou connaissances équivalentes à celles apportées par le stage " Développer en PL/SQL " (réf. ORD). Prix 2017 : 1880€ HT Dates des sessions Paris 28 nov. 2016, 6 fév. 2017 22 mai 2017, 17 juil. 2017 Développer en PL/SQL, perfectionnement > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage vous apprendra à écrire des programmes PL/SQL et à tirer le meilleur parti des fonctions avancées : packages, curseurs, méthodes d'interface avancées et ensembles. Il aborde le développement, le code SQL dynamique et les notions conceptuelles nécessaires à un codage efficace. 1) Rappels sur le PL/SQL 2) Les ensembles 3) Les procédures et les fonctions stockées 4) Les performances et la mise en mémoire cache 5) Les packages 6) Les déclencheurs 7) Le SQL dynamique 1) Rappels sur le PL/SQL - Décrire les types de données prédéfinis. - Créer des sous-types basés sur des types existants. - Répertorier les règles de conception d'un curseur. 2) Les ensembles - Présentation des ensembles. - Tableaux associatifs et tables imbriquées. - Programmes PL/SQL qui utilisent des ensembles. - Le stockage des ensembles dans les tables. - Les ordres SQL dans PL/SQL. - L'utilisation de la clause RETURNING, BULK COLLECT. Travaux pratiques Utiliser les traitements de masse pour améliorer les performances. 3) Les procédures et les fonctions stockées - Créer une conception modulaire. - Créer, appeler et supprimer des procédures stockées. - Implémenter les paramètres de procédure. - Implémenter le hint de compilation NOCOPY. - Créer, appeler et supprimer des fonctions stockées. - Identifier les restrictions liées aux appels de fonctions. Travaux pratiques Visualiser les informations des procédures à l'aide des vues du dictionnaire de données et de SQL Developer. 4) Les performances et la mise en mémoire cache - Décrire la mise en mémoire en cache des résultats. - Utiliser le cache des résultats d'interrogation SQL. - Cache des résultats de fonction PL/SQL. Travaux pratiques Vérifier les principaux aspects du cache des résultats de fonction PL/SQL. 5) Les packages - Identifier les composants d'un package. - Utiliser le package STANDARD et les fonctions de package. - Contrôler les effets de bord des sous-programmes PL/SQL. Travaux pratiques Créer la spécification et le corps d'un package. Afficher le code source PL/SQL à l'aide du dictionnaire de données. Appeler des tables PL/SQL d'enregistrements dans des packages. 6) Les déclencheurs - Comment implémenter les déclencheurs ? - Présentation des déclencheurs combinés. - Déclencheur combiné pour les tables et les vues. - Créer des déclencheurs sur les instructions LDD. Travaux pratiques Créer des déclencheurs LMD, INSTEAD OF. Implémenter un déclencheur combiné pour résoudre l'erreur de table en mutation. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 105 7) Le SQL dynamique - Flux d'exécution du code SQL. - Présentation du code SQL dynamique. - Déclarer des variables de curseur. Travaux pratiques Exécuter dynamiquement un bloc PL/SQL. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 106 Stage pratique de 4 jour(s) Réf : OPT Participants Ce cours s'adresse aux développeurs et administrateurs d'applications. Pré-requis Bonnes connaissances des langages SQL et PL/SQL. Prix 2017 : 2440€ HT Dates des sessions Oracle, optimisation d'applications Best > Développement logiciel > PHP, C, C++, autres langages Grâce à ce cours pratique, vous serez en mesure de réduire d'une manière décisive les temps de réponse de vos applications. Vous comprendrez le fonctionnement de l'optimiseur intégré et des outils d'analyse et de gestion d'Oracle. Vous serez en mesure d'écrire des requêtes SQL performantes. OBJECTIFS PEDAGOGIQUES Découvrir les outils et les techniques d'aide à l'optimisation des applications Maitriser fonctionnement de l'optimiseur intégré d'Oracle Optimiser le schéma relationnel et les requêtes SQL Analyser et optimiser les performances des applications Savoir exécuter des requêtes en parallèle Paris 11 oct. 2016, 15 nov. 2016 13 déc. 2016, 14 fév. 2017 11 avr. 2017, 20 juin 2017 22 aoû. 2017 Aix 20 déc. 2016, 28 mar. 2017 30 mai 2017 Bordeaux 15 nov. 2016, 28 mar. 2017 9 mai 2017 1) Introduction 2) Traitement des requêtes SQL 3) Diagnostic et mesure de performance 4) Optimisation du schéma relationnel 1) Introduction Bruxelles - Démarche, étapes et acteurs de l'optimisation. - Problèmes de performances. - Particularités des types d'applications. Problématiques. 20 déc. 2016, 14 mar. 2017 20 juin 2017 2) Traitement des requêtes SQL Geneve 20 déc. 2016, 14 mar. 2017 20 juin 2017 Grenoble 20 déc. 2016, 28 mar. 2017 9 mai 2017 Lille 20 déc. 2016, 28 mar. 2017 30 mai 2017 Luxembourg 20 déc. 2016, 14 mar. 2017 20 juin 2017 Lyon 20 déc. 2016, 28 mar. 2017 9 mai 2017 Montpellier 15 nov. 2016, 28 mar. 2017 30 mai 2017 Nantes 15 nov. 2016, 28 mar. 2017 30 mai 2017 Rennes 15 nov. 2016, 28 mar. 2017 30 mai 2017 Sophia-antipolis 20 déc. 2016, 28 mar. 2017 30 mai 2017 Strasbourg 20 déc. 2016, 28 mar. 2017 30 mai 2017 Toulouse 15 nov. 2016, 28 mar. 2017 9 mai 2017 5) L'optimiseur 6) Optimisation des requêtes 7) Exécution en parallèle des requêtes - Mécanismes internes. Partage des curseurs. Variables de lien dans SQL*Plus et Enterprise Manager. - Partage des curseurs. Fonctionnalité Adaptive Cursor Sharing. Cache de résultat. Travaux pratiques Utilisation des bind variables pour partager des curseurs. 3) Diagnostic et mesure de performance - Outils d'optimisation. Traces de diagnostic. Services avec les applications client. - Trace pour votre session. Fichiers de trace SQL. Les fichiers de trace SQL. Travaux pratiques Utilisation de Tkprof. 4) Optimisation du schéma relationnel - Structures principales et chemins d'accès. Balayage complet de table. - Accélérer les requêtes. Index B*Tree et Bitmap. Tables index. Index composites et index invisibles. - Règles de gestion des index. Tables globales temporaires. - Partitionnement des données. Vues matérialisées. Colonnes virtuelles. Travaux pratiques Optimisation de requêtes. 5) L'optimiseur - Recherches de données. Optimisation statistique ou syntaxique. Statistiques destinées à l'optimiseur. - Collecte dynamique des statistiques. Conversions de types de données. Evaluation des expressions. - Opérateurs de comparaison. Sous-interrogations. Méthodes de jointure et d'accès aux données. - Optimisation manuelle des requêtes par hints. Travaux pratiques Comparaison des optimiseurs statistique et syntaxique. 6) Optimisation des requêtes - La conception et l'applicatif. Prédicats composés. Arborescences. Fonctions de groupes. - Boucles inutiles. Vues et requêtes imbriquées. Updates synchronisés. Les tableaux dans PL/SQL. - Curseurs implicites/explicites et récupération des lignes par lot. FORALL. Travaux pratiques Optimisation de traitements batch. 7) Exécution en parallèle des requêtes - Un serveur à plusieurs CPU. Requêtes en parallèle. Réglage automatique des instructions SQL. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 107 - Réglage d'une application. Fonction de conseil STA. Statistiques obsolètes sur les objets. - Profilage des instructions SQL. Flux de réglage d'un plan et création de profil SQL. - Database Control et fonction de conseil STA. Recommandations d'implémentation. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 108 Stage pratique de 2 jour(s) Réf : MYP Participants Pour toute personne désirant se servir de SQL dans les environnements MySQL ou PostgreSQL. Pré-requis Aucune connaissance particulière. Prix 2017 : 1440€ HT Dates des sessions SQL pour MySQL et PostgreSQL Best > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Cette formation très pratique focalise sur les aspects essentiels du langage d'interrogation SQL, tant du point de vue logique que syntaxique. Elle vous apportera également une méthode sûre pour écrire des requêtes, simples et complexes, en environnement MySQL et PostgreSQL. 1) Introduction 2) Modèle relationnel 3) Les outils client 4) Les objets 5) Requêtes simples 6) Tris et agrégats 7) Jointures 8) Requêtes complexes Paris Travaux pratiques 28 nov. 2016, 16 mar. 2017 12 juin 2017 L'apprentissage du SQL se fait en environnement MySQL ou PostgreSQL, au choix du participant. Aix 8 déc. 2016 Bordeaux 9 nov. 2016 Grenoble 8 déc. 2016 Lille 8 déc. 2016 Lyon 8 déc. 2016 Montpellier 9 nov. 2016 Nantes 9 nov. 2016 Rennes 9 nov. 2016 Sophia-antipolis 8 déc. 2016 Strasbourg 8 déc. 2016 Toulouse 9 nov. 2016 1) Introduction - Serveur MySQL/PostgreSQL. - Versions et évolution. - Ressources et documentation. 2) Modèle relationnel - Les principes du modèle relationnel. - L'algèbre relationnelle : opérations relationnelles sur les ensembles de données. - Introduction à SQL. 3) Les outils client - L'outil client MySQL. - Présentation de l'outil "PSQL" de PostgreSQL. 4) Les objets - Types de données dans MySQL/PostgreSQL. - Création de tables. - Utilisation de colonnes auto-incrémentées. - Utilisation des vues. Travaux pratiques Utilisation des outils "mysql" et "psql". Création de tables et mise à jour de données. Utilisation des vues. 5) Requêtes simples - L'interrogation (SELECT). - La mise à jour. - Opérateurs et critères. - Les transactions. Travaux pratiques Ecriture de requêtes SQL simples. 6) Tris et agrégats - Tri et doublons : clause ORDER BY, clause LIMIT, clause OFFSET, suppression des doublons. - Utilisation de NULL : opérateur IS NULL. - Utilisation des fonctions. - Utilisation des agrégats. Travaux pratiques Manipulation des fonctions de tris et d'agrégats. 7) Jointures - Produit cartésien. - Jointure interne. - Jointure externe. 8) Requêtes complexes - Les requêtes imbriquées : opérateur IN, opérateur EXISTS, requêtes imbriquées plus générales. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 109 - Opérateurs ensemblistes (union, intersection, différence). - Groupement de données (clause GROUP BY, HAVING). Travaux pratiques Ecriture de requêtes SQL simples. Utilisation de fonctions et d'agrégats, jointures et requêtes imbriquées, utilisation de GROUP BY et HAVING. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 110 Stage pratique de 3 jour(s) Réf : MSQ Participants Ce stage s'adresse à tous les informaticiens ayant à développer pour MySQL. Pré-requis Connaissances de base d'un système d'exploitation (Windows, Linux/Unix). Prix 2017 : 1660€ HT Dates des sessions Paris 24 oct. 2016, 21 nov. 2016 19 déc. 2016, 13 fév. 2017 18 avr. 2017, 19 juin 2017 21 aoû. 2017 Aix 5 déc. 2016 Bordeaux 12 déc. 2016 MySQL, prise en main Best > Développement logiciel > PHP, C, C++, autres langages Ce cours vous permettra d'acquérir toutes les compétences nécessaires à l'utilisation efficace et fiable de la base de données MySQL : la pratique du langage SQL, les objets de la base de données... Ce stage propose également une introduction à l'administration. OBJECTIFS PEDAGOGIQUES Découvrir les éléments d'une base de données MySQL Comprendre le modèle relationnel Concevoir et créer une base des données Manipuler des données avec SQL et SQL procédural Découvrir les bases de gestion d'une base de données 1) Introduction et prise en main 2) Modèle relationnel, conception et création d'une base 3) Pratique du SQL avec MySQL 4) Tables transactionnelles InnoDB 5) SQL procédural 6) Connexions, droits d'accès, sécurité 7) Introduction à l'administration Travaux pratiques Tout au long du stage, de nombreux travaux pratiques permettent de valider les connaissances théoriques. Bruxelles 12 déc. 2016, 13 mar. 2017 12 juin 2017 1) Introduction et prise en main Geneve - Versions, panorama des fonctionnalités et des outils. - Ressources et documentation. - Procédure d'installation. - Paramétrages de post-installation et premiers tests. - L'outil client ligne de commandes mysql. - L'outil graphique Workbench. 12 déc. 2016, 13 mar. 2017 12 juin 2017 Grenoble 5 déc. 2016 Lille 5 déc. 2016 Luxembourg 12 déc. 2016, 13 mar. 2017 12 juin 2017 Lyon 5 déc. 2016 Montpellier 12 déc. 2016 Nantes 2) Modèle relationnel, conception et création d'une base - Eléments de conception d'un schéma de base de données. - Contraintes d'intégrité. - Types de données MySQL (numériques, chaînes, dates, types spécifiques...). - Fonctions intégrées de MySQL. - Types de tables (MyISAM, MEMORY, MERGE, InnoDB...). - Création de bases et de tables. - La base INFORMATION_SCHEMA. - Jeux de caractères, internationalisation. 12 déc. 2016 Rennes 12 déc. 2016 Sophia-antipolis Travaux pratiques Conception et création d'une base en tables MylSAM. 3) Pratique du SQL avec MySQL 5 déc. 2016 Strasbourg 5 déc. 2016 Toulouse - Sélections simples, comparaisons, tris. - Sélections multitables, différents types de jointures. - Requêtes imbriquées, préparées. - Modifications et gestion des vues. 12 déc. 2016 Travaux pratiques Sélections simples. Sélections multiples, jointures internes et externes, requêtes imbriquées. Modifications et suppressions de données. 4) Tables transactionnelles InnoDB - Notion de transaction, niveaux d'isolation. - Structure physique des tables. - Programmation des transactions (START TRANSACTION, COMMIT, ROLLBACK). Travaux pratiques Mise en oeuvre de transactions. 5) SQL procédural - Procédures stockées et fonctions. - Définition des procédures. Déclencheurs (Triggers). - Gestion des erreurs. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 111 Travaux pratiques Ecriture de procédures stockées. Récupération de résultats à l'aide de curseurs. Création et utilisation de triggers. 6) Connexions, droits d'accès, sécurité - Niveaux de privilèges et vérification des droits. - Gestion des utilisateurs et de leurs privilèges. - Sécurisation des procédures stockées et des vues. Travaux pratiques Gestion des privilèges et des mots de passe. 7) Introduction à l'administration - Exportation de données. - Sauvegardes, la commande mysqldump. - Survol de l'installation de MySQL. Travaux pratiques Exportation de données. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 112 Stage pratique de 3 jour(s) Réf : POS Participants Développeurs, exploitants et toute autre personne désireuse d'utiliser au mieux PostgreSQL ou de migrer vers PostgreSQL. PostgreSQL, prise en main Best > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Le SGBD PostgreSQL dispose de la majorité des fonctionnalités que l'on peut trouver dans des produits commerciaux comme Oracle ou DB2. Cette formation vous apprendra à l'utiliser de manière efficace, notamment à créer et à exploiter une base de données, ou encore à programmer avec le langage PL/pgSQL. Pré-requis Connaissances de base d'un système d'exploitation (Windows, Linux/Unix). Prix 2017 : 1660€ HT Dates des sessions Paris 14 nov. 2016, 20 fév. 2017 24 avr. 2017, 26 juin 2017 Aix 12 déc. 2016 1) Introduction 2) SQL avec PostgreSQL 3) Le langage PL/pgSQL 4) Maintenance des données 5) Gestion des utilisateurs et des groupes 6) Configuration de PostgreSQL 7) Compléments 1) Introduction - Présentation de PostgreSQL, versions. - Le modèle relationnel, le schéma. - Tables, contraintes. Interfaces utilisateur. 2) SQL avec PostgreSQL Bordeaux 28 nov. 2016 Bruxelles 5 déc. 2016, 13 mar. 2017 19 juin 2017 Geneve 5 déc. 2016, 13 mar. 2017 19 juin 2017 Grenoble 12 déc. 2016 Lille 12 déc. 2016 Luxembourg 5 déc. 2016, 13 mar. 2017 19 juin 2017 Lyon 12 déc. 2016 Montpellier 28 nov. 2016 Nantes 28 nov. 2016 Rennes 28 nov. 2016 Sophia-antipolis 12 déc. 2016 Strasbourg 12 déc. 2016 Toulouse 28 nov. 2016 - La norme SQL. Positionnement de PostgreSQL. Mise en place du schéma d'une base. - Type de données PostgreSQL. Tables. Séquences. Vues. Contraintes d'intégrité sur les tables. - Ajout, modification et suppression des données. - Interrogation du schéma d'une base. Sélection, restriction, tri, jointure. - Extractions complexes. Utilisation d'opérateurs. Spécificités SQL de PostgreSQL. - Fonctionnalités avancées PostgreSQL. Transactions. Vues. Tableaux. Héritage de tables. Travaux pratiques Création d'un schéma. Script SQL DDL. Création de vues. Scénarios de transactions. 3) Le langage PL/pgSQL - Les instructions, types du langage. Blocs de code. - Structures de contrôle. Erreurs et exceptions. - Les curseurs. Déclaration, déplacement et fermeture. - Les procédures et les fonctions. - Ajout de sous-programmes à une base de données. - Les déclencheurs, triggers. Structure. Travaux pratiques Fonctions stockées. 4) Maintenance des données - Importation/exportation de données. - Avec COPY TO et COPY FROM. Avec Psql. - Sauvegarde et restauration des données. - Outils pg_dump. Optimisation de requêtes. - Les index. L'optimiseur. EXPLAIN et VACUUM. Travaux pratiques Importation/exportation de données. Création d'index et analyse de plan d'exécution de requêtes. 5) Gestion des utilisateurs et des groupes - Création. Authentification. - Octroi de privilèges. Travaux pratiques Création d'utilisateurs, allocation de droits. Tests d'authentification. 6) Configuration de PostgreSQL - Installation et démarrage d'une base. - Le Postmaster. Le fichier Postgresql.conf. - Tables système. Travaux pratiques Installation d'une base et configuration. 7) Compléments ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 113 - Les interfaces de programmation. - Connexion de PostgreSQL avec PHP, JDBC, ODBC. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 114 Stage pratique de 3 jour(s) Réf : DAV Participants Ce stage s'adresse à des développeurs désirant avoir des connaissances approfondies sur les possibilités offertes par PostgreSQL. Pré-requis Bonnes connaissances du langage SQL et de PostgreSQL. Expérience requise. Prix 2017 : 1960€ HT Dates des sessions PostgreSQL, optimiser vos developpements > Développement logiciel > PHP, C, C++, autres langages Cette formation est destinée à ceux qui désirent aller plus loin dans l'utilisation de PostgreSQL. Ce système de gestion de bases de données est l'un des plus avancés sur l'implémentation de la norme SQL. Il permet d'en appliquer les dernières spécifications comme, par exemple, les directives WINDOW et PARTITION BY. OBJECTIFS PEDAGOGIQUES Enumérer les nouveautés de la norme SQL Identifier les possibilités de développement offertes par PostgreSQL Développer des applications optimisées pour PostgreSQL 1) Rappels 2) Création de base de données, de schémas et de types de données 3) Création de tables et de vues 4) Mise en oeuvre de requêtes complexes 5) Gestion des transactions 6) Gestion des utilisateurs, des rôles et des droits 7) Mise en oeuvre de procédures stockées 8) Interfaces de programmation client Paris Travaux pratiques 3 oct. 2016, 12 déc. 2016 20 mar. 2017, 6 juin 2017 Au cours de cette formation vous effectuerez des requêtes à partir de tables contenant plusieurs types de champs : géométriques, tableaux, textes... 1) Rappels - Configuration du serveur et des accès. - Le client ligne de commande et graphique. Exercice Configuration du serveur et test des clients psql et pgadmin3. 2) Création de base de données, de schémas et de types de données - Choix du template et du charset. Le search_path. - Types prédéfinis (monétaires, ...) et types tableaux. - Domaines et types utilisateurs. - Définition de nouveaux types de base en langage C. Exercice Création d'une base de données avec schémas et search_path. 3) Création de tables et de vues - Contraintes de clés étrangères. - Tables héritées (EXTENDS). Tables partitionnées. - Indexation. Vues matérialisées. Travaux pratiques Création de tables avec clés étrangères. Création de vues matérialisées. 4) Mise en oeuvre de requêtes complexes - Agrégats. Jointures. Sous-requêtes. - Clauses WINDOW et PARTITION BY. - Recherche en mode FULL TEXT. - Analyse des requêtes avec EXPLAIN. Exercice Exploration des tables. Recherche plein texte. Analyse de requêtes. 5) Gestion des transactions - Points de rebroussement. Niveaux d'isolation. - Verrous explicites de lignes et de tables. - Verrous informatifs pour les applications. Exercice Test des divers modes d'isolation et de verrous ligne/table. 6) Gestion des utilisateurs, des rôles et des droits - Utilisateurs et rôles. - Héritage de rôles, organisation en groupes. - Rôle PUBLIC. Droits. Exercice ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 115 Déclaration d'utilisateurs et activation de l'authentification. 7) Mise en oeuvre de procédures stockées - Procédures écrites en PL/pgSQL en Perl et en C. - Curseurs. Définition d'opérateurs. - Mise en place de déclencheurs (triggers). Exercice Définition d'un type de base avec opérateur et fonctions de conversion associés. Définition d'une fonction d'agrégation. 8) Interfaces de programmation client - Programmation en C, en Perl et en PHP. - Récupération d'éléments graphiques dans la base de données. - Traitement des transactions SQL par les exceptions. Exercice Création d'un programme C assurant l'écriture/lecture d'une BD. Réalisation d'une interface Web en PHP à partir des tables PostgreSQL. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 116 Stage pratique de 2 jour(s) Réf : GIT Participants Développeurs, architectes, chefs de projet. Pré-requis Mettre en œuvre le contrôle de versions avec le système GIT > Développement logiciel > PHP, C, C++, autres langages Vous apprendrez dans ce stage à installer, configurer et utiliser GIT au quotidien pour gérer votre code source. Vous mettrez en place différents dépôts, apprendrez à gérer les branches de vos projets et résoudrez les conflits survenant lors d'opérations de fusion. Vous manipulerez également les outils annexes à GIT. Aucun. OBJECTIFS PEDAGOGIQUES Prix 2017 : 1600€ HT Dates des sessions Paris 6&27 oct. 2016, 8 déc. 2016 19 jan. 2017, 23 mar. 2017 22 juin 2017, 31 aoû. 2017 Comprendre les concepts de base de la gestion des versions et des apports de la décentralisation Installer et configurer l'outil GIT sous Windows Créer et initialiser un dépôt avec GIT Manipuler les commandes de GIT pour gérer les fichiers et les branches Mettre en ouvre un projet en mode collaboratif avec GIT 1) Présentation de GIT 2) Installation et configuration 3) Utilisation de GIT, les fondamentaux 4) Gestion locale des fichiers 5) Gestion des branches 6) Partage du travail et collaboration 7) Mise en oeuvre des Outils GIT 1) Présentation de GIT - Concepts de base du contrôle de version. - La gestion centralisée ou distribuée. - Les différentes solutions de gestion de versions : (GIT, CVS, SVN, Mercurial, Bazaar, ..., ). - Apports la décentralisation. Principe de fonctionnement. 2) Installation et configuration - Installation sous différents systèmes : UNIX/Windows. - Le système d'émulation sous Windows msysgit. - Configuration du fichier .gitconfig. La console. - Déclaration d'un outil d'analyse de différentiel de versions. Travaux pratiques Installation et configuration de GIT sous Windows. 3) Utilisation de GIT, les fondamentaux - Le modèle objet GIT : blob, tree, commit et tag. - Le répertoire GIT et le répertoire de travail. - L'index ou staging area. - Création et initialisation un dépôt. - Les concepts de branche, tag et de dépôt. - Outil de visualisation Gitk. Travaux pratiques Création et initialisation d'un dépôt. Utilisation de l'outil de visualisation Gitk. 4) Gestion locale des fichiers - Consultation de l'état de l'arbre de travail. - Ajout, ignorance, modification, suppression et recherche de fichiers. - Annulation et visualisation des modifications. - Parcours de l'historique des révisions. - Les logs (statistique, formatage, ...). Travaux pratiques Manipulation des principales commandes GIT de gestion de modifications de fichiers. 5) Gestion des branches - La branche « master ». - Création de branches et de sous-branches. - Changement de branche. - Fusion d'une branche et gestion des conflits. - Comparaison de deux branches. Travaux pratiques Les principales commandes GIT de gestion des branches (création, fusion, comparaison). 6) Partage du travail et collaboration ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 117 - Mise en place d'un dépôt distant public ou privé. - Publier ses modifications (opération de push). - Récupération des modifications de l'équipe. - Les branches de suivi. Gestion des échecs. Travaux pratiques Mise en place d'un dépôt distant et simulation d'un travail collaboratif. 7) Mise en oeuvre des Outils GIT - Git-gui et TortoiseGIT, la navigation graphique dans GIT. - GITWeb, la navigation graphique au sein des dépôts. - GITHub, le service d'hébergement de dépôts. - Gerrit, le système de revue de code. Travaux pratiques Manipulation de quelques outils. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 118 Stage pratique de 3 jour(s) Réf : RUR Participants Programmeurs, développeurs Web et Webmasters désirant concevoir des sites Internet professionnels orientés Web Services. Pré-requis Connaissances de base d'HTML, de JavaScript, d'un langage de développement côté serveur et en administration d'un serveur Web. RUBY On Rails 4, développement Web > Développement logiciel > PHP, C, C++, autres langages Ce stage vous apprendra à maîtriser le framework Ruby On Rails 4 pour développer vos applications Web. Vous verrez comment tirer parti de la simplicité et de la rapidité d'utilisation de Rails 4 pour créer des applications riches et évolutives en utilisant le modèle MVC et les connecter à des Services Web. OBJECTIFS PEDAGOGIQUES Maîtriser le développement d'applications Web évoluées à l'aide du framework Ruby On Rails 4 Maîtriser l'architecture RESTful, le design pattern MVC Dynamiser une application Web y en intégrant les librairies JQuery et CoffeeScript Appliquer le développement dirigé par les tests à un développement Ruby On Rails 4 1) Introduction 2) Préparer son environnement de travail 3) Programmer en Ruby 4) Découverte de Rails 5) Notions avancées de Rails 6) Tests et versioning 7) Migration vers Rails 4 1) Introduction - Rappel Internet, HTML et CSS, XML, JSON, YAML. - Design Pattern MVC. - Les hébergeurs Rails. 2) Préparer son environnement de travail - Environnement de travail (interpréteur Ruby). - Préparer le dossier de travail. - Les outils en ligne de commande. - Installer les outils de développement. Travaux pratiques Installation de l'environnement. 3) Programmer en Ruby - Rappel objet (modules, classes, instances, UML...). - Conventions de nommage de Rails. - Syntaxe Ruby (module, classe, portée, méthodes...). - Aides Ruby (RI, Rubycore, inspect). Travaux pratiques Réaliser un premier programme. 4) Découverte de Rails - Architecture Rails (ActiveRecord, ActiveModel, ORM, ActionVue, ActionController, routage des requêtes...). - Préparer une maquette HTML/CSS dans le respect des normes (XHTML/WCAG 2). - Créer un contrôleur de pages statiques. - Etablir des modèles de pages (application/contrôleur). - Mise en place de scripts de vues ERB, RHTML, HAML, Liquid, SASS, SCSS, RJS, CoffeeScript, RXML. - Utiliser des assistants de pagination. Gestion des gems dans l'application. - Placer des ressources partagées. - Paramétrage de la BDD (database.yml), création et "migration" d'une base de données. Travaux pratiques Réaliser une application avec Rails. 5) Notions avancées de Rails - Le CRUD, RESTFul Web Services, ActiveRecord et le routage orienté ressources, routage avancé des requêtes. - Les migrations d'ActiveRecord. Les transactions. - Les formulaires Rails (form_for...). Les filtres. - Internationaliser "i18n". Intégrer l'UNICODE côté client et côté serveur. - Gérer les sessions, les Cookies et le cache. - Protéger et sécuriser ses pages côté client et serveur. - Débogue, la console iRb, les points d'arrêt. - Dynamiser son site avec Ajax, JQuery et CoffeeScript. Travaux pratiques Ecriture de formulaires. Intégration de JQuery et CoffeeScript dans les développements. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 119 6) Tests et versioning - Le TDD (Test Driven Development). - Rails Tests et RSpec. - Gérer les versions avec GIT. Travaux pratiques Application du TDD. Gestion des sources avec GIT. 7) Migration vers Rails 4 - Les fonctionnalités de Rails converties en gems. - Utilitaire de migration. Travaux pratiques Migrer une application Rails 3. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 120 Stage pratique de 3 jour(s) Réf : BOL Participants Cette formation s'adresse aux informaticiens qui souhaitent acquérir une formation opérationnelle pour développer ou maintenir des applications en Cobol. Pré-requis Connaissances de base en programmation. Expérience souhaitable d'un langage de développement. Prix 2017 : 1880€ HT Programmation Cobol > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Cette formation a pour objectif de communiquer aux stagiaires une réelle compétence dans la programmation Cobol. L'ensemble des concepts fondamentaux est développé. A l'issue de ce stage, les participants savent lire, écrire et mettre au point des applications Cobol. 1) Premiers pas en Cobol 2) Les données 3) Instructions et expressions 4) Les tableaux 5) Les fonctions 6) Programmes et sous-programmes 7) Les fichiers 8) Les impressions Travaux pratiques De nombreux travaux pratiques illustrent systématiquement les concepts présentés. Ils représentent 60 % du cours. Dates des sessions Paris 12 déc. 2016, 27 fév. 2017 29 mai 2017 1) Premiers pas en Cobol - Le langage Cobol : ses origines et ses évolutions. Ses principes généraux. - Les nouvelles versions de Cobol, Cobol et l'approche objet. - Les différentes parties d'un programme (division). - Les différentes zones (numéros d'ordre, indicateur, A, B). - Les principaux symboles du langage (mots et littéraux). - Les compilateurs : leur utilité. - Les outils de debug. 2) Les données - Les différents formats, les chaînes de caractères (ou Pictures), les niveaux. - Les constantes figuratives. La redéfinition d'une donnée. - Manipulation des données. Inspect, les paramètres utilisés dans les commandes. String et Unstring. 3) Instructions et expressions - La description des traitements. La procédure division. Structure de base d'une instruction. - Accept, Display, Move, les différentes zones (alphabétiques, alphanumériques, numériques). - Les paramètres utilisés dans les commandes. - Instructions arithmétiques : Compute, expressions arithmétiques, règles d'évaluation, Add, Subtract, Multiply, Divide. - Expressions conditionnelles et de branchement : Evaluate et Continue. Goto, Perform, Exit Alter. Les mots réservés. - Pour une bonne utilisation de ces instructions. 4) Les tableaux - Présentation, Set, Search. - Une utilisation différente des tableaux. - Implémentation. 5) Les fonctions - Différents modes d'appel : exemple de fonction. - Fonctions financières, statistiques, de date, mathématiques. - Autres fonctions intéressantes. 6) Programmes et sous-programmes - Les conditions d'utilisation des sous-programmes. - Call, Exit Program, Cancel, Stop, End Program. 7) Les fichiers - La description des fichiers. La data division, organisation et structure, la Linkage Section. - Les commandes de gestion des fichiers : Open, Close, Read, Start, Write, Rewrite, Delete. 8) Les impressions - Présentation. Les différents types d'édition. Les différents formats de la commande d'édition : Write. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 121 Stage pratique de 4 jour(s) Réf : COR Participants Concepteurs et développeurs amenés à mettre en œuvre des applications distribuées basées sur Corba. Pré-requis Bonnes connaissances des techniques de conception objet. Très bonnes connaissances d'un langage objet (Java et/ou C++). Corba, architecture, mise en œuvre > Développement logiciel > PHP, C, C++, autres langages OBJECTIFS Ce stage vous présentera la norme Corba 2.0 et les technologies associées. Il vous apportera tous les éléments pour développer avec rigueur et efficacité des applications distribuées avec Corba dans un environnement comprenant des langages et des systèmes d'exploitation différents. 1) Introduction 2) Caractéristiques des AD, position de Corba 3) L'architecture Corba 4) Le design Corba 5) L'implémentation de Corba 6) Les clients et serveurs Corba 7) La gestion des exceptions Corba 8) Autres éléments 1) Introduction - Pourquoi des AD ? Fonctionnement en multi-tiers. - Exemples de projets. Historique des AD et de Corba. - Les apports de Corba 3, CCM. 2) Caractéristiques des AD, position de Corba - Vue d'ensemble. Approche client/serveur. - Les services standard d'une AD : annuaire, gestion de la sécurité, transactions, bases de données. - Fonctionnement des serveurs d'applications. - Cycle de fonctionnement d'une AD. Gestion des instances d'objets, des threads et des clients. - Montée en charge : Load Balancing. Round Robin... - Comparatif de Corba/autres AD. WS, EJB, DCOM, .Net ... 3) L'architecture Corba - Corba : un bus logiciel, une publication d'instances. un OA côté serveur, un protocole intéropérable GIP. - L'IR. Le référentiel des implémentations. - Le protocole GIOP. Les services Corba. - Service de noms (annuaire) et autres services. - Gestion des événements. - Architecture complète Corba. 4) Le design Corba - Retour d'expériences. Approche modèle MVC. - Utilisation de patterns de conception. 5) L'implémentation de Corba - Processus de développement Corba. - Gestion de l'IDL, génération des codes. - Création des " Stub " et " Skeleton ". - Approche DII/DSI, invocation dynamique. - Le langage IDL : possibilités et points-clés. 6) Les clients et serveurs Corba - Process de développement. - API standard. Code Java et C++ - Héritage d'interface IDL, approche TIE. Travaux pratiques Création d'un serveur Java. 7) La gestion des exceptions Corba - Exceptions systèmes Corba, utilisateurs Corba. - Fonctionnement sur le bus. Travaux pratiques Gestion d'exceptions Corba en Java. 8) Autres éléments - Le service de nom. Fonctionnement. Contraintes/Possibilités. API de programmation. Exemples de codes. - Le service de gestion des événements. - Fonctionnement. Gestion par " callback ". Proxy, administration. API de programmation. Exemples de codes. - CCM. Un modèle composants pour Corba. CIDL. Composants et interconnexions. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 122 - CCM. Packaging. Déploiement. Administration. ORSYS, La Grande Arche, Paroi Nord, 92044 Paris La Défense cedex. Tél : +33 (0)1 49 07 73 73. Fax : +33(0)1 49 07 73 78 page 123