Majelis BizTalk
Aspek terpenting dari Microsoft BizTalk Server dan .NET Framework adalah bahwa semua artefak BizTalk Server; peta, skema, orkestrasi, dan alur, dikompilasi ke dalam rakitan .NET. Dua implikasi terpenting dari desain ini adalah bahwa rakitan ini harus memiliki nama yang kuat, dan karena itu, mereka juga mengikuti aturan penerapan versi .NET. Implikasi utama dari ini adalah bahwa proyek BizTalk, setelah dibangun terhadap versi tertentu dari proyek atau rakitan .NET lain (termasuk proyek BizTalk), terus menggunakan versi tersebut sampai telah dibangun kembali terhadap versi yang lebih baru.
Penerapan Versi dan Rakitan .NET
Masalah umum terjadi selama pengembangan yang terkait dengan penerapan versi .NET ketika nomor versi pada proyek BizTalk tidak diubah dan rakitan disebarkan ulang tanpa menghentikan dan memulai instans host BizTalk tempat jenis dimuat.
Ketika proses dijalankan lagi, perubahan tidak berlaku. Hal ini disebabkan oleh cara rakitan .NET dimuat ke dalam memori. Karena host sudah memiliki salinan rakitan dalam memori, host tidak memuat ulang rakitan ketika salinan baru dimasukkan ke dalam Singgahan Majelis Global. Misalnya, jika rakitan versi 1.0.0.0 dengan orkestrasi disebarkan dan dijalankan, dan perubahan dilakukan pada orkestrasi tetapi nomor versi tidak diubah, maka perubahan tidak berlaku. Setelah instans host dihentikan, salinan dalam memori assembly dirilis dan ketika instans host dimulai lagi, instans host memuat ulang salinan baru assembly dan mendapatkan perubahan. Jika versi baru disebarkan, misalnya versi 2.0.0.0, dan dimuat, maka perubahan akan berlaku.
Menyebarkan rakitan ke BizTalk Server adalah proses dua bagian. Bagian pertama adalah penyebaran rakitan .NET tradisional di mana rakitan bernama kuat disebarkan ke Global Assembly Cache (GAC) di setiap server tempat perakitan akan digunakan. Langkah kedua adalah menyebarkan metadata tentang rakitan dan jenisnya ke database Manajemen BizTalk Server. Ketika rakitan BizTalk Server dimuat oleh BizTalk Server, mereka paling sering dimuat menggunakan nama yang kuat, ditemukan dalam database Manajemen.
Menyebarkan Rakitan Server BizTalk ke GAC
Artefak BizTalk Server yang dibuat pengembang dikompilasi ke dalam kelas yang berasal dari jenis BizTalk Server bawaan. Misalnya, orkestrasi menjadi kelas yang berasal dari kelas Microsoft.BizTalkXLANGs.BTXEngine.BTXService. Ini karena kelas dasar ini disebarkan dalam rakitan ke Global Assembly Cache, dan rakitan ini memiliki dependensi pada rakitan lain di GAC, bahwa rakitan pengembang juga harus disebarkan ke GAC.
Implikasi penting lainnya dari artefak BizTalk Server yang disebarkan ke Global Assembly Cache dan karenanya diberi nama yang kuat, adalah bahwa rakitan bernama yang kuat tidak dapat memanggil rakitan lain yang tidak juga kuat bernama. Ini berarti bahwa setiap rakitan yang dibuat pengembang yang digunakan oleh rakitan BizTalk Server ini juga harus diberi nama yang kuat. Demikian juga, rakitan yang disebarkan ke GAC yang memuat rakitan lain tanpa menggunakan jalur tertentu, harus memuat rakitan tersebut dari GAC.
Komponen alur ditambahkan ke kotak alat pengembang di Visual Studio untuk membuatnya tersedia untuk diseret ke perancang alur. Ketika alur BizTalk Server dikompilasi ke dalam rakitan .NET, informasi tentang semua komponen dalam berbagai tahap alur dikompilasi ke dalam perakitan. Ketika alur ini disebarkan ke BizTalk Server, informasi tentang komponen, termasuk nama file mereka, dimasukkan ke dalam database BizTalk Management dan rakitan alur disebarkan ke GAC. Setiap rakitan tambahan yang bergantung pada komponen alur BizTalk juga harus disebarkan ke GAC agar dapat ditemukan pada waktu proses. Rakitan komponen alur harus disalin ke direktori BizTalk Server\Pipeline Components agar dapat diakses oleh alur BizTalk saat runtime, baik rakitan juga disebarkan ke GAC atau tidak. Ketika alur dijalankan, komponen-komponen ini dimuat, dan antarmuka yang mereka terapkan disebut sebagaimana mewajibkan. Jika rakitan komponen alur juga disebarkan ke GAC, rakitan akan dimuat dari GAC saat runtime. Ini dapat menyebabkan kebingungan jika perawatan tidak dilakukan untuk memastikan bahwa rakitan komponen alur sama di direktori BizTalk Server\Pipeline Components dan GAC.