Ce qui suit concerne le cours IFT604, Applications Internet et mobilité, offert à l'Université de Sherbrooke. Vous pourrez revenir y piger du matériel même une fois le cours complété, tout en sachant que le cours évolue, que les outils évoluent, et qu'il faut lire et manipuler toute chose ci-dessous avec prudence.
![]() |
Cliquez ici pour obtenir une copie électronique du plan de cours. |
Ce qui suit liste (et, parfois, détaille) ce que nous avons vu (et, dans certains cas, ce que nous allons voir) au cours des séances en classe.
Certain(e)s d'entre vous ont manifesté de l'intérêt pour l'opportunité qui vous a été offerte d'utiliser un peu du temps à reprendre pour combler la séance 06 et la semaine où votre chic enseignant se trouvera sur un autre continent.
Les sujets proposés (et les contributeurs) sont, pour le moment :
Si vous souhaitez participer, faites-moi signe (par courriel) rapidement! Je vous rappelle (idée de Nicolas Guimier) que, si vous souhaitez discuter des stratégies et technologies que vous avez utilisé dans la réalisation de votre TP00, cela peut être considéré comme un sujet viable (dans la mesure où il y a de la viande autour de l'os, du contenu).
Séance |
Date |
Détail |
---|---|---|
S00 |
3 septembre |
Nous avons commencé par une présentation du plan de cours, de l'enseignant et des modalités particulières de ce cours. Survol un peu bric-à-brac de la matière que nous planifions couvrir au cours de la session, en faisant un peu de Name Dropping technologique. L'enseignant profite de cette première rencontre pour prendre le pouls de la classe, essayer de voir ce qui est connu de la majorité et ce qui l'est moins, et placer quelques mots et quelques concepts importants dans l'esprit des gens. Il en profite aussi pour expliquer sa façon de procéder, pour s'assurer que toutes et tous sont confortables avec cela. Nous avons soulevé la question de la gestion de la semaine S06, où se tiennent les examens de mi-session. L'enseignant suggère de tenir une séance en classe avec contenu humainement aménagé (pour tenir compte de vos réalités) mais est aussi ouvert à saupoudrer les heures de cette semaine ici et là en rallongeant d'autres séances. On s'en reparlera à la séance S03. |
10 septembre |
Nous avons pris quelques minutes pour expliquer ce qui sera notre premier travail pratique (TP00). |
|
Attention : étant donné la surpopulation de notre local de classe, nous déménagerons nos pénates au D3-2035 à partir de la séance S02! | ||
17 septembre |
Pensez envoyer à l'enseignant un courriel décrivant la composition de votre équipe et le détail de l'application que vous comptez livrer en vue du TP00, et ceci avant 17:00 aujourd'hui. Nous avons poursuivi notre survol des bases du langage C#, l'un de nos outils cette session, à partir de quelques exemples , continuant à illustrer à la fois des similitudes et des différences avec ses langages cousins (Java et C++ en particulier). |
|
24 septembre |
Pensez envoyer à l'enseignant un courriel contenant un bref rapport (une page recto/ verso ou l'équivalent) indiquant la progression de votre équipe en vue du TP00, et ceci avant 17:00 aujourd'hui. Petite discussion sur iiWAS 2010 et son impact sur nos vies. Retour sur la question du clonage, pour clarifier les raisons motivant le recours à cette technique (plutôt qu'à la copie par construction ou par affectation) sur des objets manipulés à travers des indirections polymorphiques (typiques de langages tels que C# ou Java). Survol de l'approche par composants (cours plutôt technique). D'abord avec code natif (en C++) côté client et côté serveur, en utilisant un serveur à contexte interne. Les sources des exemples sont disponibles ici. |
|
S04 |
1er octobre |
Poursuite du survol de l'approche par composants (cours plutôt technique encore une fois). D'abord, une refactorisation du système de la semaine S03. Ensuite, un exemple avec code natif côté client et côté serveur (serveur dans un contexte externe), puis avec combinaison où le code client est en C# et le code serveur est en C++. Les sources des exemples sont disponibles ici. |
S05 |
8 octobre |
Le TP00 devra être remis à l'enseignant au début de cette séance. Plusieurs petits trucs cette semaine :
Enfin, quelques trucs amusants à propos de technologies purement Web. Certains parmi vous ont mentionné craindre le prospect de séances de quatre heures, tel que nous l'avons décidé ensemble pour compenser le rejet collectif d'une séance normale en classe lors de la semaine des intras (S06). Je vous comprends; quatre heures en classe, ça peut être lourd. C'est pourquoi j'ai une proposition à vous faire : la thématique de ce cours est suffisamment vaste pour permettre d'explorer une importante variété de technologies, de langages et d'approches. Sachant cela, au lieu de vous taper quatre heures avec votre chic prof lors des séances compensatoires, que diriez-vous de préparer un petit exposé sur un sujet de votre choix (avec l'accord du prof, évidemment) ayant un lien avec les thématiques au menu du cours? Je pense entre autres (la liste n'est pas exhaustive) à :
Je pense ici à de petites présentations (15-20 minutes) que les gens intéressés pourraient construire. Je suis ouvert à des formats particuliers (deux personnes qui prennent un sujet Yin et un sujet Yang, par exemple bien programmer en PHP et mal programmer en PHP, 15 minutes chacune, le tout pour en arriver à un discours constructif évidemment). Ce que je vois avec cela, c'est une opportunité de dynamiser un peu les fins de séances (la dernière heure/ heure et demie) en bousculant les habitudes, de changer le mal de place, et de faire en sorte que le bloc de quatre heures soit moins indigeste. Si vous prenez cette perche tendue, je vous propose en échange d'évaluer la présentation et de la compter comme un minitest supplémentaire pour les gens qui auront présenté quelque chose. Ainsi, cela pourra compter dans la banque des minitests, et – en supposant que la présentation se soit bien déroulée, ce qui devrait typiquement être le cas – contribuer à améliorer votre note au bout du compte. |
15 octobre |
Semaine d'intras Suite à une entente en classe, il n'y aura pas de cours cette semaine, mais trois séances d'ici la fin de la session débuteront à 8:30 plutôt qu'à 9:30. Nous compenserons ce rallongement par une formule plus interactive, pour ne pas que vous tombiez endormi(e)s. Plus de détails quand les dates seront connues... |
|
Semaine de relâche (profitez-en!) |
||
S07 |
29 octobre |
Semaine d'entrevues de stages (on aménagera humainement les choses) Plusieurs petits trucs culturels cette semaine, pour faire pardonner le retard dans la correction :
Si vous avez manifesté le désir de présenter une thématique devant vos pairs, faites-moi signe cette semaine pour que nous fixions une date pour vous. La réservation des moments se fera sur une base premier arrivé (dans ma boîte de courriel), premier servi. Les séances S08 (si vous le souhaitez), S10, S11 et S12 sont disponibles à cette fin. Je placerai les présentations en fin de séance dans chaque cas, pour que le cours se termine sur une bonne note. |
5 novembre |
Distribution et description du TP01. Discussion sur divers sujets à partir d'une version de travail d'un document sur les applications Web (je me permets de vous laisser un PDF de 172 pages puisque le document n'est pas finalisé... C'est un cadeau, mais c'est pour vous seuls, alors ne le diffusez pas à grande échelle!). Nous aurons droit à une présentation du
sympathique Maxime Carey, qui nous fera une
présentation de Drupal : ce que c'est, comment ça fonctionne,
comment on s'en sert
|
|
Pour vous aider à démarrer avec le développement sur Windows Mobile :
Pour développer sur appareil Windows Mobile, vous aurez besoin :
Vous avez accès à des versions gratuites de chacun de ces produits. J'ai indiqué les liens vers les versions que j'utilise, mais vous devrez peut-être adapter en fonction de votre système d'exploitation. |
||
12 novembre |
Votre chic prof est sur un autre continent, mais c'est pour une bonne cause. Il pense à vous, promis juré! |
|
19 novembre |
Séance de quatre heures, incluant en fin de séance des présentations de :
Retour sur les sujets de la conférence iiWas 2010, dont le contenu concorde directement avec notre cours. Perspectives sur la lecture non-linéaire et l'utilisabilité. échanges sur la couverture sans-fil et les réalités locales. évaluation de l'enseignant (quel bonheur!). Quelques éléments techniques amusants. Ouverture sur une thématique populaire, galvaudée et controversée (le célèbre Web 2.0) et sur le Web sémantique. Vous remarquerez que, dans ces deux cas, les Wiki (en date de novembre 2010) sont... perfectibles, c'est le moins qu'on puisse dire. |
|
26 novembre |
Séance de quatre heures, incluant en fin de séance des présentations de :
Le verglas nous oppresse mais l'enseignant est tout de même présent. Bref aperçu de la mouvance NoSQL (je ne suis pas un expert des bases de données, mais faut quand même mentionner cette chose) et une discussion (accompagnée d'une démonstration) de ce qu'on peut faire avec un langage (celui-ci) de prime abord pensé pour développer à l'aide de téléphones cellulaires. |
|
3 décembre |
Le TP01 devra être remis à l'enseignant au début de cette séance. Séance de quatre heures. Journée atypique et cours au format ouvert : vous êtes sollicités pour une tâche de la plus haute importance... Note importante : en compensation avec la séance S11, teintée de verglas, je vous propose le minitest de réflexion et de lecture que vous trouverez ici (.docx, .pdf) et que vous devrez me remettre à la séance S13 (ou avant, si vous le remettez en format électronique). Rien de difficile, mais la lecture à faire pour y répondre est pertinente alors... Détail : ne vous limitez pas aux wikis pour vos recherches (je le saurai si vous faites cela, mes snorros!) |
|
10 décembre |
Séance « normale » de trois heures, incluant en fin de séance des présentations de :
Séance de type plénière sur la gestion de carrière dans un monde aussi changeant, avec perspective historique et regard critique sur le tout. Questions éthiques. |
|
S14 |
17 décembre |
Chic examen plein d'amour (local D3-2034). |
Je ne fais pas de révision, règle générale. Le temps manque, les sujets sont nombreux, et je tiens un journal ouvert (cette page Web!) listant sur une base hebdomadaire ce qui a été couvert ou survolé. De plus, vous faites des travaux, des minitests, vous prenez des notes... La révision, ça finit par être redondant. Cependant, je me permets de vous lancer, un peu pêle-mêle, quelques sujets d'intérêt survolés ou couverts, de même que d'autres sur lesquels j'aurais aimé discuter avec vous en temps normal. ça peut égayer votre révision; au pire, ça vous fera des lectures divertissantes. évidemment, tout ça s'ajoute aux trucs examinés sur une base hebdomadaire.
|
Les consignes des travaux pratiques vont comme suit.
Travail |
Remise |
Consignes |
---|---|---|
Au plus tard le 8 octobre 2010, 17:00 |
||
Au plus tard le 3 décembre 2010, 17:00 |
Des exemples de diverses natures suivent.
![]() |
Exemple simple de SCS par composants avec C++ dans le modèle COM (projet construit pour Visual Studio 2008 avec C++ ISO) :
|
![]() |
Refactorisation de l'exemple simple de SCS par composants avec C++ dans le modèle COM (projet construit pour Visual Studio 2008 avec C++ ISO) :
|
![]() |
Exemple simple de SCS par composants avec C++ dans le modèle COM (projet construit pour Visual Studio 2008 avec C++ ISO) :
|
![]() |
Exemple simple de SCS par composants avec client .NET en C# et serveur C++ ISO mêlant les modèles COM et .NET (projet construit pour Visual Studio 2008) :
Pour que le client .NET puisse accéder aux services COM simplement, il est d'usage de générer une bibliothèque de types (une .TLB) à partir de la description IDL des interfaces, puis d'intégrer cette .TLB à .NET à l'aide du programme tlbimp.exe, typiquement invoqué à la ligne de commande et sur lequel vous trouverez de la documentation en ligne. |
![]() |
Exemple simple de SCS par composants avec client C++ ISO et serveur .NET en C# (projets construits pour Visual Studio 2008) :
Pour que le client COM puisse accéder aux services du serveur .NET simplement, il est d'usage de procéder ainsi :
Pour le code C++, le code source devrait suffire. Retenez peut-être qu'importer une .TLB avec #import provoque la génération de deux fichiers de code C++ (un .TLH et un .TLI), fichiers décrivant l'interface en termes du code client. Si vous avez des bogues, examinez le contenu de ces fichiers! |
![]() |
Nous avons aussi vu un exemple de client C++ pour serveur .NET en intégrant le chargement du CLR de .NET lors du lancement du programme C++, et en ajoutant au projet C++ des références sur les assemblages .NET souhaités. Cette approche repose sur le template gcroot de <vcclr.h>. |
![]() |
Exemple de mise en application de l'approche Map/ Reduce, avec futures et Thread Pooling (en C++ ISO, projet Visual Studio 2008). |
![]() |
Exemple d'observateur avec COM (en C++ ISO, mais prudence : vieux projet Visual Studio 6, qui n'a pas été retouché depuis 2003, alors le code n'est sûrement pas à la hauteur de ce que je vous présente habituellement). |
![]() |
Exemple de système avec un serveur exposant une interface asynchrone sous COM (en C++ ISO, mais prudence : vieux projet Visual Studio 6, qui n'a pas été retouché depuis 2003, alors le code n'est sûrement pas à la hauteur de ce que je vous présente habituellement). La version à contexte externe (cible à gauche) est plus simple, mais si vous souhaitez voir une version à contexte interne, en voici une (les mêmes bémols associés au vieux code s'appliquent ici). |
Lors de quelques-unes des séances, divers exemples en C# ont été proposés. Ils ont été regroupés dans une section à part entière de ce site, que je vous invite à visiter.
![]() |
Java, exemple 00 (petit SCS à partir d'un service Web) |
Quelques liens sur l'approche NoSQL :
Plus près des produits eux-mêmes :
Évidemment, c'est un mouvement contesté :
Vous serez peut-être aussi intéressé(e)s par des liens sur le Monde Internet, des liens sur les systèmes client/ serveur, ou encore des suggestions de lecture...