begin process at 2008 07 20 10:14:31
1 213 168 membres
87 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

191 commentaire(s) de jesusonline sur des sources sur aspfr

Le : 17/05/2008 12:52:03
Source : MAXLENGTH SUR LES TEXTBOX MULTILINE
quel principe ?


Le : 24/04/2008 15:43:44
Source : UPLOAD FILE
Il s'agit d'une source ASP.net 1.x, avec ASP.net 2.0 il faut mieux utiliser le contrôle <asp:fileupload qui permet de simplifier la plupart des choses.

Ton code dispose d'une ENORME faille de sécurité. Qu'est-ce qui se passe si j'upload la page "CrashServer.aspx" et que je vais à l'adresse /others/CrashServer.aspx ?
Voici quelques règles de base au sujet de l'upload :
  - ne jamais faire confiance à l'utilisateur !
  - ne jamais stocker les fichiers avec le nom et extensions proposé par l'utilisateur
  - si possible :
     - ne pas autoriser tous les types de fichier, valider les données avant de les sauvegarder
     - ne pas sauvegarder les données dans un repertoire ayant des droits d'execution.
         - le top est de stocker les fichiers dans un dossier non accessible via IIS, puis renvoyer le contenu du fichier via un handler dédié.


Au niveau du code, je te conseille d'utiliser un Path.Combine plutot que de la combinaison de string.
Au lieu de faire de faire un extension.toLower() pour comparer les extensions, tu peux utiliser un String.Compare("EXE", "eXe", StringComparison.InvariantCultureIgnoreCase)
Au lieu de faire un if (s != String.Empty) tu peux utiliser la méthode String.IsNullOrEmpty (peut être pas dispo en .net 1.x)


Le : 15/04/2008 11:48:58
Source : ICOMPARER GÉNÉRIQUE ET RÉFLEXION
pas besoin de T y'aura de l'inference de type :

Orderer.Sort<IComparable>(l, delegate(Person p){
  return p.Name;
}, delegate(Person p){
  return p.Age;
});

En fait après reflexion, je pense que tu pourrais remplacer U par IComparable dans la méthode Sort (et supprimer la contrainte where) car tu peux pas avoir une Get<U>[] où U aurait un type différent, donc autant passer par un IComparable directement.

le mot clé params veut dire que tu peux mettre autant d'argument que voulu, ils vont se regrouper dans un tableau automatiquement.



Le : 15/04/2008 11:08:58
Source : ICOMPARER GÉNÉRIQUE ET RÉFLEXION
On trie d'abord par la premiere propriété puis la seconde propriété. Si les premières propriétés sont égales alors on check la seconde et ainsi de suite donc il est nécessaire de faire le break;


Le : 15/04/2008 10:09:04
Source : ICOMPARER GÉNÉRIQUE ET RÉFLEXION
oui et non, le marketing chez microsoft c'est du n'importe quoi :)

le compilateur C#3 compile pour la CLR2 donc tu peux utiliser les assemblies du framework 2.0.
Le compilateur C#3 est livré avec .net 3.5 donc aussi avec VS2008, c'est pour ca que VS2008 permet de "compiler" pour .net 2.0, en fait il ne fait que ne pas inclure les assemblies du framework 3.x.

Le framework 3.0 et 3.5 tourne sur la CLR2 également.


Le : 14/04/2008 20:58:20
Source : ICOMPARER GÉNÉRIQUE ET RÉFLEXION
Arf je suis bête pour le chainage ca va être plus compliqué :) faut le faire dans le delegate ou alors utilisé linq donc C#3

l.Sort(delegate(p1, p2){
   int v = p1.Name.compareTo(p2.Age);
   if (v == 0)
      v = p1.Age.compareTo(p3.Age);
   return v;
});

niveau vitesse ce code sera BEAUCOUP plus rapide que ce que tu as fait, la Reflection est extremement couteuse.

