SharePoint 2013開発——概要
4406 ワード
ブログアドレス:http://blog.csdn.net/FoxDave
最近SharePoint 2013の開発書を読んで、みんなと一緒にその内容を共有しています.
配置シーン:
ローカル配備(On-premise Deployment)、O 365配備(Office 365 Deployment)、ホスティング配備(Hosted Deployment)、ハイブリッド配備(Hybrid Deployment).
パッケージシーン:
完全に信頼されたフィールドソリューション(Full-Trust Farm Solution)、部分的に信頼された砂箱ソリューション(Partial-Trust Sandboxed Solution)、SharePointアプリケーション(Apps for SharePoint).
プログラミングモデル:
その前に、SharePointの開発の歴史を大まかに振り返ってみましょう.本人は2007版から接触していますが、これまでは陳述していませんでした.
SharePoint 2007の主な開発手段は、Server APIとWebService(ASMX)であり、サンドボックスソリューションの概念はなく、クライアント・オブジェクト・モデルも明確に提案されていません.つまり、カスタム・コードはSharePointのサービス・エンドで実行するか、内蔵のWebサービス((%COMMONPROGRAMFILES%Microsoft Sharedweb server extensions12ISAPI、すなわち_vti_binというURLパスの下)は、自分のサービス層で操作を管理します.
SharePoint 2007のクライアントオブジェクトモデルはかなり限られており、Core.jsというJSファイルで実現(本記載によると、Windows SharePoint Services 2003のときはOWS.js)されており、このファイルはSharePointの大部分のページで引用されており、修正しなければ限られた論理処理操作のみが含まれている.例えば、Core.jsはECBの生成ロジックを以下のように提供している.
SharePoint DesignerでCustom_を挿入しますAddDocLibMenuItems関数はSharePointページで独自の論理を実現したり、コンテンツ編集Webコンポーネント(CEWP)を使用してカスタムJSスクリプト関数を挿入したりします.この方法で実現できるものは限られており、柔軟性が悪いので、Core.jsがロードされていない場合は、カスタム拡張は使いにくいです.
SharePoint 2010では、クライアント・オブジェクト・モデル(CSOM)が大幅に改善され、クライアント・モデルは根本的にClient.svcと呼ばれるWCFサービスであり、Silverlight、JavaScript、.NETホスティング・クライアント(C#またはVB.NET)の3つの異なるエージェントが付属している.次の世代コード・クリップは、クライアント・オブジェクト・モデル(JS、sp.js)を適用して非同期クエリー・オペレーションを実行する方法を示している.
続いてSharePoint 2013へ.開発したオブジェクトモデルを大きく豊富にしています.以下の図です.概括的には、サービス・エンド・オブジェクト・モデル(Server API)、クライアント・オブジェクト・モデル(CSOM)、およびWebサービス(RESTOData Endpoint)がある.
最も目立つのはプラットフォーム間RESTサービスですが、サーバ側のカスタマイズ、TimerJobなどの開発作業は、完全に信頼されたフィールドソリューションでしか導入できないため、サーバAPIにはいつでもかけがえのないものがあります.実際の状況に応じて適切なAPIを選択して開発作業を行うことができ、より多くの情報を得ることができます.マイクロソフト側は、開発者がSharePoint 2013のカスタムアプリケーションを構築するために、新しいアプリケーションモデルを優先的に選択することを推奨している.「don't make any new sandboxed solutions」と「build new farm solutions only you absolutely have to」.
SharePoint 2013では、_vti_bin/client.svcを別名として_apiは存在し、すなわちRESTであり、認識しやすく、呼び出しが便利であり、アーキテクチャは下図に示す.
RESTクエリ情報を使用すると、クエリIDが1の連絡先など、非常に簡単です.
http://contoso.com/_api/web/lists/getByTitle('Contacts')/getItemByStringId('1')
また、連絡先を削除したい場合は、次のコードクリップを使用します.
一方、以前SharePoint 2010では、ユーザプロファイル、ワークフロー、検索などのサービス側オブジェクトモデルでしか実現できなかった部分は、クライアントオブジェクトモデルCSOMで実現できるようになった.
次の記事では、SharePointの新しいモデルであるSharePointアプリについて説明します.
ブログアドレス:http://blog.csdn.net/FoxDave
最近SharePoint 2013の開発書を読んで、みんなと一緒にその内容を共有しています.
配置シーン:
ローカル配備(On-premise Deployment)、O 365配備(Office 365 Deployment)、ホスティング配備(Hosted Deployment)、ハイブリッド配備(Hybrid Deployment).
パッケージシーン:
完全に信頼されたフィールドソリューション(Full-Trust Farm Solution)、部分的に信頼された砂箱ソリューション(Partial-Trust Sandboxed Solution)、SharePointアプリケーション(Apps for SharePoint).
プログラミングモデル:
その前に、SharePointの開発の歴史を大まかに振り返ってみましょう.本人は2007版から接触していますが、これまでは陳述していませんでした.
SharePoint 2007の主な開発手段は、Server APIとWebService(ASMX)であり、サンドボックスソリューションの概念はなく、クライアント・オブジェクト・モデルも明確に提案されていません.つまり、カスタム・コードはSharePointのサービス・エンドで実行するか、内蔵のWebサービス((%COMMONPROGRAMFILES%Microsoft Sharedweb server extensions12ISAPI、すなわち_vti_binというURLパスの下)は、自分のサービス層で操作を管理します.
SharePoint 2007のクライアントオブジェクトモデルはかなり限られており、Core.jsというJSファイルで実現(本記載によると、Windows SharePoint Services 2003のときはOWS.js)されており、このファイルはSharePointの大部分のページで引用されており、修正しなければ限られた論理処理操作のみが含まれている.例えば、Core.jsはECBの生成ロジックを以下のように提供している.
function AddDocLibMenuItems(m, ctx) {
if (typeof (Custom_AddDocLibMenuItems) != "undefined") {
if (Custom_AddDocLibMenuItems(m, ctx)) return;
}
// build the rest of OOTB ECB menu items
}
SharePoint DesignerでCustom_を挿入しますAddDocLibMenuItems関数はSharePointページで独自の論理を実現したり、コンテンツ編集Webコンポーネント(CEWP)を使用してカスタムJSスクリプト関数を挿入したりします.この方法で実現できるものは限られており、柔軟性が悪いので、Core.jsがロードされていない場合は、カスタム拡張は使いにくいです.
SharePoint 2010では、クライアント・オブジェクト・モデル(CSOM)が大幅に改善され、クライアント・モデルは根本的にClient.svcと呼ばれるWCFサービスであり、Silverlight、JavaScript、.NETホスティング・クライアント(C#またはVB.NET)の3つの異なるエージェントが付属している.次の世代コード・クリップは、クライアント・オブジェクト・モデル(JS、sp.js)を適用して非同期クエリー・オペレーションを実行する方法を示している.
ExecuteOrDelayUntilScriptLoaded(GetTitle, "sp.js");
function GetTitle() {
//Retrieve current client context
context = SP.ClientContext.get_current();
//Load the site
site = context.get_web(); context.load(site);
//Execute asynchronously with callbacks for successful or failed calls
context.executeQueryAsync(onQuerySucceeded, onQueryFailed);
}
続いてSharePoint 2013へ.開発したオブジェクトモデルを大きく豊富にしています.以下の図です.概括的には、サービス・エンド・オブジェクト・モデル(Server API)、クライアント・オブジェクト・モデル(CSOM)、およびWebサービス(RESTOData Endpoint)がある.
最も目立つのはプラットフォーム間RESTサービスですが、サーバ側のカスタマイズ、TimerJobなどの開発作業は、完全に信頼されたフィールドソリューションでしか導入できないため、サーバAPIにはいつでもかけがえのないものがあります.実際の状況に応じて適切なAPIを選択して開発作業を行うことができ、より多くの情報を得ることができます.マイクロソフト側は、開発者がSharePoint 2013のカスタムアプリケーションを構築するために、新しいアプリケーションモデルを優先的に選択することを推奨している.「don't make any new sandboxed solutions」と「build new farm solutions only you absolutely have to」.
SharePoint 2013では、_vti_bin/client.svcを別名として_apiは存在し、すなわちRESTであり、認識しやすく、呼び出しが便利であり、アーキテクチャは下図に示す.
RESTクエリ情報を使用すると、クエリIDが1の連絡先など、非常に簡単です.
http://contoso.com/_api/web/lists/getByTitle('Contacts')/getItemByStringId('1')
また、連絡先を削除したい場合は、次のコードクリップを使用します.
removeItem = function (id) {
$.ajax(
{
url: _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getByTitle('Contacts')/getItemByStringId('" + id + "')",
type: "DELETE",
headers:
{
"accept": "application/json",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*"
},
success: function (data) {
readAll();
},
error: function (err) {
alert(JSON.stringify(err));
}
}
);
}
一方、以前SharePoint 2010では、ユーザプロファイル、ワークフロー、検索などのサービス側オブジェクトモデルでしか実現できなかった部分は、クライアントオブジェクトモデルCSOMで実現できるようになった.
次の記事では、SharePointの新しいモデルであるSharePointアプリについて説明します.