Visual Studio .NET veya Visual Studio 2005 çok dilde Web Forms çözümleri yönetme hakkında

Makale çevirileri Makale çevirileri
Makale numarası: 315903 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, bir XML veri Adası ve .NET XML Web sunucu denetimi Genişletilebilir Biçimlendirme Dili (XML) verileri görüntüleyen bir küçük, çok dilli Web uygulaması proje oluşturmak için nasıl kullanılacağı gösterilmektedir. Ana uygulama Visual Basic 2005 veya Visual Basic .NET yerleşik olarak bulunur. Uygulama bir Visual C# Class Library bileşeni, birden çok dil başvurusu ve uygulama devralma göstermek için kullanır.

Gereksinimler

Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows XP Professional veya Microsoft .NET Framework ve Microsoft Visual Studio .NET ile Microsoft Windows XP Server
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Uygulama devralma
  • XML ve Genişletilebilir Stil Sayfası Dili Dönüşümü (XSLT)
  • Microsoft .NET web sunucu denetimleri

Çok dilli bir ASP.NET Web uygulaması oluşturma

Aşağıdaki adımlarda oluşturduğunuz küçük Öğle yemeği menü öğeleri seçmek, bir müşteri için izin veren bir ASP.NET Web uygulaması proje üzerinde kalori sayısını temel alan. Bunu yapmak için <a0></a0>, örnek XML Web sunucu denetimi, menü veri ve XML verilerini dönüştürmek için bir XSL stil sayfası içeren basit bir XML belgesi olarak kullanır. System.Xml.Xsl ad XsltArgumentList sınıfı dönüştürme parametreleri kullanmanızı sağlar.
  1. Bir Visual Basic Windows Application proje aşağıdaki gibi oluşturursunuz:
    1. Microsoft Visual Studio .NET veya Visual Studio 2005'ı başlatın ve sonra da New Project ' i tıklatın.
    2. Project Types altında Visual Basic Projeleri) tıklatın. Şablonları altından, ASP.NET Web uygulaması) tıklatın. Proje menüsü yeniden adlandırın ve sonra Tamam ' ı tıklatın.

      NotVisual Basic, Visual Studio 2005'te Project Types altında tıklatın.
  2. Solution Explorer (Çözüm Gezgini) penceresinde görünür olduğundan emin olun. Yüklü değilse, CTRL + ALT + N tuş birleşimine basın.
  3. Kabuk Menüsü adlı bir çözümünde bir Visual Basic .NET veya Visual Basic 2005 Web uygulaması projenin artık vardır. Bu çok dilli bir çözüm için bir Visual C# sınıf kitaplığı'eklemeniz gerekir.

    Çözümde Gezgin penceresi menüsünü sağ tıklatın, Ekle işaret tıklatın ve sonra Yeni bir proje. Project Types altında Visual C# Projects ' ı tıklatın. Şablonları altında Sınıf kitaplığı ' nı tıklatın. Varsayılan ad, ClassLibrary1 tutun. Bu sınıf kitaplığı çözümü eklemek için Tamam ' ı tıklatın.

    Not Visual Studio 2005'te, Visual C#Project Types altında'ni tıklatın.
  4. Class1.cs düzenleyici penceresinde görüntülenir. Aşağıdaki ad alanı bildirimi, bu pencerenin en üstüne ekleyin:
    using System.Xml.Xsl;
    					
  5. Ortak Class1 altında aşağıdaki kodu ekleyin:
    public XsltArgumentList CreateArgumentList(
    string ParamName, string NamespaceURI, string ParamValue)
    {
     XsltArgumentList tal = new XsltArgumentList();
     tal.AddParam(ParamName, NamespaceURI, ParamValue);
     return tal;
    }
    					
  6. Artık, XSLT parametre bilgilerini alıp, XsltArgumentList</a0> sınıfının bir örneği döndüren bir Visual C# sınıfı vardır. Şimdi, bu bileşen tüketir Visual Basic uygulamasını da oluşturabilirsiniz.

    WebForm1.aspx zaten Tasarım görünümünde açık olması. Tersi durumda, Solution Explorer (Çözüm Gezgini) penceresinde, WebForm1.aspx dosyasını çift tıklatın. Tasarım görünümüne geçmek için Düzenleyicisi penceresinin altındaki <a2>Tasarım</a2> sekmesini tıklatın.
  7. Özellik sayfasına erişmek için F4 tuşuna basın. PageLayout özelliği için FlowLayout değiştirin.
  8. Web form üzerinde yazın Maksimum kalori:.
  9. Bir TextBox (metin kutusu) denetimi, bir Düğme denetimi ve bir XML denetimi forma aşağıdaki şekilde ekleyin:
    1. Araç kutusunu açmak için CTRL + ALT + X tuş bileşimine basın.
    2. Araç kutusunda, Web formları ' i tıklatın.
    3. Bir Düğme denetimi ve TextBox Denetim Araç kutusundan, sürükleyip bu denetimlerin üzerine bir Web formu.
    4. Düğme denetimin özellik sayfasına erişmek için F4 tuşuna basın.
    5. Metin özelliği, Süzgeç menüsü değiştirin.
    6. Imleci düğmesinden sonra getirin ve XML denetimi için imleci yerleştirmek için ENTER tuşuna basın.
    7. XML Web sunucusu denetimini araç kutusundan sürükleyin ve bu denetim Web Form üzerine sürükleyip bırakın.
    8. <a0>XML</a0> denetimin özellik sayfasına erişmek için F4 tuşuna basın.
    9. DocumentSource özelliği için Menu.xml değiştirin ve sonra da Menu.xslt için TransformSource özelliğini değiştirin.
  10. Filtre menüsü bir tıklatın olay işleyicisi arka planda kodlama sınıfını Web formu oluşturmak için çift tıklatın. Işleyiciye kod eklemeden önce aşağıdaki gibi bir Visual C# sınıf kitaplığı başvuru eklemelisiniz:
    1. Solution Explorer (Çözüm Gezgini) penceresinde, altında ClassLibrary1, Başvurular ' ı sağ tıklatın ve Add Reference</a1>'ı tıklatın.
    2. Projeler sekmesinde ClassLibrary1 çift tıklatın. Seçili bileşenler</a1> liste kutusunda ClassLibrary1 görüntülendiğine dikkat edin.
    3. Tamam ' ı tıklatın. ClassLibrary1Başvurular <a0>Web</a0> uygulamasındaki altında görüntülendiğine dikkat edin.
  11. Tıklatın olay işleyicisine aşağıdaki kodu ekleyin:
    Dim myArgList As New ClassLibrary1.Class1()
    Xml1.TransformArgumentList = myArgList.CreateArgumentList("calories", "", TextBox1.Text)
    Xml1.Visible = True
    						
    değeri TextBox denetimine stil için parametre olarak geçirmek Visual C# bileşeni döndüren bağımsız değişken listesi sağlar. Bu stil, tüm Öğle yemeği kalori aşan menü öğeleri, sayımını müşteri türleri süzülecek XSLT komutları kullanır. Nasıl parametre alınan kullanılan ve aşağıdaki satırı sayfas?n?n kod göstermektedir:
    <xsl:for-each select="lunch-menu/food[calories <= $calories]">
    					
  12. Kod Menu.xml ve Menu.xslt bölümleri Menu.xml ve Menu.xslt dosyaları oluşturmak için kullanın. Solution Explorer (Çözüm Gezgini) penceresinde, proje menüsü sağ tıklatın ve sonra .xml ve .xslt dosyalarını ekleyin.

