Domanda

Abbiamo diversi progetti con molti Dal. Molti elenchi di SharePoint come clienti, vendite, fornitori che riflettono nelle classi C#. Reniamo ogni oggetto implementabile idisposibile attraverso una classe madre astratta. E ogni volta che istanziamo un oggetto per ottenere un cliente da un elenco, ad esempio, il codice del chiamante deve chiamare il cliente.dispose () per smaltire lo SPWeb e lo spsite utilizzato per istanziare l'oggetto:

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

E nella classe di base del costruttore esiste un'istanza di variabili globali SPSITE e SPWeb e c'è anche la funzione di smalto.

Mi chiedevo: che ne dici di usare lo stesso SPWeb e SPSITE per l'intera applicazione di SharePoint? Tutti i nostri progetti conoscono un progetto che potrebbe istanziare quei SPSITE e SPWeb seguendo uno schema singleton. E useremmo questo SPSITE e SPWeb "Forever", non li chiuderemmo mai entrambi e useremmo lo stesso per ogni oggetto, salvando il processo di chiusura di apertura ogni volta che istanziamo un oggetto!

Pensi che sia un'idea folle, che avrebbe ripercussioni? Intendo usare lo stesso SPWeb per molto tempo, vale a dire il tempo in cui il server è acceso ... è una cattiva idea? Invece di aprire la chiusura di SPWeb migliaia di tempo al giorno per ogni istanza? SPWeb ha un periodo vivo limitato? (È una grande applicazione di SharePoint con un sacco di sviluppo su di esso)

È stato utile?

Soluzione

Il rischio maggiore è che lo SPWeb potrebbe diventare obsoleto. In un ambiente multiutente le proprietà SPWeb che vengono recuperate nel primo viaggio di andata e ritorno (ad esempio - titolo web) possono essere modificate da un altro utente ma continui ad avere i vecchi valori poiché non si sta istanziando di nuovo. È possibile creare più istanze di SPWeb e SPSITE fintanto che li smalti correttamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top