Procedura dettagliata: creazione di una definizione di sito con contenuto aggiuntivo

In questa procedura dettagliata viene mostrato come creare una definizione di sito più completo in cui sono incorporati diversi elementi che è possibile aggiungere a una definizione di sito. Si tratta di una definizione di sito del localizzatore dipendenti che consente di individuare un dipendente su una mappa di Bing in base al nome del dipendente e alla regione del paese in cui lavora.

In questa procedura dettagliata vengono illustrate le attività seguenti:

  • Creazione di una definizione di sito tramite il modello di progetto di Visual Studio.

  • Aggiunta e inclusione di una pagina master personalizzata nella soluzione.

  • Aggiunta di una web part visiva alla soluzione.

  • Aggiunta di campi personalizzati alla soluzione.

  • Aggiunta di un tipo di contenuto in cui sono inclusi i campi personalizzati.

  • Aggiunta di una definizione di elenco basata sul tipo di contenuto.

  • Aggiunta di un'istanza di elenco e di dati predefiniti per l'elenco che viene distribuito con la definizione di sito.

  • Personalizzazione della pagina default.aspx del sito aggiungendo a quest'ultima una web part visiva.

  • Personalizzazione di un controllo utente nella web part visiva.

  • Aggiunta di un'immagine del logo personalizzata visualizzata nella web part visiva alla soluzione.

Nota

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

Creazione di una soluzione di definizione di sito

Creare il progetto di definizione di sito in Visual Studio.

Per creare un progetto di definizione di sito

  1. Visualizzare la finestra di dialogo Nuovo progetto selezionando Nuovo nel menu File, quindi facendo clic su Progetto.

  2. Espandere il nodo SharePoint sotto Visual C# o Visual Basic, quindi fare clic su 2010.

  3. Nel riquadro dei modelli selezionare Definizione di sito.

  4. Nella casella Nome digitare Testsitedef2, quindi fare clic su OK.

    Viene visualizzata la Personalizzazione guidata SharePoint.

  5. Nella pagina Specificare il sito e il livello di sicurezza per il debug immettere l'URL per il sito del server SharePoint in cui si desidera eseguire il debug della definizione di sito o utilizzare il percorso predefinito (http://nome del sistema/).

  6. Nella sezione Selezionare il livello di attendibilità per la soluzione SharePoint utilizzare il valore predefinito di Distribuisci come soluzione farm.

    Tutti i progetti di definizione di sito devono essere distribuiti come soluzioni della farm. Per ulteriori informazioni sulle differenze tra le soluzioni create mediante sandbox e quelle della farm, vedere Considerazioni sulle soluzioni create mediante sandbox.

  7. Scegliere Fine. Il progetto viene visualizzato in Esplora soluzioni.

Aggiungere un'immagine alla soluzione da utilizzare come logo aziendale nella definizione di sito.

Per aggiungere un'immagine

  1. Fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, scegliere Aggiungi, quindi fare clic su Cartella mappata "Images" di SharePoint.

    Poiché il mapping della cartella Immagini viene eseguito direttamente al file system di SharePoint, i relativi file aggiunti vengono distribuiti nella cartella /images di SharePoint diventando disponibili per l'uso in SharePoint.

  2. Fare clic con il pulsante destro del mouse sulla cartella TestSiteDef2 sotto Immagini, scegliere Aggiungi, quindi fare clic su Elemento esistente. Selezionare un file di immagine da utilizzare come logo, quindi fare clic su Aggiungi.

    In alternativa, è possibile fare clic su Nuovo elemento nel menu di scelta rapida e creare una nuova immagine, anche se la scelta dei tipi di immagine è limitata. In genere è preferibile creare immagini utilizzando un altro strumento.

  3. Ripetere il passaggio 2 se si desidera aggiungere altre immagini alla soluzione. Ad esempio, è possibile aggiungere un'altra immagine da utilizzare come segnaposto per il controllo immagine aggiunto in un secondo momento in questo argomento.

Aggiunta di un pagina master personalizzata

Se si desidera che per la definizione di sito venga utilizzata una pagina master personalizzata, è possibile aggiungerne una alla soluzione.

Per aggiungere una pagina master personalizzata

  1. Creare una pagina master. Per ulteriori informazioni, vedere la pagina relativa alle pagine master ASP.NET.

  2. Esportare, quindi importare la pagina master personalizzata in Visual Studio, come descritto in Procedura dettagliata: importazione di una pagina master personalizzata e di una pagina del sito con un'immagine.

  3. Aggiungere la pagina master a un modulo. A tale scopo, fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

  4. Nella finestra di dialogo Aggiungi nuovo elemento selezionare Modulo nell'elenco dei modelli di SharePoint. Assegnare un nome al modulo.

  5. Nel modulo eliminare il file Sample.txt predefinito.

  6. Aggiungere una cartella al modulo denominata _catalogs, quindi un'altra sotto quest'ultima denominata masterpage.

    Corrisponde al percorso file di altre pagine master in SharePoint.

  7. Aggiungere la pagina master sotto la cartella masterpage. A tal fine, selezionare il nodo del modulo, quindi scegliere Aggiungi elemento esistente dal menu Progetto. Individuare la pagina master e selezionarla. L'estensione di file della pagina master è master.

  8. Impostare l'impostazione Risoluzione conflitti di distribuzione della pagina master su Automatica.

  9. Fare doppio clic sul file Elements.xml nel modulo per aprirlo in Progettazione XML.

    È necessario aggiornare il file Elements.xml per fare riferimento alla pagina master.

  10. Sostituire il markup del modulo esistente con quello riportato di seguito.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
        <Module Name="[Module Name]" 
                Url="_catalogs/masterpage">
            <File Path="[Module Name]\_catalogs\masterpage\[Master Page 
              Name].master" 
                  Url="[Master Page Name].master" 
                  Type="GhostableInLibrary" />
        </Module>
    </Elements>
    

    Assicurarsi di sostituire i valori segnaposto con i nomi effettivi del modulo e della pagina master.

  11. Modificare il nome della pagina master nel file default.aspx. Ad esempio, se la pagina master è denominata "newmaster.master", si utilizza il codice seguente.

    <%@ Page language="C#" MasterPageFile="~/_catalogs/masterpage/newmaster.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"  %>
    
  12. Salvare il progetto.

Definizione di campi personalizzati

Definire i campi personalizzati utilizzati in un secondo momento per creare un elenco personalizzato. Questi campi forniscono dati aggiuntivi richiesti dal codice nella definizione di sito.

Per definire campi personalizzati

  1. Fare clic con il pulsante destro del mouse sul nodo della definizione di sito in Esplora soluzioni, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

  2. Selezionare Elemento vuoto nell'elenco di modelli e denominare l'elemento SiteColumns.

  3. Nel file Elements.xml sostituire il markup con il seguente.

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">  
      <Field ID="{587DE9D5-618C-42C4-A754-06EA36CF7496}" 
             Type="Text" 
             Name="Latitude" 
             DisplayName="Latitude" 
             Group="Coordinates"/>
      <Field ID="{5D1CFF2C-8032-4792-AB34-8E0A0520B478}" 
             Type="Text" 
             Name="Longitude" 
             DisplayName="Longitude" 
             Group="Coordinates"/>
      <Field ID="{8B7E3CC0-40B5-465E-81FE-D63B7471B7CE}" 
             Type="Text" 
             Name="Region" 
             DisplayName="Region" 
             Group="Coordinates"/>
      <Field ID="{8A152314-DB62-4EC7-96E7-E28F8A253B1D}" 
             Type="Text" 
             Name="StaffNumber" 
             DisplayName="StaffNumber" 
             Group="Coordinates"/>
    </Elements>
    

    Questo markup consente di aggiungere quattro campi personalizzati a SharePoint, ovvero Latitude, Longitude, Region e StaffNumber. Questi campi sono utilizzati per identificare dipendenti e relativi percorsi. Se si desidera, è possibile aggiungere più campi. Utilizzare lo strumento Crea GUID nel menu Strumenti per generare un GUID univoco per ogni campo aggiuntivo.

    Nota

    Se si esegue nuovamente questa soluzione, impostare le definizioni di campo come commento per evitare errori.

  4. Salvare il progetto.

Aggiunta di un tipo di contenuto

Creare un tipo che fa riferimento ai nuovi campi.

