Programmation avec .NET /Visual Studio

Objectifs:

  • Comprendre la notion d'objet
  • Identifier les points clés de la programmation orientée objet en .NET
  • Maîtriser les manipulations courantes d'objets en .NET
  • Découvrir les bases de l'utilisation de Visual Studio
  • Structurer une application logicielle en couches logiques

 

Public:

Développeurs habitués à la programmation procédurale qui souhaitent passer à la POO avec les technologies .NET.

 

Contenu:

Intérêts de la POO

Rappel des principes de la programmation procédurale.
Avantages et inconvénients de cette approche.
Exemple d'une application orientée Objet.

Travaux pratiques
Comparaison d'un même programme simple réalisé avec un découpage fonctionnel et orienté Objet.

La notion d'architecture applicative

Du Mainframe au client-serveur.
Du client-serveur aux architectures multiniveaux.
Architecture globale des applications en .NET : organisation en couches et en niveaux.
Principe du modèle en trois couches : présentation, métier et accès aux données.
Principe des applications distribuées et des architectures SOA.

Travaux pratiques
Analyse d'une application simple (starter kit) architecturée en trois couches logiques.

La notion d'objet

Démystifier la notion d'objet et terminologie associée.
Conception et manipulations d'objets (classes, instances).
Utilisation du diagramme de classes UML.

L'implémentation d'une classe

Mise en œuvre du mécanisme d'encapsulation.
Implémenter une méthode avec surcharges.
Ajouter des constructeurs. Créer un membre statique.
Définir la visibilité d'un membre et contrôler son accès.

Travaux pratiques
Manipuler les différents types de membre d'une classe.

Les concepts de la POO

Principe et intérêt du mécanisme d'héritage.
Redéfinir un membre dérivé.
Rôle des classes abstraites et des interfaces.
Faire du polymorphisme avec une interface.

Manipulations courantes d'objets en .NET

Principe de la liaison précoce ou tardive et de la réflexion.
Rôle et comportement des types valeur et référence.
Regroupement d'objets en collections.
Principe du DataBinding. Principe de LINQ.

Travaux pratiques
Se familiariser avec la manipulation des objets en .NET, avec exemple de LINQ, LINQ To Object et To SQL.

Outils et méthodes

Aperçu des techniques d'analyse (RUP ; Agile).
Tirer parti d'UML (principaux diagrammes, pièges à éviter...).
Principe et intérêt des Design Patterns.

 

Compétences et savoir-Faire:

Acquérir les concepts de la programmation orientée objet (POO) nécessaires au développement .NET.

 

Durée: 3 Mois

Développement d ´applications mobiles Android

Objectifs:

  • Découvrir la plateforme Android et les outils de développement associés
  • Découvrir le modèle de composants Android
  • Développer des interfaces utilisateurs
  • Gérer la persistance des données
  • Gérer le réseau et les échanges de données
  • Exploiter les fonctionnalités d'un Smartphone Android

 

Public:

Développeurs Java

 

Contenu:

Découvrir la plateforme Android

Les utilisations de la plateforme Android.
Le modèle Android et son architecture.
Présentation du système d'exploitation (fonctionnalité, version, outils, etc).
Les applications clés pour l'utilisation d'un terminal.
Les outils de développement, l'environnement de développement : Android Studio, SDK Android.
La mise en œuvre du SDK Android.
Les terminaux cibles (Smartphones, tablettes, assistants de navigation personnels, virtuels, etc).
L'internationalisation des applications Android.
Android et Linux.

Travaux pratiques
Mise en place d'un environnement de développement avec Android Studio et le SDK Android.

Développement Android

