2008-08-22 9 views
2

In einem aktuellen Projekt habe ich mein eigenes MVC-Framework in PHP erstellt. Eines der Dinge, die ich implementiert habe, war ein Routing-System. Ich benutzte Apache mod_rewrite, um alle Anfragen an index.php zu senden, und analysierte dann den URI, um Informationen zu extrahieren und die Anfrage weiterzuleiten.ASP.NET - Erstellen Sie Ihr eigenes Routing-System

Ich versuche jetzt in ASP.NET, und ich frage mich, ob/wie ich etwas ähnliches durchführen könnte. Gibt es eine Möglichkeit, alle Anfragen (ähnlich wie WordPress) an eine Seite weiterzuleiten, auf der die zentrale Route bearbeitet wird? Ich bin mir des MVC-Frameworks für ASP.NET bewusst, aber ich würde gerne selbst einen Stich daraus machen, während ich herumgebastelt und lerne.

EDIT: BTW, mein Hosting-Provider läuft IIS 6

Antwort

6

Dies ist eine lange Antwort sein wird, weil ich sicherstellen möchten, sind Sie voll und ganz bewusst alle Möglichkeiten, können Sie erreichen, was Sie tun wollen .

Die Routing-Engine, die das ASP.NET MVC Framework antreibt, funktioniert mit dem herkömmlichen ASP.NET Framework. Sie können die RouteTable nutzen und Routen zuweisen, genau wie in einer ASP.NET MVC-Anwendung. Sie erhalten den MVC-Teil in herkömmlichen ASP.NET-Sites nicht. Das war eine enorme Verbesserung für das ASP.NET Framework und es war großartig zu sehen, wie sie diesen Code wiederverwenden und in beiden Frameworks arbeiten lassen. Wenn Sie mehr darüber erfahren möchten, werfen Sie einen Blick auf ScottGu's post und scrollen Sie zu URL Routing Verbesserungen. Auch hier ist ein reference zur Verwendung der System.Web.Routing in WebForms von Phil Haack.

Jetzt, wenn Sie noch Ihre eigenen schreiben möchten. Sie müssen die ASP.NET-HTTP-Pipeline lernen und die IHttpModule- und IHttpHandler-Schnittstellen implementieren, um Ihre eigene HttpModule- oder HttpHandler-Klasse für das Routing zu erstellen. Diese Schnittstellen sind der Schlüssel zum Schreiben Ihrer eigenen Routing-Engine. Um diese Schnittstellen in ein funktionierendes Beispiel zu bringen, kann ich diese MSDN article nicht genug empfehlen. Es zeigt Ihnen, wie Sie mit beiden Schnittstellen arbeiten und erklärt die Unterschiede beim Erstellen Ihrer eigenen Routing/URL-Rewriting-Engine.

Jetzt, wenn Sie herausfinden, dass dies zu viel für Sie sein könnte. Es gibt Bibliotheken von Drittanbietern, die Sie in .NET verwenden können, die bereits eine Routing-/URL-Rewriting-Engine geschrieben haben. Hier ist eine Frage, die ich vor nicht allzu langer Zeit sah "What Url rewriter do you use for ASP.Net?" hier auf SO.

+0

Große Antwort ... Ich mochte auch diese Artikel - http://chriscavanagh.wordpress.com/2008/03/11/aspnet-routing-goodbye-url-rewriting/, http://blogs.msdn.com /b/mikeormond/archive/2008/05/14/using-asp-net-routing-independent-of-mvc.aspx – kape123