Держите тот же SPWEB & SPSITE через весь жизненный цикл приложения?

StackOverflow https://stackoverflow.com/questions/6341197

Вопрос

У нас есть несколько проектов со многими DAL. Многие списки SharePoint, такие как клиенты, продают, поставщики, которые отражаются в классах C#. Мы заставляем каждый объект реализовать Idisposable через абстрактный класс матери. И каждый раз, когда мы создаем создание объекта, чтобы получить клиента из списка, например, код вызывающего абонента должен вызвать customer.dispose () для избавления от SPWEB и SPSITE, используемого для создания объекта:

 public Customer(int spListItemID):base(LIST_URL)
    {
        try
        {
            spli = Liste.GetItemById(spListItemID);
        }
        catch(ArgumentException)
        {
            spli = null;
        }
    }

А в базовом классе конструктора существуют глобальные переменные SPSITE и SPWEB, созданные экземпляры, и есть и функция распоряжения.

Мне было интересно: как насчет того же использования того же SPWEB и SPSITE для всего приложения SharePoint? Все наши проекты знают проект, который мог бы создать эти SPSite и SpWeb после синглтонского образца. И мы бы использовали этот SPSite и Spweb «навсегда», мы никогда не закроем бы их обоих и использовали бы один для каждого объекта, сохраняя процесс открытия закрытия каждый раз, когда мы создаем экземпляр объекта!

Как вы думаете, это сумасшедшая идея, которая будет иметь последствия? Я имею в виду использование одного и того же SPWEB в течение очень долгого времени, то есть время, когда сервер включен ... это такая плохая идея? Вместо того, чтобы открывать закрытие тысячи времени в день в день для каждого экземпляра? Есть ли у Spweb ограниченный период живого? (Это большое приложение SharePoint с большим количеством разработки)

Это было полезно?

Решение

Наибольший риск состоит в том, что SPWEB может стать устаревшим. В многопользовательской среде свойства SPWEB, которые извлекаются в первом обратном пути (например, веб -заголовок), могут быть изменены другим пользователем, но вы продолжаете иметь старые значения, поскольку вы не испытываете экземпляры заново. Вы можете создать несколько экземпляров SPWEB и SPSITE, если вы правильно их распорядите.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top