Les concepts de base d'une application Android.
Le cycle de vie de l'application (de l'édition du programme au test).
Présentation du framework de développement, des librairies.
Présentation des classes de base et utilitaires.
Création de son premier projet : code, ressource, propriété et détail du projet.
Exécuter son application sur le simulateur du SDK et la tester.
Le SDK Manager et la configuration des terminaux virtuels Android (AVD) : target, SDCard...
Utilisation d'un débogueur pour contrôler l'exécution des programmes.
Comment accéder aux logs de l'application ?
L'identification de l'application et le fichier manifest (version, minSDK, nom de l'application...).
La mise à disposition de son application.

Travaux pratiques
Développement d'une première application suivant le cycle de réalisation étudié.

Les interfaces utilisateurs avec Android

Vue d'ensemble du layout et de la place du composant.
Les spécificités des terminaux mobiles en matière d'affichage et d'interaction avec l'utilisateur.
Les composants graphiques : layouts, menus, listes...
Créer une interface graphique avec les views.
La mise en place de menus (principal, icône, sous-menu...).
La mise en place des conteneurs layouts (Gallery, GridView, ScrollView...).
La gestion événementielle (mise en place, réaction, écoute).
Styles et thèmes appliqués aux widgets.
Notification de l'utilisateur (barre de notification, toast, boîtes de dialogue).
Ressources alternatives : multi-devices, localisation.

Travaux pratiques
Réalisation d'une application avec interface graphique.

Le modèle de composants

Le concept de base : activité et cycle de vie.
Les composants fondamentaux : Activity, Service, BroadcastReceiver, ContentProvider, Intents.
L'arrêt des composants (finish, stopSelf...).
Les activités (cycle de vie, navigation entre les activités, communication interactivités...).
Les services (cycle de vie, tâches de fond...). Les types de services (locaux et distants).
Les différences entre une activité et un service.
Le lancement d'une activité, ses principaux états.
Le langage AIDL (Android Interface Description Language). Le bus de messages et les Intents.

Travaux pratiques
Transmission d'informations d'une Activity à une autre à l'aide du mécanisme d'Intents.

La persistance des données

Comment partager des données entre les applications ?
La sauvegarde de données simple.
Utilisation des préférences (SharedPreferences, le mode de lecture). Récupération d'un ensemble de préférences.
Utilisation du système de fichiers (dont XML).
L'emplacement des fichiers contenant les données (zone internal/external).
Utilisation de la base de données embarquée (SQLite), insertion de données.
Utilisation de l'API Android.

Travaux pratiques
Mise en œuvre de fonctionnalités de stockage sur un terminal avec une base de données.

La gestion réseau

Rappels sur la programmation réseau.
Communication avec une Socket serveur.
Utiliser HTTP avec les API Android.
Introduction à la consommation des services Web.
Parser du JSON avec la librairie Gson pour Android.

Travaux pratiques
Echange de données.

Compléments

Gestion de la téléphonie. Appels. Gestion des SMS. Interactions avec la carte SIM.
Multimédia. Dessin et animations. Lecture audio et vidéo.
La capture multimédia (son, image, vidéo...).
Les API de (géo)localisation avec Google Maps.
Configurer l'émulateur pour tester la géolocalisation.

Travaux pratiques
Réalisation d'une application géolocalisée présentée à l'aide de Google Maps.

 

Compétences et savoir-Faire:

découvrir les fonctionnalités et les capacités de la plateforme Android dédiée au développement d'applications mobiles. Etude du  modèle de composants Android à la base de toute application. Développer des interfaces graphiques ergonomiques et exploiter les fonctionnalités du Smartphone Android (géolocalisation, capture multimédia...). Mise en en œuvre des mécanismes de persistance des données et d'accès au réseau.

 

Durée: 3 Mois

Programmation avec JavaScript

Objectifs:

  • Maîtriser la syntaxe du langage JavaScript
  • Manipuler la structure DOM d'une page HTML
  • Gérer la programmation événementielle
  • Interagir avec les feuilles de style CSS
  • Gérer des échanges asynchrones AJAX

 

Public:

Développeurs et chefs de projets Web.

 

Contenu:

Les technologies du Web

Présentation des types de navigateurs. Impact sur la portabilité des programmes JavaScript. Versions de JavaScript.
Les composants Web : HTML, XHTML, CSS, JavaScript, Flash, Java... Les protocoles HTTP, HTTPS.
Impact de JavaScript sur l'accessibilité et le référencement.
Importance de JavaScript sur les sites Web 2.0. Impact de la conformité XHTML sur l'utilisation dynamique de JavaScript.
Les outils de développement (éditeur, débogueur...).
Positionnement et illustration des technologies DHTML.

Le langage JavaScript

Déclaration et portée des variables.
Types de données (Number, Boolean, Date, Math, String, Array). Conversion de type. Détection de type avec typeof.
Gestion des tableaux. Opérateurs logiques et arithmétiques. Boucles (for, while...).
Création de fonctions et paramétrage variable.
Faire un codage sécurisé avec la gestion d'erreur et les exceptions.
Rappels sur les concepts objets. Développement Objet en JavaScript : création de classes (méthodes, propriétés).
Constructeur. Surcharge. Mots réservés prototype, this. Création d'instance. Usage d'Object sur les classes dynamiques.
Utilisation du format JSON pour la création de classes.
Les objets prédéfinis du langage (Array, Date, String, Regexp...) et leur utilisation. Extension des objets prédéfinis.

Exercice
Mise en œuvre des différentes fonctionnalités JavaScript à travers de multiples travaux pratiques.

Evénements et données

Organisation des événements. Impact des événements sur les types de navigateurs et versions de DOM.
Positionner des écouteurs sur des événements par programme et paramétrage de balises HTML.
Règles pour faire un codage multinavigateur.
Créer, détruire des écouteurs.
Les traitements événementiels JavaScript : gestionnaire clavier, souris, formulaires, rollover, menus dynamiques.
L'objet Event et son utilisation.
Les objets du DOM (window, document...) et leur manipulation.
Manipulation des URL (redirections http ...).
Gestion des cookies (lecture et écriture).

Exercice
Programmation d'événements multiples sur les éléments formulaire, souris, clavier...

Gestion de formulaires HTML

Manipulation de contenu de formulaires.
Accès et modification dynamique des composants du formulaire : zone de saisie, cases à cocher, cases d'options...
Fonctions de validation de formulaire.
Evénements liés aux éléments de formulaire : changement, initialisation, clic...

Exercice
Conception de fonctions personnalisées contrôlant les activités de l'utilisateur.

Interaction avec les feuilles de style en cascade

Rappel sur les feuilles de style en cascade (CSS-1, CSS-2). Les outils pour les manipuler.
Implémentation des CSS en tant que propriétés des objets du DOM.
Modification directe des propriétés CSS des objets du DOM.
Modification de l'objet CSS stylesheets.
Rendre la page dynamique via le changement des propriétés de style.

Exercice
Réalisation de pages simples afin de se familiariser à l'utilisation de feuilles de style et à leur manipulation à travers JavaScript.

Manipulation du DOM XML

Présentation du langage XML (éléments attributs).
Implémentation des parseurs XML chez Microsoft IE et les autres : variantes entre les navigateurs, maintenance...
Manipulation des objets du DOM (lecture, ajout, suppression, modification de nœuds).

Exercice
Familiarisation à la construction d'un chemin d'accès à un élément du DOM.

Ajax

Présentation de Asynchronous JavaScript And Xml.
Enjeux, solutions et alternatives.
Les bibliothèques du marché.
HTTP et Ajax : échanges HTTP et l'objet XMLHttpRequest.

Exercice
Récupération de données XML et affichage des données. Interrogation d'une base de données. Création d'un formulaire de connexion.

 

Compétences et savoir-Faire:

Connaissance pour interfacer le langage avec les éléments graphiques des pages Web et ainsi pouvoir réaliser des menus déroulants, des animations, modifier dynamiquement les styles de présentation ou encore réagir aux actions de l'utilisateur...lancer des requêtes au serveur (Ajax) et à manipuler des données XML.

 

Durée: 2 Mois