Analyste Développeur en .Net
Non classé
Sélectionner tous ses mails non lus sur Gmail
30/06/10
Voila une astuce assez intéressante (en tout cas pour ceux qui en ont besoin), pour afficher tous les messages non lus de sa boite Gmail, faite la recherche suivante:
in:all is:unread
Comment utiliser d’autres fonts sur son site
3/06/10
Fonts disponibles en standard
La majorité des sites internet utilisent les fonts suivantes:
- Arial / Helvetica
- Courier New / Courier
- Times New Roman / Times
Ces fonts ont l’avantage d’être multiplateformes, Windows, Mac et Linux sauront affichés ces sites web sans problème. D’autres fonts de ce type existent mais sont moins utilisées:
- Avant Garde
- Bookman
- Garamond
- Palatino
Windows et Mac proposent d’autre fonts encore qui ne sont pas gérés par Linux:
- Arial Black
- Comic Sans MS
- Impact
- Georgia
- Trebuchet MS
- Verdana
Mais qu’en est il, lorsqu’on veut pouvoir ajouter ses propres polices sur son site web?
Utiliser des fonts non standards
La solution à ce problème se trouver dans l’utilisation de @font-face dans votre fichier CSS, exemple:
@font-face { font-family: 'MyFont'; src: url('MyFont.eot'); } @font-face { font-family: 'MyFont'; src: url('MyFont.ttf') format('truetype'); } body,html {font-family:"MyFont";} |
La partie avec la font :
- « .eot » est pour IE
- « .ttf » est pour les autres navigateurs
Votre site utilise maintenant d’autres fonts que celles disponibles par défaut.
Sites utiles
- http://onlinefontconverter.com/: site permettant de convertir n’importe quelle font dans n’importe quel format,
- http://www.dafont.com/: site regroupant énormément de fonts.
Comment gérer les exceptions en Asp.net
27/05/10
Situation
Quand on met son site en ligne, on a parfois des erreurs qu’on n’a pas su gérer, ce qu’on appelle une exception, par exemple la base de données qui ne répond pas.
Pour comprendre comment elles ont eu lieu, il faut pouvoir logguer ces exceptions.
Pour corriger le problème rapidement, le site enverra un email à l’administrateur.
Elmah
Elmah permet de répondre à tous ces besoins.
Voici la procédure a faire pour intégrer Elmah à votre projet :
1e étape: Télécharger Elmah
Pour cela cliquer ici, la version que j’utilise présentement est la version 1.1.
2e étape: Ajouter la référence à votre projet
Menu Project / Add Reference, puis ajouter Elmah.dll
3e étape: Modifier la web.config
Ajouter dans la section ConfigSections:
<sectionGroup name="elmah">
<section name="security" requirePermission="false" type="Elmah.SecuritySectionHandler, Elmah" />
<section name="errorLog" requirePermission="false" type="Elmah.ErrorLogSectionHandler, Elmah" />
<section name="errorMail" requirePermission="false" type="Elmah.ErrorMailSectionHandler, Elmah" />
<section name="errorFilter" requirePermission="false" type="Elmah.ErrorFilterSectionHandler, Elmah" />
</sectionGroup> |
Ajouter dans la section HttpHandlers:
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> |
Ajouter dans la section HttpModules:
<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" /> <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/> |
Configurer le serveur SMTP, si ce n’est pas déjà fait:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="DoNotReply@XXX.com">
<network host="smtp.XXX.com" defaultCredentials="true" userName="X" password="X" />
</smtp>
</mailSettings>
</system.net> |
Ajouter la section elmah dans la section Configuration:
<elmah>
<security allowRemoteAccess="0" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="C:\Temp" />
<errorMail from="error@XXXX.com" to="administrator@XXXX.com" priority="High" />
</elmah> |
Ajouter la section location dans la section Configuration:
<location path="elmah.axd">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location> |
4e étape: Tester
Ajouter le code suivant dans le Page_Load de la page:
Throw New Exception("This is a test") |
Compiler et ré-afficher la page.
Une exception est détectée, un mail est envoyé et une entrée dans le fichier xml a été ajoutée.
Allons plus loin
Filtrer les erreurs
Elmah permet de filtrer les erreurs interceptées.
Ainsi on ne voudra pas logguer les erreurs 404 ou encore les exceptions de Type FieldAccessException par exemple. Pour cela, il faut modifier la section elmah dans la web.config de la manière suivante:
<pre lang="config">
<elmah>
<security allowRemoteAccess="0" />
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="C:\Temp" />
<errorFilter>
<test>
<or>
<equal binding="HttpStatusCode" value="404" type="Int32" />
<is-type binding="BaseException" type="System.FieldAccessException" />
</or>
</test>
</errorFilter>
<errorMail from="error@XXXX.com" to="administrator@XXXX.com" priority="High" />
</elmah> |
Visionner les erreurs
Elmah offre une interface web pour visionner les exceptions, pour cela ouvre la page http://localhost/elmah.axd, voici un exemple du rendu:
Comment gérer plusieurs web.config facilement?
26/04/10
Situation
Quand on développe des sites internet on a souvent des configurations différentes. Il devient vite difficile de s’y retrouver. Pour me faciliter la vie j’ai trouvé une solution simple et efficace qui ne demande l’installation d’aucun add-on supplémentaire.
Prenons pour exemple la situation suivante:
- Debug: configuration par défaut utilisé sur le poste du développeur,
- Deploy: configuration du serveur de développement,
- Release: configuration du serveur de production.
Ajouter une nouvelle solution de configuration
Tout d’abord on ajouter la nouvelle solution de configuration nommée Release (disponible dans le menu build/ConfigurationManager).
On aura ainsi dans la liste déroulante 3 solutions de configuration :
Créer les fichiers de configuration
Copier trois fois la configuration actuelle dans le répertoire du projet, puis nommer les de la manière suivante:
- web.debug.config
- web.deploy.config
- web.release.config
Ligne de commande
Ensuite dans l’onglet Compile des propriétés du Projet, ajoutez la ligne suivante dans Pre-build event command line:
copy "$(ProjectDir)\web.$(ConfigurationName).config" "$(ProjectDir)\web.config" /y |
Cette ligne de commande remplacera le fichier web.config par le fichier de configuration correspondant à la solution de configuration choisie.
Les nice to have
Un fichier de backup
Vous venez de modifier le fichier web.config, vous compilez et malheur vous vous rendez compte que votre configuration a été effacée.
Pour remédier à ce problème, j’ai modifiier la ligne de commande de la manière suivante:
copy "$(ProjectDir)\web.config" "$(ProjectDir)\web.config.bak" /y copy "$(ProjectDir)\web.$(ConfigurationName).config" "$(ProjectDir)\web.config" /y |
Ainsi a chaque compilation, une copie de web.config est faite dans le fichier web.config.bak.
Personnaliser votre barre d’outils
Pour faciliter votre vie de développeur, Visual Studio permet de personnaliser la barre d’outils.
Pour cela, faites un clic droit sur la barre d’outils et cliquez sur Customize puis sur l’onglet Commands, sélectionnez la catégorie Build puis ajoutez à votre barre d’outils la command Solution Configurations
Comment se connecter à un fichier Microsoft Excel sous SQL Server 2005
31/03/10
1e méthode : Le fichier Excel
Pour se connecter à un fichier Microsoft Excelle sous SQL Server 2005, vous pouvez utiliser la requête suivante :
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\Datasources\Test.xls;Extended Properties=EXCEL 5.0')...[Sheet1$] ; |
À noter que le fichier « Test.xls » doit être enregistré sur le serveur SQL dans le répertoire « C:\Datasources ».
2e méthode : Le fichier CSV
Cette fois on enregistre le fichier Excel en fichier CSV ayant pour délimiteur le point-virgule.
On crée un fichier « schema.ini » dans le même répertoire dans lequel on a le code suivant:
[text.csv] ColNameHeader=True Format=Delimited(;) MaxScanRows=5 CharacterSet=ANSI |
On peut alors exécuter la requête SQL suivante :
SELECT * FROM OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)}; DefaultDir=D:\Datasources\;','select * FROM test.csv') ; |

