Aracılığıyla paylaş


ASP.NET kullanılarak oluşturulan bir XML Web hizmeti tarafından oluşturulan XML verileriyle Office Web Bileşenleri'ni kullanma

Özet

Bu adım adım makalede, ASP.NET kullanarak Microsoft Access örnek Northwind veritabanından veri alan ve istemci hizmetin bir yöntemini çağırdığında verileri bir istemciye XML olarak döndüren basit bir XML Web hizmeti oluşturma adımları açıklanmaktadır. İstemci tarafında, veriler Office PivotTable ve Grafik bileşenleriyle sunulur. Bu makalede ayrıca Visual Basic .NET veya Visual Basic 6.0 kullanarak XML Web hizmeti için istemci oluşturma işlemi de gösterilmektedir.

ASP.NET kullanarak basit bir XML Web hizmeti oluşturma

  1. Visual Studio'yu başlatın. Net.

  2. Dosya menüsünde Yeni'ye ve ardından Proje'ye tıklayın. Proje türleri'nin altında Visual Basic Projeleri'neASP.NET tıklayın ve ardından

  3. ****Şablonlar'a bakın. Form1 varsayılan olarak oluşturulur.

  4. Konumhttps://localhost/MyDataService olarak değiştirin ve Tamam'a tıklayın. XML Web hizmeti projesi yerel bilgisayarda MyDataService adıyla oluşturulur. System.Web.Services.WebService'ten devralan Sınıf Service1, Service1.asmx dosyasında varsayılan olarak oluşturulur.

  5. Çözüm Gezgini'da Service1.asmx öğesine sağ tıklayın ve Kodu Görüntüle'yi seçin. Bu, .asmx sayfasının arka planda kod dosyasını görüntüler.

  6. Microsoft ActiveX Veri Nesneleri kitaplığına başvuru ekleyin. Bunu yapmak için şu adımları uygulayın:

    1. Proje menüsünde Başvuru Ekle'ye tıklayın.
    2. COM sekmesine tıklayın, Microsoft ActiveX Veri Nesneleri 2.7 Kitaplığı'nı seçin, Seç'e ve ardından Tamam'a tıklayın.
  7. Sınıf Hizmeti1'e aşağıdaki yöntemi ekleyin:

    <WebMethod()> Public Function GetResultsAsAdoXML() As String
        Dim myAdoRs As ADODB.Recordset
        Dim myAdoConnection As New ADODB.Connection()
        Dim mypersiststream As New ADODB.Stream()
    
    Dim myConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
           "C:\Program Files\Microsoft Office\Office10\Samples\Northwind.mdb"
        Dim mySelect As String = "SELECT * from [Category Sales for 1997]"
    
    myAdoConnection.ConnectionString = myConnectionString
        myAdoConnection.Open()
        myAdoRs = myAdoConnection.Execute(mySelect)
        myAdoRs.Save(mypersiststream, ADODB.PersistFormatEnum.adPersistXML)
        Return mypersiststream.ReadText
    End Function
    

    Not

    Office XP'yi varsayılan klasöre (C:\Program Files\Microsoft Office) yüklemediyseniz, koddaki bağlantı dizesini Office yüklemenizin doğru yolunu yansıtacak şekilde değiştirin. Ayrıca, Office 2003'ü yüklediyseniz yolu buna göre değiştirmeniz gerekebilir.

  8. Derle menüsünde Çözüm Oluştur'a tıklayarak XML Web hizmetini derleyin.

XML Web Hizmetinizi Test Edin

  1. Hata Ayıkla menüsünde Başlat'a tıklayın. Microsoft Internet Explorer başlatılır ve Service1.asmx dosyasına göz atar.
  2. GetResultsAsAdoXML köprüsüne tıklayın.
  3. Yöntem çağrısını test etmek için Çağır'a tıklayın. Yeni bir pencere, 1997 Için Kategori Satışları sorgusunun sonuçlarını XML satır kümesi şema biçiminde görüntüler. Satır kümesi XML belgesi dize öğesinin içine alınır.
  4. Visual Studio .NET'teki Hata Ayıkla menüsünde Hata Ayıklamayı Durdur'a tıklayın.

XML Web Hizmetiniz için İstemci Oluşturma

