Question

J'ai eu tendance à éviter d'ajouter des propriétés à mes pages ASP.NET. Cela ne m'a jamais semblé une bonne idée. Cependant, j'ai récemment vu la pratique utilisée dans quelques exemples d'applications. Mon aversion pour l'ajout de propriétés personnalisées à une page a-t-elle été injustifiée ou s'agit-il d'un "ça dépend" situation?

Était-ce utile?

La solution

Ce qu'il faut retenir des propriétés, c'est qu'elles durent pendant tout le cycle de vie d'une page. Cela les rend à la fois très utiles (définir une propriété tôt dans le cycle de vie et qu'il est toujours valide plus tard) et dangereux (il est facile d'accéder à une propriété avant qu'elle ne soit définie ou de ne pas réaliser qu'une autre phase du cycle de vie l'a modifiée).

Parmi les domaines dans lesquels les propriétés ont été utilisées à bon escient, il existe un bon moyen, en respectant le texte, d’envelopper la chaîne de requête et la session. Définissez les propriétés de chaque chaîne de requête ou valeur de session attendue. Les futurs développeurs verront très clairement ce qui est attendu et disponible.

Une autre utilisation courante consiste à envelopper des éléments ViewState. Je suppose que c'est à cet endroit que vous les voyez dans les échantillons, car la plupart des échantillons ont tendance à supposer que ViewState est activé.

Autres conseils

Je ne vois aucun inconvénient à utiliser les propriétés pour nettoyer le code sur une page côté serveur. J'aime utiliser les propriétés pour accéder aux informations sur l'état de session ou l'état d'affichage. Ainsi, si je modifie le mode d'accès aux données, je ne modifie qu'un seul lieu.

Asp.net ne prend pas en charge l’injection basée sur le constructeur. Il s'agit d'un scénario clair dans lequel vous souhaitez utiliser les propriétés asp.net (car vous pouvez utiliser l'injection basée sur les propriétés).

Mise à jour 1: voici un scénario similaire, mais pour les contrôles - Comment utiliser Dependency Injection avec ASP.NET Web Forms

Mise à jour 2: vous pouvez les utiliser pour envelopper l'état de la vue ou la chaîne de requête. Je regarderais cela attentivement cependant, car vous ne voulez pas abuser du code ci-dessous. Si vous voyez que vous utilisez une des propriétés d'habillage sur le code derrière beaucoup de fois, il y a probablement trop de code dans le code derrière. Cette façon de procéder a pour effet d’éviter des conversions / analyses répétées pouvant être associées à ces propriétés.

Il n'y a rien de mal avec les propriétés d'une page. Ils pourraient être curieux car une page est rarement manipulée en tant qu'objet par un code externe, mais cela peut être fait. Dans ce cas, la plupart des propriétés d’une page peuvent être marquées comme privées. Comme toutes choses, il existe des exceptions.

L'une des principales utilisations des propriétés de ma page concerne le retour à la ligne d'une valeur ViewState:

protected string TaskName
{
    get { return (string)ViewState["TaskName"] ?? string.Empty; }
    set { ViewState["TaskName"] = value; }
}

Dans ce cas, j'ai marqué la propriété comme "protégée". ce qui me permet d'y accéder à partir de mon balisage.

Pourquoi ce serait mauvais? Les propriétés ne sont que des méthodes et je suis sûr que vous ajoutez des méthodes à la page tout le temps.

J'utilise les propriétés de mes pages asp.net pour accéder à Session, Viewstate et querystring. Cela vous fait juste écrire moins de code et améliore la lisibilité

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top