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