Per aggiungere un tipo di contenuto

  1. Fare clic con il pulsante destro del mouse sul nodo della definizione di sito in Esplora soluzioni, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

  2. Selezionare Tipo di contenuto nell'elenco di modelli e denominare StaffListContentType il nuovo tipo di contenuto.

  3. Nella pagina Scegliere le impostazioni del tipo di contenuto selezionare Contact nell'elenco per il tipo di contatto di base.

  4. Nel file Elements.xml per il tipo di contenuto sostituire il markup con il seguente:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="https://schemas.microsoft.com/sharepoint/">
      <!-- Parent ContentType: Contact (0x0106) -->
      <ContentType ID="0x010600a024d6b9cf214430a254b1272eaedc4f"
                   Name="TestSiteDef2 - StaffListContentType"
                   Group="Custom Content Types"
                   Description="My Content Type"
                   Inherits="TRUE"
                   Version="0">
        <FieldRefs>
          <FieldRef ID="{587DE9D5-618C-42C4-A754-06EA36CF7496}"
                    Name="Latitude"
                    DisplayName="Latitude"/>
          <FieldRef ID="{5D1CFF2C-8032-4792-AB34-8E0A0520B478}"
                    Name="Longitude"
                    DisplayName="Longitude"/>
          <FieldRef ID="{8B7E3CC0-40B5-465E-81FE-D63B7471B7CE}"
                    Name="Region"
                    DisplayName="Region"/>
          <FieldRef ID="{8A152314-DB62-4EC7-96E7-E28F8A253B1D}"
                    Name="StaffNumber"
                    DisplayName="StaffNumber"/>
        </FieldRefs>
      </ContentType>
    </Elements>
    
  5. Salvare il progetto.

Aggiunta di una definizione di elenco

Creare una definizione di elenco che fa riferimento al nuovo tipo di contenuto.

Per aggiungere una definizione di elenco

  1. Fare clic con il pulsante destro del mouse sul nodo della definizione di sito in Esplora soluzioni, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

  2. Selezionare Definizione di elenco da tipo di contenuto nell'elenco di modelli e denominare StaffListDefinition la definizione di elenco.

  3. Nella pagina Scegliere le impostazioni di definizione dell'elenco utilizzare i valori predefiniti per il nome visualizzato e il tipo di contenuto di base. Deselezionare la casella Aggiungi un'istanza di elenco per la definizione di elenco, quindi fare clic su Fine.

    In questo modo la definizione di elenco si basa sul nuovo tipo di contenuto. Si creerà in un secondo momento un'istanza dell'elenco nel file onet.xml.

  4. Fare doppio clic sul file Schema.xml per aprirlo. Si noti che ai campi personalizzati viene già fatto riferimento all'inizio del file.

Aggiunta di dati elenco predefiniti al file onet.xml

Per fornire un'istanza della nuova definizione di elenco e informazioni predefinite sul dipendente all'elenco dei dipendenti dopo la distribuzione della definizione di sito, aggiungere dati al file onet.xml della definizione di sito.

Per aggiungere dati elenco al file onet.xml

  1. Fare doppio clic sul file onet.xml per aprirlo.

  2. Sostituire il tag <Lists/> con il markup seguente.

    <Lists>
        <List Title="StaffList"
              FeatureId="fea29b33-8752-45d4-a5bd-6f7a54db7d49"
              Url="Lists/TestSiteDef2-StaffList"
              Description="" Type="10000">
              <Data>
                <Rows>
                  <Row>
                    <Field Name="FirstName">David</Field>
                    <Field Name="FullName">David Pelton</Field>
                    <Field Name="Region">Northwest</Field>
                    <Field Name="Longitude">-122.33</Field>
                    <Field Name="Latitude">47.60</Field>
                    <Field Name="StaffNumber">100200</Field>
                  </Row>
                  <Row>
                    <Field Name="FirstName">Joe</Field>
                    <Field Name="FullName">Joe Healy</Field>
                    <Field Name="Region">Southwest</Field>
                    <Field Name="Longitude">-115.13</Field>
                    <Field Name="Latitude">36.15</Field>
                    <Field Name="StaffNumber">100300</Field>
                  </Row>
                  <Row>
                    <Field Name="FirstName">Lisa</Field>
                    <Field Name="FullName">Lisa Andrews</Field>
                    <Field Name="Region">Northeast</Field>
                    <Field Name="Longitude">-73.98</Field>
                    <Field Name="Latitude">40.75</Field>
                    <Field Name="StaffNumber">100400</Field>
                  </Row>
                  <Row>
                    <Field Name="FirstName">Chris</Field>
                    <Field Name="FullName">Chris Ashton</Field>
                    <Field Name="Region">Southeast</Field>
                    <Field Name="Longitude">-84.38</Field>
                    <Field Name="Latitude">33.76</Field>
                    <Field Name="StaffNumber">100500</Field>
                  </Row>
                </Rows>
              </Data>
        </List>
    </Lists>
    
  3. Impostare l'ambito per la funzionalità sul livello di sito. A tale scopo, fare doppio clic sul file funzionalità in Esplora soluzioni per aprirlo nella finestra di progettazione della funzionalità. Nella finestra di progettazione della funzionalità impostare Ambito su Sito.

  4. Salvare il progetto.

