众所周知,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", , 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

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

  1. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  2. SharePoint 2013 本地创建解决方案

    在之前的博客<SharePoint 2013本地开发解决方案以及远程调试>中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表, ...

  3. 《SharePoint 2013 应用开发实战》目录

    博客地址:http://blog.csdn.net/FoxDave 第 1 章  1 ◄SharePoint概述►        1 1.1  SharePoint的发展历程 1 1.1.1  Sha ...

  4. SharePoint 2013怎样创建Wiki库

    们使用Wiki页面来分享知识,增进团队合作.下面我将向大家展示SharePoint 2013 Wiki的使用方法.教程我都将以这张Wiki页面(即当前页)为示例. 编辑页面 如要编辑页面,单击顶部Ed ...

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

    1.给站点添加完Napa后,在网站内容里点击Napa,如下图: 2.创建一个新的app,如下图: 3.可以在Napa里添加新的项目,如下图: 4.添加新的文件,可以添加web页面.样式表.脚本,如下图 ...

  6. 开源电影项目源码案例重磅分析,一套代码发布小程序、APP平台多个平台

    uni-app-Video GitHub地址:https://github.com/Tzlibai/uni-app-video 一个优秀的uni-app案例,旨在帮助大家更快的上手uni-app,共同 ...

  7. SharePoint 2013 代码实现自定义的站点模版创建Site Collection

    先需要将自定义的站点模版从网站集转移到Farm中. 找一个自己已经完成配置及设计的网站,在网站设置里面选择另存为模版.要注意的是不是所有的站点类型都有另存为模版的功能. 存完之后可在解决方案库的界面里 ...

  8. SharePoint 2013 开发——开发并部署Provider-hosted APP

    博客地址:http://blog.csdn.net/FoxDave 本篇我们用Visual Studio创建并部署一个SharePoint Provider-hosted应用程序. 打开Visua ...

  9. Sharepoint 2013 多服务器域的目录服务器和搜索服务的配置

    一般而言,大部分的sharepoint的管理工作均可以通过Centrlal Admin完成,可惜这个操作不得不要用powershell. 假如Webfront服务器叫 WebServer 目录服务器叫 ...

随机推荐

  1. Python股票信息抓取(三)

    最近在看mongodb,然后会用了一些最简单的mongodb的操作,然后想着结合股票信息的数据的抓取,然后将数据存储在mongodb中,对于mongo和数据库的最大的区别是,mongo不需要建表,直接 ...

  2. DB2:FETCH FIRST 1 ROWS ONLY

    DB2:FETCH FIRST ROWS ONLY,在Oracle中使用where rownum=1代替 DB2: SELECT INSTORAGENO FROM ( SELECT max(AUDIT ...

  3. IEEEXtreme 10.0 - Mysterious Maze

    这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Mysterious Maze 题目来源 第10届IEEE极限编程大赛 https://www.hacker ...

  4. Rookey.Frame v1.0快速开发平台-用户登录

    上一次介绍的了Rookey.Frame v1.0快速开发平台的整体功能,接下来会对各个功能点进行解析说明,今天给大家介绍下系统登录功能. 用户登录 系统中基本上所有功能页面都是从后台代码拼接后返回的, ...

  5. 【C#】字段总结

    前沿: 字段(field)是一种数据成员,其中容纳了一个值类型的实例或者一个引用类型的引用. 正文: CLR支持类型(静态)字段和实例(非静态)字段.对于类型字段,用于容纳字段数据的动态内存是在类型对 ...

  6. ref:ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3)

    ThinkPHP Builder.php SQL注入漏洞(<= 3.2.3) ref:https://www.jianshu.com/p/18d06277161e TimeSHU 2018.04 ...

  7. sublime 字体设置

    安装完成sublime之后,推荐一种比较舒服的字体设置,个人习惯.配置步骤如下,打开sublime-->Preferences-->Settings - User 2.复制以下内容粘贴,并 ...

  8. Redux学习之我对于其工作流程的理解和实践

      目录 1 工作流程图 2 各部位职责 3 Demo   1 工作流程图   2 各部位职责 我在理解这个流程图的时候,采用的是一种容易记住的办法,并且贴切实际工作职责. 我们可以把整个Redux工 ...

  9. bzoj1004 purfer 序列

    之前没不知道这个数列. 一个purfer序列与一棵树一一对应. 长度为n的purfer的集合: A = { s | s is a sequence and a∈[1,len(s)+2] 一个直接的结论 ...

  10. Windows下Apache2.2+PHP5安装步骤

    Windows下Apache2.2+PHP5安装 初学者在学习PHP的时候可能都会遇到安装Apache和PHP不成功的问题,于是很多开发者便选择了集成包,一键安装好Apache+PHP+MySQL.但 ...