这篇文章会依据简单的Demo,介绍一下SharePoint Hosted 方式开发App 的步骤和说明。

  这种方式的环境相比较Office 365 要麻烦一些,如果不可以连接到Internet 或者还想进行SharePoint 的其他的用途的话,有必要在本地安装一个这样的环境。

  前面说了,这种方式开发的话,需要安装SharePoint 2013,至于怎么安装,网上这方面的教程很多,这里不赘述了。

  接下来,是做一些准备工作,安装Visual Studio 2012,安装Microsoft Office Developer Tools forVisual Studio。现在Visual Studio 2013 出来了,对于SharePoint 2013 的开发很方便, 我这里用Visual Studio 2013 体验了一把。

  如果没有安装Office Developer Tools的话,VS 2012 中找不到SharePoint App 项目模板的,可以通过以下地址下载安装。

  http://www.microsoft.com/web/handlers/WebPI.ashx?command=GetInstallerRedirect&appid=OfficeToolsForVS2012GA

一、创建和部署 Sharepoint 承载的应用程序

  首先,确定承载的应用程序的独立域名。

  我们可以使用类似这样的域名apps.contoso.com ,鉴于众多的域名,可以在DNS 管理器中,添加一个泛域名解析*.contoso.com,指向SharePoint IP地址。这样所有以contoso.com结尾的域名都指向这个IP 地址。

  其次,配置创建独立的App托管应用程序域。

  1. 确保 spadmin 和 sptimer 服务正在运行。  
  2.作为管理员运行 SharePoint Management Shell 并键入以下命令以创建独立的应用程序域。
  3.通过在 SharePoint Management Shell 中键入以下命令来确保 SPSubscriptionSettingsService 和 AppManagementServiceInstance 服务正在运行。

  4.通过在 SharePoint Management Shell 中键入以下命令来验证 SPSubscriptionSettingsService 和 AppManagementServiceInstance 服务是否正在运行。输出将指明每项服务是否处于联机状态。

  5.您必须指定运行 SPSubscriptionService 和 AppManagementServiceInstance 服务实例将使用的帐户。此帐户必须是 SPManagedAccount。通过在 SharePoint Management Shell 中键入以下命令,您可以创建 SPManagedAccount(将会提示您输入帐户域\用户和密码)。

  6.通过在 SharePoint Management Shell 中键入以下代码,为 SPSubscriptionService 和 AppManagementServiceInstance 服务指定帐户、应用程序池和数据库设置。如果在上一步骤中创建了 SPManagedAccount,请在此处使用该帐户名称。

  7.通过在 SharePoint Management Shell 中键入以下代码来指定租户名称。

  以域名apps.contoso.com 为例,执行以下Powershell 的脚本。 

  

//确保 spadmin 和 sptimer 服务正在运行
net start spadminv4
net start sptimerv4 // 设置应用程序域为“apps.contoso.com”
$appHostDomain = "apps.contoso.com"
Set-SPAppDomain $appHostDomain // 启动“应用程序管理服务”和“Microsoft SharePoint Foudation Subscription Settings Service”服务
$appMgmtSvcInstance = Get-SPServiceInstance | Where-Object { $_.GetType().Name -eq "AppManagementServiceInstance" }
if ($appMgmtSvcInstance.Status -ne "Online") { Start-SPServiceInstance -Identity $appMgmtSvcInstance }
$appSubSettingSvcInstance = Get-SPServiceInstance | Where-Object { $_.GetType().Name -eq "SPSubscriptionSettingsServiceInstance"}
if ($appSubSettingSvcInstance.Status -ne "Online") { Start-SPServiceInstance -Identity $appSubSettingSvcInstance } // 创建“Settings Service Application”和“应用程序管理服务”服务应用程序
$appPoolServiceApps = Get-SPServiceApplicationPool -Identity "SharePoint Web Services Default"
$appSubSvc = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $appPoolServiceApps -Name "Settings Service Application" -DatabaseName SettingsServiceDB
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $appSubSvc
$appAppSvc = New-SPAppManagementServiceApplication -ApplicationPool $appPoolServiceApps -Name "应用程序管理服务" -DatabaseName AppServiceDB
$proxyAppSvc = New-SPAppManagementServiceApplicationProxy -ServiceApplication $appAppSvc // 设置应用程序前缀
Set-SPAppSiteSubscriptionName -Name "app" -Confirm:$false

二、 使用Visual Studio 进行App 开发  

  这些准备完之后,就可以开发了,按步就搬的介绍下:

  1、创建SharePoint App项目 

  启动Visual Studio 2013 ,创建项目,选择SharePoint-hosted app 模板,

  

  填好项目名称后,宿主方式选择 “SharePoint-hosted”,网站地址填写SharePoint 2013 的网站地址,然后点击完成,即可创建

  

  

  2、修改AppManifest.xml,在窗口上选择权限选项卡,勾选“允许应用程序对SharePoint调用”,范围选择“Web”,权限选择“Read”,然后保存。

  

  3、修改default.aspx 页面,在<PlaceHolderMain>标签内插入一个按钮的Html 代码  

<div>
<button id="btnCount">Get count of lists in web</button>
</div>
<div id="divMsg">
</div>

  4、修改App.js,修改代码如下

  