Bu bölümde, MyDataService XML Web hizmetini kullanacak bir istemcinin nasıl oluşturulacağı açıklanmaktadır. İstemcinizi Visual Basic 6.0 veya Visual Basic .NET ile oluşturabilirsiniz.

Tanıtım amacıyla, adımlarda test istemcisinin XML Web hizmetiyle aynı bilgisayarda nasıl derlediği açıklanır. Ancak, test istemcilerinizi Web hizmetinin kullanıma sunabileceği Web Hizmetleri Açıklama Dili (WSDL) dosyasına göz atabilen herhangi bir bilgisayarda oluşturabilirsiniz.

Visual Basic .NET kullanma

  1. Yeni bir Visual Basic .NET Windows Uygulaması projesi oluşturun. Form1 varsayılan olarak oluşturulur.

  2. Araç Kutusunu görüntülemek için CTRL+ALT+X tuşlarına basın.

  3. Araçlar menüsünde Araç Kutusunu Özelleştir'e tıklayın. Bileşenler listesinde aşağıdaki öğeleri seçin ve ardından Tamam'a tıklayın:

    • Microsoft Office Grafik 10.0
    • Microsoft Office Veri Kaynağı Denetimi 10.0
    • Microsoft Office PivotTable 10.0
      Bileşenlere ilişkin simgeler Araç Kutusu'nda görünür.
  4. Form1'e Grafik denetimi, PivotTable denetimi ve Veri Kaynağı denetimi ekleyin. Formu ve denetimleri gerektiği gibi boyutlandırın ve konumlandırın.

  5. Form1'e bir Düğme denetimi ekleyin ve ardından denetimin Text özelliğini Verileri Doldur olarak ayarlayın.

  6. Örnek XML Web hizmetine bir başvuru ekleyin. Bunu yapmak için şu adımları uygulayın:

    1. Proje menüsünde Web Başvurusu Ekle'ye tıklayın. Web Başvurusu Ekle iletişim kutusu görüntülenir.
    2. Adres metin kutusuna http:// localhost/MyDataService/Service1.asmx?wsdl yazın ve ENTER tuşuna basın. WSDL dosyası iletişim kutusunda görüntülenir.

    Not: MyDataService yerel bilgisayarda bulunmuyorsa, adresteki localhost değerini MyDataService'in bulunduğu Web sunucusunun adıyla değiştirin.
    3. İletişim kutusunda Başvuru Ekle'ye tıklayın.

  7. Form1'de Düğme denetimine çift tıklayın ve Button1_Click işleyicisini aşağıdaki kodla değiştirin:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    'Reference to the service.
        Dim objClient As New localhost.Service1()
    
    'Result obtained from the Service method.
        Dim strresult As String
    
    'The results will be stored on this disk file.
        Dim datafile As String
    
    datafile = System.IO.Directory.GetCurrentDirectory() + "\\mydata.xml"
    
    'Call the Web service method GetResultsAsAdoXML, which returns the recordset as XML.
        strresult = objClient.GetResultsAsAdoXML()
    
    Dim oxmldoc As New System.Xml.XmlDocument()
    
    'Load the XML recordset into the XML Document object.
        oxmldoc.LoadXml (strresult)
    
    'Save it to disk file.
        oxmldoc.Save (datafile)
    
    'Get data in the DataSource component.
        If Len(AxDataSourceControl1.ConnectionString) = 0 Then
            AxDataSourceControl1.ConnectionString = "provider=mspersist"
            AxDataSourceControl1.RecordsetDefs.AddNew( _
                  datafile, AxDataSourceControl1.Constants.dscCommandFile, "ChartData")
        End If
    
    'Get data in Chart component.
        Dim c
        Dim cht As OWC10.ChChart
        Dim ser As OWC10.ChSeries
        Dim ax As OWC10.ChAxis
    
    c = AxChartSpace1.Constants
        ' Clear the ChartSpace.
        AxChartSpace1.Clear()
    
    'DataSource to the Chart component.
        AxChartSpace1.DataSource = AxDataSourceControl1.DefaultRecordset.DataSource
    
    'Get the reference to Chart within the ChartSpace component.
        cht = AxChartSpace1.Charts(0)
        cht.Type = c.chChartTypeBarStacked
        cht.HasLegend = True
        cht.Legend.Position = c.chLegendPositionTop
        cht.HasTitle = True
        cht.Title.Caption = "Category Sales for 1997"
    
    'Set the Chart data.
        AxChartSpace1.SetData(OWC10.ChartDimensionsEnum.chDimCategories, 0, "CategoryName")
        AxChartSpace1.SetData(OWC10.ChartDimensionsEnum.chDimValues, 0, "CategorySales")
    
    ax = cht.Axes(c.chAxisPositionBottom)
    
    'Set the series attributes.
        ser = cht.SeriesCollection(0)
        ser.Name = "Category Sales"
        ser.Caption = ser.Name
        ser.Marker.Size = 4
    
    'Get Data in the PivotTable component.
        Dim pview As OWC10.PivotView
        AxPivotTable1.AutoFit = True
        AxPivotTable1.ConnectionString = "provider=mspersist"
        AxPivotTable1.CommandText = datafile
        pview = AxPivotTable1.ActiveView
        pview.AutoLayout()
        pview.FilterAxis.Label.Visible = False
        pview.RowAxis.Label.Visible = False
        pview.ColumnAxis.Label.Visible = False
        pview.TitleBar.Visible = False
    
    End Sub
    
    

    Not XML Web hizmeti ayrı bir bilgisayardaysa objClient değişkenini aşağıdaki gibi bildirin:

     Dim objClient As New <servername>.Service1()
    

    Burada sunucu adı , XML Web hizmetinin bulunduğu sunucunun adıdır.

  8. Not Office 2003 kullanıyorsanız, başvuruları buna göre değiştirmeniz gerekebilir.

  9. Aşağıdaki kodu Form1.vb dosyasının en üstüne ekleyin:

    Imports OWC10 = Microsoft.Office.Interop.OWC
    
    
  10. İstemci programını derlemek ve çalıştırmak için Hata Ayıkla menüsünde Başlat'a tıklayın. Form1 görüntülenir.

  11. Grafik ve PivotTable denetimlerindeki verileri sunmak için Verileri Doldur'a tıklayın.

