Comment créer un framework web en C # sans ASPX?

J’ai réussi à obtenir une page C # asp sous ubuntu / apache / mono, mais je ne veux pas écrire mon framework dans ces pages ASP, je veux utiliser le langage C # et utiliser un langage de template pour mon vues. Mais je ne sais pas par où commencer?

C # est un langage compilé, alors … comment ferais-je cela? Est-ce que je comstackrais tout et que j’aurais ensuite apache dans le (unique) exécutable et que je passerais l’URL de la requête? Puis-je demander des pages .cs spécifiques puis demander à apache de lui demander de comstackr, puis de “l’afficher” uniquement s’il a été mis à jour? Les fichiers “view” peuvent-ils être compilés individuellement pour ne pas avoir à tout recomstackr à chaque changement? Y a-t-il une base sur laquelle je peux travailler ou vais-je devoir réinventer l’access aux variables GET et POST (en lisant les informations d’en-tête) et toutes sortes d’autres choses que nous prenons pour acquises dans des langages comme PHP?

AFAIK il n’y a aucune raison pour que vous ne puissiez pas faire ce que vous voulez en plus du kernel ASP.NET, en utilisant des choses comme HttpApplication, HttpHandler, etc.

Je suggère de jeter un oeil à la façon dont ASP.MVC le fait – créer un nouveau projet ASP.NET MVC dans MonoDevelop, regarder le Global.asax.cs, ouvrir le Web.config et regarder les gestionnaires http et les modules personnalisés qu’il enregistre. ASP.NET MVC est OSS, vous pouvez donc vous y intéresser.

Si vous êtes vraiment défavorable à l’utilisation d’ASP, vous pouvez essayer de lire le code source d’ASP et voir comment ils implémentent les fonctionnalités dont vous aurez besoin, comme accéder aux informations POST et GET, au routage, à la gestion des sessions, etc.

Cependant, ce sera une tonne de travail. Ce que vous pouvez faire est d’implémenter la grande majorité de votre logique dans les bibliothèques de classes c #, et il suffit d’utiliser ASP pour “héberger” l’application et de passer les données dont vous avez besoin.

Personne ne vous demande de mettre du code lourd dans les pages ASPX. (Veuillez ne pas utiliser ASP, ce qui est une autre chose).

Dans le modèle ASP.NET WebForms, vous pouvez utiliser le mode Code Behind.

Dans le modèle ASP.NET MVC, vous avez beaucoup plus de contrôle sur presque tous les aspects.

Par conséquent, consacrez un peu de temps et plongez dans les modèles existants. Essayer de déployer votre propre peut être une perte de temps.

Mono prend en charge les deux modèles.

En outre, ASP.NET a été conçu de manière différente de PHP et vous devez savoir que cela introduit des différences qui ne peuvent pas toujours répondre à vos exigences ci-dessus.

  1. Vous avez dit ASP. Est-ce que ces pages ASP ou ASP.NET vous avez travaillé? Grande différence.
  2. Pouvez-vous accéder à Request / Response dans les pages ASP.NET, si c’est le cas, vous devriez pouvoir accéder à GET / POST.
  3. Savez-vous comment créer ce que vous essayez dans IIS / ASP.NET normal? Si ce n’est pas le cas, veuillez vous épargner un peu de bon sens et au moins y travailler d’abord en premier. Ce n’est que le conseil général pour réduire le nombre de variables / inconnues avec lesquelles vous travaillez à la fois.
  4. En fin de compte, vous construisez vos propres manipulateurs. J’imagine que vous aurez besoin d’un peu de DLL qui verra la demande de la page xxx, lira cette page et instanciera la classe de sauvegarde. Un coup d’oeil à la source asp.net mvc peut aider beaucoup (sous des téléchargements supplémentaires).

Il existe de nombreux langages de modélisation alternatifs disponibles pour ASP .NET MVC, consultez cette question pour une liste loooong: Comparaison ASP.NET MVC View Engine