Mixer JQuery et les Update Panel d'ASP.Net

by Louis-Guillaume Morand 8. juin 2010 23:28

De tout l'ajax toolkit, le seul composant que j'utilise est bien l'Update panel. Ce simple composant permet de faire un postback partiel de la page ASP.Net. Son utilisation peut néanmoins est compléxifiée si plusieurs update panels sont placés sur la même page et surtout s'ils "communiquent" les uns avec les autres. Il existe également une problématique avec l'utilisation de JQuery et le célèbre et merveilleux framework JavaScript (le seul officiellement supporté par Microsoft! adieu prototype ou extjs).

En effet, une bonne habitude à prendre avec JQuery est d'executer nos scripts une fois la page entièrement chargée via l'utilisation de la méthode $(document).ready()

Malheureusement cette méthode n'est pas appelée dans le cas d'un update panel et les scripts ne sont éventuellement plus enregistrés.

Prenons un cas pratique. Je possède une page Web qui contient un update panel au sein duquel je dessine plusieurs éléments ayant chacun un tooltip. Pour activer le tooltip, 5 petites lignes JQuery suffisent:

<script type="text/javascript">
    $(document).ready(function() {
        $("a[title]").tooltip({
            tip: '.tooltip',
            effect: 'fade',
            fadeOutSpeed: 1000,
            predelay: 400,
            position: "bottom right"
        });
    });
</script>

L'astuce est maintenant d'appeler cette méthode lors du postback de l'update panel. Une solution consiste donc à passer par l'enregistrement d'un script JS en code-behind mais je dois avouer que cette solution ne m'arrange pas, le Javascript devant selon moi, rester coté aspx. Il nous faudrait donc coté markup détecter ce semi-postback.

En effet, nous pourrions utiliser la méthode function pageLoad(sender, args)() mais celle-ci est appelée à chaque fois et c'est bien uniquement lorsqu'un update panel se rafraichit que nous voulons agir. Cela peut se faire grâce à une petite méthode discrète get_isPartialLoad()

Ainsi, il nous suffit (pour ne pas dupliquer le JS) de copier le code JQuery dans une méthode, puis de l'appeler à la fois dans $(document).ready() et lorsque get_isPartialLoad() est vrai.

le code devient ainsi

<script type="text/javascript">
    $(document).ready(function() {
        getTips();
    });

    function pageLoad(sender, args) {
        if (args.get_isPartialLoad()) {

            getTips();
        }
    }
    
    function getTips() {
        $("a[title]").tooltip({
            tip: '.tooltip',
            effect: 'fade',
            fadeOutSpeed: 1000,
            predelay: 400,
            position: "bottom right"
        });
    }
 }

 

Simple à mettre en place, mais astuce difficile à deviner par soi-même!

Tags: ,

JQuery

Mettre en place du code coverage avec Visual Studio 2010

by Louis-Guillaume Morand 8. juin 2010 09:02

Lors d'un bon cycle ALM, il est important de s'intéresser à la couverture de code pour voir si notre stratégie de tests est bien configurée et si l'on se protège d'éventuels bugs qui auraient pu être détéctés au plus tôt.

C'est donc cette optique que certains de mes projets persos ont été inclus au sein de mon serveur TFS pour passer en intégration continue. Si tout se passait merveillement bien sur le serveur TFS (compilation, testing, coverage), il n'en n'était pas la même chose en local sur mon poste de développement. En effet, l'onglet Code Coverage m'indiquait un magnifique "Cannot find any coverage data (.coverage or .coveragexml) files."

la première raison fut que je n'avais pas configuré le code coverage pour mon projet. Pour cela, quelques étapes sont nécessaires:

