2012-04-06 8 views
1

Ich suche nach einer anständig effizienten Möglichkeit, Änderungen auf einer SharePoint-Website unter Verwendung des Clientobjektmodells nach List zu überwachen. Ich verstehe, wie rückwärts diese Idee ist, aber ich versuche, keine Bibliotheken auf die SharePoint-Server bei der Installation zu schieben. Alles soll fallen und auf einer lokalen Maschine gehen.Listenupdates mit dem SharePoint-Clientobjektmodell

Ich habe über eine Klasse nachgedacht, die nur einen Timer in Schleifen umwandelt und die ClientContext vom letzten Datum der erfolgreichen Abfrage an abfragt, aber das scheint schrecklich ineffizient.

Ich weiß, das ist ein Client Objektmodell, aber gibt es eine Möglichkeit, nur Meldungen vom Server auf Änderungen vom Client zu bekommen?

Antwort

1

Ich befürchte, dass dies nicht möglich ist, mithilfe des Clientobjektmodells. Wenn Sie zu oft abfragen müssen, dass die Benutzererfahrung durch die langsame Leistung zu sehr beeinträchtigt wird, müssen Sie die Listenänderungen auf der Serverseite abfangen. Implementieren Sie eine Lösung mit einer Funktion, die eine SPItemEventReceiver zu Ihrer Liste registriert.

Ich verstehe Ihre Zurückhaltung, serverseitigen Code auf die SP Farm zu schieben; Ohne sie können Sie Diskussionen und Erklärungen an die Administratoren des Kunden speichern. Einige Aufgaben sind jedoch effizienter oder sogar nur ausführbar, wenn sie auf dem Server ausgeführt werden. Sie können Sandbox Solutions für solche Funktionalität in Betracht ziehen. Sie werden in SP nicht vom Farmadministrator sondern zu einer Websitesammlung von einem Websitesammlungsadministrator über eine benutzerfreundliche Webbenutzeroberfläche bereitgestellt. Dies erfordert weniger Privilegien, entspanntere Unternehmensrichtlinien und kann von Ihren Kunden besser akzeptiert werden. Sie können Ihre Lösung nur in Ihrer Websitesammlung entwickeln, testen und sogar verwenden, ohne die gesamte Farm zu beeinträchtigen. Microsoft empfiehlt sogar, dass farmweite Lösungen mit möglichst viel Funktionalität in Sandbox-Lösungen entwickelt werden und nur das erforderliche Minimum für eine Farmlösung bereitstellen. Wenn die Bereitstellung der gesamten Anwendung als Sandbox-Lösung nicht möglich ist, können Sie eine Sandkastenlösung kombinieren und die Änderungen mit einer externen Website abfragen, die die gesammelten Daten aus der Websitesammlung oder in Ihrem Fall mit einer Clientanwendung abruft wie du sprichst. (Sandkastenlösungen haben eine große Einschränkung. Sie nicht eine Web-Anfrage aus der Website-Sammlung außerhalb machen können, nur die Websitesammlung von außen zugreifen können)

--- Ferda