Cara Menyebarkan Adapter Kustom
Proses penginstalan adaptor lengkap terdiri dari langkah-langkah berikut:
Periksa dependensi. Misalnya, alat penginstal adaptor MSMQ memeriksa keberadaan layanan MSMQ lokal karena runtime adaptor bergantung padanya.
Siapkan sistem file lokal. Ini termasuk membuat folder penginstalan dan menyalin file biner dan dukungan. Pastikan akses ke folder dan izin akses file dikonfigurasi dengan benar.
Instal rakitan terkelola ke dalam cache perakitan global sistem.
Buat kunci registri untuk adaptor.
Catatan
Untuk adaptor 32-bit, Konsol Administrasi BizTalk Server menggunakan cabang HKEY_CLASSES_ROOT di registri untuk mendapatkan konfigurasi adaptor kustom. Jika adaptor 32-bit diinstal pada server 64-bit, Konsol Administrasi Layanan BizTalk sebagai gantinya menggunakan cabang HKEY_CLASSES_ROOT\Wow6432Node\ untuk data konfigurasi adaptor.
Tambahkan adaptor ke BizTalk Server. Ini berarti entri baru dalam database BizTalk Management untuk adaptor serta untuk skema properti yang digunakan untuk mencerminkan properti yang dipromosikan adaptor. Langkah ini terkadang dilakukan secara manual menggunakan konsol Administrasi BizTalk Server.
Pengecualian
Penginstal adaptor mungkin tidak perlu memeriksa dependensi dalam penginstalan BizTalk Server parsial. Misalnya, dalam penginstalan khusus alat administrasi, penginstal adaptor tidak perlu memeriksa dependensi runtime adaptor karena runtime adaptor tidak digunakan. Hal yang sama berlaku dalam penginstalan khusus runtime BizTalk Server, di mana alat penginstal adaptor tidak perlu memeriksa dependensi waktu desain adaptor.
Di beberapa lingkungan BizTalk Server, langkah terakhir dalam daftar sebelumnya (Tambahkan adaptor ke BizTalk Server) hanya terjadi di penginstalan adaptor pada BizTalk Server pertama. Ini karena semua instans layanan BizTalk Server berbagi database Manajemen BizTalk yang sama (dengan nama default, BizTalkMgmtDB). Jika adaptor ditambahkan ke server BizTalk lain dalam grup yang sama, langkah tambahan akan gagal.
Instal Rakitan Adapter ke dalam Singgahan Rakitan Global
Untuk mendukung beberapa lingkungan host BizTalk Server dengan jalur penginstalan adaptor yang berbeda, rakitan adaptor harus diinstal ke dalam cache perakitan global sistem.
Selama penginstalan dan konfigurasi adaptor, entri adaptor baru dibuat dalam tabel adm_adapter database BizTalk Management (dengan nama default BizTalkMgmtDB). Entri ini berisi semua informasi referensi yang digunakan oleh BizTalk Server untuk durasi dan waktu desain.
Bidang InBoundAssemblyPath dan OutboundAssemblyPath digunakan oleh runtime BizTalk Server untuk mengetahui tempat memuat biner adaptor. Karena hanya ada satu database BizTalk Management untuk grup BizTalk Server, semua server BizTalk dalam grup harus berbagi informasi yang sama ini. Jika Anda ingin menginstal adaptor pada server BizTalk yang berbeda dalam grup, Anda harus menggunakan jalur penginstalan yang sama di setiap server tersebut. Jika jalur penginstalan lokal berbeda dari jalur yang disimpan dalam database BizTalk Management, BizTalk Server tidak dapat memuat biner adaptor.
Selalu tanda tangani rakitan adaptor dengan nama yang kuat dan gunakan Gacutil.exe untuk memasukkan rakitan adaptor ke dalam cache perakitan global sistem selama penginstalan adaptor. Pastikan Anda membiarkan bidang InBoundAssemblyPath dan OutboundAssemblyPath null, atau kosong.
Menggunakan Kerangka Kerja untuk Konfigurasi Adapter
BizTalk Server menyediakan mekanisme untuk menghasilkan lembar properti untuk antarmuka pengguna konfigurasi adaptor (UI). Ini didasarkan pada definisi Definisi Skema XML (XSD) dari properti konfigurasi. Penggunaan kerangka kerja ini memperkenalkan tantangan signifikan bagi pengembang adaptor. Bagian ini menyarankan solusi yang efektif untuk beberapa masalah ini.
Pertimbangkan Editor Properti Kustom untuk semua Properti Kunci Anda
Tidak mungkin untuk menempatkan validasi properti yang signifikan di atas properti di lembar properti. Kerangka kerja mencoba menggunakan pembatasan simpleType Definisi Skema XML (XSD) untuk menentukan aturan validasi untuk UI. Aturan sederhana untuk nilai maksimum dan minimum diterapkan tetapi pembatasan ekspresi reguler untuk bidang string tidak didukung. Selain itu, data dikonversi menjadi jenis runtime bahasa umum (CLR) sebelum pembatasan diterapkan. Ini berarti pengguna UI terkadang mendapatkan kesalahan konversi jenis kriptik daripada kesalahan di luar rentang. Secara keseluruhan, logika validasi sangat lemah.
Solusi yang telah diadopsi banyak pengembang adaptor adalah menulis editor properti kustom untuk properti utama di lembar properti mereka. Jika ada sejumlah properti lintas dependen (seperti yang sering terjadi), editor properti kustom dapat menggabungkan hasilnya ke dalam satu bidang dan runtime nantinya dapat memisahkannya. Ini adalah satu-satunya cara untuk mendapatkan kode kustom yang diperlukan (meskipun umumnya masih sepele) ke dalam antarmuka.
Editor properti kustom relatif mudah ditulis dan properti di XSD dapat diannotasi untuk menggunakannya. Anotasi mereferensikan rakitan yang mengekspos titik entri editor properti, dan dikodekan untuk menampilkan Formulir CLR. Anda sekarang dapat menulis antarmuka pengguna biasa dan menggunakan alat generasi antarmuka tradisional yang ditawarkan Visual Studio.
Kode berikut menunjukkan cara menggunakan XSD untuk menambahkan editor properti kustom:
<xs:element name="queueDetails" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:appinfo>
<baf:designer>
<baf:displayname _locID="queueName">Queue Definition</baf:displayname>
<baf:description _locID="receiveQueueDesc">Details of MQSeries Server, Queue Manager and Queue from where you want to receive messages.</baf:description>
<baf:category _locID="mqsCategory">MQSeries</baf:category>
<baf:editor assembly="Microsoft.BizTalk Server.Adapter.MQSAdmin.dll">Microsoft.BizTalk Server.Adapter.MQSAdmin.MQSUITypeEditor</baf:editor>
</baf:designer>
</xs:appinfo>
</xs:annotation>
</xs:element>
Kode yang dirujuk akan terlihat seperti ini:
public class MQSUITypeEditor : System.Drawing.Design.UITypeEditor
{
public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle
(System.ComponentModel.ITypeDescriptorContext context)
{
return System.Drawing.Design.UITypeEditorEditStyle.Modal;
}
public override object EditValue (System.ComponentModel.ITypeDescriptorContext context,
System.IServiceProvider provider, object value)
{
Form qdForm = new QueueDefinitionForm(value);
IWindowsFormsEditorService service =
(IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
DialogResult dialogResult = service.ShowDialog(qdForm);
//…
}
}
class QueueDefinitionForm : System.Windows.Forms.Form
{
// traditional UI code goes here!
}
Runtime administrasi harus dapat menemukan rakitan yang dirujuk dalam XSD, jadi Anda harus menambahkannya ke cache perakitan global.