Временное «резервное копирование» содержимого SharePoint во время развертывания функций и решений - PullRequest
0 голосов
/ 09 апреля 2010

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

Мой клиент заставил меня создать систему SharePoint, чтобы они могли общаться с их клиентами. Бизнес-процесс включает в себя, возможно, 5 этапов (может быть, больше, я даже не знаю, потому что они не рассказывают мне все), и текущая система, которую я написал за последние месяцы, может быть, 2 этапа. Это соответствует нашему крайнему сроку завершения этих систем к понедельнику следующей недели ... но с этого момента мой клиент планирует запустить сайт с этого момента.

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

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

Возможно, я сам поднял свою петарду с системой функций, которую я внедрил. К сожалению, необходимость в дальнейшем создать несколько таких «сайтов проекта» означала, что мне пришлось много писать в своем коде с учетом концепции «Можно многократно развертывать».

Мой текущий план состоит в том, чтобы просматривать списки и библиотеки, которые будут зависеть от конкретной функции, которая должна быть сброшена. Файлы и все их версии будут сохранены в каталоге на сервере. Затем набор текстовых файлов будет использоваться для хранения всех важных значений полей для элементов. Это включает в себя множество перекрестных справочных поисков, которые необходимо будет поддерживать, но это достаточно просто. Затем я деактивирую функцию, развертываю новое решение и снова активирую функцию. Мы загружаем все файлы в порядке, указанном их версиями, и обновляем их сохраненными полями для этих версий, чтобы сохранить структуру версий. При каждой первой загрузке выбирается новый идентификатор и обновляются все соответствующие запросы в остальных файлах (в некотором роде, я уверен, что позже не буду обновлять его с неправильным значением, конечно ). После этого мы просматриваем все остальные элементы в порядке, наиболее подходящем для поддержания правильности реляционных данных. Это примерно подводит итог моего нынешнего плана. К моему преимуществу, в системе нет долго работающих рабочих процессов, на которые это будет влиять, поэтому мне не о чем будет беспокоиться, чтобы убедиться, что ничего не «работает», когда я делаю это.

Я действительно не знаю всех минусов этого подхода ... Я могу представить, что они довольно здоровенные. Но я не уверен, какие еще варианты у меня есть, и мои поиски ничего не дали. Есть ли кто-нибудь, кто может придумать лучшую идею? Или кто-нибудь просто скажет мне, что у меня действительно нет другого выбора? Заранее спасибо!

1 Ответ

0 голосов
/ 12 апреля 2010

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

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

...