ファーム ソリューションをSharePoint アドイン モデルへ変換する

SharePoint 環境がファーム ソリューションを使用して拡張済みである場合に、SharePoint Online に容易に切り替えられるように拡張機能を SharePoint アドイン モデルに移行するには、ファーム ソリューションを SharePoint アドイン モデルに変換する必要があります。

ファーム ソリューションを SharePoint アドイン モデルに変換するには、既存の拡張機能を分析し、新しい SharePoint アドインを設計および開発してから、運用環境でアドインをテストして展開するという作業が必要です。

この記事では、ファーム ソリューションを SharePoint アドイン モデルに変換する際に従うプロセスとベスト プラクティスについて説明します。

変換プロセスの計画

When you transform your ファーム ソリューション to the SharePoint アドイン モデル, you want to ensure that the impact on your users is minimal. Carefully analyze your current ファーム ソリューション, and then design your new SharePoint アドイン to meet the needs of your organization. 次に示すプロセスで、変換が成功したことを確認するようお勧めします。

準備状況

以下について調べます。

  • SharePoint アドイン モデル、さまざまな種類のアドイン、およびホスティング オプション。 詳細については、「SharePoint アドイン」を参照してください。

  • オンプレミス データにアクセスするためのリモート アクセス テクノロジ。

ソリューションの評価。

以下のようにして、機能要件とビジネス要件を分析します。

  • 現在の環境に展開済みのファーム ソリューションを特定します。 展開済みの拡張機能を特定するには、サード パーティ製ツールの使用を検討してください。 特定した各ファーム ソリューションの詳細な分析を実行します。

  • ユーザーとともに要件を確認します。 日常業務を実行する既存のファーム ソリューションの使い方をユーザーに示してもらうことを検討します。

  • Identifying, documenting, and designing new functionality to include in the new SharePoint アドイン . Consider reviewing your list of new feature requests from your users for additional ideas.

  • 未使用の機能を特定し、新しい SharePoint アドインでその機能を省略することをユーザーと合意します。

  • 各ファーム ソリューションについて、ソリューションを SharePoint アドインで置き換えるかどうかを決定します。 SharePoint 管理拡張機能などの一部のソリューションは、SharePoint アドイン モデルでは複製できません。 詳細については、「SharePoint アプリケーション ライフサイクル管理」と「SharePoint アドインと SharePoint ソリューションとの比較」を参照してください。

ソリューションの計画

以下に基づき、SharePoint アドイン モデルを使用して新しいアプリケーションを設計します。

  • ソリューションの評価手順で収集した要件。

  • 既存コードの分析。 コード分析の実行中に、削除可能なコード部分を特定することを検討します (コードが使用されなくなった、または要件が変更されたなど)。

アプリケーションの SharePoint アドイン モデル バージョンの開発とテスト

これは通常、変換プロセスにおいて最も時間のかかる手順です。

新しいアドインの展開

要件に応じて、新しい SharePoint アドインと並行してファーム ソリューションを稼働し続けるよう決定する場合もあれば、ファーム ソリューションを取り消して、ユーザーが新しい SharePoint アドインだけを使用できるようにする場合もあります。 どちらのシナリオであっても、展開が安定していることを確認し、適切な通知事項をユーザーに送信します。

既存のサイト コレクションのコンテンツがファーム ソリューションに依存していた場合には (たとえば、コンテンツ タイプを使用してコンテンツが作成されているなど)、ファーム ソリューションを完全に取り消す前に、新しい SharePoint アドイン モデル ソリューションを使用するように既存のコンテンツを変換する必要があります。 この作業は時間がかかり、難しい場合もあるので、必ず十分な時間を確保してください。

新しい SharePoint アドインを展開するための変換方法

After you finish development and unit testing of your new SharePoint アドイン , start transforming your ファーム ソリューション to the new SharePoint アドイン by using one of the transformation approaches listed in the following table.

変換方法 説明 メリット デメリット
一括 (インプレース) 新しい SharePoint アドインを、既存の SharePoint 環境内に展開します。

ファーム ソリューションを取り消す前に、サイトで新しい SharePoint アドインが使用されていることを確認する必要があります。
  • 全体的なユーザーへの影響が抑えられます。
  • 既存の SharePoint 環境を使用するので、必要なリソースが少なくて済みます。
  • サードパーティ製のツールは必要ありません。
  • サイトのダウンタイムは最小限に抑えられます。
  • ファーム全体を一度にアップグレードするのではなく、サイト コレクションを一度に 1 つずつアップグレードします。
  • URL は変更されません。
  • サイト上の影響を受けるすべての資産について、完了の進捗状況を追跡することは困難です。
  • 孤立オブジェクトが発生する可能性が高くなります (システム上の存在しないファイルをポイントする資産を、孤立オブジェクトといいます)。
スウィングまたはコンテンツ移行 ファーム ソリューションが現在展開されている既存のサイト コレクションからコンテンツを抽出し、新しい SharePoint アドインを使用する新しいサイト コレクションにそのコンテンツを展開します。

一般に、SharePoint Online にコンテンツを移行する場合には、このプロセスを使用します。
  • 以前のファーム ソリューションへの依存関係がない、クリーンな SharePoint 環境。
  • 新しいサイト コレクションは運用環境から分離されます。 準備ができたら、更新されたサイト コレクションをリリースします。
  • .
  • コンテンツ移行にはサード パーティ製のツールによる支援が必要になります。
  • 追加の SharePoint 環境が必要です。
  • サイトのダウンタイムが必要です。
  • 並列で実行している両方のサイトを一定期間保持する場合は、URL を変更できる場合があります。

