SharePoint用アプリとは技術的になんだろうかわかりやすくかいてみた。

作成中

まずはSharePoint Online(Office365)の概要を簡単に図にしてみた。

ちなみに、これはSharePoint用アプリの話ではない、まずSharePointがなにかわららないとわからなので。

※On-Premiseでも基本的には同じだ。

下図のように、IIS とSQL Server を基礎として、SharePointが作られている。

whatissharepoint010

SharePointはインタネットブラウザーからURLを実行すると簡単にいうと以下の図ように動作する。

  1. ブラウザーから以下のようなURLリクエストをする。
    https://xxxxxx.sharepoint.com/
  2. aspx, master等のファイルを取得する
  3. リストデータが必要なら取得する
  4. ASP.NETがaspx+masterページからHTMLを作成してレスポンスする

whatissharepoint020

それでここからが本題です、SharePoint用アプリ(Apps for SharePoint)がどのように動いているかというと。

とりあえず、こちらに私の思う最大のメリットを書いておきます。

SharePointでアプリを開発する際はいままで、初心者には難しいSharePointのフィーチャー、カスタムリスト等SharePointの専門用語を覚える必要がありました。

しかし、RemoteApp:Provider-hostedの場合はどんなWebサーバ、プログラム言語でもアプリを作ることができます。

また認証系は今まで通りに、SharePoint(AD)/Office365(Azure AD)を使用できます。

さらに、SharePoint Online になると自動的にSharePointバージョンアップ等されるので, SharePointの機能をできるだけ使わずに、認証とリスト等のみ使うようにして作るとバージョンアップに耐えられるアプリを作成することが可能になりました。

※Microsoft Office ストアにするとアプリに課金することもできます。

SharePointでホスト(SharePoint-hosted)

whatissharepoint030

  1. ホストするアプリをASPX or HTMLで作成する。
  2. VisualStudioでappを発行する。
    ※appパッケージを作成する。
    ※拡張子をapp–>zipにすると中身がみれます。
  3. アプリカタログにアプリを発行(アップロード)する。
    ※もしくは、Microsoft Office ストアに発行する。(審査あり)
  4. アプリの追加を行う
    アプリの追加時にSharePointのIISにASPX, HTMLをインストールする
  5. アプリの実行を行う

アドレスは以下の「exceedone-*.sharepoint.com」になる。

  • https://exceedone5ed14e7da2ad9a.sharepoint.com/sites/dev_noro/SharePointApp7/Pages/Default.aspx

自動ホスト(RemoteApp; Autohosted)

whatissharepoint040

  1. ホストするアプリをASPX or HTML or MVC(ASP.NET)で作成する。
  2. VisualStudioでappを発行する。
    ※appパッケージを作成する。
    ※拡張子をapp–>zipにすると中身がみれます。
  3. アプリカタログにアプリを発行(アップロード)する。
    ※もしくは、Microsoft Office ストアに発行する。(審査あり)
  4. アプリの追加を行う
    アプリの追加時にAzureのIISにASPX, HTMLXを追加する
    ※SQL Azureにデータベースを追加も可能
  5. アプリの実行を行う

アドレスは以下のように、「*.o365apps.net」になる。

  • https://1fcb6574-2bae-4bea-a36c-d47fe5c9a56b.o365apps.net/?SPHostUrl=https%3

プロバイダーでホスト(RemoteApp; Provider-hosted)

図作成中 

技術的な特徴

種類 技術的な特徴
SharePointでホスト
(SharePoint-hosted)
SharePointのIISがWeb Serverになる。
よってASPX か HTMLファイルを配置することになる
自動ホスト
(Autohosted)
テナント、サイト単位で自動で「AzureのIIS」と「SQL Server」がWeb Serverになる。
よってASPX か HTMLファイルを配置することになる
※SQL Serverの容量制限とか調査中
※Office365契約ユーザは無料のようだ?
プロバイダーでホスト
(Provider-hosted)
どんなWeb Serverでもよい
例: On-Premise, AWS, Azure, さくら等

プログラムの方法

  1. Webブラウザー側から
    1. JavaScriptで、「JavaScript Object Model(JSOM)」
    2. JavaScriptで、「Restインターフェイス」
  2. Webサーバ側から
    1. .NETで「.NET Client-side Object Model(CSOM)」
    2. .NETで「ASP.NET Web サービス」
    3. 様々な言語で「Restインターフェイス」

データをアクセスする詳しい解説はこちらを参照のこと(MSDN SharePoint2010)
http://msdn.microsoft.com/ja-jp/library/hh290942.aspx

種類 プログラムの方法
SharePointでホスト
(SharePoint-hosted)
Webブラウザー側からカスタムリスト等取得する。
制限事項等:確認中
自動ホスト
(Autohosted)
Webブラウザー側からカスタムリスト等取得する。
Webサーバー側(ASP.NET)から、カスタムリストを取得する。
制限事項等:確認中
プロバイダーでホスト
(Provider-hosted)
Webブラウザー側からカスタムリスト等取得する。
Webサーバー側(ANY Server)から、カスタムリストを取得する。
制限事項等:確認中

プログラムのデプロイ(配置)の方法

種類 デプロイの方法
SharePointでホスト
(SharePoint-hosted)
Visual Studioで「マニュフェストファイル」と「aspx, html」をアーカイブして SharePointのアプリカタログに配置、もしくはOffice Storeに配置する
自動ホスト
(Autohosted)
同上
※Webサイトは自動でMicrosoft Azureに配置される。
プロバイダーでホスト
(Provider-hosted)
「マニュフェストファイル」をSharePointのアプリカタログに配置、もしくはOffice Storeに配置する

WebサイトはAzure、AWS,さくら等のサーバに配置する。