SharePoint 開発入門
- SharePoint 開発ってなにができるの? -
@HiroakiOikawa
2016/12/19
http://sharepoint.orivers.jp
目次
 SharePoint 開発の定義
 SharePoint の開発手法と特徴
 SharePoint 開発をはじめるにあたって
2
© SharePoint Developer
sharepoint.orivers.jp
SharePoint 開発
の定義
SharePoint における「開発」について定
義づけします。
3
SharePoint 開発の定義 1
SharePoint は、ユーザーの技量に合わせて、様々なカスタマイ
ズ方法が用意されており、難易度が高いほど、より詳細な部分ま
でカスタマイズすることができます。(自由度が高くなる)
© SharePoint Developer
sharepoint.orivers.jp 4
標準
説明 難易度
ブラウザからのページ編集や各種アプリの追加、
変更など
低
カスタマイズ
SharePoint Designer を使用したワークフ
ロー作成や、3rd パーティ製品の導入など
中
開発
C#、JavaScript など開発言語を使用して、
独自の UI や機能を追加するなど
高
方法
※ だいたい間違ってはいないと思いますが、上記は一つの考え方であって、他の切り口からの考え方もあるかと思います。
低
自由度
中
高
SharePoint 開発の定義 2
本書では、C# や JavaScript を使用して SharePoint のカス
タマイズを行うことを「開発」と定義します。
© SharePoint Developer
sharepoint.orivers.jp 5
標準
説明 難易度
ブラウザからのページ編集や各種アプリの追加、
変更など
低
カスタマイズ
SharePoint Designer を使用したワークフ
ロー作成や、3rd パーティ製品の導入など
中
開発
C#、JavaScript など開発言語を使用して、
独自の UI や機能を追加するなど
高
方法
本書の説明範囲
低
自由度
中
高
SharePoint の
開発手法と特徴
一言で SharePoint 開発といっても、実
は色々な開発があります。
6
3 タイプの開発手法
オンプレからはじまりクラウドの世界まで広がった SharePoint は、
大きく3タイプの開発手法があり、それぞれに特徴があります。
© SharePoint Developer
sharepoint.orivers.jp 7
ファーム
ソリューション
開発
アドイン開発
クライアントサイド
開発
• SharePoint が稼動するサーバー上で動作するプログラムを開発する手法。
• サーバーサイドのクラスライブラリを用いて、SharePoint に様々な機能拡張ができる。
• 正しい知識で正しくプログラムを開発しなければ、SharePoint 全体を停止させてしまうようなプ
ログラムを書くこともできるため、リスクが大きい。
• SharePoint が稼動するサーバーとは別のサーバーでプログラムを動作させつつ、 SharePoint
とシームレスに連携するプログラムを開発する手法。
• クライアントサイドのクラスライブラリを用いて、SharePoint が持つ Web API を経由して
SharePoint の機能の利用、データの授受を行う。
• 開発できるものは限られるが、ファームソリューションよりも安全。
• JavaScript、TypeScript など、Web フロントエンド開発の技術を用いて、ブラウザ上で動作す
るプログラムを開発する手法。
• 開発する対象により、開発のお作法が異なる。
(表示テンプレート、SharePoint Framework など)
実装可能な拡張機能
開発手法により、実装可能な SharePoint の拡張機能の種類
と、Office 365 に対応しているか否かが変わります。
© SharePoint Developer
sharepoint.orivers.jp 8
ファーム
ソリューション
開発
アドイン開発
クライアントサイド
開発
• Web パーツ (サーバー上で動作する)
• イベントレシーバー (アイテム追加、更新、
削除で動作する処理)
• リボンメニュー、…メニュー、サイトの設定メ
ニュー
• アプリケーションページ
• サイト定義、リスト定義
• コンテンツタイプ、サイト列
• 2010, 2013 ワークフローのアクティビティ、
テンプレート
• フィーチャー (サイトの機能、サイトコレク
ションの機能など)
• サービスアプリケーション、タイマージョブ
• Web パーツ(別サーバー上で動作す
る)
• リモートイベントレシーバー
• リスト、サイト列、コンテンツタイプ
• リボンメニュー、…メニュー
• 2013 ワークフローのアクティビティ、テンプ
レート
• アドインが動作する専用ページ
• Web パーツのビジュアル変更
• 検索結果ページのビジュアル変更
• SharePoint ページ上に独自 UI 追加
• SharePoint Framework による client-side webpart
実装可能な SharePoint の拡張機能
×
〇
〇
O365対応
必要なスキルセット、開発環境
開発手法により、必要なスキルセット、開発環境が異なります。
© SharePoint Developer
sharepoint.orivers.jp 9
ファーム
ソリューション
開発
アドイン開発
クライアントサイド
開発
• C# or VB.NET、ASP.NET
• .NET サーバー API
• JavaScript、jQuery
• JavaScript クライアント API、REST API
• DB アクセスや、ASP.NET の機能を活用した画面開発な
どを行う場合、C#、ASP.NET、.NET クライアント API
• JavaScript または TypeScript などの AltJS 系言語
• SharePoint REST API、Microsoft Graph API など
• SharePoint Framework (client web part開発時)
• AngularJS などの Web Front Framework (任意)
スキルセット
• Visual Studio
• Windows Server OS
• SharePoint Server
• Visual Studio
• Windows Client OS
• Office 365 開発者サイト
または オンプレの開発者サイト
• 好みのエディタ、OS
• Office 365 サイト
• SharePoint Framework時、
node.js、NPM、Gulp、
Yeoman
開発環境
デプロイ方法
開発手法により、デプロイ方法が異なります。
© SharePoint Developer
sharepoint.orivers.jp 10
ファーム
ソリューション
開発
アドイン開発
クライアントサイド
開発
• Visual Studio で作成したソリューションファイル (.wsp) を、 SharePoint のサーバー上にて、
PowerShell を使用してインストール。
• 機能を利用するサイトコレクション、サイトにて、フィーチャーをアクティブ化。
• Visual Studio で作成したアプリアプリファイル (.app) を、アプリカタログに登録。
• 外部 Web アプリケーションは、別途 Web サーバーや Azure 上にデプロイ。
• 機能を利用するサイトにて、アプリを追加。
• 必要な JS などのファイルをドキュメントライブラリや、Web サーバー、CDN 等にアップロード。
• SharePoint Framework 利用時は、上記の他、開発環境で作成したアプリファイル
(.spapp) をアプリカタログに登録。
SharePoint 開発
をはじめるにあたって
SharePoint 開発をはじめるにあたって、
知っておいた方がよいことをいくつか。
11
そもそも SharePoint 開発する意味ありま
すか?
SharePoint の利点を少しでも活かすことができなければ、
SharePoint 開発を行う意味はありません。
本当に SharePoint で実現すべきことなのか、よく考えましょう。
 例えばこんなことを考えてみる
