SharePoint 2013 开发——开发并部署第一个APP

??博客地址:http://blog.csdn.net/FoxDave

本篇我们开始对开发APP应用程序进行了解。

本篇基于本地SharePoint环境(如果是Office 365的话会方便许多),需要配置一下APP的环境,具体参照霖雨大神的Blog

开发APP的第一步,创建一个开发者网站集,操作方法跟我们创建其他的网站集几乎一样,选择好开发者网站的模版即可,我将在我的81端口下的Web应用程序下创建。

在管理中心选择应用程序管理->创建网站集,选择81端口下的Web应用程序,模版选择开发人员网站,点击创建。

接下来我们开始创建我们第一个APP,是的,Hello World,它没有什么实际的功能所以没有Bug,只是让我们对整个过程有个大致地了解和掌握。

打开Visual Studio 2015 RC(新装的系统,所以VS也安装了最新的版本,感受感受),新建项目,选择Office/SharePoint分类下的应用程序,选择SharePoint应用程序进行创建。

点击确定按钮之后,在弹出的调试网站位置填写我们刚创建的开发人员网站的URL,选择SharePoint托管,点击下一步会提示输入凭据进行身份验证,输入完后点击确定,接下来选择应用版本,是2013还是O365,我们这里选择SharePoint 2013,点击完成。

项目创建好之后结构如下图所示。

我们可以看到创建出来的APP的ASPX页面并没有后台页面文件,因为APP是不支持服务端代码的。

我们定位到主内容部分(PlaceHolderMain),它下面有一个DIV,上面注释了“运行该应用程序时会将以下内容替换为用户名 - 请参阅 App.js”,在Scripts文件夹中可以看到APP.js这个文件:

‘use strict‘;

ExecuteOrDelayUntilScriptLoaded(initializePage, "sp.js");

function initializePage()
{
    var context = SP.ClientContext.get_current();
    var user = context.get_web().get_currentUser();

    // 此代码在 DOM 准备就绪时运行,并且可以创建使用 SharePoint 对象模型所需的上下文对象
    $(document).ready(function () {
        getUserName();
    });

    // 此函数准备、加载然后执行 SharePoint 查询以获取当前用户信息
    function getUserName() {
        context.load(user);
        context.executeQueryAsync(onGetUserNameSuccess, onGetUserNameFail);
    }

    // 如果上述调用成功,则执行此函数
    // 此函数将“message”元素的内容替换为用户名
    function onGetUserNameSuccess() {
        $(‘#message‘).text(‘Hello ‘ + user.get_title());
    }

    // 将在上述调用失败时执行此函数
    function onGetUserNameFail(sender, args) {
        alert(‘Failed to get user name. Error:‘ + args.get_message());
    }
}

它做了一个简单的用户民的查询,并显示到页面的P标签上。

本篇中我们只想显示我们的Hello,不对对象模型做过多介绍。在div节点的下面添加一个P标签,文字内容填写“This is our first SharePoint app!”。完成之后Main中的代码如下所示:

<div>
        <p id="message">
            <!-- 运行该应用程序时会将以下内容替换为用户名 - 请参阅 App.js -->
            initializing...
        </p>
    </div>
    <p>This is our first sharepoint APP!</p>

在运行我们第一个APP之前,我们先来了解一下SharePoint应用程序项目模版的结构:

Features文件夹

跟以往的版本一样,内有清单文件和Feature定义文件,用来定义SharePoint的Feature。

Package文件夹

全新的SharePoint 2013应用程序包设计器,跟Feature设计器很相似,包含一个manifest清单文件定义SharePoint应用程序的细节,实际上跟以往的版本也并无太大差异。

Content文件夹

包含默认的APP.css样式文件和一个清单定义文件。新的样式文件等内容可以添加到此处。

Images文件夹

顾名思义,用来存放图片。

Pages和Scripts文件夹

同样,看名即懂,用来存放页面和脚本文件。

最后两个是AppManifest.xml和packages.config文件。其中,双击AppManifest.xml文件会打开一个设计器,用来配置APP。

回到之前,我们完成的Hello World应用程序,按下F5进行部署,会收到如下的错误:

因为我们使用的是场用户(系统账户),SharePoint不允许使用系统账户进行APP的安装和卸载操作。

这个问题困扰了我一整天,Google到的解决方案都是以域内服务器为基础的,但是我的SharePoint在VM中,而Visual Studio在本机域外,这里有一篇很详细的排错过程,如果域内服务器开发遇到了问题可以进行参照

很遗憾域外部署如何处理我还没有找到办法,后来仔细回味一下也许是行不通的吧,按照上面的排错过程在SharePoint域内服务器开发是可以部署的,F5启动浏览器之后,页面无法显示,或者显示404 Not Found,这个或许由于SharePoint APP开发环境没有配置正确,我在第一次配置的时候不小心将CNAME指向了AD服务器而不是SP的服务器。仔细检查一下配置,修正后再次按F5就可以看到我们开发的APP的页面了,同样只在域内服务器可以访问,我在本机域外访问就提示该页无法显示。

注:本篇只是从技术角度阐述实现APP的一种方式,并不完全适用于实际应用,如应用程序目录等内容本篇并没有提及。

鉴于本地服务器的做起来略麻烦,下一篇可能会考虑基于O365啦:)

??

时间: 2024-10-08 19:35:14

SharePoint 2013 开发——开发并部署第一个APP的相关文章

SharePoint 2013 图文开发系列之WebPart