1- Double-cliquez sur le fichier Local.testsettings situé au niveau de votre solution. (ou créez-le s'il est manquant)

2- Dans la partie gauche, cliquez "Data and diagnostics"

3- Cochez la case "Code Coverage"

4- Cliquez une fois sur la ligne Code Coverage afin d'activer le bouton "Configure" situé au dessus de la liste

5- Cliquez alors sur le bouton "Configure" afin d'ouvrir la liste des assemblies à tester

6- Cochez les assemblies de votre choix. Fermer tout en sauvegardant votre projet

7- Lancez les tests unitaires via le menu Test > Run > Tests in Current Context

8- Les résultats apparaissent alors dans la fenêtre Test > Windows > Code Coverage Results

 

SAUF QUE, parfois cela ne suffit pas et le message indiquant qu'aucun fichier de coverage n'est présent est toujours affiché. Et c'est là le problème car Visual Studio n'est alors d'aucune aide pour trouver l'origine du problème. L'indice se trouve en effet dans le journal des événements. Au sein de ce dernier, plusieurs erreurs liées à Visual dont une avec un message intriguant "The web.config file for the site http://localhost:0/ contains information from a previous run" et une seconde indiquant que l'accès au fichier web.config est refusé. Pour ce dernier, rien de plus simple, il suffit d'enlever le mode read-only du fichier mais pour le second, il faut enquêter.

Il semblerait que lors de l'ajout du projet à TFS, certains attributs soient ajoutés au fichier de configuration et que ceux-ci dérangent Visual Studio. Solution simple: les retirer.

il s'agit des lignes suivantes:

<appSettings>
   
<add key="microsoft.visualstudio.teamsystems.aspnetdevserver:/" value="3311;True;3204;1" />
   
<add key="microsoft.visualstudio.teamsystems.backupinfo" value="1;web.config.backup" />
</appSettings>

 

Supprimez-les donc, sauvegardez et relancez les tests unitaires

 

Et voilà, le code coverage est pleinement fonctionnel!!!

 

 

Tags: , , , ,

.Net | Visual Studio

Problème de message non envoyés avec l'IPhone

by Louis-Guillaume Morand 4. avril 2010 23:10

Eh oui, le magnifique et bel iPhone possède en plus d'une multitude de fonctionnalités, une pléthore de bugs. Non seulement, il m'a été nécessaire de le jailbreaker pour ajouter des fonctionnalités que j'estime primordiales (accusés de réception, multi process) mais surtout, les fonctionnalités de base telles l'envoi de mail ont leurs problèmes. Ainsi, pour ajouter des alias de mail (par exemple toto@mondomaine.com par dessus une adresse tierce), c'est tout simplement la croix et la bannière surtout s'il s'agit d'un compte IMAP et que plusieurs alias pointent sur une seule adresse. Les ingénieurs d'Apple ne semblent pas avoir pensé à cette optique.

Néanmoins, ce n'est pas sans compter un bug tristement connu qui bloque certains mails sortants et affiche un compteur de message non envoyé bien gênant, car non esthétique et surtout affichant un beau message d'erreur indiquant que le message n'est pas parti...constamment. Le problème vient du fait que le mail bloqué en question est configuré avec un paramétrage SMTP incorrect et continue d'utiliser ce paramétrage plutôt que celui du compte mail configuré sur l'iPhone.

Il existe plusieurs solutions allant de la synchronisation Itunes, en passant pas la recréation du compte email ou l'utilisation du mode avion, mais aucune n'a la certitude de fonctionner tandis qu'une quatrième solution semble fonctionner à tous les coups. Celle-ci consiste à passer en mode "debug" et faire apparaitre le dossier "Outbox" contenant les mails en cours d'envoi

 

Pour ceci

1. Allez dans les paramètres de l'iPhone

2. Activez le mode avion

3. Retournez à la page d'accueil de l'iPhone (clique sur le bouton central)

4. Cliquez sur l'icône de l'application mail

5. Envoyez un quelconque mail (vous pouvez mettre ce que vous voulez dedans)

6. Une fois le mail envoyé, quittez l'application mail

7. Puis relancez l'application mail

8. Vous devriez alors voir un nouveau dossier dans votre compte mail, nommé "Outbox"

9. Supprimez tous les mails qu'il contient

10. Quittez l'application et retournez dans les paramètres de l'iPhone pour couper le mode avion

11. Relancez l'application mail. Le compteur de message non envoyé devrait alors avoir disparu.

et voilà :)

Simple, mais qui fait s'arracher les cheveux lorsque l'on ne sait pas quoi faire.

Tags:

IPhone

Ebook gratuit - Développer sur Windows 7 Series

by Louis-Guillaume Morand 16. mars 2010 06:39

Alors qu'il y a peu Microsoft faisait la démonstration fracassante de son futur OS mobile et alors que le keynote du MIX 2010 de Las Vegas venait de s'achever, le TRES célèbre Charles Petzold nous gratifie d'un ebook gratuit sur le développement d'applications pour Windows Mobile 7 (Windows 7 Series).

Pour le téléchargement, c'est par ici et pour les codes source, c'est par là

 

Tags:

Microsoft | Livre

Lancement de la plateforme MOS

by Louis-Guillaume Morand 16. mars 2010 03:16

Après le lancement de sa plateforme Azure en début d'année, Microsoft a lancé début mars sa nouvelle plateforme MOS, pour Microsoft Office Services, une plateforme d'outils de communication externalisés mais restants au service de l'entreprise.

Il s'agit un service destiné aux professionnels uniquement qui permet de confier certaines fonctions à Microsoft : messagerie collaborative (Exchange), travail collaboratif (Sharepoint), communications temps réel (Office Communications, Live Meeting, Communicator) et bureautique (Office).

