Masa depan VisualBasic
WebForms (Formulir Web), Layanan Web (Layanan Web) dan peningkatan bahasa yang akan muncul dalam suatu versi
Pembaca artikel ini adalah pengguna yang sudah familiar dengan Visual Basic.
Ikhtisar: Versi berikutnya dari Microsoft Visual Basic memiliki tiga perbaikan utama: perbaikan pada WebForms, Layanan Web, dan sintaksis berorientasi objek. WebForms memungkinkan pengguna Visual Basic berpengalaman untuk mengembangkan aplikasi jaringan semudah menulis program yang berdiri sendiri saat ini. Melalui antarmuka SOAP, Layanan Web memungkinkan Anda menyebarkan komponen yang Anda desain di mana pun Anda memiliki akses ke Internet. Selain itu, beberapa perbaikan penting dalam bahasa berorientasi objek menjadikan kode Visual Basic sefleksibel C, termasuk pewarisan, polimorfisme, dan kelebihan beban. Untuk informasi mengenai aspek ini, silakan merujuk ke "VBITSkeynoteonthenext generationofVisualBasic" Steve Ballmer
isualBasic telah mengalami banyak perbaikan. Namun satu hal yang saya sukai sejak awal adalah, pada intinya, Anda masih dapat menulis program Anda dengan cara yang sama seperti pada tahun 1991. Tentu saja, paket perangkat lunaknya telah jauh lebih ditingkatkan dibandingkan saat itu, tetapi peningkatan ini umumnya bersifat tambahan dan tidak mengaburkan tujuan dari alat pemrograman itu sendiri. Tujuannya adalah: membuat Visual Basic lebih mudah dan lebih cepat Digunakan untuk mendesain, menulis dan men-debug aplikasi berorientasi objek yang luar biasa.
Versi Visual Basic 6.0 saat ini memperkenalkan WebClasses sebagai sarana yang disederhanakan untuk mengkonfigurasi aplikasi berorientasi jaringan yang kuat. Faktanya, WebClasses menyediakan banyak cara untuk mem-porting program ke Internet melalui alat umum. (Untuk pembahasan rinci tentang skalabilitas Visual Basic 6.0 di bawah jaringan, lihat "Kolom Dasar-dasar Lanjutan" Ted Pattison (diterbitkan oleh Microsoft Internet Developer pada bulan Oktober 1999)
Saya baru-baru ini mendapat kesempatan untuk mempelajari beberapa perbaikan baru yang direncanakan untuk versi Visual Basic berikutnya. Peningkatan utamanya adalah pada kapasitas penyimpanan, yang telah meningkatkan kapasitas penyimpanan tiga kali lipat dari kapasitas penyimpanan yang tersedia bagi pengembang. Versi Visual Basic berikutnya direncanakan untuk menampilkan fitur di lingkungan Visual Studio® yang disebut WebForms. WebForms mewakili solusi jaringan berbasis komponen baru. Layanan web akan menjadi solusi berbasis XML baru yang menerbitkan fungsi pemrosesan peristiwa tingkat menengah melalui protokol jaringan standar. Pada saat yang sama, bahasa Visual Basic akan menyertakan beberapa konstruksi yang telah lama diminta oleh pengembang, menjadikan Visual Basic konsisten dengan kebiasaan pemrograman berorientasi objek yang akrab bagi pengguna C dan Java.
Perbaikan ini akan diumumkan dalam versi beta Visual Basic berikutnya. Disini saya akan memberikan beberapa cuplikan kode, namun bukan solusi lengkapnya. Jadi apa yang perlu dikhawatirkan sekarang? Sederhana saja, selama Anda bertekad untuk memanfaatkan fitur-fitur baru ini, kini Anda dapat merancang program Anda melalui metode khusus ini dan mendapatkan latihan praktis terbaik untuk membantu Anda beralih dengan lancar ke versi Visual Basic berikutnya. Sekalipun tidak, Anda tidak akan rugi apa pun selama Anda mengatur program masa depan Anda sesuai dengan prinsip yang saya paparkan di akhir artikel ini.
VisualStudioWebForms
Versi Visual Basic berikutnya akan menjadi bagian dari lingkungan pengembangan Visual Studio dan kemungkinan besar akan memperkenalkan konsep baru WebForm kepada pengembang web. Tujuan diperkenalkannya konsep WebForm adalah untuk memperluas fungsi akses acak pada Visual Basic sehingga Visual Basic dapat diterapkan pada penulisan program jaringan yang mempunyai dampak yang semakin luas. Pengembang yang menggunakan bahasa apa pun di Visual Studio dapat membagikan Visual Studio WebForms ini.
Halaman WebForms terdiri dari dua bagian: file HTML yang mengimplementasikan antarmuka visual halaman WebForms dan file sumber yang menangani kejadian halaman WebForms. Karena sepertiga dari pengembangan saat ini berdasarkan lingkungan Visual Basic berorientasi pada jaringan, Microsoft berencana untuk lebih meningkatkan kemampuan di bidang ini. Di versi Visual Basic berikutnya, Anda bisa mendesain WebForm dengan cara yang sama seperti Anda menggunakan Visual Basic untuk menghasilkan formulir saat ini. Anda akan memiliki kotak peralatan kontrol web. Anda dapat menarik dan melepas kontrol langsung ke editor HTML untuk menggunakannya. Anda hanya perlu mengatur propertinya dan menulis beberapa kode yang sesuai. (Lihat Gambar 1). Singkatnya, Anda dapat melakukan tugas-tugas ini seperti Anda menggunakan Visual Basic untuk menghasilkan formulir. Anda akan mendapatkan desain formulir dan kode kompilasi yang sepenuhnya sesuai dengan format IntelliSense®, WYSIWYG. Jadi selama Anda mengetahui cara menulis aplikasi menggunakan Visual Basic, WebForms memungkinkan Anda menjadi pengembang web tanpa mengubah cara Anda bekerja sama sekali.
Gambar 1 Membangun WebForm dalam Empat Langkah
WebForms berjalan di server dan hanya mengirimkan formulir dalam format HTML ke pengguna. Sama seperti ActiveServerPage(asp), ini bukan browser tertentu atau aplikasi berbasis WebForm; tetapi seluruh proses juga berjalan di server. Faktanya, Anda menjalankan program yang menghasilkan antarmuka dalam format HTML 3.2 untuk pengguna jarak jauh. Tidak seperti halaman web ASP, kode-kode ini dikompilasi dan dijalankan alih-alih ditafsirkan, sehingga kecepatan berjalan meningkat secara signifikan.
Tujuan merancang WebForms adalah untuk mendapatkan fitur terbaik dari ASP dan WebClass. Anda dapat menggunakan bahasa apa pun dalam keluarga Visual Studio untuk menghasilkan WebForm. Jadi, Anda dapat menggunakan pengetahuan Anda untuk menulis aplikasi web berorientasi server yang efisien.
Layanan web
Layanan web adalah peningkatan besar kedua yang dilakukan oleh sistem alat pengembangan Visual Studio. Pada intinya, layanan Web adalah event handler tingkat menengah yang diterbitkan melalui protokol jaringan standar. Karena mereka menggunakan HTTP sebagai mekanisme transportasi (lihat Gambar 2), mereka dapat berkomunikasi melalui firewall. Anda cukup membuat beberapa Layanan Web dalam aplikasi web selama URL-nya ditetapkan dengan tepat. Saat program berjalan, panggilan antara semua komponen internal ini secara otomatis dikemas dan dipanggil melalui antarmuka XML. Pengembang dapat menulis dan menggunakan Layanan Web pada platform apa pun dan dalam bahasa apa pun. Jika Anda membutuhkan kerahasiaan, Anda dapat menggunakan SecureSocketLayer (SSL) atau teknologi pengecekan standar.
Gambar 2 Arsitektur Layanan Web
Jika salah satu dari ini mulai terdengar familier bagi Anda, itulah awal yang baik. Mekanisme yang digunakan untuk mentransfer data antar komponen adalah SOAP, Simple Object License Protocol. DonBox memperkenalkan SOAP secara rinci di Majalah MSDN™ yang diterbitkan pada bulan Maret 2000.
Semua fitur baru ini dirancang untuk memungkinkan pengembang aplikasi web membuat layanan Web yang sudah ada dan dapat digunakan kembali sehingga mereka dapat menulis aplikasi mereka lebih cepat tanpa harus menulisnya lagi setiap kali. Hal ini akan mengantarkan era baru penyedia kode program dan pengembang program.
Dengan menggunakan Visual Basic versi berikutnya, Anda akan segera dapat mempublikasikan dan mengimplementasikan fungsi-fungsi dalam proyek tertentu dalam bentuk layanan Web. Anda mungkin akrab dengan proses membuat kelas Visual Basic menjadi publik. Akan ada logo baru di versi Visual Basic berikutnya, yang untuk sementara disebut webpublic. Artinya program tersebut akan dipublikasikan sebagai layanan Web. Ini tidak hanya dapat digunakan oleh proyek lokal yang membutuhkannya melalui antarmuka COM, tetapi juga dapat melayani program jaringan apa pun yang mereferensikan alamat URL-nya. Sama seperti Anda dapat menambahkan referensi ke objek publik di proyek baru, Anda juga dapat menambahkan referensi ke program jaringan dan menggunakannya seolah-olah itu adalah program lokal.
Tentu saja mekanisme pengoperasiannya agak berbeda. Visual Basic dapat menyelesaikan referensi ke objek lokal melalui antarmuka COM. Saat Anda menambahkan referensi ke layanan jaringan ke aplikasi Anda, objek jarak jauh akan secara otomatis menghasilkan definisi antarmuka dan mengirimkannya ke lingkungan pengembangan Visual Studio menggunakan protokol SOAP. Meskipun ini akan dihasilkan dalam bentuk XML, Anda tidak perlu melakukan pekerjaan koneksi sendiri. VisualBasic akan menanganinya secara otomatis untuk Anda. Setelah menerima definisi antarmuka, Anda dapat menggunakan IntelliSense seolah-olah Anda telah menulis kode yang mereferensikan objek tersebut.
Berikut ini contoh sederhananya. Dalam beberapa kasus, Anda mungkin ingin menulis fungsi yang disebut Seahawks, yang mungkin terlihat seperti kode berikut:
PublicFunctionSeahawks(OlehValopponentAsString)AsString
Seahawk = "kalah"
Fungsi Akhir
Jika proyek yang Anda buat menyertakan fungsi ini, Visual Basic akan secara otomatis menghasilkan deskripsi format XML dari fungsi ini dan mempublikasikannya ke Internet.
<?xmlversion='1.0'?>
<methodshref='http://julian/Football/Tim'>
<methodname='Seahawks'href='Seahawks'>
<permintaan>
<paramdt='string'>lawan</param>
</permintaan>
<ditanggapi='string'/>
</metode>
</metode>
File XML ini akan digunakan untuk menjelaskan fungsi Seahawks. Jika Anda menggunakan lingkungan pengembangan Visual Studio, Anda dapat menarik dan melepas layanan Web apa pun yang diterbitkan langsung ke dalam aplikasi untuk membuat kelas baru. Jika Anda ingin memanggil layanan Web di mana pun di Internet, Anda hanya perlu membuat instance kelas yang berisi layanan Web tersebut dan kemudian memanggil metode yang dipublikasikan.
Ketika fungsi Seahawks dipanggil, secara otomatis berkomunikasi melalui paket XML. Jika Anda menggunakan Microsoft® Internet Explorer 5.0 (yang mencakup dukungan XML), Anda dapat mencoba menjalankan fungsi ini di browser Anda. Anda juga dapat memanggil fungsi ini menggunakan alamat URL sebagai berikut:
http://julian/webservice1/component1.methods/Seahawks?opponent=Miami
Ini akan mengembalikan data dalam format XML sebagai berikut:
<?xmlversion="1.0"?>
<Respon>kalah</Respon>
Untuk memfasilitasi pengembangan Layanan Web, Visual Basic akan memperkenalkan tipe objek baru, WebService. Anda dapat merancang dan menyebarkan WebService Anda ke layanan jarak jauh semudah membuat file DLL lokal sekarang.
Peningkatan bahasa
Telah lama terjadi hubungan yang tegang antara pemrogram yang lebih menyukai Visual Basic dan pemrogram yang lebih menyukai bahasa lain yang lebih "canggih". Lebih dari sekali saya membela bahasa pemrograman favorit saya dari tuduhan bahwa itu adalah "bahasa mainan" dan bahwa Visual Basic tidak memiliki fitur OOP.
Oke, jadi coba tebak apa yang terjadi? Versi Visual Basic berikutnya akhirnya akan mengakhiri keluhan mereka. Microsoft berencana menambahkan tiga fitur utama pemrograman berorientasi objek: pewarisan, polimorfisme, dan kelebihan beban. Bukan itu saja! Konstruksi tambahan, termasuk penanganan kesalahan terstruktur dan penjelajahan, juga akan diperkenalkan ke dalam bahasa Visual Basic.
Fitur pewarisan memungkinkan Anda merancang kelas dasar dan kemudian menulis beberapa kelas turunan yang mewarisi fungsi kelas dasar. Hal ini dapat menghemat waktu dan meningkatkan kegunaan kembali program. Misalnya, Anda menulis kelas dasar bernama BaseClass, yang memiliki fungsi:
FungsiDapatkanNamaPelanggan()
'Barang dosome
Fungsi Akhir
Sekarang Anda ingin menulis kelas lain yang dapat memanggil fungsi GetCustomerName kelas dasar seperti fungsinya sendiri. Apa metode lama? Hal ini tidak mungkin dilakukan di masa lalu. Namun, metode baru sekarang hanya memerlukan penyisipan baris sederhana di atas kelas baru:
MewarisiBaseClass
FungsiDapatkanIDPelanggan()
'Barang dosome
Fungsi Akhir
Menulis dua atau lebih fungsi dengan nama yang sama tetapi pengidentifikasi berbeda disebut kelebihan beban. Sampai batas tertentu, Visual Basic telah menerapkan kelebihan beban dalam konversi tipe internal dan pengaturan properti saat memanggil fungsi. Bandingkan dua baris kode Visual Basic yang valid berikut ini:
Teks1.Teks="7"
Teks1.Teks=7
Di kedua panggilan, teks di Text1 akan disetel ke string "7". Ini adalah panggilan yang kelebihan beban karena Visual Basic mengetahui cara menangani tipe data input yang berbeda. Ini memperlakukannya sebagai variabel dan mengubahnya secara otomatis. Saat Anda memanggil beberapa fungsi dengan tipe parameter yang ditentukan dengan jelas, Visual Basic juga akan melakukan konversi yang sama. Dua panggilan fungsi berikut:
a=SetVal("Ini")
a=SetVal(7)
Fungsi-fungsi berikut dapat dipanggil dengan benar:
FunctionSetVal(xAsString)
Formulir1.Teks1.Teks=x
Fungsi Akhir
Karena Visual Basic sudah dapat mentransfer banyak tipe variabel yang berbeda, mengapa Anda memerlukan fungsi kelebihan beban? Hal ini karena meskipun satu fungsi saat ini dapat menangani beberapa tipe data, fungsi tersebut tidak dapat menghasilkan tindakan berbeda berdasarkan tipe data berbeda yang diteruskan. Sebagai gantinya, bandingkan dua fungsi berikut:
FunctionGetCustomerID(custnameasstring)SebagaiInteger
'Cari ID Pelanggan berdasarkan nama Pelanggan
Fungsi Akhir
FunctionGetCustomerID(pembelian panjang)AsInteger
'CariIDPelangganberdasarkanPembelianSEOrder
Fungsi Akhir
Melalui kelebihan beban, Anda dapat mengimplementasikan fungsi berdasarkan tipe data masukan. Ini sangat penting untuk versi Visual Basic berikutnya, karena memiliki fitur baru - perlindungan tipe data default. Umumnya konversi variabel secara otomatis bermanfaat, tetapi Anda dapat membayangkan bahwa hal itu terkadang dapat menimbulkan masalah bagi Anda. Misalnya, pada contoh SetVal sebelumnya, apa yang akan terjadi jika Anda ingin mengirimkan karakter 7 dan bukan string "7"? Versi Visual Basic berikutnya secara otomatis akan menangkap kesalahan ini. (Jika kode Anda didasarkan pada fungsionalitas non-type-aware Visual Basic sebelumnya, fitur ini akan dinonaktifkan)
Terakhir, polimorfisme adalah proses mendefinisikan ulang kelas yang sudah ditentukan. Misalnya, Anda ingin menulis kelas turunan BaseClass, namun Anda ingin menulis ulang fungsi GetCustomerName. Di versi Visual Basic berikutnya, Anda bisa mengimplementasikan definisi kelas ini menggunakan metode baru yang mirip dengan berikut ini: (Catatan: sintaksis terakhir bergantung pada versi resmi)
MewarisiBaseClass
FungsiGetOrders()
OverrideFunctionGetOrders()
•••
Fungsi Akhir
Lebih banyak fitur sintaksis
Versi Visual Basic berikutnya mungkin memiliki lebih dari sekedar perbaikan berorientasi objek yang saya sebutkan di atas. Ada juga pembuatan thread, penanganan kesalahan, dan banyak peningkatan baru yang telah lama ditunggu-tunggu untuk skalabilitas dan penggunaan kembali.
Saat ini, Visual Basic mendukung model apartemen-threaded. Meskipun model ini memberikan efisiensi nyata untuk pengembangan aplikasi, namun model ini tidak ideal. Versi Visual Basic berikutnya akan mengalami perbaikan di area ini. Ini mengadopsi model freethreaded, yang akan berguna saat menulis aplikasi jaringan yang skalabel. Visual Basic juga akan menyertakan beberapa konstruksi sintaksis yang dapat Anda gunakan untuk menghasilkan banyak thread. Operasi umum yang terjadi pada thread adalah sebagai berikut:
sett=Benang Baru(Benang Barumulai
(Alamat(Kelas Dasar.Fungsi1))
Dari contoh ini, Anda dapat melihat bahwa versi Visual Basic berikutnya memiliki struktur AddressOf, yang digunakan untuk mengembalikan alamat fungsi. Anda tidak lagi dipaksa untuk melewatkan fungsi API yang memerlukan penunjuk fungsi! Jika Anda memerlukan panggilan balik, Anda dapat memanfaatkan ini untuk melakukannya.
Perbaikan lain yang direncanakan adalah penanganan kesalahan terstruktur. Belum lama ini, Visual Basic mengharuskan Anda memasukkan banyak pernyataan OnError ke dalam kode Anda. Selama bertahun-tahun saya merasa tidak nyaman memasukkan begitu banyak pernyataan GOTO. Pernyataan ini berulang kali memperingatkan saya untuk tidak menggunakannya lagi! Sekarang mari kita hadapi masalahnya - kita memerlukan mekanisme penanganan kesalahan.
Versi Visual Basic berikutnya akan memusatkan penanganan kesalahan. VisualBasic akan mendukung konstruksi try...catch...finally seperti bahasa-bahasa "mulia" itu. Anda dapat menempatkan subrutin yang berisi penanganan kesalahan di bagian atas kode Anda. Berikut contoh penerapan penanganan error:
SubAmanTulis()
Mencoba
Buka "File Uji"
•••
Tulis#1
Menangkap
Bunuh "File Uji"
Akhirnya
Tutup#1
Akhiri Coba
Sub Akhir
Ada peningkatan menarik lainnya yang akan diketahui oleh pengguna Visual Basic saat ini. Dalam versi Visual Basic berikutnya, Anda dapat menginisialisasi variabel pada saat yang sama ketika variabel tersebut dideklarasikan:
Dimaasinteger=10
Anda juga dapat membuat dan menginisialisasi objek baru dalam sebuah ekspresi. Anda juga dapat berbagi variabel melalui kelas. Yang terakhir, namun tidak hanya itu, konsep pewarisan meluas hingga ke dasar antarmuka pengguna proyek. Kritik umum terhadap Visual Basic adalah sulitnya membuat banyak bentuk berbeda berdasarkan landasan yang sama. (Hal ini sering kali merupakan persyaratan dalam lingkungan pengembangan bersama). Di Visual Basic versi berikutnya, Anda akan dapat melakukan ini melalui tipe templat.
Perbaikan ini telah diantisipasi selama bertahun-tahun. Mengapa? Mari kita lihat. Komunikasi Visual Basic (yang telah saya lakukan selama hampir belasan tahun) menjadi semakin kompleks, jauh melampaui versi pertama pada tahun 1991. Visual Basic pada awalnya digunakan untuk perancangan dan pengembangan cepat prototipe alat portabel kecil pada masa-masa awalnya. Hasilnya, Visual Basic memperoleh reputasi (yang tidak terduga, menurut pendapat saya) sebagai "bahasa mainan". Sekarang sudah jelas bahwa itu bukan mainan lagi, siapa pun yang mengatakan hal itu bertindak berdasarkan prasangka buta. Saat ini terdapat banyak sekali paket perangkat lunak berbasis Visual Basic di berbagai bidang. VisualBasic terus berkembang. Tahun lalu, di Pusat Penelitian, saya berbicara dengan seorang pengembang perangkat lunak yang menulis program menggunakan Web-Class yang menerima jutaan hit dalam seminggu.
Perubahan pada Visual Basic versi selanjutnya sungguh mengejutkan. Jika Anda ingin mendapatkan manfaat yang dibawanya, gunakanlah. Jika tidak mau, Anda bisa dengan percaya diri menggunakan apa yang masih Anda gunakan. Namun, perlu diketahui bahwa fungsi yang dilakukan C dan Java dapat diimplementasikan dalam bahasa seperti Visual Basic yang jauh lebih mudah digunakan daripada C dan Java.
Tren perkembangan masa depan
Kesan apa yang ditinggalkan oleh presentasi pratinjau ini bagi Anda? Itu pertanyaan yang bagus, tetapi Anda dapat menemukan jawabannya. Pada tahun lalu, kita dapat dengan jelas melihat perubahan dalam pengembangan ASP. Program pengembangan ini sering kali terdiri dari beberapa skrip ASP yang mudah dibaca, dan seluruh program dijalankan berdasarkan skrip tersebut. Sejak ASP menafsirkan dan mengeksekusi seluruh kode skrip, orang secara bertahap menemukan keterbatasan yang melekat pada teknologi ini ketika merakit setiap komponen. Saya mendengar semakin banyak pengembang mengatakan bahwa mereka ingin benar-benar memisahkan event handler mereka dari kode skrip dan mengimplementasikannya di bawah model kompilasi yang lebih cepat, ditulis dalam C++ atau Visual Basic, melalui antarmuka COM untuk perakitan.
Untuk setiap alasan yang Anda pikirkan, Visual Basic dapat memuaskannya. Mendesain komponen dengan Visual Basic sebenarnya tidak lebih sulit dibandingkan menggunakan VBScript atau JScript®. Anda dapat menulis kode yang dieksekusi lebih cepat dan memenuhi kebutuhan Anda dengan mudah. Ketika versi Visual Basic berikutnya dirilis, Anda dapat menggunakan Visual Basic untuk menghasilkan objek berorientasi jaringan yang kompatibel dengan ASP. Singkatnya, mengambil jalur kombinasi komponen akan dianggap sebagai pilihan terbaik saat ini dan di masa depan.
Seperti yang saya sebutkan sebelumnya, ada banyak aplikasi berorientasi Internet yang ditulis menggunakan Visual Basic (dan WebClasses). Masalahnya adalah sebagian besar aplikasi berbasis WebClass tidak dirancang dengan baik. Mereka tidak dapat membedakan dengan baik berbagai lapisan aplikasi, sehingga membingungkan proses tingkat menengah dengan antarmuka pengguna berbasis DHTML.
Versi Visual Basic berikutnya akan memperkenalkan WebClasses, yang merupakan alat yang dipilih dengan cermat untuk pengembangan web. Karena lebih terukur, lebih kuat, dan benar-benar bebas bahasa. Ia berfungsi di semua alat di Visual Studio. Jika Anda memperhatikan beberapa aturan dasar pengembangan multi-layer, Anda dapat melakukan transisi ini dengan mudah. Perhatian khusus harus diberikan untuk memisahkan proses lapisan tengah dan proses lapisan tampilan. Sangat disarankan untuk merujuk pada arsitektur Windows® DNA2000 saat melakukan tugas ini. Fungsi pemrosesan peristiwa inti harus diselesaikan di lapisan tengah, dan Anda dapat menggunakan berbagai komponen yang ditulis dalam bahasa kompilasi favorit Anda untuk mengimplementasikan fungsi-fungsi ini. Komponen-komponen tersebut kemudian dirangkai dalam sebuah file script ASP sehingga komponen-komponen tersebut dapat bekerja sama. Akan lebih ideal jika Anda menempatkan sebagian besar logika Anda pada objek peristiwa, bukan pada skrip. Hal ini tidak hanya merupakan ide bagus untuk transisi ke Layanan Web di masa mendatang, namun juga merupakan praktik yang patut ditiru. ->