2011-02-02 9 views
1

私は、Visual Studioを使用してWebパーツを開発できる2つの方法しか認識していません。 sharepoint-Webparts-Development

は第1

は、Webパーツプロジェクトを追加し、適切な方法でコードを書きます。

protected override void OnInit(EventArgs e) 
protected override void OnLoad(EventArgs e) 
protected override void CreateChildControls() 
protected override void LoadViewState(object savedState) //Only at Postback 
protected override void OnPreRender(EventArgs e) 
protected override void Render(System.Web.UI.HtmlTextWriter writer) 
protected override void OnUnload(EventArgs e) 
public override void Dispose() 

ソリューションをVSから直接展開します。 WSPファイルを使用し、STSADM.EXEを使用してサイト/ファーム全体に展開します。これは標準的なアプローチです。

第二のアプローチ:

ユーザーコントロールを作成し、_LayoutsにUsercontrol.ascxとUsercontrol.ascx.csをコピーします。

新しいWebパーツプロジェクトを作成し、

_UserControl = this.Page.LoadControl("\\_layouts\\_UserControl.ascx"); 

を使用してコントロールを登録しVS.からそれを展開します

しかし、このアプローチでは、_layoutsに手動でコピーしているので安全ではありません。

私たちがこのアプローチを採用する唯一の理由は、Webパーツのライフサイクルのさまざまなイベントを見たいと思うようにコントロールを表示できることです。

あなたの会社でどのような取り組みをしているのか誰にでも教えてください。

ありがとうございます。

ハリGillala

答えて

1

私がSharePoint 2007で開発を開始したときは、最初に説明した方法を使用しました。しばらくして、第二の方法のようなものに切り替えました。

しかし、ascxファイルをレイアウトに配置するのではなく、controltemplatesのカスタムディレクトリに配置します。当社のWebパーツのコードは、このように見えた:弊社のWebパーツは、任意の追加のプロパティまたはtoolpartsを持っていた場合

public class OurControlWebPart : WebPart 
{ 
    protected override void CreateChildControls() 
    { 
     base.CreateChildControls(); 
     Control userControl = 
      Page.LoadControl("~/_controltemplates/OurProject/OurControl.ascx"); 
     Controls.Add(userControl); 
    } 
} 

、彼らはこのクラスで処理され、その後、コントロールクラスに転送されます。私は実際にコントロールのロジックとWebパーツのロジックの分離が好きでした。また、HTMLまたはVisual Studioデザイナを使用してコントロールのレイアウトを制御できることが好きでした。

これらのファイルは手動で展開する必要はありません。その後、ソリューションパッケージに含めることができます。機能を12 \ TEMPLATE \ FEATURESディレクトリに展開するパスを持つように、ascxファイルを12 \ TEMPLATE \ CONTROLTEMPLATESに展開できます。

0

間違いなく2つ目だけ(彼らはまさにそのように構築されています)2010年に視覚的Webパーツを見てください。

0

sp2007いずれにしても、あなたのコントロールツリーをどのように構築するかによって異なります。私は最初の方法を好む。

sp2010さらにその他のオプションがあります。

1)最初に選択するのは、コードビルディングアプローチを使用するサンドボックスのWebパーツです。

2)これがあまりにも制限されていると、sp2007のスマートパーツに似た視覚的なWebパーツを試すことができます。

3)そして、標準コードベースのアプローチがあります。