IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ ASP.NET/C#

FAQ ASP.NET/C#Consultez toutes les FAQ

Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireCoté serveur et C#Divers

Simple à faire mais peu de personnes le trouvent du premier coup...

 
Sélectionnez
Version ver = Environment.Version;
Response.Writ("Version Framework = {0}", ver);
Créé le 3 octobre 2005  par abelman
 
Sélectionnez
Response.Write("Compte : " + Environment.Username);
Créé le 29 mai 2006  par Didier Danse

Très simple d'utilisation, parfois plus compliqué à trouver :)

 
Sélectionnez
Response.Write("Utilisé: " + System.Environment.WorkingSet.ToString() + " bytes");
Créé le 29 mai 2006  par Didier Danse
 
Sélectionnez
Response.Write("Plateforme " + System.Environment.OSVersion.ToString() );
Créé le 29 mai 2006  par Didier Danse

Même si cela est simple à écrire, il faut cependant savoir vers quoi s'orienter...

 
Sélectionnez
Response.Write("Utilisateur: " + User.Identity.Name);
Créé le 29 mai 2006  par Didier Danse

Lorsque nous effectuons un traitement, il est conseillé d'utiliser les locks.
Ceux-ci permettent de verrouiller des parties de code. Il n'est ainsi pas possible d'exécuter simultanément deux parties de code se trouvant dans un bloc verrouillé.

 
Sélectionnez
void NomMethode(...)
{
	lock (this)
	{
		// Code à verrouiller
	}
}
Créé le 23 mai 2005  par Didier Danse

Lien : Utilisation du Global.asax

Tout d'abord, ajoutez en entête de votre classe:

 
Sélectionnez
using System.Diagnostics;

Ensuite, ajoutez ceci dans la partie de code qui vous intéresse:

 
Sélectionnez
// Instanciation d'un objet StopWatch
StopWatch monStopWatch = new Stopwatch();

// Déclenchement du "chronomètre"
monStopWatch.Start();

// ///////////////////////////////
// Placez ici le code que vous voulez évaluer, cela peut être par exemple du code 'brut' ou
// alors l'appel d'un méthode...
// ///////////////////////////////

// Arrêt du "chronomètre"
monStopWatch.Stop();

// Le temps écoulé peut être récupéré très facilement avec un membre de StopWatch,
// de la façon suivante. Le résultat est exprimé en millisecondes
long tempsExecution = monStopWatch.ElapsedMilliseconds;
Créé le 29 mai 2006  par Ronald Vasseur

Tout d'abord, ajoutez en entête de votre classe:

 
Sélectionnez
using System.Text.RegularExpressions;

Un exemple vaut mieux qu'un long discours:

 
Sélectionnez
string monTexte = "Une astuce de dvp.com ! Une astuce de dvp.com !";

// Paramétrage de notre expression régulière :
// Ici on spécifie que l'on ne veut pas tenir compte dela casse du 
// texte dans nos remplacements.
Regex maRegEx = new Regex("\bdvp.com\b", RegexOptions.IgnoreCase);

// Remplacement des occurences de "dvp.com" par "Developpez.com"
monTexte = maRegEx.Replace(monTexte, "Developpez.com");
Créé le 29 mai 2006  par Ronald Vasseur

Jusqu'à aujourd'hui une classe devait se trouvait dans un fichier unique, cela posait problème par exemple en cas de codes longs et complexes, ou encore en cas de travail en équipe sur une même classe. Avec l'arrivé du Framework .Net 2.0, il est désormais possible de répartir une classe dans plusieurs fichiers, c'est ce que l'on appelle les classes partielles.

Répartir une classe dans plusieurs fichiers ne présente pas de difficulté, il suffit simplement d'ajouter le mot clé « partial » au début de chaque fichier, le compilateur fera le travail pour réassembler tous ces fichiers, voici un exemple :

 
Sélectionnez
public partial class maClasse
{

}
Créé le 1er février 2006  par Ronald Vasseur

Ce qui suit est extrait d'un échange sur le forum dotnet. C'est très shématique mais cela résume bien comment le .NET Framework s'y prend pour gérer la mémoire

Le .NET Framework : Salut OS, j'ai des trucs à lancer, j'peux te prendre de la ram ?
L'OS : Hé Salut ! Je t'en pris, sers-toi !
Le .NET Framework : Sympa mec. J't'en prend 50Mo maintenant, j'ai besoin que de 15 Mo,
mais comme ça je te dérange pas si j'ai besoin de plus.
...

Le .NET Framework : Hé l'OS, t'es short niveau mémoire ?
L'OS : Non non, tout va bien.
Le .NET Framework : Bon, alors je garde mes 50 Mo encore un peu.
L'OS : Oki.
...

SQL Server : Bonjour M. l'OS, j'ai un gros besoin de mémoire...au moins 200 Mo.
L'OS : Ben sers-toi donc.
SQL Server : Ouais mais y a plus que 180Mo !
L'OS : Ah OK, attend 2 millisecondes stp...
L'OS : Hé Framework, tu peux me rendre un peu de RAM ?
Le .NET Framework : No problemo, j'te fais ça tout de suite...
Le .NET Framework : Garbage Collector, soit un amour et va rendre de la mémoire à l'OS.
Garbage Collector : J'y cours patron.

C'est clair non ?

Créé le 23 mai 2005  par Keihilin

Pour forcer le Garbage Collector à libérer la mémoire inutilisée par le .NET Framework, on peut appeller la méthode Collect de la classe GC.

 
Sélectionnez
System.GC.Collect();

Par contre, pour des raisons qui justifieraient à elles seules un article, il n'est pas conseillé d'appeller GC.Collect() directement. Par conséquent, ne le faites pas à moins d'être un expert du garbage collector.

Créé le 23 mai 2005  par Keihilin

Il est possible de visualiser le cache global des assemblages (GAC) comme un répertoire classique.

Le GAC est enregistré en tant que répertoire spécial et c'est la Dll ShFusion qui prend en charge sa présentation sous l'exploration de fichiers.

En modifiant la clé de registre HKEY_LOCAL_MACHINE\Software\Microsoft\Fusion vous pouvez intervenir sur son mode de visualisation au sein de l'explorateur.

Pour ce faire, modifier la clé nommée DisableCacheViewer en lui attribuant une valeur différente de zéro.

 
Sélectionnez
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"DisableCacheViewer"=dword:00000001

Cette clé est gérée dynamiquement, il n'est pas nécessaire de relancer les explorateurs de fichiers actifs.

Créé le 3 octobre 2005  par Laurent Dardenne

Ajoutez

 
Sélectionnez
<%@ page aspcompat=true %>

dans le dessus de la page utilisant ces composants. Cela résoud le problème dans bien des cas.

Créé le 4 septembre 2006  par Didier Danse

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.