Bagikan melalui


Panduan: Menulis Visualizer di Visual Basic

Penting

Dimulai dengan Visual Studio 2022 versi 17.9, visualizer sekarang dapat ditulis dalam .NET 6.0+ yang kehabisan proses menggunakan model VisualStudio.Extensibility baru. Kami mendorong penulis visualizer untuk mereferensikan dokumentasi baru di Membuat visualizer debugger Visual Studio kecuali mereka ingin mendukung versi Visual Studio yang lebih lama atau ingin mengirim visualizer kustom mereka sebagai bagian dari DLL pustaka.

Panduan ini menunjukkan cara menulis visualizer sederhana dengan menggunakan Visual Basic. Visualizer yang akan Anda buat dalam panduan ini menampilkan isi string menggunakan kotak pesan Formulir Windows. Visualizer string sederhana ini adalah contoh dasar untuk menunjukkan bagaimana Anda dapat membuat visualizer untuk jenis data lain yang lebih sesuai untuk proyek Anda.

Catatan

Kotak dialog dan perintah menu yang Anda lihat mungkin berbeda dari yang dijelaskan di Bantuan, bergantung pada pengaturan atau edisi aktif Anda. Untuk mengubah pengaturan Anda, buka menu Alat dan pilih Impor dan Ekspor. Untuk mengetahui informasi selengkapnya, lihat Mengatur ulang dan menjalankan ulang.

Kode visualizer harus ditempatkan dalam DLL yang akan dibaca oleh debugger. Langkah pertama adalah membuat proyek pustaka kelas untuk DLL.

Membuat dan Menyiapkan Proyek Pustaka Kelas

Untuk membuat proyek pustaka kelas

  1. Buat proyek pustaka kelas baru.

    Tekan Esc untuk menutup jendela mulai. Ketik Ctrl + Q untuk membuka kotak pencarian, ketik visual basic, pilih Templat, lalu pilih Buat Pustaka Kelas (.NET Framework) baru. Dalam kotak dialog yang muncul, pilih Buat.

  2. Ketik nama yang sesuai untuk pustaka kelas, seperti MyFirstVisualizer, lalu klik Buat atau OK.

    Setelah membuat pustaka kelas, Anda harus menambahkan referensi ke Microsoft.VisualStudio.DebuggerVisualizers.DLL, sehingga Anda dapat menggunakan kelas yang ditentukan di sana. Namun, pertama-tama, Anda memberi proyek Anda nama yang bermakna.

Untuk mengganti nama Class1.vb dan menambahkan Microsoft.VisualStudio.DebuggerVisualizers

  1. Di Penjelajah Solusi, klik kanan Class1.cs, dan klik Ganti Nama pada menu pintasan.

  2. Ubah nama dari Class1.vb menjadi sesuatu yang bermakna, seperti DebuggerSide.vb.

    Catatan

    Visual Studio secara otomatis mengubah deklarasi kelas di DebuggerSide.vb agar sesuai dengan nama file baru.

  3. Di Penjelajah Solusi, klik kanan Visualizer Pertama Saya, dan klik Tambahkan Referensi pada menu pintasan.

  4. Di kotak dialog Tambahkan Referensi, pada tab Telusuri, pilih Telusuri dan temukan Microsoft.VisualStudio.DebuggerVisualizers.DLL.

    Anda dapat menemukan DLL di subdirektori <Direktori Instal Visual Studio>\Common7\IDE\PublicAssemblies dari direktori penginstalan Visual Studio.

  5. Klik OK.

  6. Di DebuggerSide.vb, tambahkan pernyataan berikut ke pernyataan Imports:

    Imports Microsoft.VisualStudio.DebuggerVisualizers
    

Menambahkan Kode sisi Debugger

Sekarang Anda siap untuk membuat kode sisi debugger. Ini adalah kode yang berjalan dalam debugger untuk menampilkan informasi yang ingin Anda visualisasikan. Pertama, Anda harus mengubah deklarasi objek DebuggerSide sehingga mewarisi dari kelas dasar DialogDebuggerVisualizer.

