В конечном счете, вы не хотите повторяться, согласно принципу СУХОЙ (который вы и несколько других людей уже упоминали). Это также зависит от языка, который вы используете. Многие объектно-ориентированные языки делают все эти методы общедоступными (например, Objective-C), поэтому вам нужно создавать только те функции, которые предназначены для вызова другими объектами. С другой стороны, многие языки, такие как Java, предоставляют частные функции, которые поддерживают концепцию группировки блоков кода в частные функции, которые на самом деле не предназначены для использования вне самого класса.
MSDeploy был описан мне как инструмент, который помогает синхронизировать веб-сайты между машинами, во многом так же, как AppCenter использовал для репликации хорошо настроенного главного сервера на множество машин. Установщик Windows (MSI + WiX CustomActions для IIS и конфигурации SQL) предназначен для применения пакетов к машине, которые изменяют состояние в транзакции. Он следует более традиционной модели пакетного программного обеспечения.
Это два разных подхода к проблеме настройки машин. Каждый из них оптимизирован для разных требований. MSDeploy = репликация состояния машины. MSI = применить изменения в транзакции.
Не могли бы вы добавить MSDeploy в MSI? Наверное. Хорошо бы это сработало? Возможно, если вы проигнорируете часть о транзакции. На мой взгляд, это ключевое отличие. В средах, где вы хотите объявить конфигурацию, которую хотите распространять, и применить ее полностью или не применять вообще (т.е. не попадать в промежуточное состояние / состояние остановки), тогда установка на основе пакетов кажется подходящей.
Если у вас есть машина, которую вы настроили правильно и хотите, чтобы группа машин выглядела так же (и готовы вывести неисправную машину из ротации и повторять процесс до тех пор, пока она не будет отправлена на отправку), то MSDeploy кажется подходящим.
Там в вашем вопросе недостаточно информации, чтобы предложить, что работает лучше ... но я не думаю, что они подходят друг другу.
Если у вас есть машина, которую вы правильно настроили, и вы хотите, чтобы группа машин выглядела так же (и готовы вывести неисправную машину из ротации и повторять процесс до тех пор, пока она не будет отправлена на рассмотрение), то MSDeploy кажется
В вашем вопросе недостаточно информации, чтобы предположить, что работает лучше ... но я не думаю, что они подходят друг другу.
Если у вас есть машина, которую вы правильно настроили, и вы хотите, чтобы группа машин выглядела так же (и готовы вывести неисправную машину из ротации и повторять процесс до тех пор, пока она не будет отправлена на рассмотрение), то MSDeploy кажется
В вашем вопросе недостаточно информации, чтобы предположить, что работает лучше ... но я не думаю, что они подходят друг другу.