Architektur der Windows Phone SharePoint-Listenanwendungsvorlage
Verstehen Sie das Entwurfsmuster von Projekten, die aus der Vorlage für Windows Phone SharePoint List Application erstellt. Die Windows Phone SharePoint List Application-Vorlage vom Windows Phone SharePoint Software Development Kit installiert wurde entwickelt, um Windows Phone-apps basierend auf einem Muster, die Teile des Projekts in verschiedenen Komponenten trennt generieren. Die Vorlage funktioniert über das Erstellen der Klassen und Dateien herstellen das Muster, da Entwickler zur Erweiterung konzentrieren generiert Projekten basierend auf ihren bestimmte Anforderungen, die Geschäftslogik und die Daten.
Die Vorlage Windows Phone SharePoint List Application und den Entwurf MVVM-Muster
Die Vorlage Windows Phone SharePoint-Listenanwendung generiert ein Visual Studio 2010-Projekt für eine Silverlight-basierte Windows Phone-App, die nach einem Softwareentwurfsmuster entwickelt wurde, das als MVVM-Muster (View-Model-ViewModel) bezeichnet wird. Das MVVM-Muster ist eine Möglichkeit, Code in einem Projekt in verwaltbaren Ebenen zu organisieren und zu unterteilen, die unabhängig entwickelt, getestet und geändert werden können. Es ist ein besonders effektives Entwicklungsmuster für Windows Presentation Foundation-Projekte (WPF) und Silverlight-Projekte, da das Muster neben anderen Vorteilen die Darstellungsebene einer bestimmten Anwendung ermöglicht, eine weniger starre Abhängigkeit von der Struktur der zugrunde liegenden Daten zu haben, sodass Entwickler die Präsentationsebene für verschiedene Kontexte anpassen können (z. B. Webbrowser, Mobile Geräteschnittstellen, oder Desktopanwendungen), wobei die zugrunde liegenden Datenstrukturen beibehalten werden.
Im Gegensatz zu einer einfacheren Ansatz umfasst sagen, Schreiben aller Daten-Management-Code in der CodeBehind-Dateien mit bestimmten XAML-Dateien in einer Silverlight-Anwendung ein Projekt entsprechend der MVVM-Muster organisieren verknüpft ist eine zusätzliche anfängliche Investition von Aufwand zu planen und entwickeln die erforderlichen Klassen, die Vererbungsmodell und die Methoden der Kommunikation zwischen den Komponenten des Musters. Die Vorlage Windows Phone SharePoint List Application kümmert dieser anfänglichen Konfiguration und Entwicklung Aufgaben zum Einrichten von dem Muster für Sie, sodass Sie anpassen und Erweitern des Projekts, um eine funktionsfähige MVVM-Anwendung schnell zu entwickeln.
Die drei Hauptkomponenten oder Ebenen der MVVM-Muster werden die Ansicht, das Modell und das Ansichtsmodell. In Projekten basierend auf der Vorlage Windows Phone SharePoint List Application werden diese Komponenten von verschiedenen Project-Dateien implementiert, wie in Abbildung 1 dargestellt.
Abbildung 1: Windows Phone SharePoint-Listenanwendungsdateien im MVVM-Muster
Den folgenden Abschnitten werden einige der Details im Zusammenhang mit der Implementierung dieser Komponenten in die Vorlage Windows Phone SharePoint List Application.
Die Model-Komponente
Die Modellkomponente im MVVM-Muster bezieht sich auf die Klassen und Strukturen, die zur Darstellung der Daten für eine Anwendung verwendet werden. Bei einer App, die auf einer SharePoint-Liste basiert, dienen die Liste und ihre Elemente als zugrunde liegende Daten. In der Windows Phone SharePoint-Listenanwendung verarbeitet die ListDataProvider-Klasse die standardmäßigen SharePoint-Clientobjektmodellvorgänge zum Herstellen einer Verbindung mit einer SharePoint-Liste, z. B. das Erstellen einer Instanz der ClientContext-Klasse und das Festlegen der zugehörigen Eigenschaften. Die genauen Implementierungsdetails der ListDataProvider-Klasse in der Vorlage hängen von den Optionen ab, die in den Schritten des Assistenten für SharePoint Phone-Anwendungen angegeben sind, wenn Sie ein Projekt basierend auf der Vorlage erstellen.
Die Basisklasse implementiert ListDataProviderBase (in Microsoft.SharePoint.Phone.Application.dll), von denen die ListDataProvider -Klasse abgeleitet ist einen Mechanismus für das Zwischenspeichern für SharePoint-Listendaten. Listenelemente aus dem Server abgerufen werden, werden sie von der ListDataProvider -Klasse in der lokalen Speichers zu Phone-app zwischengespeichert, und diese Elemente in der app benötigt, des Caches zum Einsparen von Ressourcen und Reduzierung von Reisen an den Server zuerst aktiviert wird.
Wenn das Filtern der Daten von der SharePoint-Liste abgerufen, oder geben Sie genau welche Daten abgerufen werden soll, können Sie den Code in der ListDataProvider -Klasse (in der Datei ListDataProvider.cs) ändern. Die Teile der Datei, die Sie für diese Zwecke wahrscheinlich ändern würde werden die LoadDataFromServer -Methode und die Implementierung der statischen CamlQueryBuilder -Klasse. Sie können auch eine eigene Klasse von der Klasse ListDataProviderBase ableiten. Wenn Sie dies tun, müssen Sie unbedingt die abstrakten Methoden aus der Basisklasse, LoadData und LoadItemimplementieren, und auch Implementieren des Context -Eigenschaft Mitglieds der Basisklasse, eine geeignete get Accessor-Methode bereitgestellt.
Die Komponente anzeigen
Die Ansichtskomponente in MVVM-Muster bezieht sich auf der Benutzeroberfläche (UI) einer app. In Silverlight-basierten Windows Phone-app wird die Ansichtskomponente darstellten von XAML-Dateien zum Deklarieren und Kennzeichnen von Benutzeroberflächenelementen und CodeBehind-Dateien, die die Verwendung von XAML-Dateien, die implementieren Ereignishandler und anderen Code zum Bestimmen der Interaktion zwischen Benutzern mit der UI-Elemente zugeordnet.
Es ist wichtig, zwischen zwei Sinne des Worts "anzeigen" im Zusammenhang mit der Entwicklung von apps für SharePoint-Liste für Windows Phone zu unterscheiden. Eine SharePoint-Liste ist eine oder mehrere Ansichten, wie beispielsweise, alle Elemente als Standardansicht für eine Liste oder eine Liste basierend auf der Listenvorlage Kalender in der Ansicht Aktuelle Ereignisse zugeordnet. Diese Ansichten stellen Möglichkeiten zum Organisieren und Anzeigen von Listenelementen in einer SharePoint-Liste dar. Je nach Art der SharePoint-Liste (und gibt an, ob benutzerdefinierte Ansichten der Liste hinzugefügt wurden) Ziel für Ihre app, die Ansichten der Liste aus, wie alle Aufgaben oder aktuelle Ereignisse zugeordnet werden zur Verfügung gestellt, die festlegen, dass Ihre app in den Assistenten für SharePoint Phone-Anwendung einschließen, wenn Sie ein Projekt aus der Vorlage erstellen. Wenn Sie eine bestimmte Ansicht einfügen, generiert die Vorlage ein PivotItem -Steuerelement (ein Pivot Steuerelement enthaltene) zum Rendern der Ansicht der Liste.
Dieser Sinn des Worts "Ansicht" ist vom Sinn des Worts zu unterscheiden, wie es für die Ansichten in der Vorlage gilt. In einem Projekt, das auf der Vorlage Windows Phone SharePoint-Listenanwendung basiert, verweisen die Ansichten (implementiert als XAML-Dateien im Ordner Ansichten des Projekts) konzeptionell auf die Komponente Ansicht des MVVM-Musters. Das heißt, die Ansichten im Projekt stellen die Darstellungsebene für die Daten (oder das Modell) einer bestimmten Entität dar. In diesem Fall ist die Entität entweder eine SharePoint-Liste oder ein SharePoint-Listenelement.
Obwohl das Listenformular (List.xaml) im Projekt bezeichnet werden kann, um die Standardansicht einer SharePoint-Liste, die konzeptionelle Unterschied zwischen Standardansicht des einer SharePoint-Liste und der Ansicht durch die Liste dargestellt, das Formular weiterhin beibehalten werden soll, zugeordnet, da das Listenformular im Projekt unbedingt die Standardansicht der Liste auf dem Server zugeordnet ist, entspricht. Wenn Sie beispielsweise ändern Sie die standardmäßige Listenansicht auf dem Server (durch, beispielsweise eine bestimmte Sortierreihenfolge angeben oder Anzeigen bestimmter Felder und andere nicht), die Änderungen werden nicht in der XAML-Code, der das Listenformular im Projekt, bildet dargestellt werden. Legen Sie die Reihenfolge der Elemente, wie sie in der Liste angezeigt werden, Formular in Ihrer app basierend auf Ihrer Auswahl im Application-Assistent für SharePoint-Telefon (oder basierend auf der nachfolgenden Anpassungen des Listenformulars), unabhängig von der Reihenfolge für die Standardansicht zugeordneten SharePoint-Liste auf dem Server konfiguriert sind.
Das Listenformular stellt die Ansicht (oder der Darstellungsschicht) für die SharePoint-Liste. Die drei Ansichtsdateien beziehen sich auf einzelne Listenelemente, und sie gilt der verfügbaren Formulare (Allgemein) entsprechen der Liste Element im Menü für ein Listenelement in SharePoint.
Das Formular anzeigen (DisplayForm.xaml) entspricht dem Element anzeigen-Formular (DispForm.aspx) für eine SharePoint-Liste. Dieses Formular stellt eine Ansicht für ein einzelnes Element in einer SharePoint-Liste.
Mit dem Bearbeitungsformular (EditForm.xaml) entspricht dem Eintrag bearbeiten-Formular (EditForm.aspx) für eine SharePoint-Liste. Dieses Formular stellt eine Ansicht für ein bestimmtes Element zur Bearbeitung verfügbar gemacht wird.
Die neue Formulardatei (NewForm.xaml) entspricht dem Formular neues Element (NewForm.aspx), für eine SharePoint-Liste. Dieses Formular stellt eine Ansicht für ein bestimmtes Element, das erstellt und der Liste hinzugefügt werden soll.
Das Listenformular ist immer in einem Projekt auf Grundlage der Vorlage Windows Phone SharePoint List Application standardmäßig enthalten. Die XAML-Dateien für die anderen Formulare im Ordner "Ansichten" des Projekts werden generiert basierend auf der List-Vorgängen (New, anzeigen oder bearbeiten) in den Assistenten für SharePoint Phone-Anwendung aktiviert.
Der ViewModel-Komponente
Die ViewModel-Komponente im MVVM-Muster soll als eine Art Broker dienen, um die Interaktionen zwischen der View-Komponente und der Model-Komponente zu erleichtern, während die View-Komponente von der Modellkomponente entkoppelt wird, sodass es einfacher ist, den einen oder den anderen zu ändern, ohne die andere zu beeinträchtigen. Genau genommen könnte die ViewModel-Komponente als Teil der Präsentationsebene betrachtet werden, da sie häufig Logik zum "Strukturieren" zugrunde liegender Daten für die Darstellung in der View-Komponente enthält. In Projekten, die auf der Vorlage Windows Phone SharePoint-Listenanwendung basieren, implementieren viewModels den Code zum Binden von SharePoint-Listendaten, die aus der Model-Komponente (d. a. aus einem Objekt der ListDataProvider-Klasse) abgerufen wurden, an Benutzeroberflächensteuerelemente in einem Teil der View-Komponente (z. B. das Bearbeitungsformular). Abhängig von der Art des Steuerelements, das zum Anzeigen der Daten aus der Liste verwendet wird, und dem Datentyp (d. h. ob der Feldtyp für das Listenelement Text oder numerische Daten oder etwas wie ein SharePoint Choice-Feld ist), verarbeitet oder konvertiert das ViewModel die Daten zuerst so, dass sie an ein bestimmtes UI-Steuerelement gebunden werden können.
Insbesondere das Ansichtsmodell Steuerelementklassen im Projekt (wie, beispielsweise die EditItemViewModel -Klasse) eine Basisklasse ViewModelBase (in Microsoft.SharePoint.Phone.Application.dll), die die INotifyPropertyChanged -Schnittstelle implementiert, damit die Silverlight-Steuerelemente die Benutzeroberfläche der app bildet aktualisiert werden können, wenn Werte in der zugrunde liegenden Daten geändert werden (und sollte in der anderen Richtung) Ändern der Werte in der UI-Steuerelemente gespeichert (wenn bidirektionale auf die zugrunde liegenden Daten angewendet werden abgeleitet sind oder "bidirektionale" Bindung für ein Steuerelement konfiguriert).
Abbildung 2 zeigt eine vereinfachte Darstellung der Klassenvererbungshierarchie für die EditItemViewModel -Klasse und die Bindung für ein angegebenes UI-Steuerelement in dem Formular bearbeiten, mit das entsprechende Feld in der ViewModel.
Abbildung 2: Die Klassen "EditItemViewModel" und "EditForm"
Die EditForm -Klasse (die die Ansicht-Komponente aus dem MVVM-Muster darstellt) ist definiert und von zwei Dateien, die EditForm.xaml und die zugeordneten Code-Behind-Datei EditForm.xaml.cs implementiert. In der Datei EditForm.xaml.cs ist die EditItemViewModel -Klasse (für die ViewModel-Komponente von MVVM-Muster) auf die Ansicht in der Datei EditForm.xaml.cs durch Festlegen der DataContext -Eigenschaft der EditForm -Klasse auf ein Objekt der Klasse EditItemViewModel gebunden.
Auf MVVM-Mustern basierende Software-Designs beschränken häufig die Geschäftslogik und Überprüfungsroutinen für die Modellkomponente des Musters. In Projekten auf Grundlage der Listenanwendungsvorlage für Windows Phone SharePoint wurden einige Vorgänge, die in der Regel als Teil der Modellkomponente angesehen werden, in die ViewModel-Komponente implementiert, damit Entwickler die Projekte bequemer erweitern können, wodurch allerdings der konzeptionelle Unterschied zwischen der Datenschicht (Model) und der Darstellungsschicht (ViewModel) leicht verschwimmt. Zum Beispiel machen die ViewModel-Klassen für das Bearbeiten und Erstellen von Listenelementen (d.h. EditItemViewModel- und NewItemViewModel-Klassen) eine Überprüfungsmethode verfügbar, die Entwickler überschreiben können, um eine Überprüfung der von Benutzern eingegebenen Daten implementieren zu können. (Informationen zur Implementierung der Datenüberprüfung mit den ViewModels finden Sie unter Vorgehensweise: Geschäftslogik und Datenüberprüfung in eine Windows Phone-App für SharePoint implementieren)
Hinweis
Das ListDataProvider-Objekt lädt die Daten nur vom Server. Andere Vorgänge, wie z. B. Hinzufügen, Aktualisieren und Löschen, werden im ViewModel selbst durchgeführt. Anschließend erfolgt ein Aktualisierungsaufruf, um die ViewModel-Daten vom Server zu aktualisieren. Dieses Design reduziert die Überladung des Codes.
Die Datei App.xaml und das Silverlight-Anwendungsmodell
Objektebene und seine zugeordneten Code-Behind-Datei App.xaml.cs, sind Standardkomponenten einer verwalteten Silverlight-Anwendung. Anwendungen, die die verwaltete API für Silverlight verwenden, müssen eine Klasse enthalten, die von der Silverlight Application-Klasse abgeleitet ist, um das Silverlight-Anwendungsmodell zu implementieren. Die Application -Klasse unterstützt Anwendung Lebenszyklusereignisse und Funktionen für die Verwaltung von Ressourcen wie Bilder, Zeichenfolgen und XAML-Vorlagen.
Informationen zu den Arten von Änderungen, die Sie an der Datei "App.xaml.cs" in Ihren Projekten vornehmen können, finden Sie unter How to: Store and retrieve SharePoint list items on a Windows Phone on implementing event handlers in the App.xaml.cs file to preserve application state information, and How to: Use multiple SharePoint lists in a Windows Phone app on instanziating and configuring additional additional ListDataProvider-Objekte in App.xaml.cs.