Question

Nous avons plusieurs projets avec beaucoup DAL. De nombreuses listes de sharepoint comme clients, vend, les fournisseurs qui reflètent dans les classes C #. Nous faisons chaque objet de mettre en œuvre IDisposable par une classe abstraite mère. Et chaque fois que nous instancier un objet pour obtenir un client à partir d'une liste par exemple, le code de l'appelant besoin d'appeler customer.Dispose () pour disposer de la SPWeb et SPSite utilisé pour instancier l'objet:

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

et dans la classe de base constructeur il y a des variables globales SPSite et SPWeb instanciés et il y a la fonction Éliminez aussi.

Je me demandais: Que diriez-vous en utilisant la même SPWeb et SPSite pour toute application sharepoint? Tous nos projets connaissent un projet qui pourrait instancier les SPSite et SPWeb suivant un schéma singleton. Et nous utiliserions ce SPSite et SPWeb « pour toujours », nous ne pourrions jamais les deux à proximité et utiliser le même pour tous les objets, sauver le processus d'ouverture et de fermeture chaque fois que nous instancier un objet!

pensez-vous que c'est une idée folle, qui aurait des répercussions? Je veux dire en utilisant la même SPWeb pour un temps très long, c'est-à-dire le temps que le serveur est sur ... est-ce une si mauvaise idée? au lieu d'ouvrir des milliers de SPWeb de clôture de temps par jour pour chaque instanciation? ne SPWeb ont une période limitée en vie? (C'est une grande application sharepoint avec beaucoup de développement sur elle)

Était-ce utile?

La solution

Le plus grand risque est que le SPWeb pourrait se transformer obsolète. Dans un environnement multi-utilisateur les propriétés SPWeb qui sont extraites dans le premier voyage aller-retour (par exemple - Titre Web) peuvent être modifiés par un autre utilisateur, mais vous continuez à avoir les anciennes valeurs puisque vous n'êtes pas instanciation à nouveau. Vous pouvez créer plusieurs instances de SPWeb et SPSite aussi longtemps que vous les éliminer de manière appropriée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top