- SharePoint が持つ機能を利用しますか?
- SharePoint のインフラを利用するメリット、デメリットは認識できていま
すか?
- 他のソリューションを採用するより、SharePoint を使った方が良いと考
える理由は何ですか?
© SharePoint Developer
sharepoint.orivers.jp 12
開発手法選択のポイント
最適な開発手法を選択し、開発効率を高めましょう。
 ポイント1
- クライアントサイド開発→アドイン開発→ファームソリューション開発の順
に Fit & Gap する。
• C#が好きだからとなんでもかんでもファームソリューションで、はダメです。
 ポイント2
- 開発するものを明確にし、利用イメージを固めてから開発手法を決める。
• 開発をはじめてから開発手法を変更することはできません。
 ポイント3
- スキル、環境が足りるかきちんと見極める。
• きちんと開発ができるスキル、環境がある方にお願いしましょう。
© SharePoint Developer
sharepoint.orivers.jp 13
参考資料
 SharePoint 開発のポータル
- https://msdn.microsoft.com/ja-jp/library/office/dn833469.aspx
 SharePoint 2013 開発の概要
- https://msdn.microsoft.com/ja-jp/library/office/jj164084.aspx
 SharePoint アドイン
- https://msdn.microsoft.com/ja-jp/library/office/fp179930.aspx
 SharePoint Framework
