迅速かつ簡単な: C# で SharePoint オブジェクト モデルを使用して Web サイトの準備します。

サイト コレクションで新しい spweb インスタンスを作成する方法を示すだろう少しのスニペット コード探してみる. 一緒に件名に少しエントリ私スラップだろうと思ったので私が期待どおりにすばやく、簡単に、それを見つけられませんでした。.

このコードは、新しい Wiki サイトを作成します:

 SPSite サイト コレクション;

    サイト コレクション = 新機能 SPSite("http://conchang o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy タイトル",
        「xyzzy 説明", 1033, SPWebTemplate.WebTemplateWIKI, false, false);

「Sharepoint オブジェクト モデルを使用して web サイトを提供するようなフレーズを探していたので私の最初の検索が失敗しました" など.

場合します。 検索 "Webs.Add のため()", 非常に有用なブログのエントリの数を見つける, Msdn ライブラリのドキュメントとこの主題の深さに入る SDK ドキュメント. 私は間違いなくお勧め このサイト.

</終了>

私のブログを購読します。.

Technorati のタグ:

SharePoint Designer ワークフローで Web サービスとの統合します。

私は SharePoint デザイナーのためのカスタムの動作をいくつかの時間を遊んでてきた (ここを参照してください。 いくつかの詳細なもの, 場合は、あなたの興味).

私の現在のプロジェクトで, かなり重い負担をしなければし、関連付けられているビジネス プロセスを管理する宣言型 SPD ワークフローを使用します。.

長い話を短く, これは完全に可能です。. 私は「ヘルパー サービスを呼び出す私の Codeplex プロジェクトを拡張" 今我々 は SPD ワークフローから直接 web サービスを呼び出すことができます。.

ここでは、署名です。:

 パブリック 文字列 ディスパッチャー(
        Guid WebID, // ランタイム環境によって渡される
        Guid SiteID, // ランタイム環境によって渡される
        文字列 ListID, // RTE によって渡される (分からないなぜこのような文字列, GUID ではないです。)
        int ListItemID, // RTE によって渡される.
        文字列 指定します) // SPD で宣言されている、ユーザーによって渡されました。.

これは、我々 が重要なワークフロー情報で得ることができるという事実を活用してください。, サイトのような, リスト ID, など. これはよく独自のカスタム アクションを作成するのに興味があるあなたのそれらのいくつかの場所に記載されています。. アイデアは、ディスパッチの適切な手順をユーザーが指定した XML 文字列を抽出するには. 楽しいもの!

悲しいことに, これは明らかにダウンへの片道切符です。 "リラックスしました。" アンチ パターンの土地, それはレンガの壁を打つよりはましです🙂

アンチ パターンだとわかっていてもそれを行う場合、アンチ パターンは?

近い将来、Codeplex の中これをラップしたいです。. そう私に興味があるなら, 私に突くを与える (電子メール またはコメントを残してください) そして私はそれをやっについてのより多くの熱狂的なことでしょう🙂

</終了>

私のブログを購読します。.

Technorati のタグ: ,

日曜日面白い: “あなたのパスワードはのだろうか …”

私は最近私の兄に昼食を購入 (いつものように) 我々 は我々 のそれぞれの大学で行った面白いものについて話して終わった. 私の母校で, ラファイエット大学, 学術支援 IT 部門はそれについて非常に包括的な方法を持っていた. ロープの多くを与えられた、に乗じてその時.

2 つの私のお気に入りの思い出は私の良き友人に関連, ゲイブ. 彼は"新入生私彼の 1年生を人々 に伝えるひどい間違いをしました。, 2 年生を持って立っています。" ために彼を撮影した様々 な高度の配置クラス, など. 私たちの多くが同様に位置していたが、それについてあまり話はしなかった. 彼の年長年, 私たちが人々 に彼を導入したとき, 「この、ゲイブと言えるだろう. 彼が先輩, 彼は 2 年生が立っている".

大学は、X ウィンドウを実行しているいくつかの Sun ワークステーション/サーバーを持っていた. 彼らは巨大なモニターを持っていた、エンジニアは、CAD や他の退屈なエンジニアのもののためにそれらを使用. Cs の人々 は、プログラミングを学ぶためにそれらを使用し、, もちろんです, ゲームをプレイするには.

我々 ははるかに私たちの好きなことの 1 つでなるのでボックスに telnet を彼らにコンピューター無力なエンジニアであったし、実行のようななかった X 目 それらの. これが画面上マウスを続けて目のペアにポップアップ. さらにポップして文字通り 1 ダース以上の実行 X 目アプリケーションがあります。. 不運なエンジニアが、それについての彼の息の下でX-目とつぶやいた後、X-目の近くにしようとしている時に大声で笑うしないようにしてください🙂

また、これらのボックスの X トレックを演奏. するには, ソースをダウンロードしていた, どこに可能性がありますそれらを見つける、それを構築、さまざまな依存関係を取得します。. 洗練された C プログラマはなかった, ヘッダー ファイルを読むことができるが、. 私はこれらを探していたし、ようなディレクティブが見つかりました"#DEFINE MAX_TORPEDO_DISTANCE 10」. で遊んだフェーズと魚雷の範囲と力を向上させる, 再構築され、その破棄ゲイブ次回私たちを果たした.

ゲイブはまた呼ばれる TV ショーの巨大なファンだった ブレイク 7. それを見たことがなかった, 主張しているから私を防止していないが、その博士. 誰が優れたショーです。. 引数は時間で加熱になるだろう🙂

1 日, それは私に起こった、私はおそらく彼の UNIX のパスワードを推測できます。. 私は 1 日彼の隣に座ったし、口調で大声で発表, "私はつもり今パスワードを推測するには, ゲイブ。" "はい, 右" 彼の質問と回答. 私にログインします, 自分のユーザー id を入力, 彼の顔になってください。, 入力し、大声で言った, "私はそれは B-L-A-K-E-7 だろう" ? タッチタイピングは決してうかったようその日と同様に.

来週 (またはすぐに): 大学から多くのコンピューター ルームおどけ.

共有するいずれかがあります。? コメントを残したり、メールを私と私は、ここでそれらを公開します.

</終了>

私のブログを購読します。.

Technorati のタグ:

マイナーな公表: Windows Live のセキュリティ設定と接触領域の所有者

私はメッセージの一握りの組み込みを介して個人から」メッセージを送信受信します。" 関数 Microsoft ライブ スペースを提供します。 (これも私のブログをホストします。) 毎月.

時間の 3 分の 1 について, 返信できないように、それらのユーザーは彼らのライブ スペースのアカウントを確保しています。. これは、私と仮定スパム対策機能のいくつかの種類.

</終了>

簡単な説明: “値は、予想の範囲内は該当しません。”

更新プログラム: 内部名についての素晴らしいコメントを残された匿名のポスター. それを必ずお読みください。.

イベント レシーバーとオブジェクト モデルを介しての SharePoint リスト アイテムを参照する他のコードを使用する場合, 私は多くの場合、この実行時エラーを生成ミスします。:

読み込みエラーとイベント レシーバー Conchango.xyzzyEventReceiver xyzzy で実行, バージョン 1.0.0.0 を =, カルチャ ニュートラル =, PublicKeyToken = 0dc50a750396c3ac. 詳細は以下、します。. : 値が予想される範囲に該当しません。.

これは多くの異なる方法を引き起こされる可能性がある非常に一般的なエラーだと思う. ただし, 1 つの簡単な説明は、私を参照することがないフィールド正しく. フィールドの名前が「期日」の場合, 私はこのようなイベント レシーバーで参照する必要があります。:

プロパティ。ListItem[[期日]]

とき私はスペルミスまたはフィールドを参照するとき、間違ったケースを使用, SharePoint を上記生成するランタイム エラーに言及. たとえば, これは間違っています。:

プロパティ。ListItem[[期日]]

</終了>

私のブログを購読します。.

Technorati のタグ:

エンド ・ ユーザーのクイック ヒント: ドキュメント ライブラリ内の並べ替え回, 一覧, など.

私たちすることができます。, 必要があり、SharePoint リスト内の多くのビューを作成しないでください (ドキュメント ライブラリ, カスタム リスト, など). SharePoint は、常にアルファベット順に使用可能なビューをリストします。. 我々 はボックスの機能を使用してこれを変更できません。. カスタマイズを介して行うことができる場合 (それができるのかはよく分からない), それはこれまでに、典型的なエンド ・ ユーザーにとって技術的.

どの SharePoint の順序を制御する場合が利用可能なビューの一覧を示します。, 単に数字またはビュー名に文字を付加します。, ように:

1 – 材料の種類によって
2 – すべてのドキュメント
3 – 期日

-または-

A – 材料の種類によって
B – すべてのドキュメント
C – 期日

私もその目的は厳密に KPI をフィードするビューを作成しています。. この名前付け規則を追っています。:

Z_KPI_[説明]

私の"KPI を原因します。" リストの下部に表示するビュー.

</終了>

私のブログを購読します。.

日曜日面白い: “私は小さな男の子だった”

親として, どこかのラインに沿って私を発見した、"とき私は小さな男の子だった" トリック.

私の息子, おそらく 4 〜 5 時, バルーンを遊んでいたし、風船で遊ぶ最も小さな男の子のように, 彼はそれをポップ. 彼は非常に怒っていた. 世界が終わりに来ていた. 私は彼に言った, 「時私は小さな男の子だった, バルーンを有しそれをポップし、最終的に, 私は、新しいバルーンを得た。" 楽しいは少年の頃のようなだった話それ彼彼の損失に対処するために役立つように見えたし、につながった.

仕事と同様、慰め技術とそれを数回使用時間の次の期間に. 私は一度トラブルに入れたとき彼のモンスターファーム 3 クリーチャーが死亡しました。. 方法について話をした私の犬, 王子, 車の事故で死亡していた. 今度こそです, 彼の答えは, 「今気持ち悪いの約 2 つのこと!" 私はときを使用して、"私は小さな男の子だったから敬遠" その後の慰めのためのテクニック.

死んだ犬の事件の前に, ただし, また家事を行うに彼を説得する手法を使用し始めていた. 「時私は小さな男の子だった, 新聞を得るに出ていた", 「部屋の掃除」, 「ママ彼女のコーヒー カップを得る」, など.

これはあまりにもしばらくはかなり成功され, 彼はますます私の幼年期の専制政治に対して反逆し始めたが、. 1 つのイベント, 特に, 終わりを告げた. 縁石からガレージにゴミ缶をもたらすと言った. 私は答えたと主張しました。, 「時私は小さな男の子だった, 私はガレージに戻ってゴミを取らなければならなかった。" 彼は答えた, "ああはい! 小さな男の子がいたときも, それは愚かだった!".

</終了>

私のブログを購読します。.

Technorati のタグ:

ビューとリストおよびドキュメント ライブラリの列の中にはセキュリティで保護することはできません。

更新プログラム (02/29/08): この新しい codeplex プロジェクトの個々 の列を固定する方法を提供するようです。: http://www.codeplex.com/SPListDisplaySetting. 作業の経験がある場合, くださいコメントを残す.

フォーラム ポスターは頻繁にこのような質問をします。: 「マネージャー ・眺めるリストのスタッフ ビュー. スタッフはそれには使えないのでにマネージャーの表示を保護する方法?"

彼らもよく、関連質問します。: 「他の人もそれを見る可能性がありますできませんがマネージャーのみ列を編集できるようにする特定のメタデータ列をセキュリティで保護します。"

これらの答えは、両方の WSS に適用します。 3.0 苔:

  • SharePoint ボックスの回のセキュリティ保護をサポートしていません.
  • SharePoint のセキュリティ列をボックスのサポートはありません。.

これらの種類のセキュリティ要件を満たすために従うことができますいくつかのテクニックの 1 つがあります. ここでは、私が考えることができます。:

  • ボックスのアイテム レベルのセキュリティを使用して、. ビューは、常に項目レベルのセキュリティ構成を優先します。. イベント レシーバーおよびワークフロー セキュリティの割り当てを自動化することができます。.
  • "特権の個人用ビューを使用します。" 表示モード. これらは十分に簡単にセットアップ. ただし, 彼らの"個人のために" 自然, これらはユーザーごとに構成する必要があります。. 誰が個人用ビューを作成するを防ぐために標準のセキュリティ構成を使用します。.
  • データ ビュー web パーツを使用していくつかの種の AJAXy セキュリティ トリミング ソリューションを実装します。.
  • 独自リスト表示機能を展開し、列レベルでのセキュリティ トリミングを組み込む.
  • データ入力フォームを変更して JavaScript を列レベルのセキュリティ トリミングを実装するセキュリティ モデルと組み合わせて使用してください。.
  • データ入力のための InfoPath フォームを使用します。. SharePoint と条件付きで必要に応じてフィールドの非表示に web サービス呼び出しによって列レベルのセキュリティ トリミングを実装します。.
  • 独自の ASP をロールバックします。列レベルのセキュリティ トリミングを実装する NET データ エントリ関数.

これらのオプションのどれも本当に素晴らしいです。, 存在する必要がある場合に、少なくとも、パス, 場合でも、ハード.

メモ: 場合は、これらのパスのいずれかの下に行く, 「アクションについて - 忘れてはいけない> Windows エクスプ ローラーで開く". あなたは、"バック ドアとして動作しないことを確認する機能をテストすることをできるようにしたいです。" セキュリティ スキームの敗北.

他のアイデアや列またはビューのセキュリティ保護と経験がある場合, してください。 私にメールします。 または、コメントを残すし、私はこの投稿を適切に更新されます。.

</終了>

私のブログを購読します。.

Technorati のタグ:

クイック ヒント: BDC ADF のバージョン番号をあなたの友人です。

場合は手のコーディングしている ADF ファイルとコード/インポート/テスト ・ サイクルの多くを行うこと, バージョン番号を使用するあなたの人生を簡単に.

それを認めることを憎む, しかし、この 1 週間まで, 私はいつも ADF を削除して、再インポートすることだった. これは私のビジネス データ列を破るし、再それらを配線させて. すべての不要です.

「それは明らかに一度それを参照して」の下にこれを提出します。.

例:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" タイプ="Web サービス" バージョン="1.2.0.0" 名前="xyzzyDocumentReview" xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

その変更のバージョンを再インポートして既存のビジネス データ列、更新されたバージョンに自動的に追加構成は必要ありません。.

</終了>

私のブログを購読します。.

Technorati のタグ:

ソリューション: BDC の選択コントロールは 1 列だけの結果を示しています

私に行く試みを提供することで、 BDC を使用してより有用なルックアップ列, BDC の選択と壁をヒットします。. いない場合はそれを参照してください。, BDC ピッカーは似て人々 ピッカーに「ビジネス データ種類列を持つ作品.

示すように、ビジネス データ列の開いた本のアイコンをクリックして、ピッカーにアクセスします。:

イメージ

上記の図では、"マスター ドキュメント Id"と呼ばれるビジネス データ列. その列が接続されています。, BDC を介して, web サービスに. Web サービスは、2 列の情報を返します: 文書番号およびタイトル. ビジネス目的で提供することです、"このドキュメントに基づきます" 関数. ユーザーは、"マスターを選択します。" ドキュメントと保存と, イベント レシーバーは、参照されるマスターからメタ データ フィールドをコピーします。.

既定では, BDC の選択このようなドキュメント ID を持つ捜すとき =「38」:

クリップイメージ002

有益であります。, 十分によくないが、. Id の面で考慮しない人, 彼らはタイトルおよび/またはその他のメタ データの観点から考える. ピッカーは、他の列に検索することができます。 (例えば. タイトル) しかし、実際にそれを発見したタイトルの一覧は表示されません。, ちょうどその DocId のとおり:

クリップイメージ002[1]

(有効な結果を返す検索をピックアップしていないのでとても素晴らしいスクリーン ショットではないです。, いくつかの結果を発見した場合、それを見ることができます。, それだけ DocId を示しているだろう, タイトルではないです。).

私はこれに答えを捜したがハイとロー、失敗しました。. 私の同僚, 由緒あります。 ジョナサン ・ ブラッド ショー, 直面し、この問題を解決していた. 助けを彼にうちをたどり着いたとき, 彼は正しい方向に私を指摘しました。.

"ShowInPicker 経由で複数の列を表示する選択ウィンドウを構成します。" ADF のプロパティ:

<プロパティ 名前="ShowInPicker" タイプ="ブール値。">true</プロパティ>

さらに詳しく:

  <!-- タイトル -->
  <TypeDescriptor TypeName="System.String" 名前="タイトル" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">タイトル</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <プロパティ>
      <プロパティ 名前="DisplayByDefault" タイプ="ブール値。">true</プロパティ>
      <プロパティ 名前="ShowInPicker" タイプ="ブール値。">true</プロパティ>
    </プロパティ>
  </TypeDescriptor>

このプロパティを設定はマイナーな問題をご紹介します。. 一度設定するとすぐに, すべての列を表示するために設定する必要があります。. 私の場合, BDC の選択コントロールが既定で DocId を示した. ただし, "ShowInPicker を追加" タイトルに, DocId 表示されなくなります. ドキュメント ID の ShowInPicker プロパティを明示的に設定することを解決.

ここでは、結果です。:

イメージ

(奇妙な"168 を説明します – CamlSchema.xsd" 今後のブログ記事で建設. 要するに, それはわずかにより良いユーザー エクスペリエンスを可能にする、連結された文字列です。).

もちろんです, このブログのエントリを書いたこと, 私はちょうど"ShowInPicker の検索" 数々 のヒット曲が見つかりました, この 1 つを含む: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. いくつかの他の良い BDC のものと一緒にそのプロパティの意味を説明します。.

</終了>

私のブログを購読します。!

Technorati のタグ: