あくまで局所的な話なので、これがすべてではないでしょう、というのを前提にすると、
弊社の講師陣が受けた相談の中でパフォーマンストラブルの原因でよくあるのは
「一つのフォームにコントロールを張り付けすぎている」と聞いております。
解決策は「ビューでフォームをわける」ということであり、上記のテスト1で行われて
いる「(初期ロードのための)空白のビューを追加する」ではないんです。
ブラウザは HTML で送られたテキストを解釈してレンダリングするわけです。レンダ
リングする量が多ければその分そのフォームを表示するまで時間がかかります。
電子フォームソリューションとしての InfoPath + SharePoint は、本当にお手元に
あるだろう「経費精算書」とか「備品購入申請書」など、紙ベースの申請書を、
InfoPath に置き換えて、フォーム ライブラリに蓄積します。フォーム ライブラリその
ものは、上司の机の上にある「受け箱」のイメージです。
そう考えた時に、現実に1つの申請書にそれだけのコントロールが張り付いたもの
が存在しているかどうかを確認してもらうそうです。
弊社の社内システムでの使い方は、たとえば、トレーニングコースの受講申し込み、
見積書、請求書といった、一度入力したデータを再利用するようなものは、1つの
InfoPath フォームにすべてのデータ ソースをメイン データ ソースにいれていますが、
ビューを複数にわけています。基本情報入力ビュー、見積書ビュー、請求書ビュー、
といった形です。印刷用のページがほしければ、条件付き書式でビューの中に
「表示・非表示」といったコントロールを配置せずに、必要なコントロールのみが
ある「印刷用ビュー」を追加してしまいます。1つのビューの中のコントロールを無駄に
多くしない、、、これがポイントのように思えます。
この例の場合、メイン データ ソースには 40 以上のフィールドが存在しますが、
それぞれのビューで使われているフィールド(コントロール)は 20 前後です。
このような現存している紙のフォームを電子化するのは Visual Studio で Web
によるアプリケーションをつくるよりもはるかに生産性は高く、変更も容易で、かつ、
SharePoint のライブラリの「ビュー」を使って、集計、グループ化ができるので、
使い勝手がいいわけです。
また、ブラウザでのフォーム参照を使わないので、上記でおっしゃっているように
「ブラウザまたは InfoPath で、、、、、をデザインする」をオフにして、フォームの
作成、変更を行っています。フォーム ライブラリの新規ボタンをおすと、
テンプレートとして登録した InfoPath フォームが InfoPath を使って表示され、
新しくデータを入力したり、保存された InfoPath フォームの変更を InfoPath から
行っています。
最後の、パフォーマンスの改善のため、クライアントに InfoPath を導入する、、
についてですが、それもあるかもしれませんが、いま取りかかっているものは
本当に InfoPath ですべきものかどうか、、、に依存すると思います。前にも
書いたように、Visual Studio で行っていた Web アプリケーション開発の
すべてを代替するソリューションではないので、本来、InfoPath が苦手な部分を
やろうとしていれば、クライアントに InfoPath が入っても、別の問題が発生する
かもしれません。なので、、、手段として正しいかどうかは、、、なんともいえない
のが正直なところです。
クリエ・イルミネート
沼口