Vérification W3C de tout un site...

Au lieu de valider page par page, voici une solution toute simple :

http://www.validator.ca

Il suffit alors de passer l'URL du site (exemple : http://www.monsite.com) et c'est parti ! L'outil va vérifier l'intégralité de votre site web, à condition bien entendu que la page d'entrée contienne les liens vers les autres pages à contrôler.

Vous allez ensuite pouvoir facilement voir quelles pages ne sont pas conformes et corriger ce qu'il faut...

Pour information amusante, le fait d'être conforme ou non au règles W3C ne doit pas être un paramètre important pour les moteurs de recherches puisque GOOGLE, BING, YAHOO ne sont pas validés ! :-)

Gestion automatique de plusieurs Web.config dans un même projet

Une fois que vous y aurez goûté... vous ne pourrez plus vous en passer :-)

L'astuce qui est décrite ci-après est désormais appliquée à tous mes projets !

Le but c'est de pouvoir gérer plusieurs Web.Config dans un même projet. En fonction du mode de compilation Debug, Release, Deploy, le Web.config qui va bien sera généré !
En clair plus besoin de bidouiller le Web.config du serveur de prod , du serveur de Dev puisque tout est maintenu dans notre projet ! Le TOP !

Alors comment ça marche ?

1) Ajout de copyifnewer.bat dans nos fichiers de solutions
Avant tout, nous allons ajouter à notre solution le fichier copyifnewer.bat que vous pouvez télécharger là : copyifnewer.bat (415,00 bytes). Ce fichier doit être dans la solution mais n'est pas inclus dans la solution (de sorte qu'il ne soit pas dans le package de livraison final donc)



2) Modification des propriétés du PROJET
Clique droit le nom du projet concerné puis PROPRIETES.
Sélectionner BUILD EVENTS.
Dans PRE-BUILD event, ajouter : "$(ProjectDir)copyifnewer.bat" "$(ProjectDir)web.config.$(ConfigurationName)" "$(ProjectDir)web.config"

3) Création des fichiers de configuration adaptés à la situation
Vous allez pouvoir créer des fichiers Web.config.[nomDeConfiguration]
Exemple : Web.config.Release , Web.config.Debug
Dans ces fichiers qui sont dans votre solution, mais qui sont exclus (de sorte qu'ils ne soient pas dans le package de livraison final), vous allez pouvoir adapter les paramètres en fonction de la situation ! (Debug ou Release)



Lorsque vous lancerez la GENERATION du projet, l'instruction PRE-BUILD event (2) va remplacer le Web.config par le Web.config.[nomDeConfiguration] , exemple, si vous lancez la GENERATION du projet en mode RELEASE c'est le Web.config.Release qui remplacera le Web.config
Si vous lancez le projet en DEBUG, c'est le Web.config.Debug qui remplacera le Web.config

Vous pouvez évidemment ajouter d'autres configurations... Cliquer sur BUILD puis CONFIGURATION MANAGER, dans ACTIVE SOLUTION CONFIGURATION sélectionner NEW et remplissez le nouveau NOM de la configuration (exemple DEPLOY) ; Dans COPY SETTINGS FROM sélectionnez une configuration existante (exemple RELEASE)
Il vous suffira alors de définir un Web.config.Deploy qui contiendra les paramètres de configuration pour ce cas de compilation :-)

 (source : http://www.hanselman.com/blog/default.aspx?date=2007-09-21)

DataView et Delete d'une DataRowView .NET 2.0.xxxxx

Alors voilà une mésaventure pas cool du tout !

Il peut arriver que l'on veuille filtrer certains éléments d'une DataView et que l'on fasse un petit browse de toutes les lignes pour supprimer ce qui ne nous intéresse pas...

Exemple tout simple :

foreach(DataRowView drv in myDataView)
{
   if(drv["champ"].ToString().Equals("pas top"))
   {
       drv.Delete();
    }
}

Vous allez me demander pourquoi ne pas faire un RowFilter, mais c'est simplement pour l'exemple que j'utilise un cas aussi simple... Imaginons donc, que le RowFilter ne puisse pas répondre à notre besoin et que nous devons donc bel et bien supprimer nous même ce qui ne nous intéresse pas...

Donc l'exemple ci-dessus marchera avec un framework 2.0.50727.4200 mais ne marchera pas du tout avec un framework 2.0.50727.832

On aura des messages d'erreurs qui indiqueront que l'élément n'existe plus. Et si comme moi, votre hébergeur ne peut pas mettre à jour la version du Framework, pas d'autre choix que de s'adapter !

il faudra alors ruser en procédant ainsi :

            for (int i = 0; i < myDataView.Count; i++)
            {
                if (myDataView[i]["champ"].ToString().Equals("pas top"))
                {
                    myDataView[i].Row.Delete();
                    i--;
                }
            }

Il fallait commencer par ça quand même !!!

BONNE ANNEE 2010 à tous !

Pace e Salute a tutti !

:)

Mise à jour du moteur de Blog !

Ahhhh, voilà qui devrait donner envie de reprendre les posts... Avec la version 1.5 de BlogEngine on sent quand même que c'est plus complet !

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