ASP.Net開発者が理解するのが最も難しいSharePoint開発コンセプトは何ですか?
-
07-07-2019 - |
質問
私は、経験豊富なASP.Net開発者向けにSharePoint 2007(最終的には2010年)のトレーニング資料をまとめようとしていますが、SharePointを何年もやってきたので、最悪のこだわりはどこから始まったのか本当に覚えていません-Googlable SharePointコンテンツの量が2年前よりも1桁多いことは言うまでもありません。
とはいえ、SharePointのどの概念を理解するのが最も難しいか、および/またはSharePointのどの部分が初心者のSharePoint開発者には目立たないほど秘密であるのか?
解決
グレッグ、
私の経験では、適切なオブジェクトの破棄に関連する発行( SPWeb および SPSite オブジェクトは、管理されていないCOMの SPRequest ラッパーを参照します)オブジェクト)は一般的な落とし穴であり、多くのスケーラビリティ、パフォーマンス、およびその他のコーディングの問題の原因です。マイクロソフトは、この分野の問題の規模と開発者の混乱の度合いを理解すると、大規模なガイダンス記事( http://msdn.microsoft.com/en-us/library/aa973248.aspx )およびSPDisposeCheckツールを開発しました( http://code.msdn.microsoft.com/SPDisposeCheck )。
これは、「SharePointの新規開発者にはまだ飛び込んではいない」という「私の意見」です。 :-)
価値があるもののために!
他のヒント
最も把握しにくいもののリストは次のとおりです。
- コードアクセスセキュリティとすべての その他のセキュリティ機能
- サイト/アプリケーションの違い ページおよびカスタマイズされた/カスタマイズされていない ページ
- 両方のクエリとすべての 定義
- SharePointにすでにあるもの 車輪を再発明しないでください
-
制御を放棄します。
どのWebパーツを制御することはできません ページとそれらの接続方法。 あなただけにそれらを可能にする必要があります 再利用
どのリストが サイトまたはそこに含まれるフィールド
- 複数のサポートの欠如 言語
- SPWebとSPSiteを破棄しないでください SPContext.Currentからそれらを取得します
- デリゲートコントロール
新しいものの、理解しやすいと思われるその他のもの:
- ソリューション/機能
- マスターページのすべてのプレースホルダー
*コントロールの欠如*
これは、ヤコブセンごとの言及。移動中...
-
好きな場所に.aspxファイルと.masterファイルを入れて編集することはできません。ゴースト除去、サポートなどの結果があり、期待どおりに機能しないことがよくあります。 SharePointがページを構成する方法を十分に理解することが重要です。
-
データベースを直接クエリする(サポートされている信頼できる)方法はありません。これは、専用で適切に設計されたデータベースの設計/操作に慣れているASP.NET開発者にとって非常に苛立たしいものです。 CAMLクエリは、最適化されたSQLクエリのパワーに代わるものではありません。
-
(2bの詳細):リスト間のリレーショナルデータの不十分なサポート。エンタープライズアプリケーションにとっては奇妙です。
-
ちょっとしたトピックですが、HTMLマークアップとCSSは2003年には悪夢であり、2007年にはそれほど良くありませんでした。 Web標準とベストプラクティスに完全に準拠したサイトを作成するには、かなりの時間をかける必要があります。
要約すると、通常は「SharePointの方法」で行う必要があります。多くの場合、これはASP.NET開発者が好む最も効率的でエレガントな方法ではありません。開発者は優雅さが好きで、彼らはコントロールを放棄することを好きではありません。
製品全体にも問題があります(ショーンは重要なものに言及しました)疑いを持たない人のための小さなトリップワイヤーのように潜んでいます。それらを知って理解する唯一の方法は、SharePointを知ることです-それは大きな製品です。
この詳細については、 ASP.NET開発者がWSSを使用しない理由をご覧ください。 SharePointDevWikiで。
既にSharePointにあるものなので、車輪を再発明する必要はありません。私はこれに投票します。
Perがカバーしていることは、ほとんどのポイントをカバーしていますが、さらにいくつか追加します:
-
SPContext-conecptualコード実行の概念。イベントレシーバーのSPContext.CurrentまたはPropertiesオブジェクト。
-
コンテキストに続いて、コードの実行者および実行可能なアクションを理解することも重要です-昇格(特権の昇格)、なりすまし(トークン)、実行(Webサービス/イベント受信者) 。
-
エラー処理-表示されるエラーが「エラーが発生した」だけである場合、全員が悲鳴を上げるため、SPログとエラーコードを理解することが重要です。これは、腹立たしいXMLエラーを追跡する無駄な時間を減らすために重要です。
-
Visual Studioツール-WSPBuilder、Sharepoint用のVSツールなど。統合サイクルを短縮することで、展開とデバッグの苦痛を軽減します。
実際の問題に対してSQL Serverのレポートサービスを使用してレポート/ダッシュボードを作成し、SharePointサイトに表示します。オンラインで見つかった例/チュートリアルの数は、この問題はまだ不十分です(私は推測します)。
実世界のアーキテクチャと実装に関連するすべて。私は開発者ですが、公式のITサポートを待たずに、仮想環境にできるだけクライアント環境を近づけたい場合は、手を汚す必要があります。イントラネット、インターネット、エクストラネット、混合認証メカニズム、代替アクセスマッピング、ホストヘッダー構成などを備えた小さなファームを作成してみてください。これは完全に専用のジョブですが、中規模から大規模の実装を開発する場合は、ダイブする必要があります。