Мои профессиональные обязанности связаны с разработкой CMS на ASP.Net. У нас уже сейчас более десятка клиентов, и все они время от времени хотят получать обновления :). Жестких релизов и «цикла поддержки» у нас нет, поэтому у каждого клиента может оказаться фактически произвольная версия.
Особенность такого цикла разработки всплывает в тех случаях, когда у клиента, последнее обновление которого было месяца 3-4 назад всплывает мелкий баг и клиент очень хочет его пофиксить. Однако обновиться до последней версии часто непросто, потому что система развивается очень быстро, и полноценное обновление скорее всего потребует комплексное обновление БД и 1С, что может быть довольно дорого по времени/усилиям/деньгам :)
Выход из этой ситуации довольно прост — при деплое сайта на каждого клиента необходимо создавать ветку, из которой при необходимости и проводить «горячие фиксы» клиента.
Здесь всплывает и чисто человеческий фактор, что «забыть» сделать ветку при деплое в спешке очень и очень легко, особенно если таких деплоев за день несколько :)
Дабы не страдать от подобной забывчивости я и решил автоматизировать процесс создания веток, а заодно и ознакомиться с возможностями расширения Visual Studio.
Continue reading
Месяц: Февраль 2012
T4MVCJS отрефакторен и выложен на codeplex
Недавно дошли руки до выкладывания T4MVCJS в opensource. Распространение исходников в зип-архиве показалось слегка устаревшей методикой и мы переехали на codeplex :)
Попутно было слегка отрефакторено использование T4MVC, вместо простой «копипасты» теперь используется оригинальный исходник с вырезанными из него строками, отвечающими за генерацию T4MVC-хэлперов. Таким образом легко и просто используется весь парсинг, осуществляемый T4MVC, и обновление до новых версий будет представлять куда меньше проблем (скопипастить файл, выкинуть 400 подряд идущих строк — вуа-ля :)).
Помимо эстетического удовлетворения это позволило с лёгкостью обрабатывать MVC Area (предыдущая версия, этого не умела, за репорт этого бага спасибо Брайану Бетти).
Заодно я задумался о проблеме существования двух экшенов с одинаковыми именами — в Javascript перегрузка функций, к сожалению, недоступна. В результате на свет появляются экшены Edit, Edit1, Edit2, etc. :) Если кто-нибудь предложит более адекватное решение проблемы — я бы с удовольствием его обсудил :)
P.S. в качестве системы контроля версий T4MVCJS используется Mercurial, так что при желании внести изменения — форкайте с удовольствием :)
P.P.S. На момент изначальной публикации поста ареи-таки не работали. Начиная с версии 1.0.10 всё ок.