Untuk mewarisi dari DialogDebuggerVisualizer

  1. Di DebuggerSide.vb, buka baris kode berikut:

    Public Class DebuggerSide
    
  2. Edit kode sehingga terlihat seperti ini:

    Public Class DebuggerSide
    Inherits DialogDebuggerVisualizer
    

    Catatan

    DialogDebuggerVisualizer mengharapkan FormatterPolicy argumen dalam konstruktornya. Namun, karena masalah keamanan yang dijelaskan dalam Pertimbangan sisi debugger khusus untuk .NET 5.0+, dimulai dengan Visual Studio 2022 versi 17.11, visualizer tidak akan dapat menentukan Legacy kebijakan formatter.

    DialogDebuggerVisualizer memiliki satu metode abstrak, Show, yang harus Anda ambil alih.

Untuk mengambil alih metode DialogDebuggerVisualizer.Show

  • Di public class DebuggerSide, tambahkan metode berikut:

    Protected Overrides Sub Show(ByVal windowService As Microsoft.VisualStudio.DebuggerVisualizers.IDialogVisualizerService, ByVal objectProvider As Microsoft.VisualStudio.DebuggerVisualizers.IVisualizerObjectProvider)
    
        End Sub
    

    Metode Show berisi kode yang benar-benar membuat kotak dialog visualizer, atau antarmuka pengguna lain, dan menampilkan informasi yang telah diteruskan ke visualizer dari debugger. Anda harus menambahkan kode yang membuat kotak dialog dan menampilkan informasi. Dalam panduan ini, Anda akan melakukannya menggunakan kotak pesan Formulir Windows. Pertama, Anda harus menambahkan referensi dan pernyataan Imports untuk System.Windows.Forms.

Untuk menambahkan System.Windows.Forms

  1. Di Penjelajah Solusi, klik kanan Referensi dan klik Tambahkan Referensi pada menu pintasan.

  2. Dalam kotak dialog Tambahkan Referensi, pada tab Telusuri, pilih Telusuri, dan temukan System.Windows.Forms.DLL.

    Anda dapat menemukan DLL di C:\Windows\Microsoft.NET\Framework\v4.0.30319.

  3. Klik OK.

  4. Di DebuggerSide.cs, tambahkan pernyataan berikut ke pernyataan Imports:

    Imports System.Windows.Forms
    

Membuat Antarmuka Pengguna Visualizer Anda

Sekarang Anda akan menambahkan beberapa kode untuk membuat dan menampilkan antarmuka pengguna untuk visualizer Anda. Karena ini adalah visualizer pertama Anda, Anda akan menjaga antarmuka pengguna tetap sederhana dan menggunakan Kotak Pesan.

Untuk memperlihatkan output visualizer dalam kotak dialog

  1. Dalam metode Show, tambahkan baris kode berikut:

    MessageBox.Show(objectProvider.GetObject().ToString())
    

    Kode contoh ini tidak menyertakan penanganan kesalahan. Anda harus menyertakan penanganan kesalahan dalam visualizer nyata, atau jenis aplikasi lainnya.

  2. Pada menu Build, pilih Build MyFirstVisualizer. Proyek harus berhasil dibangun. Perbaiki semua kesalahan build sebelum melanjutkan.

Menambahkan Atribut yang Diperlukan

Itu adalah akhir dari kode sisi debugger. Namun, ada satu langkah lagi: atribut yang memberi tahu sisi debuggee koleksi kelas mana yang terdiri dari visualizer.

Untuk menambahkan jenis yang akan divisualisasikan untuk kode sisi debuggee

Dalam kode sisi debugger, Anda menentukan jenis yang akan divisualisasikan (sumber objek) untuk debuggee menggunakan atribut DebuggerVisualizerAttribute. Properti Target mengatur jenis yang akan divisualisasikan.

  1. Tambahkan kode atribut berikut ke DebuggerSide.vb, setelah pernyataan Imports tetapi sebelum namespace MyFirstVisualizer:

    <Assembly: System.Diagnostics.DebuggerVisualizer(GetType(MyFirstVisualizer.DebuggerSide), GetType(VisualizerObjectSource), Target:=GetType(System.String), Description:="My First Visualizer")>
    
  2. Pada menu Build, pilih Build MyFirstVisualizer. Proyek harus berhasil dibangun. Perbaiki semua kesalahan build sebelum melanjutkan.