特定のファーム ソリューションのベスト プラクティス

特定のソリューションを変換する際は、次のベスト プラクティスを適用してください。

ページ レイアウトとマスター ページ

カスタム ページ レイアウトとマスター ページが、公開サイト、または公開機能が有効になっているチーム サイトに存在している場合があります。

ページ レイアウトとマスター ページを置換するには、次のようにします。

  1. 新しいページ レイアウトまたはマスター ページをサイトにアップロードします。 手動でまたはリモート API を使用して、新しいマスター ページとページ レイアウトをサイト コレクションにアップロードします。 リモート API には、クライアント側オブジェクト モデル (CSOM) または REST が含まれます。 これにより、マスター ページとページ レイアウトは、ファーム ソリューションへの依存関係を持たないことになります。

  2. 新しいページ レイアウトとマスター ページを使用するようにサイトを構成します。

  3. 以前のバージョンのページ レイアウトとマスター ページは取り消します。

Web パーツとコントロール

Web パーツとコントロールを置換するには、次のようにします。

  1. 既存のすべてのページをスキャンして、Web パーツがあるページを特定します。

  2. (省略可能) 新しい Web パーツを確認して、そのいずれかでカスタム Web パーツを置き換えることができるかどうか判断します。

  3. 既存の Web パーツをアプリ パーツ インスタンスで置き換えるか、または他の方法 (ページまたはページ レイアウト内の埋め込み JavaScript など) を用いて同じ機能を実現します。

  4. UI 要素を操作するには、埋め込み JavaScript を使用します。

注:

既存の Web パーツをアプリ パーツに置き換えるには、次の作業が必要になります。

  • Office 365 サブスクリプションでアドインのサイドロードを有効にします。 Office 365 管理者に問い合わせてください。
  • CSOM を使用して、サイトでアドインのサイドロードを有効にします。 詳細については、Core.SideLoading のコード サンプルを参照してください。
  • サイトにアプリ パーツをインストールします。
  • サイトでアドインのサイドロードを無効にします。
  • Office 365 サブスクリプションでアドインのサイドロードを無効にします。 Office 365 管理者に問い合わせてください。

ページ操作

カスタム サイト プロビジョニングの処理中に、ページ操作の実装が必要になる場合があります。 Provisioning.Pages コード サンプルでは、Wiki ページの作成、ページへの HTML コンテンツの追加、昇格されたリンク リストの作成、レイアウトが異なるページの作成、すぐに使用できる Web パーツのページへの追加、ページの削除など、ページ操作の手法を示しています。

サイト列、リスト定義、およびコンテンツ タイプ

サイト列、リスト定義、およびコンテンツ タイプが、ファーム ソリューションを用いて展開された機能フレームワーク要素を使用して作成されている場合は、スウィングまたはコンテンツ移行の変換方法を使う必要があります。 これは、サンドボックス ソリューションを使って展開された機能フレームワーク要素には該当しません。 コンテンツ移行の変換方法を使用するには、ファーム ソリューションの依存関係を削除するために、サード パーティ製のツールを使う必要があります。

モジュールまたは機能フレームワーク

モジュールは、ファイルへのポインターを使用します。つまり、ファイルはカスタマイズされずに、ファイル システムに配置されるということです。 ファーム ソリューションがモジュールを使用している場合は、コンテンツ データベースに同じファイルの別のバージョンを配置してファイルをカスタマイズします。その上で、ソリューションをスキャンしてコンテンツ データベースに格納されている新しいファイルをポイントするように更新し、ファイル システムに格納されているファイルをポイントしているファーム ソリューションを取り消します。

サイト テンプレートと Web テンプレート

サイト テンプレートまたは Web テンプレートによって配置される機能フレームワーク要素の変換は、注意深く行う必要があります。 たとえば、ファーム ソリューションを取り消す際は、サイトの default.aspx ページが置き換えられないようにします。

タイマー ジョブ

SharePoint Online を使用している場合は、タイマー ジョブを作成したり管理したりすることはできません。 代わりに、Windows タスク スケジューラーまたは Azure WebJob を使用するコンソール アプリケーションを作成して、リモートでコンソール アプリケーションをスケジュールして実行できます。

カスタム タイマー ジョブを作成するときは、特定のアカウントや OAuth ベースのアプリ専用トークンを使用する必要があるかどうかを判断します。 Core.TimerJobs.Samples コード サンプルに、独自のカスタム タイマー ジョブを作成する方法が示されています。

注:

タイマー ジョブがサーバー側のコードを使用する場合は、CSOM または別のメソッドを使用するようにタイマー ジョブを再設計する必要があります。

このセクションの内容

記事 以下の方法を説明します
コンテンツ タイプとサイト列の置換 CSOM を使用して、SharePoint コンテンツ タイプとサイト列を置換し、新しいコンテンツ タイプにサイト列を追加して、コンテンツ タイプを新しいコンテンツ タイプと置換します。
モジュールを使用して展開されたファイルの置換 ファーム ソリューションに含まれるモジュールを使用して展開された、SharePoint のマスター ページやページ レイアウトなどのファイルを置換します。そのためには、新しいファイルをアップロードし、それらのファイルを使用して参照を更新します。
リスト定義に基づいて作成されたリストの置換 SharePoint のリスト定義を使用して作成されたリストとライブラリを置換します。
Web パーツの置換 変換プロセスを使用し、SharePoint クライアント オブジェクト モデル (CSOM) を使用して、Web パーツをアドイン パーツに置換します。

関連項目