Share via


Gewusst wie: Erstellen einer benutzerdefinierten Websitedefinition und -konfiguration

Letzte Änderung: Mittwoch, 2. Februar 2011

Gilt für: SharePoint Foundation 2010

An der Erstellung einer benutzerdefinierten Websitedefinition ist kein verfahrenstechnischer Code beteiligt. Es handelt sich um eine rein deklarative Entwicklungsaufgabe. In erster Linie wird zwei wichtigen Dateien (WebTemp*.xml und Onet.xml) Collaborative Application Markup Language (CAML)-Markup hinzugefügt. In manchen Szenarien erstellen Sie außerdem eine oder mehrere benutzerdefinierte Websiteseiten. Wenn Sie sicherstellen möchten, dass der benutzerdefinierte Websitetyp für die Globalisierung bereit ist, können Sie außerdem eine oder mehrere Ressourcendateien (RESX) verwenden.

Manchmal handelt es sich bei einem benutzerdefinierten Websitetyp um eine Neukombination aus integrierten Listentypen, Inhaltstypen, Spaltentypen und anderen Features, die sich von den integrierten Websitetypen unterscheiden. Häufiger jedoch sind, wenn für die Microsoft SharePoint Foundation-Lösung ein neuer Websitetyp erforderlich ist, ein oder mehrere benutzerdefinierte Inhaltstypen, benutzerdefinierte Feldtypen, benutzerdefinierte Listentypen, benutzerdefinierte Webparts, benutzerdefinierte mobile Webpartadapter, benutzerdefinierte Dokumentvorlagen usw. beteiligt. Alle diese Arten von untergeordneten Entwicklungsprojekten sollten Sie zuerst erledigen, damit Sie im Markup der benutzerdefinierten Websitedefinition auf diese Elemente verweisen können.

So richten Sie das Projekt ein

  1. Erstellen Sie in Microsoft Visual Studio ein Websitedefinitionsprojekt aus dem Abschnitt SharePoint | 2010 mit Projektvorlagen. Erstellen Sie die Lösung als Farmlösung, nicht als Lösung mit eingeschränkter Sicherheitsstufe. Verwenden Sie einen Namen, der auch als interner Name der Websitedefinition verwendet wird. Benutzer sehen diesen Namen nicht. Konventionsgemäß bestehen die Namen von Websitedefinitionen aus Großbuchstaben und enthalten weder Leerzeichen noch andere Zeichen. Wenn die Websitedefinition mehrere Konfigurationen enthalten soll, beachten Sie, dass dieser Begriff als Name für eine Familie von benutzerdefinierten Websitetypen verwendet wird und daher für diese Rolle geeignet sein sollte. In diesem Thema wird der Name RESEARCH für ein fortlaufendes Beispiel verwendet.

    HinweisHinweis

    Beim Visual Studio-Websitedefinitionsprojekt und in dieser Dokumentation wird im Allgemeinen angenommen, dass Sie nur eine Websitedefinition verwenden, das heißt ein Template-Element in der WebTemp*.xml-Datei. Sie können jedoch in der Websitedefinition auch mehrere benutzerdefinierte Websitetypen, das heißt mehrere Konfigurationen, verwenden. Sie können jedoch mehrere Websitedefinitionen in der gleichen WebTemp*.xml-Datei verwenden. In diesem Fall sollten Sie dem Projekt einen generischeren Namen geben, beispielsweise den Namen des Unternehmens. Außerdem müssen Sie, wenn Sie mehrere Websitedefinitionen in der gleichen WebTemp*.xml-Datei verwenden, dem Visual Studio-Projekt separate Onet.xml-Dateien für die einzelnen Websitedefinitionen hinzufügen und das unten beschriebene Verfahren "So konfigurieren Sie eine Onet.xml-Datei" für jede Websitedefinition wiederholen, da jede Websitedefinition eine eigene Onet.xml-Datei haben muss. Außerdem müssen Sie sicherstellen, dass jede Websitedefinition vom Lösungspaket in einem eigenen Unterverzeichnis von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates bereitgestellt wird. Jedes dieser Unterverzeichnisse muss den gleichen Namen haben wie das Name-Attribut des entsprechenden Template-Elements in der WebTemp*.xml-Datei.

  2. Normalerweise enthält ein Websitedefinitionsprojekt keinen Code und daher auch keine Assembly; in Visual Studio wird jedoch standardmäßig immer für jedes Projekt eine Assembly kompiliert. Obwohl die Assembly keine Klassen enthält, wenn das Projekt keinen Code umfasst, wird auch die Assembly von Visual Studio standardmäßig mit dem Lösungspaket bereitgestellt. Dies bedeutet, dass dem globalen Assemblycache eine überflüssige Assembly hinzugefügt wird. Wenn Sie dem Projekt keine Elemente hinzufügen, die in einer Assembly kompiliert werden, sollten Sie dieses Standardverhalten von Visual Studio daher deaktivieren. Anderenfalls wird mit der Lösung eine überflüssige Assembly bereitgestellt, die bei Farmadministratoren oder Benutzern, die eine SharePoint-Bereitstellung debuggen, zu Verwirrung führen kann. Wählen Sie im Projektmappen-Explorer den Projektnamen aus. Das Fenster Eigenschaften wird geöffnet. Legen Sie die Eigenschaft Assembly in Paket einschließen auf false fest.

