Разработка патчей в DotNet - PullRequest
       19

Разработка патчей в DotNet

2 голосов
/ 22 января 2011

когда мы разрабатываем приложение в .NET, мы также создаем настройку в конце разработки и отправляем настройку клиенту. установить клиентский установочный файл.

когда мы изменяем наш код или добавляем новую функциональность в наши приложения, мы снова создаем настройки и возвращаем клиент для повторной установки. в этом сценарии, если размер установочного файла становится огромным, есть ли выход, например, патч, когда мы изменяем наш код, тогда мы просто создаем патч и передаем его клиенту?

клиент установит, что патч получит изменения, а также прежняя функциональность будет сохранена в приложении. так как я могу дать только недавно добавленную функциональность или изменить только часть в приложениях для клиента с помощью патча.

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

спасибо

1 Ответ

4 голосов
/ 22 января 2011

Один простой подход (особенно если вы подписываете код или запутываете свои сборки) - разбить приложение на несколько отдельных сборок (dll). Затем, если вы обновите код, вам нужно будет только развернуть сборки, которые действительно изменились.

Самым важным является контроль зависимостей: хорошо определить интерфейсы между сборками в начале и добавить новые интерфейсы для расширения существующей функциональности (вместо того, чтобы вносить «существенные изменения» в существующие интерфейсы), чтобы вы могли сделать полезные изменения в приложении без необходимости развертывания множества сборок в вашем патче. (Если существует много зависимостей, вы обнаружите, что для внесения изменений в любом месте вам все равно потребуется развернуть почти все сборки для клиента, что несколько противоречит цели).

Этот подход не даст наиболее компактных возможных исправлений, но он чрезвычайно прост и легко реализуем - и во многих случаях он может предоставлять «приемлемо небольшие» исправления. Это также побуждает разработчиков задуматься об использовании хороших модульных конструкций с минимальными зависимостями - так что это стоит делать (в разумных пределах), даже если вы добавите более сложный механизм исправлений сверху.

Если вы используете патч-подход, я бы посоветовал периодически предоставлять клиенту полную версию, так как чем больше патчей вы применяете, тем выше риск того, что что-то не синхронизируется. (Рассмотрим, как работает Центр обновления Windows - ОС постепенно обновляется с помощью исправлений, но время от времени Microsoft выпускает пакет обновления, который объединяет все небольшие исправления в одно большое исправление и реже выпускает целую новую версию операционной системы. что пользователи должны переустановить с нуля)

...