SharePoint 2013 App 开发—Auto Hosted 方式
Auto Hosted 方式,自动使用Windows Azure来作为host,这种模式将App 发布到Office 365上的SharePoint Developer Site上。这种方式可以不用花费更大力气在本机安装SharePoint 环境,Office 365开发环境是免费的,可以在本地开发机器上的VS 2012中开发SharePoint 2013 App,然后发布到云端的Office 365 提供的开发环境中。
使用Office 365,建议使用IE 10 及以上。
具体的过程如下:
一、注册Office 365 Developer Site 账号
可以通过这个链接地址打开Office 365 的注册入口,点击注册。

完成注册后,可以进入到Office 365的主页面,看到以下页面:

在“管理员”下拉菜单中,切换到SharePoint管理中心,这里可以创建SharePoint 开发人员站点,Office 365在注册成功后,会默认创建了一个。进入到开发人员网站,可以点击内容区的“构建应用”的超链接,下面会通过开发人员网站来构建App。

二、安装和部署“NaPa” Office 365 开发工具
“NaPa” Office 365 开发工具是构建于浏览器基础上的,可以不需要安装其他开发工具,快捷地构建您的 SharePoint 或Office web 应用程序,并且可以下载用这个工具创建的Solution,然后使用Visual Studio打开来修改和发布。
1、在开发人员网站中,点击“构建应用程序”,进入到NaPa 的管理页面,选择SharePoint 选项,点击“Add New Project”。
在这里已经安装了“NaPa” office 365 Developer Tools,如果之前没有安装的话,则会提醒你安装这个工具,按照提示安装就可以了。也单独下载安装。

2、创建成功后,会在浏览器中打开创建的App 项目,包括创建好的一个模板,里面有CSS、Image、Page、Script等文件,这里只能使用Client Object Model 或Rest API访问SharePoint 的资源,具体的代码可以参见App.js 文件,如下图所示:

3、在打开项目的界面,左边一竖排工具按钮、鼠标放上去会有相应提示,当修改完就可以点击Run Project 运行看到效果了。
运行过程中,包含三个过程:

运行效果图:

三、在Visual Studio 2012 中操作
在“NaPa”中创建的App 项目,也可以在Visual Studio 2012 中打开来进行操作。
1、点击左边工具栏中“Open in Visual Studio”图标
,会弹出一个Project Launcher的一个可执行文件的对话框,选择Run 来运行。

2、如果没有安装Office Developer Tools for Visual Studio 2012 ,则会弹出这个对话框,提示你安装,否则直接在VS 中打开了。


3、在Visual Studio 2012 中打开时,需要输入Office 365 的帐号密码成功打开后,就可以在VS 中编辑了。部署发布时,会发布到Office 365 的开发网站上。

四、部署和发布
部署运行,都可以正常进行,发布的时候需要满足它的验证策略,列出了一大堆,有空再研究下。
Validation policies for the apps submitted to the Office Store
SharePoint 2013 App 开发—Auto Hosted 方式的更多相关文章
- SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
上个示例(SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API))是基于JavaScript,运行在web browser内去访问REST AP ...
- SharePoint 2013 APP 开发示例 (二)获取用户信息
SharePoint 2013 APP 开发示例 (二)获取用户信息 这个示例里,我们将演示如何获取用户信息: 1. 打开 Visual Studio 2012. 2. 创建一个新的 SharePo ...
- SharePoint 2013 APP 开发示例 (五)跨域访问 Web Service (REST API)
虽然 JQuery 也能通过授权header实现跨域, 但SharePoint 提供了更简单的方法,它被实现在SP.RequestExecutor里 .它能访问跨域的服务包括REST AP ...
- SharePoint 2013 APP 开发示例 系列
SharePoint 2013 APP 安全: SharePoint 2013 APP 开发示例 (一)List 读写 SharePoint 2013 APP 开发示例 (二)获取用户信息 Share ...
- SharePoint 2013 APP 开发示例 (四)JQuery访问REST
这个示例里,我们将用JQuery AJAX去发送一个 REST请求,并查看返回结果.为了让我们更好地理解REST 接口,我们将添加一个输入框让用户可以指定REST的URL, 这将让我们尝试着用构造的U ...
- SharePoint 2013 APP 开发示例 (三)使用远程的web资源
在这个示例里我们将详细介绍 TokenHelper 类, 我们将看到它是怎么简单地从远程web站点访问SharePoint的.我们还将取到它的一些值.这将帮助我们理解连接是怎么被构造的,同时也方便我们 ...
- SharePoint 2013 APP 开发示例 (一)List 读写
在这个示例里,我们将创建一个页面测试 SharePoint APP的权限.这个页面有二个按钮,一个从documents里读数据,一个往documents里写数据: 1. 打开Visual Studio ...
- SharePoint 2013 App 开发—SharePoint Hosted方式,
这篇文章会依据简单的Demo,介绍一下SharePoint Hosted 方式开发App 的步骤和说明. 这种方式的环境相比较Office 365 要麻烦一些,如果不可以连接到Internet 或者还 ...
- SharePoint 2013 App 开发—App开发概述
基于安全性的考虑,SharePoint App 不能像其它两种方式一样,直接使用安全性更高的服务端代码的API.Javascript 扮演极为重要的角色,在SharePoint App中与ShareP ...
随机推荐
- Hibernate异常:identifier of an instance of 错误
今天写项目时,在使用hibernate封装的插入方法时,由于需要同时保存多个数据,导致出现identifier of an instance of 如下代码 :(由于最大最小分数不同所以需要插入两条数 ...
- windows系统下的两个批处理命令
启动应用:***.exe 关闭应用:taskkill /f /im ***.exe 保存为.bat文件
- 洛谷P3372线段树1
难以平复鸡冻的心情,虽然可能在大佬眼里这是水题,但对蒟蒻的我来说这是个巨大的突破(谢谢我最亲爱的lp陪我写完,给我力量).网上关于线段树的题解都很玄学,包括李煜东的<算法竞赛进阶指南>中的 ...
- 【贪心】bzoj1577: [Usaco2009 Feb]庙会捷运Fair Shuttle
一类经典的线段贪心 Description 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i ...
- 基于Centos7.2使用Cobbler工具定制化批量安装Centos7.2系统
1.1 定制Centos_7_x86_64.ks文件内容 # Cobbler for Kickstart Configurator for CentOS 7.2.1511 by Wolf_Dre ...
- windows 2008r2+php5.6.28环境搭建详细过程
安装IIS7 安装php 网站验证 安装IIS7 1.打开服务器管理器(开始-计算机-右键-管理-也可以打开),添加角色 直接下一步 勾选Web服务器(IIS),下一步,有个注意事项继续下一步(这里我 ...
- 多线程辅助类之CountDownLatch(三)
CountDownLatch信号灯是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待.它可以实现多线程的同步互斥功能,和wait和notify方法实现功能类似,具体 ...
- GoF23种设计模式之结构型模式之代理模式
一.概述 为其他对象提供一种代理以控制对这个对象的访问. 二.适用性 1.远程代理(RemoteProxy):为一个对象在不同的地址空间土工局部代表. 2.虚代理(VirtualProxy):根据需要 ...
- Python基础-面向对象初识--类
什么是类 具有相似功能和属性的一类实物 什么是对象 类的具体体现,具体到一个 面向对象的优势 1.类是一组相似功能的集合,使组织结构更加清晰和规范化 2.研究面向对象要有上帝的思维,用面向对象设计程序 ...
- leetcode-8-pointer
void deleteNode(ListNode* node) { *node = *node->next; }