Pergunta

Em um projeto recente, construí meu próprio framework MVC em PHP.Uma das coisas que implementei foi um sistema de roteamento.Usei o mod_rewrite do Apache para enviar todas as solicitações para index.php e, em seguida, analisei o URI para extrair informações e encaminhar a solicitação.

Estou me interessando pelo ASP.NET agora e estou me perguntando se/como posso realizar algo semelhante.Existe uma maneira de encaminhar todas as solicitações (semelhante à maneira como o WordPress faz isso) para uma página onde o processamento central da rota é executado?Estou ciente da estrutura MVC para ASP.NET, mas gostaria de tentar fazer isso sozinho enquanto estou mexendo e aprendendo.

EDITAR:Aliás, meu provedor de hospedagem executa IIS 6

Foi útil?

Solução

Esta será uma resposta longa, porque quero ter certeza de que você está totalmente ciente de todas as maneiras pelas quais pode realizar o que deseja.

O mecanismo de roteamento que alimenta o ASP.NET MVC Framework funcionará com o ASP.NET Framework tradicional.Você pode aproveitar o uso do RouteTable e atribuir rotas, assim como faria em um aplicativo ASP.NET MVC.Você simplesmente não obtém a parte MVC em sites ASP.NET tradicionais.Isso foi um grande aprimoramento para o ASP.NET Framework e foi ótimo vê-los reutilizar esse código e fazê-lo funcionar em ambas as estruturas.Se você quiser saber mais sobre isso, dê uma olhada no ScottGu's publicar e role para baixo até Melhorias no roteamento de URL.Também aqui está um referência sobre como usar System.Web.Routing em WebForms por Phil Haack.

Agora, se você ainda quiser escrever o seu próprio.Você precisará aprender o pipeline HTTP do ASP.NET e como implementar o Módulo IHttp e a IHttpHandler interfaces para criar sua própria classe HttpModule ou HttpHandler para lidar com seu roteamento.Essas interfaces são a chave para escrever seu próprio mecanismo de roteamento.Para ajudar a colocar essas interfaces em um exemplo funcional, eu não poderia recomendar isso Artigo MSDN suficiente.Ele mostra como fazer com qualquer interface e explica as diferenças ao criar seu próprio mecanismo de roteamento/reescrita de URL.

Agora, se você descobrir que isso pode ser demais para você.Existem bibliotecas de terceiros que você pode usar para pessoas que já escreveram um mecanismo de reescrita de roteamento/url no .NET.Aqui está uma pergunta que vi há pouco tempo "Qual reescritor de URL você usa para ASP.Net?" aqui mesmo no SO.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top