none
SharePoint上でのカスタムページ(コード付き)の作成方法について RRS feed

  • 質問

  •  

    SharePointのマスターページを踏襲したカスタムページ(コード付き)の作成方法について質問させていただきます。

     

    SharePointのマスターページを踏襲したカスタムページを作成したいと考えているのですが、いまひとつ方法がわかりません。
    一応、以下の方法を考えているのですが、正しいでしょうか?
    なお、該当のカスタムページはコードビハインドで、様々な処理を行う予定です。

     

    1.開発生産性とメンテナンス性の観点より、ビジュアルに開発したいので、Webコントロールライブラリを作成し

    2.それをWebパーツクラスを継承させ、Webパーツを作成します。

    3.ShatePoint Designer 2007を使い、マスターページを踏襲したWebパーツコンテナを持つ静的なカスタムページを作成します。

    4.該当のカスタムページに、先に作成したWebパーツを貼り付けます。

     

    なお、貼り付けたWebパーツ側で、SharePointのログオン情報(ユーザー名やその権限など)を取得する必要があります。

    このあたりを考慮していただき、正当な作成方法に関する情報があれば教えていただけないでしょうか?

     

    以上、よろしくお願いいたします。

    2007年12月19日 1:16

回答

  • こんにちは。松崎と申します。

     

    回答がご質問の意図に合っているかどうかわかりませんが記載させて頂きます。

    以下、ご参考になれば幸いです。

     

    Yama3さんが記載されております通り、SharePoint では、通常の ASP.NET のようなコード付きのページ(コードビハインドで、コードを多く含んだページ)を作成するという概念ではございません。

    ですので、SharePoint Designer ではこうしたコード作成のための機能も提供されておらず、また ASP.NET のようなカスタムのコード付きのページを作成する手順もなくはありませんが(いろいろと裏技的に紹介はされておりますが)、一般的な手順ではないので開発や配置も難解です。(例えば、Visual Studio で標準の aspx を編集する機能も標準で提供はされておりません。)

    これは、ASP.NET などの開発テクノロジーとSharePointがミスマッチしているということではなく、SharePoint という製品の考え方自体が、1からスクラッチで構築するというサーバ環境ではなく、部品を組み合わせてコンポジット的にカスタマイズを実現できるような製品コンセプトになっているためです。(むしろ、WSS3.0 以降より、内部的には、Webパーツの動作の仕組み、ページのホスティング方法、ワークフローなどなど、ASP.NET 、もしくはさらにベースの .NET Framework 上に統一的に動作しており、テクノロジー統一が行われております。)

     

    ですので、SharePoint の開発で高度なコードを含んだページを構築したい場合には、Yama3 さんが手順で示唆されているの通り、「Webパーツ」と呼ばれる部品を作成してここにコードを埋め込み、ページ上のデザイン自体は SharePoint Designer を使用して構築し、作成したページ上のコンテナに先のWebパーツを載せて開発するというのが一般的な手順になります。ログオン情報を取得して処理をしたい場合なども、記載されております通り Web パーツの中から API (Microsoft.SharePoint.dll) を使用して取得をしてください。

     

    開発したものを展開される際には、社内など特定の情報システムや部門などで使用されるケースであれば、「開発者」が作成したWebパーツのみを発行(デプロイ)してエンドユーザに近い運用者の方(「カスタマイズ」をする人)にページに取り込んでもらうという方法でも良いです。

    また、製品開発など、ページそのものを「開発」の対象として不特定多数に展開するのであれば、サイトテンプレートとしてパッケージにして発行したり(例えば、サイトを作る際に「ドキュメントサイト」、「Wikiサイト」などを選んで作成されていると思いますが、あのテンプレート自身を開発できます。但し、Webパーツを貼り付けたページ上でWebパーツどうしの「接続」も設定する場合は、独自の高度なプログラミングなどが必要となります)、カスタムの発行ページを作成したりといったことが可能ですので、このような展開方法もあります。

     

    つまり、SharePoint (WSS3.0, MOSS2007) の開発/カスタマイズでは、User, Designer (または部内のカスタマイズ担当者など), Professional Developer という3つの括りで、どこの利用者にどのようなことを実施してもらうかという切り口での部品化が可能ですので、この辺りを意識して作成して頂くと展開後の運用も効率的かもしれません。

     

    Professional Developer としての活用をご検討される方にとっては、以下辺りのコンテンツが役に立つと思われます。

     

    http://www.microsoft.com/japan/msdn/office/learn/screencasts/default.aspx

    (↑ ページのカスタマイズに関するデモも含んでいます)

     

    http://www.microsoft.com/japan/msdn/events/online/?tab=OFFICE&hash=tab

     

    2007年12月25日 6:17

