“Если Вы умеете писать код- это еще не значит, что вы умеете его отлаживать” – этой фразой один из гуру windbg любит начинать тренинги.

С Asp.Net в общем, и с MVC в частности ситуация была очень похожая- если код не работает, то без stackoverflow разобраться почему редко удавалось. А все почему?!
  • Сначала исходных кодов к asp.net не было в публичном доступе.
  • Затем код появился на codeplex, но тяжело было привязать свою ошибку к этому исходному коду и часто приходилось отлаживаться методом пристального вглядывания.
  • Опытные разработчики конечно знали, как найти нужную версию pdb файлов, как указать visual studio где лежат исходные коды, или на крайний случай можно было декомпилировать dll.

А вот, с asp.net 5.0 для начала отладки в исходном коде нужно меньше 5 минут. Сейчас весь исходный код на github , и что еще важнее его можно добавить в свой проект и скомпилировать.

Пример: создаем самое просто Web API. 1 контроллер, StartUp класс и конфиг с зависимостями на project.json. Я как старый MVC разработчик начал искать- а где же у меня routes сконфигурирован. Не понимаю!


Мои дальнейшие действия: у меня всего 2 вызова AddMVC и UseMVC, оба они в сборке MVC.
Как посмотреть?!- да проще простого!
  • Делаем clone репозитария git clone github.com/aspnet/Mvc
  • Смотрим какая версия указана у нас в коде- 6.0.0-beta8. Проверяем, что такая версия есть в нашем коде через git tag.
  • Если такую версию нашли- то делаем git checkout 6.0.0-beta8.

  • Затем добавляем исходные коды прямо в наш проект в файл global.config
  • Сначала вставляем в него стандартный код
  • А затем добавляем скаченный с github код mvc
  • Нажимаем кнопку Restore Packages
  • Проверяем, что все прошло хорошо в окне output
  • Ну и теперь мы можем из нашего кода, перейти в код mvc и увидеть, где у нас конфигурируются routes!

Всем приятной отладки!

Комментарии (1)


  1. ostapbender
    10.11.2015 13:23
    -1

    Порочная практика. Нужен полноценный Symbol/Source Server. Я как раз занимаюсь предрелизной подготовкой оного: http://beta.unpluggedhq.com/