原文:SharePoint 2013 图文开发系列之WebPart 这是我们介绍SharePoint开发入门的第一篇,在这一篇里,我们会介绍SharePoint开发的几个关键物理路径,一些开发技巧和最基础的WebPart开发. 开发工具 在SharePoint 2013开发中,我们使用的是Visual Studio 2012/2013均可,但是VS2012要额外安装Microsoft Office Develop Tools for Visual Studio 2012,可以使用Microsof

SharePoint 2013 图文开发系列之自定义字段

原文:SharePoint 2013 图文开发系列之自定义字段 SharePoint使用的优势,就在于开箱即用.快速搭建,SharePoint自身为我们提供了很多字段类型,已经很丰富了.但是,在实际应用中,我们还需要一些功能特殊的字段,下面,我们简单介绍下字段的开发,大家了解以后,可以按照需求扩展自己的字段类型. 1.新建项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,如下图: 3.添加新项,类,这个是用来定义字段的,如下图: 4.添加新项,类,这个是

SharePoint 2013 图文开发系列之可视化WebPart

原文:SharePoint 2013 图文开发系列之可视化WebPart 有了WebPart开发的基础,再进行可视化WebPart开发,就容易多了.创建和开发过程,两者非常相似,下面,我们简单介绍下可视化WebPart的开发. 1.添加新项目,选择SharePoint 2013空项目 ,如下图: 当然,你也可以直接选择可视化web部件,这样会在项目里自动创建一个可视化WebPart(如下图),不过我不喜欢它默认的命名方式,还要重命名或删除重建,所以我就创建空项目,而后自己添加. 2.选择部署为场

SharePoint 2013 图文开发系列之定义站点模板

原文:SharePoint 2013 图文开发系列之定义站点模板 SharePoint站点模板是一个非常好的功能,方便我们开发一类网站,然后在此基础上做二次开发,对于SharePoint的使用,有着举足轻重的作用. 因为篇幅比较长,所以加上目录,方便大家查看: 一.为站点模板添加母版页 二.为站点模板添加自定义列表 三.为站点模板添加可视化WebPart 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试站点,部署为场解决方案,如下图: 3.添加新项,选择网站定义

SharePoint 2013 图文开发系列之代码定义列表

原文:SharePoint 2013 图文开发系列之代码定义列表 在SharePoint的开发中,用Visual Studio自定义列表是经常会用到的,因为很多时候,我们并不会手动创建列表,而手动创建列表在测试服务器和正式机之间同步字段,也很麻烦,所以我们经常用代码来定义列表或者文档库. 尤其在工作流的开发中,我们经常会用到代码定义任务列表,或者历史记录列表,用来存储我们需要存储的相关数据.而在Visual Studio 2013中,定义列表也提供了模板,通过模板创建,我们很容易就可以定义需要的

SharePoint 2013 图文开发系列之Visual Studio 创建母版页

原文:SharePoint 2013 图文开发系列之Visual Studio 创建母版页 一直以来,对于SharePoint母版页的创建,都是使用SharePoint Designer来创建和修改的,而后接触了SharePoint 2013,发现可以使用Html文件,通过设计管理器导入,然后生成Master页面使用,但是效果不是很好. 其实,SharePoint还可以通过代码方式创建和部署母版页,创建的过程比较简单,篇幅很短,也不需要很详细的解说,相信了解开发的人,很容易就能搞定.之前浏览博客

SharePoint 2013 图文开发系列之网站栏

原文:SharePoint 2013 图文开发系列之网站栏 网站栏的本质,就是一个xml的描述文件,所以创建过程,基本就是通过Feature部署一个Xml文件,然后修改Xml文件的网站栏描述. 1.添加新项目,选择SharePoint 2013 空项目,如下图: 2.选择调试网站和解决方案类型,这里选择场,如下图: 3.添加新项,选择网站栏,如下图: 4.修改网站栏的Feature文件,方便以后识别,如下图: 5.查看网站栏的Xml文件,这是一个默认的单行文本类型,我们准备创建一个选项类型: 6

SharePoint 2013 图文开发系列之事件接收器

原文:SharePoint 2013 图文开发系列之事件接收器 在SharePoint的使用中,我们经常需要在完成一个动作之后,触发一个事件:比如,我们上传一个文档,但是没有标题,我们需要在上传完成之后,触发一个事件把文件名同步到标题,这就需要用到事件接收器. 此例,就是在SharePoint 2013文档库中,上传文档以后,将标题更新为文档名称的事件接收器. 1.添加新项目,选择SharePoint 2013空项目,如下图: 2.选择场解决方案,如下图: 3.添加新项,选择事件接收器,如下图:

SharePoint 2013 图文开发系列之计时器任务

原文:SharePoint 2013 图文开发系列之计时器任务 SharePoint的计时器任务,又称TimerJob,由服务里的Timer服务执行,在管理中心管理,是一个类似于Windows任务计划的功能,方便定时执行一些需要的功能,以免影响服务器性能. 在SharePoint 2013的开发中,很多时候我都会选择2013的空项目,方便以后添加项,也许是个人习惯问题,是不是好习惯,还是希望大家在开发中自己体会. 1.添加新项目,选择SharePoint 2013空项目,如下图 2.选择场解决方

SharePoint 2013 图文开发系列之InfoPath入门

原文:SharePoint 2013 图文开发系列之InfoPath入门 本文主要介绍SharePoint 2013中,简单发布InfoPath表单,并添加后台代码,示例比较简单,主要描述的是一个创建InfoPath的过程,而非多么深奥的后台代码,希望能够给初学者带来帮助. 主要过程有 Ø  新建一个InfoPath表单 Ø  修改表单的信任级别并添加证书 Ø  发布到InfoPath得到管理员认证 Ø  设计InfoPath布局及添加控件,在代码中编辑,添加表单功能 Ø  发布表单到Share