Visual Studio の多言語 Web フォーム ソリューションの管理方法NET または Visual Studio 2005

文書翻訳 文書翻訳
文書番号: 315903
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

目次

概要

ここでは XML データ アイランドを使用する方法について説明し、します。NET Xml Web サーバー コントロールを小規模、多言語の Web を作成するには拡張マークアップ言語 (XML) データを表示するアプリケーションのプロジェクトです。は、アプリケーションのメイン Visual Basic で構築されています。NET または Visual Basic 2005年。視覚的なアプリケーションを使用してください。多言語の参照を示すためには、C# クラス ライブラリ コンポーネントと実装の継承します。

要件

次の一覧は、推奨されるハードウェア、ソフトウェアです、ネットワーク インフラストラクチャ、および必要な service pack:
  • Microsoft Windows 2000 Professional、Microsoft Windows 2000サーバー、Microsoft Windows XP Professional、または Microsoft Windows XP Serverマイクロソフト。NET Framework、Microsoft Visual Studio。NETインストールされています。
この資料で、次のように精通していることを想定しています。トピック:
  • 実装の継承
  • XML と拡張スタイル シート言語変換(XSLT)
  • [マイクロソフト]。NET Web サーバー コントロール

多言語の ASP を作成します。Net プロファイル

次の手順では、小規模の ASP を作成します。Netランチ メニュー項目を選択することができますアプリケーション プロジェクトに基づいてください。カロリーのカウントです。これを行うには、このサンプルを使用して、 Xml Web サーバー コントロールをメニューを含む、単純な XML ドキュメントデータ、および XML データを変換する XSL スタイル シート。は、 XsltArgumentList クラスは、 System.Xml.Xsl 名前空間内の変換パラメーターを使用することができます。
  1. として Visual Basic の Windows アプリケーション プロジェクトを作成します。次に示します。
    1. Microsoft Visual Studio を起動します。NET または Microsoft Visual Studio 2005、し 新しいプロジェクト.
    2. 下にあります。 [プロジェクトの種類をクリックして Visual Basic プロジェクト.下にあります。 テンプレートをクリックして ASP。Net プロファイル.プロジェクトの名前を変更します。 メニュー、し [OK].

      メモ Visual Studio 2005 年にをクリックします。 Visual Basic 下にあります。 [プロジェクトの種類.
  2. ソリューション エクスプ ローラー] ウィンドウが表示されていることを確認してください。Ifこれは、ctrl キーを押しながら alt キーを押しながら L キーを押します。
  3. ここでは、シェルを Visual Basic があります。NET または Visual Basic 2005 Webソリューション内のアプリケーション プロジェクト メニューの名前。これは、複数の言語を確認するにはソリューションは、Visual C# クラス ライブラリを追加する必要があります。

    このソリューションでは、エクスプ ローラー ウィンドウで右クリック メニュー、ポイント 追加、し 新しいプロジェクト.下にあります。 [プロジェクトの種類をクリックして Visual C# プロジェクト.下にあります。 テンプレートをクリックして クラス ライブラリ.既定の名前、ClassLibrary1 注意してください。クリックしてください。 [OK] ソリューションにこのクラス ライブラリを追加します。

    メモ Visual Studio 2005 年にをクリックします。 Visual C# 下にあります。 [プロジェクトの種類.
  4. Class1.cs で、エディター ウィンドウに表示されます。次を追加します。このウィンドウの一番上の名前空間宣言。
    using System.Xml.Xsl;
    					
  5. 下にあります。 パブリック クラス 1、次のコードを追加します。
    public XsltArgumentList CreateArgumentList(
    string ParamName, string NamespaceURI, string ParamValue)
    {
     XsltArgumentList tal = new XsltArgumentList();
     tal.AddParam(ParamName, NamespaceURI, ParamValue);
     return tal;
    }
    					
  6. XSLT パラメーターを受け取る Visual C# クラスをこれであります。情報のインスタンスを返します、。 XsltArgumentList クラスです。ここでは、Visual Basic のアプリケーションを構築できます。このコンポーネントを使用します。

    WebForm1.aspx が開かれている場合があります。デザイン ビュー。場合は、ダブルクリック WebForm1.aspx ソリューション エクスプ ローラー] ウィンドウでします。クリックして、 デザイン デザイン ビューに切り替えるには、エディター ウィンドウの下のタブ。
  7. プロパティ ページにアクセスするのには、F4 キーを押します。変更は、 pageLayout プロパティ フロー レイアウト.
  8. Web フォームに入力します。 最大のカロリー。.
  9. 追加します。 テキスト ボックス コントロールは、 ボタン コントロールとは Xml フォームには次のように制御します。
    1. 開くには、ctrl キーを押しながら alt キーを押しながら X キーを押して、ツールボックス。
    2. [ツールボックス] をクリックします。 Web フォーム.
    3. ドラッグします。 テキスト ボックス コントロールとは ボタン ツールボックスからのコントロールし、これらのコントロールは、Web 上にドロップフォームです。
    4. プロパティ ページにアクセスするのには、F4 キーを押して、 ボタン コントロールです。
    5. 変更は、 テキスト プロパティ [フィルター] メニュー.
    6. ボタンの後にカーソルを移動し、キーを押します。カーソルを置きますして ENTER、 Xml コントロールです。
    7. ドラッグします。 Xml サーバー コントロールをツールボックスから web にアクセスし、このコントロール上にドロップWeb フォーム。
    8. [プロパティ] ページにアクセスするのには、F4 キーを押して、 Xml コントロールです。
    9. 変更は、 DocumentSource プロパティ Menu.xml、し、変更を TransformSource プロパティ Menu.xslt.
  10. ダブルクリック [フィルター] メニュー 作成するのには クリックしてください。 Web フォームの分離コード クラス内のイベント ハンドラーです。前にコードをハンドラーに追加、Visual C# クラスへの参照を追加する必要があります。ライブラリには、次のように:
    1. ソリューション エクスプ ローラー] ウィンドウで、[ ClassLibrary1を右クリックして 参照、し 参照を追加します。.
    2. で、 プロジェクト タブで、ダブルクリック ClassLibrary1.確認します。 ClassLibrary1 表示されます、 選択した構成部品 リスト ボックスです。
    3. クリックしてください。 [OK].確認します。 ClassLibrary1 下に表示されます。 参照 Web アプリケーションでは。
  11. 次のコードを追加、 クリックしてください。 イベント ハンドラー:
    Dim myArgList As New ClassLibrary1.Class1()
    Xml1.TransformArgumentList = myArgList.CreateArgumentList("calories", "", TextBox1.Text)
    Xml1.Visible = True
    						
    Visual C# コンポーネントが返す引数リストすることができます。値を渡す、 テキスト ボックス スタイル シートのパラメーターを制御します。このスタイル シートを使用します。カロリー数を超えるされているすべての昼食メニュー項目をフィルター処理するのには、XSLT コマンド顧客の種類。スタイル シートからのコードの次の行パラメーターの受信方法と使用方法を示しています。
    <xsl:for-each select="lunch-menu/food[calories <= $calories]">
    					
  12. コードを使用して、 Menu.xml および Menu.xslt セクションを Menu.xml と Menu.xslt を作成するのにはファイルです。メニューのプロジェクトをソリューション エクスプ ローラー] ウィンドウを右クリックし、.xml、.xslt ファイルを追加します。

