65.9K
CodeProject 正在变化。 阅读更多。
Home

SharePoint 快速入门 FAQ 第二部分

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.92/5 (51投票s)

2008年12月10日

CPOL

15分钟阅读

viewsIcon

261157

downloadIcon

1082

在上一篇 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 文件和一个类文件,该类文件将处理四个事件:FeatureInstalledFeaturesUnInstallingFeatureActivatedFeatureDeactivating

让我们先来理解这三个文件。

<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.xmlElementManisfest.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 功能代码

您可以在 此处 下载源代码。

先决条件

© . All rights reserved.