Держите тот же SPWeb & SPSite на протяжении всего жизненного цикла приложения? - PullRequest
2 голосов
/ 14 июня 2011

У нас есть несколько проектов со многими 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 Ответ

3 голосов
/ 14 июня 2011

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

...