So konfigurieren Sie eine WebTemp*.xml-Datei

  1. Öffnen Sie die WebTemp*.xml-Datei im Projektmappen-Explorer. Im fortlaufenden Beispiel handelt es sich dabei um die Datei WebTemp_RESEARCH.xml.

    TippTipp

    Es kann hilfreich sein, die integrierte WebTemp.xml-Datei als Modell geöffnet zu halten, während Sie dieses Verfahren ausführen. Die Datei befindet sich in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LCID\XML, wobei LCID die numerische ID einer Sprache/Kultur ist, beispielsweise 1033 für Englisch. Die von Ihnen erstellte Datei wird mit der integrierten Datei zusammengeführt. Ändern Sie die integrierte Datei nicht! Der Name der benutzerdefinierten Datei muss dem Schema WebTemp*.xml entsprechen.

  2. Ändern Sie das ID-Attribut des Template-Elements in einen Wert von mindestens 10000. Dadurch wird sichergestellt, dass die ID nicht im Konflikt mit zukünftigen von Microsoft erzeugten Websitedefinitionen steht. Wenn in der Zielfarm andere benutzerdefinierte Websitedefinitionen vorhanden sind, achten Sie darauf, dass jede eine eindeutige ID hat.

  3. Es gibt ein standardmäßiges Configuration-Element im Template-Element. Wenn die Websitedefinition mehrere Konfigurationen enthalten soll, das heißt, wenn die Websitedefinition eine Familie verwandter Websitetypen darstellt, kopieren Sie das Configuration-Element, sodass eines für jeden in der Familie benötigten benutzerdefinierten Websitetyp vorhanden ist. Im fortlaufenden Beispiel werden zwei Konfigurationen verwendet. Weitere Informationen zu Fällen, in denen Sie mehrere Konfigurationen in einer einzigen Websitedefinition verwenden sollten, finden Sie unter Entscheiden zwischen mehreren Definitionen oder Konfigurationen.

  4. Lassen Sie das ID-Attribut des ursprünglichen Configuration-Elements auf 0 festgelegt, nummerieren Sie jedoch die erstellten Kopien der Reihenfolge nach beginnend mit 1.

  5. Ändern Sie die Attribute Title und Description für die einzelnen Configuration-Elemente in für die benutzerdefinierten Websitekonfigurationen geeignete Werte. Diese Namen und Beschreibungen werden auf der Benutzeroberfläche angezeigt, wenn Benutzer neue Websites erstellen.

  6. Wenn Sie ein benutzerdefiniertes Bild haben, das als Symbol für den benutzerdefinierten Websitetyp auf der Benutzeroberfläche angezeigt werden soll, wenn Benutzer Websites anhand der benutzerdefinierten Websitekonfigurationen erstellen, ändern Sie den Wert der ImageUrl-Attribute nach Bedarf.

  7. Ändern Sie den DisplayCategory-Wert der einzelnen Configuration-Elemente nach Bedarf. Mit diesem Wert wird der Name der Kategorie festgelegt, unter der die Websitekonfiguration auf der Benutzeroberfläche angezeigt wird, wenn ein Benutzer eine Website erstellt. In vielen Fällen eignet sich hierfür die gleiche Zeichenfolge, die Sie für das Name-Attribut des Template-Elements verwendet haben. Eine weitere Möglichkeit ist die Verwendung des Firmennamens. Sie können auch eine der integrierten Zeichenfolgen "Zusammenarbeit" oder "Besprechungen" verwenden. Die Verwendung von "Benutzerdefiniert" wird nicht empfohlen. Die Kategorie "Benutzerdefiniert" enthält standardmäßig Webvorlagen anstelle von Websitedefinitionskonfigurationen, und Administratoren möchten dieses Schema möglicherweise beibehalten.

  8. Das Hidden-Attribut sollte in allen Configuration-Elementen den Wert FALSE haben.

