Augmenter les PERFORMANCES de chargement d'un site Web ASP.NET

Hello,

Certains le savent déjà il est possible d'activer la compression GZIP dans IIS pour améliorer les performances de chargement d'un site Web... Le plug-in Firefox PageSpeed fait d'ailleurs l'analyse de ce point...

Mais saviez vous que l'activation de la compression GZIP dans IIS ne consiste pas seulement à cocher la case [ ] Compresser les fichiers d'application et [ ] Compresser les fichiers statiques ??
En fait il faut aussi modifier le fichier MetaBase.xml pour spécifier ce que nous voulons compresser. Par défaut, sur IIS 6, ASPX, JS, CSS ne sont pas pris en charge ! Dommage !
Ca calme non ???

On vient de s'en rendre compte, il doit bien y avoir une armée de serveur IIS qui ont été configurés avec simplement ces cases cochées et pourtant, cela n'a aucun effet contrairement aux administrateurs (qui n'auraient pas lu la doc de Microsoft) qui le pensent !!!

Pour bien configurer votre serveur :

1) Arrêt de IIS

2) Aller en commande DOS puis aller dans c:\inetpub\AdminScripts

3) Exécution de :

Le gain de temps sur le chargement d'une page est très intéressant !

Si vous avez un IIS Français et non Anglais, dans les lignes d'instructions de (3), remplacer "filters" par "filtres"

CSCRIPT.EXE ADSUTIL.VBS SET W3SVC/filters/compression/DEFLATE/HcScriptFileExtensions "ASP" "dll" "exe" "aspx" "axd"
ajoute dans MetaBase.xml la gestion des fichiers de scripts AXD et ASPX  pour la méthode DEFLATE

CSCRIPT.EXE ADSUTIL.VBS SET W3SVC/filters/compression/gzip/HcScriptFileExtensions "ASP" "dll" "exe" "aspx" "axd"
ajoute dans MetaBase.xml la gestion des fichiers de scripts AXD et ASPX  pour la méthode GZIP

CSCRIPT.EXE ADSUTIL.VBS SET W3SVC/filters/compression/DEFLATE/HcFileExtensions "htm" "js" "css" "html" "text"
ajoute dans MetaBase.xml la gestion des fichiers "standards" JS et CSS  pour DEFLATE

CSCRIPT.EXE ADSUTIL.VBS SET W3SVC/filters/compression/gzip/HcFileExtensions "htm" "js" "css" "html" "text"
ajoute dans MetaBase.xml la gestion des fichiers "standards" JS et CSS  pour GZIP

 4) Redémarrage de IIS

 

Complément d'infos avec ce bon article imagé : http://www.smallworkarounds.net/2009/01/aspnet-iis-tricks-using-gzip.html

On recrute des pros de l'informatique ! :)

Bonjour à mes lecteurs :-)

Vous savez même en temps de crise on peut changer de crêmerie :-) Alors pour les personnes qui voudraient changer un peu pour diverses raisons :

- ras le bol d'être indépendant, tout seul, alone...
- ras le bol de son employeur actuel qui en a vraiment rien à foutre à part faire la relève des compteurs tous les mois (ohhh c'est pas beau ça)
- ras le bol de pas pouvoir évoluer parce que l'employeur veut pas investir sur votre formation

Ben, venez donc voir du côté de chez oim... !!

ABA Production, la structure que j'ai fondée il y a 10 ans et ben elle recrute toujours du monde... Et elle cherche la crême des crêmes...
En plus ABA Production c'est désormais une société du Groupe Novencia... Du coup en terme d'investissements (formations, certifications...) pour évoluer (devenir big bog de projet ou autre...) c'est tout à fait possible. Ce n'est plus un rêve... La lumière est ici !! :-)

Et puis sans vouloir faire un bla bla version 2.0 de SSII , je vous assure que nous rejoindre c'est vraiment rejoindre une équipe... On essaye de communiquer un max (même si la communication n'est pas la plus grande force des Geeks - mis à part sur un blog underground évidemment)... On cherche à faire en sorte que tout le monde soit bien dans ses bottes...

Première action mise en oeuvre en 2010 depuis notre intégration au Groupe Novencia : désormais les RTT existent chez ABA Production... 12 jours de congès en plus des 25 normaux, c'est pas mal... Surtout après avoir essuyé une année 2009 grave pour le moral... :-/

Bref, très sérieusement, si vous avez envi de rejoindre une équipe sympa de développeurs faut pas hésiter à balancer le CV...
Bon, attention, du vrai développeur on veut... JAVA, C#, VB.NET , du moment que vous maîtrisez votre sujet, on aimerait bien pouvoir vous rencontrer et vous faire intégrer the Dream Team :)

Vous pouvez même m'envoyer votre CV directement : a.belut@abaproduction.com ou consulter http://www.abaproduction.com et aussi http://www.novencia.com !

Si ça ne vous intéresse pô, faites passer le message quand même : ABA Production recrute... On a toujours à nos côtés un prestataire presque à terre qui voudrait bien quitter de toute urgence celui qui n'est vraiment pas sympa avec lui :-/

@+

Méthode simple pour identifier un ROBOT sur votre site