Kod dökümü tamamlayın.

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 olmayan devralma örneği

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.uı.Page devralma

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 devralma örneği

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 devralma

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
				

It Works That doğrulayın.

  1. Uygulama hata ayıklama modunda çalıştırmak için F5 tuşuna basın.
  2. Tüm menü, varsayılan olarak görünür. Her madde için kalori sayımları Not.
  3. Metin kutusuna kalori yazmanız ve Filtre menüsü</a1>'ı tıklatın. Yalnızca bu kalori tutara eşit veya bundan küçük olan menü öğeleri görünür dikkat edin.
  4. ÜST KRKT + F5 tuş bileşimini hata ayıklama durmasına ve Visual Studio dönmek için Ek Yardım düğmesini tıklatın.

Çok dilli devralma göstermek için gerekli adımları

Birden çok dil devralma göstermek için <a0></a0>, Web değiştirmek uygulama proje. Sınıf kitaplığı örneğini oluşturmak yerine bileşeni, uygulama Visual Basic .NET Web formundan devralan arka planda kodlama sınıfını.

Arka planda kodlama sınıfını, şu anda System.Web.uı.Page sınıfı devralır. Microsoft .NET birden çok devralma desteklemediğinden, Visual C# sınıfı için sınıf devralma sayfa taşımanız gerekir.
  1. Visual C# değiştirmeden önce sınıf kitaplığı System.Web ad boşluğuna başvuru ekleme kodu.
  2. Solution Explorer (Çözüm Gezgini) penceresinde, altında ClassLibrary1, Başvurular ' ı sağ tıklatın ve Add Reference</a1>'ı tıklatın.
  3. .NET</a0> sekmesinde, System.Web.dll çift tıklatın. Seçili bileşenler</a1> liste kutusunda System.Web.dll görüntülendiğine dikkat edin.
  4. Tamam ' ı tıklatın. System.Web sınıf kitaplığı'nıza içindeki Başvurular altında görüntülendiğine dikkat edin.
  5. Sayfa sınıf için Class1 bildirimi değiştirin:
    public class Class1 : System.Web.UI.Page
    					
  6. Visual Basic .NET veya Visual Basic 2005 arka planda kodlama sınıfını Class1 devralmak hazır. Class1sayfa sınıfı devralır, çünkü arka planda kodlama sınıfını, Class1sayfa sınıfı, devralma yoluyla da devralır.

    Veritabanı Düzenleyicisi penceresinde, WebForm1.aspx.vb ' ı tıklatın. Sınıf bildirimi altında System.Web.uı.PageClassLibrary1.Class ile değiştirin. Güncelleştirilmiş kodu aşağıdaki gibi görünmelidir:
    Inherits ClassLibrary1.Class1
    					
  7. Ilk satırı tıklatın olay işleyicisindeki gibi aç?klama:
    'Dim myArgList As New ClassLibrary1.Class1()
    					
  8. Nesne başvurusu CreateArgumentList ça??rarak tıklatın olay işleyicisinin ikinci satırında değiştirin:
    Xml1.TransformArgumentList = CreateArgumentList("calories", "", TextBox1.Text)
    					
  9. <a0>Verify That It Works</a0> bölümündeki adımları yineleyin.