Weitere Informationen zum Anpassen der WebTemp*.xml-Datei finden Sie unter Grundlegendes zu WebTemp*.xml-Dateien und Templates-Element (Website).

Im folgenden Beispiel wird eine benutzerdefinierte WebTemp_RESEARCH.xml-Datei gezeigt. In der Datei werden zwei Configuration-Elemente verwendet, um unterschiedliche Websitedefinitionskonfigurationen zu definieren, eine für eine Website für die Zusammenarbeit bei der Forschung und die andere für eine Dokumentarbeitsbereichs-Website für die Forschung. Beide Websitedefinitionen werden auf der Benutzeroberfläche in der Kategorie "Forschung und Entwicklung" angezeigt.

<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft.SharePoint">
  <Template Name="RESEARCH" ID="10001">
    <Configuration ID="0" Title="Research Collaboration site" 
      Hidden="FALSE" ImageUrl="_layouts/images/stsprev.jpg" 
      Description="This definition creates a site for the Research 
      team to create, organize, and share general information." 
      DisplayCategory="Research & Development">
    </Configuration>
    <Configuration ID="1" Title="Research Document Workspace" Hidden="FALSE" 
      ImageUrl="_layouts/images/dwsprev.jpg" Description="This 
      definition creates a site for Research team colleagues to 
      work together on specific documents." 
      DisplayCategory="Research & Development">
    </Configuration>
  </Template>
</Templates>
HinweisHinweis

Im Microsoft SharePoint Foundation-Objektmodell werden eine Websitedefinitionskonfiguration und die übergeordnete Websitedefinition durch ein Microsoft.SharePoint.SPWebTemplate-Objekt dargestellt. Mit der Name-Eigenschaft des Objekts werden der Definitionsname und die Konfigurations-ID mit dem Symbol "#" dazwischen verkettet. Die beiden Websitedefinitionskonfigurationen im vorhergehenden Beispiel haben daher die Namen RESEARCH#0 und RESEARCH#1.