Aggiunta di un riferimento al servizio Bing Maps

Chiamare il servizio Imagery di Bing Maps per fornire una mappa in modo da visualizzare il percorso del dipendente selezionato.

Per aggiungere il servizio Imagery di Bing Maps alla soluzione

  1. Aggiungere al progetto un riferimento al servizio. A tale scopo, fare clic con il pulsante destro del mouse sul nodo del progetto in Esplora soluzioni, quindi scegliere Aggiungi riferimento al servizio.

  2. Nella finestra di dialogo Aggiungi riferimento al servizio immettere l'URL seguente nella casella Indirizzo.

    http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc?wsdl
    
  3. Fare clic su Vai, digitare ImageryService nella casella Spazio dei nomi, quindi scegliere OK.

  4. Eliminare il file app.config dalla definizione di sito.

    Questo file, aggiunto dal servizio, fornisce associazione e endpoint necessari. Tuttavia, non funziona correttamente con le soluzioni SharePoint, pertanto la funzionalità viene aggiunta in un secondo momento tramite codice.

  5. Per i servizi Web di Bing Maps è necessario che si disponga di una chiave Bing Maps per effettuare richieste. Ottenere una chiave accedendo con il proprio account al centro account di Bing Maps.

Creazione di una web part visiva con controlli

Creare una web part visiva con controlli da visualizzare nella pagina principale della definizione di sito.

