前言

本文完全原创,转载请说明出处,希望对大家有用。

在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式。

正文

Office 365 的开发模式主要分为两类:

  •   office 365  addin应用开发
  •   office 365  provider应用开发

Office 365 Addin案例

Office 365 addin开发指在Office 365 应用组件中开发的插件,目的是为了增强或定制Office 365组件,如下图所示,我们在Excel中使用的Bing Map:
 
Bing Map通过获取Excel表格中的城市数据,在Excel中呈现了一幅地图报表,方便用户快速简单的创建直观的地图报表。简单一看,发现确实让用户使用起来简单不少啊,不过开发应用的人员不一定那么轻松,至少你要有个地图。再看一个Outlook的插件,FindTime:
FindTime是为了解决在发起会议过程中,查看各个参会人的空余时间,有效的协调各个与会人的会议时间。
怎么样,有没有感受到Addin带来的好处。好吧,具体还要看有没有好的应用可以集成到组件中,像聚会邀请、问卷调查……

Office 365 Provider案例

上述开发模式是将应用作为Office 365的插件,也就意味着应用的入口在Office 365组件中,无法单独使用此应用。下面我们再来看另外一种开发模式(Provider模式),此方式的案例不是很好找(主要涉及到版权问题,担心侵权),所以就把我自己做的小产品给大家直观的看看吧:
首先与Addin相比,Provider模式可以独立访问,入口在应用本身而非Office 365组件中,如上图所示,我们可以更好的组织Office 365的各项功能,邮件、Lync、SharePoint Online都可以作为应用的后台服务。此方式可以作为一整套解决方案来定位,而不仅仅是一个应用。

Office 365 开发模式特点分析

看完上述案例后,我们可以针对两种开发模式进行特点分析,同时也希望有相关好的应用案例的朋友,能在评论中分享,让我们更多的了解Office 365应用。

Addin模式下,应用入口在Office 365组件中,用户需要通过客户端访问Office 365组件,如Excel、Outlook、SharePoint Online等,在组件中操作应用。

Addin模式优势:

  1. 开发模式较Provider模式更加直接,专注于特定功能点,能较好的与Office 365组件集成。
  2. 应用无需实现以后的用户验证、用户授权以及相关界面内容,同时可以充分利用Office 365提供的众多开发API,甚至使用Office 365提供的标准页面组件。
  3. 用户部署简单,通过App Store直接加载使用,无需登录其他应用。

Addin模式缺点:

  1. 由于Addin是基于Office 365组件开发,所以入口现定于Office 365内部,导致灵活性欠佳,独立访问困难。
  2. Addin模式需要兼容Office 365本身的显示方式,在用户体验方面灵活性较差。
  3. Addin模式下,引导用户能力较差,无法提供整套解决方案。
  4. Addin模式受Office 365组件本身的局限性较多,导致拓展性较差。
  5. Addin模式依赖Office 365的OOB功能,未来升级维护成本高。

Provider模式下,应用程序的入口在应用本身,用户通过访问应用程序提供的服务,来使用Office 365的应用组件,同时应用服务可以集成其他基于SAAS模式的服务。

Provider模式优势:

  1. 灵活性高,可定位为Office 365产品平台,能较好的给用户提供整体解决方案。
  2. 用户体现性好,由于在此模式下,我们可以使用最新的前端技术,为用户带来更高的体验感受。
  3. 集成性好,由于目前用户信息化要求较高,Office 365无法满足所有的用户需求,所以我们可以在此模式下集成更多优质应用,将其与Office 365整合,实现统一解决方案。
  4. 用户粘度高,较高的产品迭代效率,会带来更高的用户黏度。

Provider模式缺点:

  1. Provider模式下,我们会将应用作为一个独立的平台,导致我们需要做的事情也会增加很多,如用户验证、用户界面、系统管理等。
  2. Provider模式的对于Office 365的集成在技术层面要求更加高,需要开发团队对Office 365的各个组件都有较为深入的了解。
  3. Provider模式的应用需要更多的资源支持。
  4. Provider模式需要引导用户通过应用平台访问,需要较好的市场推广。

Office 365 开发模式应用场景分析

终于把前面那么多话写完了。说到底,模式虽然是固定的几类,但实际使用中,我们通常会混合使用,下面我们来讨论几种应用场景:

1. 已有产品,想要把产品集成到Office 365中,如会议室预订系统、内容管理系统、CRM系统。

  已有产品我们可以认为产品已经有完善的架构,只需在Office 365中使用该产品应用。此时我们应使用Addin模式进行开发,将现有的应用服务集成到Office 365组件中,让用户在邮件、Lync、OneDrive中使用产品服务,对已有产品缺失的云端属性进行补充。此方式可以为产品已有用户带来云端体验,同时也可以为现有Office 365用户带来新的应用功能。

2. 基于企业解决方案,用户想要迁移到Office 365中

  基于企业解决方案,通常企业想要通过将现有私有云的解决方案迁移到Office 365云端,由于企业办公所需的门户、办公平台、HR平台以及其他的业务平台都需要集成到应用中,我们一般采用Addin模式,为用户实现多应用集成,统一的办公入口可搭建到SharePoint Online站点中。

