简单。
SPMeta2允许几种类型的模型。
的 网站模型 强> 反映并包含可在站点级别部署的所有人工制品 - 网站功能,自定义操作,网站字段,内容类型等。 站点模型应该部署在“站点模型主机”中。
的 网络模型 强> 反映并包含可在Web级别部署的所有文物 - 网页功能,列表,列表视图等。 Web模型应该部署在“Web模型主机”中。
使用CSOM提供时,应使用SiteModelHost.FromClientContext(context)和WebModelHost.FromClientContext(context)来相应地推送站点或Web模型。
这是站点模型的工作代码。 我们删除了列表(它们属于Web)并使用SiteModelHost。
var siteModel = SPMeta2Model .NewSiteModel(site => { site .WithFields(fields => { fields .AddField(FieldModels.Contact) .AddField(FieldModels.Details); }) .WithContentTypes(contentTypes => { contentTypes .AddContentType(ContentTypeModels.CustomItem) .AddContentType(ContentTypeModels.CustomDocument); }); }); using (var context = new ClientContext(targetSite)) { var povisionService = new CSOMProvisionService(); povisionService.DeployModel(SiteModelHost.FromClientContext(context), siteModel); }
这里的网络模型。 我们删除了字段/内容类型,并仅使用列表和WebModelHost。
var webModel = SPMeta2Model .NewWebModel(web => { web .WithLists(lists => { lists .AddList(ListModels.TestLibrary) .AddList(ListModels.TestList) .AddList(ListModels.TestLinksList); }); }); using (var context = new ClientContext(targetSite)) { var povisionService = new CSOMProvisionService(); povisionService.DeployModel(WebModelHost.FromClientContext(context), webModel); }
最后,这里有几个入门链接:
github的示例项目 https://github.com/SubPointSolutions/spmeta2.contoso
SPMeta2 Yammer集团 http://yammer.com/spmeta2feedback
一些文档(正在进行中) http://docs.subpointsolutions.com/spmeta2
让我知道它是怎么回事,如果你需要进一步的帮助。 干杯!