NET101 – Migrasi VB6 ke VBmdproduction.files.wordpress.com/2011/06/migrasi... · 2011. 6. 24. ·...
Embed Size (px)
Transcript of NET101 – Migrasi VB6 ke VBmdproduction.files.wordpress.com/2011/06/migrasi... · 2011. 6. 24. ·...
-
NET101 – Migrasi VB6 ke VB.NET
Migrasi
VB6 ke VB.NET (NET101)
Kiki Rizki Noviandi Katarina Clementine
Milis Tarigan Risman Adnan
Kunarto Ricky Suryo Utomo
Ario Suryo Aryo Handono
Project Otak 2005
Project Otak – http://otak.csharpindonesia.net 2
-
NET101 – Migrasi VB6 ke VB.NET
Project Otak Project otak adalah project open source yang bertujuan untuk menyediakan resources tentang informasi teknologi .NET bagi orang-orang yang ingin belajar teknologi .NET.
Trademark Acknowledgements Team project otak akan berusaha menyediakan informasi trademark termasuk semua produk yang telah disebut didalam buku ini. Windows, Framework .NET, Visual VB.NET, dan Visual Studio.NET adalah trademark dari Microsoft
Credits Project Manager Agus Kurniawan Technical Writer Kiki Rizki Noviandi (Leader) Katarina Clementine Milis Tarigan Risman Adnan Kunarto Ricky Suryo Utomo Ario Suryo Kusumo Aryo Handono Editor Kiki Rizki Noviandi Agus Kurniawan Cover Designer Danni Afasyah Version 1.0 Printed: 10 Januari 2005 Book Code: NET101 Update E-Book : http://otak.csharpindonesia.net Semua materi yang ada didalam buku ini adalah satu kesatuan. Tidak boleh sebagian atau seluruh materi didalam buku ini diubah tanpa seijin team project otak.
Project Otak – http://otak.csharpindonesia.net 3
http://otak.csharpindonesia.net/
-
NET101 – Migrasi VB6 ke VB.NET
Kata Pengantar Dengan memanjatkan puji syukur kehadirat Tuhan Yang Maha Esa atas segala rahmat dan hidayah NYA, Kami team Project Otak berhasil menyelesaikan project lain yang merupakan project delivery dari Project Otak yaitu e-book dengan judul Migrasi dari VB 6 ke VB NET. Semoga buku ini dapat bermanfaat bagi masyarakat Indonesia yang ingin belajar dan memahami VB .NET lebih lanjut khususnya bagi yang akan melakukan migrasi dari VB 6 ke VB.NET. Kami menyadari sebagai manusia penulis masih banyak sekali kekurangan dalam penulisan buku ini. Oleh karena itu kami sangat berharap saran dan masukan dari pembaca atas buku ini demi perbaikan kualitas buku ini . Dengan motto KNOWLEDGE is FREE, kami ucapkan selamat membaca. Salam, Jakarta, 6 Januari 2004 Team Project Otak
Project Otak – http://otak.csharpindonesia.net 4
-
NET101 – Migrasi VB6 ke VB.NET
Tentang Penulis
Kiki Rizki Noviandi Kiki Rizki Noviandi, Adalah seorang Solutions Manager pada sebuah perusahaan IT Consulting di Jakarta yaitu INTIMEDIA. Mempelajari .NET dari mulai versi beta dan mulai terjun dalam project dengan teknologi .NET ketika .NET pertama kali di launching. Memiliki pengalaman menangani beberapa project dengan platform yang berbeda menyebabkan pria ini menyukai teknologi yang bersifat integrasi di level enterprise solution. Selain itu dalam hal Computer science pria ini juga menyukai hal yang berhubungan dengan desain system dan software architecture. Kupersembahkan buku ini untuk istriku tercinta Nenden dan putraku tersayang Luqman yang selalu menjadi sumber inspirasi ku... thanks to otak member dan Intimedian yang telah membantu terbitnya buku ini. Pada pembuatan buku ini kiki terlibat dalam pembuatan materi untuk bab 6
Risman Adnan Risman Adnan adalah salah satu pendiri dari INDC (Indonesia .NET Developer Community) yang saat ini bekerja sebagai Developer Evangelist di Microsoft Indonesia. Sebelum berkecimpung di dunia IT, Risman Adnan adalah scientific programmer yang bekerja dalam penelitian mengenai semikonduktor amorf silikon karbon. OOP, .NET , C# Kupersembahkan buku ini : "To Principessa,..." Risman Adnan telah memberikan kontribusi di buku ini pada bab 4
Project Otak – http://otak.csharpindonesia.net 5
-
NET101 – Migrasi VB6 ke VB.NET
Project Otak – http://otak.csharpindonesia.net 6
Katarina Clementine Dewi Maya Katarina Clementine Dewi Maya adalah Developer untuk Loaning System di perusahaan Internet Solutions PT.Adicipta Inovasi Teknologi (Ad-Ins) yang dalam kesehariannya menggunakan bahasa pemrograman Visual Basic .NET dan SQL Server 2000. Sebelumnya bergerak di dunia .NET, pernah menjadi developer Visual Basic 6 (2003),System Analyst untuk Neodone System.Lahir di Jakarta 23 November 1982. Alumni Bina Nusantara jurusan Teknik Informatika. Di kala senggangnya masih aktif di komunitas Microsoft, salah satunya adalah Project OTAK “Knowledge is Free” ,sering mengutak atik games 3D untuk kaum hawa, membongkar CPU, penikmat Jazz - relaksasi – Slow Rock, window shopping , kolektor pensil kayu. Kupersembahkan buku ini:Untuk Cinta-cinta dan topangan hidup saya… Pa n Ma, Tac, Ok2, Osh2 , Oc, bayi2 Ian dan Nadine (with love from“SAM”(ku)),Y. Gosal, S. Lestari, Asen, Kurnia T., Yudo, VMAG, Effendi Ng, Danny Effendy,segenap komunitas Microsoft dan keluarga besar Ad-Ins Dewi Maya telah memberikan kontribusi di buku ini pada bab 1 dan 2
-
NET101 – Migrasi VB6 ke VB.NET
Project Otak – http://otak.csharpindonesia.net 7
Dirgahayu Tarigan Dirgahayu Tarigan menyukai semua hal yang berhubungan dengan IT dan Telekomunikasi dan senang belajar hal yang baru. Ia mempunyai pengalaman sebagai Developher dan Trainer. Saat ini bekerja di salah satu Perusahaan IT di Jakarta. Kupersembahkan buku ini: Buat siapa saja yang mau belajar dan terima kasih kepada komunitas milis yang telah membagikan ilmunya. Dirgahayu Tarigan telah memberikan kontribusi di buku ini pada bab 3
Ricky Suryo Utomo Ricky Suryo Utomo sehari-harinya adalah .NET Developer dan Mobile Game Developer pada PT. Adicipta Inovasi Teknologi (AdIns). Ricky lahir di Surabaya 29 Februari 1980 dan lulusan angkatan’97 dari Sekolah Tinggi Teknik Surabaya (STTS). Ricky terlibat dalam beberapa project yang dikembangkan dengan Microsoft .NET khususnya menggunakan Visual Basic .NET. Selain itu selain menjadi developer aplikasi bisnis, Ricky juga mengembangkan project PDA Game dengan judul Burning Armor yang telah dipasarkan secara international, dalam bahasa programVisual C++. Kupersembahkan buku ini: Golzen, Guntur, Ferunita, Candra, Lea, Era, Team MAX, rekan - rekan AdIns dengan supportnya, rekan-rekan Project Otak yang telah memberikan kepercayaan. Ricky telah memberikan kontribusi di buku ini pada bab 8
-
NET101 – Migrasi VB6 ke VB.NET
Project Otak – http://otak.csharpindonesia.net 8
Kunarto Figur Low Profile dan apa adanya senantiasa terbawa dalam keseharian pemilik nick name “ch03n” ini. Tak mudah bergantung pada orang lain dan senantiasa mengexplore sampai batas kemampuan maximal diri adalah suatu keharusan dalam mempelajari sesuatu, oleh karenanya motto dari web www.tekun.com “Seni Belajar Sendiri” sangatlah selaras dengan pemiliknya. Lahir di Pati, tgl 02 agustus 1975, sebuah kota kecil di Jawa tengah dan hanya berbekal ijasah SLTA. Mencoba peruntungan nasib dibelantara Pendekar IT di ibu kota dengan berbekal Pengetahuan tentang Hardware, Programming (Visual FoxPro, Vb.Net , Asp.Net , MSSql) , Networking dan server Administration Saat ini bekerja sebagai IT Manager disebuah perusahaan Asing (Korea) dan aktif mendedikasikan dirinya untuk berbagi ilmu – ilmu apa aja yang bermanfaat lewat Personal site www.tekun.com & www.kunarto.com dan bergabung dalam INDC Group Leader dan Tugas mengurus Artikel Portal untuk www.vbindonesia.net & www.aspxindonesia.net Dipersembahkan Tulisan ini untuk : Keluarga Besar ku. ☺ Kunarto telah memberikan kontribusi di buku ini pada bab 7
http://www.tekun.com/http://www.tekun.com/http://www.kunarto.com/http://www.vbindonesia.net/http://www.aspxindonesia.net/
-
NET101 – Migrasi VB6 ke VB.NET
Aryo Handono Aryo Handono lahir pada bulan Desember 1979 di Jakarta dan telah menamatkan studinya di Universitas Indonesia. Saat ini bekerja sebagai IT Consultant pada perusahaan manufacture Jepang dan juga sambil mengerjakan beberapa project pribadi dengan rekan tim yang lain. Hobi makan, baca dan sering menghabiskan waktu untuk develop program dan Games. Dipersembahkan Tulisan ini untuk : Karya ini dipersembahkan kepada Allah SWT, orang tua tercinta, adik – adik tercinta dan tak kurang kepada seseorang yang sangat istimewa dan berarti bagi penulis. Aryo Handono telah memberikan kontribusi di buku ini pada bab 5
Ario Surya Kusumo Ario Surya adalah Instruktur .NET pada lembaga pendidikan Tanmia Pasar Minggu Jakarta juga penulis artikel dan buku tentang VB dan VB.NET. Dia juga adalah mahasiswa S2 Magister Sistem Informasi, Univ Gunadarma Jakarta Ario Surya Kusumo telah memberikan kontribusi di buku ini pada bab 2
Project Otak – http://otak.csharpindonesia.net 9
-
NET101 – Migrasi VB6 ke VB.NET
Daftar Isi Project Otak .......................................................................................................3 Credits .................................................................................................................3 Kata Pengantar .....................................................................................................4 Tentang Penulis ....................................................................................................5 Daftar Isi .............................................................................................................10 1. Visual Basic .NET bukan sekedar Visual Basic 6 + 1 .....................................13
1.1 Alasan Microsoft mengembangkan Teknologi .NET? ........................................... 13 1.1.1 Migrasi dari Visual Basic ke Visual Basic.Net.................................................. 13 1.2 Fitur-Fitur baru yang terdapat pada .NET.......................................................... 14 1.3 Bekerja dengan Visual Basic 6.0 dan Visual Basic.NET .................................. 14 1.3.1 Aplikasi Browser-based..................................................................................... 14 1.3.2 Aplikasi berbasis Client-Server ......................................................................... 15 1.3.3 Aplikasi Single – Tier ........................................................................................ 15 1.3.4 Data .................................................................................................................... 15 1.4 Mengapa Migrasi dari vb6 ke vb.net?................................................................ 16 1.5 Kesimpulan ........................................................................................................ 17
2. Pengenalan Framework .NET.........................................................................18 2.1 Apakah Framework .NET? ..................................................................................... 18 2.1.1 Pustaka class Framework .NET .......................................................................... 20 2.1.2 Common Language Runtime .............................................................................. 20 2.2 Bahasa Pemrograman Yang Mendukung Framework .NET ................................. 23 2.3 Tujuan Desain Framework .NET........................................................................... 23 2.3.1 Infrastruktur Komponen...................................................................................... 23 2.4 Keuntungan yang didapatkan dari .NET Framework ............................................. 24
3. Perbedaan Visual Basic 6 dengan Visual Basic .NET ....................................26 3.1 Pendahuluan............................................................................................................ 26 3.2 Antar Muka (IDE)................................................................................................... 26 3.2.1. Perubahan Tampilan dan Layout ........................................................................ 27 3.2.2 Perubahan Menu .................................................................................................. 28 3.2.3 Penggunaan Keyboard ......................................................................................... 31 3.3 Perubahan Project ................................................................................................... 31 3.3.1 Perubahan Project Property dalam Visual Basic .NET........................................ 32 3.3.2 Perubahan Template dalam Visual Basic .NET................................................... 33 3.3.3 Perubahan Reference dalam Visual Basic .NET.................................................. 33 3.4 Perubahan Bahasa ................................................................................................... 33 3.5 Ringkasan Perubahan.............................................................................................. 33 3.5.1 Array .................................................................................................................... 39 3.5.2 Perubahan Perintah ReDim.................................................................................. 40 3.5.3 Perubahan Tipe Data........................................................................... 40 3.5.4 Function ............................................................................................................... 41 3.5.5 Procedure ............................................................................................................. 42
Project Otak – http://otak.csharpindonesia.net 10
-
NET101 – Migrasi VB6 ke VB.NET
3.5.6 Perubahan Debugger............................................................................................ 42 4. Upgrade Aplikasi VB 6 ke VB.NET .................................................................43
4.1 Upgrade Wizard ...................................................................................................... 43 4.2 Rekomendasi Sebelum Melakukan Upgrade .......................................................... 45 4.3 Upgrade Project Group ........................................................................................... 46 4.4 Menggunakan VB Snippet Add-In ......................................................................... 47 4.5 Metodologi Dalam Upgrade Wizard....................................................................... 48 4.6 Kesimpulan ............................................................................................................. 50
5. Melakukan Migrasi Aplikasi Sederhana ..........................................................51 5.1 Apakah Migrasi itu perlu ........................................................................................ 51 5.2 Yang Hilang di VB.NET......................................................................................... 51 5.3 Persiapan sebelum migrasi...................................................................................... 52 5.4 Contoh Migrasi dari VB6 ke VB.NET ................................................................... 53
6. Masalah Pada Proses Upgrade ......................................................................61 6.1 Default Properties ................................................................................................... 61 6.2 AddItem dan ToString menggunakan COM Objects .......................................... 62 6.5. Deterministic Finalization dengan Garbage Collection........................................ 64 6.4 Dim…As New ....................................................................................................... 65 6.5 Sub Main (or Default Form) ................................................................................. 66 6.6 Bad Constants ......................................................................................................... 67 6.7 Drag and Drop......................................................................................................... 68 6.8 Collection Classes................................................................................................... 73 6.9 Kesimpulan ............................................................................................................. 76
7. Debuging in VB.Net ........................................................................................77 7.1 Debuging................................................................................................................. 77 7.2 Debuging Consepts ................................................................................................. 77 7.3 Debug Menu............................................................................................................ 78 7.3.1 Step Into ............................................................................................................... 79 7.3.2 Step Over ............................................................................................................. 80 7.3.3 Step Out ............................................................................................................... 81 7.3.4 Run To Cursor...................................................................................................... 82 7.4. Watches.................................................................................................................. 82 7.5 BreakPoint............................................................................................................... 83 7.6 Exceptions Window................................................................................................ 84 7.7 Try Statement.......................................................................................................... 86 7.8 Command Window ................................................................................................. 87 7.9 Kesimpulan ............................................................................................................. 88
8. Case study migrasi Visual Basic ke Visual Basic.NET dengan menggunakan wizards................................................................................................................89
8.1 Aplikasi VCR.......................................................................................................... 89 8.2 Pengelompokan code menjadi empat versi............................................................. 90 8.3 Menjalankan Code Advisor fo Visual Basic 6.0..................................................... 90 8.4 Melakukan Upgrade dari Visual Basic ke Visual Basic.NET dengan wizards ...... 91 8.5 Melakukan enhancement dan modifikasi................................................................ 95 8.6 Balai Pustaka........................................................................................................... 95
Daftar Pustaka ....................................................................................................96
Project Otak – http://otak.csharpindonesia.net 11
-
NET101 – Migrasi VB6 ke VB.NET Lampiran.............................................................................................................97 Strukutur Organisasi Project Otak 2005-2006 ....................................................98 Program Donatur Project Otak..........................................................................100
Project Otak – http://otak.csharpindonesia.net 12
-
NET101 – Migrasi VB6 ke VB.NET
1. Visual Basic .NET bukan sekedar Visual Basic 6 + 1 Katarina Clementine Dewi Maya
1.1 Alasan Microsoft mengembangkan Teknologi .NET? Evolusi dari teknologi Microsoft selalu terfokus pada teknologi yang terdepan. Pengeluaran tools baru dari Microsoft selalu berhubungan dengan teknologi terakhir yang sedang dilirik oleh pasar. Salah satunya adalah .NET. Teknologi .NET membutuhkan 3 tahun untuk tahap pengembangannya sebelum akhirnya dirilis pertama kali pada Februari 2002. .NET Teknologi adalah suatu platform baru di dalam pemrograman untuk lingkungan yang terdistribusi luas(internet). Istilah .NET sering diasosiasikan dengan proses yang berjalan pada platform .NET. Teknologi .NET adalah pemrograman berbasis jaringan atau biasa disebut dengan web-based. Hal ini membuat .NET mudah dijalankan dimana saja karena dimana Anda memiliki Internet Explorer, disanalah .NET dapat dijalankan. Bentuk keunggulan dari .NET juga terealisasi dengan kompilasi source-code dimana semua program akan dikompilasi menjadi MSIL(Microsoft Intermediate Language). Dan MSIL dikompilasi dengan .NET Compiler sehingga menjadi bahasa mesin pada saat akan digunakan. Pada buku ini kita akan membahas lebih jauh mengenai teknologi Visual Basic.NET.
1.1.1 Migrasi dari Visual Basic ke Visual Basic.Net Microsoft Visual Basic .NET adalah pengembangan lebih lanjut dari bahasa pemrograman visual basic.Developer Visual Basic 6 akan merasa familiar dalam penggunaan Visual Basic .NET dan mengenal sebagian besar konstruksinya yang mirip. Namun bagaimanapun Microsoft telah membuat beberapa perubahan yang membuat Visual Basic.NET sebagai bahasa pemrograman yang lebih baik dan menjadi setara dalam teknologi .NET sebagaimana bahasa pemrograman .NET yang lainnya. Hal ini termasuk penambahan keyword Class untuk mendefinisikan kelas-kelas dan keyword Inheritance untuk objek Inheritance. Hasil coding pada Visual Basic 6 tidak bisa dikompilasi pada Visual Basic .NET tanpa modifikasi yang signifikan, namun kita tidak perlu kuatir, karena Microsoft menyediakan tools untuk migrasi untuk menangani hal tersebut.
Project Otak – http://otak.csharpindonesia.net 13
-
NET101 – Migrasi VB6 ke VB.NET 1.2 Fitur-Fitur baru yang terdapat pada .NET Dengan dirilisnya .NET platform, Visual Basic telah mengalami perubahan sbb: Pemrograman Object-Oriented (OOP) sepenuhnya.Pemrograman berorientasi objek. Pemrograman ini mempertinggi kualitas dan produktifitas pengembangan software. Program pengembangannya dilakukan dengan pendekatan building block. Setiap block, disebut object, bersifat independen dan mampu berjalan sendiri atau saling kunci dengan object lain dengan mudah dan otomatis. Object-object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya. Masing-masing object harus berisikan informasi mengenai dirinya sendiri(encapsulation) dan object yang dapat dikaitkan (Inheritance). Aplikasi dan komponen yang ditulis di Visual Basic .NET memiliki akses penuh untuk .NET Framework (yang akan dibahas lebih lanjut pada bab 2) sebagai class library yang menyediakan system dan application services. Semua aplikasi yang dijalankan oleh teknologi .NET menggunakan runtime yang telah di manage sedemikian rupa , atau umumya disebut sebagai Common Language Runtime(CLR)
1.3 Bekerja dengan Visual Basic 6.0 dan Visual Basic.NET Program dan aplikasi Visual Basic 6.0 dan Visual Basic .NET bisa dipasang dan dieksekusi sekaligus di satu komputer yang sama. Komponen-komponen yang ditulis di Visual Basic .NET bisa berinteroperasi dengan komponen COM yang ditulis di Visual Basic 6.0. Sebagai contoh, kita bisa meletakkan kontrol ActiveX yang ditulis di Visual Basic 6.0 ke Windows Form di Visual Basic .NET class library, atau menambahkan Visual Basic .NET library ke Visual Basic 6.0 exe. Di bawah ini kita lakukan klasifikasi perbandingan antara Visual Basic 6.0 dan Visual Basic .NET sebagai hal-hal yang perlu diperhatikan apabila kita melakukan upgrade dari Visual Basic 6.0 ke Visual Basic .NET:
Aplikasi Browser Based
Aplikasi berbasis Client-Server
Aplikasi Single-Tier
Data
1.3.1 Aplikasi Browser-based Aplikasi Browser-based adalah : beberapa teknologi pendukung untuk membuat aplikasi Internet dan Intranet yang menggunakan browser sebagai tempat dijalankannya suatu program. Pada Visual Basic 6.0 hal-hal yang mendukung Aplikasi Browser-based adalah:
Project Otak – http://otak.csharpindonesia.net 14
-
NET101 – Migrasi VB6 ke VB.NET
Webclasses DHTML projects ActiveX documents Active Server Pages (ASP)
Pada Visual Basic .NET hal-hal tersebut mengalami perubahan , sbb: Webclasses sudah tidak digunakan di Visual Basic .NET karena telah digunakan ASP.NET Aplikasi DHTML terdiri dari halaman DHTML dan DLL di pihak client. Aplikasi ini tidak bisa diupgrade secara otomatis ke Visual Basic .NET sehingga sebaiknya tetap ditinggal di Visual Basic 6.0. Di Visual Basic. NET disebut Web Form. dokumen ActiveX tidak disupport di Visual Basic .NET dan sama halnya dengan DHTML project DHTML yang tidak bisa diupgrade secara otomatis. Sehingga sebaiknya tetap ditinggal juga di Visual Basic 6.0.Di Visual Basic disebut user control. Pada Visual Basic .NET telah digunakan ASP.NET sebagai perluasan dari ASP. ASP.NET ditambahkan pada arsitektur Web Form (sama dengan halaman HTML dengan event Visual Basic). Arsitekturnya berbasis server(Server based). Aplikasi DHTML dan dokumen ActiveX bisa saling berinteroperasi dan menavigasi satu sama lain dengan teknologi baru yang terdapat pada .NET, sehingga memungkinkan untuk menavigasi Visual Basic .NET Web Form ke Visual Basic 6.0 DHTML page, dan sebaliknya.
1.3.2 Aplikasi berbasis Client-Server Project berbasis Client-Server adalah: Sistem terdistribusi dimana suatu perangkat lunak terbagi atas tugas server dan tugas client. Clien mengirim permintaan ke pihak server, melalui protocol, dan menanyakan informasi atau aksi, kemudian server memberi tanggapan/respon. Teknologi yang digunakan Visual Basic 6.0 untuk membuat aplikasi berbasis Client Server adalah sbb:
Visual Basic Forms Microsoft Transaction Server (MTS)/COM+ middle-tier objects User controls
1.3.3 Aplikasi Single – Tier Tier adalah konsep untuk memudahkan pengelompokan dari arsitektur yang memiliki kelas-kelas yang berbeda. Pada dasarnya, apabila sebuah aplikasi dijalankan disebuah single komputer, maka aplikasi tersebut berbasis Single-Tier. Keuntungan dari aplikasi single tier adalah kesederhanaan, performance yang tinggi dan mensupport diri sendiri. Beberapa tipe Single-Tier yang didukung oleh Visual Basic 6.0 adalah sbb:
Single-tier database applications Visual Basic add-ins Utility programs and games
1.3.4 Data Data adalah: Fakta, atau bagian fakta yang mengandung arti, yang dihubungkan dengan kenyataan, simbol-simbol, gambar-gambar, kata-kata, angka-angka, huruf-huruf atau simbol-simbol yang menunjukkan suatu ide, objek, kondisi, atau situasi dan lain-lain.
Project Otak – http://otak.csharpindonesia.net 15
-
NET101 – Migrasi VB6 ke VB.NET Data itu sendiri merupakan bentuk jamak dari datum yang berarti informasi. Jelasnya data itu dapat berupa apa saja dan dapat ditemui di mana saja, Visual Basic 6.0 menawarkan beberapa tipe data access:
ActiveX Data Objects (ADO) Remote Data Objects (RDO) Data Access Objects (DAO)
1.4 Mengapa Migrasi dari vb6 ke vb.net? Alasan dilakukan Migrasi dari Visual Basic 6 ke Visual Basic .NET: Mendeploy aplikasi sekarang semudah mengkopi komponen dan .exe dari 1 direktori ke direktori yang lain. Web Forms dan ADO.NET yand disediakan di Visual Studio .NET memungkinkan kita bisa membuat Web Site dengan cepat Windows Forms mendukung inheritance Selain bisa mengembangkan komponen aplikasi dengan berbagai bahasa pemrograman , kelas-kelas yang kita buat bisa diturunkan(inherit) dari bahasa pemrograman yang 1 untuk digunakan di bahasa pemrograman yang lainnya dengan menggunakan penurunan cross-language(cross-language inheritance). Dan dengan penyatuan debug(unified debugger), kita bisa mendebug aplikasi yang menggunakan lebih dari 1 bahasa pemrograman, terlepas dari apakah kita menjalankan debug di local computer atau remote komputer. Apapun bahasa pemrograman yang digunakan, Microsoft .NET framework menyediakan banyak API untuk Microsoft Windows dan Internet. Visual Basic .NET sekarang telah diintegrasi sepenuhnya dengan bahasa pemrograman Visual Studio .NET lainnya. Visual Basic.NET mengalami perubahan yang mendasar dari pemrograman berbasis Windows untuk membuat aplikasi Web dan N-Tier , dan karena alasan inilah kita mendapat keuntungan dari migrasi yang kita lakukan. Hal ini terjadi secara otomatis pada saat kita membuka proyek Visual Basic 6.0 di Visual Basic .NET: Upgrade Wizard akan membawa kita untuk proses migrasi dan membuat proyek baru Visual Basic .NET(proyek lama akan tetap ada tanpa diganggu gugat). Namun, Proyek Visual Basic .NET tidak bisa dibuka di layar Visual Basic 6.0 disebabkan versi Visual Basic 6.0 yang lebih rendah dari Visual Basic .NET, hal ini disebut juga dengan proses searah. Pada saat kita melakukan upgrade dari Visual Basic 6.0, terjadi modifikasi sintaks bahasa pemrograman dan Form Visual Basic 6.0 dikonversi menjadi Windows Form. Dan tidak dapat kita pungkiri bahwa dalam beberapa kasus, kita perlu melakukan perubahan pada coding Visual Basic 6.0, karena setelah di-upgrade ada beberapa obyek dan fitur bahasa yang tidak sama atau baru di Visual Studio .NET sehingga perlu sinkronisasi dari faktor manusianya. Setelah dilakukan upgrade, kita bahkan bisa mendapatkan keuntungan dengan menggunakan fitur-fitur baru yang terdapat pada Visual Basic .NET.
Project Otak – http://otak.csharpindonesia.net 16
-
NET101 – Migrasi VB6 ke VB.NET
1.5 Kesimpulan Berdasarkan penjelasan-penjelasan di atas, penulis cukup yakin seiring akan adanya perkembangan teknologi,maka diperlukan adanya migrasi dari Visual Basic ke Visual Basic .NET , namun tidak dapat dipungkiri bahwa sejauh ini masih banyak digunakan bahasa pemrograman Visual Basic disesuaikan dengan kebutuhan pasar dan faktor biaya.Tetapi dari segi fitur dan fasilitas yang disediakan oleh Microsoft, Visual Basic .NET telah mewujudkan bahasa pemrograman Visual Basic teknologi informasi masa depan.
Project Otak – http://otak.csharpindonesia.net 17
-
NET101 – Migrasi VB6 ke VB.NET
2. Pengenalan Framework .NET Ario Suryo Kusumo & Katarina Clementine Dewi Maya
Microsoft .NET adalah software yang menghubungkan informasi, orang, sistem dan device/perangkat yang menjangkau client, server dan tool-tool pengembang. Microsoft .NET disusun oleh:
• Framework .NET, digunakan untuk membangun dan menjalankan semua macam software termasuk aplikasi Windows, aplikasi berbasis Web, aplikasi smart client, dan Layanan Web XML (Extensible Markup Language). Menyediakan komponen untuk berbagi data melalui Network menggunakan platform protokol independen seperti XML, SOAP, dan HTTP.
• Tool-tool pengembang seperti Microsoft Visual Studio .NET yang menyediakan IDE (Integrated Development Environment, lingkungan pengembangan terintegrasi) untuk memaksimalkan produktifitas pengembangan menggunakan Framework .NET.
• Serangkaian server termasuk Microsoft Windows Server 2003, Microsoft SQL Server dan Microsoft BizTalk Server yang terintegrasi, untuk menjalankan, mengoperasikan dan mengelola services Web dan aplikasi berbasis Web.
• Software client seperti Windows XP, Windows CE, Windows Mobile dan Microsoft Office XP yang membantu pengembang untuk menyebarkan dan mengelola aplikasinya.
2.1 Apakah Framework .NET? Framework (kerangka kerja) .NET yang merupakan middleware antara aplikasi dengan sistem operasi adalah lingkungan untuk membangun, deploy (menyebarkan) dan menjalankan aplikasi .NET. Framework .NET disusun oleh dua komponen utama yaitu .NET Framework Class Library (pustaka class Framework .NET) dan Common Language Runtime (runtime bahasa umum)
Project Otak – http://otak.csharpindonesia.net 18
-
NET101 – Migrasi VB6 ke VB.NET
VB.NET C++.NET C#.NET J#.NET
XML Web Service
Form-form Web
ASP.NET Form-form Windows
Common Language Runtime (CLR)
Base Class Library (BCL)
Data ADO.NET dan XML
Common Language Specification (CLS)
…
Gambar 2-1 Framework .NET
Tujuan dari Framework .NET adalah: • Menyediakan lingkungan pemrograman berorientasi objek, apakah kode objek
disimpan dan dijalankan secara lokal, dijalankan secara lokal tetapi disebarkan melalui Internet atau dijalankan secara remote (dijalankan dari suatu tempat).
• Menyediakan lingkungan untuk menjalankan suatu kode yang meminimalkan konflik saat software deployment/disebarkan dan versioning/tentang versi.
• Menyediakan lingkungan untuk menjalankan suatu kode yang menjamin keamanan saat kode dijalankan, termasuk kode yang dibuat oleh pihak yang unknown/tidak diketahui atau pihak ketiga yang semi-trusted/setengah dipercaya.
• Menyediakan lingkungan untuk menjalankan suatu kode yang dapat mengeliminasi masalah performa dari lingkungan skripted dan interpreted.
• Membuat pengembang memiliki pengalaman yang konsisten dalam berbagai tipe aplikasi seperti aplikasi berbasis Windows dan aplikasi berbasis Web.
Pada Gambar 2.1 terlihat level tertinggi dari Framework .NET adalah kompiler Visual Basic .NET dan bahasa-bahasa pemrograman lainnya. Dibawah kompiler terdapat CLS (Common Language Specification, spesifikasi/perincian bahasa umum). Spesifikasi adalah serangkaian aturan yang menentukan fitur minimum yang harus mendukung dari suatu bahasa untuk memastikan bahwa bahasa tersebut akan interoperate dengan CLS-compliant (bahasa yang kompatibel dengan CLS) lainnya dan tool-tool. Sepanjang bahasa tersebut mendukung CLS, maka dapat dipastikan akan bekerja dengan CLR. Seperti yang Anda lihat pada Gambar di atas, VB.NET sejajar dengan C++.NET , C#.NET, J++.NET, J#.NET dan bahasa-bahasa pemrograman lainnya yang mendukung .NET. Sekarang VB.NET memiliki tipe variabel, array, UDF (user-defined types, tipe yang didefinisikan pemakai), class, form grafikal, kontrol visual, dan antar muka yang sama dengan bahasa pemrograman lainnya. Struktur umum tersebut membuat pemanggilan class dari satu bahasa .NET ke bahasa .NET lainnya akan lebih mudah.
Project Otak – http://otak.csharpindonesia.net 19
-
NET101 – Migrasi VB6 ke VB.NET 2.1.1 Pustaka class Framework .NET Pustaka class Framework .NET, pada Gambar 1.1, dibagi menjadi 4 area yang berwarna abu-abu muda yaitu:
• ASP.NET untuk pembuatan aplikasi form-form Web yang berbasis UI (User Interface, antar muka pengguna) dan Service Web untuk pengembangan antar muka secara terprogram.
• Pengembangan antar muka pengguna pada platform Windows dapat dilakukan menggunakan Form-form Windows.
• Fungsi akses data disediakan oleh ADO.NET dan XML • Base Class Library (pustaka class-class dasar) berisi koleksi class-class kode
terkelola yang menyediakan services/layanan esensial untuk mengembangkan aplikasi dalam .NET.
Class-class pada Framework diorganisasikan kedalam kelompok-kelompok yang saling berhubungan, tersusun secara hierarki dan disebut namespace. Ketika aplikasi akan mengakses class, yang pertama dilakukan adalah mengakses namespace yang berhubungan.
2.1.2 Common Language Runtime Common language runtime/CLR/runtime bahasa umum (runtime) merupakan dasar dari Framework .NET. Runtime adalah adalah lingkungan eksekusi untuk .NET yang akan memanggil, mengelola dan menjalankan kode Anda. Runtime menyediakan sejumlah services/layanan, seperti berikut ini:
• Mengelola kode (loading dan menjalankan). • Isolasi memori aplikasi. • Verifikasi untuk keamanan type. • Konversi dari IL (Intermediate Language) ke kode native/bahasa mesin. • Akses metadata (tipe informasi yang diperkaya). • Mengelola memori pada objek managed/terkelola. • Mengelola keamanan kode askes. • Menangani eksepsi (kejadian yang tidak diharapkan yang muncul saat kode
dieksekusi) termasuk eksepsi lintas bahasa. • Inperoperation diantara managed code, objek COM, dan pre-existing DLL
(unmanaged code dan data). • Otomatisasi layout objek. • Mendukung services pengembang (profiling, debugging, dan sebagainya).
Project Otak – http://otak.csharpindonesia.net 20
-
NET101 – Migrasi VB6 ke VB.NET
Gambar 2-2 Arsitektur Framework .NET (sumber: Microsoft MSDN)
Konsep pengelolaan kode merupakan prinsip dasar dari runtime. Kode yang menjadi target dari runtime disebut managed code/kode terkelola, sedangkan kode yang tidak menjadi target runtime disebut unmanaged code/kode yang tak dikelola. VB.NET akan menjalankan managed code apabila dalam sistem komputer tersebut terdapat CLR atau dengan kata lain pemakai tidak dapat menjalankan aplikasi VB.NET tanpa menginstal CLR terlebih dulu. CLR “mengetahui” apa yang akan dilakukan pada data khusus (disebut metadata) yang berada dalam aplikasi. Metadata berisi peta dimana menemukan class, kapan memanggil class dan kapan mengatur batas isi runtime, menghasilkan native code/kode asli, mengatur keamanan, menentukan class mana yang menggunakan metode dan memanggil class jika dibutuhkan. CLR juga menentukan kapan suatu objek digunakan dan dilepas. Semua itu disebut managed code. Kode yang dikompilasi dengan COM dan deklarasi Win32API disebut unmanaged code, apa yang Anda dapatkan ketika menggunakan VB versi sebelumnya. Ada dua cara yang dapat Anda lakukan pada unmanaged code. Anda dapat mengekspor komponen COM ke Framework .NET atau Anda dapat mengekspos komponen .NET ke COM. Framework .NET dapat di-hosted oleh komponen unmanaged yang memanggil CLS ke prosesnya dan menjalankan managed code sehingga menciptakan lingkungan software yang menggunakan fitur managed dan unmanaged. Managed code membuat kita tidak tergantung pada file DLL (Dynnamic Link Library), registri, GUID (Graphicals User Idetifications), AddRef, HRESULT, semua macros dan API (Application Programming Interfaces).
Project Otak – http://otak.csharpindonesia.net 21
-
NET101 – Migrasi VB6 ke VB.NET Untuk melakukan kegiatan Runtime, dibutuhkan kompiler bahasa yang mengikuti CLS (Common Language Specification) yang menerangkan suatu subset tipe data yang didukung oleh runtime serta umum dipakai oleh semua bahasa dalam lingkup .NET. Kompiler bahasa akan mengkompilasi kode yang ditulis oleh pengembang menjadi sebuah bahasa tingkat menengah yang disebut MSIL (Microsoft Intermediate Language) atau disingkat IL saja, yang kemudian akan dikompilasi menjadi bahasa native(kode mesin) oleh runtime pada saat instalasi, atau dikompilasi menjadi JIT (Just-in-time) pada awal eksekusi. Runtime didesain untuk meningkatkan performa. Meskipun CLR banyak menyediakan layanan standar, managed code tidak pernah diinterpretasikan/diterjemahkan. JIT akan mengkompilasi semua managed code agar dapat berjalan pada bahasa mesin native dari sistem dimana program dijalankan. Sementara itu pengelola memori akan menghilangkan kemungkinan memori terdefragmentasi dan meningkatkan referensi lokal dari memori untuk meningkatkan kecepatan. Kode yang dikompilasi oleh MSIL dan dikelola oleh runtime merupakan managed code/kode terkelola. Disebut managed code karena tanggung jawab pengelolaan eksekusinya dilakukan oleh runtime termasuk instansi objek, alokasi memori dan pengumpulan sampah objek oleh memori. Komponen-komponen yang dikelola oleh runtime disebut managed assembly atau disingkat assembly. Assembly adalah unit dasar penerapan dalam dunia .NET. Sebuah Assembly memiliki manifest/manifestasi yaitu serangkaian metadata yang menerangkan isi assembly. Salah satu kelebihan assembly adalah sifat menerangkan-diri pada komponen .NET artinya untuk menjalankan komponen-komponen tersebut tidak perlu diregister pada komputer. Metadata juga menerangkan dependensi dan informasi versi yang berkaitan dengan suatu assembly. Hal ini bukan saja mempermudah untuk memastikan bahwa semua dependensi yang diperlukan sudah terpenuhi, tapi juga berarti berbagai versi assembly yang sama dapat berjalan berdampingan dalam satu komputer tanpa menimbulkan konflik. Banyak orang yang pernah mengalami peristiwa yang disebut “DLL Hell” atau “petaka DLL”. Petaka DLL adalah masalah yang muncul ketika beberapa aplikasi menggunakan komponen umum yang sama. Hal itu terjadi ketika file DLL yang lama atau yang baru menindih file DLL sebelumnya, setelah menginstal suatu aplikasi baru. Biasanya DLL yang baru tidak kompatibel ke belakang. Akibatnya pengaturan registry akan berubah, beberapa ditambah, dan beberapa dihapus sehingga beberapa aplikasi menjadi rusak. Contohnya adalah penggunaan berbagai versi dari ADO (ActiveX Data Object). Untuk menghindari ‘DLL Hell” aplikasi .NET akan mengetahui versi mana dari assembly yang harus dipakai sehingga aplikasi tersebut akan memakai versi yang tepat dari sejumlah versi yang sama dengan cara melakukan query ke metadata assembly.
Project Otak – http://otak.csharpindonesia.net 22
-
NET101 – Migrasi VB6 ke VB.NET 2.2 Bahasa Pemrograman Yang Mendukung Framework .NET Berikut adalah bahasa pemrograman yang mendukung Framework .NET: APL Fortran Pascal
C++ Haskell Perl
C# Java Language Python
COBOL Microsoft JScript® RPG
Component Pascal Mercury Scheme
Curriculum Mondrian SmallTalk
Eiffel Oberon Standard ML
Forth Oz Microsoft Visual Basic® Tabel 2.1 Daftar bahasa pemrograman yang mendukung Framework .NET
Sumber: GotDotNet
2.3 Tujuan Desain Framework .NET Di bagian ini akan dibahas tujuan utama desain Framework .NET termasuk mendukung komponen, integrasi bahasa, interoperasi aplikasi melalui cyberspace, menyederhanakan development/pengembangan dan deployment/penyebaran, reliability yang lebih baik dan meningkatkan security.
2.3.1 Infrastruktur Komponen Komponen disini artinya adalah komponen COM (Component Object Model) untuk referensi ke suatu modul binary seperti DLL atau EXE. Teknologi COM memungkinkan programmer mengintegrasikan komponen binary ke dalam aplikasinya. Meskipun COM bagus, masalah detil pada COM membuat pengembang menjadi pusing. Ketika COM mengijinkan Anda untuk mengintegrasikan komponen binary yang dikembangkan oleh suatu bahasa, itu memerlukan Anda untuk mematuhi identitas COM, masa hidup dan aturan layout binary. Anda juga harus menulis kode plumbing (rumit) yang dibutuhkan untuk membuat suatu komponen COM seperti DllGetClassObject, CoRegisterObject dan lainnya. Pada .NET, semua class siap untuk digunakan pada level binary. Anda tidak perlu menulis kode plumbing ekstra untuk mendukung komponenisasi dalam Framework .NET. Anda hanya perlu menulis class .NET yang akan menjadi bagian dari assembly dan medukung plug and play. Untuk mempermudah pengembangan, Framework .NET menghilangkan kesulitan dalam mengembangkan komponen COM. Khususnya, .NET menghilangkan penggunaan registry untuk registrasi komponen dan dan mengeliminasi kebtuhan untuk menulis kode plumbing seperti pada komponen COM termasuk kode untuk mendukung unkown, factories class, masa hidup komponen, registrasi, dynamic binding dan sebagainya.
Project Otak – http://otak.csharpindonesia.net 23
-
NET101 – Migrasi VB6 ke VB.NET
2.4 Keuntungan yang didapatkan dari .NET Framework Secara garis besar, .NET Framework adalah environment runtime yang baru, dimana tujuan utamanya adalah untuk menyediakan mekanisme agar program lain dapat dieksekusi. Mekanisme ini dibangun dalam suatu framework, yang membuat proses pengembangan lebih sederhana dan platform secara keseluruhan lebih stabil dan aman. Beberapa keuntungan utama yang didapat adalah:
• Pengaturan Memory secara otomatis (sering juga disebut “garbage collection”) kebanyakan pembaca familiar dengan kerusakan memori, yang menjalankan proses dimana suatu aplikasi menggunakan system resource(typical memori)tetapi memori tersebut tidak dikembalikan/hilang pada saat suatu sistem telah selesai. Hal ini membuahkan hasil Oversight Error dalam pemrograman. Dalam .NET Framework hal ini telah dihindari, komponen dari .NET Framework bertugas untuk menyelidiki apakah system resource masih dibutuhkan dan akan segera dibebaskan apabila sudah tidak dibutuhkan dalam suatu aplikasi.
• Code-level security: Selain menentukan aplikasi mana saja yang bisa dieksekusi
di sistem, .Net Framework memungkinkan System Administrator untuk memberi akses pada level tertentu pada saat suatu aplikasi sedang dijalankan(contoh: pada waktu tertentu, akses diberikan oleh System Administrator untuk memperbolehkan aplikasi untuk ditulis oleh 1 user, di tempat lain dengan waktu yang bersamaan user lain hanya diberi akses read-only)
• Pengaturan Standard version : Masalah paling umum pada Visual Basic 6 yang
berjalan pada Platform Windows adalah “DLL hell”(DLL neraka ☺). Hal ini mengacu pada situasi dimana beberapa aplikasi diinstall pada satu komputer yang sama dan memerlukan versi yang DLL(Dynamic Link Libraries) yang berbeda-beda. Walaupun solusi parsial dari masalah ini telah diperkenalkan pada Windows 2000, tetap saja hal ini belum menjamin tidak terjadinya konflik pada skenario DLL. Pada aplikasi .NET, hal ini bisa dipecahkan. Aplikasi .NET dapat membedakan secara tepat versi pendukung yang dibutuhkan untuk menjalankan suatu program. Informasi ini disimpan pada Assembly , yang merupakan bagian instrinsik dari setiap aplikasi .NET.
• Multiplatform support: pada .NET tidak lagi diperlukan untuk mengkompilasi
versi-versi berbeda pada suatu aplikasi yang sama yang memiliki platform berbeda. Sebagai contoh, pada NT 4.0, versi berbeda dari suatu aplikasi yang sama akan diperlukan untuk Intel dan RISC platforms. Walaupun RISC sistem sudah tidak lagi digunakan(sejak dimulainya Windows 2000), anda akan memerlukan pendekatan yang sama apabilan berhadapan dengan aplikasi standart dari Windows yang dijalankan pada platform Win32 dan Win64(Itanium).Hal ini telah ditemukan solusinya dengan membagi kompilasi .NET ke 2 bagian.
• Tidak ada lagi masalah untuk perbedaan kompatibilitas dan fungsionalitas antara
bahasa pemrograman yang berbeda. Microsoft menemukan versi baru dari bahasa pemrograman (yang paling umum digunakan adalah Visual Basic.NET
Project Otak – http://otak.csharpindonesia.net 24
-
NET101 – Migrasi VB6 ke VB.NET
dan C#) yang digunakan untuk menciptakan aplikasi .NET. Hal ini bertujuan agar program dapat digabungkan dengan bahasa pemrograman berbeda yang dibuat oleh developer yang berbeda-beda, meningkatkan penggunaan kembali dari suatu piranti lunak dan mempercepat proses pengembangan.
Hal terbesar yang mungkin menjadi keuntungan dari .NET framework adalah simplifikasi piranti lunak di dalam proses pengembangan(develop). Walaupun pada tahap ini bukan merupakan keuntungan yang “Wah!” dari sudut pandang sistem management, namum perlu diingat bahwa kebanyakan masalah pada saat pengembangan/sesudahnya disebabkan oleh piranti lunak yang didesain secara menyedihkan. Dengan disediakannya komponen bawaan(prepackaged components) yang mempunyai tugas untuk menangani tugas-tugas yang kritis, seperti keamanan piranti lunak dan pengaturan memori, aplikasi menjadi jauh lebih murah dan lebih stabil. Semua fitur yang dibahas sebagai benefit di atas mengarah pada arsitektur baru dimana suatu piranti lunak dioprasikan. Pada waktu-waktu sebelumnya, Windows program tradisional masih menggunakan kompilasi kode binari yang dieksekusi menggunakan fasilitas yang disediakan oleh Operating System. Dengan arsitektur baru pada aplikasi .NET, proses kompilasi dipecah menjadi 2 tahap, pertama program dikonversi terlebih dahulu ke IL(Intermediate Language) ,kemudian baru dikompilasi oleh kode binari yang telah disediakan pada mesin. IL adalah suatu platform dan independent pada bahasa pemrograman, yang menawakan 2 keuntungan utama:
• Program yang sama dapat dieksekusi di lebih dari 1 platform(contoh: pada versi 32-bit dan 64-bit pada Windows 2003), tanpa perlu menciptakan 2 bersi binari yang berbeda untuk mendeploy.
• Programmer dapat menulis coding dalam berbagai bahasa pemrograman yang disediakan .NET tanpa mengkhawatirkan kompatibilitas atau fungsionalitas yang berbeda karea IL code adalah independent dan digunakan pada saat pengembangan piranti lunak.
IL code secara otomatis mengkompilasi ke ekivalen binari (yang merupakan tahap kedua dari kompilasi) hal ini terjadi setiap aplikasi dijalankan.Pada bagian proses kompilasi ini dibuat kode yang spesifik untuk platform pokok dari sistem operasi(OS), hal ini ditangani oleh Just-in-Time(JIT)compiler. Namun dalam beberapa kasus, hal ini dapat menyebabkan terjadinya hal-hal yang tidak diinginkan karena adanya implikasi dari performance. Dalam hal ini, kita bisa mengkompilasi aplikasi 1 kali, yaitu pada saat aplikasi diinstall ke suatu komputer yang dituju. Hasil dari kode binari dari proses kompilasi ini akan disimpan secara lokal dan tidak membutuhkan JIT Compiler/kompilasi JIT. JIT Compiler adalah subkomponen dari jantung framework yang biasa disebut sebagai Common Language Runtime(CLR).
Project Otak – http://otak.csharpindonesia.net 25
-
NET101 – Migrasi VB6 ke VB.NET
3. Perbedaan Visual Basic 6 dengan Visual Basic .NET Dirgahayu Tarigan
3.1 Pendahuluan Banyak perubahan yang dilakukan dalam Visual Studio .NET. Perubahan membuat penggunaan Visual Studio .NET untuk membangun aplikasi lebih mudah dengan dukungan fasilitas baru yang ditambahkan antara lain: Antar Muka yang terintegrasi (IDE), Microsoft® IntelliSense® , debugging yang lebih baik dan kemampuan dalam XML Web Services.
3.2 Antar Muka (IDE) Sebagai programmer Visual Basic 6.0 Anda tidak akan mengalami kesulitan untuk memahami antar muka Visual Basic .NET (Integrated Development Enviroment-IDE). Banyak hal dalam IDE Visual .NET berubah. Perubahan dilakukan agar produktifitas dan kenyamanan memprogram dapat dicapai. Visual Basic .NET editor merupakan bagian dari Visual Studio .NET. Selain Visual Basic .NET, Visual Studio .NET juga menyertakan C#, C++ dan J++ editor. Visual Studio.NET menyediakan antar muka (IDE) yang seragam untuk seluruh aplikasi bawaannya. Anda boleh saja seorang pemrogram Visual Basic, C# atau C++, tetapi saat memprogram Anda akan dihadapan dengan tampilan IDE yang sama. Hal ini memberikan kemudahan, karena dengan mengetahui salah satu bahasa Anda segera dapat beradaptasi dengan IDE editor saat berpindah ke bahasa yang lain. Karena perbedaan pengalaman dan kebiasaan, Visual Studio .NET mengijinkan mengubah profile sesuai dengan profile Anda. Perubahan dilakukan dari menu Help, Show Start Page atau klik tab MyProfile ditampilan awal Visual Studio.NET. Jika Anda seorang programmer Visual Basic ada dapat memilih Profile Visual Basic, dengan cara ini penggunaan Visual Basic .NET Anda akan mirip dengan penggunaan Visual Basic 6.0 termasuk shortcut dan pemetaan tombol keyboard.
Project Otak – http://otak.csharpindonesia.net 26
-
NET101 – Migrasi VB6 ke VB.NET
Gambar 3-1. Tampilan Start Page
3.2.1. Perubahan Tampilan dan Layout Dalam Visual Basic 6.0, standar tampilan IDE adalah layout MDI (Multiple Document Interface). Di Visual Studio .NET defaultnya IDE adalah layout Tabbed Document, yang menampilkan document Anda dalam bentuk tabbed seperti tampilan sheet di Microsoft Excel. Untuk mengubah ke Layout MDI klik menu Tools, Options. Dibawah ini ditampilkan beberapa Window yang tersedia dalam Visual Basic 6.0 dan persamaannya di Visual Basic .NET
Visual Basic 6.0 Visual Basic .NET
Color Palette Tidak ada persamaan.
Data View Digantikan oleh Server Explorer
Form Layout Tidak ada persamaan.
Immediate Command Window
Project Explorer Solution Explorer
Watches Watch 1, Watch 2, Watch 3, Watch 4
Project Otak – http://otak.csharpindonesia.net 27
-
NET101 – Migrasi VB6 ke VB.NET
Main Menu Toolbar
Windows Forms Designer Toolbox
Properties Window
Gambar 3-2. Antar Muka (Integrated Development Eviroment)
3.2.2 Perubahan Menu Menu dalam Visual Studio .NET diseragamkan untuk semua bahasa pemrograman yang lain, karena hal ini, beberapa menu Visual Basic 6.0 diganti dengan menu baru di Visual Basic .NET. Saat membuka Visual Basic 6.0 semua menu ditampilkan, hanya menu akan berubah warna menjadi abu-abu jika menu tersebut tidak dapat dipergunakan. Di Visual Basic .NET, tidak semua menu ditampilkan. Menu hanya akan ditampilkan sesuai dengan keperluan. Contoh, Anda tidak membuka sebuah project, maka menu Debug tidak akan ditampilkan. Saat Anda membuka project maka menu Debug akan otomatis ditersedia.
Project Otak – http://otak.csharpindonesia.net 28
-
NET101 – Migrasi VB6 ke VB.NET Berikut ditampilkan menu yang ada di Visual Basic 6.0 dan persamaanya di Visual Basic .NET. VISUAL BASIC 6.0 VISUAL BASIC .NET Add-Ins, Add-In Manager Tools, Add-in Manager Debug, Add Watch Add Watch (hanya context menu) Debug, Edit Watch Tidak ada persamaan. Debug, Run To Cursor Run To Cursor (hanya context menu) Debug, Set Next Statement Set Next Statement (hanya context menu) Debug, Show Next Statement Show Next Statement (hanya context menu) Debug, Toggle Breakpoint Disable Breakpoint or Breakpoint (hanya context
menu) Edit, Complete Word Edit, Intellisense, Complete Word Edit, Find Edit, Find and Replace Edit, Find Next Edit, Find and Replace Edit, Indent Edit, Advanced, Increase Line Indent Edit, Insert File Edit, Insert File As Text Edit, List Constants Edit, Intellisense, List Members Edit, List Properties/Methods Edit, Intellisense, List Members Edit, Outdent Edit, Advanced, Decrease Line Indent Edit, Parameter Info Edit, Intellisense, Parameter Info Edit, Quick Info Edit, Intellisense, Quick Info Edit, Replace Edit, Find and Replace File, Make ProjectName Build, Build ProjectName File, Make Project Group Build, Build Solution File, Print Setup File, Page Setup File, Recent files list File, Recent Projects File, Remove Project Edit, Remove File, Save Project Group File, Save SolutionName or File, Save All File, Save Project Group As File, Save SolutionName As File, Save Selection File, Save Selected Items Format, Size to Grid Tidak ada persamaan. Ditangani oleh pilihan Snap
to Grid. Help, Microsoft on the Web Help, Show Start Page Project, Add Class Module Project, Add Class Project, Add Data Environment Tidak ada persamaan. Data Environment tidak
didukung. Project, Add Data Report Tidak ada persamaan. Data Reports tidak didukung.Project, Add DHTML Page Tidak ada persamaan. DHTML Pages tidak
didukung.. Project, Add File Project, Add New Item or Project, Add Existing Item
Note Di Visual Basic 6.0 file disertakan ke dalam project. Di Visual Basic .NET copy dari file yang disertakan, file asli dicopykan kedalam folder project Visual Basic.NET.
Project, Add Form Project, Add Windows Form or Project, Add Inherited Form
Project, Add MDI Form Project, Add Windows Form or Project, Add
Project Otak – http://otak.csharpindonesia.net 29
-
NET101 – Migrasi VB6 ke VB.NET
Inherited Form Project, Add Property Page Tidak ada persamaan. Property Pages tidak
didukung.. Project, Add User Document Tidak ada persamaan. ActiveX Documents tidak
didukung. Project, Add Web Class Tidak ada persamaan. Web Classes tidak didukung.Project, Components Tidak ada persamaan. Component ditangani dalam
Toolbox. Project, References Tidak ada persamaan. References ditangani dalam
Toolbox. Project, Remove item Edit, Delete
Note Remove, remove dalam Visual Basic 6.0 menghilangkan dalam tampilan project explorer tetapi file tidak dihapus.; Delete, delete di Visual Basic .NET menghilangkan dan menghapus file.
Run, Break Debug, Break All Run, End Debug, Stop Debugging Run, Restart Debug, Restart Run, Start Debug, Start Run, Start With Full Compile Debug, Start Without Debugging Tools, Add Procedure Tidak ada persamaan. Penambahan Procedure
dilakukan dalam Code Editor. Tools, Menu Editor Tidak ada persamaan. Menu Editor digantikan oleh
komponen MainMenu dan Context Menu. Tools, Procedure Attributes Tidak ada persamaan. Tools, SourceSafe File, Source Control View, Call Stack Debug, Windows, Call Stack View, Color Palette Tidak ada persamaan.Color Palette window tidak
ada. View, Data View Window Tidak ada persamaan. Data View window tidak ada.View, Definition Go To Definition (hanya context menu) View, Form Layout Window Tidak ada persamaan. Form Layout window tidak
ada. View, Immediate Window Debug, Windows, Immediate View, Last Position Tidak ada persamaan. Gunakan Bookmarks. View, Locals Window Debug, Windows, Locals View, Object View, Designer View, Object Browser View, Other Windows, Object Browser View, Project Explorer View, Solution Explorer View, Watch Window Debug, Windows, Watch Window, Arrange Icons Tidak ada persamaan. Window, Cascade Hanya tersedia dalam model tampilan MDI. Window, Tile Horizontally Hanya tersedia dalam model tampilan MDI. Window, Tile Vertically Hanya tersedia dalam model tampilan MDI. Window, Window list Windows...
Project Otak – http://otak.csharpindonesia.net 30
-
NET101 – Migrasi VB6 ke VB.NET
3.2.3 Penggunaan Keyboard Penggunaan keyboard di Visual Basic .NET distandarkan. Hal ini membuat penggunaan tombol yang Anda kenal selama ini menjadi berbeda atau tidak tersedia. Contohnya, di Visual Basic 6.0 penggunaan tombol F8 adalah Step Into saat mau dilakukan debug, di Visual Basic Studio .NET Step Into menjadi tombol F11. Jika ada tidak merasa nyaman dan sudah terbiasa dengan penggunaan keyboard seperti di Visual Basic 6.0 Anda dapat mengembalikan pemetaan keyboard Visual Basic .NET sesuai dengan yang Anda inginkan dengan memilih Keyboard Scheme di MyProfile. Untuk menampilkan MyProfile dari menu Help, Show Start Page. atau klik tab MyProfile ditampilan awal Visual Basic.NET .
3.3 Perubahan Project Secara umum project di Visual Basic .NET mirip dengan project Visual Basic 6.0, tetapi ada beberapa perbedaan yang perlu diperhatikan. Di Visual Basic 6.0 project berdasarkan referensi -- project menyimpan path (folder) setiap item yang ada di project. Sebagai contoh, saat menambah text file ke project, Visual Basic 6.0 akan menelusuri lokasi dari file dan menambahkan kedalam project. Saat project di compile, text file di load dari lokasi tersebut. Visual Basic .NET berdasarkan folder -- semua item project diletakkan dalam satu folder. File akan dicopy ke folder project jika item tersebut berada di folder yang terpisah. Folder tersebut mempunyai hirarki. Saat Anda membuat sebuah project, pertama sekali Anda akan diminta menentukan nama project dan folder tempat project. Di dalam folder tempat project tersebut akan dibuatkan folder baru yang diperlukan Visual Basic .NET biasanya adalah folder Bin dan Obj. Di Visual Basic 6.0 Anda dapat membuang form dari project dengan melakukan klik kanan dan pilih Remove dari window project exporer. Visul Basic 6.0 akan menghilangkan form tersebut dari tampilan project explorer (di Visual Basic .NET Project Explorer diganti dengan Solution Explorer) tetapi tidak dihapus filenya. Di Visual Basic .NET Remove digantikan oleh Delete, dimana file tersebut akan dihilangkan sekaligus menghapus file tersebut. Jika ingin dihilangkan dari tampilan saja tanpa dilakukan Delete, gunakan perintah Exclude From Project (Klik kanan pada file dan pilih Exclude From Project). Di Visual Basic 6.0 Anda dapat menggabungkan beberapa project, ini dikenal sebagai Group Project. Di Visual Basic .NET, Group Project dikenal dengan istilah Solution. Jika di Visual Basic 6.0 hanya bisa digabungkan project yang dibuat dengan bahasa Visual Basic, di Solutions bisa digabungkan beberapa project dari bahasa-bahasa yang lain di Visual Basic .NET seperti C#, C++, atau J++. Di Visual Basic 6.0 project file mempunyai extension (.vbp) dan Group Project (.vbg). File ini adalah text file yang dapat diedit langsung dari text editor. Di Visual Basic .NET, project dan solution dalam format XML dan sebaiknya tidak diedit secara langsung dengan program text editor.
Project Otak – http://otak.csharpindonesia.net 31
-
NET101 – Migrasi VB6 ke VB.NET 3.3.1 Perubahan Project Property dalam Visual Basic .NET Project Properties di Visual Basic 6.0 dan Visual Basic .NET menentukan setting keseluruhan project. Di Visual Basic 6.0, Project Properties ditentukan dalam kotak dialog Project Properties (klik kanan pada nama project di window project explorer dan pilih Project Properties). Di Visual Basic .NET, project properties ditentukan dalam kotak dialog Property Pages (klik kanan pada nama project dan pilih Properties). Banyak perbedaan project properties antara perbedaan project properties Visual Basic 6.0 dan Visual Basic .NET. Tabel berikut membandingkan project properties Visual Basic 6.0 dan Visual Basic .NET. VISUAL BASIC 6.0 VISUAL BASIC .NET Command Line Arguments Command line arguments (tergantung konfigurasi) Compile options Tidak ada persamaan. Conditional Compilation Arguments
Conditional Compilation Constants — Custom Constants
DLL Base Address DLL base address Help File Name Tidak ada persamaan. Icon Application icon Project Description Tidak ada persamaan. Project Help Context ID Tidak ada persamaan. Project Name Tidak ada persamaan. Digantikan dengan Assembly
name dan Root namespace. Project Type Output type Remote Server Tidak ada persamaan. Remove information about Unused ActiveX Controls
Tidak ada persamaan.
Require License Key Tidak ada persamaan. Retained In Memory Tidak ada persamaan. Property ini berhubungan
dengan komponen MTS yang tidak didukung oleh Visual Basic .NET.
Start Mode Tidak ada persamaan. Startup Object Startup object Threading Model Tidak ada persamaan. Visual Basic .NET mendukung
multithreading. Title No equivalent. Version information for assemblies is
stored in the AssemblyInfo.vb file. Unattended Execution Tidak ada persamaan. Upgrade ActiveX Controls Tidak ada persamaan. Use existing browser Tidak ada persamaan. Version Compatibility Tidak ada persamaan. Version Information Tidak ada persamaan. Version Number Tidak ada persamaan.. When this project starts Start Action
Project Otak – http://otak.csharpindonesia.net 32
-
NET101 – Migrasi VB6 ke VB.NET 3.3.2 Perubahan Template dalam Visual Basic .NET Pembuatan templete project (tipe project) di Visual Basic .NET berbeda dangan Visual Basic 6.0. Dalam beberapa kasus, templete project pada dasarnya sama hanya berbeda nama; sedangkan dalam kasus tertentu tidak dapat dicari kesamaan dengan tipe project yang ada dalam Visual Basic 6.0 Berikut tabel perbandingan tipe project antara Visual Basic 6.0 dan Visul Basic .NET VISUAL BASIC 6.0 VISUAL BASIC .NET StAndard EXE Windows Application ActiveX DLL Class Library ActiveX EXE Class Library ActiveX Control Windows Control Library ActiveX Document Tidak ada persamaan. Visual Basic .NET bisa
mengunakan ActiveX Documents. DHTML Application Tidak ada persamaan. Gunakan ASP.NET Web
Application. IIS Application (Web Class) Tidak ada persamaan.Gunakan ASP.NET Web
Application.
3.3.3 Perubahan Reference dalam Visual Basic .NET Dalam Visual Basic 6.0, referensi ke library yang diinstall dalam komputer diatur dalam kotak dialog References (dari menu Project, pilih References). Saat Reference sudah ditambahkan Anda dapat mempergunakan dalam kode program. Dalam Visual Basic .NET, Reference dibuat pada assemblies dan bisa ditambah atau dibuang dengan memilih reference tersebut di window Solution Explorer. Visual Studio .NET mendukung project yang mempunyai referensi ke project yang lain serta referensi ke XML Web Service.
3.4 Perubahan Bahasa Visual Basic 6.0 dan versi yang dibawah didesain untuk membuat program berbasis Windows, Visual Basic .NET dirancang untuk membuat aplikasi XML Web Service. Untuk keperluan ini, Visual Basic .NET menghasilkan kode program yang dikenal secara umum saat dijalankan. Format file ini adalah XML. Aplikasi yang dibuat dengan Visual Studio .NET bisa berjalan seperti aplikasi yang ada di internet, tidak dibatasi oleh Sistem Operasi, protokol dan jaringan yang dipergunakan. Perubahan ini dibuat agar:
Menyederhanakan bahasa dan membuatnya lebih konsisten. Membuat program mudah dibaca dan diperbaiki Membantu programmers menghindari kesalahan kode program. Membuat program lebih handal dan mudah dicari kesalahan kode program.
3.5 Ringkasan Perubahan Daftar berikut menampilkan perubahan bahasa, perintah yang tidak didukung dalam Visual Basic .NET termasuk perintah penggantinya.
Project Otak – http://otak.csharpindonesia.net 33
-
NET101 – Migrasi VB6 ke VB.NET VISUAL BASIC6.0 PERSAMAAN DENGAN
VISUAL BASIC .NET
LOKASI NAMESPACE, CLASS, ATAU RUN-TIME LIBRARY
Abs function Abs Method System Namespace, Math Class
AscB function Asc Function Visual Basic Run-Time Library Members, Strings module
As Any keyword phrase
Tidak didukung dalam Visual Basic .NET.
-
Atn function Atan Method System Namespace, Math Class
Calendar property CurrentCulture Property System.Globalization Namespace, CultureInfo Class
ChDir statement ChDir Function Visual Basic Run-Time Library Members, FileSystem module
ChDrive statement ChDrive Function Visual Basic Run-Time Library Members, FileSystem module
Chr$, ChrB, functions
Chr Function Visual Basic Run-Time Library Members, Strings module
Close statement FileClose Function Visual Basic Run-Time Library Members, FileSystem module
Cos function Cos Method System Namespace, Math Class
Currency data type Decimal Data Type Visual Basic Run-Time Library Members, VariantType Enumeration
CVDate function DateValue Function Visual Basic Run-Time Library Members, DateAndTime module
CVError function Error Statement - Date function, Date statement
Now Property, Today Property Visual Basic Run-Time Library Members, DateAndTime module
Date$ function DateString Property Visual Basic Run-Time Library Members, DateAndTime module
Debug.Assert method
Assert, Fail methods System.Diagnostics Namespace, Debug Class
Debug.Print method
Write, WriteIf, WriteLine, and WriteLineIf methods
System.Diagnostics Namespace, Debug Class
Deftype statements Tidak didukung dalam Visual Basic .NET.
-
DeleteSetting statement
DeleteSetting Function Visual Basic Run-Time Library Members, Interaction module
DoEvents function DoEvents Method System.Windows.Forms Namespace, Application Class
Empty keyword Nothing Does not apply Eqv operator = Operator Does not apply Exp function Exp Method System Namespace, Math
Project Otak – http://otak.csharpindonesia.net 34
-
NET101 – Migrasi VB6 ke VB.NET
Class FileCopy statement FileCopy Function Visual Basic Run-Time Library
Members, FileSystem module Get statement FileGet Function Visual Basic Run-Time Library
Members, FileSystem module GoSub statement Tidak didukung dalam Visual
Basic .NET; gunakan Return Statement
-
Initialize event Tidak didukung dalam Visual Basic .NET; use Sub New.
-
Imp operator Tidak didukung dalam Visual Basic .NET.
-
Input #, Input$ statements, Input$, InputB, InputB$ functions
Input Function Visual Basic Run-Time Library Members, FileSystem module
Instancing property Tidak didukung dalam Visual Basic .NET.
Does not apply
InStrB function InStr Function Visual Basic Run-Time Library Members, Strings module
IsEmpty function IsNothing Function Visual Basic Run-Time Library Members, Information module
IsMissing function Not supported in Visual Basic .NET.
Does not apply
IsNull function IsDbNull Function Visual Basic Run-Time Library Members, Information module
IsObject function IsReference Function Visual Basic Run-Time Library Members, Information module
Kill statement Kill Function Visual Basic Run-Time Library Members, FileSystem module
LCase$ function LCase Function Visual Basic Run-Time Library Members, Strings module
Left$, LeftB, LeftB$ functions
Left Function Visual Basic Run-Time Library Members, Strings module
LenB function Len Function Visual Basic Run-Time Library Members, Strings module
Let, Set assignment statements
Tidak didukung dalam Visual Basic .NET; perintah Set yang baru tidak berhubungan dengan salah satu dari perintah tersebut.
-
Line Input # statement
LineInput Function Visual Basic Run-Time Library Members, FileSystem module
Lock statement Lock, Unlock Functions Visual Basic Run-Time Library Members, FileSystem module
Log function Log Method System Namespace, Math Class
LSet, RSet LSet Function, PadRight, Visual Basic Run-Time Library
Project Otak – http://otak.csharpindonesia.net 35
-
NET101 – Migrasi VB6 ke VB.NET statements PadLeft; Members, Strings module and
System Namespace, String Class
LTrim$ function LTrim Function Visual Basic Run-Time Library Members, Strings module
MidB function Mid Function Visual Basic Run-Time Library Members, Strings module
MidB statement Mid Statement Visual Basic Run-Time Library Members, Strings module
MkDir statement MkDir Function Visual Basic Run-Time Library Members, FileSystem module
Name statement Rename Function Visual Basic Run-Time Library Members, FileSystem module
Now function Now Property Visual Basic Run-Time Library Members, DateAndTime module
Null keyword Nothing Does not apply Oct$ function Oct Function Visual Basic Run-Time Library
Members, Conversion module On ... GoSub construction
Tidak didukung dalam Visual Basic .NET; gunakan perintah Select Case.
-
On ... GoTo construction
Tidak didukung dalam Visual Basic .NET; gunakan perintah Select Case.
-
Open statement FileOpen Function Visual Basic Run-Time Library Members, FileSystem module
Option Base statement
Tidak didukung dalam Visual Basic .NET.
-
Option Private Module statement
Tidak didukung dalam Visual Basic .NET.; gunakan perintah Module.
-
Print # statement Print, PrintLine Functions Visual Basic Run-Time Library Members, FileSystem module
Property Get, Property Let, Property Set statements
Tidak didukung dalam Visual Basic .NET
-
Put statement FilePut Function Visual Basic Run-Time Library Members, FileSystem module
Reset statement Reset Function Visual Basic Run-Time Library Members, FileSystem module
Right$, RightB functions
Right Function Visual Basic Run-Time Library Members, Strings module
RmDir statement RmDir Function Visual Basic Run-Time Library Members, FileSystem module
Round function Round Method System Namespace, Math Class
RSet, LSet RSet Function; Visual Basic Run-Time Library
Project Otak – http://otak.csharpindonesia.net 36
-
NET101 – Migrasi VB6 ke VB.NET statements Members, Strings module RTrim$ function RTrim Function Visual Basic Run-Time Library
Members, Strings module SaveSetting statement
SaveSetting Function Visual Basic Run-Time Library Members, Interaction module
Scale method Tidak didukung dalam Visual Basic .NET
-
Set, Let assignment statements
Tidak didukung dalam Visual Basic .NET; perintah Set yang baru tidak berhubungan dengan salah satu dari perintah tersebut.
-
SetAttr statement SetAttr Function Visual Basic Run-Time Library Members, FileSystem module
Sgn function Sign Function System Namespace, Math Class
Sin function Sin Method System Namespace, Math Class
Sqr function Sqrt Function System Namespace, Math Class
String function String Constructor; System Namespace, String Class
String ($) functions Tidak didukung dalam Visual Basic .NET.
-
Terminate event Tidak didukung dalam Visual Basic .NET; gunakan Sub Dispose dan Sub Finalize.
-
Time function, Time statement
TimeOfDay Property; see DateTime Structure, Date Data Type
Visual Basic Run-Time Library Members, DateAndTime module
Time$ function TimeString Property Visual Basic Run-Time Library Members, DateAndTime module
Timer function Timer Property Visual Basic Run-Time Library Members, DateAndTime module
Trim$ function LTrim, RTrim, and Trim Functions
Visual Basic Run-Time Library Members, Strings module
Type statement Tidak didukung dalam Visual Basic .NET; gunakan Structure Statement.
-
UCase$ function UCase Function Visual Basic Run-Time Library Members, Strings module
Unlock statement Lock, Unlock Functions Visual Basic Run-Time Library Members, FileSystem module
Variant data type Object Data Type - Wend keyword While...End While Statements
and End Statement -
Project Otak – http://otak.csharpindonesia.net 37
-
NET101 – Migrasi VB6 ke VB.NET Width # statement FileWidth Function Visual Basic Run-Time Library
Members, FileSystem module Write # statement Write, WriteLine Functions Visual Basic Run-Time Library
Members, FileSystem module
Project Otak – http://otak.csharpindonesia.net 38
-
NET101 – Migrasi VB6 ke VB.NET
3.5.1 Array
Perubahan Batas Array Visual Basic .NET memperbaharui deklarasi batas array agar bisa bekerja sama dalam bahasa pemrograman yang lain didalam Visual Studio .NET.
Visual Basic 6.0 Dalam Visual Basic 6.0, secara default batas bawah array adalah 0. Anda dapat mengubah batas bawah ini menjadi 1 dengan menambahkan peritah Option Base. Jika batas bawah default yang digunakan, banyak (count) elemen array sama dengan batas atas ditambah satu.
Visual Basic .NET Di Visual Basic .NET, batas bawah array adalah 0, dan tidak dapat diubah ke nilai yang lain. Perintah Option Base tidak didukung. Contoh,
Dim Counters(14) as Integer Dim Sums(20) as Double
Contoh pertama adalah array dimensi satu dengan 15 elemen dengan nomer indeks dari 0 sampai 14. Contoh kedua membuat array dengan 21 elemen dengan indeks dari 0 sampai 20.
Perubahan deklarasi besar Array Visual Basic .NET memperbaharui deklarasi besar array agar bisa bekerja sama dengan bahasa pemrograman lain.
Visual Basic 6.0 Anda mendeklarasi besar array dengan perintah Dim, seperti contoh berikut:
Dim Month(0 To 11) as Integer Array ini mempuyai ukuran array yang tetap, dan tidak dapat diubah dengan perintah ReDim
Visual Basic .NET Di Visual Basic .NET, array tidak mempunyai ukuran tetap. Contoh sebelumnya bisa ditulis sebagai berikut:
Dim Month(11) as Integer 'Mencadangkan 12 elemen --(0) sampai (11) Dim Month() as Integer= New Integer(11) {}
Kedua perintah diatas adalah sama. Semuanya mendefenisikan ukuran array yang dapat diubah dengan perintah ReDim. Untuk mengisi elemen array, perhatikan contoh berikut:
Dim Month() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
Project Otak – http://otak.csharpindonesia.net 39
-
NET101 – Migrasi VB6 ke VB.NET 3.5.2 Perubahan Perintah ReDim Jika di Visual Basic 6.0 Anda dapat mengubah dimensi array seperti contoh berikut:
Dim X(10) As Single ‘Array dimensi satu ReDim X(10, 10) ‘Array dimensi dua
Di Visual Basic .NET perintah Redim tidak dapat digunakan untuk mengubah dimensi array. Jika perintah diatas Anda gunakan di Visual Basic .NET maka compiler akan memberikan Anda pesan kesalahan.
3.5.3 Perubahan Tipe Data Visual Basic .NET memperbaharui tipe data agar bisa bekerja sama dengan bahasa pemrograman lain dan common langguage runtime (CLR). Karena hal ini deklarasi tipe data, penggunaan dan konversi berubah. Berikut tabel perubahan tipe data. TIPE TIPE DATA
.NET (CLR)
BYTE RANGE DATA
Boolean System.Boolean 2 bytes True atau False. Byte System.Byte 1 byte 0 s.d. 255 Char System.Char 2 bytes 0 s.d. 65535 Date System.DateTime 8 bytes 0:00:00 1 Januari 0001 s.d
23:59:59 31 Desember 9999. Decimal System.Decimal 16 bytes 0 s.d +/-
79,228,162,514,264,337,593,543,950,335 tanpa desimal; 0 s.d. +/-7.9228162514264337593543950335 dengan 28 angka desimal
Double (double-precision floating-point)
System.Double 8 bytes -1.79769313486231570E+308 s.d -4.94065645841246544E-324 untuk nilai negatip; 4.94065645841246544E-324 s.d 1.79769313486231570E+308 untuk nilai positip.
Integer System.Int32 4 bytes -2,147,483,648 through 2,147,483,647. Long (long integer)
System.Int64 8 bytes -9,223,372,036,854,775,808 s.d. 9,223,372,036,854,775,807.
Object System.Object (class)
4 bytes Setiap tipe yang dapat disimpan sebagai variabel Object.
Short System.Int16 2 bytes -32,768 s.d. 32,767. Single (single-precision floating-point)
System.Single 4 bytes -3.4028235E+38 s.d. -1.401298E-45 untuk nilai negatip; 1.401298E-45 s.d. 3.4028235E+38 untuk nilai positip.
Project Otak – http://otak.csharpindonesia.net 40
-
NET101 – Migrasi VB6 ke VB.NET String (variable-length)
System.String (class)
Tergantung Platform.
0 s.d seAndar 2 billion.
User-Defined Type (structure)
(inherits from System.ValueType)
Tergantung Platform.
Range data ditentukan oleh tipe data structure tersebut dan tidak bergantung dengan range data member yang lain.
3.5.4 Function
Perubahan Format Function Function Format digunakan untuk mengubah tampilan data sesuai yang Anda inginkan. Hasil dari function Format adalah string. Misal Anda ingin mengubah tampilan tanggal, atau menampilkan angka dalam format currency. Function format di Visual Basic .NET diperbaharui untuk mengikuti spesifikasi Common Langguage Runtime untuk memformat data.
Date/Time Format Dalam Visual Basic 6.0 untuk menampilkan short date Anda gunakan parameter format "ddddd", sedangkan long date digunakan parameter format "dddddd". Kedua parameter ini jika digunakan dalam Visual Basic .NET hanya akan menampilkan nama hari dan parameter tersebut tidak untuk menampilkan short date atau long date. Untuk menampilkan long date atau short date anda bisa menggunakan perintah: Format(Now(), "Long Date") ‘long date Format(Now(), "Short Date") ‘short date DayOfWeek ("w") dan WeekOfYear ("ww") tidak didukung lagi, guanakan funtion DatePart seperti contoh dibawah : Format(Datepart(DateInterval.Weekday, Now)) Format(Datepart(DateInterval.WeekOfYear, Now))
Format Angka Dalam Visual Basic .NET, function format tidak mengkonversi secara langsung string ke angka, sehingga anda membutuhkan function tambahan untuk mengkonversi string tersebut lebih dahulu menjadi angka. Di Visual Basic 6.0, function Format bisa langsung mengkonversi string ke angka, sehingga tidak dibutuhkan function tambahan. Perhatikan contoh berikut, contoh pertama salah dan menampilkan "#.#", sedangkan contoh kedua hasilnya sesuai dengan yang diinginkan, menghasilkan karakter "1.234". CSng merupakan function untuk konversi object ke tipe data single.
Format(123, "###.") ' Displays "123" Format(123, "###.#") ' Displays "123"
Format Karakter Di Visual Basic 6.0, Anda dapat mempergunakan parameter @, &, , dan !. Di Visual Basic .NET parameter tersebut tidak ada artinya dan tidak didukung lagi.
Project Otak – http://otak.csharpindonesia.net 41
-
NET101 – Migrasi VB6 ke VB.NET
3.5.5 Procedure
Passing Parameter dalam Procedure Dalam Visual Basic 6.0 Anda tidak mendefenisikan secara langsung ByVal atau ByRef passing parameter argumen. Visual Basic 6.0 akan mengambil ByRef secara default. Jika Anda mendekalarasikan procedure di Visual Basic .NET, passing parameter defaultnya adalah ByVal untuk setiap argument. Dengan cara ini nilai awal (nilai aslinya) dari argumen yang dipassing bisa dilindungi dari perubahan yang tidak diinginkan oleh procedur atau program lain
Perubahan Parentheses dalam Procedure Visual Basic .NET mengharuskan adanya parentheses (tanda kurung buka dan tutup) disetiap procedure yang Anda ciptakan, walau procedure yang dibuat tidak mempunyai argumen. Dalam Visual Basic 6.0 parentheses tidak perlu ditambahkan jika procedure tersebut tidak mempunyai argumen.
3.5.6 Perubahan Debugger Saat program menjadi besar dan rumit, kemungkinan terjadi kesalahan sukar dihindari. Walupun diprogram secara hati-hati kesalahan yang tidak diharapkan bisa muncul, ini dinamakan bug. Menemukan dan menghilangkan bug dinamakan debugging. Program untuk debugging dinamakan debugger. Proses debugging aplikasi dalam Visual Basic .NET secara umum sama dengan Visual Basic 6.0, tetapi ada beberapa perbedan yang harus Anda perhatikan. Beberapa fasilitas yang baru dalam Visual Basic .NET mempermudah pencarian kesalahan dan evaluasi variable-variable yang digunakan saat run time. Dalam Visual Basic 6.0 Anda dapat mengubah kode program dalam modus break, dan melanjutkan debugging tanpa menghentikan dan menjalankan kembali program. Dalam Visual Basic .NET setiap perubahan kode program mengharuskan kode program dicompile ulang agar hasil dari perubahan kode program bisa diketahui. Karena hal ini, mengubah kode program dalam modus break dan melanjutkan kembali tidak didukung. Lebih lanjut tentang debugging Anda jumpai dalam Bab 6: Penanganan Error dan Debugging.
Dalam Visual .NET perubahan juga terjadi dalam Web, Data dan component. Pembahasan perubahan ini dan migrasi yang bisa dilakukan dapat Anda baca dalam seri buku terbitan Otak. Cek ke situs project otak: http://otak.csharpindonesia.net.
Project Otak – http://otak.csharpindonesia.net 42
http://otak.csharpindonesia.net/
-
NET101 – Migrasi VB6 ke VB.NET
4. Upgrade Aplikasi VB 6 ke VB.NET Risman Adnan
Tidak semua aplikasi yang anda buat di VB 6 perlu di upgrade ke VB.NET karena tidak semua aplikasi VB 6 akan menjadi lebih baik dengan fitur-fitur baru yang ada dalam VB.NET. Kadang-kadang tidak ada alasan cukup kuat untuk meng-upgrade aplikasi yang sudah dirancang dengan baik dan bekerja sesuai dengan yang diinginkan. Dengan kata lain, proses upgrade adalah suatu pilihan anda sesuai pertimbangan-pertimbangan tertentu. Jika anda akhirnya memutuskan untuk meng-upgrade aplikasi dengan alasan yang cukup kuat, anda akan tetap punya pilihan yaitu, melakukan upgrade secara parsial dan memanfaatkan COM interop atau upgrade keseluruhan. Bab ini akan membahas semua kemudahan yang ada untuk melakukan proses upgrade. ketika anda telah memutuskan untuk melakukannya.
4.1 Upgrade Wizard Apa yang terjadi ketika anda mencoba membuka file Visual Basic Project (*.vbp) dengan Visual Studio .NET? Anda akan melihat VB 6 Upgrade Wizard (diadopsi dari ArtinSoft, www.artinsoft.com) yang terdiri dari 5 langkah. Anda hanya perlu mengikuti langkah-langkah yang sudah ditetapkan oleh Wizard dan akan memperoleh laporan hasil upgrade.
Project Otak – http://otak.csharpindonesia.net 43
http://www.artinsoft.com/
-
NET101 – Migrasi VB6 ke VB.NET
Gambar 4-1. Langkah Pertama dalam VB Upgrade Wizard
Gambar 4-2. Laporan Akhir VB 6 Upgrade Wizard dalam bentuk file HTML
Proses upgrade dari VB 6 ke VB.NET menggunakan Upgrade Wizard hanya merupakan operasi sederhana dan tidak bisa diharapkan mampu meng-upgrade aplikasi secara sempurna. Dua tipe proyek yang tidak dapat di support oleh Wizard adalah ActiveX dan halaman ActiveX DHTML. Anda harus melakukannya secara manual. Laporan Upgrade Wizard berisi masalah-masalah yang ditemui dalam kode program aplikasi selama proses upgrade. Laporan ini juga termasuk kode-kode program yang tidak berubah. Jika anda melihat ke halaman kode program, terlihat beberapa komentar dan dokumentasi terhadap perubahan yang dilakukan oleh Wizard. Kode yang sudah di upgrade melalui Upgrade Wizard masih memerlukan pemeriksaan yang teliti sebelum dapat dikompilasi kembali. Anda perlu membaca komentar-komentar yang ada dalam kode program dan menyesuaikannya dengan fitur-fitur yang ada di VB.NET baik dari segi bahasa maupun paradigma pemrograman. Upgrade Wizard hanya bisa digunakan untuk VB 6, walaupun seakan-akan format VB 5 dan VB 6 seperti identik, banyak hal yang berbeda terutama jika berhubungan dengan kontrol ActiveX. Trik terbaik untuk melakukan upgrade dari VB 5 adalah dengan mengubah dari VB 5 ke VB 6 dan dilanjutkan dengan Upgrade Wizard yang ada di Visual Studio .NET. Caranya mudah. Buka proyek VB 5 anda dengan Visual Basic 6 dan lakukan perbaikan-perbaikan yang diperlukan dari proses upgrade awal ini. Selanjutnya, buka proyek VB 6 anda dengan Visual Studio .NET. Selamat mencoba.
Project Otak – http://otak.csharpindonesia.net 44
-
NET101 – Migrasi VB6 ke VB.NET
4.2 Rekomendasi Sebelum Melakukan Upgrade Untuk aplikasi-aplikasi kecil yang sederhana proses upgrade mungkin dapat dilakukan dengan menggunakan Upgrade Wizard dan sedikit usaha untuk mengoreksi kode baris per baris. Bagaimana jika aplikasi tersebut sudah sangat kompleks? Proses upgrade akan sulit sekali dilakukan. Anda perlu perencanaan matang tentang ini. Jika anda adalah pengambil keputusan dalam satu organisasi, pertanyaan pertama yang dalam benak anda adalah keuntungan apa yang akan diperoleh oleh aplikasi tersebut sehingga perlu di upgrade ke VB.NET. Pertanyaan ini tidak dapat dijawab hanya dengan melihat fitur-fitur baru yang ditawarkan oleh .NET Framework, tapi perlu pengamatan lebih teliti terhadap kondisi aplikasi tersebut. Arsitektur aplikasi yang akan di upgrade akan sangat berpengaruh terhadap kemungkinan keberhasilan proses upgrade. Sebagian besar orang melakukan upgrade dengan tujuan:
Menstandarisasi aplikasi Mendayagunakan fitur-fitur baru yang ada di .NET Framework Memperbaiki arsitektur aplikasi Meningkatkan performance dan skalabilitas Meningkatkan kualitas kode program Memaksimalkan produktivitas
Akan tetapi, dalam beberapa kondisi perubahan dari ADO ke ADO.NET misalnya atau SOAP Toolkit ke Web Services tidak membawa keuntungan apa-apa. Banyak faktor lain yang tergantung pada kondisi aplikasi anda saat ini. Yang lebih menarik lagi, faktor-faktor tersebut tidak selalu bersifat teknikal. Mungkin sulit dipahami bahwa beberapa standar internasional seperti WITSML (www.witsml.org) tetap bertahan menggunakan SOAP Toolkit dan COM dengan alasan yang non teknis, tapi ini kenyataan yang terjadi. Berikut ini kita akan membahas beberapa hal yang direkomendasikan secara umum sebelum anda mengambil keputusan untuk melakukan parsial upgrade ataupun upgrade secara keseluruhan. Rekomendasi Untuk Aplikasi Web Jika aplikasi anda dibangun dengan web interface (ASP) dan secara terpisah telah menggunakan VB 6 COM atau VC++ 6 COM pada bagian business logic, anda tidak perlu melakukan upgrade di bagian web interface karena ASP tetap di support dalam VB.NET. Anda tetap bisa menggunakan ASP dan ASP.NET secara bersamaan dalam aplikasi anda. COM yang ada di business logic tidak perlu di upgrade kecuali ada bagian ASP.NET Code anda yang memerlukan .NET Assembly. Jika aplikasi anda menggunakan DHTML yang terkait dengan DLL, disarankan untuk tidak melakukan upgrade. Dokumen ActiveX tidak disupport oleh VB.NET. Disarankan untuk tidak meng-upgrade sebisa mungkin. Dokumen ActiveX ini tetap dapat digunakan dalam VB.NET. Contohnya, anda bisa membuat navigasi dari halaman VB.NET Web Form ke halaman DHTML dan sebaliknya.
Project Otak – http://otak.csharpindonesia.net 45
http://www.witsml.org/
-
NET101 – Migrasi VB6 ke VB.NET Webclass tidak ada lagi dalam VB.NET. Dengan sedikit modifikasi anda bisa meng-upgrade Webclass ke ASP.NET. Tetapi perlu diingat bahwa Webclass tetap bisa digunakan di VB.NET Web Form dan ASP. Rekomendasi Untuk Aplikasi Client-Server Windows Form dalam VB.NET secara umum kompatibel dengan Form dalam VB 6. Ketika aplikasi anda di upgrade dengan Wizard, Form VB 6 akan diubah menjadi Windows Form VB.NET. Walaupun demikian, anda perlu memperhatikan perbedaan model obyek pada kontrol. Ada beberapa property yang tidak ada pada kontrol VB 6 sehingga anda perlu membersihkan kode anda. Jika aplikasi anda menggunakan banyak kontrol ActiveX atau dokumen ActiveX perlu di upgrade secara manual atau melalui COM Interop jika dimungkinkan. VB 6 menggunakan beberapa ti