scriptManagerとグローバル化とローカリゼーション



ScriptManagerコントロール


Beta 2変更:ScriptManagerコントロールには、サーバ上のブラウザ機能から派生したSupportsPartialRenderingプロパティが用意されています.一部のページ表示がサポートされていないブラウザでは、UpdatePanelコントロールを通常の再送に戻す必要があります.
Beta 2の変更:ScriptManagerコントロールは、開発者がブラウザでフォーカスを管理できるようにするSetFocus APIと互換性があります.
Beta 2変更:ScriptManagerコントロールはRegisterDisposeメソッドを提供し、クライアントコンポーネントの登録時にリリース可能オブジェクトとして呼び出すことができます.これは、コンポーネントが関連するDOM要素をUpdatePanelコントロールと一緒に使用する必要があることを意味します.
RC変更:ScriptManagerクラスには、DOM要素を使用することなく、コントロールとエクスパンダがクライアントコンポーネントを解放可能オブジェクトとして登録できるRegisterDisposeメソッドが追加されました.この操作はScriptDescriptorタイプで自動的に行われます.
RTM変更:ControlオブジェクトではなくPageオブジェクトをパラメータとして扱う、静的スクリプト登録方法の新規リロードの前のセクションの説明を参照してください.
RTMバージョンでは、ScriptManagerコントロールにはEntablePartialRenderingプロパティがあり、デフォルト値はtrueです.これにより、UpdatePanelコントロールを使用して非同期再送を定義する際に必要なステップが短縮されます.
コントロールの複雑さを軽減するために、ScriptManagerのErrorTemplateプロパティをRTMバージョンから削除しました.独立した新しいサーバコントロールの作成など、現在のエラー処理モードは柔軟性があります.また、ScriptManagerのAsyncPostBackErrorMessageプロパティからエラー処理を追加することもできます.デフォルトのエラー情報のみが設定されています.メッセージを動的にカスタマイズするには、AsyncPostBackErrorイベントを処理します.
ScriptManagerは、AsyncPostBackTimeoutプロパティを提供し、非同期再送のタイムアウト時間を制御します.
ScriptManagerコントロールは、サーバコントロールに必要な新しいリソース登録方法をサポートします.これらの方法は、UpdatePanelスキームのサポートを追加し、CTPバージョンでのUpdatePanelコントロールの複雑さを低減します.リソースには、スクリプト、スタイル、非表示フィールドなどが含まれます.スクリプト登録メソッドはClientScriptManagerメソッドに対応しています.これらは、コントロールインスタンスをパラメータとして受け入れることができるため、UpdatePanelサーバコントロールに登録済みスクリプトのコントロールが含まれている場合は、このコントロールを正しく追跡できます.

グローバル化とローカリゼーション


Beta 2の変更:グローバル化とローカリゼーション機能が追加されました.

グローバル化


RC変更:RCバージョンでは、グローバル機能セットを使用して、DateおよびNumber分析を実行するために新しいparseメソッドとlocaleParseメソッドを使用できます.
RTM重要変更:Date.parseとNumberparse関数の名前はDate.义齿parseInvariant.同じようにlocaleParseとNumber.localeParse関数はDateと名前が変わりました.それは...parseLocale.これらの変更により、APIは一貫性を保ちます.さらに重要なのは、これらのタイプの組み込みparse関数に依存する特定の動作のアプリケーションでは、これらのアプリケーションの潜在的な問題を解消することです.
Client FXにおけるグローバル化はSys.CultureInfoタイプでサポートされています.このタイプでは、2つのJSONオブジェクトを定義します.InvariantCultureとCurrentCultureです.
CTPバージョンでは、CurrentCultureタイプは、クライアント・アプリケーションから呼び出されたサーバ・ハンドラによって設定されます.RTMバージョンでは、このタイプはインラインでページに記述されます.この変更により、サーバへのコールバックが削除されますが、インラインタイプはクライアントでキャッシュできません.しかし、これらのオブジェクトは小さい.
ScriptManagerコントロールに表示される直前に、所定のスレッドのCurrentCultureをシーケンス化する.NET CultureInfoオブジェクト、サーバフレームワークはクライアントSysを作成することができる.CultureInfo.CurrentCulture.これはASPを使用することを意味する.NET 2.0のサーバ技術では、プログラミングでCultureを定義できます.デフォルトでは、受信要求からのACCEPT_を使用します.LANGタイトルのマッピング.通常、ページの@PageコマンドでCulture="Auto"、UIcuulture="Auto"を設定するか、生成されたページクラスのInitializeCultureメソッドを呼び出すなど、これらの値を直接設定します.
クライアントでは、コードおよびサーバエクスパンダから生成された任意のタイプに対して、Number、Date、Stringタイプに追加されたformatおよびlocaleFormat API、およびDateおよびNumberタイプに追加されたparseInvariantおよびparseLocale APIを使用できます.次の例では、事前定義されたCultureInfoオブジェクトを使用してDateオブジェクトをフォーマットし、Dateオブジェクトの入力を解析します.
var d = new Date();
$('DateLocale').innerHTML = d.toFormattedString("M");

