COM+ Dukungan Debugging Visual Basic Dikontraskan dengan MTS

COM+ menghapus atau mengurangi beberapa batasan penelusuran kesalahan dengan Microsoft Visual Basic 6.0 dan MTS. Daftar berikut ini meringkas perubahan yang dapat Anda harapkan dengan COM+:

  • Men-debug beberapa komponen—Di COM+, Anda dapat men-debug skenario di mana klien yang berjalan dalam satu instans IDE melakukan panggilan ke sejumlah DLL yang berjalan di yang lain sebagai grup proyek. Objek dalam proyek DLL yang dikelompokkan dapat saling memanggil konteks yang mengalir sesuai kebutuhan. Tentu saja, ini juga berfungsi ketika DLL dan klien berada dalam grup proyek yang sama dalam instans IDE yang sama.

  • Debugging Batasan pada peristiwa Class_Initialize dan Class_Terminate—Dengan COM+, Anda dapat memasukkan kode ke dalam Class_Initialize dan Class_Terminate peristiwa komponen aplikasi COM+ bahkan jika kode tersebut mencoba mengakses objek atau objek konteks yang sesuai. Anda dapat mengatur titik henti di sana dan menggunakan jam tangan. Anda juga dapat mengatur titik henti dalam peristiwa Class_Terminate.

    Meskipun tidak lagi diperlukan sebagai solusi, Anda masih dapat mengimplementasikan antarmuka IObjectControl dan menggunakan metode Aktifkan dan Nonaktifkan jika Anda perlu menjalankan kode selama startup dan shutdown komponen Anda. Anda juga sekarang dapat memasukkan titik henti dalam kode untuk metode Nonaktifkan atau CanBePooled .

  • Menonton Objek MTS—Dengan COM+, Anda dapat menambahkan jam tangan untuk variabel objek yang dikembalikan oleh COM+, termasuk nilai pengembalian dari metode Brankas Ref, GetObjectContext, dan IObjectContext::CreateInstance.

  • Peningkatan stabilitas saat komponen gagal—Di COM+, kegagalan komponen tidak akan selalu menghentikan Visual Basic (yang berjalan dalam proses yang sama dengan komponen yang di-debug). Misalnya, dukungan untuk kegagalan aktivasi ulang just-in-time (JIT) sekarang memungkinkan Anda untuk melihat konteks objek saat penelusuran kesalahan.

  • Debugger dapat mengaktifkan kembali objek yang dirilis oleh COM+—Seperti halnya MTS, Visual Basic 6.0 dapat mengaktifkan kembali objek COM+ saat Anda menelusuri kesalahan satu langkah melalui klien. Karena cara Visual Basic 6.0 menemukan informasi tentang objek, ini adalah perilaku yang diharapkan. Sebagai contoh, perhatikan kode berikut:

    Dim obj As Object
    Set obj = CreateObject("MyApp.MyClass")
    obj.Test  'Call the user-defined subroutine named Test.
    Set obj = Nothing
    

    Jika obj. Metode pengujian memanggil IObjectContext::SetComplete, COM+ segera membebaskan obj dari memori, tetapi obj belum diatur ke Tidak Ada. Ketika obj. Pengujian kembali, debugger Visual Basic memanggil QueryInterface pada obj untuk antarmuka IProvideClassInfo. Pembungkus konteks yang terkait dengan obj membuat instans baru MyApp.MyClass untuk melayani panggilan QueryInterface . Akibatnya, Anda akan melihat objek yang tidak diinisialisasi ini di debugger setelah obj. Pengujian telah kembali. Objek ini hanya muncul di debugger dan dihapus oleh instruksi berikutnya untuk mengatur obj ke Tidak Ada.

Debugging Komponen Visual Basic yang Dikompilasi

Penelusuran kesalahan di IDE Visual Basic