Per creare una web part visiva

  1. Fare clic con il pulsante destro del mouse sul nodo della definizione di sito in Esplora soluzioni, scegliere Aggiungi, quindi fare clic su Nuovo elemento.

  2. Selezionare Web part visiva nell'elenco di modelli e utilizzare il valore predefinito, VisualWebPart1, per il nome della web part.

  3. Sotto il markup esistente in VisualWebPart1UserControl.ascx aggiungere il seguente.

    <style type="text/css">
        .style4
        {
            height: 205px;
            width: 187px;
        }
        .style5
        {
            height: 396px;
            width: 187px;
        }
        .style7
        {
            height: 205px;
            width: 291px;
        }
        .style8
        {
            height: 396px;
            width: 291px;
        }
        </style>
    
    <table style="width: 100%;">
        <tr>
            <td align="center" class="style4" valign="middle">
    <asp:Image ID="Image1" runat="server" Height="200px" 
        ImageUrl="~/_layouts/images/TestSiteDef2/logo.jpg" Width="350px" />
            </td>
            <td class="style7">
    <asp:Label ID="Label1" runat="server" Font-Size="XX-Large" 
        Font-Underline="True" Text="Tailspin Toys"></asp:Label>
                <br />
                <br />
    <asp:Label ID="Label7" runat="server" Font-Size="X-Large" 
        Font-Underline="False" Text="Employee Locator"></asp:Label>
            </td>
        </tr>
        <tr>
            <td class="style5" valign="top">
                <br />
    <asp:Label ID="Label2" runat="server" Font-Size="Large" Text="Region:"></asp:Label>
                <br />
                <asp:DropDownList ID="DropDownList1" runat="server" Height="24px" 
            Width="352px" onselectedindexchanged="DropDownList1_SelectedIndexChanged" 
                    AutoPostBack="True">
                <asp:ListItem>Northeast</asp:ListItem>
                <asp:ListItem>Northwest</asp:ListItem>
                <asp:ListItem>Southeast</asp:ListItem>
                <asp:ListItem>Southwest</asp:ListItem>
            </asp:DropDownList>
                <br />
                <br />
        <asp:Label ID="Label6" runat="server" Font-Size="Large" Text="Staff:"></asp:Label>
                <br />
        <asp:ListBox ID="ListBox1" runat="server" Width="352px" 
            onselectedindexchanged="ListBox1_SelectedIndexChanged" AutoPostBack="True"></asp:ListBox>
                <br />
                <br />
    &nbsp;&nbsp;
                </td>
            <td class="style8">
                <br />
    <asp:Label ID="Label5" runat="server" Font-Size="Large" Text="Map Location:"></asp:Label>
                <br />
    <asp:Image ID="Image2" runat="server" Height="388px" 
        ImageUrl="" Width="465px" />
            </td>
        </tr>    
    </table>
    
    <br />
    

    In questo modo alla pagina vengono aggiunti un titolo, un'immagine del logo, un elenco a discesa contenente aree, una casella di riepilogo per i nomi dei dipendenti e un controllo immagine in cui viene visualizzata una mappa.

  4. Aprire il file VisualWebPart1UserControl.ascx.cs, che si trova sotto VisualWebPart1UserControl.ascx, e sostituire il codice con quello riportato di seguito.

    using System;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
    using TestSiteDef2.ImageryService;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.Text;
    
    namespace TestSiteDef2.SiteDefinition.VisualWebPart1
    {
        public partial class VisualWebPart1UserControl : UserControl
        {
            protected void Page_Load(object sender, EventArgs e)
            {
            }
    
            protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
            {
                string selectedRegion = DropDownList1.SelectedItem.Text;
    
                SPSite site = new SPSite(Context.Request.Url.AbsoluteUri);
                // Add the SharePoint server name below.
                string webName = 
                    Context.Request.Url.AbsoluteUri.Replace("https://localhost/", "");
                webName = webName.Replace("http://[SharePoint Server Name]/", "");
                webName = webName.Replace("/default.aspx", "");
    
                SPWeb web = site.AllWebs[webName];
                SPList list = web.Lists["StaffList"];
    
                ListBox1.Items.Clear();
                foreach (SPListItem item in list.Items)
                {
                    if (item["Region"].ToString() == selectedRegion)
                    {
                        // LinkTitle == LastName -> see schema.xml
                        ListBox1.Items.Add(item["StaffNumber"] + ": " + 
                            item["FullName"].ToString());
                    }
                }
            }
    
            protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                // Reference the site based on its URL.
                SPSite site = new SPSite(Context.Request.Url.AbsoluteUri);
    
                // Add the SharePoint server name below.
                string webName = 
                    Context.Request.Url.AbsoluteUri.Replace("https://localhost/", "");
                webName = webName.Replace("http://[SharePoint Server Name]/", "");
                webName = webName.Replace("/default.aspx", "");
    
                SPWeb web = site.AllWebs[webName];
    
                // Reference the new list "StaffList" (as defined in onet.xml).
                SPList list = web.Lists["StaffList"];
    
                // Get the string entered in the listbox, split it up.
                // String format: ("XXXXXX: First Last") 
                string fullName = ListBox1.SelectedItem.Text; 
                string[] splitStr = fullName.Split(':');
    
                string longitude = "";
                string latitude = "";
                // Iterate through list, get the latitude/longitude 
                // values for the selected employee's StaffNumber.
                foreach (SPListItem item in list.Items)
                {
                    if (splitStr[0] == item["StaffNumber"].ToString())
                    {
                        longitude = item["Longitude"].ToString();
                        latitude = item["Latitude"].ToString();
    
                        break;
                    }
                }
    
                // Fetch the Bing map based on the selected employee's 
                // latitude and longitude.
                ShowMap(longitude, latitude); 
            }
    
            public void ShowMap(string Longitude, string Latitude)
            {
                Image2.ImageUrl = GetMap(Latitude, Longitude, Latitude + "," 
                    + Longitude);
            }
    
            private string GetMap(string Latitude, string Longitude, string locationString)
            {
                // Set the address to the Bing Maps imagery service.
                EndpointAddress address = new 
                    EndpointAddress("http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc");
    
                // Set up the binding, channel, and Bing Maps key.
                BasicHttpBinding binding = new BasicHttpBinding();
                binding.UseDefaultWebProxy = true;
                ChannelFactory<IImageryService> factory = 
                    new ChannelFactory<IImageryService>(binding, address);
                IImageryService channel = factory.CreateChannel(address);
                // Add your key below.
                string key = "[Bing Maps key]";
                MapUriRequest mapUriRequest = new MapUriRequest();
    
                // Set credentials using a valid Bing Maps key
                mapUriRequest.Credentials = new ImageryService.Credentials();
                mapUriRequest.Credentials.ApplicationId = key;
    
                // Set the location of the requested image.
                mapUriRequest.Center = new ImageryService.Location();
                string[] digits = locationString.Split(',');
                mapUriRequest.Center.Latitude = double.Parse(digits[0].Trim());
                mapUriRequest.Center.Longitude = double.Parse(digits[1].Trim());
    
                // Set the map style and zoom level.
                MapUriOptions mapUriOptions = new MapUriOptions();
                mapUriOptions.Style = MapStyle.AerialWithLabels;
                mapUriOptions.ZoomLevel = 17;
    
                // Set the size of the requested image in pixels.
                mapUriOptions.ImageSize = new ImageryService.SizeOfint();
                mapUriOptions.ImageSize.Height = 388;
                mapUriOptions.ImageSize.Width = 465;
                mapUriOptions.Style = MapStyle.AerialWithLabels;
    
                mapUriRequest.Options = mapUriOptions;
    
                // Add a pushpin to the current location.
                ImageryService.Pushpin[] MapPins = new ImageryService.Pushpin[1];
                MapPins[0] = new Pushpin();
                MapPins[0].IconStyle = "34";
                MapPins[0].Location = new Location();
                MapPins[0].Location.Latitude = Convert.ToDouble(Latitude);
                MapPins[0].Location.Longitude = Convert.ToDouble(Longitude);
                mapUriRequest.Pushpins = MapPins;
    
                // Open the channel and retrieve the map.
                ((IChannel)channel).Open();
                MapUriResponse mapUriResponse = channel.GetMapUri(mapUriRequest);
                ((IChannel)channel).Close();
                return mapUriResponse.Uri;
    
            }
        }
    }
    

