Migrasi vb6 ke vb.net

Click here to load reader

  • date post

    30-Jun-2015
  • Category

    Documents

  • view

    2.825
  • download

    40

Embed Size (px)

Transcript of Migrasi vb6 ke vb.net

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 Otak2005Project Otak http://otak.csharpindonesia.net

2

NET101 Migrasi VB6 ke VB.NET

Project OtakProject otak adalah project open source yang bertujuan untuk menyediakan resources tentang informasi teknologi .NET bagi orang-orang yang ingin belajar teknologi .NET.

Trademark AcknowledgementsTeam 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

CreditsProject ManagerAgus Kurniawan

Technical WriterKiki Rizki Noviandi (Leader) Katarina Clementine Milis Tarigan Risman Adnan Kunarto Ricky Suryo Utomo Ario Suryo Kusumo Aryo Handono

EditorKiki Rizki Noviandi Agus Kurniawan

Cover DesignerDanni 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

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 PenulisKiki Rizki NoviandiKiki 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 AdnanRisman 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

Katarina Maya

Clementine

Dewi

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 fromSAM(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

Project Otak http://otak.csharpindonesia.net

6

NET101 Migrasi VB6 ke VB.NET

Dirgahayu TariganDirgahayu 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 UtomoRicky 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 angkatan97 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

Project Otak http://otak.csharpindonesia.net

7

NET101 Migrasi VB6 ke VB.NET

KunartoFigur 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

Project Otak http://otak.csharpindonesia.net

8

NET101 Migrasi VB6 ke VB.NET

Aryo HandonoAryo 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 KusumoArio 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 IsiProject 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 DimAs 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 + 1Katarina 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 webbased. 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.NetMicrosoft 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-basedAplikasi 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-ServerProject 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 TierTier 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 DataData 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 .NETArio 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

Common Language Specification (CLS) XML Web Service ASP.NET Form-form Web Form-form Windows

Data ADO.NET dan XML Base Class Library (BCL) Common Language Runtime (CLR)

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 .NETPustaka 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 RuntimeCommon 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 .NETBerikut adalah bahasa pemrograman yang mendukung Framework .NET: APL C++ C# COBOL Component Pascal Curriculum Eiffel Forth Fortran Haskell Java Language Microsoft JScript Mercury Mondrian Oberon Oz Pascal Perl Python RPG Scheme SmallTalk Standard ML Microsoft Visual Basic

Tabel 2.1 Daftar bahasa pemrograman yang mendukung Framework .NET Sumber: GotDotNet

2.3 Tujuan Desain Framework .NETDi 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 KomponenKomponen 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 FrameworkSecara 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 .NETDirgahayu Tarigan

3.1 PendahuluanBanyak 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 LayoutDalam 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 Color Palette Data View Form Layout Immediate Project Explorer Watches Visual Basic .NET Tidak ada persamaan. Digantikan oleh Server Explorer Tidak ada persamaan. Command Window Solution Explorer Watch 1, Watch 2, Watch 3, Watch 4

Project Otak http://otak.csharpindonesia.net

27

NET101 Migrasi VB6 ke VB.NET

Main Menu Toolbar Toolbox Windows Forms Designer

Properties Window

Gambar 3-2. Antar Muka (Integrated Development Eviroment)

3.2.2 Perubahan MenuMenu 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 Add-Ins, Add-In Manager Debug, Add Watch Debug, Edit Watch Debug, Run To Cursor Debug, Set Next Statement Debug, Show Next Statement Debug, Toggle Breakpoint Edit, Complete Word Edit, Find Edit, Find Next Edit, Indent Edit, Insert File Edit, List Constants Edit, List Properties/Methods Edit, Outdent Edit, Parameter Info Edit, Quick Info Edit, Replace File, Make ProjectName File, Make Project Group File, Print Setup File, Recent files list File, Remove Project File, Save Project Group File, Save Project Group As File, Save Selection Format, Size to Grid Help, Microsoft on the Web Project, Add Class Module Project, Add Data Environment Project, Add Data Report Project, Add DHTML Page Project, Add File VISUAL BASIC .NET Tools, Add-in Manager Add Watch (hanya context menu) Tidak ada persamaan. Run To Cursor (hanya context menu) Set Next Statement (hanya context menu) Show Next Statement (hanya context menu) Disable Breakpoint or Breakpoint (hanya context menu) Edit, Intellisense, Complete Word Edit, Find and Replace Edit, Find and Replace Edit, Advanced, Increase Line Indent Edit, Insert File As Text Edit, Intellisense, List Members Edit, Intellisense, List Members Edit, Advanced, Decrease Line Indent Edit, Intellisense, Parameter Info Edit, Intellisense, Quick Info Edit, Find and Replace Build, Build ProjectName Build, Build Solution File, Page Setup File, Recent Projects Edit, Remove File, Save SolutionName or File, Save All File, Save SolutionName As File, Save Selected Items Tidak ada persamaan. Ditangani oleh pilihan Snap to Grid. Help, Show Start Page Project, Add Class Tidak ada persamaan. Data Environment tidak didukung. Tidak ada persamaan. Data Reports tidak didukung. Tidak ada persamaan. DHTML Pages tidak didukung.. 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 Windows Form or Project, Add Inherited Form Project, Add Windows Form or Project, Add

Project, Add Form Project, Add MDI Form

Project Otak http://otak.csharpindonesia.net

29

NET101 Migrasi VB6 ke VB.NET

Project, Add Property Page Project, Add User Document Project, Add Web Class Project, Components Project, References Project, Remove item

Run, Break Run, End Run, Restart Run, Start Run, Start With Full Compile Tools, Add Procedure Tools, Menu Editor Tools, Procedure Attributes Tools, SourceSafe View, Call Stack View, Color Palette View, Data View Window View, Definition View, Form Layout Window View, Immediate Window View, Last Position View, Locals Window View, Object View, Object Browser View, Project Explorer View, Watch Window Window, Arrange Icons Window, Cascade Window, Tile Horizontally Window, Tile Vertically Window, Window list

Inherited Form Tidak ada persamaan. Property Pages tidak didukung.. Tidak ada persamaan. ActiveX Documents tidak didukung. Tidak ada persamaan. Web Classes tidak didukung. Tidak ada persamaan. Component ditangani dalam Toolbox. Tidak ada persamaan. References ditangani dalam Toolbox. 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. Debug, Break All Debug, Stop Debugging Debug, Restart Debug, Start Debug, Start Without Debugging Tidak ada persamaan. Penambahan Procedure dilakukan dalam Code Editor. Tidak ada persamaan. Menu Editor digantikan oleh komponen MainMenu dan Context Menu. Tidak ada persamaan. File, Source Control Debug, Windows, Call Stack Tidak ada persamaan.Color Palette window tidak ada. Tidak ada persamaan. Data View window tidak ada. Go To Definition (hanya context menu) Tidak ada persamaan. Form Layout window tidak ada. Debug, Windows, Immediate Tidak ada persamaan. Gunakan Bookmarks. Debug, Windows, Locals View, Designer View, Other Windows, Object Browser View, Solution Explorer Debug, Windows, Watch Tidak ada persamaan. Hanya tersedia dalam model tampilan MDI. Hanya tersedia dalam model tampilan MDI. Hanya tersedia dalam model tampilan MDI. Windows...

Project Otak http://otak.csharpindonesia.net

30

NET101 Migrasi VB6 ke VB.NET

3.2.3 Penggunaan KeyboardPenggunaan 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 ProjectSecara 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 .NETProject 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 Command Line Arguments Compile options Conditional Compilation Arguments DLL Base Address Help File Name Icon Project Description Project Help Context ID Project Name VISUAL BASIC .NET Command line arguments (tergantung konfigurasi) Tidak ada persamaan. Conditional Compilation Constants Custom Constants DLL base address Tidak ada persamaan. Application icon Tidak ada persamaan. Tidak ada persamaan. Tidak ada persamaan. Digantikan dengan Assembly name dan Root namespace. Project Type Output type Remote Server Tidak ada persamaan. Remove information about Tidak ada persamaan. Unused ActiveX Controls 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 .NETPembuatan 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 StAndard EXE ActiveX DLL ActiveX EXE ActiveX Control ActiveX Document DHTML Application IIS Application (Web Class)

VISUAL BASIC .NET Windows Application Class Library Class Library Windows Control Library Tidak ada persamaan. Visual Basic .NET bisa mengunakan ActiveX Documents. Tidak ada persamaan. Gunakan ASP.NET Web Application. Tidak ada persamaan.Gunakan ASP.NET Web Application.

3.3.3 Perubahan Reference dalam Visual Basic .NETDalam 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 BahasaVisual 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 PerubahanDaftar 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 LOKASI NAMESPACE, CLASS, VISUAL BASIC .NET ATAU RUN-TIME LIBRARY Abs Method

Abs function

System Namespace, Math Class AscB function Asc Function Visual Basic Run-Time Library Members, Strings module As Any keyword Tidak didukung dalam Visual phrase 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, Chr Function Visual Basic Run-Time Library functions 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, Now Property, Today Property Visual Basic Run-Time Library Date statement Members, DateAndTime module Date$ function DateString Property Visual Basic Run-Time Library Members, DateAndTime module Debug.Assert Assert, Fail methods System.Diagnostics method Namespace, Debug Class Debug.Print Write, WriteIf, WriteLine, and System.Diagnostics method WriteLineIf methods Namespace, Debug Class Deftype statements Tidak didukung dalam Visual Basic .NET. DeleteSetting DeleteSetting Function Visual Basic Run-Time Library statement 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 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$ Input Function Visual Basic Run-Time Library statements, Members, FileSystem module Input$, InputB, InputB$ functions Instancing property Tidak didukung dalam Visual Does not apply Basic .NET. 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 Does not apply .NET. 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, Left Function Visual Basic Run-Time Library LeftB$ functions Members, Strings module LenB function Len Function Visual Basic Run-Time Library Members, Strings module Let, Set assignment Tidak didukung dalam Visual statements Basic .NET; perintah Set yang baru tidak berhubungan dengan salah satu dari perintah tersebut. Line Input # LineInput Function Visual Basic Run-Time Library statement 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 FileCopy statement FileCopy Function

Project Otak http://otak.csharpindonesia.net

35

NET101 Migrasi VB6 ke VB.NET

statements

LTrim$ function MidB function MidB statement MkDir statement Name statement Now function

Null keyword Oct$ function On ... GoSub construction On ... construction GoTo

Open statement Option Base statement Option Private Module statement Print # statement Property Property Property statements Put statement Reset statement Get, Let, Set

Members, Strings module and System Namespace, String Class LTrim Function Visual Basic Run-Time Library Members, Strings module Mid Function Visual Basic Run-Time Library Members, Strings module Mid Statement Visual Basic Run-Time Library Members, Strings module MkDir Function Visual Basic Run-Time Library Members, FileSystem module Rename Function Visual Basic Run-Time Library Members, FileSystem module Now Property Visual Basic Run-Time Library Members, DateAndTime module Nothing Does not apply Oct Function Visual Basic Run-Time Library Members, Conversion module Tidak didukung dalam Visual Basic .NET; gunakan perintah Select Case. Tidak didukung dalam Visual Basic .NET; gunakan perintah Select Case. FileOpen Function Visual Basic Run-Time Library Members, FileSystem module Tidak didukung dalam Visual Basic .NET. Tidak didukung dalam Visual Basic .NET.; gunakan perintah Module. Print, PrintLine Functions Visual Basic Run-Time Library Members, FileSystem module Tidak didukung dalam Visual Basic .NET

PadLeft;

FilePut Function Reset Function

Right$, RightB Right Function functions RmDir statement RmDir Function Round function RSet, Round Method LSet RSet Function;

Visual Basic Run-Time Library Members, FileSystem module Visual Basic Run-Time Library Members, FileSystem module Visual Basic Run-Time Library Members, Strings module Visual Basic Run-Time Library Members, FileSystem module System Namespace, Math Class Visual Basic Run-Time Library

Project Otak http://otak.csharpindonesia.net

36

NET101 Migrasi VB6 ke VB.NET

statements RTrim$ function

Members, Strings module Visual Basic Run-Time Library Members, Strings module SaveSetting SaveSetting Function Visual Basic Run-Time Library statement Members, Interaction module Scale method Tidak didukung dalam Visual Basic .NET Set, Let assignment Tidak didukung dalam Visual statements 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, TimeOfDay Property; see Visual Basic Run-Time Library Time statement DateTime Structure, Date Members, DateAndTime Data Type 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 Visual Basic Run-Time Library Functions 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 RTrim Function

Project Otak http://otak.csharpindonesia.net

37

NET101 Migrasi VB6 ke VB.NET

Width # statement Write # statement

FileWidth Function Write, WriteLine Functions

Visual Basic Run-Time Library Members, FileSystem module 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 ArrayVisual 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 ArrayVisual 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 ReDimJika di Visual Basic 6.0 Anda dapat mengubah dimensi array seperti contoh berikut:Dim X(10) As Single ReDim X(10, 10) Array dimensi satu 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 DataVisual 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 Boolean Byte Char Date Decimal

TIPE DATA .NET (CLR) System.Boolean System.Byte System.Char System.DateTime System.Decimal

BYTE 2 bytes 1 byte 2 bytes 8 bytes 16 bytes

RANGE DATA True atau False. 0 s.d. 255 0 s.d. 65535 0:00:00 1 Januari 0001 s.d 23:59:59 31 Desember 9999. 0 s.d +/79,228,162,514,264,337,593,543,950,335 tanpa desimal; 0 s.d. +/-7.9228162514264337593543950335 dengan 28 angka desimal -1.79769313486231570E+308 s.d -4.94065645841246544E-324 untuk nilai negatip; 4.94065645841246544E-324 s.d 1.79769313486231570E+308 untuk nilai positip. -2,147,483,648 through 2,147,483,647. -9,223,372,036,854,775,808 9,223,372,036,854,775,807. s.d.

Double (doubleprecision floatingpoint) Integer Long (long integer) Object Short Single (singleprecision floatingpoint)

System.Double

8 bytes

System.Int32 System.Int64 System.Object (class) System.Int16 System.Single

4 bytes 8 bytes 4 bytes 2 bytes 4 bytes

Setiap tipe yang dapat disimpan sebagai variabel Object. -32,768 s.d. 32,767. -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 (variablelength) UserDefined Type (structure)

System.String (class)

Tergantung Platform.

0 s.d seAndar 2 billion. Range data ditentukan oleh tipe data structure tersebut dan tidak bergantung dengan range data member yang lain.

(inherits from Tergantung System.ValueType Platform. )

3.5.4 Function

Perubahan Format FunctionFunction 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") Format(Now(), "Short Date") long 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, "###.") Format(123, "###.#") ' Displays "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 ProcedureDalam 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 ProcedureVisual 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 DebuggerSaat 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

NET101 Migrasi VB6 ke VB.NET

4. Upgrade Aplikasi VB 6 ke VB.NETRisman 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 WizardApa 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 langkahlangkah yang sudah ditetapkan oleh Wizard dan akan memperoleh laporan hasil upgrade.

Project Otak http://otak.csharpindonesia.net

43

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 UpgradeUntuk 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, faktorfaktor 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

NET101 Migrasi VB6 ke VB.NET

Webclass tidak ada lagi dalam VB.NET. Dengan sedikit modifikasi anda bisa mengupgrade 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 tipe data akses, ADO, RDO dan DAO yang tetap dapat digunakan dalam VB.NET melalui interop. Walaupun demikian, data binding dengan DAO dan RDO tidak di support dalam VB.NET. Anda perlu merubahnya ke ADO sebelum melakukan upgrade atau tidak melakukan upgade sama sekali. Dari penjelasan di atas kita bisa melihat bahwa komponen-komponen atau fitur-fitur berikut memerlukan proses upgrade secara manual: Dokumen ActiveX DHTML ActiveX Designer Data binding dengan DAO dan RDO Apakah ada hal lain? Sayang sekali, jawabannya ya. Masih ada beberapa hal yang perlu anda perhatikan secara seksama, seperti Property, Add-in Extensibility, User Control dan perbedaan bahasa. Hal-hal inilah yang menyebabkan proses upgrade tidak dapat dilakukan hanya dengan tool seperti Upgrade Wizard. Anda bisa mencari informasi lebih lanjut di MSDN (www.msdn.microsoft.com).

4.3 Upgrade Project GroupDalam VB 6 kita dapat membuat project group yang terdiri dari beberapa project. Ketika di kompilasi dengan tombol F5, semua project dalam group tersebut akan dikompilasi secara bersamaan dan debugger dapat bergerak dari kode pada satu project ke kode dalam project lainnya. Dalam VB .NET, project group ini dikenal dengan nama solution. Tiap solution terdiri dari satu atau lebih project. Seperti halnya di VB 6, anda dapat melakukan kompilasi di level solution dengan menekan tombol F5. Perbedaannya adalah solution dapat terdiri dari project yang bahasa programnya berbeda, C#, C++ atau VB.NET. Untuk meng-upgrade project group anda harus mengetahui dengan pasti susunan dan hubungan antar project dalam project group anda. Misalkan project group anda terdiri dari satu project EXE yang terkait dengan dua project DLL (A dan B). DLL A menggunakan beberapa routine dalam DLL B.

Project Otak http://otak.csharpindonesia.net

46

NET101 Migrasi VB6 ke VB.NET

Gambar 4-3. Struktur project Proses upgrade menggunakan Wizard untuk kondisi tersebut di atas dapat dilakukan satu-persatu secara downstream dengan urutan sebagai berikut: upgrade project EXE, upgrade project DLL A dan upgrade project DLL B.

4.4 Menggunakan VB Snippet Add-InApa itu snippet? Mungkin anda sering menemukan istilah ini di internet atau buku-buku pemrograman. Snippet adalah suatu bagian dari kode program, bisa merupakan prosedur atau mungkin hanya beberapa baris kode. VB Snippet adalah bagian dari kode Visual Basic tentu saja. Misalnya jika anda menemukan contoh code di internet, atau dari mailing list. VB Snippet Add-in di rancang untuk membantu anda dalam meng-upgrade bagian kode anda. Untuk menggunakan VB Snippet Add-In, Anda harus membuka layar Code Editor di Visual Basic .NET. Pilih di menu Tools-VB Snippet ,maka akan terlihat seperti gambar di bawah

Project Otak http://otak.csharpindonesia.net

47

NET101 Migrasi VB6 ke VB.NET

Gambar 4-4. VB Snippet Upgrade Add-In

4.5 Metodologi Dalam Upgrade WizardHal hal yang diupgrade oleh wizard adalah sebagai berikut: o Project VB 6 ke Type Project VB.NET o Form-Form VB 6 ke Windows Form .NET Framework o Kontrol-kontrol intrinsik ke Windows Form .NET Framework o Kontrol ActiveX dan object references o Beberapa language statement VB ke VB.NET(VB.NET Compatibility library) atau di .NET Framewor Upgrade Wizard tidak mensupport beberapa item berikut : o Project-project ActiveX EXE o Designer : as Add-In Designer, DHTML Page Designer, DataReport, and DataE