3. 想要基于Office 365开发一套云端日常办公系统,同时有想要将其他应用,如微信、EventNote等基于SAAS的服务应用加入到平台中。

  如果是想在Office 365平台外搭建一套日常办公平台,请选择Provider模式,将Office 365平台作为产品的一个重要部分,充分利用其功能,并加入其他的优质应用。


结束语

开发模式分析已经完成,接下来我们会正式进入实战模式,对Office 365应用开发过程中需要用到的功能点进行逐一分析和实践,希望大家继续关注。

[ Office 365 开发系列 ] 开发模式分析的更多相关文章

  1. Office365开发系列——开发一个全功能的Word Add-In

    2016年10月我参加了在北京举行的DevDays Asia 2016 - Office 365应用开发”48小时黑客马拉松“,我开发的一个Word Add-In Demo——WordTemplate ...

  2. [ Office 365 开发系列 ] Graph Service

    前言 本文完全原创,转载请说明出处,希望对大家有用. 通过[ Office 365 开发系列 ] 开发模式分析和[ Office 365 开发系列 ] 身份认证两篇内容的了解,我们可以开始使用Offi ...

  3. Office 365 应用开发的 .NET Core 模板库

    概述 前不久我写过一篇文章拥抱开源,Office 365开发迎来新时代,给大家介绍了Office 365开发的典型场景是如何支持开源平台的:Office 365通过Microsoft Graph,以R ...

  4. Office 365平台及其价值主张

    重要提示:<Office 365开发入门指南>视频教程还没有上架,目前会先公开几个小节的文字版本,让大家先睹为快,请大家转发给感兴趣的朋友,敬请留意课程的正式上架和优惠券发放通知. 从今天 ...

  5. Office 365 开发概览系列文章和教程

    Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...

  6. [ Office 365 开发系列 ] 身份认证

    前言 本文完全原创,转载请说明出处,希望对大家有用. 通常我们在开发一个应用时,需要考虑用户身份认证及授权,Office 365使用AAD(Azure Active Directory)作为其认证机构 ...

  7. [ Office 365 开发系列 ] 前言

    前言 本人从接触Microsoft SharePoint Server 2007到目前为止,已经在微软SharePoint的路上已经走了好几年,基于SharePoint平台的特殊性,对微软产品线都有了 ...

  8. Office 365开发概述及生态环境介绍(一)

    原文于2017年3月13日首发于LinkedIn,请参考这个链接 离上一篇文章,很快又过去了两星期的时间.今天抓紧晚上的时间,开始了Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去O ...

  9. Office 365开发概述及生态环境介绍(二)

    本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...

随机推荐

  1. form 转json,将form表单中的数据序列化数组后转换为Json

    页面中引用了jquery,第一想到的就是序列化,但是序列化后的表单字段为a=1&b=2这种. 这里写一个jquery的扩展方法 $.fn.serializeObject = function( ...

  2. nginx按天切割日志

    原文链接:http://www.cnblogs.com/benio/archive/2010/10/13/1849935.html  本文只节选部分内容 Nginx自己没有日志分割的功能,一旦时间过长 ...

  3. NTFS文件系统简介(转载)

    原文地址:http://www.cnblogs.com/watertao/archive/2011/11/28/2266595.html 1.简介 NTFS(New Technology File S ...

  4. 从SVN导出指定版本号之间修改的文件

    当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件到服务器,这个时间的修改大多是局部的,因此更新文件只需更新修改过的文件,其他 没有修改过的文件就没有必要上载到服务器.但一个稍微上规模的网 ...

  5. activiti自定义流程之整合(二):使用angular js整合ueditor创建表单

    注:整体环境搭建:activiti自定义流程之整合(一):整体环境配置 基础环境搭建完毕,接下来就该正式着手代码编写了,在说代码之前,我觉得有必要先说明一下activit自定义流程的操作. 抛开自定义 ...

  6. 黄聪:C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)

    一.各种旋转.改变大小 注意:先要添加画图相关的using引用. //向右旋转图像90°代码如下:private void Form1_Paint(object sender, System.Wind ...

  7. java命令行HPROF Profiler

    The HPROF Profiler The Heap and CPU Profiling Agent (HPROF)是JAVA2 SDK自带的一个简单的profiler代理,它通过与Java Vir ...

  8. @synthesize obj = _obj 理解

    在很多代码里可以看到类似得用法: @interface MyClass:NSObject{ MyObjecct *_object; } @property(nonamtic, retain) MyOb ...

  9. Altium Designer /DXP无网络铺铜:

    有的设计者在PCB加工的时候会删除网络以便为了保护.但如果后续在无网络PCB上进行修改时就不叫麻烦,没有网络连铺铜都无法进行.一般手动添加网络只对要铺铜的地网络进行,其它的要修改者自己确保版图的正确性 ...

  10. HTMLParser使用详解(3)- 通过Filter访问内容

    HTMLParser遍历了网页的内容以后,以树(森林)结构保存了结果.HTMLParser访问结果内容的方法有两种.使用Filter和使用Visitor. (一)Filter类顾名思义,Filter就 ...