So konfigurieren Sie eine Onet.xml-Datei

  1. Öffnen Sie die Onet.xml-Datei im Projektmappen-Explorer.

  2. Da Sie ausgewählt haben, dass anstelle einer Webvorlage eine Websitedefinition erstellt werden soll, müssen Sie mindestens eine der folgenden aufgelisteten Aufgaben ausführen, die mit Webvorlagen nicht möglich sind. (Weitere Informationen zur Entscheidung, ob eine benutzerdefinierte Websitedefinition oder eine Webvorlage erstellt werden soll, finden Sie unter Entscheiden zwischen benutzerdefinierten Webvorlagen und benutzerdefinierten Websitedefinitionen.)

    • Registrieren Sie eine benutzerdefinierte E-Mail-Fußzeile, die in E-Mail-Nachrichten angezeigt wird, die von anhand der benutzerdefinierten Websitedefinition erstellten Websites gesendet werden. Fügen Sie hierzu ein ServerEmailFooter-Element als untergeordnetes Element des Project-Elements hinzu. Weitere Informationen finden Sie unter ServerEmailFooter-Element (Website).

    • Konfigurieren Sie den benutzerdefinierten Websitetyp so, dass ein benutzerdefinierter Postprozessor für Dateidialoge oder ein benutzerdefinierter externer Sicherheitsanbieter verwendet wird. Fügen Sie hierzu ein Components-Element als untergeordnetes Element des Project-Elements hinzu. Weitere Informationen finden Sie unter Components-Element (Website) und den Themen für die jeweiligen untergeordneten Elemente.

    • Registrieren Sie einen benutzerdefinierten Dokumenttyp zur Verwendung in den Dokumentbibliotheken von Websites, die anhand der benutzerdefinierten Websitedefinition erstellt werden. Führen Sie dazu die folgenden Schritte aus.

      1. Fügen Sie ein DocumentTemplates-Element als untergeordnetes Element des Project-Elements und ein DocumentTemplate-Element als untergeordnetes Element des DocumentTemplates-Elements hinzu.

      2. Legen Sie das Path-Attribut des DocumentTemplate-Elements auf den gleichen Namen fest, den Sie für den Wert des Name-Attributs des Template-Elements in der benutzerdefinierten WebTemp*.xml-Datei verwendet haben. In diesem Beispiel würden Sie RESEARCH verwenden.

      3. Legen Sie das Type-Attribut des DocumentTemplate-Elements auf einen Wert von mindestens 10000 fest, um sicherzustellen, dass keine Konflikte mit zukünftigen von Microsoft erstellten Dokumentvorlagen entstehen.

      4. Legen Sie die Attribute DisplayName und Description des DocumentTemplate-Elements auf geeignete Werte fest.

      5. Fügen Sie nach Bedarf weitere mögliche Attribute des DocumentTemplate-Elements hinzu, und legen Sie diese fest. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen einer Dokumentvorlage, eines Dateityps und einer Bearbeitungsanwendung zu einer Websitedefinition, DocumentTemplate-Element (Website) und DocumentTemplates-Element (Website).

      6. Fügen Sie dem neuen DocumentTemplate-Element ein untergeordnetes DocumentTemplateFiles-Element hinzu. Fügen Sie dann mindestens ein untergeordnetes DocumentTemplateFile-Element hinzu, und legen Sie dessen Attribute fest. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen einer Dokumentvorlage, eines Dateityps und einer Bearbeitungsanwendung zu einer Websitedefinition und DocumentTemplateFile-Element (Website).

      Wiederholen Sie die vorherigen Schritte für jede benutzerdefinierte Dokumentvorlage, die Teil der benutzerdefinierten Websitedefinition ist. Jedes DocumentTemplate-Element muss einen anderen Type-Attributwert erhalten. Integrierte Dokumentvorlagen für den benutzerdefinierten Websitetyp registrieren Sie in einem späteren Schritt.

  3. Legen Sie die folgenden Attribute des Project-Elements auf geeignete Werte fest. (Nur Title und ListDir sind erforderlich, und der ListDir-Wert kann eine leere Zeichenfolge sein.)

    1. ListDir

    2. Revision

    3. SiteLogoUrl

    4. SiteLogoDescription

    5. Title

    Verwenden Sie nicht das UIVersion-Attribut. Weitere Informationen zu diesen Attributen finden Sie unter Project-Element (Website).

  4. Wenn Sie integrierte Dokumentvorlagen für benutzerdefinierte Websites registrieren möchten, können Sie dazu diese Schritte ausführen.

    1. Fügen Sie, wenn dies noch nicht in einem der vorherigen Schritte geschehen ist, ein DocumentTemplates-Element als untergeordnetes Element des Project-Elements hinzu.

    2. Kopieren Sie die DocumentTemplate-Elemente nach Bedarf aus der Onet.xml-Datei für die standardmäßige Teamwebsite unter %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATES\SiteTemplates\sts\XML, und fügen Sie die Elemente in das DocumentTemplates-Element ein.

  5. Fügen Sie dem Configurations-Element Configuration-Elemente hinzu, sodass genauso viele Configuration-Elemente vorhanden sind wie in der benutzerdefinierten WebTemp*.xml-Datei, die Sie im vorherigen Verfahren erstellt haben.

  6. Legen Sie das ID-Attribut jedes Configuration-Elements auf aufeinander folgende Zahlen, beginnend mit 0, fest. Beachten Sie bei allen weiteren Änderungen an den Configuration-Elementen, dass die Konfiguration in der Onet.xml-Datei lediglich die Details der Konfiguration in der WebTemp*.xml-Datei mit der gleichen ID-Nummer angibt. Im fortlaufenden Beispiel enthält also Konfiguration 0 in der Onet.xml-Datei die Details der Konfiguration für die Website für die Zusammenarbeit bei der Forschung in WebTemp_Research.xml und Konfiguration 1 die Details der Konfiguration für den Dokumentarbeitsbereich für die Forschung.

  7. Legen Sie das Name-Attribut jedes Configuration-Elements fest. Der Name-Attributwert muss nicht mit dem Title-Attributwert der entsprechenden Konfiguration in der WebTemp*.xml-Datei übereinstimmen. Konventionsgemäß ist der erste Attributwert ein Akronym des zweiten. Im fortlaufenden Beispiel werden die Namen RC bzw. RDW für die Konfigurationen 0 und 1 verwendet.

  8. Fügen Sie in jedem Configuration-Element dem Lists-Element nach Bedarf untergeordnete List-Elemente hinzu, um sicherzustellen, dass alle anhand der Konfigurationen erstellten Websites automatisch mit den gewünschten Listen erstellt werden. (Wenn es sich beim Lists-Element ursprünglich um ein Tag mit einem leeren Element handelt (<Lists />), teilen Sie dieses in Start- und Endtags auf: <Lists></Lists>.)

    Für die integrierten Listentypen können Sie das List-Element aus einer der integrierten Onet.xml-Dateien in untergeordnete Ordner von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates kopieren. Für die benutzerdefinierten Listentypen müssen Sie ein List-Element erstellen. Wenn Sie beispielsweise einen Listentyp mit dem Namen My_Custom_List und einem Type-Attribut mit dem Wert 10001 erstellen, können Sie <List Title="My_Custom_List" Type="10001" Url="Lists/My_Custom_List" FeatureId="guid"/> hinzufügen, um das Lists-Element zu erstellen. Das Url-Attribut enthält die URL für den Ordner mit den Listendefinitionen für die einzelnen Listen, der die ASPX-Dateien, Schema.xml und alle zugehörigen Dateien enthält. Wenn das QuickLaunchUrl-Attribut angegeben ist, enthält dieses den vollständigen Pfad der AllItems.aspx-Datei für eine Liste, unter dem die Liste im Bereich Schnellstart angezeigt wird. Weitere Informationen zum Registrieren einer Liste in einer Websitedefinitionskonfiguration finden Sie unter List-Element (Website) und Baustein: Listen und Dokumentbibliotheken.

  9. Fügen Sie in jedem Configuration-Element nach Bedarf untergeordnete Module-Elemente im Modules-Element hinzu, um sicherzustellen, dass alle anhand einer der Konfigurationen erstellten Websites automatisch mit den jeweils benötigten Dateien erstellt werden. Jedes Modul, auf das Sie in einer Konfiguration verweisen, muss im Modules-Hauptelement definiert sein, das sich ebenfalls in der Onet.xml-Datei, aber außerhalb des Configurations-Elements befindet. Weitere Informationen zum Registrieren von Modulen in einer Onet.xml-Datei finden Sie unter Module-Element (Site) und Module.

  10. Fügen Sie in jedem Configuration-Element nach Bedarf untergeordnete Feature-Elemente in den Elementen SiteFeatures und WebFeatures hinzu, um sicherzustellen, dass alle anhand einer der Konfigurationen erstellten Websites automatisch mit den jeweils benötigten Features erstellt und aktiviert werden. Verwenden Sie das SiteFeatures-Element, um Features zu registrieren, die der Websitesammlung zugewiesen sind. Verwenden Sie WebFeatures, um Features zu registrieren, die der Website zugewiesen sind. Die registrierten Features, einschließlich der von Ihnen erstellten benutzerdefinierten Features, müssen bereits in einem Unterordner von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES bereitgestellt sein, wenn eine Website erstellt wird, die auf der Websitedefinitionskonfiguration basiert. Sie können der Konfiguration beispielsweise gemäß der Beschreibung in Gewusst wie: Hinzufügen eines Inhaltstyps zu einer Website einen Inhaltstyp oder gemäß der Beschreibung in Gewusst wie: Hinzufügen einer Spalte zu einer Website einen Spaltentyp hinzufügen. Zum Registrieren der integrierten Features, die im Lieferumfang von SharePoint Foundation enthalten sind, können Sie Feature-Elemente aus den Elementen SiteFeatures und WebFeatures in einer der integrierten Onet.xml-Dateien in untergeordnete Ordner von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates kopieren. Weitere Informationen zum Registrieren von Features finden Sie unter WebFeatures-Element (Website) und SiteFeatures-Element (Website).

    Im folgenden Beispiel wird ein Configurations-Element gezeigt, mit dem das Beispiel fortgeführt wird.

    <Configurations>
      <Configuration ID="0" Name="RC">
        <Lists>
          <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" 
            Type="101" Title="$Resources:core,shareddocuments_Title;" 
            Url="$Resources:core,shareddocuments_Folder;" 
            QuickLaunchUrl="$Resources:core,shareddocuments_Folder;/Forms/AllItems.aspx" /> 
          <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" 
            Type="108" Title="$Resources:core,discussions_Title;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" 
            QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;/AllItems.aspx" 
            EmailAlias="$Resources:core,discussions_EmailAlias;" /> 
          <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" 
            Type="104" Title="$Resources:core,announceList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;">
            <Data>
              <Rows>
                <Row>
                  <Field Name="Title">$Resources:onetid11;</Field> 
                  <Field Name="Body">$Resources:onetid12;</Field> 
                  <Field Name="Expires"><ows:TodayISO/></Field> 
                </Row>
              </Rows>
            </Data>
          </List>
          <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" 
            Type="103" Title="$Resources:core,linksList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> 
          <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" 
            Type="106" Title="$Resources:core,calendarList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" 
            QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" 
            EmailAlias="$Resources:core,calendar_EmailAlias;" /> 
          <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" 
            Type="107" Title="$Resources:core,taskList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" 
            QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;/AllItems.aspx" /> 
        </Lists>
        <Modules>
          <Module Name="Default" /> 
        </Modules>
        <SiteFeatures>
          <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> 
        </SiteFeatures>
        <WebFeatures>
          <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> 
        </WebFeatures>
      </Configuration>
      <Configuration ID="1" Name="RDW">
        <Lists>
          <List FeatureId="00BFEA71-E717-4E80-AA17-D0C71B360101" 
            Type="101" Title="$Resources:core,shareddocuments_Title;" 
            Url="$Resources:core,shareddocuments_Folder;" /> 
          <List FeatureId="00BFEA71-6A49-43FA-B535-D15C05500108" 
            Type="108" Title="$Resources:core,discussions_Title;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" 
            QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,discussions_Folder;" /> 
          <List FeatureId="00BFEA71-D1CE-42de-9C63-A44004CE0104" 
            Type="104" Title="$Resources:core,announceList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,announce_Folder;">
            <Data>
              <Rows>
                <Row>
                  <Field Name="Title">$Resources:onetid11;</Field> 
                  <Field Name="Body">$Resources:onetid12;</Field> 
                  <Field Name="Expires"><ows:TodayISO/></Field> 
                </Row>
              </Rows>
            </Data>
          </List>
          <List FeatureId="00BFEA71-2062-426C-90BF-714C59600103" 
            Type="103" Title="$Resources:core,linksList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,links_Folder;" /> 
          <List FeatureId="00BFEA71-EC85-4903-972D-EBE475780106" 
            Type="106" Title="$Resources:core,calendarList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;" 
            QuickLaunchUrl="$Resources:core,lists_Folder;/$Resources:core,calendar_Folder;/Calendar.aspx" /> 
          <List FeatureId="00BFEA71-A83E-497E-9BA0-7A5C597D0107" 
            Type="107" Title="$Resources:core,taskList;" 
            Url="$Resources:core,lists_Folder;/$Resources:core,tasks_Folder;" /> 
        </Lists>
        <Modules>
          <Module Name="DWS" /> 
        </Modules>
        <SiteFeatures>
          <Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" /> 
        </SiteFeatures>
        <WebFeatures>
          <Feature ID="00BFEA71-4EA5-48D4-A4AD-7EA5C011ABE5" /> 
        </WebFeatures>
      </Configuration>
    </Configurations>
    
  11. Wenn für Benutzer, die eine Website anhand der Websitedefinitionskonfiguration erstellen, automatisch eine bestimmte Seite geöffnet werden soll, fügen Sie dem Configuration-Element ein ExecuteUrl-Element hinzu. In der Regel wird dieses Element zum Öffnen einer bestimmten von Ihnen erstellten benutzerdefinierten Anwendungsseite verwendet, auf der Benutzer bestimmte für den benutzerdefinierten Websitetyp relevante Optionen festlegen können. Weitere Informationen zu diesem Element finden Sie unter ExecuteUrl-Element (Website). Weitere Informationen zu benutzerdefinierten Anwendungsseiten finden Sie unter Application _layouts Page Type.

  12. Fügen Sie untergeordnete NavBar-Elemente im NavBars-Element hinzu, um die Navigationsbereiche von Seiten auf den anhand der benutzerdefinierten Websitedefinition erstellten Websites anzupassen. Häufig kopieren Sie dazu am einfachsten NavBar-Elemente aus einer der integrierten Onet.xml-Dateien in untergeordnete Order von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates. (Das NavBars-Element gilt für Websites, die auf irgendeiner der Konfigurationen in der Websitedefinition basieren.) Weitere Informationen zu diesem Markup finden Sie unter NavBar-Element (Website).

  13. Einige der herkömmlichen Listentypen, die auf Besprechungs- oder Blogwebsites angezeigt werden, wurden vor der Einführung von Features in SharePoint Foundation erstellt. Diese Listentypen werden in ListTemplate-Elementen in den Onet.xml-Dateien für die MPS- und BLOG-Websitedefinitionen angegeben. Wenn Sie einen dieser Listentypen in der benutzerdefinierten Websitedefinition benötigen, fügen Sie ein ListTemplates-Element als untergeordnetes Element des Project-Elements hinzu, und kopieren Sie die benötigten ListTemplate-Elemente aus den MPS- und BLOG-Onet.xml-Dateien in dieses Element. (Fügen Sie keine benutzerdefinierten ListTemplate-Elemente hinzu. Erstellen Sie stattdessen benutzerdefinierte Listen als Features, und verweisen Sie wie in einem früheren Schritt beschrieben in einem untergeordneten List-Element eines Lists-Elements im Configuration-Element auf das Feature.) Weitere Informationen zum Listenvorlagenmarkup finden Sie unter ListTemplate-Element (Website).

  14. Fügen Sie untergeordnete Module-Elemente im Modules-Hauptelement direkt unter dem Project-Element hinzu, um sicherzustellen, dass bei jeder Erstellung einer Website des benutzerdefinierten Typs automatisch die benötigten Dateien und die Webparts für alle Benutzer bereitgestellt werden. Auf jedes hinzugefügte neue Modul muss in einem sekundären Modules-Element verwiesen werden, das sich in einem Configuration-Element befindet. Wenn auf ein Modul nicht in mindestens einer Konfiguration verwiesen wird, wird das Modul nicht verwendet. Zum Registrieren der integrierten Module, die im Lieferumfang von SharePoint Foundation enthalten sind, können Sie das entsprechende Module-Element aus einer der integrierten Onet.xml-Dateien in untergeordnete Ordner von %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates kopieren. Weitere Informationen zum Modulmarkup finden Sie unter Modules-Element (Website).

  15. Wenn die Seiten von Websites, die anhand der Definition erstellt wurden, einen bestimmten benutzerdefinierten Headerbereich haben sollen, legen Sie das AlternateHeader-Attribut des Project-Elements fest. Weitere Informationen finden Sie unter Project-Element (Website).

  16. Wenn Seiten von Websites, die anhand der Definition erstellt wurden, benutzerdefinierte ECMAScript-Funktionen (JavaScript- oder Microsoft JScript-Code) enthalten sollen (beispielsweise Anpassen des Menüs Bearbeiten), legen Sie das CustomJSUrl-Attribut des Project-Elements fest. Weitere Informationen finden Sie unter Project-Element (Website).

  17. Wenn Sie die Verwendung bestimmter Arten von Funktionen in Microsoft SharePoint Designer oder anderen Designer-Anwendungen auf Seiten von Websites, die anhand der Definition erstellt wurden, verhindern möchten (beispielsweise die Erstellung von Sicherungen oder Unterwebsites), legen Sie das DisableWebDesignFeatures-Attribut des Project-Elements fest. Weitere Informationen finden Sie unter Project-Element (Website).

  18. Sie können benutzerdefinierte Cascading Stylesheet (CSS)-Formatdefinitionen erstellen, die von Websites verwendet werden sollen, die anhand der Definition erstellt werden. Hierzu erstellen Sie eine CSS-Datei mit einem eindeutigen Namen in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\LAYOUTS\LCID\STYLES, wobei LCID die numerische ID der Sprache/Kultur ist, beispielsweise 1033 für Englisch. Kopieren Sie den Inhalt der auf den ASPX-Seiten der Websitedefinition angegebenen CSS-Datei in diese neue Datei, und fügen Sie in der neuen CSS-Datei Formate hinzu, oder aktualisieren Sie Formate. Verwenden Sie das AlternateCSS-Attribut des Project-Elements, um den Pfad der neuen CSS-Datei anzugeben. Der folgende Code ist ein Beispiel dafür.

    AlternateCSS = 
    "/_layouts/[%=System.Threading.Thread.CurrentThread.CurrentUICulture.LCID%]/styles/MyStyles.css">
    

