SharePoint 快速入门 FAQ 第二部分






4.92/5 (51投票s)
在上一篇 SharePoint 文章中,我们讨论了 SharePoint 的基础知识。在本期中
目录
- 引言
- 如何在 SharePoint 中创建我的第一个站点?
- 什么是快速启动菜单?
- 我们听说可以自定义 SharePoint 站点,该如何操作?
- 我们听说它有现成的协作功能模块?
- 如何在我自己的站点中启用这些可重用组件?
- 如何在 SharePoint 中显示一个简单的自定义页面?
- 上面的页面看起来不像标准的 SharePoint 页面
- 上面的代码是完全内联的,如何在 SharePoint 中实现后置代码?
- SharePoint 中功能的概念是什么?
- 您能解释一下部署/激活功能的更广泛步骤吗?
- 我希望该功能仅对管理员显示
- 源代码
- 必备组件
如果您是 SharePoint 新手,请从以下视频开始学习:8 小时学会 SharePoint:-
引言
在本期 SharePoint 系列的上一部分中,我们讨论了 SharePoint 的基础知识。在本期中,我们将
- 创建站点/站点集
- 了解现成的功能性可重用模块
- 学习如何显示一个简单的页面,以及后来应用 SharePoint 的母版页
- 托管内联代码和后置代码页面在 SharePoint 中
- 理解功能的概念,并逐步了解如何启用/禁用功能
- 如何在管理员中显示功能
如何在 SharePoint 中创建我的第一个站点?
当您想在 SharePoint 中创建一个站点时,您需要准备一个站点集,并在站点集内定义该站点。这是一个简单的四步过程,并且可以通过 SharePoint 中央管理轻松实现。
第 1 步:单击“开始”,您应该会找到 SharePoint 中央管理菜单。
第 2 步:单击中央管理菜单后,您需要单击“应用程序管理”选项卡,然后单击“创建站点集”。
第 3 步:单击“创建站点集”后,您应该会看到一个表单,需要填写创建站点的所有必要详细信息。所有详细信息几乎都是不言自明的。我们仅强调了三个要点:站点名称、模板以及 SharePoint 运行的用户名。SharePoint 中的所有站点都需要继承自某个母版页,它们不能独立存在。
第 4 步:单击“确定”后,您现在可以使用 SharePoint 名称运行 URL,您应该会看到如下所示的内容。由于我们是从一个空白站点创建的,所以目前没有任何内容。下面是一个空白站点的样子。
什么是快速启动菜单?
下图显示了快速启动菜单。我们只是想确保我们了解这里的术语及其对应关系。在未来的章节中,我们将使用这个术语来指代图中所示的左侧菜单。
我们听说可以自定义 SharePoint 站点,该如何操作?
我们将继续使用之前讨论的空白站点作为示例。在左侧角落,您会看到一个“站点操作”菜单。单击“站点操作”菜单,然后单击“站点设置”菜单链接。单击该链接后,会弹出一个窗口,其中包含可用于自定义的各种设置。我们现在不讨论每项设置的含义,但在后续章节中,我们将理解一些重要的设置,通过这些设置可以实现自定义。
为了增加您的信心,您可以尝试“外观和风格”设置。但这将是我们想要在 SharePoint 中实现自定义时的着陆页。
我们听说它有现成的协作功能模块?
哦,是的,您听得很清楚,没错。SharePoint 最棒的部分就是协作。协作有四个主要实体:人、任务、数据和沟通。
所以以下是企业的一些关键点
- 我们组织里有人。
- 给人们分配任务。
- 为了完成任务,我们需要交换数据。
- 我们还需要计划/监控任务。
- 为了沟通数据,我们需要一个通信渠道,如电子邮件、Wiki 等。
SharePoint 有很多现成的功能,可以帮助我们满足所有协作需求。要查看那些现成的功能,请单击“站点操作”并单击“创建”。会弹出一个可重用功能页面的列表,您可以从中选择并实现协作。
现在让我们将现成的功能与协作需求进行映射。
SharePoint 中的现成功能 | ||
人员 | 联系人 | 您可以在“创建”页面的“沟通”部分找到此功能。它创建一个页面,可以帮助我们维护人员的联系信息。 |
任务 | Tasks(任务) | 您可以在“创建”页面的“跟踪”部分找到此功能。它有助于我们跟踪您的团队成员需要完成的任务。 |
Data | 文档库 | 有助于共享、编辑和版本化文档。 |
图片库 | 有助于共享图片文档。 | |
翻译管理 | 有助于创建多语言文档。 | |
数据连接库 | 有助于共享包含外部数据信息的文件。 | |
监控 | 项目任务 | 您可以在“创建”页面的“跟踪”部分找到此功能。它提供了任务的甘特图视图。 |
问题跟踪 | 您可以在“创建”页面的“跟踪”部分找到此可重用功能。它有助于从开始到结束管理/分配和优先处理问题。 | |
日历 | 有助于创建日历以记录截止日期和事件。 | |
沟通 | Wiki | 有助于创建像 Wiki 这样的互联系统。 |
公告 | 有助于通过公告共享新闻和状态。 | |
讨论区 | 有助于创建类似新闻组的讨论区。 |
如何在我自己的站点中启用这些可重用组件?
好的,现在我们已经熟悉了可重用组件及其与协作需求的映射关系,是时候将一个可重用的功能添加到您的网站中了。我们将在“文档”菜单中添加一个名为“SharePoint 教程”的链接。在本节中,团队可以将 SharePoint 教程以 Word 文档格式上传。这是一个简单的三步过程,让我们一步一步地理解它。
第 1 步:单击“站点操作”并从菜单中单击“创建”链接。将显示 SharePoint 提供的可重用功能。从“库”部分选择“文档库”。
第 2 步:将链接命名为“SharePoint 教程”,并选择要以 Word 格式上传的文档类型。为此,您需要选择文档模板为“Microsoft Word”类型。
第 3 步:太棒了!您现在可以看到“SharePoint 教程”链接,并且可以单击“上传”将 Word 文档放入此库集合中。
您可以看到下面的图片,我们是如何上传 Word 文档的,即“SharePoint 教程”。您可以右键单击并尝试更多功能,如签出、版本控制、工作流、文档修改时发送警报等。
注意:您可以尝试添加其他功能,如 Wiki、公告板、图片库等等。所以请随意尝试,看看您如何轻松利用可重用功能来满足协作需求。
如何在 SharePoint 中显示一个简单的自定义页面?
首先,SharePoint 中没有简单的页面概念。正如我们在上一篇文章中所讨论的,SharePoint 中有两种类型的页面:应用程序页面和站点页面。
应用程序页面是通用页面,而站点页面是特定于网站的自定义页面。为了让您放松一下,我们先展示一个简单的应用程序页面。
关于应用程序页面需要注意的一些要点
- 它们是跨站点共享的页面,例如“settings.aspx”,它将帮助我们设置站点集中的通用属性。
- 第二件重要的事情是,我们需要将应用程序页面保存在“C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS”文件夹中。如果您浏览到该文件夹,您会找到 SharePoint 自带的应用程序页面。
好的,为了建立信心,让我们创建一个名为 SimplePage.aspx 的简单页面。我们不会做什么特别的事情,只是在页面中写下这个简单的句子。
<b> Ohhhh I never Knew SharePoint is so easy </b>
保存页面后,只需浏览到 IIS 应用程序,然后浏览到 _layouts 文件夹,如下图所示。如果您在浏览器中打开该页面,您应该会看到您的显示消息。
注意:对于下一个问题,您需要理解母版页的概念。如果您还不了解,请重新阅读。一致的外观和感觉是企业门户中最重要的因素之一,SharePoint 通过母版页来实现这一点。
上面的页面看起来不像标准的 SharePoint 页面
为了获得 SharePoint 的外观和感觉,我们需要继承自 SharePoint 母版页。作为规则,您应该始终继承自 SharePoint 母版页,以便您的站点具有一致的外观和感觉。所以让我们修改我们的 SimplePage.aspx。要获得 SharePoint 样式,我们需要继承自 SharePoint 母版页 Application.Master。
我们现在已经根据下面的代码对“simplepage.aspx”进行了修改。我们需要做以下几件事
- 首先使用
Assembly
指令引用程序集。 - 将母版页文件引用为
Application.master
。 - 导入
SharePoint
命名空间。如果我们使用了后置代码,我们也会在后置代码中导入它。 - 有三个占位符:一个用于标题,一个用于中心区域,一个用于页面标题。我们需要在子页面中定义这些占位符。
<!— First refer the assembly using the Assembly directive ->
<%@ Assembly Name="Microsoft.SharePoint,Version=12.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>
<!— Refer the master page from the _layouts directory ->
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master"
Inherits="Microsoft.SharePoint.WebControls.LayoutsPageBase" %>
<!—Import the sharepoint namespace ->
<%@ Import Namespace="Microsoft.SharePoint" %>
<!—This is the content holder for page title ->
<asp:Content ID="Content3" ContentPlaceHolderId="PlaceHolderPageTitle" runat="server">
Let's learn SharePoint....
</asp:Content>
<!- This is the place holder for data for main page area ->
<asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server">
Oh its Damn Simple.....
</asp:Content>
<!- This is the placeholder for page title area ->
<asp:Content ID="Content2" ContentPlaceHolderId="PlaceHolderPageTitleInTitleArea" runat="server">
SharePoint is Simple.....
</asp:Content>
您的 SharePoint 页面现在看起来像一个页面了
您可以在文章末尾附加的源代码中找到简单的内联 ASPX 文件的源代码。
上面的代码是完全内联的,如何在 SharePoint 中实现后置代码?
关于在 ASP.NET 中实现后置代码,我们需要注意几点:
- 第一个也是最重要的要求是,后置代码应该在 GAC 程序集中注册。换句话说,我们需要将后置代码编写在一个单独的程序集/命名空间中,然后将其编译成 DLL。之后,我们需要将 DLL 注册到 GAC。
- 其次,我们需要使用
assembly
指令来引用后置代码。
第 1 步:第一步是创建两个解决方案文件:后置代码放在一个名为 'ClassLibrary1
' 的命名空间的单独程序集中,ASP.NET Web 项目包含 'SimplePageCodeBehind.aspx'。我们还需要将此 DLL 注册到 GAC。所以您需要生成一个赋予程序集的强名称,并使用 .NET Framework 提供的“GACUTIL”进行注册。
第 2 步:后置代码位于一个单独的程序集中,因为我们需要将其注册到 GAC。我们保持后置代码简单。我们创建了两个 Label 对象并设置了值。需要注意的一个重要点是,我们已经引用了 System.Web.UI
命名空间 DLL 和 Microsoft.SharePoint
命名空间 DLL。另一点需要注意是,该类继承自属于 Microsoft.SharePoint
命名空间的 LayoutsPageBase
类。
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
// need to refer the UI objects of ASP.NET
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
// Need to refer the SharePoint DLL
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
namespace ClassLibrary1
{
// Inherit the behind code from ‘LayoutsPageBase’ class of SharePoint
public partial class _Default : LayoutsPageBase
{
protected Label lblSiteQuestion;
protected Label lblSiteAnswer;
protected override void OnLoad(EventArgs e)
{
lblSiteQuestion.Text = " How can we implement behind code in SharePoint ?";
lblSiteAnswer.Text = " We need to register the behind DLL in GAC";
}
}
}
我们也需要将上述 DLL 注册到 GAC。所以我们需要生成一个强名称并使用 GACUTIL 进行注册。
第 3 步:现在是 ASP.NET 的 UI 部分,即 ASPX 页面。下面的代码片段展示了 ASP.NET UI 的样子。
首先要注意的是,后置代码不被引用为代码后置,而是通过 GAC 公共令牌密钥来引用。为了通过 GAC 密钥引用它,我们需要使用 Assembly
属性。
我们也继承了母版页文件,即 Application.Master
,这样我们就可以拥有一致的外观和感觉。
<!—Refer the sharepoint assembly ->
<%@ Assembly Name="Microsoft.SharePoint,Version=12.0.0.0, Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>
<!—Refer the behind code, Note that the behind code is coded in a different assembly and registered in the GAC ->
<%@ Assembly Name="ClassLibrary1, Version=1.0.0.0, Culture=neutral,PublicKeyToken=af6d081bf267e17e" %>
<!— In order to maintain consistent look and feel we need to inherit from the Application.Master page ->
<%@ Page Language="C#" MasterPageFile="~/_layouts/application.master"
Inherits="ClassLibrary1._Default" EnableViewState="false" EnableViewStateMac="false" %>
在引用了程序集并设置了页面属性后,就可以填充母版页 Application.Master 中定义的占位符内容了。
<asp:Content ID="Main" contentplaceholderid="PlaceHolderMain" runat="server">
<table border="1" cellpadding="4" cellspacing="0" style="font-size:12">
<tr>
<td>Question</td>
<td><b><asp:Label ID="lblSiteQuestion" runat="server" /></b></td>
</tr>
<tr>
<td>Answer</td>
<td><asp:Label ID="lblSiteAnswer" runat="server" /></td>
</tr>
</table>
</asp:Content>
<asp:Content ID="PageTitle" runat="server"
contentplaceholderid="PlaceHolderPageTitle" >
SharePoint Behind code implementation
</asp:Content>
<asp:Content ID="PageTitleInTitleArea" runat="server"
contentplaceholderid="PlaceHolderPageTitleInTitleArea" >
When we want to implement behind code we need to register the same in GAC.
</asp:Content>
注意:不要尝试在 VS.NET IDE 中编译项目。您只能编译类程序集。ASPX 文件您需要稍后粘贴到 '_layout' 目录,即 'C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\LAYOUTS'。
复制 ASPX 文件并将后置代码程序集注册到 GAC 后,您就可以运行并查看效果了。
如果您认为在 SharePoint 中实现后置代码页面很麻烦,请稍等。随着我们前进,您将看到更好的实现方式。其次,与在 ASP.NET 中实现后置代码页面所 incurred 的麻烦相比,我们不能排除其优势。
SharePoint 中功能的概念是什么?
每当我们想到 SharePoint,就想到协作。协作中一个非常需要的功能是按需功能/功能激活。功能使得在 SharePoint 中激活和禁用功能变得更加容易。
关于功能您应该注意的一些要点
- 所有功能都需要复制到“C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\FEATURES\”目录。Microsoft SharePoint 从该目录读取功能。如果您打开该目录,您会找到 SharePoint 预装的功能,如下所示。
- 每个功能将包含两个 XML 文件:“Feature.xml”和“ElementManifest.xml”。
- SharePoint 通过读取 features 文件夹中的功能 XML 文件来识别功能。
- 所有功能都由唯一的 GUID 号标识。
- 功能会发出事件,这些事件可以被捕获以编写自定义代码。这些事件被捕获在一个需要注册到 GAC 的程序集中。
- 总结我们讨论的内容,我们有一个 'feature.xml' 文件,它指向一个捕获功能事件以进行自定义代码的程序集。还有一个 XML 文件定义了这个功能具体做什么。
您能解释一下部署/激活功能的更广泛步骤吗?
为了理解功能概念,让我们将一个简单的应用程序页面,即 SimplePageCodeBehind.aspx,作为功能来部署。这样,当用户激活此功能时,他就可以浏览 SimplePageCodeBehind.aspx。
第 1 步:让我们创建一个项目“SharePointFeature”。您可以在本文附加的源代码中找到。下面是项目结构,包含两个 XML 文件和一个类文件,该类文件将处理四个事件:FeatureInstalled
、FeaturesUnInstalling
、FeatureActivated
和 FeatureDeactivating
。
让我们先来理解这三个文件。
<Feature Id="48DEF2C4-33F9-4885-B0DE-6FE82E9FDCD8"
Title="Go to Custom Pages"
Description="This features enables us to goto Custom Page"
Scope="Web"
Hidden="FALSE"
ImageUrl="menuprofile.gif"
ReceiverAssembly="SharePointFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=af83741e324f585c"
ReceiverClass="SharePointFeature.clsFeatureReceiver"
xmlns="http://schemas.microsoft.com/sharepoint/" >
<ElementManifests>
<ElementManifest Location="ElementManifest.xml" />
</ElementManifests>
</Feature>
要生成新的 GUID,请单击“工具”->“创建 GUID”并单击“新建 GUID”。“工具”菜单可以在 IDE 中找到。我们已经标记了您需要复制并粘贴到 feature.xml 文件中的 GUID 值。
除了功能描述和标题之外,XML 文件中还有两件重要的事情。首先,它指向另一个 XML 文件,其次,它指向一个捕获事件的程序集。
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="SiteActionsToolbar"
GroupId="SiteActions"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="10"
Title="Display Custom Pages"
Description="This links helps to display Custom Page"
ImageUrl="_layouts/SharePoint2/menuprofile.gif">
<UrlAction Url="_layouts/SimplePageCodeBehind.aspx"/>
</CustomAction>
</Elements>
换句话说,ElementManifest.xml 指定了功能的位置以及应该重定向到哪个页面。
我们需要首先引用 SharePoint
命名空间,如下面的代码片段所示。
using System;
using System.Collections.Generic;
using System.Text;
// Refer the SharePoint namespace
using Microsoft.SharePoint;
我们需要实现 SPFeatureReceiver
类并实现所有事件。
namespace SharePointFeature
{
// Inherit from the 'SPFeatureReceiver" class
public class clsFeatureReceiver : SPFeatureReceiver
{
// Implement the four events of SPFeatureReceiver class
public override void FeatureInstalled(SPFeatureReceiverProperties properties){}
public override void FeatureUninstalling(SPFeatureReceiverProperties properties) { }
// This event fires when the feature is activated
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
....
....
....
....
}
// This event fires when the feature is deactivated
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
....
....
....
...
}
}
}
作为示例,在 FeatureActivated
事件中,我们设置了网站的描述和标题。
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
// get the object of SharePoint Web
SPWeb site = (SPWeb)properties.Feature.Parent;
// Set the description ,properties , titile and update the SpWeb object
site.Description = "Click on the SiteActions to See how the custom page display";
site.Properties["OriginalTitle"] = "Display CustomPage";
site.Properties.Update();
site.Title = "This Site now has the custom page display";
site.Update();
}
在 FeatureDeactivating
中,我们恢复了原始的标题和描述。
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
// Get hold of the SharePoint web object and reset back the values
SPWeb site = (SPWeb)properties.Feature.Parent;
site.Description = "Custom Page display is disabled";
site.Title = site.Properties["OriginalTitle"];
site.Update();
}
>cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN
要安装该功能,请使用 STSADM 运行以下命令。请注意,您需要指定相对目录路径而不是 Feature.xml 文件的物理路径。
>stsadm -o installfeature -filename DisplayCustomPage\Feature.xml
为了确保 SharePoint 注册此功能,请在计算机上运行 IISRESET。
现在您可以在“站点操作”菜单中看到您的功能已启用。如果您单击该功能,即“显示自定义页面”,它将重定向到 SimplePageCodeBehind.aspx。
另一点需要注意的是,事件已经触发并设置了代码中描述的标题和描述。
尝试实验并禁用该功能,您将看到标题和描述发生变化。
注意:您可以从文章提供的 Zip 文件中获取功能的源代码。
- Feature.XML:这是最重要的文件,因为它帮助 SharePoint 识别功能。SharePoint 中的所有功能都由 GUID 键标识。
- ElementManifest.XML 文件:此文件实际指定了实现的外观。关于 ElementManiFest.XML 文件,有两点需要注意。自定义操作标签指定了功能将在哪个控件上激活。我们目前针对的控件是
SiteActionsToolBar
。这个工具栏就是您在 SharePoint 门户的右上角看到的那一个。还有一个URLaction
属性指定了重定向到哪个 URL。 - FeatureReceiver.cs:此类监听并实现功能的自定义操作。
- 第 2 步:我们需要在 GAC 中注册编译后的程序集,并在 Feature.XML 文件中提供令牌值。您需要使用 GACUTIL 进行注册。您可以通过浏览到 'c:\Windows\Assembly' 然后查看程序集的属性来获取令牌。
- 第 3 步:将两个 XML 文件,Feature.xml 和 ElementManisfest.xml 复制到 C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\DisplayCustomPage 目录。
- 第 4 步:现在我们需要使用 STSADM.exe 来安装该功能。所以进入 DOS 提示符,并转到 'C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN' 目录。
- 第 5 步:现在单击“站点操作”->“站点设置”->“站点功能”并激活该功能。
我希望该功能仅对管理员显示
如果您只希望管理员查看功能,请将 RequireSiteAdministrator="True"
设置为如下所示的 ElementManifest.XML 文件。
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="SiteActionsToolbar"
GroupId="SiteActions"
RequireSiteAdministrator="True"
Location="Microsoft.SharePoint.StandardMenu"
Sequence="10"
Title="Display Custom Pages"
Description="This links helps to display Custom Page"
ImageUrl="_layouts/SharePoint2/menuprofile.gif">
<UrlAction Url="_layouts/SimplePageCodeBehind.aspx"/>
</CustomAction>
</Elements>
源代码
源代码包含以下内容
- 简单的 SharePoint 后置代码
- 内联 SharePoint 后置代码
- SharePoint 功能代码
您可以在 此处 下载源代码。