2012-02-07 10 views
0

SharePoint(2010)のベストプラクティスについていくつかの一般的な質問があります。共有ポイントで開発中のベストプラクティスに関する一般的な質問

現在、私はリストから情報を取得する必要がある機能を実装しています。私はこれらの情報をどのように管理するかについてはあまりよく分かりません。私はこれらの情報(User.cs)を管理するのに役立つクラスを作成しました。特定のリストの値を現在検索しているクラスのゲッターがあります。私はどのように値を扱うべきですか?私はそれをメンバに保持し、そのサブジェクトが変更されたときにリフレッシュするか、リストを取得するたびに値をリフレッシュする必要がありますか?

private void doesUserHasActivities(){ 
     using(SPSite site = new SPSite("http://vmsharepoint2010/")){ 
      using(SPWeb web = site.openWeb("http://vmsharepoint2010/")){ 
       SPList list = web.list["Users"]; 
       SPListItem user; 
       /*Information values is refresh each time its accessed, is this bad ?*/ 
       for(int i=0; i < list.items.length; i++){ 
        user = list.item[i]; 
        string accName = user["Acc_Name"]; 
        if(accName == this.providedAccountname){//providedAccountname from a TextBox 
         //found the user i wanted into the list 
         //look if the list has data 
         bool hasActivities = user["Activities"] != null; 
        } 
       } 
      } 
     } 
} 

はまた、正しいユーザーと一致しようとしている各列をループして、活動のリストの値を検索することなく、この場合には、活動のリストを特定のデータにアクセスするが、他の方法とは?

行自体をメタデータのメンバーとして保存できますか?私のリファレンスは、別のユーザーが追加された場合でも、私が望むユーザーリストの行を指していますか?

+0

あなたは[sharepoint.se]でより良い応答を得るかもしれません –

答えて

4

CAMLを学習してCAMLクエリを実行する必要があります。

SPQueryオブジェクトを作成します。クエリのプロパティを必要なものに設定してから、list.getItems(SPQuery query)を使用してクエリに一致するアイテムだけを取得します。

自分でCAMLを把握できます。 SharePointコードを扱う場合は、そのことを学ぶ必要があります。基本的な構文や、ユーザーフレンドリーな構文に基づいて自動生成するためのツールについての多くの情報があります。

アイテムがリストに追加されたり、リスト内で更新されたりすると、アイテムは動的に更新されません。クエリを再実行する必要があります。

+0

ありがとうalot :)私はupvoteをしたいと思いますが、私はすべての担当者を失った! –

+0

2点:1.)LINQとSPMetalを見ることもできます。 2)あなたがあなたに役立つかもしれない人々のように良い答えを記入しないと、コメントとして単純な回答しか得られないかもしれません。 –

+1

CAMLを理解していない人にはLINQ to SharePointを使用することをお勧めします。 LINQはCAMLよりはるかに強力です.LINQ文をCAMLに変換することができれば、実行時のエラーや非常に非効率なコードに悩まされます。これは非常に簡単です。その限界を理解すれば、LINQ to SharePointは便利なツールになります。 – Servy

関連する問題