Aggiunta della web part visiva alla pagina default.aspx

Aggiungere la web part visiva alla pagina default.aspx della definizione di sito.

Per aggiungere una web part visiva alla pagina default.aspx

  1. Aprire la pagina default.aspx e aggiungere il markup seguente sotto il tag WebPartPages.

    <%@ Register Tagprefix="MyWebPartControls" Namespace="TestSiteDef2.SiteDefinition.VisualWebPart1" Assembly="$SharePoint.Project.AssemblyFullName$" %>
    

    Questa riga consente di associare il nome MyWebPartControls alla web part e al codice. Il parametro Namespace è lo stesso spazio dei nomi utilizzato nel file di codice VisualWebPart1Usercontrol.ascx.

  2. Dopo l'elemento </asp:Content>, sostituire tutta la sezione ContentPlaceHolderId="PlaceHolderMain" e il relativo contenuto con il markup riportato di seguito.

    <asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server">
        <h1>
            Welcome to Tailspin Toys
        </h1>  
        <MyWebPartControls:VisualWebPart1 runat="server" />
    </asp:Content>
    

    Questo markup consente di creare un riferimento alla web part visiva creata precedentemente.

Eseguire e distribuire la soluzione di definizione di sito

Eseguire e distribuire il progetto in SharePoint.

Per eseguire e distribuire la definizione di sito

  • Premere F5. Visual Studio consente di compilare il codice, aggiungere le funzionalità del progetto, assemblare tutti i file in un file WSP e distribuire quest'ultimo in SharePoint Server. Tramite SharePoint vengono quindi installati i file, attivate le funzionalità e visualizzata la pagina Nuovo sito di SharePoint.

Creazione di un sito basato sulla definizione di sito

Creare un nuovo sito tramite la nuova definizione di sito.

Per creare un sito tramite la definizione di sito

  1. Nel sito di SharePoint viene visualizzata la pagina Nuovo sito di SharePoint.

  2. Nella sezione Titolo e descrizione immettere Nuovo sito per il titolo e una descrizione del sito.

  3. Nella sezione Indirizzo sito Web immettere nuovosito nella casella Nome URL.

  4. Nella sezione Modello fare clic sulla scheda Personalizzazioni di SharePoint, quindi selezionare TestSiteDef2 nell'elenco Selezionare un modello.

  5. Mantenere i valori predefiniti delle altre impostazioni, quindi fare clic su Crea.

    Viene visualizzato il nuovo sito.

Test del nuovo sito

Testare il nuovo sito per assicurarsi che funzioni correttamente.

Per testare il nuovo sito

  1. Nella casella sotto Region fare clic su uno dei percorsi.

    Nell'elenco Staff verrà visualizzato il nome di un dipendente di tale area.

  2. Fare clic sul nome del dipendente nell'elenco Staff.

    Nel controllo immagine verrà visualizzato un percorso della mappa per il dipendente.

    Nota

    Se il servizio di Bing Maps non è disponibile, è possibile ricevere un errore "EndPointNotFoundException". In tal caso, riprovare in un secondo momento.

Vedere anche

Attività

Procedura dettagliata: creare un progetto di definizione di sito di base

Procedura: creare un ricevitore di eventi

Altre risorse

Sviluppo di soluzioni SharePoint