8

ASP.NET でいくつかのユーザー コントロールを開発するように依頼されました。これは、後で Web パーツとして SharePoint サイトに取り込まれます。私は SharePoint を初めて使用するので、これらのパーツのプロトタイプを作成する必要がある間、SharePoint サーバーにアクセスできません。

このアプローチが機能しない理由を知っている人はいますか? このアプローチが推奨されない場合、他のオプションは何ですか? SharePoint を念頭に置いて ASP.NET Web パーツを開発する際に考慮すべきリソース/チュートリアルに関する提案はありますか?

ありがとう

編集: 2008 年 12 月 31 日 ついにこれに対する回答をマークしました。SharePoint ルートをすぐに使用することが、最初は苦痛でしたが、最善の方法であることに気付くまでにしばらく時間がかかりました。無料の VPC イメージを使用すると、比較的簡単に開発をセットアップできます。

私が行ったように、SharePoint を使用せずに ASP.NET で Web パーツを開発することはできますが、SharePoint アプリケーションの開発と展開に関しては、何も学んでおらず、学習曲線を先に進めて、完了したと思ったときだけです。 、(そしておそらく利害関係者にその旨を通知した)。SharePoint の学習曲線を遅らせることは、あなたやあなたのプロジェクトにとって何のメリットもありません。最終的な製品は、その過程で得た専門知識により優れたものになります。

4

10 に答える 10

3

ASP.NET Web パーツは、ASP.NET での動作と同じように SharePoint で動作します。それが私がたどるルートです ( ASP.NET Web パーツクラスから派生したカスタム コントロール)。これにより、SharePoint サーバーで実際に開発するための要件が​​緩和されます。

発生する唯一の問題は、SharePoint フレームワークを利用できないことです。SharePoint で高度なことを行っている場合、これは大きな問題です。ただし、SharePoint は ASP.NET といくつかの追加機能であるため、 System.Web.UI.WebControls.WebPartクラスを使用して開発できるものはすべて、SharePoint でうまく機能するはずです。

純粋な ASP.NET から SharePoint に移行する際の負担を軽減するのに役立ついくつかの考慮事項:

  • 単一のアセンブリ内にすべてを配置できれば、展開が容易になります
    • SharePoint に展開されている DLL に必要なものをすべて入れてみてください
    • アセンブリ リソースを使用して、必要に応じて JS、CSS、および画像ファイルを埋め込む
  • 構築しているアセンブリに厳密な名前を付ける
    • ほとんどの SharePoint 展開は GAC で終了し、厳密な名前が必要になります

関連するブログ投稿は次のとおりです。SharePoint 2007 での基本的な Web パーツの開発

于 2008-09-25T13:55:48.680 に答える
2

最も簡単な方法は、CodePlexからSharePoint用のSmartPartを使用することだと思います。プロジェクトの説明には、「任意のASP.NETWebユーザーコントロールをホストできるSharePointWebパーツ。コードを記述せずにWebパーツを作成してください!」と書かれています。これはまさにあなたがやりたいことだと思います。

于 2008-09-25T13:40:57.153 に答える
2

Sharepoint 用に開発するためにマシンをセットアップするのに数日かかりました。

http://weblogs.asp.net/erobillard/archive/2007/02/23/build-a-sharepoint-development-machine.aspxを参照してください。

于 2008-09-25T13:42:32.737 に答える
2

非常に短期的なものである場合、マイクロソフトは期間限定の WSS 評価用 VPC イメージを用意しています。

WSS3 SP1 開発者評価 VPC イメージ

独自の VPC イメージを今すぐセットアップする時間/リソースがない場合は、これで開始できます。

于 2008-09-25T14:21:17.433 に答える
0

ユーザーコントロールをWebパーツとして展開する必要がある特別な理由はありますか?ユーザーコントロールを、12ハイブのCONTROLTEMPLATESフォルダーまたはWebアプリ仮想ディレクトリ内の場所のいずれかを介してSharepointサイトに直接展開することは完全に可能です。この場所は、SharepointDesignerを使用してWebページから参照できます。

ただし、Webパーツの要件が重要な場合は、すでに述べたように、Sharepoint用のSmartpartをお勧めします。

于 2008-09-25T22:06:14.443 に答える
0

共有ポイント サーバーなしでは Web パーツをシミュレートできないため、共有ポイント サーバーにアクセスする必要があります。共有ポイント サイトにデプロイして、機能しているかどうかをテストする必要があります。デバッグも面倒です。SmartPart を使用することもできます。これは、SharePoint サイトに表示するユーザー コントロールのラッパーのように機能する Web パーツです。

于 2008-09-25T13:33:20.653 に答える
0

通常の .net Web サイトの場合と同様に、コントロールを構築してテストします。ソリューション 1 = コントロール ソリューション 2 = コントロールをホストするダミー Web サイト。

SharePoint への展開:

コントロールに署名する必要があります。

署名済みの DLL を共有ポイント サーバー (Windows/アセンブリ) の GAC にドロップします。

SharePoint サイトの仮想サーバー ルート web.config でコントロールを安全としてマークします。

すなわち

<SafeControl Assembly="MyControl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=975cc42deafbee31" Namespace="MyNamespace" TypeName="*" Safe="True" AllowRemoteDesigner="True" />

SharePoint ページにコンポーネントを登録します。

<%@ Register Namespace="MyNamespace" Assembly="MyControl, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=975cc42deafbee31" TagPrefix="XXXX" %>

コントロールを使用します。

<XXXX:ClassName runat="server" Field1="Value1" Field2="Value2" ....></XXXX:Classname>

同じバージョン番号を使用してコントロールを置き換える必要がある場合は、アプリ プールをリサイクルして再読み込みする必要があります。

于 2008-09-25T13:46:07.767 に答える
0

SharePoint 固有の操作 (つまり、リストや他の Web パーツへのアクセスなど) を行う必要がない場合は、通常の Web パーツ (System.Web.UI.WebControls.WebParts.WebPart クラスから派生) と同じように Web パーツを構築できます。 SharePoint サイトに追加すると機能します。

于 2008-09-25T13:50:24.107 に答える
0

実際には、Web パーツは「悪用」の性質があるため、常に共有ポイントの bin フォルダーに展開する必要があります。可能であれば常に Web パーツをビンに配置し、独自の CAS を作成してマニフェストに含めます。

于 2008-09-26T06:59:36.753 に答える
0

Web パーツの開発に SharePoint は必要ありません。System.Web.UI.WebControls.WebParts から継承して Web パーツを開発できます。次のような機能が必要でない限り、これは Web パーツを作成するための望ましい方法です。

* Connections between web parts that are outside of a Web Part zone

* Cross page connections

* A data caching infrastructure that allows caching to the content database

* Client-side connections (Web Part Page Services Component)

その場合、Microsoft.SharePoint.WebPartpages.WebPart から継承して Web パーツを開発する必要があります。ここでさらに役立つ情報を見つけることができます

于 2008-09-25T18:49:59.597 に答える