Hello IPv6

Опубликовано 27.05.2010 15:58:27

Сайт в очередной раз переехал и теперь имеет IPv6 адрес. Пользователи, не подключенные к v6 сети напрямую, или к туннелю IPv6, доступа к нему не имеют.

Между тем, СМИ наперебой рапортуют об исчерапнии запаса адресов. В то же время, подключение к IPv6 не составляет особой проблемы даже для пользователей, провайдеры которых не предоставляют эту услугу. Достаточно лишь зарегистрироваться на любом из доступных бесплатных туннелей и загрузить программу-агент (или настроить сеть вручную). В качестве бонуса каждый пользователь получает в собственное пожизненное пользование диапазон адресов, обычно с маской подсети /64 (т.е. 2^64 IP-адресов, неплохо?).

Так как DNS-серверы регистратора, которые обслуживали домен, не сконфигурированы для IPv6, пришлось подыскать и DNS-хостинг с его поддержкой. Кстати, обнаружился и баг в Visual Studio 2010: она не смогла открыть Local IIS web site, привязанный к IPv6 адресу, за что и был отправлен на Microsoft Connect.

Метки: ,

Использование роутинга в классических 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)

XSD Schema explorer в Visual Studio 2008 SP1

Опубликовано 18.08.2008 20:31:00

Среди многочисленных и весьма приятных нововведений, поставляемых вместе с сервис-паком для Visual Studio 2008 есть одно маленькое, но не менее приятное - XSD Explorer. В его полезности можно убедиться, открыв достаточно служную схему:

Метки: , ,

Многострочный поиск в Visual Studio

Опубликовано 21.04.2008 22:19:00

В Visual Studio можно осуществлять многострочный поиск и замену, используя регулярные выражения. Но приходится выстраивать довольно дикие конструкции, особенно, если многострочной является поисковая строка.

Данный макрос призван решить эту проблему, предоставляя многострочные поля для ввода как поисковой строки, так и строки замены.

Метки:

Когда хочется новизны...

Опубликовано 27.03.2008 2:36:00

... вспоминаешь, что все новое - хорошо забытое старое. Примерно так выглядел текстовый редактор всех времен и народов Emacs, когда я его увидел впервые. Решил раскрасить так же студию, посмотреть чего получится. Получилось похоже, но настройки вернул на старые, ибо рефлексы уже другие.

Для Emacs было создано немало цветовых тем, возможно, там найдется что-то более подходящее. Оказывается, многие люди предпочитают темы с темным фоном. Меня всегда хватало на смену шрифта (лучше Consolas пока не нашел) и более мягкий фон (светло-серый или светло-бежевый).

Загрузить: EmacsClassic.vssettings (9,59 kb)

Метки: