Использования исходного кода ASPNET для отладки приложения

от автора

“Если Вы умеете писать код- это еще не значит, что вы умеете его отлаживать” – этой фразой один из гуру 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!

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

ссылка на оригинал статьи http://habrahabr.ru/post/270533/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *