Untuk memahami pengembangan Visual Basic dalam lingkungan .Net, pertama-tama kita tentu saja harus memahami beberapa komponen dari lingkungan .Net dan bagaimana mereka berinteraksi.
Program Visual Basic .Net dicompile dan berjalan didalam kerangka kerja .Net. Mesin untuk mengeksekusi perintah-perintah yang dibuat oleh visual basic dikenal dengan nama common language runtime (CLR). CLR bertugas untuk meloading dan mengeksekusi perintah (kode) dan juga menangani masalah manajemen memori, keamanan, dan tipe-tipe data.
Pada level teratas dari semua ini adalah bahasa visual basic sendiri, atau bahasa-bahasa lain yang digunakan untuk membuat kode-kode perintah yang nantinya mengacu pada CLR. Kompiler VB mengambil kode-kode yang ditulis oleh programmer dan kemudian membuat intermediate language (IL) . Sebagai contoh, file-file DLL dan EXE mengandung IL yang dimengerti oleh CLR. Setiap kode yang dibuat untuk dijalankan dalam CLR dikenal sebagai managed code, karena kode tersebut berjalan dibawah kontrol dari CLR. Managed code adalah sebuah IL , karena setengahnya merupakan high level language (VB) dan setengahnya lagi adalah bahasa tingkat rendah (assembly / bahasa mesin).
Pada saat run-time, CLR mengkompile IL kedalam bentuk native code pada saat program berjalan dengan menggunakan kompiler Just-In-Time (JIT). Kompiler JIT membuat native code sesuai dengan spesifikasi CPU, jadi kita bisa membuat IL dari VB kemudian mengkompilenya untuk komputer dengan arsitektur yang berbeda. Ini kelihatan seolah-olah pemborosan karena mengkompile kode yang sangat banyak pada saat run time, padahal sebenarnya kompiler JIT tidak mengkonversi semua IL menjadi native code, namun hanya mengkonversi yang dibutuhkan / yang akan gunakan.
Keuntungan dari mengkompile dengan menggunakan JIT adalah ruang kerja dari aplikasi bisa dikurangi, karena penggunaan memori komputer untuk memproses intermediate code jauh lebih kecil. Didalam mengeksekusi aplikasi, hanya kode-kode yang dibutuhkan yang dikompile. Kode yang tidak digunakan, seperti kode untuk memprint jika si pengguna tidak memprint maka tidak akan dikompile oleh JIT, selanjutnya CLR bisa mengoptimasi eksekusi program on the fly pada saat run time. Sebagai contoh, dalam platform Windows, CLR mungkin mencari jalan untuk mengurangi page fault dalam memory manager dengan mengatur kembali kode yang sudah dikompile di memori, dan ini bisa dilakukan semua pada saat run time. Dikatan, ada waktu ketika hasil kompilasi JIT bisa meningkatkan performance komputer. Dalam kasus ini, kita bisa menggunakan native image generation (NGen) untuk mencompile IL di tempat program tersebut berjalan.
Dapat dilihat, bahwa teknologi CLR menggantikan file-file runtime VB dan juga mengeliminir penggunaan dari COM, DCOM, MTS, or COM+. Aplikasi VB sekarang berjalan dalam konteks CLR, jadi tidak dibutuhkan lagi kumpulan dll yang cukup merepotkan, tentu saja VB net masih bisa menggunakan COM components jika nanti dibutuhkan melalui fitur .NET.
Showing posts with label VB. Show all posts
Showing posts with label VB. Show all posts
Monday, January 4, 2010
Sunday, November 8, 2009
Perbedaan VB.NET dg VB 6
Perbedaan mendasar pada VB.NET dibandingkan VB 6 adalah .NET framework itu sendiri dan konsep OOP.
Teknologi .NET framework dengan arsitekturnya sangat berbeda dengan teknologi sebelumnya seperti pada VB 6. .NET framework memiliki compiler untuk masing-masing bahasa; Untuk VB.NET ada VB compiler, C# ada C# compiler, dan compiler bahasa lainnya. Masing-masing compiler ini akan melakukan kompilasi (compile) source code kita menjadi Intermediate Language (IL). Bahasa apapun yang kita pakai pada source code (entah itu VB.NET, atau C#, atau lainnya), akan di-compile menjadi IL.
Dengan teknologi ini, IL berperan sebagai sebuah bahasa netral yang nantinya akan dieksekusi oleh Common Language Runtime (CLR). CLR adalah sebuah Runtime yang berfungsi sebagai virtual machine seperti halnya Java Virtual Machine (JVM) pada teknologi JAVA. Jadi, logikanya, platform apapun bisa menjalankan sebuah aplikasi berbasiskan .NET dengan adanya CLR. Dan CLR melalui Just In Time (JIT) compiler nya, akan melakukan kompilasi terhadap IL menjadi native code OS.
Jika digambarkan secara sederhana, proses VB.NET source code menjadi native code sebuah OS seperti ini:
VB.NET source code --(VB compiler)--> IL --(CLR-JIT compiler)--> native code
Sementara pada VB 6 seperti ini:
VB 6 source code --(compiler)--> native code
Selain itu, masih banyak teknologi .NET lainnya yang tidak terdapat pada VB 6 seperti; Metadata, Code Access Security, Memory Management, dan lainnya. Satu lagi, karena .NET framework ini adalah sebuah framework yang bisa digunakan oleh berbagai bahasa, maka VB.NET pun bisa menggunakan semua fungsionalitas Framework Class Library dari .NET.
Dengan framework yang sekarang (versi 3.5), teknologi-teknologi baru seperti WPF, WCF, WF, LINQ, dan lainnya juga bisa diimplementasikan dengan menggunakan VB.NET.
Silahkan cari referensi nya di internet sangat banyak : )
Perbedaan yang kedua, yaitu OOP. VB 6 tidak di-desain untuk penggunaan OOP, berbeda dengan VB.NET. Oleh karena itu, mindset seorang developer VB 6 dengan procedural programming nya berbeda dengan developer VB.NET yang OOP minded. Walaupun bahasa yang digunakan pada VB dan VB.NET relatif sama, tapi konsep procedural programming dan OOP di dalamnya sangat berbeda.
@Swike: XML bisa juga kok di VB 6 ;D Selain itu, XML kurang reliable untuk difungsikan sebagai database, lebih cocok dipakai untuk menyimpan informasi ke dalam bentuk custom markup language. Biasanya digunakan sebagai file konfigurasi atau untuk serialization. WPF menggunakan XML sebagai bahasa nya yaitu XAML yang bersifat declarative-UI.
Teknologi .NET framework dengan arsitekturnya sangat berbeda dengan teknologi sebelumnya seperti pada VB 6. .NET framework memiliki compiler untuk masing-masing bahasa; Untuk VB.NET ada VB compiler, C# ada C# compiler, dan compiler bahasa lainnya. Masing-masing compiler ini akan melakukan kompilasi (compile) source code kita menjadi Intermediate Language (IL). Bahasa apapun yang kita pakai pada source code (entah itu VB.NET, atau C#, atau lainnya), akan di-compile menjadi IL.
Dengan teknologi ini, IL berperan sebagai sebuah bahasa netral yang nantinya akan dieksekusi oleh Common Language Runtime (CLR). CLR adalah sebuah Runtime yang berfungsi sebagai virtual machine seperti halnya Java Virtual Machine (JVM) pada teknologi JAVA. Jadi, logikanya, platform apapun bisa menjalankan sebuah aplikasi berbasiskan .NET dengan adanya CLR. Dan CLR melalui Just In Time (JIT) compiler nya, akan melakukan kompilasi terhadap IL menjadi native code OS.
Jika digambarkan secara sederhana, proses VB.NET source code menjadi native code sebuah OS seperti ini:
VB.NET source code --(VB compiler)--> IL --(CLR-JIT compiler)--> native code
Sementara pada VB 6 seperti ini:
VB 6 source code --(compiler)--> native code
Selain itu, masih banyak teknologi .NET lainnya yang tidak terdapat pada VB 6 seperti; Metadata, Code Access Security, Memory Management, dan lainnya. Satu lagi, karena .NET framework ini adalah sebuah framework yang bisa digunakan oleh berbagai bahasa, maka VB.NET pun bisa menggunakan semua fungsionalitas Framework Class Library dari .NET.
Dengan framework yang sekarang (versi 3.5), teknologi-teknologi baru seperti WPF, WCF, WF, LINQ, dan lainnya juga bisa diimplementasikan dengan menggunakan VB.NET.
Silahkan cari referensi nya di internet sangat banyak : )
Perbedaan yang kedua, yaitu OOP. VB 6 tidak di-desain untuk penggunaan OOP, berbeda dengan VB.NET. Oleh karena itu, mindset seorang developer VB 6 dengan procedural programming nya berbeda dengan developer VB.NET yang OOP minded. Walaupun bahasa yang digunakan pada VB dan VB.NET relatif sama, tapi konsep procedural programming dan OOP di dalamnya sangat berbeda.
@Swike: XML bisa juga kok di VB 6 ;D Selain itu, XML kurang reliable untuk difungsikan sebagai database, lebih cocok dipakai untuk menyimpan informasi ke dalam bentuk custom markup language. Biasanya digunakan sebagai file konfigurasi atau untuk serialization. WPF menggunakan XML sebagai bahasa nya yaitu XAML yang bersifat declarative-UI.
Subscribe to:
Posts (Atom)