Solutions hébergées

  • Combinez la puissance des applications de bureau riches avec la flexibilité des services Internet entièrement hébergés.
  •  
  • Faites l'expérience d'une solution intégrée tout-en-un sur les clients riches que connaissent déjà vos utilisateurs.
  •  
  • Offrez une interface cohérente sur pratiquement tous les périphériques, où que vous soyez.
  • inclue une messagerie électronique et une messagerie instantanée professionnelle, et les toutes dernières fonctionnalités de messagerie et de collaboration.

 

 

 

Des avantages clairs

Les fonctionnalités de productivité les plus récentes

  • Découvrez les dernières fonctions de messagerie électronique, de conférence Web, de messagerie instantanée, de partage de documents et de flux de travail dédiées à l'entreprise.
  •  
  • Profitez des dernières fonctions de messagerie et de collaboration, conçues pour fonctionner conjointement en toute simplicité.
  •  
  • Construisez votre propre solution avec les services individuels ou procurez-vous la solution en tant que suite intégrée.
  •  

  Facilité d'utilisation

  • Vos utilisateurs finaux accèdent à l'intégralité des services hébergés depuis un point d’entrée unique.
  •  
  • Les administrateurs peuvent gérer les abonnements et configurer tous les services en ligne depuis une interface unique.
  •  
  • Les utilisateurs finaux peuvent accéder de façon sécurisée au service quel que soit l'endroit où ils se trouvent, sans connexion VPN, et via une large gamme de périphériques mobiles.
  •  


  Confidentialité et reprise rapide après incident

  • Des protocoles Internet sécurisés comme HTTPS et HTTP sur SSL protègent l'accès à vos services.
  •  
  • Une architecture réseau redondante garantit la reprise après incident.
  •  
  • Dans le cas de problèmes de connectivité au centre de données, les services basculent vers un centre de données de sauvegarde.
  •  

  Flexibilité optimisée

  • Les offres en ligne s'intègrent avec les serveurs et applications sur site, permettant ainsi aux entreprises d'exécuter certaines applications en interne et d'autres en tant que services hébergés.
  •  
  • Des outils tels que l’outil de synchronisation Active Directory vous permettent d'effectuer vos déploiements en ligne, sur site, ou hybrides par service, rôle d'utilisateur et zone géographique afin de mieux répondre aux besoins de l'entreprise.
  •  

  Agilité améliorée

  • Optimisez et étendez rapidement votre capacité informatique en intégrant de nouveaux services sans avoir à investir dans le développement de nouvelles compétences ou le déploiement de nouveaux matériels ou logiciels.
  •  
  • Libérez vos ressources informatiques des tâches de gestion quotidiennes pour qu'elles puissent se consacrer à des initiatives stratégiques sources d'un réel avantage concurrentiel.

 

Prévu pour s'adapter

La plateforme est à la fois prévue pour migrer un existant vers le portail via des assistants guidés, soit simplement prévue pour être mis en place en parallèle des solutions déjà en place en sein de l'entreprise et se greffer à ses dernières pour avoir une architecture hybrique mais parfaitement transparente pour les utilisateurs.

A tester!!!

La plateforme MOS est gratuitement testable pendant 30 jours ce qui vous permet de faire vos tests ou de découvrir des produits dont vous n'aviez pas eu l'usage jusqu'à maintenant. Testez-la et dites nous ce que vous en pensez!

 

Des questions, des remarques, des bugs, des critiques?

Developpez travaille en partenariat avec Microsoft pour améliorer la plateforme et vous pouvez utiliser ce thread pour poser vos questions, vos remarques quant à l'utilisation de la plateforme. Que ce soit positif ou négatif, qu'il s'agisse d'un bug, d'une fonctionnalité manquante ou au contraire d'une fonctionnalité que vous appréciez tout particulièrement, utilisez ce thread pour vous exprimer.

 

Interview et Live Meeting

 

Début avril, nous essaierons d'interviewer le chef de produit de la plateforme MOS mais surtout, mi-avril, Microsoft mettra en place un live-meeting où vous pourrez discuter directement avec Microsoft et échanger autour de la plateforme MOS. Save the date!! :)

Tags:

Microsoft

Terminal Server has exceeded the maximum number of allowed connections

by Louis-Guillaume Morand 24. janvier 2010 10:27

Qui n'a jamais eu ce petit problème en se connectant en terminal serveur sur un serveur distant? Le message apparaissant lorsque vous tentez de vous connecter:

The terminal server has exceeded the maximum number of allowed connections. The system can not log you on. The system has reached its licensed logon limit. Please try again later.

Généralement, ceci se produit lorsque par exemple un utilisateur se connecte puis ferme terminal serveur SANS fermer sa session distante. Au bout de deux connexions ouvertes, il n'est plus possible de se connecter au serveur. Pour l'avoir vécu, cela peut devenir très embêtant lorsque les personnes n'ayant pas fermé leur session ne sont plus présents (vacances par exemple).

 