Visual Basic 6.0 kullanma

XML Web hizmetleri, Basit Nesne Erişim Protokolü (SOAP) iletilerini kullanarak istemcilerle iletişim kurar. İstemci uygulaması SOAP kullanan bir uygulamaysa, XML Web hizmeti tarafından kullanıma sunulan yöntemleri çağırabilir. İstemci bilgisayarlarda XML Web hizmetindeki yöntemleri çağırmak için Visual Studio .NET yüklü olması gerekmez. İstemci, XML Web hizmeti yöntem çağrılarını SOAP istekleri olarak çerçeveleyebilmeli ve yöntem çağrılarının sonuçlarını SOAP yanıtları olarak almalıdır. SOAP Araç Seti bunu yapmanızı sağlar.

İNDIRME yönergeleri de dahil olmak üzere SOAP Araç Seti hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesine bakın: SOAP Toolkit

MyDataService XML Web hizmetindeki yöntemleri kullanacak bir Visual Basic 6.0 test istemcisi oluşturmak için şu adımları izleyin:

Not

Bu test istemcisi bilgisayarda SOAP Toolkit 2.0 Service Pack 2'nin yüklü olmasını gerektirir.

  1. Visual Basic 6.0'ı başlatın ve yeni bir Standart EXE projesi oluşturun. Form1 varsayılan olarak oluşturulur.

  2. Proje menüsünde Başvurular'a tıklayın. Projeye aşağıdaki başvuruları ekleyin:

    • Microsoft Soap Tür Kitaplığı
    • Microsoft XML, v3.0
  3. Proje menüsünde Bileşenler'e tıklayın. Microsoft Office XP Web Bileşenleri'ni seçin ve ardından Tamam'a tıklayın.

  4. Form1'e aşağıdaki Office Web Bileşenlerini ekleyin:

    • Microsoft Office Grafik 10.0
    • Microsoft Office Veri Kaynağı Denetimi 10.0
    • Microsoft Office PivotTable 10.0
  5. Form1'e bir CommandButton denetimi ekleyin ve düğmenin Caption özelliğini Verileri Doldur olarak ayarlayın.

  6. CommandButton denetimine çift tıklayın ve Command1_Click işleyicisini aşağıdaki kodla değiştirin:

    Private Sub Command1_Click()
      Dim osoapClient As MSSOAPLib.SoapClient
    
    'Initialize the SOAP client object.
      Set osoapClient = CreateObject("MSSOAP.SoapClient")
      osoapClient.mssoapinit "https://localhost/MyDataService/Service1.asmx?wsdl", "Service1", "Service1Soap"
    
    'DOM object to load the results.
      Dim oXMLDoc As New MSXML2.DOMDocument
      Dim strdirname As String
    
    'File to store XML recordset.
      strdirname = FileSystem.CurDir$ + "\mydata.xml"
    
    Dim strxmlrecordset As String
    
    'Call the WebService method.
      strxmlrecordset = osoapClient.GetResultsAsAdoXML()
    
    'Load the XML in the DOM document.
      oXMLDoc.loadXML strxmlrecordset
    
    'Save it to the disk file.
      oXMLDoc.Save (strdirname)
    
    'Get the data into the DataSourceControl1 component.
      If Len(DataSourceControl1.ConnectionString) = 0 Then
         DataSourceControl1.ConnectionString = "provider=mspersist"
         ' Add a RecordsetDef with name ChartData to the DataSourceControl1
         DataSourceControl1.RecordsetDefs.AddNew strdirname, DataSourceControl1.Constants.dscCommandFile, "ChartData"
      End If
    
    'Get the Data into the Chart component.
      Dim c
      Dim cht As ChChart
      Dim chart1 As ChChart
      Dim ser As ChSeries
      Dim ax As ChAxis
    
    Set c = ChartSpace1.Constants
      ChartSpace1.Clear
    
    'DataSource to the Chart component.
      ChartSpace1.DataSource = DataSourceControl1.DefaultRecordset.DataSource
    
    ' Draw the chart.
      Set cht = ChartSpace1.Charts(0)
      cht.Type = c.chChartTypeBarStacked
      cht.HasLegend = True
      cht.Legend.Position = c.chLegendPositionTop
      cht.HasTitle = True
      cht.Title.Caption = "Category Sales for 1997"
    
    'Set the chart data.
      ChartSpace1.SetData chDimCategories, 0, "CategoryName"
      ChartSpace1.SetData chDimValues, 0, "CategorySales"
    
    ' Set the tick label spacing depending on the number of points plotted.
      Set ax = cht.Axes(c.chAxisPositionBottom)
    
    'Set the series attributes.
      Set ser = cht.SeriesCollection(0)
      ser.Name = "Category Sales"
      ser.Caption = ser.Name
      ser.Marker.Size = 4
    
    'Get the data into the PivotTable.
      PivotTable1.ConnectionString = "provider=mspersist"
      PivotTable1.CommandText = strdirname
      PivotTable1.AutoFit = True
      Set pview = PivotTable1.ActiveView
      pview.AutoLayout
      pview.FilterAxis.Label.Visible = False
      pview.RowAxis.Label.Visible = False
      pview.ColumnAxis.Label.Visible = False
      pview.TitleBar.Visible = False
    End Sub
    
    

    Not XML Web hizmeti ayrı bir bilgisayarda bulunuyorsa, XML Web hizmeti adresindeki localhost değerini XML Web hizmetinin bulunduğu sunucunun adıyla değiştirin.

  7. Programı derlemek ve çalıştırmak için F5 tuşuna basın. Form1 görüntülenir.

  8. Verileri Grafik ve PivotTable bileşenlerinde sunmak için Verileri Doldur'a tıklayın.

Başvurular

ASP.NET kullanılarak oluşturulan XML Web hizmetleri hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:

301273 Visual Basic .NET kullanarak basit bir Web hizmeti yazma

ASP.NET kullanılarak oluşturulan XML Web hizmetleri hakkında daha fazla bilgi için Visual Studio .NET Yardımı'ndaki "Web'i Web Hizmetleri ile Programlama" konusuna veya Microsoft .NET Framework Geliştirici Kılavuzu'ndaki "Web Hizmetleri ve ASP.NET Web Hizmeti İstemcilerini ASP.NET" konusuna bakın.

ASP.NET kullanılarak oluşturulan Web hizmetinin temel bileşenleri ve XML Web hizmetleri hakkında ek bilgi için aşağıdaki Microsoft Geliştirici Ağı (MSDN) Web sitesini ziyaret edin:

https://msdn.microsoft.com/en-us/library/ba0z6a33.aspx

Visual Studio ve Office XP Web Bileşenleri ile Microsoft Office geliştirme hakkında ek bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:

https://msdn.microsoft.com/en-us/library/aa188489(office.10).aspx