SharePoint 2013 代码创建应用程序目录(App Catalog)

  众所周知,SharePoint App是2013版本的一大特色,那么,关于App的分发有几种方式呢?SharePoint给我们提供了两种方式,一种是上载到SharePoint应用商店,另一种是在本地SharePoint环境中创建应用程序目录,为本地用户提供App的分发。

  SharePoint服务器场中可以有多个应用程序目录,每个目录针对服务器场中的一个Web 应用程序。若要为Web应用程序配置应用程序目录,只需提供要用于应用程序目录网站的网站集管理员的名称。创建应用程序目录后,网站集管理员可将 SharePoint相关应用程序上载到该目录。

(SharePoint应用程序商店和应用程序目录对比图)

  从上图中,我们可以看到SharePoint商店和应用程序目录对于本地IT的关系,SharePoint商店不是本文要介绍的,我们进入正题,介绍应用程序目录。SharePoint的应用程序目录,是部署在每个应用程序下的一个SPCatelog类型的站点,我们可以在管理中心的UI中根据向导创建,也可以使用代码创建一个SPCatelog类型的站点,用PowerShell关联应用程序,这是我们要介绍的内容。

  一开始,我们简单介绍了应用程序目录,以及和SharePoint商店的关系和对比,下面我们介绍如何创建应用程序目录。两种方式:管理中心UI和代码创建,前者就是一系列截图演示,后者才是重点。

一、管理中心通过界面创建

  1、打开管理中心,在左侧导航选择应用程序,然后点击管理应用程序目录;

  2、可以选择现有的应用程序目录网站,或者创建新的应用程序目录网站;

  3、如果已存在SPAppCateLog类型的站点,输入URL地址点击确定即可完成关联;如果不是SPAppCateLog类型的站点,是不能设置为应用程序目录的,如下图报错;

  4、走向导创建应用程序目录,其实就是创建一个SPAppCateLog类型的站点(SPSite),和创建网站集的过程很相似;

  5、创建完毕,如下图,我们就可以通过创建的应用程序目录,上载、分发App了:

  6、查看应用程序目录的网站内容,如下图:

  7、若要规划应用程序目录设置,请确定以下几点:

  Ø哪些 Web 应用程序将需要应用程序目录。

  此决定与有关在 SharePoint 环境中支持 SharePoint 相关应用程序的决定是一起做出的。如果您的服务器场中对于不同的 Web 应用程序有不同类型的网站(Intranet、Extranet 和 Internet),则可以确定是否需要为这些 Web 应用程序各配置一个应用程序目录。

  Ø作为应用程序目录网站集管理员添加的人员。

  应用程序目录是 Web 应用程序中的一个网站,只能通过管理中心中的链接或使用 URL 直接访问该网站。

二、代码创建AppCatelog,PowerShell关联

  1、其实没什么太多可说的,AppCatelog就是一个SPAppCateLog类型的站点,上面也已经介绍过了,如下代码,创建SPAppCateLog类型的SPSite;

SPWebApplicationBuilder webappbuilder = new SPWebApplicationBuilder(SPFarm.Local);
SPWebService webs = new SPWebService("webs", SPFarm.Local);
SPWebApplicationCollection webappcoll = new SPWebApplicationCollection(webs);
Guid gu = new Guid("693d5e1b-91c0-4829-888e-f67c43afbc50");
SPWebApplication webapp = webappcoll[gu];
SPSite site = webapp.Sites.Add("/sites/spappcatelog", "title", "description", 2052, SPWebTemplate.WebTemplate.AppCatalog.ToString(), "domain\\user", "测试用户", user@domain.com);
webapp.Update();

  Guid是我要使用的应用程序的ID,当然可以使用应用程序的名称;2052是中文的意思,如果英文应该是1033;模板类型虽然我是读取的,但是输出看了一眼,就是SPCatelog,然后就是网站的管理员,基本就这么几个参数。

2、创建应用程序目录,PowerShell命令:

Update-SPAppCatalogConfiguration -Site http://url -Force:$true -SkipWebTemplateChecking:$true

  PowerShell命令作用是,把改站点设置为所在应用程序的应用程序目录,所以不需要指定应用程序,即可。在SharePoint PowerShell中执行,即可。

3、PowerShell封装的C#方法,如下:

public bool UpdateSPAppCatalog(string siteurl)
{
bool myvalue = true;
    try
    {
        PowerShell ps = PowerShell.Create();
        ps.AddScript("Add-PsSnapin \"Microsoft.SharePoint.PowerShell\"");
        ps.AddScript("Set-ExecutionPolicy -ExecutionPolicy \"Unrestricted\" -Force");
        ps.AddScript("Update-SPAppCatalogConfiguration -Site " + siteurl + " -Force:$true -SkipWebTemplateChecking:$true");
        ps.Invoke<string>();
    }
    catch
    {
        myvalue = false;
    }
    return myvalue;
}

  因为PowerShell默认执行的是Windows的PowerShell,所以需要Add-PsSnapin一下SharePoint的引用(Microsoft.SharePoint.PowerShell)才能执行SharePoint的PowerShell。

  到此为止,应用程序目录C#代码创建已经结束了!

三、弦外之音

画外音

  我用代码创建AppCatelog的初衷,是想封装成WebService,然后给程序调用,然后发现封装完毕WebService了,但是调用的时候没有操作PowerShell的权限,后来查了下资料,发现有人可以封装为COM+组件,但是和我的应用场景不太适合,也就没再弄下去,所以介绍到这里,希望能给需要的人,一点点帮助。