//             Culture=”fr”     CultureInfo
// 10   31  

RTMバージョンでは、新しいAPIによって特定のフォーマットが許可されます.
var d = new Date();
$get('DateLocale').innerHTML = d.localeFormat("M");

//             Culture=”fr”     CultureInfo
// 10   31  

//   。        'd'   
var s = $get('TextBoxDate').value.trim();
var d = Date.parseLocale (s, "d");
$get('Date').innerHTML = d;

グローバルサポートを使用するには、ScriptManager.EnableScriptGlobalizationプロパティは、次の例に示すように、明示的にtrueに設定されています.前述したように、JSONオブジェクトがページにインラインで記述されていることがわかります.
<asp:scriptmanager runat=”server” EnableScriptGlobalization=”true” />

ローカライズ


RC変更:RCバージョンで多くのプログラムエラーが修正されました.特に、パスベースのスクリプト参照に関するResourceUIculturesサポートが修正されました.
RTMバージョンでは、ローカライズのサポートも追加されました.サポートされる主線スキームは次のとおりです.
  • クライアントコンポーネントは、UI要素、例外メッセージ、およびコンポーネント専用の他の項目を有する.この場合、クライアント・コンポーネントにローカライズされたリソースを2つの方法で提供できます.組み込みリソース(付属プログラム・セット)を使用するか、ライブラリ・スクリプトを使用して自身の一部を参照します.
  • クライアントコンポーネントには共通のプロパティがあり、ページ開発者によって設定され、直接ローカライズされます.この場合、サーバエクスパンダコントロールまたはスクリプトコントロールでコンポーネントを処理するか、クライアントでページ開発者が直接コンポーネントを作成するかの2つの可能なシナリオもあります.

  • コンポーネントのローカライズされたリソースはJSONオブジェクトとして提供され、オブジェクトによってコンポーネントで参照されます.例えば、クライアントFXにおいてSysが使用する場合、Res.タイプがメッセージを参照すると、デバッグスクリプトで例外メッセージが発生します.
    スクリプトリソースハンドラがサーバ・プログラム・セットの組み込みリソースからスクリプトを読み込む場合、これらのオブジェクトは通常、スクリプトリソースハンドラによってスクリプト参照に自動的に添付されます.
    サーバ・プログラム・セットのローカライズされたリソース
    RC変更:ScriptResource.axdプロセッサは、キャッシュおよび圧縮のために構成される.このプロセッサは現在もWebResourceをサポートしています.axdプロセッサがサポートするリソース代替ロジック.埋め込まれたWebリソースに代替参照を追加し、ScriptResource.axdプロセッサはこれらのリソースを処理する.
    注意:代替コード(<%=WebResource() %>)はWebresourceを挿入します.axd URL、<%= ScriptResource() %>コードがScriptResourceに挿入されます.axd URL.
    RC変更:組み込みサーバリソースから生成されたカスタムクライアントタイプとネーミングスペースが自動的に登録されます.
    受信ブラウザによるACCEPT_LANGタイトル、スクリプトライブラリのリソースはサーバによって提供され、生成されます.RTMバージョンでは、スクリプト・ライブラリ・コードと所与のUIculture値を同時に含む自動生成リソースに流れるクライアントへのストリームを生成するスクリプト・リソース・ハンドラが追加されました.必要に応じて、UIculture値のセットにASPを使用できます.NETコードACCEPTの使用LANGはデフォルトモデルにすぎません.
    コンポーネント開発者は付属資源を利用することができる.NETローカライズモデル(パッケージ化、サービスの利点)は、自動生成に依存して、任意のUIcultureロールバックモデルを介して関連リソースを供給します.これは正常であることを意味する.NETローカライズワークフローとツールセットがこのモデルを促進しました.
    デフォルトでは、Webページではローカライズは使用できません.ローカライズを使用するには、ScriptManagerを使用する必要があります.次の例に示すように、EnableScriptLocalizationプロパティをtrueに設定します.
    <asp:scriptmanager runat=”server” EnableScriptLocalization=”true” />

    次のコード・セグメントでは、ローカライズされたリソースを持つカスタムエクスパンダ・コントロールを作成する手順を示します.これらのリソースは、クライアント内のカスタムタイプによって参照されます.プロジェクトがCustomという名前であると仮定します.UI.ToggleButtonのクラスライブラリ.
    // AssemblyInfo.cs //         。 // WebResource             [assembly:webResource("Custom.UI.ToggleButton.ToggleButtonBehavior.js"
        , "text/javascript")]
    // ScriptResource      WebResource   , 
    //       RESX(    )       
    //         。
    [assembly: ScriptResource("Custom.UI.ToggleButton.ToggleButtonBehavior.js", 
        "Custom.UI.ToggleButton.ToggleButtonBehavior", "Custom.UI.Res")]
    
    // ToggleButtonBehavior.js
    //             。
      ..
      this.get_element().innerHTML = Custom.UI.Res.unhoverText;
      ..
    
    // ToggleButtonBehavior.resx, ToggleButtonBehavior.fr.resx
    // ToggleButtonBehavior.ja.resx, ..
    //         。    Visual Studio    
    //     .resource ‘  ’。
    //               ,     //                    

    このエクスパンダの使用ページでは、エクスパンダと前述のScriptManagerコントロールを宣言します.このページが実行されると、ScriptManagerコントロールはScriptResourceを使用します.axdプロセッサは、ライブラリスクリプトのスクリプト参照を生成します.この要求は、プロセッサがライブラリスクリプトを取得し、特定のUI-cultureに関するリソースも取得することを示す.このリソースセットは、前のScriptResourceプロパティに示す定義済みのカスタムタイプにシーケンス化されます.
    次のコード・セグメントでは、クライアントに送信されるスクリプト・ライブラリの出力を示します.
    ..
    //          
    Type.registerNamespace('Custom.UI');
    Custom.UI.Res={
        ""unhoverText":"©±",
        ""hoverText":"¤µ©±"
    };

    ファイルベースの静的スクリプトのローカライズリソース
    サーバはScriptManagerコントロールを含むモデルを使用してスクリプト・ライブラリのリソースを表示しますが、ライブラリと現在のUIcultureに関連するリソースをマージするインスタント・プロセスは組み込まれていません.逆に、サーバは上記のUIcultureを説明しますが、スクリプト・ライブラリとそのリソースが生成プロセスによって以前にマージされた可能性があることを期待しています.この生成プロセスは、プログラムセットベースのライブラリおよびそのリソースおよび付属プログラムセットを含むことができる.
    要求を提供するために正しいスクリプト・ファイルを選択するには、スクリプト参照に関するプロパティを使用してサポートされる、ScriptManagerコントロールのResourceUIcultures値を示します.次の例に示します.
    <asp:scriptmanager runat="server" EnableScriptLocalization="true"  
      ScriptMode="Release">
      <scripts>
        <asp:scriptreference path="~/scripts/Custom.UI.js"
          ResourceUICultures="en-GB, fr-FR, fr-CA, ja-JP, de-DE" />
      </scripts>
    </asp:scriptmanager>
    
    //        UICulture   ja-JP, 
    //         。
    // (   ,ScriptMode     "Release"。)
    
    <script src=”../scripts/Custom.UI.ja-JP.js />

    ScriptManagerのコントロールでは、サーバ内のスレッドからUICultureを推定し、スクリプト参照を解釈し(コールバックのいくつかの方法を提供します)、特定のUICultureに対応するスクリプトライブラリを送信します.