В мире Java есть такой удобный инструмент, который называется jRebel. В двух словах, он позволяет изменять код веб приложения без перезагрузки домена. То есть исправил ты значение переменной в контроллере, нажал ctrl+s и можешь уже обновлять страницу в браузере. Так же как если бы ты кодил на PHP или другом интепретируемом языке.
Прямой аналог на дот нете сделать нереально. В джаве есть некоторые механизмы, которых нет в CLR.
Однако варианты есть, и одним из них я решил воспользоваться.
Упрощённая схема такая:
1. Отслеживаем сохранение файлов с кодом
2. Програмно пересобираем проект
3. Подгружаем новую сборку в наш домен
4. Из ControllerFactory даём ссылку на уже новый контроллер, который в свою очередь обращается к новым типам
На практике, конечно, всё оказалось значительно сложнее, но тем не менее прототип работает.
Посмотреть можно тут:
https://bitbucket.org/ionoy/easymvc_nemerle/
Хочу напомнить, что это прототип, так что скорее всего содержит кучу багов. Тем не менее, на некоторых достаточно крупных проектах я его уже тестировал.
Из-за непредсказуемости ошибок, некоторые части писались в стиле Debug Driven Development, так что качество кода пока хромает.
Первоначально писал на C#, но довольно быстро понял, что нервов не хватит чтобы на нём же и закончить. Поэтому я принял решение перевести всё Немерле. Это сильно упростило написание и поддержку кода, так как я смог формализовать задачу и отразить её в примитивах языка.