完全なコード リスト

Menu.xml

<?xml version='1.0'?>
<lunch-menu>
  <food>
    <name>Cheese Pizza</name>
    <price>$6.95</price>
    <description>Individual deep-dish pizza with lots of mozzarella cheese</description>
    <calories>800</calories>
  </food>
  <food>
    <name>Pepperoni Pizza</name>
    <price>$7.95</price>
    <description>Individual deep-dish cheese pizza with thick-cut pepperoni slices</description>
    <calories>950</calories>
  </food>
  <food>
    <name>The "Everything" Pizza</name>
    <price>$9.95</price>
    <description>Individual deep-dish pizza with all our toppings. House specialty!</description>
    <calories>800</calories>  </food>
  <food>
    <name>Hungarian Ghoulash</name>
    <price>$4.50</price>
    <description>Large serving in a sourdough bread bowl. A_local delight!</description>
    <calories>600</calories>
  </food>
  <food>
    <name>Maisey's Pork Sandwich</name>
    <price>$6.95</price>
    <description>A fresh pork fillet, deep-fried to perfection. Served with fries.</description>
    <calories>950</calories>
  </food>
</lunch-menu>
				

Menu.xslt

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="calories">1500</xsl:param>
  <xsl:template match="/">
    <HTML>
      <BODY STYLE="font-family:Arial, helvetica, sans-serif; font-size:12pt;
            background-color:#EEEEEE">
        <xsl:for-each select="lunch-menu/food[calories <= $calories]">
          <DIV STYLE="background-color:blue; color:white; padding:4px">
            <SPAN STYLE="font-weight:bold; color:white"><xsl:value-of select="name"/></SPAN>
            - <xsl:value-of select="price"/>
          </DIV>
          <DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:10pt">
            <xsl:value-of select="description"/>
            <SPAN STYLE="font-style:italic">
              (<xsl:value-of select="calories"/> calories per serving)
            </SPAN>
          </DIV>
        </xsl:for-each>
      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet>
				