三、发布和部署App

  1、在发布之前需要先到管理中心新建app catalog。

  进入管理中心—〉APPs—〉管理应用程序目录(Manage App Catalog)—〉创建App网站集  

  2、部署App项目

  右击项目名称,选择部署,或者F5进行部署和运行。在跳出的对话框选择“信任它”以对App进行授权访问。

  3、添加App到网站

  登陆SharePoint 2013网站,选择设置菜单里“添加应用”,点击app进行安装。

  4、查看并效果演示

  点击Site contents,点击刚刚安装的app,查看App 首页演示效果。

SharePoint 2013 App 开发—SharePoint Hosted方式,的更多相关文章

  1. SharePoint 2013 App 开发—Auto Hosted 方式

    Auto Hosted 方式,自动使用Windows Azure来作为host,这种模式将App 发布到Office 365上的SharePoint Developer Site上.这种方式可以不用花 ...

  2. SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)

    上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...

  3. SharePoint 2013 APP 开发示例 (二)获取用户信息

    SharePoint 2013 APP 开发示例 (二)获取用户信息 这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的  SharePo ...

  4. SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API)

          虽然 JQuery 也能通过授权header实现跨域, 但SharePoint 提供了更简单的方法,它被实现在SP.RequestExecutor里 .它能访问跨域的服务包括REST AP ...

  5. SharePoint 2013 APP 开发示例 系列

    SharePoint 2013 APP 安全: SharePoint 2013 APP 开发示例 (一)List 读写 SharePoint 2013 APP 开发示例 (二)获取用户信息 Share ...

  6. SharePoint 2013 APP 开发示例 (四)JQuery访问REST

    这个示例里,我们将用JQuery AJAX去发送一个 REST请求,并查看返回结果.为了让我们更好地理解REST 接口,我们将添加一个输入框让用户可以指定REST的URL, 这将让我们尝试着用构造的U ...

  7. SharePoint 2013 APP 开发示例 (三)使用远程的web资源

    在这个示例里我们将详细介绍 TokenHelper 类, 我们将看到它是怎么简单地从远程web站点访问SharePoint的.我们还将取到它的一些值.这将帮助我们理解连接是怎么被构造的,同时也方便我们 ...

  8. SharePoint 2013 APP 开发示例 (一)List 读写

    在这个示例里,我们将创建一个页面测试 SharePoint APP的权限.这个页面有二个按钮,一个从documents里读数据,一个往documents里写数据: 1. 打开Visual Studio ...

  9. SharePoint 2013 App 开发—App开发概述

    基于安全性的考虑,SharePoint App 不能像其它两种方式一样,直接使用安全性更高的服务端代码的API.Javascript 扮演极为重要的角色,在SharePoint App中与ShareP ...

随机推荐

  1. 多线程编程之pthread线程深入理解

    不同的平台和操作系统上 进程和线程的实现机制不完全一致  但是一般来说线程栈都是独立的 只要得到地址就可以相互访问       Pthread是 POSIX threads 的简称,是POSIX的线程 ...

  2. OI杂记

    从今天开始记录一下为数不多天的OI历程 8.25 上 今天举行了难得的五校联考,模拟noip,题目的解压密码竟然是$aKnoIp2o18$,对你没有看错!!! 7:50老师?啊啊啊啊,收不到题目啊,还 ...

  3. 【计数】hdu5921Binary Indexed Tree

    二进制拆位计算贡献 题目描述 树状数组是一种常用的数据结构,下面是树状数组用于给区间 [1,x] 内的数加 t 的代码: void add(int x,int t){ for (int i=x;i;i ...

  4. pandas中数据聚合【重点】

    数据聚合 数据聚合是数据处理的最后一步,通常是要使每一个数组生成一个单一的数值. 数据分类处理: 分组:先把数据分为几组 用函数处理:为不同组的数据应用不同的函数以转换数据 合并:把不同组得到的结果合 ...

  5. sphinx关键字套红

    sphinx定义搜索结果,搜索的内容着重显示,可以使用下面代码 <?php /** * Created by PhpStorm. * User: pc00001 * Date: 2015/4/1 ...

  6. EditPlus 比较完整的快捷键记录

    FileFtpUpload Ctrl+Shift+S 上传文件到FTP 服务器 FileNew Ctrl+N 新建普通的文本文档 FileNewHtml Ctrl+Shift+N 创建一个空白的 HT ...

  7. Spring Cloud构建微服务架构(三)消息总线

     注:此文不适合0基础学习者直接阅读,请先完整的将作者关于微服务的博文全部阅读一遍,如果还有疑问,可以再来阅读此文,地址:http://blog.csdn.net/sosfnima/article/d ...

  8. CF1029C Maximal Intersection

    https://www.luogu.org/problem/show?pid=CF1029C #include<bits/stdc++.h> using namespace std ; # ...

  9. POJ - 2250 Compromise (LCS打印序列)

    题意:给你两个单词序列,求出他们的最长公共子序列. 多组数据输入,单词序列长度<=100,单词长度<=30 因为所有组成LCS的单词都是通过 a[i] == b[j] 更新的. 打印序列的 ...

  10. Git for Windows 工具的使用(二)

    Git分支  当一个人开发功能A而另一个人开发功能B,之后代码进行整合的时候,使代码既有功能A也有功能B.在Git中,Git给了我们分支的概念. 分支可以使用我们快速的开发协作,并且快速的合并. 分支 ...