特别感谢

  在做这段东西的时候,特别感谢CSDN论坛的天涯海角提供的思路和博客园的忘忧草提供的PowerShell脚本参考!技术在于分享,有分享、有讨论才有进步。谢谢!

使用PowerShell脚本创建SPSite

http://msdn.microsoft.com/zh-cn/magazine/ff607937.aspx

App Management Service cmdlets in SharePoint 2013

http://technet.microsoft.com/en-us/library/jj219772(office.15)

规划 SharePoint 2013 相关应用程序

http://technet.microsoft.com/zh-cn/library/fp161237

时间: 2024-11-13 06:46:02

SharePoint 2013 代码创建应用程序目录(App Catalog)的相关文章

SharePoint 2013中高信任度应用程序的疑难解答秘诀

嗨,我是一位应用程序设计人员,我喜欢进行开发,但是,老实说 - 如果我需要追踪一个以上有关新 SharePoint 应用程序的「Token 的发行者不是受信任发行者」问题,那么我可能会对着计算机大声嘶吼.为了尝试协助您保护您的声音 (和理智),我将从此处列出的事项列表开始 (这是我在遇到此问题时所查看的清单).当我发现引发此问题和可解决该问题之令人兴奋的新方法时,就会更新此处的文章,并在下方掷出「已更新!」的字样. 请务必记住,当我说「高信任度应用程序」时,表示您并未使用 ACS 做为 Shar

如何在SharePoint 2013中创建WCF REST Service

SharePoint 2013为开发者提供了丰富的REST API,方便了我们在客户端操作List中的数据.当然我们也可以在SharePoint 2013中创建自定义的REST Service,比如通过REST Service去操作数据库.本篇博客将介绍怎样在SharePoint 2013创建WCF REST Service. SharePoint 中 创建WCF Service 因为无法在SharePoint 2013 Project中添加WCF Service Template,所以预先创建

SharePoint 2013 本地创建解决方案

在之前的博客<SharePoint 2013本地开发解决方案以及远程调试>中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表,还不能做到本地创建. 后来,仔细看了一下注册表的结构,思考了一下可能造成这样问题的原因,经过几次尝试,发现在本地创建SharePoint解决方案,也是可行的.但是,并不是所有开发模板,都可以本地创建,例如事件触发器.列表.工作流等,创建过程必须和SharePoint进行交互的模板,我们无法在本地创建. 经过测

Office 365 - SharePoint 2013 Online 之应用程序开发

1.给站点添加完Napa后,在网站内容里点击Napa,如下图: 2.创建一个新的app,如下图: 3.可以在Napa里添加新的项目,如下图: 4.添加新的文件,可以添加web页面.样式表.脚本,如下图: 5.可以设置Napa,如下图: 6.设置用Visual C#语言,这样vs打开可以用C#,如下图: 7.可以点击左侧菜单,Open in Visual Studio,如下图: 8.弹出菜单,选择Visual C#,如下图: 9.可能会弹出菜单,安装Web Platform 5.0,如下图: 10

C#代码创建WPF程序,增加按钮失败。新手求解答~

问题描述 新手一枚,最简单的增加按钮单击退出程序失败.程序运行后只有空白窗体无按钮,求助.下面是程序namespacee4_1{///<summary>///MainWindow.xaml的交互逻辑///</summary>partialclassMainWindow:Window{privateButtonbutton1=newButton();publicMainWindow(){Title="noVS2008";WindowStartupLocation=

SharePoint 2013 Farm的逻辑体系结构图解

前篇文章分析了SharePoint 2013 的物理拓扑结构.物理拓扑分为3层(2层),详情参见<SharePoint 2013 Farm (多层服务器)安装指南--Least Privilege>,这篇接着脚步,继续走入SharePoint 2013的世界,分析SharePoint 2013 Farm 逻辑体系结构,首先需要有几个基本概念需要了解. Web Application Web Application是由SharePoint 2013产品创建(不能直接在IIS里创建),是一个IIS

SharePoint 2013 App 示例之图片墙

应用程序实质上是 Web 应用程序.如果您知道如何生成 Web 应用程序,则您就知道如何生成 SharePoint 相关应用程序.您可以使用任何语言,如 HTML.JavaScript.PHP 或 .NET,并且您可以使用喜爱的 Web 开发工具(包括 Microsoft Visual Studio 2012和基于 Web 的新工具 "Napa"Office 365 开发工具)以生成 SharePoint 相关应用程序. 云应用程序模型支持分层的体系结构,在此体系结构中,可以将应用程序

SharePoint 2013 搭建app本地开发环境

原文:SharePoint 2013 搭建app本地开发环境 使用SharePoint App,如果要通过应用程序目录分发 SharePoint 相关应用程序,如具有完全控制权限的 SharePoint 相关应用程序(无法部署到 Office 365 网站),则将需要使用本地计算机上完整安装的SharePoint 2013.我们在本文中提供了用于设置SharePoint 2013 的本地安装以及开始开发SharePoint 相关应用程序的步骤. 一.配置前准备 1. 请确定已经安装好ShareP

SharePoint 2013 App Remote Event Receivers

当我们在使用App的时候,就会发现一些问题,比如那些网站部署.更新或者卸载了,我们很关心我们的App是否有人用,这就需要远程事件接收器了. 1.在我们的测试App的解决方案上选中鼠标,按F4弹出属性,选中我们需要的处理应用程序,选中True:同时,VS会自动创建一个解决方案,让我们在里面写远程事件接收器的相关代码. 2.在创建的远程事件接收器的解决方案中,打开svc的代码,然后添加我们的代码(附后),判断如果触发的是安装App的事件,在一个AppInstallLog的列表中插入一条安装记录. 3