by Nicolas Calvi
25. novembre 2008 12:17
Je n'avais pas encore relayé cette information, mais la nouvelle version d'XNA est disponible. Elle est couplée avec la nouvelle interface Xbox, le XNE (Xbox New Experience) qui permet enfin de compiler et créer des jeux avec le framework 3.5 Compact.
En plus des améliorations apportées par le framework 3.5, XNA 3.0 ajoute le support Zune et des Materials Shaders et une prise en charge plus élaboré des ressources sonores. Il est bien sûr compatible avec Visual Studio 2008.
Cerise sur le gâteau, Microsoft ouvre enfin la voie aux développeurs indépendants que nous sommes, en permettant de pouvoir vendre nos créations (une fois valider par Microsoft et respectant tous les critères qualité inérant aux XBox Live Arcade) sur le marketplace de la Xbox 360. Jolie initiative qui ouvre d'intéressante perspective.
by Nicolas Calvi
25. novembre 2008 11:58
Une des questions qui revient souvent quand on développe en ASP.Net, c'est comment persister facilement et simplement une donnée sur une page dans le ViewState pour pouvoir la réutiliser à chaque PostBack. Avant de faire cela il faut déjà comprendre que cela à un coup.
En effet la moindre information persistée dans le ViewState prend beaucoup de place et donc alourdit la page et son chargement, il faut donc l'utiliser avec beaucoup de précaution. Il faut savoir aussi que seules les données sérialisables peuvent être ajoutées au ViewState.
Ensuite il suffit de procéder comme ceci pour créer sa propriété dans sa page :
public string MaProp
{
get
{
if ( this.ViewState["MaProp"] == null )
{
this.ViewState["MaProp"] = String.Empty;
}
return((string)this.ViewState["MaProp"]);
}
set
{
this.ViewState["MaProp"] = value;
}
}
Vous pouvez remarquer que le nom de la clé dans le ViewState est la même que ma propriété, même si cela n'est pas obligatoire cela permet une meilleurs relecture et ajoute une cohérence à notre code.
Dans le cadre du GET je test si le ViewState possède déjà ma clé, si ce n'est pas le cas on lui affecte une valeur par défaut pour permettre une initialisation automatique, pensez à bien caster le retour du GET.
by Nicolas Calvi
24. novembre 2008 17:58
J'ai récement eu un petit problème sur log4net pour générer des fichiers auyant le nom "monfichier_24-11-2008.log". En effet soit l'appender me met la date à la fin derrière l'extension, où si je met le ".log" dans le format de date il me transforme le "g" de "log" en "A.D".
Pour remédier à ce problème il faut tout simplement passer par le caractère d'échapement sur les formats de date qu'est le "\". En effet en mettant "\{char}" (par exempel "\g") l'interpréteur sur les dates ne prend pas en compte le caractère en question. Nous pouvons donc dans le format de date log4net spécifier le "\g" sur le ".log" afin qu'il ajoute correctement la date à la fin du fichier et surtout avant l'extenstion. Je vous propose un exemple d'appender :
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="C:\MonFichier_" />
<appendToFile value="true" />
<datePattern value="yyyy-MM-dd.lo\g" />
<staticLogFileName value="false" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger %method [%ndc] - %message%newline" />
</layout>
</appender>
by Nicolas Calvi
13. août 2008 13:42
Ca y est, Microsoft à rendu disponible le premier service pack pour VSTO3. Vous pouvez le télécharger ici mais est inclus dans le service pack 1 de Visual Studio 2008.
Beaucoup de bugs corrigés mais aussi une interopérabilité bien plus poussée avec Word et Excel, notamment par la création de nouveaux événements.
by Nicolas Calvi
16. juillet 2008 15:03
Si certain se pose la question à savoir comment hasher une chaîne de caractère au format MD5, voici la méthode qui le permet. Elle utilise System.Security.Cryptography du framework, ça mange pas de pain et parfois ça dépanne.
using System.Security.Cryptography;
public static string HashToMD5(string p_sChaine)
{
MD5 oServiceMD5 = null;
byte[] sChaineMD5 = null;
StringBuilder oResult = new StringBuilder();
// Création du provider MD5 et conversion
oServiceMD5 = new MD5CryptoServiceProvider();
sChaineMD5 = oServiceMD5.ComputeHash(Encoding.ASCII.GetBytes(p_sChaine));
// On convertie les bytes résultat en chaine de caractère
foreach ( byte oByte in sChaineMD5 )
oResult.Append(oByte.ToString("x2"));
// On retourne le résultat
return (oResult.ToString());
}