2010-04-12 3 views
3

J'ai lu l'information dans cette question: Controls versus standard HTML mais je suis encore assez confus.ASP .NET confusion - contrôles serveur

La situation était que j'ai été invité à faire un projet web où j'ai fait un assistant. Quand j'ai eu fini le projet, tout le monde m'a demandé pourquoi j'avais utilisé un <asp:Wizard...>. Je pensais que c'était ce qui était demandé, mais apparemment pas, donc après cela, j'ai été amené à croire que les contrôles serveur n'étaient que des outils de prototypage.

Cependant, le projet suivant a fait mes requêtes DB via C# code-behind et chargé les résultats via html. On m'a ensuite demandé pourquoi je n'avais pas utilisé un gridview et un jeu de données.

Est-ce que quelqu'un a une liste de avantages et inconvénients pourquoi choisirait-il d'utiliser des contrôles html spécifiques sur des contrôles serveur spécifiques et pourquoi? Je suppose que je suis à la recherche d'une liste ... quels contrôles serveur sont autorisés à utiliser et pourquoi?

EDIT: Je suppose que cette question est ouverte ended, donc je vais clarifier quelques questions plus spécifiques ...

  1. Est-il acceptable d'utiliser des contrôles très simples comme asp: Label ou faire ceux-ci finissent par gaspiller de l'espace? Il semble qu'il serait difficile d'accéder à html dans le code derrière.

  2. Y a-t-il quelques contrôles qui ne devraient tout simplement jamais être utilisés?

  3. Est-ce que quelqu'un a une bonne ressource qui me montrera les avantages et les inconvénients de chaque contrôle?

Répondre

3

contrôles serveur Fiez ViewState, flexibilité Restreint

contrôles de serveur étaient puissants outils pour les développeurs introduire WinForms au développement web. Le principal avantage des contrôles serveur est un sentiment d'état et un modèle de développement piloté par les événements. Cependant, l'état du développement web a mûri depuis l'introduction de WebForms et des contrôles serveur, qui sont dans l'ensemble contestés avec un increasingly critical view. Le problème principal avec les contrôles serveur est qu'ils essaient trop de faire abstraction du comportement du Web et, pour ce faire, s'appuient sur les ressources de données et de serveur pour effectuer leur magie. Les données ViewState, lorsqu'elles sont utilisées de manière excessive, peuvent gravement gonfler la taille de votre page, entraînant performance problems.

Maintenant, il est possible de opt out of ViewState, mais d'ici là, il est probablement préférable de recourir simplement à des contrôles HTML réguliers. Avec les contrôles HTML, vous avez un contrôle précis sur le contenu de la page Web et vous avez une plus grande flexibilité dans les comportements que vous voulez sur votre page Web. Les contrôles serveur offrent une flexibilité côté client limitée et forcent beaucoup de travail à effectuer sur le serveur qui peut facilement être effectué dans le navigateur avec un bon JavaScript framework.

+0

Très utile - merci pour toutes les ressources. – Brandi

+0

Merci pour le vote. Il y a encore beaucoup de débats pour les deux côtés de l'argument. D'une part, les contrôles serveur sont plus faciles à configurer, mais d'autre part, les contrôles HTML fournissent un contrôle plus précis et sont susceptibles de mieux fonctionner. Cela dépend vraiment de votre situation. En règle générale: si vous voulez simplement afficher un contenu plat et en lecture seule, utilisez des contrôles HTML ou des contrôles serveur réduits tels que Literal ou Repeater au lieu de Label et GridView. En outre, essayez de désactiver ViewState par défaut et n'optez que si cela vous procure un net avantage. – Technobabble

1
  1. Est-il acceptable d'utiliser des contrôles très simples comme asp: Label ou faire ces finir par perdre de l'espace? Il semble comme il serait difficile d'accéder à html dans le code derrière sinon.

Si vous devez accéder au contrôle dans le code côté serveur, utilisez un contrôle serveur. Si non, ne le faites pas.

  1. Y a-t-il quelques contrôles qui ne devraient tout simplement jamais être utilisés?

Pas dans ma (niveau intermédiaire) expérience. Le contrôle de l'assistant, une fois que vous savez comment l'utiliser, fonctionne comme annoncé (imaginez vous-même coder toutes les fonctionnalités, puis faites le calcul). Je l'ai utilisé et il en résulte un formulaire d'inscription multi-pages fluide et fonctionnel avec une sauvegarde intermédiaire des données.

  1. Quelqu'un at-il une bonne ressource qui me montrer les avantages et les inconvénients de chaque contrôle ?

je ne sais pas, mais je vous recommande d'utiliser le droit de contrôle de la bonne situation. Étudiez les différences entre un répéteur et un GridView, par exemple, et utilisez le meilleur choix pour vos besoins.

Il existe bien sûr des alternatives. Pour un, MVC prend de l'ampleur. Personnellement, je ne me suis pas encore engagé à l'apprendre. En ce qui concerne les formulaires interactifs et AJAX, de nombreux développeurs .NET choisissent d'utiliser JQuery pour toute validation et tout AJAX (UpdatePanels étant facile à utiliser et horriblement inefficace), avec JSON comme mécanisme de transport côté serveur.

+0

Hmm ... est-il possible d'accéder aux contrôles html à partir du code si vous en aviez absolument besoin? – Brandi

+0

Aussi, merci pour l'opinion. Je voulais savoir si quelqu'un plus expérimenté que moi avec ASP .NET était un fan de l'utilisation des contrôles. – Brandi

+0

Brandi: oui. Si vous voulez un contrôle html "régulier" accessible côté serveur, vous pouvez le faire:

. (ajoutez l'attribut 'runat') Cochez ici pour une liste: http: //www.w3schools.com/aspnet/aspnet_refhtmlcontrols.asp Vous n'obtiendrez simplement pas le modèle d'événement que vous obtenez avec les contrôles . – sweaver2112