[IC 09] Retour d’expérience Imagine Cup 09
Tout a commencé il y a un peu plus d’un an lorsque Julien, Olivier et moi-même avons décidé de participer au concours Imagine Cup. Passionnés par les technologies Microsoft et en particulier par les technologies .NET, il va de soi que participer au plus grand concours sur les nouvelles technologies organisé par Microsoft est un beau challenge !
De plus, étant donné que nous sommes dans la même classe et que nous travaillions alors sur un projet commun à savoir la communauté Dotnet-France, nous ne pouvions pas ne pas y participer ! Mais pour avoir une équipe complète, il nous manquait un membre + un mentor. Nous nous sommes alors tournés vers deux personnes que nous connaissions de SUPINFO : Yann Lautredou (à l’époque directeur du laboratoire .NET de SUPINFO) en tant que mentor et Mauricio Diaz Orlich (à l’époque directeur du laboratoire Web&Dev de SUPINFO).
Atout supplémentaire pour l’équipe, Mauricio étant MSP, il faisait grimper le quota à 3 MSP au total dans l’équipe en plus de Julien et Olivier.
![clip_image002[4] clip_image002[4]](http://blogs.dotnet-france.com/bertrandv/image.axd?picture=clip_image002%5B4%5D_thumb.jpg)
De gauche à droite, Olivier Courtois, Julien Dollon, Vincent Bouatou (Microsoftee), Mauricio Diaz Orlich et Bertrand Vergnault
Pour rappel voici le thème de l’année : « Imaginez un monde où la technologie nous aide à répondre aux enjeux les plus cruciaux de notre société ».
Ce thème étant très vaste, nous avons mis du temps pour nous focaliser sur une problématique et en ressortir un réel projet à présenter pour ce concours : une solution de protection des enfants sur Internet.
Comment en sommes-nous arrivés à la définition de ce projet ? Olivier ayant travaillé pendant plusieurs années avec l’association Docteur Souris dont le but est d’apporter les nouvelles technologies dont Internet aux enfants hospitalisés de longue durée, une problématique est très vite ressortie : Comment assurer la sécurité des enfants sur Internet de façon fiable et sûre ?
C’est donc à cette problématique que nous avons souhaité apporter un élément de réponse et de le présenter au concours Imagine Cup dans la catégorie Software Design, catégorie reine de la compétition.
Concernant, la définition du projet et des partenaires, je vous renvoie vers l’article d’Olivier où sont exposés tous les documents que l’on a rendu pour la compétition.
En ce qui concerne la répartition des rôles, il a été défini deux chefs de projet à savoir Olivier et Julien. Olivier s’occupant des relations avec le partenaire principal (Docteur Souris) ainsi que de la partie communication externe. Julien pris la responsabilité technique du projet ainsi que le rôle de designer de l’équipe.
Concernant le développement des applications composant la solution de protection des enfants sur Internet, elle a été divisé comme suit : un développeur pour le site web de la communauté réalisé à l’aide de SharePoint 2007, un développeur sur la partie moteur communautaire permettant de centraliser et d’analyser tous les résultats des évaluations des sites web testés, un développeur sur la partie contrôle parental PC qui consiste en le client installé sur l’ordinateur familial et qui permet d’analyser et de rediriger en cas de besoin le trafic http et enfin un développeur dont le rôle était de développer les différents « bookmarklets » permettant à un utilisateur de pouvoir soumettre et de pouvoir noter un site très facilement.
Grâce à ce projet, nous avons eu la chance de pouvoir être sélectionné pour la finale française de la compétition. Pour cela, il a fallu rédiger un document d’une quinzaine de page (disponible sur le blog d’Olivier) permettant de présenter l’équipe, la problématique choisie, la solution à cette problématique ainsi que les technologies employées pour arriver à nos fins.
Nous faisions donc partie des 6 équipes finalistes et afin de nous préparer au mieux pour le grand moment de la soutenance devant le jury de la finale française, Microsoft avait organisé un week-end de coaching pour toutes les équipes retenues.
Ce bootcamp a été organisé dans un grand hôtel en banlieue parisienne…une sorte de mise au vert avant le grand rendez-vous !
Au programme du week-end : échanges avec des membres de la DPE de Microsoft à propos de la problématique et des technologies employées pour la résoudre, mise en place d’un « elevator pitch » permettant de vendre notre projet en quelques mots ainsi qu’un travail de réflexion sur la mise en place d’un business plan pour notre solution.

Salles d’ateliers durant le bootcamp
Nous avons donc pu nous rendre compte que l’on avait absolument pas assez bossé…et les membres de la DPE qui étaient présents ne se sont pas gênés pour nous le faire remarquer :D Tout ceci bien sûr dans l’optique de nous donner un coup de fouet pour que l’on se mette à 300% sur le projet !
Ce week-end a été conclu par un passage devant un jury blanc afin de nous entrainer à la mise en place de notre discours durant la finale française.

Nos deux chefs de projet ;)
Pour notre équipe, ce week-end de coaching a constitué une étape importante puisqu’il s’agissait en fait de la première vraie rencontre entre tous les membres de l’équipe : Mauricio et Yann étant basés à Paris, nous n’avions pas pu jusqu’alors nous rassembler ! L’effet de cohésion dans l’équipe ne s’en ai vu qu’augmentée après ce week-end ;)
Après ce bootcamp intense, nous nous sommes donc remis au travail de plus belle afin d’être prêt pour la finale française qui avait lieu dans les locaux de la DPE, rue de l’Université à Paris.
Mais dans l’optique de réaliser une prestation de grande qualité, Olivier, Julien et moi avons rejoint Mauricio et Yann à Paris 3 jours avant le jour de la finale. SUPINFO nous a accueilli dans ses locaux rue de Bassano où l’on a pu préparer notre présentation : les slides, les démos, le story-telling, etc…devant plusieurs membres de l’administration comme Marc Pybourdin, Thierry Boidart ainsi que certains des directeurs de labo de SUPINFO. Durant ces 3 jours de préparation, nous avons modifié, déplacé, supprimé, réajusté les démos, les diapos de présentation, etc…afin d’obtenir le résultat présent sur le blog d’Olivier (en ce qui concerne la présentation en elle-même).
Puis le jour de la finale tant attendue arriva : attente insoutenable dans les locaux de la DPE puis premier passage devant un premier jury composé entre autres de Vincent Bellet et Pascal Belaud. La présentation se passe à merveille : Mauricio enchaîne le speech en anglais, les démos passent nickel ainsi que l’engouement du jury lors des réponses à leurs questions.
Mais ce n’est pas fini, il reste un second jury à convaincre !!...Il reste encore 20 minutes de présentation + 10 minutes de réponse aux questions avant d’aller pouvoir se détendre et profiter de la réception organisée par MS :D
Le second jury est composé de responsables d’associations ainsi que Guillaume Belmas, MVP. Ce second jury nous a valu quelques frayeurs et nous l’avons senti moins convaincu face à notre propos mais cependant, nous étions plutôt contents de nos deux prestations.
Une fois ce moment passé, direction le premier étage de la Tour Eiffel : Microsoft aime faire les choses en grand et c’est dans ce symbole parisien que nous avons pu fêter et faire partager notre projet aux invités. Chaque équipe avait en effet à disposition un stand lui permettant d’exposer son projet aux différents journalistes, Microsoftees, personnages politiques, etc…présents lors de cette réception.
Vint ensuite le moment tant redouté de l’annonce des résultats…ce moment qui nous a valu une terrible déception (nous souhaitions évidemment la première place !) : nous sommes annoncé comme 3ème !...médaille de bronze…le billet vers la finale mondiale au Caire en Egypte nous passe sous le nez !