- https://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-
overview
© SharePoint Developer
sharepoint.orivers.jp 14

SharePoint 開発入門

  • 1.
    SharePoint 開発入門 - SharePoint開発ってなにができるの? - @HiroakiOikawa 2016/12/19 http://sharepoint.orivers.jp
  • 2.
    目次  SharePoint 開発の定義 SharePoint の開発手法と特徴  SharePoint 開発をはじめるにあたって 2 © SharePoint Developer sharepoint.orivers.jp
  • 3.
  • 4.
    SharePoint 開発の定義 1 SharePointは、ユーザーの技量に合わせて、様々なカスタマイ ズ方法が用意されており、難易度が高いほど、より詳細な部分ま でカスタマイズすることができます。(自由度が高くなる) © SharePoint Developer sharepoint.orivers.jp 4 標準 説明 難易度 ブラウザからのページ編集や各種アプリの追加、 変更など 低 カスタマイズ SharePoint Designer を使用したワークフ ロー作成や、3rd パーティ製品の導入など 中 開発 C#、JavaScript など開発言語を使用して、 独自の UI や機能を追加するなど 高 方法 ※ だいたい間違ってはいないと思いますが、上記は一つの考え方であって、他の切り口からの考え方もあるかと思います。 低 自由度 中 高
  • 5.
    SharePoint 開発の定義 2 本書では、C#や JavaScript を使用して SharePoint のカス タマイズを行うことを「開発」と定義します。 © SharePoint Developer sharepoint.orivers.jp 5 標準 説明 難易度 ブラウザからのページ編集や各種アプリの追加、 変更など 低 カスタマイズ SharePoint Designer を使用したワークフ ロー作成や、3rd パーティ製品の導入など 中 開発 C#、JavaScript など開発言語を使用して、 独自の UI や機能を追加するなど 高 方法 本書の説明範囲 低 自由度 中 高
  • 6.
    SharePoint の 開発手法と特徴 一言で SharePoint開発といっても、実 は色々な開発があります。 6
  • 7.
    3 タイプの開発手法 オンプレからはじまりクラウドの世界まで広がった SharePointは、 大きく3タイプの開発手法があり、それぞれに特徴があります。 © SharePoint Developer sharepoint.orivers.jp 7 ファーム ソリューション 開発 アドイン開発 クライアントサイド 開発 • SharePoint が稼動するサーバー上で動作するプログラムを開発する手法。 • サーバーサイドのクラスライブラリを用いて、SharePoint に様々な機能拡張ができる。 • 正しい知識で正しくプログラムを開発しなければ、SharePoint 全体を停止させてしまうようなプ ログラムを書くこともできるため、リスクが大きい。 • SharePoint が稼動するサーバーとは別のサーバーでプログラムを動作させつつ、 SharePoint とシームレスに連携するプログラムを開発する手法。 • クライアントサイドのクラスライブラリを用いて、SharePoint が持つ Web API を経由して SharePoint の機能の利用、データの授受を行う。 • 開発できるものは限られるが、ファームソリューションよりも安全。 • JavaScript、TypeScript など、Web フロントエンド開発の技術を用いて、ブラウザ上で動作す るプログラムを開発する手法。 • 開発する対象により、開発のお作法が異なる。 (表示テンプレート、SharePoint Framework など)
  • 8.
    実装可能な拡張機能 開発手法により、実装可能な SharePoint の拡張機能の種類 と、Office365 に対応しているか否かが変わります。 © SharePoint Developer sharepoint.orivers.jp 8 ファーム ソリューション 開発 アドイン開発 クライアントサイド 開発 • Web パーツ (サーバー上で動作する) • イベントレシーバー (アイテム追加、更新、 削除で動作する処理) • リボンメニュー、…メニュー、サイトの設定メ ニュー • アプリケーションページ • サイト定義、リスト定義 • コンテンツタイプ、サイト列 • 2010, 2013 ワークフローのアクティビティ、 テンプレート • フィーチャー (サイトの機能、サイトコレク ションの機能など) • サービスアプリケーション、タイマージョブ • Web パーツ(別サーバー上で動作す る) • リモートイベントレシーバー • リスト、サイト列、コンテンツタイプ • リボンメニュー、…メニュー • 2013 ワークフローのアクティビティ、テンプ レート • アドインが動作する専用ページ • Web パーツのビジュアル変更 • 検索結果ページのビジュアル変更 • SharePoint ページ上に独自 UI 追加 • SharePoint Framework による client-side webpart 実装可能な SharePoint の拡張機能 × 〇 〇 O365対応
  • 9.
    必要なスキルセット、開発環境 開発手法により、必要なスキルセット、開発環境が異なります。 © SharePoint Developer sharepoint.orivers.jp9 ファーム ソリューション 開発 アドイン開発 クライアントサイド 開発 • C# or VB.NET、ASP.NET • .NET サーバー API • JavaScript、jQuery • JavaScript クライアント API、REST API • DB アクセスや、ASP.NET の機能を活用した画面開発な どを行う場合、C#、ASP.NET、.NET クライアント API • JavaScript または TypeScript などの AltJS 系言語 • SharePoint REST API、Microsoft Graph API など • SharePoint Framework (client web part開発時) • AngularJS などの Web Front Framework (任意) スキルセット • Visual Studio • Windows Server OS • SharePoint Server • Visual Studio • Windows Client OS • Office 365 開発者サイト または オンプレの開発者サイト • 好みのエディタ、OS • Office 365 サイト • SharePoint Framework時、 node.js、NPM、Gulp、 Yeoman 開発環境
  • 10.
    デプロイ方法 開発手法により、デプロイ方法が異なります。 © SharePoint Developer sharepoint.orivers.jp10 ファーム ソリューション 開発 アドイン開発 クライアントサイド 開発 • Visual Studio で作成したソリューションファイル (.wsp) を、 SharePoint のサーバー上にて、 PowerShell を使用してインストール。 • 機能を利用するサイトコレクション、サイトにて、フィーチャーをアクティブ化。 • Visual Studio で作成したアプリアプリファイル (.app) を、アプリカタログに登録。 • 外部 Web アプリケーションは、別途 Web サーバーや Azure 上にデプロイ。 • 機能を利用するサイトにて、アプリを追加。 • 必要な JS などのファイルをドキュメントライブラリや、Web サーバー、CDN 等にアップロード。 • SharePoint Framework 利用時は、上記の他、開発環境で作成したアプリファイル (.spapp) をアプリカタログに登録。
  • 11.
  • 12.
    そもそも SharePoint 開発する意味ありま すか? SharePointの利点を少しでも活かすことができなければ、 SharePoint 開発を行う意味はありません。 本当に SharePoint で実現すべきことなのか、よく考えましょう。  例えばこんなことを考えてみる - SharePoint が持つ機能を利用しますか? - SharePoint のインフラを利用するメリット、デメリットは認識できていま すか? - 他のソリューションを採用するより、SharePoint を使った方が良いと考 える理由は何ですか? © SharePoint Developer sharepoint.orivers.jp 12
  • 13.
    開発手法選択のポイント 最適な開発手法を選択し、開発効率を高めましょう。  ポイント1 - クライアントサイド開発→アドイン開発→ファームソリューション開発の順 にFit & Gap する。 • C#が好きだからとなんでもかんでもファームソリューションで、はダメです。  ポイント2 - 開発するものを明確にし、利用イメージを固めてから開発手法を決める。 • 開発をはじめてから開発手法を変更することはできません。  ポイント3 - スキル、環境が足りるかきちんと見極める。 • きちんと開発ができるスキル、環境がある方にお願いしましょう。 © SharePoint Developer sharepoint.orivers.jp 13
  • 14.
    参考資料  SharePoint 開発のポータル -https://msdn.microsoft.com/ja-jp/library/office/dn833469.aspx  SharePoint 2013 開発の概要 - https://msdn.microsoft.com/ja-jp/library/office/jj164084.aspx  SharePoint アドイン - https://msdn.microsoft.com/ja-jp/library/office/fp179930.aspx  SharePoint Framework - https://dev.office.com/sharepoint/docs/spfx/sharepoint-framework- overview © SharePoint Developer sharepoint.orivers.jp 14