Toutes les simplifications de syntaxe que je vois pour ce simple bout de code viennent avec C#3. Tu peux éventuellement avoir un classe static du genre

public static class orderer<T>
{

    public delegate U Get<U>(T item) where U : IComparable<U>;

    public static void Sort<U>(List<T> l, params Get<U>[] m) where U : IComparable<U>
    {
        l.Sort(delegate(T item1, T item2)
        {
            int v = 1;
            foreach (Get<U> g in m)
            {
                v = g(item1).CompareTo(g(item2));
                if (v != 0)
                    break;
            }
            return v;
        });
    }
}

Puis utiliser ca ainsi

Sort(l, delegate(Person p){
  return p.Name;
}, delegate(Person p){
  return p.Age;
});

Avec les lambda expression en C#3
Sort(l, p => p.Name, p => p.Age);

Sauf erreur de ma part, le petit bout de code est équivalent à tout ton code pour trier une liste mis à part qu'il y a aura une vérification à la compil.

L'autre solution est d'utiliser un DataTable/Dataview qui fait déjà tous ce code pour toi !


Le : 14/04/2008 18:39:46
Source : ICOMPARER GÉNÉRIQUE ET RÉFLEXION
La méthode Sort prend un Comparison<T> qui est un delegate qui a cette signature
delegate int SortComparison<T>(T item1, T item2)

tu peux donc faire

l.Sort(new Comparison<String>(delegate(String s1, String s2){
            return s1.CompareTo(s2);
        }));

C# 2 permet de simplifier un petit peu :
l.Sort(delegate(String s1, String s2){
            return s1.CompareTo(s2);
        });

C#3 permet de simplifier encore plus via les lambda expression
l.Sort((s1, s2) => s1.CompareTo(s2));

Tu peux bien sur chainé cet exmple pour avoir un tri sur plusieurs champs

en linq (C#3) ca donne

var q = from p in l
        orderby p.Name, p.Age
        select p;

q et l étant une List<Person>



Le : 14/04/2008 17:22:14
Source : ICOMPARER GÉNÉRIQUE ET RÉFLEXION
Après un rapide coup d'oeil. Voici mes remarques :

- Pourquoi ne pas avoir utilisé un Gridview ? C'est son rôle d'afficher une grille de données.
- Je comprend pas pourquoi tu t'es embeté avec de la reflection. La méthode Sort de List<T> prend un delegate qui permet de faire le tri facilement.
     myList.Sort((p1, p2) => p1.Name.CompareTo(p2.Name))
    et si tu veux chainé.
     myList.Sort((p1, p2) => p1.Name.CompareTo(p2.Name)).Sort((p1, p2) => p1.Age.CompareTo(p2.Age));
    tu peux aussi utilisé une requête linq ce qui fais encore moins de ligne :)

Ton code est interessant (j'ai pas tout lu) mais tu n'utilises pas .net de la meilleure façon.


Le : 14/04/2008 13:40:12
Source : UTILISATION DES DATATABLES ET L'AFFICHAGE DU CONTENU DANS UNE PAGE ASPX
Pourquoi construire un HtmlTable de cette façon ? Pourquoi ne pas utiliser un gridview ?
Pour moi c'est plus un exemple de ce qu'il ne faut pas faire plutot que de ce qu'il faut faire.

PS : merci de mettre une description plus complète de ta source


Le : 03/04/2008 19:32:01
Source : HANDLER PERMETTANT DE FAIRE UNE REQUETE SUR LES USERCONTROL - LES FICHIER ASCX
Pourquoi utiliser Server.Transfer alors que les httpmodules avec la méthode context.RewritePath (je suis pas sur du tout là :p) permet de faire du rewriting ? En plus ce sera plus performant :)

Sinon pour le problème de session, il faut que ton handler implémente IRequireSessionState ou IReadOnlySessionState qui sont des interfaces "marqueurs" (là encore pas sur du nom des interfaces :))



Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Boutique

Boutique de goodies CodeS-SourceS