2015-07-10 2 views
0

Не так общий вопрос, как «как бы вы к нему подходите», так извиняйтесь, если это не относится к этому конкретному стеклу. Как бы мне ни было любопытно, как это делается в веб-фреймворках, построенных на .net.Маршрутизация на веб-приложениях на базе C#

Весна и ASP имеют концепцию маршрутизации. в Rails у нас есть файл маршрута, который обрабатывается веб-сервером после нескольких обручей и прыжков. В PHP у нас есть файл .htaccess, в котором говорится, что там находится файл index.php, все это отключает.

Но если кто-то должен был создать очень голые кости, чрезвычайно простые веб-рамки C#, как они будут обрабатывать маршрутизацию? Есть ли примеры такого простого простого (ключевого слова: простые) веб-фреймворки, которые позволили бы мне сориться и понять немного больше о том, как обрабатываются такие вещи, как маршрутизация?

Update

Я должен заявить, я не ищу, чтобы понять, как использовать маршрутизацию, но, как в C# на основе фреймворков, маршрутизация осуществляется. это XML-файлы? есть ли файл htaccess?

поэтому мой вопрос для небольших веб-рамочных Thats возможно используются для API, чтобы я мог лучше понять, хорошо это, как вы реализовать маршрутизацию в основе веб-платформе .NET, написанной в C#

+0

Вы хотите посмотреть, как использовать его и как он работает? – kmacdonald

+0

Извините, я должен был быть более ясным, я ищу, чтобы понять, как это реализовано, и как это работает. – TheWebs

ответ

1

маршрутизации в asp.net встроен в ваш код. Есть несколько способов определения маршрутов. Если вы идете по маршруту API, вы можете использовать атрибут маршрута на своих контроллерах и действиях, чтобы определить его, или вы можете определить их в классе конфигурации маршрута. Шаблоны шаблонов asp.net являются хорошей отправной точкой для того, чтобы увидеть, как они работают. Также читайте на сайте MSDN о маршрутизации здесь https://msdn.microsoft.com/en-us/library/cc668201(v=vs.140).aspx

+0

В то время как полезно, я не собираюсь входить в сторону ASP-вещей, больше понимаю, как можно сказать, что вещи могут быть реализованы для приложений, не размещенных на серверах IIS ... Как.net и различные веб-фреймворки становятся более открытыми. Я ищу, чтобы понять, могут ли те же самые понятия использовать сервер linux с веб-приложением .net. Но я дефф проверю вашу ссылку - спасибо. – TheWebs

+0

, если это так, возможно, вы хотели бы заглянуть в OWIN: http://owin.org/ – kmacdonald

1

.htaccess - это концепция Apache, поэтому она не применяется к веб-приложениям C#, которые обычно работают в IIS.

Маршрутизация веб-фреймворков на базе C# обрабатывается различными способами. Некоторые используют XML, некоторые - нет. Механизм маршрутизации, встроенный в ASP.NET MVC, использует соглашения об именах и необязательные атрибуты методов/контроллеров (маршрутизация атрибутов).

Если вы хотите реализовать свою собственную маршрутизацию, вы можете написать HTTP-модуль, который проверяет входящие URL-адреса и сравнивает их с заданным набором правил перезаписи. Эти правила перезаписи могут быть сохранены в XML-файле, текстовом файле, базе данных или действительно там, где вы хотите.

+0

Будут ли они обрабатываться по-разному из-за того, что в будущем мы можем увидеть веб-фреймворки на C# и веб-приложения .NET. на серверах linux или mac (в основном linux) ?? – TheWebs

+0

Возможно, может и нет. Это всего лишь деталь реализации. Единственное требование, необходимое для реализации модуля перезаписи URL-адресов (по существу, это касается маршрутизации), - это возможность подключиться к конвейеру веб-сервера до того, как обрабатывается веб-приложение. В IIS у нас есть HTTP-модули и HTTP-обработчики (расширения ISAPI), в Apache у нас есть .htaccess и RewriteEngine и т. Д. – HaukurHaf

2

В IIS есть раздел отображения обработчика, в котором вы можете указать обработчики для пользовательского расширения, которое вы хотите поддерживать. Вы можете определить собственные HTTPHandlers и зарегистрировать их в IIS или web.config.

Что касается Web API или MVC, инфраструктура предоставляет обработчик URL без расширения. Вы можете найти их ссылку в файле web.config, который использует сопоставление маршрута, которое вы предоставляете во время запуска приложения, чтобы найти подходящий маршрут для URL-адреса. Он использует различные соглашения, чтобы соответствовать лучшим действиям для URL. Опять же, вы можете настроить свое соглашение или конфигурацию, если вы хотите реализовать обработчик самостоятельно.

Более подробная информация на https://msdn.microsoft.com/en-us/library/cc668201%28v=vs.140%29.aspx

+0

Из-за того, как .net работает с более открытым исходным кодом, и многие из этих фреймворков будут разработаны на Mac, Linux и т. Д., И даже, возможно, на linux будет сказано, что фреймворки больше используют обработчик url ​​без расширения. – TheWebs