4,361 views(since 2013/10/08)

シェアポイントアプリを開発する前にここを読もう!!(App for SharePoint 2013 編 Microsoft dev camp)

現在セミナー受講中で随時書き込み中…

はじめに

MicrosoftのApp for Office/ App for SharePoint のトレーニングに行ってきました。

こんな解りやすい資料がるなら、最初に読んでおけば良かったです。
これを読めば、かなり理解が早くなるので、開発する人は一読しておいた方がいいです!!

App for office 2013/App for SharePoint 勉強資料は以下からダウンロード可能

http://aka.ms/officeapps

シェアポイントアプリ開発
(Develop App for SharePoint 2013)

appforsharepoint2013develop

4 – Introduction to SharePoint 2013 App Model\WDTK_Introduction to SharePoint 2013 App Model_v2.pdf

Page 2/App Concepts

オンプレミス(on-premise)/Office365(SharePoint Online)でも両方で提供できる新しい仕組みJavaScript開発がメインになり、Web開発者でも簡単にアプリ開発ができるようになった。

アプリの追加はサイト管理者の権限が必要

Page 2/Basic App for SharePoint Architecture

Office アプリと同じで、Webサイトと定義ファイル(Webサイトの場所等)が書かれている。

Page 3/Benefits

JavaScript がメインとなり、SharePoint 技術者じゃなくても開発が容易になった。

Page 3/Choices When Building Apps

  1. Hosting
    SharePoint アプリのホスト方法は3パターンあります。
  2. Entry points/Experience
    manifestファイル(定義ファイル)の置き場所
  3. Scoping

Page 3/Hosting Choice of Three Architecture Approaches

クラウドベース

  • Provider-Hosted App(プロバイダーホスト)
    オフィスと同じでどこでもレンタルサーバでもAzureでもアクセスできればどこでもいい
    SharePoint Hostweb –> RemoteWeb(サーバサイドで何でもコードが書ける)
  • Autohosted App(自動ホスト)
    Windows Azure に、自動で Webサイトコンテンツを展開してくれる。
    自分のサイトに SharePoint アプリで追加した瞬間に自動で Azure にも展開される。
    SharePoint Hostweb –> RemoteWeb(サーバサイドで何でもコードが書ける)
    ※ただし、Office365 に限る
    ※こちらはAzureのアカウントとか必要ないし、Azure課金されない。

SharePoint ベース

  • SharePoint-Hosted App(SharePointホスト)
    SharePointにWebサイトコンテンツを展開する。実際に稼働するのは別ドメイン上でホストされる。
    SharePoint Hostweb –> AppWeb(SharePoint に配置されるため、サーバサイドのコードは使用不可。その代わり、JavaScript で list 等にアクセス可能)

この3パターンは定義ファイルにどのホスト型か定義されている。

Page 5/Entry Point / Experience : App Shapes

Immersive Full Page App
Hostweb の場合、SharePoint とアプリのURLの場所が違う

  • SharePoint URL
    https://exceedone8.sharepoint.com/SitePages/DevHome.aspx
  • アプリURL
    https://exceedone8-00fe0dd99e6d86.sharepoint.com/EAP_O365_SP_2013_App/Pages/Default.aspx

App Part

SharePoint にアプリパーツというものができて、それを SharePoint のサイトに挿入できる、動作は iFrame にてアプリURLで動作する。

Extension App

???

Page 5/App Branding

フルページのアプリの場合は、別のアプリURLになるので、必ず、元の SharePoint サイトに戻るURLを張りましょう。

Page 5/Chrome Control

見た目もSharePointみたいにするテクニックがあります。

SharePoint ホスト型なら、Visual Studio 2012 なら、SharePoint サイトに戻るなどは全部入れてくれます。

また、プロバイダー型にも、Visual Studio 2012 なら、テンプレートを提供しているので、体裁が統一できます。

App for SharePoint(SharePoint アプリ)

5 – Developing Apps for SharePoint\WDTK_Developing Apps for SharePoint_v2.pdf

デバック環境について

  • オンプレミス(on-premise)での開発は以下のサービスが必要
    • App Management Services
    • Secure Store Services
    • Subscription Settings Services
  • office365ではすでに設定されているので不要