La première solution est d'utiliser une troisième session accessible via une ligne de commande

mstsc /v:nom_server /f -console

ou

mstsc /v:158.98.125.251 /f -admin

 

La seconde solution consiste à savoir les sessions ouvertes sur la machine distante. On peut ainsi contacter la personne de lui demander de se délogguer.

query session /server:servername

/!\ si jamais la commande query n'est pas trouvée, via l'invite de commande, placez-vous dans le répertoire %WINDOWS%/system32/dllcache

L'exécution de la commande affiche ceci (ici, aucun utilisateur n'est connecté)

En dernier recours il est possible de fermer la session de la personne (son travail ne sera pas enregistré!)

reset session [ID_SESSION] /server:servername

Tags: , ,

Windows Serveur 2008 R2

Le challenge Azure est terminé!

by Louis-Guillaume Morand 1. janvier 2010 09:38

Je vous en parlais il y a tout juste un mois, le challenge Azure que j'ai mis en place sur Developpez.com avec l'aide de Jérôme Lambert et Philippe Vialiatte, vient de se terminer.

 

Autant dire que cela fut un franc succès puis qu'alors que nous espérions à peine une centaine d'inscrits, ce ne fut pas moins de 700 personnes qui tentèrent l'aventure et sur ces 700 personnes, pratiquement 60 réussirent les 5 étapes. Si l'on veut être précis, sur les 700 inscrits, seuls 210 firent la première étape qui ne consistait qu'à uploader un fichier, soit 500 inscrits qui étaient venus en touristes. Donc au final, c'est quasiment 30% des inscrits qui finirent le challenge. Un concours avec 30% de gagnants, vous en connaissez beaucoup? :)

 

Comment cela se passe-t-il maintenant? Et bien, les gagnants vont chacun recevoir un t-shirt détecteur de Wifi

mais puisque celui-ci devrait mettre plusieurs semaines à arriver, chaque gagnant recevra également une Arc Mouse, la nouvelle souris supra design de Microsoft d'une valeur de 50€.

Au final, c'est environ 70€ de lot offert à chaque gagnant, ce qui, avec nos moyens qui sont environs de....zéro euros, n'est pas mal du tout je trouve :)

 

 

 

 

C'est donc fini pour ce PREMIER challenge car bien entendu, nous comptons bien réitérer l'opération car la plupart des personnes semble vraiment avoir apprécié ce petit défi technique tout en apprenant de nouvelles choses.

Tags:

.Net

[FAQ Azure] Quand sera mise en production la plateforme Windows Azure?

by Louis-Guillaume Morand 25. décembre 2009 13:25

Bien que disponible gratuitement et en bêta depuis fin 2008, la plateforme passera en production au 1er février 2010. A ce moment-là, toute utilisation sera payante.

Tags:

FAQ Azure | Cloud

[FAQ Azure] Qu'est-ce que Windows Azure?

by Louis-Guillaume Morand 25. décembre 2009 08:14

Windows Azure fournit aux développeurs un service d'hébergement de site Web mais également de fichiers, accessible à la demande, depuis Internet.

Windows Azure™ est un système d'exploitation basé sur du cloud-computing qui sert d'environnement de développement, de service d'hébergement et d'environnement de contrôle de services pour la plateforme Windows Azure. 

Windows Azure est une plateforme flexible qui supporte plusieurs langages et qui s'intègre parfaitement avec vos environnement existants. Les développeurs peuvent utiliser directement Visual Studio pour créer des applications compatibles avec la plateforme Azure. De plus, la plateforme Azure supporte différents standards populaires et différents protocoles tels que SOAP, REST, XML et même PHP.

 

Très simple d'utilisation avec son interface épurée, Windows Azure vous permet de contrôler vos environnements de production mais également de test, et d'y déployer à votre guise vos applications Web.

Tags:

FAQ Azure | Cloud

[FAQ Azure] Qu'est-ce que la plateforme Windows Azure?

by Louis-Guillaume Morand 24. décembre 2009 11:50

La plateforme Azure est une plateforme de services de cloud-computing, disponible à travers Internet et disponibles via les serveurs Microsoft. La plateforme Azure fournit une série de fonctionnalités pour construire des applications évoluées et répondant à différentes problématiques professionnelles.

Ces applications peuvent tirer partie de différents services fournis par la plateforme Azure:

- Windows Azure : un service d'hébergement de sites Web et de fichiers (Azure Storage)

- Microsoft SQL Azure : un service de base de données distribué

- AppFabric : plateforme pour héberger des services ou des processus métier (workflow)

 

Tags:

FAQ Azure | Cloud

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen