Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2860 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [ASP.Net] Question de performance ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP.Net] Question de performance ?

n°732981
zetoune
Posté le 20-05-2004 à 20:51:03  profilanswer
 

Qu'est ce qui est le plus rapide à être éxécuter ?
Ça :

Code :
  1. Public Class MaClasse()
  2.       Public Variable1 as String = ChaineDeCaractere1
  3.       Public Variable2 as String = ChaineDeCaractere2
  4.       Public Variable3 as String = ChaineDeCaractere3
  5.       Public Variable4 as String = ChaineDeCaractere4
  6.       ...
  7.       Public Variablen as String = ChaineDeCaracteren
  8. End Class
  9. Public Class MaClassePrincipale()
  10.       Public Sub New()
  11.          Dim obj as Object = New MaClasse()
  12.       End Sub
  13. End Class


 
ou ça :
 

Code :
  1. Public Class MaClasse()
  2.       Public Variable1 as String
  3.       Public Variable2 as String
  4.       Public Variable3 as String
  5.       Public Variable4 as String
  6.       ...
  7.       Public Variablen as String
  8.      
  9.       Public Sub New()
  10.          Variable1 = ChaineDeCaractere1
  11.          Variable2 = ChaineDeCaractere2
  12.          Variable3 = ChaineDeCaractere3
  13.          Variable4 = ChaineDeCaractere4
  14.          ...
  15.          Variablen = ChaineDeCaracteren
  16.       End Sub
  17. End Class
  18. Public Class MaClassePrincipale()
  19.       Public Sub New()
  20.          Dim obj as Object = New MaClasse()
  21.       End Sub
  22. End Class


Message édité par zetoune le 20-05-2004 à 20:52:06
mood
Publicité
Posté le 20-05-2004 à 20:51:03  profilanswer
 

n°732982
gizmo
Posté le 20-05-2004 à 20:55:11  profilanswer
 

1° C'est quoi ces propriétés de class en public?!
2° Si le compilo est intelligent, ca revient exactement au même.

n°732988
zetoune
Posté le 20-05-2004 à 21:02:05  profilanswer
 