So passen Sie die Seiten der Website an

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei Default.aspx. Sie können die Datei nach Bedarf bearbeiten und die Datei unter anderem auf eine benutzerdefinierte Gestaltungsvorlage zeigen lassen. Weitere Informationen zum Anpassen von Websiteseiten finden Sie im Thema zum Knoten Websites und -seiten.

  2. Wenn für auf dem benutzerdefinierten Websitetyp basierende Websites bei der Erstellung der Websites automatisch andere Arten von Seiten erstellt werden sollen, fügen Sie dem Projekt nach Bedarf zusätzliche ASPX-Seiten hinzu. Klicken Sie hierzu im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten Websitedefinition (nicht auf den Projektnamen), und fügen Sie eine Datei mit dem Namen custompage.aspx hinzu. Wenn Sie die Datei auf diese Weise hinzufügen, ist sichergestellt, dass die Datei im Paketmanifest registriert und bei der Bereitstellung der Lösung am richtigen Speicherort bereitgestellt wird.

  3. Wenn Sie eine benutzerdefinierte Gestaltungsvorlage in die Lösung einschließen, muss diese dem Projekt mit der richtigen Methode hinzugefügt werden, damit die Gestaltungsvorlage vom Lösungsmanifest am richtigen Speicherort bereitgestellt wird. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektnamen (nicht auf den Knoten Websitedefinition), zeigen Sie auf Hinzufügen, und wählen Sie Zugeordneter SharePoint-Ordner aus.

  4. Wählen Sie im Dialogfeld Zugeordneten SharePoint-Ordner hinzufügen die Option TEMPLATE\GLOBAL aus, und klicken Sie auf OK.

  5. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Knoten GLOBAL, und fügen Sie eine neue Datei mit der Dateinamenerweiterung .master hinzu. Damit wird die neue Datei im Knoten GLOBAL erstellt und im Lösungspaketmanifest registriert.

  6. Öffnen Sie die neue Gestaltungsvorlage, und fügen Sie Markup hinzu. Weitere Informationen zu benutzerdefinierten Gestaltungsvorlagen finden Sie unter Gestaltungsvorlagen.

So stellen Sie die Websitedefinition bereit und testen diese

  1. Wählen Sie im Menü Erstellen die Option Projektmappe bereitstellen aus. Damit werden automatisch alle Dateien an den entsprechenden Speicherorten bereitgestellt, und die Webanwendung wird neu gestartet.

    TippTipp

    Wenn es sich bei der Entwicklungsumgebung nicht um eine Installation mit einem einzelnen Server, sondern um eine Farm mit mehreren Servern handelt, wird die Lösung von Visual Studio dem Lösungskatalog der Farm in der Zentraladministrationsanwendung hinzugefügt. Die Lösung wird jedoch nicht bereitgestellt. Stellen Sie die Lösung in der Zentraladministration bereit.

  2. Fügen Sie der Entwicklungsfarm eine Website hinzu, die auf einer der Konfigurationen in den benutzerdefinierten Websitedefinitionskonfigurationen basiert. Auf der Benutzeroberfläche für die Erstellung neuer Websites sollten die neuen Websitetypen angezeigt werden. Im fortlaufenden Beispiel sollten Research Collaboration site und Research Document Workspace in der Kategorie Research & Development angezeigt werden.

Lokalisieren benutzerdefinierter Websitedefinitionen

Weitere Informationen zum Erstellen lokalisierter Versionen Ihrer benutzerdefinierten Websitedefinition finden Sie unter Gewusst wie: Erstellen lokalisierter Versionen von benutzerdefinierten Websitedefinitionen.

Siehe auch

Konzepte

Websitetypen: WebTemplates und Websitedefinitionen

Übersicht über das Erstellen benutzerdefinierter Websitedefinitionen

Entscheiden zwischen mehreren Definitionen oder Konfigurationen