Использование роутинга в классических ASP.NET приложениях

Опубликовано 11.06.2009 0:51:06

Честно говоря, мне не очень нравится идея System.Web.Routing, и я бы использовал ISAPI Rewrite, но люди пытаются, у всех свои задачи и причины, и иногда не получается. В общем, это пост из серии "Спрашивали – отвечаем".

  1. Добавляем Reference на сборку System.Web.Routing и ссылки на модули в web.config. routing-reference
    Web.config:
    <modules>
       ...
       <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </modules>
  2. Создаем класс global.asax, в котором инициализируем таблицу маршрутизации.
    protected void Application_Start(object sender, EventArgs e)
    {
       RegisterRoutes(RouteTable.Routes);
    }
    
    private void RegisterRoutes(RouteCollection routeCollection)
    {
       RouteTable.Routes.Add(new Route("{username}", new UsersRouteHandler()));
    }

  3. Создаем класс, реализующий интерфейс IRouteHandler, в котором заполняем HttpContext нужными данными, которые будут переданы на целевую страницу.
    public class UsersRouteHandler : IRouteHandler
    {
       IHttpHandler IRouteHandler.GetHttpHandler(RequestContext requestContext)
       {
          string userName = requestContext.RouteData.GetRequiredString("username");
      
          HttpContext.Current.Items["username"] = userName;
          return (Page)BuildManager.CreateInstanceFromVirtualPath(
             String.Format("~/users.aspx", userName),
             typeof(Page));
       }
    }

Скачать RoutingApp.zip (25Kb)

Русский Digg для разработчиков

Опубликовано 13.02.2009 14:55:00

В рунете появился еще один Digg-like проект. От других известных мне проектов он интересен тем, что основан на ASP.NET MVC движке Kigg, на котором работает англоязычный проект DotNetShoutout. Правда, в отличие от его авторов (а это по совместительству авторы самого движка Kigg), русские коллеги решили не ограничиваться .NET-тематикой. Как написано на морде самого проекта, принимаются ссылки на “темы web, дизайна, разработки и информационных технологий”.

Движок Kigg уже имеет готовое расширение для BlogEngine.NET, добавляющее счетчики DotNetShoutout к записям. Поэтому не составляет никакого труда его модифицировать так, чтобы это расширение работало с Progg.ru. Что я, собственно, и сделал. Содержимое архива нужно распаковать в папку App_Code, в менеджере расширений можно задать цвета для кнопок.

progg.zip (1.91 kb)

ASP.NET MVC и Visual Studio Express

Опубликовано 11.12.2007 1:18:00

Что делать, если хочется попробовать ASP.NET MVC, а есть только Visual Web Developer (2008, конечно же), с которой не все так просто.

Решение здесь