SORUN GİDERME

  • Iki dil ile çalışırken, sözdizimi yanıltır daha kolaydır. Visual C# sözdizimi hatası, geniş bir kenar boşluğu izin vermiyor. Ayrıca, Visual C# .NET, hata iletileri her zaman istemi olarak veya Visual Basic .NET, hata iletileri olarak sezgisel olmayan. Bu sorun gidermek için Microsoft .NET Framework Software Development Kit'e (SDK) "Dil eşdeğerleri" bölümüne bakın:
    Dil eşdeğerleri
    http://msdn2.microsoft.com/en-us/library/czz35az4(vs.71).aspx
  • Uygulama devralma kullanmak isterseniz, nesne yönelimli bir ilkeden tasarım incelemek ve önceden uygulama mimarisi göz önünde bulundurun. Genel hata kodu bir sınıf kitaplığı'nda devralmak için gereken bir ana uygulamasında koymaktır. Bu senaryoda, ana uygulamaya bir sınıf kitaplığı, döngüsel bir bağımlılık nedeniyle devralamaz. Örneğin, ClassLibrary1 projede menüsü projeye bir başvuru eklemek deneyin. Aşağıdaki hata iletisini alıyorsunuz:
    'Menü' başvuru eklenemedi. Bu proje başvuru olarak ekleme döngüsel bağımlılık neden olur.

Başvurular

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerine bakın:
Temel Instincts: Bölüm 1. NET'te devralma kullanma
http://msdn.microsoft.com/en-us/magazine/cc135806.aspx

Temel Instincts: Devralma. NET'te, Bölüm 2 kullanma
http://msdn.microsoft.com/en-us/magazine/cc301744.aspx

XML Çekirdek
http://msdn.microsoft.com/en-us/xml/bb291077.aspx

XML Web Server denetimi
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gnconxmlwebservercontrol.asp

XML veri Adaları
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/comsrv2k/htm/cs_tp_bizdesk_nqok.asp

Özellikler

Makale numarası: 315903 - Last Review: 24 Şubat 2014 Pazartesi - Gözden geçirme: 5.8
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual Basic 2005
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB315903 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:315903

Geri Bildirim Ver

 

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