Je suis en train de construire un très, très simple "micro-webapp" qui je pense sera d'intérêt pour un peu de Débordement de Pile'rs si jamais je faire cela. Je suis héberger sur mon C# dans la Profondeur du site, qui est à la vanille ASP.NET 3.5 (c'est à dire pas de MVC).
L'écoulement est très simple:
- Si un utilisateur entre dans l'application avec une URL qui permet de ne pas spécifier tous les paramètres (ou si aucun d'entre eux ne sont pas valides) je veux juste afficher à l'utilisateur des contrôles d'entrée. (Il y en a seulement deux.)
- Si un utilisateur entre dans l'application avec une URL qui n' ont tous les paramètres requis, je veux afficher les résultats et les contrôles de saisie (modifier les paramètres)
Voici mon auto-imposé des exigences (mélange de design et de mise en œuvre):
- Je veux que la soumission à l'utiliser plutôt que de POSTER, surtout si les utilisateurs peuvent mettre en signet la page facilement.
- Je ne veux l'URL de l'air idiot après la présentation, avec des extérieurs, de pièces et de morceaux. Juste les URL et les paramètres réels s'il vous plaît.
- Idéalement, j'aimerais éviter l'obligation de JavaScript. Il n'y a aucune bonne raison pour cela dans cette application.
- Je veux être en mesure d'accéder aux commandes pendant le temps de rendu et de définir des valeurs etc. En particulier, je veux être en mesure de définir les valeurs par défaut des contrôles pour les valeurs de paramètre passé dans, si ASP.NET ne peut pas le faire automatiquement pour moi (dans les autres restrictions).
- Je suis heureux de faire tous les paramètre de validation de moi-même, et je n'ai pas besoin de beaucoup dans la façon de server side events. Il est vraiment simple de tout mettre sur chargement de la page au lieu de fixer des événements à des boutons etc.
La plupart de ce qui est bon, mais je n'ai pas trouvé de moyen de complètement retirer le viewstate et de garder le reste de la durée de la fonctionnalité. En utilisant le post de ce blog, j'ai réussi à éviter d'avoir une réelle valeur pour le viewstate - mais il finit toujours par en tant que paramètre dans l'URL, ce qui a l'air vraiment laid.
Si je fais un simple formulaire HTML au lieu d'un ASP.NET forme (c'est à dire prendre runat="server"
) alors je n'ai pas toute la magie de viewstate - mais alors je ne peux pas accéder par programmation des contrôles.
Je pourrais faire tout cela en ignorant la plupart des ASP.NET et la construction d'un document XML avec LINQ to XML, et la mise en œuvre de IHttpHandler
. Qui se sent un peu faible niveau, mais.
Je me rends compte que mes problèmes pourraient être résolus par la relaxation des contraintes (par exemple, à l'aide de POST et de ne pas se soucier de l'excédent de paramètre) ou à l'aide de ASP.NET MVC, mais sont mes exigences vraiment déraisonnable?
Peut-être ASP.NET juste ne pas l'échelle vers le bas pour ce type d'application? Il existe une alternative probable cependant: je suis juste stupide, et il y a parfaitement moyen simple de le faire que je n'en ai pas trouvé.
Toute pensée, toute personne? (Cue commentaires de la façon dont les puissants sont tombés, etc. C'est très bien - j'espère que je n'ai jamais prétendu être un ASP.NET expert, que la vérité est tout le contraire...)