• SharePoint 2010 创建简单的网站定义(Site Definition)


     介绍任何一个新的产品和技术,亦或者一个用法都要经过一个标准的流程进行认知:是什么,为什么,怎么做.

     

     

    网站定义是什么?,微软官方对网站定义(Site Definition)的解释:

    Contains a server-side collection of files that defines the structure of one or more site templates.

    从定以我们可以看出,网站定义就是几个集合,这个集合包含aspx页面和一些XML文件, 这些组合在一起就定义了一个或者多个SharePoint 站点的结构.

    为什么用网站定义? 我们同样可以通过Site Template 去定义SharePoint 站点的模板,而且这个方法更直接快速, 那为什么我们还要花大把的时间去创建一个定义文件呢?这就需要你来了解下网站定义和网站模板的优缺点.

    这里有详细的文章进行介绍:http://blogs.msdn.com/b/brianwilson/archive/2008/07/13/site-definitions-versus-site-templates-and-deciding-on-the-correct-customization-approach.aspx 

     

    怎样创建网站定义呢? 如果你根据为什么介绍的理由选择了网站定义的方式,那你就需要了解下面的内容.

    下面的内容介绍如何创建一个简单的网站定义, 之所以说简单, 是因为这个定义的文件里,包含了最少的站点元素和站点内容.

     

    一个网站定义至少包含以下内容:

    一个webtemp.xml (%COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\12\TEMPLATE\1033\XML ),可以包含一个或者多个站点模板.里面定义了站点的名称,图标, 描述.

    一个单独的文件目录(%COMMONPROGRAMFILES%\Microsoft Shared\web server extensions \12\TEMPLATE\SiteTemplates ) : 包含这个网站定义的所有文件, 列表,feature等等.

     

    了解了网站定义需要包含的内容,我们就开始着手创建一个简单的网站定义:

    打开Visual Studio 2010, 创建一个Site Definition 项目并命名为Demo.SiteDefinition. 选择"deploy as farm solution". 并点击完成. 项目目录如下:

     

    我们只创建一个简单的网站定义, 因此我们不对项目做任何更改, 但要分析下项目下的几个文件.

    1. Webtemp_*.xml 文件, 这个文件定义了当前网站定义下有多少个网站模板, 每个模板的名字,描述等. 默认只包含一个站点模板.

    首先改掉模版的名字为"SDDemo", 为了不与SharePoint 自带的网站定义冲突,我们把ID改为大于10000的数字, 比如10005

    Title: Demo 1

    Description: this is a simple site definition example.

    1. Onet.xml

    Lists:站点默认包含的列表, 比如打开Team site 网站定义, 你可以看到默认的列表有Shared Document, Task list, calendar, LINKS等默认列表, 我们只简单添加一个列表

     <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" />
          </Lists>

     

    SiteFeatures: 网站集应用

    WebFeatures: 站点应用

    点击保存, 分别把文件拷到相应的目录, 当然也可以同WSP 直接部署.

     

    看下效果:

    如果你用自己创建的site definition 创建站点时报一下错误"

    "Failed to instantiate file "default.master" from module "DefaultMasterPage": Source path "default.master" not found."

     

    请确认template name属性是否匹配你Folder的名字.并须一致.

     <Template Name="Demo.SiteDefinition" ID="10005">.

     

  • 相关阅读:
    spring揭秘读书笔记----spring的ioc容器之BeanFactory
    spring启动加载过程源码分析
    java线程数过高原因分析
    spring揭秘读书笔记----ioc的基本概念
    git merge rebase的区别及应用场景
    spring实现定时任务
    jetty.xml解析
    Hackthebox--------irked
    CTF之信息泄漏
    CTF web题型解题技巧
  • 原文地址:https://www.cnblogs.com/splover/p/2174809.html
Copyright © 2020-2023  润新知