すべての返信

  • こんにちは。松崎と申します。

     

    回答がご質問の意図に合っているかどうかわかりませんが記載させて頂きます。

    以下、ご参考になれば幸いです。

     

    Yama3さんが記載されております通り、SharePoint では、通常の ASP.NET のようなコード付きのページ(コードビハインドで、コードを多く含んだページ)を作成するという概念ではございません。

    ですので、SharePoint Designer ではこうしたコード作成のための機能も提供されておらず、また ASP.NET のようなカスタムのコード付きのページを作成する手順もなくはありませんが(いろいろと裏技的に紹介はされておりますが)、一般的な手順ではないので開発や配置も難解です。(例えば、Visual Studio で標準の aspx を編集する機能も標準で提供はされておりません。)

    これは、ASP.NET などの開発テクノロジーとSharePointがミスマッチしているということではなく、SharePoint という製品の考え方自体が、1からスクラッチで構築するというサーバ環境ではなく、部品を組み合わせてコンポジット的にカスタマイズを実現できるような製品コンセプトになっているためです。(むしろ、WSS3.0 以降より、内部的には、Webパーツの動作の仕組み、ページのホスティング方法、ワークフローなどなど、ASP.NET 、もしくはさらにベースの .NET Framework 上に統一的に動作しており、テクノロジー統一が行われております。)

     

    ですので、SharePoint の開発で高度なコードを含んだページを構築したい場合には、Yama3 さんが手順で示唆されているの通り、「Webパーツ」と呼ばれる部品を作成してここにコードを埋め込み、ページ上のデザイン自体は SharePoint Designer を使用して構築し、作成したページ上のコンテナに先のWebパーツを載せて開発するというのが一般的な手順になります。ログオン情報を取得して処理をしたい場合なども、記載されております通り Web パーツの中から API (Microsoft.SharePoint.dll) を使用して取得をしてください。

     

    開発したものを展開される際には、社内など特定の情報システムや部門などで使用されるケースであれば、「開発者」が作成したWebパーツのみを発行(デプロイ)してエンドユーザに近い運用者の方(「カスタマイズ」をする人)にページに取り込んでもらうという方法でも良いです。

    また、製品開発など、ページそのものを「開発」の対象として不特定多数に展開するのであれば、サイトテンプレートとしてパッケージにして発行したり(例えば、サイトを作る際に「ドキュメントサイト」、「Wikiサイト」などを選んで作成されていると思いますが、あのテンプレート自身を開発できます。但し、Webパーツを貼り付けたページ上でWebパーツどうしの「接続」も設定する場合は、独自の高度なプログラミングなどが必要となります)、カスタムの発行ページを作成したりといったことが可能ですので、このような展開方法もあります。

     

    つまり、SharePoint (WSS3.0, MOSS2007) の開発/カスタマイズでは、User, Designer (または部内のカスタマイズ担当者など), Professional Developer という3つの括りで、どこの利用者にどのようなことを実施してもらうかという切り口での部品化が可能ですので、この辺りを意識して作成して頂くと展開後の運用も効率的かもしれません。

     

    Professional Developer としての活用をご検討される方にとっては、以下辺りのコンテンツが役に立つと思われます。

     

    http://www.microsoft.com/japan/msdn/office/learn/screencasts/default.aspx

    (↑ ページのカスタマイズに関するデモも含んでいます)

     

    http://www.microsoft.com/japan/msdn/events/online/?tab=OFFICE&hash=tab

     

    2007年12月25日 6:17
  • Yama3 さん、こんにちは。

    フォーラムオペレーターの鈴木裕子です

     

    投稿からかなり時間が経ってしまいましたが、弊社 松崎の投稿はご参考となりましたでしょうか?

    こちらの情報を、ほかの多くの方々にも活用していただきたいと思いましたので、

    勝手ながら私のほうで回答チェックをつけさせていただきました。

    Yama3 さんはチェックの解除ができますので、もし不適切でしたら修正をお願いします。

     

    これからもForumをご活用くださいね!

    それでは。

    2008年8月22日 8:32
    モデレータ