WebForm1.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="menu.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name=vs_defaultClientScript content="JavaScript">
    <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
  </HEAD>
  <body >

    <form id="Form1" method="post" runat="server">
<P>Maximum Calories: 
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
<asp:Button id="Button1" runat="server" Text="Filter menu"></asp:Button></P>
<P>
<asp:Xml id="Xml1" runat="server" DocumentSource="menu.xml" TransformSource="menu.xslt"></asp:Xml></P>

    </form>

  </body>
</HTML>
				

Class1.cs の非継承の例

using System;
using System.Xml.Xsl;

namespace ClassLibrary1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1
    {
        public XsltArgumentList CreateArgumentList(
        string ParamName, string NamespaceURI, string ParamValue)
        {
            XsltArgumentList tal = new XsltArgumentList();
            tal.AddParam(ParamName, NamespaceURI, ParamValue);
            return tal;
        }
    }
}
				

WebForm1.vb System.Web.UI.Page の継承

Imports System.Xml.Xsl

Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Xml1 As System.Web.UI.WebControls.Xml

#Region " Web Form Designer Generated Code "

    'The Web Form Designer requires this call.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: The Web Form Designer requires this method call.
        'Do not use the Code editor to modify it.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Insert user code to initialize the page here.
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
        Dim tal As New XsltArgumentList()
        tal.AddParam("calories", "", TextBox1.Text)
        Xml1.TransformArgumentList = tal
        Xml1.Visible = True
    End Sub
End Class
				

Class1.cs の継承の例

using System;
using System.Xml.Xsl;

namespace ClassLibrary1
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    public class Class1 : System.Web.UI.Page
    {
        public XsltArgumentList CreateArgumentList(
        string ParamName, string NamespaceURI, string ParamValue)
        {
            XsltArgumentList tal = new XsltArgumentList();
            tal.AddParam(ParamName, NamespaceURI, ParamValue);
            return tal;
        }
    }
}
				

WebForm1.vb ClassLibrary1 の継承

Imports System.Xml.Xsl

Public Class WebForm1
    Inherits ClassLibrary1.Class1
    Protected WithEvents TextBox1 As System.Web.UI.WebControls.TextBox
    Protected WithEvents Button1 As System.Web.UI.WebControls.Button
    Protected WithEvents Xml1 As System.Web.UI.WebControls.Xml

#Region " Web Form Designer Generated Code "

    'The Web Form Designer requires this call.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: The Web Form Designer requires this method call.
        'Do not use the Code editor to modify it.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        'Insert user code to initialize the page here.
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    Xml1.TransformArgumentList = CreateArgumentList("calories", "", TextBox1.Text)
        Xml1.Visible = True
    End Sub
End Class
				

動作を検証します。

  1. アプリケーションのデバッグを実行するのには、F5 キーを押してください。モードです。
  2. [全体] メニューに既定で表示されます。書き留めて、アイテムごとにカロリーをカウントします。
  3. テキスト ボックスで、カロリーを数を入力しをクリックしてください [フィルター] メニュー.小さいか等しい] メニュー項目のみに注目してください。このカロリーの量を表示します。
  4. デバッグを停止するのには、shift キーを押しながら F5 キーを押すとするVisual Studio に戻る。

多言語の継承をデモンストレーションする手順

多言語の継承を示すには、Web を変更する必要があります。アプリケーションのプロジェクトです。クラス ライブラリのインスタンスを作成するのではなくコンポーネント、アプリケーション、Visual Basic から継承しています。NET Web フォーム分離コード クラスです。

現在は、分離コード クラスを継承する、 System.Web.UI.Page クラスです。マイクロソフト。NET を複数サポートしていません継承は、移動する必要があります。 ページ Visual C# クラスへのクラスの継承
  1. 参照を追加する、 System.Web 名前空間のクラスは、Visual C# を変更する前にライブラリコードです。
  2. ソリューション エクスプ ローラー] ウィンドウで、[ ClassLibrary1を右クリックして 参照、し 参照を追加します。.
  3. で、 .NET タブで、ダブルクリック System.Web.dll.確認します。 System.Web.dll 表示されます、 選択した構成部品 リスト ボックスです。
  4. クリックしてください。 [OK].確認します。 System.Web 下に表示されます。 参照 クラス ライブラリにします。
  5. 変更は、 Class1 継承の宣言、 ページ クラス:
    public class Class1 : System.Web.UI.Page
    					
  6. Visual Basic の。NET または Visual Basic 2005年のコード ビハインド クラスになりました継承 Class1.ので Class1 継承は、 ページ また、コード ビハインド クラス クラスを継承、 ページ クラスの継承の使用 Class1.

    エディター ウィンドウをクリックします。 WebForm1.aspx.vb.クラス宣言では、交換してください。 System.Web.UI.Page 使用する SMTP サーバー ClassLibrary1.Class.更新されたコードは次のようになります。
    Inherits ClassLibrary1.Class1
    					
  7. 最初の行にコメントを クリックしてください。 イベント ハンドラーを次のよう:
    'Dim myArgList As New ClassLibrary1.Class1()
    					
  8. 2 番目の行に変更、 クリックしてください。 イベント ハンドラーを呼び出すことによって CreateArgumentList オブジェクト参照にします。
    Xml1.TransformArgumentList = CreateArgumentList("calories", "", TextBox1.Text)
    					
  9. 手順を繰り返して、 動作を検証します。 セクションです。

トラブルシューティング

  • 2 つの言語で作業する場合は、混同されやすいです。構文があります。Visual C# 構文エラーの余白幅を許可しません。さらに、Visual C#。NET のエラー メッセージは、常にプロンプト、またはように直感的でないです。Visual Basic。NET エラー メッセージです。これらの問題のトラブルシューティングするを参照してください。Microsoft の「言語に対応する」セクション。Net ソフトウェア開発キット (SDK)。
    各言語の比較
    .aspx の http://msdn2.microsoft.com/en-us/library/czz35az4 (vs.71)
  • 実装の継承を使用する場合は、調査します。オブジェクト指向の原則の設計、およびアプリケーションのアーキテクチャを検討してください。高度な。よくある間違いする必要のある主なアプリケーション コードを配置することです。クラス ライブラリに継承されます。このシナリオでは、メインを継承できません。アプリケーション、クラス ライブラリの依存関係が循環します。たとえば、ClassLibrary1 でプロジェクト メニューのプロジェクトへの参照を追加しようとしてください。、次のエラー メッセージが表示されます。
    参照するには'メニュー' を追加できませんでした。参照になるために、このプロジェクトを追加します。循環依存の関係です。

参照

詳細についてには、次のマイクロソフト Web サイトを参照してください。
基本的な本能: 継承を使用します。NET では、パート 1
http://msdn.microsoft.com/en-us/magazine/cc135806.aspx

基本的な本能: 継承を使用します。NET では、第 2 部
http://msdn.microsoft.com/en-us/magazine/cc301744.aspx

XML コア
http://msdn.microsoft.com/en-us/xml/bb291077.aspx

Xml Web サーバー コントロール
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gnconxmlwebservercontrol.asp

XML データ アイランド
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comsrv2k/htm/cs_tp_bizdesk_nqok.asp

プロパティ

文書番号: 315903 - 最終更新日: 2014年2月24日 - リビジョン: 7.0
キーワード:?
kbnosurvey kbarchive kbhowtomaster kbvs2005applies kbvs2005swept kbmt KB315903 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:315903
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com