En fait, la premiere classe est un dictionnaire.
Ce qui me permet dans une seule page de gérer la langue.
(En fait j'ai plusieurs classes MaClasse , genre MaClass_fr,Maclass_En,MaClass_Sp).
 
Donc pour un n'importe quel mot. Je peux appeler dans MaClassPrincipale la variable Obj.Variablex pour avoir la valeur dans la langue que je veux (En créant un objet de la classe MaClass_(Languequeveux) ou Languequejeveux est un parametre en Querystring.
 
 
 
 

n°733041
gizmo
Posté le 20-05-2004 à 23:05:36  profilanswer
 

mouais, c'est assez crade comme technique.

n°733532
jaylee
Posté le 21-05-2004 à 13:54:12  profilanswer
 

Du coté du code généré, tes deux exemples génèrent exactement la même chose. Dans le premier cas, tu initialises en "inline" et dans le deuxieme cas tu initialise dans le constructeur.
 
Dans tous les cas, ton code n'est absolument pas adapté et inutile. Pour ton problème, je ne peux que te conseiller d'utiliser le système des resources intégré dans .NET qui est capable d'effectuer exactement ce que tu recherches et qui plus est sans ton intervention.
 
Regardes du coté de System.Resources et System.Resources.ResourceManager et les fichiers de ressources localisés.
 
--
Jay
{Epitech.}
http://msdn.labtech.epitech.net/blogs
 

n°733682
zetoune
Posté le 21-05-2004 à 15:09:25  profilanswer
 

gizmo : j ai aucun problème à améliorer ça !!! Des tuyaux ???
 
jaylee : ouais ok..

n°733684
gizmo
Posté le 21-05-2004 à 15:10:45  profilanswer
 

bah la solution de Jaylee dans un premier temps, et ensuite, quand tu créeras d'autres objets, évite de mettre les propriétés en public, sauf en dernier recours.

n°733690
zetoune
Posté le 21-05-2004 à 15:14:40  profilanswer
 

Mais pour y avoir accès à l'extérieur de la classe j'ai pas le choix que cela soit public !

n°733700
gizmo
Posté le 21-05-2004 à 15:21:48  profilanswer
 

houla! c'est la première fois que tu fais de la programmation objet, pas vrai? Regarde du côté des getters et setters...

n°733726
jaylee
Posté le 21-05-2004 à 15:30:31  profilanswer
 

Gizmo, ce que Setoune a déclaré en public sont des champs et non des propriétés.
 
Zetoune, dans la programmation objet on effectue ce que l'on appelle de l'encapsulation des données et en C# cela s'effectue par l'intermédiaire des propriétés (Properties). Autrement dit, tu vas faire quelque chose du style :
 

Code :
  1. Public Class SomeClass
  2.     Private myValue As String
  3.     Public Property MyValue() As String
  4.         Get
  5.             Return myValue
  6.         End Get
  7.         Set (ByVal Value As String)
  8.             myValue = value
  9.         End Set
  10.     End Property
  11. End Class


 
L'utilisation des propriétés permet, par exemple, d'éviter que l'utilisateur de ta classe ne fasse quelque que tu n'as pas prévu en mettant une valeur incorrecte dans ton champ privé.
 
Autre chose, je ne saurais trop te conseiller de faire du C# et non du VB.NET... la syntaxe est généralement beaucoup moins chargée :
 

Code :
  1. public class SomeClass
  2. {
  3.     private string _myValue = string.Empty;
  4.     public string MyValue {
  5.         get {
  6.             return _myValue;
  7.         }
  8.         set {
  9.             _myValue = value;
  10.         }
  11.     }
  12. }


 
Qui donne le même résultat...
 
--
Jay
{Epitech.}
http://msdn.labtech.epitech.net/blogs

mood
Publicité
Posté le 21-05-2004 à 15:30:31  profilanswer
 

n°733736
gizmo
Posté le 21-05-2004 à 15:34:38  profilanswer
 

jaylee a écrit :

Gizmo, ce que Setoune a déclaré en public sont des champs et non des propriétés.


 :heink: En programation objet, on n'a pas de champs dans une classe, on a des méthodes et des propriétés, point.

n°733745
zetoune
Posté le 21-05-2004 à 15:36:45  profilanswer
 

Ouais je connais les propriétés tout de même.
Jaylee. Je vais regarder du côté des Resources.  
Peux tu me dire un peu le fonctionnement ? Ca charges les variables dans mémoire. Je peux les récupérer à n'importe quel endroit ?

n°733764
jaylee
Posté le 21-05-2004 à 15:42:37  profilanswer
 

Gizmo, je te conseille donc de regarder la documentation du framework. .NET étend légèrement le sens des termes utilisés généralement en O.O.P.
 
Dans un type, il est possible de trouver les éléments suivants :  
 

  • Events
  • Methods
  • Properties
  • Fields
  • Plus d'autres éléments inutiles pour ce post...


En .NET, il existe une différence de taille entre Champ et Propriété, l'un étant une variable au sens original du terme, l'autre étant la simplification de l'utilisation des accesseurs.
 
--
Jay
{Epitech.}
http://msdn.labtech.epitech.net/blogs

n°733787
zetoune
Posté le 21-05-2004 à 15:47:58  profilanswer
 

jaylee : pour en revenir au début de ma question. Je veux gagner en rapidité d'affichage de ma page. J'en conclus donc que mon affaire est une usine à gaz. Avec ce que tu m'as conseillé ca devrait aller plus vite ?

n°733835
jaylee
Posté le 21-05-2004 à 15:59:04  profilanswer
 

zetoune a écrit :

jaylee : pour en revenir au début de ma question. Je veux gagner en rapidité d'affichage de ma page. J'en conclus donc que mon affaire est une usine à gaz. Avec ce que tu m'as conseillé ca devrait aller plus vite ?


 
Ca ira plus vite pour toi à l'utilisation et ce sera beaucoup plus propre (donc plus rapide). Par exemple, tu pourras utiliser un ResourceManager de cette manière (Exemple tiré de la MSDN Library) :
 

Code :
  1. using System;
  2. using System.Globalization;
  3. using System.Threading;
  4. using System.Resources;
  5. using System.Reflection;
  6. class ResourcesExample
  7. {
  8.     public static void Main()
  9.     {
  10.        // Create a resource manager to retrieve resources.
  11.        ResourceManager rm = new ResourceManager("items",
  12.           Assembly.GetExecutingAssembly());
  13.        // Get the culture of the currently executing thread.
  14.        // The value of ci will determine the culture of
  15.        // the resources that the resource manager retrieves.
  16.        CultureInfo ci = Thread.CurrentThread.CurrentCulture;
  17.        
  18.        // Retrieve the value of the string resource named  
  19.        // "welcome", localized for the culture specified by ci.
  20.        String str = rm.GetString("welcome", ci);
  21.        Console.WriteLine(str);
  22.     }
  23. }


 
Il te suffit alors de créer des fichiers ressources nommés par exemple :

  • items.fr-FR.resx
  • items.en-US.resx
  • items.de.resx
  • items.resx


Le dernier étant considéré comme un "fallback" au cas où le langage demandé n'existerait pas.
 
--  
Jay  
{Epitech.}  
http://msdn.labtech.epitech.net/blogs

n°733841
jaylee
Posté le 21-05-2004 à 16:00:35  profilanswer
 

Ca ira plus vite pour toi à l'utilisation et ce sera beaucoup plus propre (donc plus rapide). Par exemple, tu pourras utiliser un ResourceManager de cette manière (Exemple tiré de la MSDN Library, ms-help://MS.NETFrameworkSDKv1.1/cpref/html/frlrfsystemresourcesresourcemanagerclassctortopic.htm) :
 

Code :
  1. using System;
  2. using System.Globalization;
  3. using System.Threading;
  4. using System.Resources;
  5. using System.Reflection;
  6. class ResourcesExample
  7. {
  8.     public static void Main()
  9.     {
  10.        // Create a resource manager to retrieve resources.
  11.        ResourceManager rm = new ResourceManager("items",
  12.           Assembly.GetExecutingAssembly());
  13.        // Get the culture of the currently executing thread.
  14.        // The value of ci will determine the culture of
  15.        // the resources that the resource manager retrieves.
  16.        CultureInfo ci = Thread.CurrentThread.CurrentCulture;
  17.        
  18.        // Retrieve the value of the string resource named  
  19.        // "welcome", localized for the culture specified by ci.
  20.        String str = rm.GetString("welcome", ci);
  21.        Console.WriteLine(str);
  22.     }
  23. }


 
Il te suffit alors de créer des fichiers ressources nommés par exemple :

  • items.fr-FR.resx
  • items.en-US.resx
  • items.de.resx
  • items.resx


Le dernier étant considéré comme un "fallback" au cas où le langage demandé n'existerait pas.
 
--  
Jay  
{Epitech.}  
http://msdn.labtech.epitech.net/blogs


Message édité par jaylee le 21-05-2004 à 16:03:11
n°733847
zetoune
Posté le 21-05-2004 à 16:01:55  profilanswer
 

Ok perfect.. Je vais regarder ça !!! Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [ASP.Net] Question de performance ?

 

Sujets relatifs
plusieurs vars pour asp :([ASP 3.0] FSO + Probleme pour renommer un fichier
[ASP] lister le contenu d'un répertoire[ASP 3.0] Vérifier les dimensions d'une image [Résolu]
C# - Vb .Netquestion sur les demons
Question sur les JPanel [résolu] + question sur les listeners [résolu]Faire un tri a partir d'un tableau comment faire sous ASP ?
[asp-vbs-acess]Problème de conpatibilité...Problème avec les boutons radio en asp
Plus de sujets relatifs à : [ASP.Net] Question de performance ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR