2009-05-27 3 views
8

Я делаю создание нового веб-сайта asp.net и хотел бы украсить мои URL-адреса - я хочу принять URL-адрес, подобный этому »www.mysite.com/1-2,3 «и поверните его так, как это» www.mysite.com/page.aspx?a=1 & b = 2 & c = 3 ". Какой вариант лучше всего подходит для этой задачи - Перенаправление или маршрутизация Url IIS7 с точки зрения характеристик и Простота обслуживания. Btw Я планирую использовать средний трафик для совместного использования IIS7, возможно, 6.Url Rewriting vs. Routing

В прошлом я использовал PHP-версию mod_rewrite, которой я был очень доволен, однако теперь весь этот сайт переводится на ASP.NET, и я Не знаю, какой вариант выбрать.

PS - Я уже прочитал this и this, однако не нашел его достаточно ясным для моей проблемы.

+0

Хорошая статья отличия. Http: // coderjournal.com/2010/03/difference-between-routing-rewriting/ –

ответ

7

Я бы сделал сильный аргумент в пользу использования маршрутизации. Он поддерживает логику разрешения запросов и ресурсов в вашем приложении, поэтому очень легко добавить зависящую от приложения логику, когда это необходимо, и устраняет необходимость поддерживать синхронизацию между вашим приложением и отдельным ресурсом конфигурации.

Маршрутизация works great with traditional webforms.

Переписывание URL-адресов часто (хотя и не всегда) - это компенсация проблемы, а не решение - серверное программное обеспечение и фреймворки, все еще построенные на основе более старого понятия веб-сайтов страниц, которые представляют физические ресурсы. Однако в сети заявки следует react to requests as commands; но только относительно недавние, современные веб-структуры начали поддерживать эту модель изначально. Маршрутизация - одно из этих событий.

0

В IIS 5/6 используется фильтрация ISAPI, которая в основном эквивалентна mod_rewrite для IIS. Я слышал, что переписывание URL-адресов IIS7 намного проще в управлении и настройке, чем в ISAPI.

0

Ну, это зависит от того, используете ли вы классический ASP.Net или новую структуру MVC. У меня нет опыта работы с инфраструктурой MVC, но похоже, что он поддерживает то, что вы ищете прямо из коробки.

В классической части ASP.Net мы в настоящее время используем расширение IIS под названием ISAPI_Rewrite. Он ведет себя аналогично mod_Rewrite от Apache, и у них есть бесплатная версия, которую вы можете использовать, которая имеет большую часть мощности платной версии (100 долларов США).

+0

много узнал о MVC сегодня, и кажется супер простым «украсить» URL-адреса с этой структурой. – Jason

+0

Маршрутизация - это отдельный объект из MVC. MVC просто использует маршрутизацию, как и WebForms. –

+0

нет такой вещи, как «классический» asp.net или MVC ... есть WebForms, а затем есть MVC, и они оба построены поверх asp.net! –

2

Я бы настоятельно рекомендовал использовать маршрутизацию, , в действительности это будет более интегрировано с веб-формами в следующей версии фреймворка. Переписывание URL-адресов является скорее «взломом» из-за отсутствия маршрутизации в первую очередь. Если у вас уже есть проект, который вы хотите «просветить», тогда переписывание URL будет очень хорошо.

Но при запуске с нуля я определенно использовал бы маршрутизацию.

Маршрутизация скрывает структуру приложения и заставляет вас больше думать о своих URL-адресах, как путь к контенту, который вы хотите показать, в отличие от пути к какой-либо странице с параметрами. И вам не нужно отслеживать 2 вещи при смене вещей, как и с переписыванием.

больше в this article