Держите тот же SPWeb & SPSite на протяжении всего жизненного цикла приложения?

У нас есть несколько проектов со многими 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, а также есть функция dispose.

Мне было интересно: как насчет использования одного и того же spweb и spsite для всего приложения sharepoint? Все наши проекты знают проект, который может создавать экземпляры spsite и spweb по одноэлементному шаблону. И мы будем использовать этот spsite и spweb "навсегда", мы никогда не закроем их обоих и будем использовать одно и то же для каждого объекта, сохраняя процесс открытия-закрытия каждый раз, когда создаем экземпляр объекта!

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

1 ответ

Решение

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

Другие вопросы по тегам