Membuat Rangkaian Pengujian

Pada titik ini, visualizer pertama Anda selesai. Jika telah mengikuti langkah-langkah dengan benar, Anda dapat membangun visualizer dan menginstalnya ke Visual Studio. Namun, sebelum Anda menginstal visualizer ke Visual Studio, Anda harus mengujinya untuk memastikan bahwa visualizer berjalan dengan benar. Anda sekarang akan membuat test harness untuk menjalankan visualizer tanpa menginstalnya ke Visual Studio.

Untuk menambahkan metode pengujian untuk menampilkan visualizer

  1. Tambahkan metode berikut ke kelas public DebuggerSide:

    Shared Public Sub TestShowVisualizer(ByVal objectToVisualize As Object)
        Dim visualizerHost As New VisualizerDevelopmentHost(objectToVisualize, GetType(DebuggerSide))
    visualizerHost.ShowVisualizer()
    End Sub
    
  2. Pada menu Build, pilih Build MyFirstVisualizer. Proyek harus berhasil dibangun. Perbaiki semua kesalahan build sebelum melanjutkan.

    Selanjutnya, Anda harus membuat proyek yang dapat dijalankan untuk memanggil DLL visualizer Anda. Untuk mempermudah, gunakan proyek aplikasi konsol.

Untuk menambahkan proyek aplikasi konsol ke solusi

  1. Di Penjelajah Solusi, klik kanan solusi, pilih Tambahkan, lalu klik Proyek Baru.

    Dalam kotak Pencarian, ketik visual basic, pilih Templat, lalu pilih Buat Aplikasi Konsol (.NET Framework) baru. Dalam kotak dialog yang muncul, pilih Buat.

  2. Ketik nama yang sesuai untuk pustaka kelas, seperti MyTestConsole, lalu klik Buat atau OK.

    Sekarang, Anda harus menambahkan referensi yang diperlukan sehingga MyTestConsole dapat memanggil MyFirstVisualizer.

Untuk menambahkan referensi yang diperlukan ke MyTestConsole

  1. Di Penjelajah Solusi, klik kanan MyTestConsole dan pilih Tambahkan Referensi pada menu pintasan.

  2. Di kotak dialog Tambahkan Referensi, klik Microsoft.VisualStudio.DebuggerVisualizers pada tab Telusuri.

  3. Klik OK.

  4. Klik kanan MyTestConsole lalu klik Tambahkan Referensi lagi.

  5. Di kotak dialog Tambahkan Referensi, klik tab Proyek, lalu pilih MyFirstVisualizer.

  6. Klik OK.

Menyelesaikan Rangkaian Pengujian Anda dan Menguji Visualizer Anda

Sekarang, Anda akan menambahkan kode untuk menyelesaikan rangkaian pengujian.

Untuk menambahkan kode ke MyTestConsole

  1. Di Penjelajah Solusi, klik kanan Program.vb, dan klik Ganti Nama pada menu pintasan.

  2. Edit nama dari Module1.vb menjadi sesuatu yang sesuai, seperti TestConsole.vb.

    Perhatikan bahwa Visual Studio secara otomatis mengubah deklarasi kelas di TestConsole.vb agar sesuai dengan nama file baru.

  3. Di TestConsole. vb, tambahkan pernyataan Imports berikut:

    Imports MyFirstVisualizer
    
  4. Dalam metode Main, tambahkan kode berikut:

    Dim myString As String = "Hello, World"
    DebuggerSide.TestShowVisualizer(myString)
    

    Sekarang, Anda siap untuk menguji visualizer pertama Anda.

Untuk menguji visualizer

  1. Di Penjelajah Solusi, klik kanan MyTestConsole dan klik Tetapkan sebagai Proyek Startup pada menu pintasan.

  2. Pada menu Debug, klik Mulai.

    Aplikasi konsol dimulai. Visualizer muncul dan menampilkan string "Halo, Dunia."

    Selamat. Anda baru saja membuat dan menguji visualizer pertama Anda.

    Jika Anda ingin menggunakan visualizer Anda di Visual Studio alih-alih hanya memanggilnya dari rangkaian pengujian, Anda harus menginstalnya. Untuk informasi selengkapnya, lihat Cara: Menginstal Visualizer.