2010-08-06 4 views
4

Я разрабатываю программное обеспечение для рабочего стола C# для средних компаний, и я ищу хорошую стратегию для развертывания обновлений программного обеспечения для своих клиентов.Как вы обрабатываете обновления программного обеспечения, которое разрабатываете?

  • Как вы справляетесь с этим?
  • Вы используете программу установки Windows?
  • Это лучший выбор для разработки моей специальной программы обновления ? Вы уже разработали похожие вещи? Есть ли у вас какая-то передовая практика?
  • Вы используете какую-либо другую библиотеку или существующее программное обеспечение?

Благодаря

+0

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

+0

Где по линии от термоусадочной упаковки до обычая падает ли ваше программное обеспечение?Есть ли у вас постоянные деловые отношения с вашими клиентами? У этого вопроса есть много разных ответов, если вы продаете то, что я могу купить в коробке в Office Max, или вы продаете пользовательские установки с контрактами на обслуживание. –

+0

Нет, я продаю высоко специализированное программное обеспечение. Редко у меня есть несколько клиентов или два с использованием одного и того же программного обеспечения, но многие модули разделены между моими приложениями, поэтому я должен позаботиться о правильных версиях их. Мне нужно каким-то образом автоматизировать процесс, потому что он начинает быть дорогостоящим с точки зрения времени –

ответ

2

Или вы можете использовать компонент третьей стороны Updater Component

Вот documentation.

+0

Вы уже использовали его? –

+0

Я использовал его в тестовой программе, но я ее не тестировал. Я думаю, вы должны попробовать, поскольку это бесплатно. – Searock

+0

Я читаю документацию. Он кажется многообещающим ... очень гибким и настраиваемым. –

3

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

Когда дело доходило до решения наилучшего способа обновления программного обеспечения, я решил использовать маршрут ClickOnce, который присутствует в Visual Studio, а не только автоматически устанавливает любые необходимые файлы .Net Framework, но он также может загружать обновления с указанного веб-сервера при запуске приложения, а также в момент моего собственного выбора.

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

Примечание: Я пишу приложения в C# и как .Net 3.5 или .Net 4.

Ссылка: Choosing a ClickOnce update method

+0

Я оценил ClickOnce, но мне нужно что-то, что может быть под моим контролем, beacuse Я должен заботиться о корпоративной политике, разрешении папки и т. Д. Более того, это будет бонус для автоматического развертывания обновлений баз данных в виде sql-скриптов. ClickOnce может справиться с этими проблемами? –

+0

@ Андреа - нет, это невозможно; но ClickOnce превосходно работает в запертых средах, по моему опыту. То есть - пользователям нужен веб-браузер, ОС Windows, и это все –

+0

Вы можете указать, какие разрешения необходимы при развертывании приложения через ClickOnce, если на клиентском компьютере установлены политики, которые специально запрещают создание новых папок, например, я предполагая, что ClickOnce не может переопределить это. ClickOnce больше ориентируется на определенную, «запертую» среду. Попробуйте эту ссылку для углубленного изучения настройки политик безопасности: http://www.informit.com/articles/article.aspx?p=691085&seqNum=3 –

2

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

+0

Я использую WIX для начальной настройки приложений, а также http://dotnetinstaller.codeplex.com/, чтобы загрузить настройку и загрузить любое третье требование. Но для обновлений я подумываю разработать пользовательскую процедуру autoupdate, которая загружает новую версию, хранящуюся на моем веб-сайте. Вы уже разработали нечто подобное? Есть ли у вас какая-то передовая практика? –

+0

@ Andrea Parodi: У меня не было похожего подобного материала, но смешивание установленных компонентов и частей MSI, которые обновляются вне процесса MSI, - это жуткая перспектива, я бы сказал, перейдите все MSI или сделайте все это с помощью специальных приложений, приложение перестает синхронизироваться с базой данных MSI. –

1

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

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

Теперь, какая «настройка», которую вы хотите сделать в процессе установки, зависит от необходимой вам гибкости.

+0

Основываясь на моем прошлом опыте, мне просто нужно скопировать новые файлы на клиентскую машину (заботясь о разрешении на ограниченную папку), обновить корпоративные базы данных (только в первый раз, когда один пользователь корпоративного обновления программного обеспечения). Некоторое время регистрирует некоторые COM-объекты. Вы находите, что такие процедуры могут быть разработаны в доме или лучше всего купить коммерческое программное обеспечение/библиотеку? –

+0

Мне не известно о каких-либо COTS для этого. Возможно, вы хотите начать писать эти процедуры самостоятельно. Я чувствую, что копирование новых файлов и обновление баз данных могут быть не слишком сложными. – Santhosh