public static bool isUserAgent()
        {
            string userAgent = HttpContext.Current.Request.UserAgent.ToLower();
            string[] botKeywords = new string[10]{ "bot", "spider", "google", "yahoo", "search", "crawl", "slurp", "msn", "teoma", "ask.com" };           
            foreach (string bot in botKeywords)
            {
                if (userAgent.Contains(bot))
                {
                    return true;
                }
            }           
            return false;
}

 

Pour vérifier que tout fonctionne, vous pouvez utiliser le plug-in User Agent Switcher de Firefox... Vous pourrez alors vous faire passer pour un robot GOOGLE ou MSN ou autre :)

 

Il existe une façon plus complète pour identifier les robots qui viennent sur le site... Mais le but était d'utiliser une méthode simple et rapide :-)
La méthode plus complète consistera à utiliser Request.Browser.Crawler (qui renverra vrai ou faux pour dire VRAI c'est un Robot ou FAUX c'est un client)
Mais vous devrez définir au préalable une liste descriptive de Browsers dans votre fichier Web.config

Articles complets :
http://www.primaryobjects.com/CMS/Article102.aspx

http://owenbrady.net/browsercaps/

 

Client FTP Web

Ca peut toujours servir ...

Accès FTP en ligne par le Web donc... : http://debug.abaproduction.com

 

(développé en C#) :)

 

Reset environnement Visual Studio

Bon, imaginons que comme moi, pour une raison X ou Y vous avez explosé votre environnement Visual Studio et que franchement c'est la galère pour vous y retrouver dans les fenêtres...

Une solution existe pour TOUT réinitialiser (youkiii)...

Démarrer , Exécuter , taper dans le champ :  "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe" /resetuserdata

Cliquer sur OK

Redémarrez votre brave Visual Studio...

ATTENTION : même la liste des projets récents aura été vidée... C'est la purge totale ; mais le bonheur de retrouver son environnement tout propre :)

 

Colorisation alternée automatique d'une table

Il est parfois plus lisible d'avoir des tables avec la colorisation alternée des lignes qui la composent...

La GridView permet d'utiliser l'ItemTemplate et l'AlternateItemTemplate mais bon, c'est franchement "lourd" pour pas grand chose qui peut-être fait de manière très simple avec du javascript :-)

Voici le code javascript qui devra être chargé sur les pages... (on pourra le mettre dans une MasterPage)

<script language='javascript' type="text/javascript">
  function alternate(id)
  {
      if (document.getElementsByTagName)
      {
          var table = document.getElementById(id);
          var rows = table.getElementsByTagName("tr");


          for (i = 0; i < rows.length; i++)
          {
              if (rows[i].getElementsByTagName("th").length > 0)
              {
                  rows[i].className = "header";
                  continue;
              }
              if (i % 2 == 0)
              {
                  rows[i].className = "even";
              }
              else
              {
                  rows[i].className = "odd";
              }
          }
      }
  }
</script>

Le javascript ci-dessus va ajouter des class aux éléments TH (Header) et aux éléments TR (lignes) de notre table.
Le header aura la classe "header"
1 ligne sur 2 aura la classe "even" et 1 ligne 2 autre la casse "odd"

Evidemment il faut configurer dans notre CSS les classes header, odd et even . Par exemple :
tr.odd
{
 background-color:#cee3a0; 
}

tr.even
{
 background-color:#82bf4c;
}

tr.header
{
 color:Black;
 background-color:#ffb65b;
}

Voilà pour les fondamentaux !

Maintenant, il vous suffit de faire appel à la méthode javascript "alternate" pour coloriser de manière alternée vos tables !

Exemple avec une GridView :
Soit la page maPage.aspx qui charge la MasterPage.Master contenant le javascript ci-dessus et faisant lien avec le CSS contenant le paramétrage ci-dessus :

<asp:GridView ID="GridViewPays" runat="server" AllowPaging="True" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="id" HeaderText="UID" ReadOnly="True" />
            <asp:BoundField DataField="nom" HeaderText="Nom" />
            <asp:BoundField DataField="nom_EN" HeaderText="Nom (english)" />
            <asp:CommandField ShowEditButton="True" />
            <asp:CommandField ShowDeleteButton="True" />
        </Columns>
    </asp:GridView>
    <script language="javascript" type="text/javascript">
        alternate('<%=GridViewPays.ClientID %>');
    </script>

Et c'est terminé ! :)

Simple, pratique, efficace et surtout non invasif.. :) On fait ce qu'on veut, comme on veut !

A propos de l'auteur

 

Développeur depuis plus de 10 ans, j'ai commencé la programmation dès l'âge de 9 ans sur un PC 8088 !!

GW-Basic, Pascal, Turbo Pascal, Delphi ont fait mes bases... Puis Java , bien plus tard... Pour enfin avoir découvert le C#... Quel plaisir de développer avec ce langage des solutions ASP.NET... Le développement Web comme jamais je ne pouvais l'imaginer possible :)

Aujourd'hui titulaire du MCSD VS 6.0, MCAD .NET, et MCT ...

Sur ce blog, je souhaite partager des choses simples mais efficaces... Des problèmes de tous les jours que l'on peut rencontrer et qu'il est simple de régler :)

Mes certifications

Month List