in

didierdanse.net

Site personnel de Didier Danse
Didier Danse's Personnal Website
Microsoft Most Valuable Professional SharePoint

This Blog

Syndication

didierdanse.net - Les news Developpement

September 2008 - Posts

  • Roadshow MSDN: Comment Silverlight 2 et WPF peuvent procurer de riches expériences client aux utilisateurs - Liège, 15 Octobre

    Des sessions techniques dans la région liégeoise, cela est suffisamment rare pour être signalé.

    Aujourd’***, les développeurs qui construisent de nouvelles applications veillent tout particulièrement à ce qu’elles procurent une riche expérience client aux utilisateurs. En effet, ceux-ci sont de plus en plus familiarisés avec des applications (web) capables de réagir de façon logique et d’interagir d’avantage avec eux en tenant compte de leurs actions.

    Rejoignez-nous au RIA Roadshow et restez à l'écoute des dernières innovations. Vous y apprendrez comment développer de riches applications pouvant être déployées sur le web et au-delà de ce que vous pouvez habituellement faire avec une application basée sur un navigateur

    Cette session abordera 4 sujets principaux:

    • Les nouvelles fonctionnalités de ASP.NET AJAX

    • Comment utiliser les Windows Live Tools for Visual Studio

    • Comment construire une application Silverlight 2 qui fait appel aux services à distance, à l’inter-liaison des données (data binding), à la création de gabarits et styles (templating & styling) et cela, aussi bien avec Visual Studio 2008 qu’avec Expression Blend 2.5

    • Windows Presentation Foundation et le .NET Client Profile

    Inscriptions: http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032390486&%3bCulture=fr-BE

  • TechDays '08 à Luxembourg: 30 septembre 2008 à Mondorf-les-Bains, Luxembourg et c'est gratuit!

    C'est au tour du Luxembourg d'héberger les TechDays '08. Avec 6 sessions pour les développeurs et 3 orientées IT Pro, ces TechDays ont pour but d'avoir un large aperçu des nouveautés de .NET et du Service Pack associé ainsi que sur la virtualisation, un des sujets de discussion les plus en vogue actuellement.

    C'est gratuit et le nombre de places est limité donc inscrivez-vous au plus vite!

    Agenda complet: http://www.microsoft.com/belux/techdays08/agenda.aspx

    Inscription: http://www.microsoft.com/belux/techdays08/inscrivez.aspx

  • ASP.NET AJAX: Tous mes UpdatePanels sont raffraîchis lors d'un retour serveur alors que seul un UpdatePanel ne devrait l'être, pourquoi?

    Dans la continuité des questions / réponses sur ASP.NET AJAX (1.0 ou 3.5, peu importe dans ce cas), voici la réponse à une petite question relativement simple mais que tout développeur débutant avec ASP.NET AJAX rencontrera certainement.

    Imaginons une page contenant les éléments suivants:

    • Deux update panels;
    • Un timer;
    • Un bouton et un label dans chacun des update panels.

    Ceci donne une page de ce type (sans aucun chichi et ne respectant aucunement les conventions de nommage habituelles):

    image

    Un seul trigger est associé à l'UpdatePanel1. Celui-ci a pour but de réaliser un retour serveur asynchrone lorsque Timer1 lance l'évènement Tick, ce qui donne:

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
            <ContentTemplate>        
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>

    Aucun trigger n'est associé à l'UpdatePanel2 et pourtant, les deux updatepanels sont rafraichis lors de ce fameux retour asynchrone.

    Ceci se justifie par le fait que, par défaut, la propriété UpdateMode des objets UpdatePanel a la valeur Always. Ainsi, quelque soit l'élément qui a effectué le retour serveur, les UpdatePanel sont raffraîchis.

    Afin de mieux contrôler le rechargement des UpdatePanel, il suffit de mettre la propriété UpdateMode à la valeur Conditional. Dès lors seul les retours serveurs effectués et présents dans les triggers auront pour effet de recharger le contenu de notre UpdatePanel.

        <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <Triggers>
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
        </Triggers>
            <ContentTemplate>        
                <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
            </ContentTemplate>
        </asp:UpdatePanel>

    Pour rappel, vous pouvez retrouver une Introduction à ASP.NET AJAX sur ce même site.

  • ASP.NET AJAX 1.0: Sys is undefined, pourquoi et comment le corriger?

    Certes, c'est loin d'être un problème récent mais étant récemment retombé sur le problème, je me décide enfin à écrire la solution... Je sais que cela servira au moins à une personne :-)

    Après avoir installé les extensions ASP.NET AJAX 1.0 sur un poste dans le but de réaliser des développements avec Visual Studio 2008, on pourrait s'attendre à trouver le template de projet "ASP.NET AJAX Enabled Web Application". Il n'en est pourtant rien comme en atteste la capture d'écran suivante:

    image

    Puisque nous n'avons guère le choix, choisissons le template ASP.NET Web Application. Rapidement, nous pouvons remarquer que les composants "de base" de ASP.NET AJAX Extensions sont bel et bien présents dans la toolbox. Parfait!

    image

    Il ne nous reste donc plus à les utiliser à l'aide d'un drag and drop, tout ce qu'il y a de plus classique.

    Si on observe le web.config (le plus simple étant de garder le web.config ouvert dans Visual Studio, vous serez immédiatement averti des changements), on peut voir que quelques lignes ont été ajoutées dans le web.config:

    <assemblies>
                    <add assembly="System.Web.Extensions, Version=1.0.61025.0, 
    Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies>

    Dès lors, on pourrait se dire que tout va bien et que Visual Studio a fait le travail pour nous. Mais après exécuté la page, l'erreur 'Sys' is undefined apparaît dans le browser.

    Pourquoi? La réponse est simple... On retrouve

    <script src="/ScriptResource.axd?d=xyz" type="text/javascript"></script>
    <script src="/ScriptResource.axd?d=abc" type="text/javascript"></script>

    dans la source HTML. Or si on vérifie ce que génére ce fichier, on remarque que celui-ci n'est pas disponible. Cela est dû au fait que le serveur ne sait pas comment interpréter les .axd. C'est pour cela qu'il est nécessaire d'ajouter les lignes suivantes dans le web.config et ce entre <system.web> et </system.web>:

    <httpHandlers>
      <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler"
    validate="false"/> </httpHandlers>

    Désormais, il ne nous reste plus qu'à laisser exploser notre imagination.

    Le web.config minimal:

    <?xml version="1.0"?>
    <configuration>
        <appSettings/>
        <connectionStrings/>
        <system.web>
        <httpHandlers>
          <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler"
    validate="false"/> </httpHandlers> <compilation debug="false"> <assemblies> <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </assemblies> </compilation> <authentication mode="Windows"/> </system.web> </configuration>

    Notez que vous pouvez trouver un web.config complet à l'adresse suivante:

    C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025.

More Posts
L'auteur du site ne peut être tenu responsable des dommages que les informations fournies pourraient entraîner. Tout est cependant mis en oeuvre pour éviter tout désagrément.
Powered by Community Server (Non-Commercial Edition), by Telligent Systems