Notre “médaille” pour la 3ème place à la finale française
Nous repartons alors un peu déçu mais avec notre lot de consolation sous le bras (une Xbox 360)…
Ce n’est seulement que le lendemain où nous discutons avec les autres membres de l’équipe et poussé par Vincent Bouatou pour participer à un des awards organisé durant le concours. L’award en question se prénommant : H.E. Mrs. Suzanne Mubarak Special Award. En effet, la femme du Président Egyptien étant fondatrice d’une fondation pour la protection des enfants, l’égalité des femmes, etc…et dont le sujet de cet award devait rassembler les 5 meilleures équipes parmi celles du monde entier de la catégorie Software Design qui répondaient aux buts de cette fondation, nous avons donc pu nous inscrire à cette catégorie.
Il a fallu rédiger de nouveau un document, de 5 pages maximum, expliquant notre projet.
Une semaine plus tard nous avons eu la très très bonne surprise d’apprendre que nous avions été sélectionné directement pour la finale mondiale au Caire en Egypte parmi les 94 équipes qui s’étaient présentées pour cette catégorie.
Nous prenons notre revanche sur la déception de la finale française !...A nous le Caire !!!
Nous avons pu aussi voir nos adversaires : 4 autres équipes de nationalité américaine, égyptienne, polonaise et une équipe indonésienne.
La finale mondiale a été une semaine exceptionnelle : entre l’hôtel 5 étoiles luxueux, les visites des pyramides et du sphinx, les échanges avec les étudiants du monde entier et pour finir en apothéose avec le World Festival devant les pyramides et la remise des prix !!

L’équipe en compagnie de Vincent Bouatou devant notre stand à la finale mondiale
Cette expérience a été pour nous l’une des plus riches de notre vie. Non seulement en termes de découverte du monde (différentes cultures) mais aussi sur la conduite de projet, technique et surtout le fait de porter une idée et de se battre pour que l’on le croit en nous.
Auteur : Bertrand Vergnault
Co-Auteur : Julien Dollon

Remise du prix pour la 3ème place à la finale mondiale (on peut noter que Mauricio se prépare à twitter l’info :D )

World Festival devant les Pyramides
[ASP.NET]Url Rewriting et Erreur 404 lors d’un postback
Travaillant à mettre en place un module d’URL Rewriting pour le site web de
Dotnet-France, j’ai été confronté à un petit soucis.
Tout d’abord, tout s’est bien passé, j’ai mis en place les règles de routage que je souhaitai. Le soucis est venu lorsqu'un updatePanel était présent sur la page. En effet, dès que je cliquai sur un bouton, une erreur sur la page se produisait indiquant :
Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the quest on the server. The status code returned from the server was: 404.
Le routage des URL et l'updatePanel semblent poser problèmes entre eux !
Le problème vient du fait que l’action sur le form ne supporte pas l’url réécrite. De ce fait, afin de pallier à ce problème voici la ligne à ajouter dans le Page_Load de votre page :
protected void Page_Load(object sender, EventArgs e)
{
form1.Action = Request.RawUrl;
}
Ceci permet donc de récupérer l’URL brute pour la demande en cours pour l’action form.
[Divers] Installation de CommunityServer v2008.5
Le futur site de Dotnet-France proposera un forum basé sur la plateforme CommunityServer. En effet, en terme de fonctionnalités, elle répond totalement à nos besoins pour notre communauté.
Il existe deux méthodes pour installer la plateforme. La première consiste en l’exécution d’un .msi classique. La seconde vous permet d’installer via votre navigateur et un “web-installer” CommunityServer.
Il faut faire attention à la langue d'installation de SQL Server afin que les noms de comptes se mappent bien durant l'installation. J'ai en effet rencontré un problème avec une version de SQL Server en VF. Le processus d'installation de Community Server n'arrivait pas à mapper le compte utilisé (NETWORK SERVICE) car celui-ci était un nom de compte nommé en français (SERVICE RESEAU). De ce fait, il m'indiquait que ce compte n'existait alors qu'il était pourtant bien présent.
J’ai suivit la seconde méthode qui me semble plus souple :
1. Première chose à faire : Télécharger les fichiers d’installation sur le site web à l’adresse suivante : http://communityserver.com/products/
2. Créer un site web dans IIS.
Pour cela, dans les “outils d’administration” du serveur et choisir IIS Manager.

Ensuite, faites un clic droit sur dossier
“Web Sites” et cliquez sur
“New” =>
“Web Site”.
L’assistant de création d’un nouveau site web se lancera et vous n’aurez qu’à suivre les différentes étapes.
Durant les étapes, vous aurez à choisir l’emplacement sur votre disque dur du dossier racine du site web. Ce dossier contiendra les fichiers de la plateforme CommunityServer.
2bis. Si vous devez l’installer dans un site web déjà existant, il vous suffit de créer un répertoire virtuel qui pointera sur un dossier contenant tous les fichiers nécéssaires à la plateforme. Il ne faudra pas oublier de configurer le répertoire virtuel comme une application.
3. Attention, étant donné que CommunityServer utilise ASP.NET 2.0, il faut modifier la version utilisée dans les options du site web :
4. Une fois votre site web crée ainsi que les fichiers téléchargés, vous devrez récupérer le contenu du dossier “web” contenus dans l’archive d’installation pour venir le coller dans votre dossier du site web crée précédemment.
Dans mon cas, j’ai ajouté directement tous les fichiers à la racine du dossier du site web. De ce fait, on accèdera directement à la plateforme à l’adresse www.monnomdedomaine.com/default.aspx par exemple.
Attention à bien donner les permissions adéquates au compte “NT AUTHORITY\NETWORK SERVICE” : Accès en lecture au contenu du dossier contenant les fichiers de la plateforme et Contrôle total sur les dossiers suivants :
- blogs/files filestorage
- Utility/RankIcons
- Utility/RoleIcons
5. Afin de pouvoir installer correctement CommunityServer via notre navigateur web, il faut modifier une ligne (l.19) dans la page “default.aspx” du dossier “Installer” : Remplacer la valeur de la variable “INSTALLER_ENABLED” par TRUE.
6. Il suffit maintenant de lancer votre navigateur à l’adresse du dossier ”Installer” par exemple www.monnomdedomaine.com/Installer.
Une page s’aparentant à une fenêtre d’installation classique s’affichera. Nous sommes alors dans un processus d’installation “classique”.
Il sera demandé de choisir le nom du serveur de base de données et le type d’authentification :
Une fois le serveur choisit, il sera possible de choisir dans quelle base de données existante on souhaite créer les tables utiles à CommunityServer :
Ensuite, il sera demandé de définir le compte d’administrateur de la plateforme :
L’option “Create Sample Data” permet de générer automatiquement un blog, un forum,… par défaut.
7. Une fois cela passé, la dernière page présentée contient la chaîne de connexion (connectionString) qu’il faut utiliser pour remplacer la valeur de celle dans le fichier “connectionStrings.config”. Ce fichier se trouve à la racine du dossier contenant les fichiers de la plateforme.
Il suffit donc de copier-coller la valeur dans le fichier et d’enregistrer.
8. Supprimer le dossier “Installer” qui n’est plus utile.
9. Enfin, vous pouvez profiter pleinement de CommunityServeren allant directement à l’adresse du dossier racine contenant les fichiers de la plateforme. Par exemple www.monnomdedomaine.com pour rester fidèle à l’exemple tout au long de l’article.