연습: 추가 콘텐츠를 사용하여 사이트 정의 만들기
이 연습에서는 사이트 정의에 추가할 수 있는 몇 가지 요소를 통합하는 보다 완전한 기능의 사이트 정의를 만드는 방법을 보여 줍니다. 이 사이트 정의는 직원의 이름과 직원이 근무하는 국가의 지역에 따라 Bing 지도에서 직원을 찾을 수 있도록 하는 직원 로케이터 사이트 정의입니다.
이 연습에서는 다음 작업을 수행합니다.
Visual Studio 프로젝트 템플릿을 사용하여 사이트 정의 만들기
솔루션에서 사용자 지정 마스터 페이지 추가 및 통합
솔루션에 비주얼 웹 파트 추가
솔루션에 사용자 지정 필드 추가
사용자 지정 필드가 포함된 콘텐츠 형식 추가
콘텐츠 형식에 따라 목록 정의 추가
사이트 정의와 함께 배포되는 목록에 대한 목록 인스턴스 및 기본 데이터 추가
비주얼 웹 파트를 추가하여 사이트의 default.aspx 페이지 사용자 지정
비주얼 웹 파트에서 사용자 정의 컨트롤 사용자 지정
비주얼 웹 파트에 나타나는 사용자 지정 로고 이미지를 솔루션에 추가
참고
다음 지침처럼 컴퓨터에서 Visual Studio 사용자 인터페이스 요소 일부에 대한 이름이나 위치를 다르게 표시할 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.
사전 요구 사항
이 연습을 완료하려면 다음 구성 요소가 필요합니다.
지원되는 Microsoft Windows 및 SharePoint 버전. 자세한 내용은 다음을 참조하십시오. SharePoint 솔루션 개발 요구 사항.
SharePoint Designer 2010
Visual Studio 2010.
Bing Maps 플랫폼 개발자 계정 자격 증명. Bing Maps Account Center에서 무료 개발자 계정을 등록할 수 있습니다.
사이트 정의 솔루션 만들기
먼저 Visual Studio에서 사이트 정의를 만듭니다.
사이트 정의 프로젝트를 만들려면
파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭하여 새 프로젝트 대화 상자를 표시합니다.
Visual C# 또는 Visual Basic 아래의 SharePoint 노드를 확장한 다음 2010을 클릭합니다.
템플릿 창에서 사이트 정의를 선택합니다.
이름 상자에 Testsitedef2를 입력한 다음 확인을 클릭합니다.
SharePoint 사용자 지정 마법사가 나타납니다.
디버깅에 사용할 사이트 및 보안 수준 지정 페이지에서 사이트 정의를 디버깅할 SharePoint 서버 사이트의 URL을 입력하거나 기본 위치(http://system name/)를 사용합니다.
이 SharePoint 솔루션의 신뢰 수준을 선택하십시오. 섹션에서 기본값인 팜 솔루션으로 배포를 사용합니다.
모든 사이트 정의 프로젝트를 팜 솔루션으로 배포해야 합니다. 샌드박스가 적용된 솔루션과 팜 솔루션 비교에 대한 자세한 내용은 샌드박스가 적용된 솔루션 고려 사항을 참조하십시오.
마침을 클릭합니다. 솔루션 탐색기에 프로젝트가 나타납니다.
로고 이미지 추가
다음으로, 사이트 정의에서 회사 로고로 사용하기 위해 솔루션에 이미지를 추가합니다.
이미지를 추가하려면
솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 SharePoint "이미지" 매핑된 폴더를 클릭합니다.
Images 폴더가 SharePoint 파일 시스템에 직접 매핑되기 때문에 이 폴더에 추가된 파일은 SharePoint /images 폴더에 배포되고 SharePoint에서 사용할 수 있게 됩니다.
Images 아래의 TestSiteDef2 폴더를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기존 항목을 클릭합니다. 로고로 사용할 이미지 파일을 선택한 다음 추가를 클릭합니다.
또는 바로 가기 메뉴에서 새 항목을 클릭하고 새 이미지를 만들 수 있습니다. 이 경우 이미지 형식의 선택이 제한됩니다. 일반적으로 이 방법은 다른 도구를 사용하여 이미지를 만드는 방법보다 낫습니다.
다른 이미지를 솔루션에 추가하려면 2단계를 반복합니다. 예를 들어 이 항목의 뒷부분에서 추가되는 이미지 컨트롤의 자리 표시자 역할을 할 다른 이미지를 추가할 수 있습니다.
사용자 지정 마스터 페이지 추가
사이트 정의에서 사용자 지정 마스터 페이지를 사용하도록 하려면 솔루션에 해당 마스터 페이지를 추가하면 됩니다.
사용자 지정 마스터 페이지를 추가하려면
마스터 페이지를 만듭니다. 자세한 내용은 ASP.NET 마스터 페이지를 참조하십시오.
사용자 지정 마스터 페이지를 내보낸 다음 연습: 사용자 지정 마스터 페이지 및 사이트 페이지를 이미지로 가져오기에 설명된 대로 Visual Studio로 가져옵니다.
모듈에 마스터 페이지를 추가합니다. 이렇게 하려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다.
새 항목 추가 대화 상자의 SharePoint 템플릿 목록에서 모듈을 선택합니다. 모듈에 이름을 지정합니다.
모듈에서 기본 Sample.txt 파일을 삭제합니다.
_catalogs라는 폴더를 모듈에 추가한 다음 masterpage라는 폴더를 그 아래에 추가합니다.
이는 SharePoint에서 다른 마스터 페이지의 파일 위치와 일치합니다.
masterpage 폴더 아래에 마스터 페이지를 추가합니다. 이렇게 하려면 모듈 노드를 선택한 다음 프로젝트 메뉴에서 기존 항목 추가를 클릭합니다. 마스터 페이지를 찾아 선택합니다. 마스터 페이지 파일의 파일 확장명은 .master입니다.
마스터 페이지의 배포 충돌 해결 설정을 자동으로 변경합니다.
모듈에서 Elements.xml을 두 번 클릭하여 XML 디자이너에서 엽니다.
마스터 페이지를 참조하려면 Elements.xml 파일을 업데이트해야 합니다.
기존 모듈 태그를 다음 태그로 바꿉니다.
<?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>
자리 표시자 값을 모듈과 마스터 페이지의 실제 이름으로 바꿔야 합니다.
default.aspx 파일에서 마스터 페이지의 이름을 변경합니다. 예를 들어 마스터 페이지의 이름이 "newmaster.master"이면 다음을 사용할 수 있습니다.
<%@ Page language="C#" MasterPageFile="~/_catalogs/masterpage/newmaster.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>
프로젝트를 저장합니다.
사용자 지정 필드 정의
이후에 사용자 지정 목록을 만드는 데 사용되는 사용자 지정 필드를 정의합니다. 이러한 필드는 사이트 정의에서 코드에 필요한 추가 데이터를 제공합니다.
사용자 지정 필드를 정의하려면
솔루션 탐색기에서 사이트 정의 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다.
템플릿 목록에서 빈 요소를 선택하고 요소의 이름을 SiteColumns로 지정합니다.
Elements.xml 파일에서 태그를 다음으로 바꿉니다.
<?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>
이 태그는 Latitude, Longitude, Region 및 StaffNumber라는 사용자 지정 필드를 SharePoint에 추가합니다. 이러한 필드는 직원과 직원의 위치를 식별하는 데 사용됩니다. 원하는 경우 필드를 더 추가할 수 있습니다. 도구 메뉴에서 GUID 만들기 도구를 사용하여 각 추가 필드에 대한 고유 GUID를 생성할 수 있습니다.
참고
이 솔루션을 다시 실행하는 경우 오류를 방지하기 위해 필드 정의를 주석으로 처리합니다.
프로젝트를 저장합니다.
콘텐츠 형식 추가
새 필드를 참조하는 콘텐츠 형식을 만듭니다.
콘텐츠 형식을 추가하려면
솔루션 탐색기에서 사이트 정의 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다.
템플릿 목록에서 콘텐츠 형식을 선택하고 새 콘텐츠 형식의 이름을 StaffListContentType으로 지정합니다.
콘텐츠 형식 설정 선택 페이지의 기본 콘텐츠 형식 목록에서 연락처를 선택합니다.
콘텐츠 형식의 Elements.xml 파일에서 태그를 다음으로 바꿉니다.
<?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>
프로젝트를 저장합니다.
목록 정의 추가
새 콘텐츠 형식을 참조하는 목록 정의를 만듭니다.
목록 정의를 추가하려면
솔루션 탐색기에서 사이트 정의 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다.
템플릿 목록에서 콘텐츠 형식에서의 목록 정의를 선택하고 목록 정의의 이름을 StaffListDefinition으로 지정합니다.
목록 정의 설정 선택 페이지에서 표시 이름과 기본 콘텐츠 형식에 대한 기본값을 사용합니다. 이 목록 정의에 대해 목록 인스턴스 추가 확인란의 선택을 취소한 다음 마침을 클릭합니다.
새 콘텐츠 형식에 따라 목록 정의가 만들어집니다. 이후에 onet.xml 파일에서 목록의 인스턴스를 만듭니다.
Schema.xml을 두 번 클릭하여 엽니다. 사용자 지정 필드가 파일 맨 위에서 이미 참조되어 있음을 확인할 수 있습니다.
onet.xml에 기본 목록 데이터 추가
사이트 정의가 배포된 후 새 목록 정의의 인스턴스와 일부 기본 직원 정보를 직원 목록에 제공하려면 사이트 정의의 onet.xml 파일에 데이터를 추가합니다.
onet.xml에 목록 데이터를 추가하려면
onet.xml 파일을 두 번 클릭하여 엽니다.
<Lists/> 태그를 다음 태그로 바꿉니다.
<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>
기능의 범위를 사이트 수준으로 설정합니다. 이렇게 하려면 솔루션 탐색기에서 기능 파일을 두 번 클릭하여 기능 디자이너에서 엽니다. 기능 디자이너에서 범위를 사이트로 설정합니다.
프로젝트를 저장합니다.
Bing Maps 서비스에 대한 참조 추가
Bing Maps Imagery 서비스를 호출하여 선택된 직원의 위치를 표시할 지도를 제공합니다.
Bing Maps Imagery 서비스를 솔루션에 추가하려면
프로젝트에 서비스 참조를 추가합니다. 이렇게 하려면 솔루션 탐색기에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 서비스 참조 추가를 클릭합니다.
서비스 참조 추가 대화 상자의 주소 상자에 다음 URL을 입력합니다.
http://dev.virtualearth.net/webservices/v1/imageryservice/imageryservice.svc?wsdl
이동을 클릭하고 네임스페이스 상자에 ImageryService를 입력한 다음 확인을 클릭합니다.
사이트 정의에서 app.config 파일을 삭제합니다.
서비스에 의해 추가된 이 파일은 필요한 끝점과 바인딩을 제공하지만, SharePoint 솔루션과 제대로 작동하지 않으므로 이후에 코드를 통해 기능이 추가됩니다.
Bing Maps 웹 서비스를 사용하려면 요청하기 위한 Bing Maps 키가 있어야 합니다. Bing Maps Account Center에서 계정에 로그인하여 키를 얻을 수 있습니다.
컨트롤이 있는 비주얼 웹 파트 만들기
다음으로, 사이트 정의의 기본 페이지에 표시할 컨트롤이 있는 비주얼 웹 파트를 만듭니다.
비주얼 웹 파트를 만들려면
솔루션 탐색기에서 사이트 정의 노드를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 새 항목을 클릭합니다.
템플릿 목록에서 비주얼 웹 파트를 선택하고 웹 파트의 이름으로 기본값인 VisualWebPart1을 사용합니다.
VisualWebPart1UserControl.ascx의 기존 태그 아래에 다음을 추가합니다.
<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 /> </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 />
제목, 로고 이미지, 지역이 포함된 드롭다운 목록 상자, 직원 이름에 대한 목록 상자 및 지도를 표시하는 이미지 컨트롤이 페이지에 추가됩니다.
VisualWebPart1UserControl.ascx 아래에 있는 VisualWebPart1UserControl.ascx.cs 파일을 열고 해당 코드를 다음 코드로 바꿉니다.
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; } } }
default.aspx 페이지에 비주얼 웹 파트 추가
다음으로, 사이트 정의의 default.aspx 페이지에 비주얼 웹 파트를 추가합니다.
default.aspx 페이지에 비주얼 웹 파트를 추가하려면
default.aspx 페이지를 열고 WebPartPages 태그 아래에 다음 태그를 추가합니다.
<%@ Register Tagprefix="MyWebPartControls" Namespace="TestSiteDef2.SiteDefinition.VisualWebPart1" Assembly="$SharePoint.Project.AssemblyFullName$" %>
이 줄에서는 MyWebPartControls라는 이름을 웹 파트 및 해당 코드에 연결합니다. Namespace 매개 변수는 VisualWebPart1Usercontrol.ascx 코드 파일에 사용되는 네임스페이스와 같습니다.
</asp:Content> 요소 뒤에서 전체 ContentPlaceHolderId="PlaceHolderMain" 섹션과 그 내용을 다음 태그로 바꿉니다.
<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server"> <h1> Welcome to Tailspin Toys </h1> <MyWebPartControls:VisualWebPart1 runat="server" /> </asp:Content>
이 태그는 앞에서 만든 비주얼 웹 파트에 대한 참조를 만듭니다.
사이트 정의 솔루션 실행 및 배포
다음으로, 프로젝트를 실행하고 SharePoint에 배포합니다.
사이트 정의를 실행하고 배포하려면
- F5 키를 누릅니다. Visual Studio에서는 코드를 컴파일하고 프로젝트의 기능을 추가한 다음 모든 파일을 .wsp 파일로 패키지하고 .wsp 파일을 SharePoint Server에 배포합니다. 그러면 SharePoint에서 파일을 설치하고 기능을 활성화한 다음 새 SharePoint 사이트 페이지를 표시합니다.
사이트 정의를 기반으로 사이트 만들기
새 사이트 정의를 사용하여 새 사이트를 만듭니다.
사이트 정의를 사용하여 사이트를 만들려면
SharePoint 사이트에 새 SharePoint 사이트 페이지가 나타납니다.
제목 및 설명 섹션에서 사이트의 제목과 설명으로 My New Site를 입력합니다.
웹 사이트 주소 섹션의 URL 이름 상자에 mynewsite를 입력합니다.
템플릿 섹션에서 SharePoint 사용자 지정 탭을 클릭한 다음 템플릿 선택 목록에서 TestSiteDef2를 선택합니다.
다른 설정은 기본값으로 두고 만들기를 클릭합니다.
새 사이트가 나타납니다.
새 사이트 테스트
다음으로, 새 사이트를 테스트하여 제대로 작동하는지 확인합니다.
새 사이트를 테스트하려면
Region 아래의 상자에서 위치 중 하나를 클릭합니다.
해당 지역의 직원 이름이 Staff 목록에 나타납니다.
Staff 목록에서 직원의 이름을 클릭합니다.
직원의 지도 위치가 이미지 컨트롤에 나타납니다.
참고
Bing Maps 서비스를 사용할 수 없는 경우 "EndPointNotFoundException" 오류가 발생할 수 있습니다. 이 오류가 발생하면 나중에 다시 시도하십시오.