Pourquoi ne puis-je pas utiliser les commandes de serveur dans ASP.net MVC?
Je suis prêt à être chargé de diriger le développement d'une petite ASP.net application MVC. C'est ma première fois de la création d'une application MVC, donc je suis excité!
J'ai lu attentivement le dossier et j'ai l'impression que l'idée générale de la façon dont MVC œuvres. Cependant, si je comprends bien, les contrôles serveur (comme GridView, par exemple) ne font pas partie de la MVC.
Ma question est: Pourquoi? À mon développement de la boutique, je suis tellement habitué à l'aide de contrôles comme GridView et le Graphique MS Contrôles que je suis presque à une perte complète de développement sans eux. Il semble presque comme recommencer.
Pourquoi les contrôles serveur n'est pas disponible? Comment Microsoft peut-elle attendre de moi de travailler sans eux? Quelles sont les alternatives?
- Le point de l'ensemble de la MVC est de ne pas utiliser les contrôles serveur.
- J'ai pensé que le point de MVC a été séparé de développement en différentes préoccupations afin de rendre le test plus facile et la vitesse de développement, entre autres choses.
- OK; celle de l'ensemble de points MVC est de ne pas utiliser les contrôles serveur.
- +1 pour ce commentaire...des sons un peu sarcastique, mais a été de penser la même chose. Plus drôle alors sarcastique, je pense, je suis sûr qu'il a eu de la bonne humeur.
- L'une des choses les plus importantes à penser, c'est que chaque demande dans votre application MVC ne devrait pas exiger de l'état pour l'exécuter.
- Et si vous êtes vraiment dans le besoin de contrôles serveur, vous pouvez avoir une application hybride de ASP.Net Webforms et MVC ensemble mais ressemble au votre, de faire un nouveau projet, donc pas besoin.
Vous devez vous connecter pour publier un commentaire.
Parce que la plupart d'entre elles s'appuient sur des choses comme l'état d'affichage et la Publication des modèles qui font partie de la classique WebForms modèle et n'existent plus dans ASP.NET MVC. Ces contrôles côté serveur s'appuient sur des événements qui vont effectuer des publications pour le serveur de la persistance de leur état dans les champs cachés (ViewState). Dans ASP.NET MVC vous ne travaillez plus avec des événements tels que
Button1_Click
. Dans ASP.NET MVC vous travaillez avec un Modèle, d'un Contrôleur et la Vue. Le Contrôleur est responsable de la réception des demandes de l'utilisateur, l'interrogation du Modèle, de traduire les résultats dans un modèle d'affichage et de transmission de ce modèle d'affichage de la Vue, dont la responsabilité est de les afficher sous une certaine forme.Dans ASP.NET MVC il y a de HTML helpers qui pourrait être utilisé pour générer de la réutilisables, des fragments de HTML entre les vues. Vous pouvez prendre un coup d'oeil par exemple à la Telerik ASP.NET MVC suite de ces aides. Ils les appellent des contrôles, mais ils n'ont rien à voir avec les classiques de Formulaires web côté serveur contrôles. Ils sont juste HTML helpers.
Fondamentalement classique WebForms sont une abstraction qui fuit du web. Ce que Microsoft a fait dans le temps où ils ont conçu ce cadre a été d'apporter des Fenêtres existantes compétences de développeur sur le web qui devenait de plus en plus d'ampleur. Mais depuis que le web était encore une nouvelle technologie que la plupart des développeurs n'étaient pas encore familier avec, ils ont créé cette abstraction pour cacher la façon dont fonctionne le web. Les développeurs avaient l'habitude de faire glisser et déplacer des contrôles sur leurs Formes de Windows, double-cliquer sur les boutons qui était de générer un code pour eux, dans lequel ils ont mis leur logique d'accès aux données et ainsi de suite. Ce modèle a été transposé pour le développement d'applications web grâce à des WebForms. Le protocole HTTP a été avec succès caché derrière cette abstraction appelée WebForms. Par exemple, vous n'avez pas besoin de connaître le HTML, ni de Javascript, pas même CSS afin de créer un site web à l'aide de Formulaires web qui est vraiment génial, parce que le cadre des résumés de toutes ces choses pour vous. Malheureusement, ce faisant, il vous empêche de le facilement en utilisant la pleine puissance de la baisse de niveau des technologies web qui certaines personnes peuvent avoir besoin lors du développement d'applications web.
Ce ASP.NET MVC n'est fondamentalement supprimer cette abstraction qui fuit et apporter le web pour les développeurs de la façon qu'il a été conçu par ses créateurs. ASP.NET MVC n'est pas assez mature par rapport à la classique WebForms donc ne vous attendez pas à trouver la même gamme de contrôles disponibles et les widgets, mais les choses commencent à changer lentement.
Je vous recommande de commencer ici avec ASP.NET MVC: http://asp.net/mvc. Allez-y, regardez les vidéos, jouer avec les échantillons et de voir si ASP.NET MVC est pour vous ou pas. Et bien sûr, si vous rencontrez quelque difficulté particulière ou une question, n'hésitez pas à revenir ici et de lui demander.
Dans ce cas, recommencer est bonne.
Je suis passé par un chemin similaire. Si droites HTML vous fait peur, essayez de travailler avec l'
System.Web.UI.HtmlControls
espace de noms. Cela va vous permettre d'accéder à la norme HTML contrôles, mais vous aurez encore le confort de les transformer en commandes de serveur si vous avez besoin d' (soit en spécifiant lerunat="server"
attribut, ou en les convertissant en équivalent ASP.NET les contrôles.En plus de Darin réponse, il y a un autre problème avec ASP.NET: vous êtes lié à Microsoft de vue sur le web. Que
GridView
que vous aimez? C'est générer des mauvais HTML. LePaging
contrôles qu'il fournit? Même pire. Même si vous savez très peu sur la conformité avec le langage HTML, les tableaux imbriqués devrait vous donner des frissons. En un sens, tout le monde qui utilise unGridView
est la chance que l'héritage web pris en charge par Microsoft (et à un moindre degré, Google et Mozilla) est venu à partir d'une telle dieu terrible point de départ.Enfin, pour résumer: ma suggestion est que vous essayez de réécrire vos pages ou de développer de nouvelles applications web (le mieux que vous pouvez) à l'aide de
HtmlControls
seulement. Vous aurez probablement à apprendre un peu de JavaScript/jQuery, et pourrait avoir à s'aventurer dans le monde de l'AJAX pour faire de votre fonctionnement des contrôles de la façon dont vous le souhaitez.De l'utiliser comme un tremplin vers le monde de la MVC. Vous n'utilisent pas les mêmes technologies (et peut tomber beaucoup de JavaScript/jQuery), mais il va vous aider à changer la façon dont vous pensez de développement web et en beaucoup plus petit, et peut-être plus facile à absorber les morceaux.
En fin de compte, toutefois, vous aimez votre ASP.NET les contrôles, vous aurez un plus grand degré de liberté, et vous serez également en développement de sites web qui utilisent des technologies plus récentes, qui apporteront une valeur ajoutée à vos sites web.
GridView
encore sorties des tables imbriquées pour le contrôle de pagination.Au cœur de ce Modèle-Vue-Contrôleur (MVC) qui favorise le découplage. L'idée est que vous nourrissez votre point de Vue (page web) un Modèle avec toutes les données qu'il doit être rendu. Les contrôles serveur sont étroitement couplés. Il n'y a pas de concept de l'etat dans le MVC ou "devraient" être pas de concept, de toute façon.
C'est le genre de point de MVC. Elle enlève le haut niveau d'abstraction de l'INTERFACE utilisateur que les contrôles serveur fourni et vous laisse avec html et javascript. (Il ajoute également un vraiment cool modèle les fonctionnalités de liaison)
Je suis nouveau sur le MVC et ont trouvé à l'aide de Vues Partielles être similaire dans la création de petites, réutilisable éléments d'INTERFACE utilisateur qui ne rentrent pas dans le _Layout. Par exemple, des curseurs, des diaporamas, de la navigation, la vedette des sections bien que vous pouvez utiliser @section pour cela, j'ai trouver des vues partielles être plus bénéfique. Ce concept me permet de créer des bibliothèques réutilisables que je peux passer facilement et de l'utiliser dans d'autres projets. Pour moi, c'est similaire aux contrôles, bien qu'il existe un débat à la fois pour et contre de cette analogie.