SharePointホスト型を Visual Studio 2012 で作成する。

  • アプリの実態は自動的に Default.aspx に書ける(この中に JavaScript を書けるが、コードビハインド等で SharePoint にアクセスできるコードは書くことができない)
  • Default.aspx には、App.js など JavaScript に必要なコードがインクルード(Include)されている。
  • App.js の中を見ると、JavaScript から SPオブジェクトで SharePoint オブジェクトからデータを取得するプログラムのサンプルがある。(ログインユーザ名等)
  • ホスト型はリスト定義(list definition)、SharePoint object等が追加できる。リストが作成されるのは、Host Web でなく App Web(アプリのURL)内に作成される。
  • ホスト型だと SharepPoint オブジェクト(List等)作成できるが、それ以外のプロバイダーホスト型等でも、xxを組み合わせればできる
  • する

  • ClientWebPartsを追加すれば、フルページではなく、SharePointに追加できるアプリパーツとして追加できる。
  • リボン/メニューも追加時
    例えば、リボンのメニューを ホストWeb/アプリWebにどちらに表示するか聞かれる。
  • アプリパーツはIframeでホストWeb内に表示される。
  • HostWebのURLは getQueryStringParameter(“SPHostUrl”)でとれる。またホスト型なら Cross-Domain にはならないので、認証方法を考えなくてもOK、そのままホストWebのSharePoint オブジェクトにアクセスできる。

Page 2 /Understanding the App URL

ホストWebからアプリWebへのアクセス

  • AppWebからホストWebにアクセスするためにはパーミッション設定(権限)をしておかないといけない。
  • Visual Studio 2012 の AppManifest.xml をダブルクリックして、アクセス許可の設定をしないとホストWebからデータを取得できません。
  • SharePointホスト型の場合、JavaScript はクロスドメイン(Cross-Domain)にならない???
  • Manifestファイルに Permission(権限)を追加した場合は、アプリインストール時に『このアプリを信頼してもいいですか』と聞かれる。

接続方法について

6 – CSOM, REST, OAuth and Apps with an Identity/WDTK_CSOM, REST, OAuth and Apps with an Identity_v2

Page 1 /CSOM

Page 2 /Prgramming using CSOM

内部ではxmlでhttpでSharePointにアクセスしてリストデータ等取得できる。

Page 2 /Supported Client Technologies

Page 3 /Whtat’s possible with CSOM?

SharePoint 2013 から SharePoint オブジェクトにアクセスが増えました。

用語セット、発行機能(publish)、サーチ機能(Search)、ニュースフィード(Newsfeed)等にアクセスできる。

今後、SharePointアプリを開発のメインにしたいので、アクセス機能を増やした??

自動ホスト型(Windows Azure Autohosted Apps)

5 – Developing Apps for SharePoint/WDTK_Developing Apps for SharePoint_v2.pdf

Page 5/Azure Autohosted: How it Works

Visual Studioでプロジェクトを作成時に自動ホストを作成するとWindows Azureにホストされます。これは課金等かからないようです。ただしOffice365のみ使用できます。

AppManifest.xml はホスト型はほぼ同じ、Webサイトはデバック時にはローカルIISで動きます。

標準では、Default.aspx が作成されます。

SharePoint ホスト型と違う点は、RemotoApp なのでクロスドメイン(Cross-Domain)になるため、認証について考えておかないといけない。

Page 9/Cross-Domain Calls

SP.RequestExecutor.js を使えば、クロスドメイン(Cross-Domain)問題を容易に解決できる。
何故なら、内部に Hidden Iframe でホストWebを作っておいて、それ経由でアクセスするためクロスドメイン(Cross-Domain)の問題を解決している。

Page 10/Enabling Cross Domain Calls

上記の説明

サンプルプログラムの CrossDomainExec.jsファイルの中身を見ると execCrossDomainRequest() というのでクロスドメイン(Cross-Domain)を超えてアクセスできる。

RestAPI を呼びたい場合は、OAuth を使っている。
OAuth について、以下のところでトークン等を詳しく解説している。
STSサーバからトークン情報を取得してくる。

6 – CSOM, REST, OAuth and Apps with an Identity/
P19 /SharePoint Context Token

ホストWebは、iFrame内にRemoteWebを表示する際にトークンを渡している。
RemoteWeb は、ホストWebにアクセスするときには Authorization に情報を埋め込んでホストwebにアクセス可能(間違っているかも)???

検索(Serach)

7 – Search\WDTK_Search.pdf

リモートイベントレシーバー(Remote Event Receivers)

8 – Remote Event Receivers\WDTK_Remote Event Receivers_v2.pdf

関連URL
オフィスアプリアプリを開発する前にここを読もう!!(App for Office 2013 編 Microsoft dev camp)

Filed Under: Office365 App

About the Author

Leave a Reply




If you want a picture to show with your comment, go get a Gravatar.