Download - 初めてでも大丈夫!SharePoint 開発の第一歩
![Page 1: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/1.jpg)
初めてでも大丈夫!SharePoint開発の第一歩
瀬尾佳隆 (@seosoft)Microsoft MVP for Visual C#技術ひろば.net
![Page 2: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/2.jpg)
自己紹介
瀬尾 佳隆 (せお よしたか)MVP for Visual C# (Jan 2009 – Dec 2014)
SharePoint / Office 365 が好きAKB48G が好き
技術ひろば.net やってますhttp://hiroba-tech.net/
ブログやってますhttp://yseosoft.wordpress.com/
5月17日(土) は合同勉強会の第2弾~活用・連携編~http://bit.ly/hiroba201405
![Page 3: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/3.jpg)
アジェンダ
SharePoint 開発の基礎知識プログラミングモデル
コードの基本的な流れ/コードの定石
SharePoint 用アプリ開発ツールAccess
“Napa”
ASP.NET
LightSwitch
“Project Siena”
今日はコレ!
![Page 4: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/4.jpg)
SharePoint 開発の基礎知識
![Page 5: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/5.jpg)
SharePoint 開発は決して難しくない
以前の SharePoint 開発は独特の API の理解がポイントだった
2013 で新しいプログラミングモデルが追加された一般的な Web や .NET のスキルが
使える
SharePoint ならではの知識はそれほど多くない
![Page 6: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/6.jpg)
SOM (Server
Object Model)
COM (Client
Object Model)
クラウド指向
オブジェクト
モデル
SharePoint のプログラミングモデル
2013 からの新しいモデル
![Page 7: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/7.jpg)
クラウド指向のプログラミングモデル
SharePoint 用アプリは本体の SharePoint サイトとは別の場所に配置されるSharePoint ホスト型・・・専用の SharePoint サイト
クラウドホスト型・・・外部の Web サイト
SharePoint ホスト型 クラウドホスト型
![Page 8: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/8.jpg)
SharePoint ホスト型の構成
App Web
Host Web
利用者のSharePoint 環境
アプリ専用のSharePoint 環境
RequestExecutorでアクセス
アプリを専用の SharePoint サイトに配置する
![Page 9: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/9.jpg)
クラウドホスト型の構成
App Web
Host Webアプリ本体
CreateUserClientContextForSPHostでアクセス
Remote App
CreateUserClientContextForSPAppWebでアクセス
SQL データベース
アプリを専用のサーバーに配置する
![Page 10: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/10.jpg)
利用できる API
.NET OM, JavaScript OM, REST API が用意されている※OM = Object Model
API SharePoint ホスト型 クラウドホスト型
.NET OM × ○
JavaScript OM
○ ○
REST API △ △
その他の技術的特徴
一般の Web アプリに出来ることが出来る
△=利用可能だが積極的に使うものでもない
![Page 11: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/11.jpg)
コードの基本的な流れ
1. ClientContext を生成する• SharePoint サーバーにアクセスするためのコンテキスト
2. 欲しい Web、List を指定する• Web = 一般的な Web アプリケーションに相当する
• List = Web アプリケーション内のデータ
3. Load で欲しい情報をバッチコマンドに追加する• SharePoint では要求の実行はバッチで行う
4. Query でバッチコマンドを実行する• 要求をまとめて実行する
![Page 12: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/12.jpg)
コードの定石
JavaScript OM .NET OM
ClientContextを生成
ClientContextGetSharePoint-Context
欲しい情報を指定get_web, get_listなど
Web, List など
バッチコマンドに追加
load Load
要求を実行 executeQueryAsync ExecuteQuery
![Page 13: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/13.jpg)
コード例 (JavaScript OM)
ClientContext を取得
get_xxx で欲しい情報を指定
load でバッチコマンドに追加
executeQueryで要求を実行
![Page 14: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/14.jpg)
コード例 (.NET OM)
ClientContext を取得
Web, List など欲しい情報を指定
Load でバッチコマンドに追加
ExecuteQuery で要求を実行
![Page 15: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/15.jpg)
SharePoint 開発ツール
![Page 16: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/16.jpg)
SharePoint 開発ツールの種類
Access
“Napa”
ASP.NET
LightSwitch
“Project Siena”
![Page 17: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/17.jpg)
Access
SharePoint 用アプリを簡単に開発できる自動ホスト型
対象のデータは SQL データベース上に置かれる
SharePoint のカスタムリストを使わないデータアクセスのパフォーマンス向上
SharePoint の “リスト件数 実質 5,000件まで” の上限を超えられる
※Access は SPサイトを開発することもできる
![Page 18: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/18.jpg)
“Napa”
JavaScript OM を使ったアプリケーション開発SharePoint ホスト型
Web のスキルを活用
ブラウザーベースの開発環境 (Visual Studio のサブセット)
アプリ専用のリストは主に App Web に置くのがよいHost Web のアクセスも可能、
WebRequestExecutorFactory を利用する
課題はソースコード管理がしづらい点
![Page 19: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/19.jpg)
“Napa” の開発画面
![Page 20: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/20.jpg)
ASP.NET
.NET OM を使ったアプリケーション開発任意のホスト型に対応する
ASP.NET 開発のスキルを利用できる
Visual Studio の開発支援機能・デバッグ支援機能を利用できる
専用のリストは主に SQL データベースに置くのがよい自由なデータ設計、パフォーマンス、件数上限などのメリット
App Web, Host Web のアクセスも可能、JavaScript OM よりもシンプルなコードにできるCreateUserClientContextForSPAppWeb ・・・App Web
CreateUserClientContextForSPHost ・・・Host Web
![Page 21: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/21.jpg)
LightSwitch
SharePoint 用アプリを簡単に開発できる自動ホスト型
業務アプリを簡単にクラウド化できる
タッチ前提の UI=マルチデバイス対応
SharePoint / Office 365 との連携が簡単マルチデータソースの操作が簡単
サーバー側/クライアント側それぞれをカスタマイズ可能
![Page 22: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/22.jpg)
LightSwitch の開発画面
![Page 23: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/23.jpg)
LightSwitch アプリの実行画面
![Page 24: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/24.jpg)
“Project Siena”
Windows 8.1 用のダッシュボードを開発
記述できる範囲はExcel ライクな関数のみ
Office 365 には今後対応(・・・されるはず)
![Page 25: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/25.jpg)
まとめ
![Page 26: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/26.jpg)
まとめ
SharePoint 開発は決して難しくないSharePoint 開発の基礎知識
クラウド指向の新しいプログラミングモデル
アプリの形態の理解
コードの定石を利用
SharePoint 開発ツールAccess ・・・PC ブラウザー向けアプリを簡単に開発
“Napa” ・・・JavaScript で Web のスキルを利用
ASP.NET ・・・ .NET と C#/VB を最大限に活用
LightSwitch ・・・業務アプリを高品質にクラウド化
“Project Siena” ・・・Windows 8.1 用のダッシュボードを開発
![Page 27: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/27.jpg)
参考) 企業アプリカタログへの発行
![Page 28: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/28.jpg)
企業アプリカタログサイトの作成 (1)
![Page 29: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/29.jpg)
企業アプリカタログサイトの作成 (2)
![Page 30: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/30.jpg)
企業アプリカタログへの発行 (1)
![Page 31: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/31.jpg)
企業アプリカタログへの発行 (2)
![Page 32: 初めてでも大丈夫!SharePoint 開発の第一歩](https://reader033.vdocuments.net/reader033/viewer/2022052903/5577fadcd8b42a24198b517a/html5/thumbnails/32.jpg)
企業アプリカタログへの発行 (3)