- Avalonia Visual Basic 6 adalah proyek mainan yang merekonstruksi IDE dan bahasa Visual Basic 6 klasik dalam C# menggunakan Avalonia
- Versi web dapat dibuka di browser, dan versi desktop juga bisa dibangun berbasis .NET 9.0
- Fitur utamanya adalah desainer visual, simpan/muat proyek dalam format kompatibel VB6, menjalankan proyek, dan dukungan bahasa VB6 yang terbatas
- Versi browser memerlukan .NET 9.0, dan untuk build desktop .NET 8.0 juga dapat digunakan dengan mengubah
Directory.Build.props
- Hak atas nama, ikon, dan grafis Visual Basic dimiliki oleh Microsoft Corporation, dan proyek ini tidak memiliki tujuan komersial
Ikhtisar proyek
- Avalonia Visual Basic 6 adalah proyek yang merekonstruksi IDE dan bahasa Visual Basic 6 klasik dengan C# dan Avalonia
- Diperkenalkan sebagai fun, toy project tanpa tujuan komersial
- Semua hak atas nama, ikon, dan grafis Visual Basic dimiliki oleh Microsoft Corporation
- Versi web dapat dijalankan di browser
Fitur yang didukung
- Menyediakan Visual Designer
- Dapat menyimpan dan memuat proyek dalam format kompatibel VB6
- Menyediakan fungsi untuk menjalankan proyek
- Dukungan bahasa VB6 bersifat terbatas
Build versi desktop
- Secara umum memerlukan .NET 9.0
- Untuk versi desktop, .NET 8.0 dapat digunakan dengan mengubah
Directory.Build.props
- Versi browser memerlukan .NET 9.0
- Perintah build desktop adalah sebagai berikut
dotnet build AvaloniaVisualBasic.Desktop/AvaloniaVisualBasic.Desktop.csproj
Error Antlr4 dan Java
- Jika muncul error Antlr4, kemungkinan library
Antlr4BuildTasks gagal mengunduh Java secara otomatis
- Dalam kasus ini, masalah dapat diselesaikan dengan menginstal Java secara manual
Deployment desktop
- Proyek IDE dan runtime masing-masing harus dipublish
dotnet publish AvaloniaVisualBasic.Desktop -f net9.0 -o bin/
dotnet publish AvaloniaVisualBasic.Standalone -f net9.0 -o bin/standalone/
- Setelah deployment, file berikut dapat dijalankan
./bin/AvaloniaVisualBasic.Desktop
Proyek dan sumber daya yang digunakan
1 komentar
Komentar Hacker News
Saya menemukan "Write Your Own Adventure Programs" (1983 - Usborne: https://colorcomputerarchive.com/repo/Documents/Books/Write%...) di rak buku SD, kodenya ditulis dalam BASIC, dan waktu itu di rumah saya tidak ada komputer yang layak
Beberapa tahun kemudian, saat melihat Visual Basic, saya pikir ini pasti mirip, dan sebagian memang benar. Awalnya saya tidak punya buku untuk belajar, jadi saya menekan semua menu dan tombol untuk melihat fungsinya, lalu lewat koneksi dial-up mengunduh berbagai kontrol form VB pihak ketiga, melemparkannya ke Form, dan melihat apa yang mereka lakukan
Akhirnya, dengan berulang kali copy-paste dan memodifikasi, saya membuat alat bantu PR semacam penghitung luas lingkaran, juga program iseng yang memunculkan ikon di area notifikasi di sebelah jam, atau menyembunyikan jendela lalu mengeluarkan suara menyebalkan di latar belakang. Hanya saja, kalau mencoba memasangnya di komputer teman, sering gagal karena .dll yang diperlukan tidak muat dalam satu disket
Kadang memang bikin frustrasi, tetapi saya merasa sangat beruntung bisa belajar pemrograman dengan cara seperti ini, berkat orang tua saya yang membiarkan saya mengutak-atik sesuka hati perangkat yang pada masa itu pasti mahal
Bahkan tutorial saat itu terasa lebih menyenangkan. Gayanya seperti “tutorial Windows Registry dari hypnoMan37!!! HEyyeyeyy Guuyzs :-)))) mampir ke channel IRC saya #blabla di EFNet! Pertama panggil RegistryCreateNewKey32(...) lalu…” dan tentu saja saya juga tidak punya CD MSDN
Belajar ala code camp pasti jauh lebih efisien, tetapi jika dibandingkan rasanya terlalu kering. Saya rasa biaya membuat pemula bosan setengah mati itu cukup besar
Pertama kali saya berkenalan dengan Visual Basic adalah lewat VBA di MS Word. Saat membukanya, saya tahu itu tempat untuk coding, tetapi sama sekali tidak tahu harus mengetik apa. Waktu itu saya belum tahu satu pun bahasa pemrograman
Kemudian saya menemukan buku VB.NET di toko buku dan saking senangnya langsung mencobanya di VBA, tetapi kodenya sama sekali tidak berjalan sehingga saya sangat kecewa. Saya memutuskan akan mencoba sekali lagi untuk terakhir kalinya, dan kalau tetap tidak bisa saya akan menyerah; untungnya, akhirnya berjalan
Ternyata VBA di MS Word di komputer saya berbasis VB 6, sementara buku itu buku VB.NET, jadi kodenya sedikit berbeda
Setelah itu saya membeli semua buku terkait VB 6 yang saya temukan, dan secara kebetulan menemukan installer IDE VB 6 di tumpukan CD milik kerabat lalu memasangnya. Sampai sekarang saya masih menganggap GUI builder VB 6 sebagai yang terbaik yang pernah saya pakai
Perpustakaan lokal saya juga punya "Visual Basic How-To: The Definitive Vb3 Problem Solver", dan saya sampai diberi tahu bahwa saya tidak boleh memperpanjang peminjaman lagi karena sudah terlalu sering. Saya masih ingat pernah membuat antarmuka yang benar-benar berfungsi berdasarkan antarmuka “Peanut Computer” di bagian awal Out of this World
Ada ide bagus?
Saat bosan, saya suka membaca manual MS-DOS 6 dari awal sampai akhir
Pada masa ketika akses internet belum umum, kualitas dokumentasi dan kode contoh benar-benar mengesankan
Ampersand pada label tombol tidak membuat tombol pintas. Misalnya
&Gotidak memberi garis bawah pada GDi VB6 asli, kalau menaruh kontrol Label lalu langsung mengetik, isinya berubah; di sini harus memfokuskan field input dulu. Mengklik header “Caption” juga tidak bisa, harus mengklik bagian dalam kolom input
Agar fidelitasnya lebih tinggi, saat memilih kontrol di GUI designer, satu baris di grid Properties seharusnya selalu disorot. Pada Label, default-nya adalah Caption, dan untuk kontrol tanpa properti default, seingat saya adalah Name
Saat beralih ke kontrol lain, jika ada properti dengan nama yang sama seperti properti yang sedang dipilih, VB6 mempertahankan pilihan itu. Jadi properti Tag dari beberapa kontrol bisa diubah berurutan dengan sangat cepat dan klik minimal
Jelas menu seperti debugging, penyimpanan, bantuan, dan add-in belum diimplementasikan. Akan luar biasa kalau tombol Build yang menghasilkan “file executable” yang berjalan di browser bisa berfungsi
Catatan cerewet ini datang dari rasa sayang ;-)
_, tetapi saya baru saja mengirim pembaruan agar&juga didukung :)Penyimpanan sebenarnya berfungsi. Namun hanya di desktop, dan bahkan kompatibel format dengan VB6. Karena dukungan keseluruhannya terbatas, kompatibilitasnya juga terbatas, tetapi saya berencana meningkatkannya sedikit lagi
Build juga berfungsi, tetapi hanya di desktop ;)
Secara tampilan maupun cara kerjanya benar-benar intuitif
Beralih dari widget yang familier dan tidak mencolok sesuai selera, menuju desain yang sangat dipoles, bergaya mendalam, dan menonjolkan merek
Ternyata, fokus pada merek yang mencolok dan unik bukan hanya menarik pengguna baru, tetapi juga mengurangi churn dengan membuat perpindahan ke tempat lain terasa lebih asing dan menyebalkan. Itu lebih mudah menghasilkan uang dibanding tren sebelumnya yang berfokus pada efisiensi pengguna dan diferensiasi fitur
Teknologi pun mengikuti tren itu, menghabiskan anggaran kompleksitas untuk kustomisasi gaya, animasi, peningkatan rendering font, dan sebagainya, sementara upaya untuk mendorong bahasa desain standar yang bisa dibiasakan bersama oleh pembuat dan pengguna ditinggalkan
Semua versi Visual Studio setelahnya juga memiliki builder yang sama. Saya memakai builder ini setiap hari saat membuat aplikasi pribadi kecil. Bahkan di Visual Studio 2022 baru yang keluar kemarin, hampir 100% sama
Sebenarnya sekarang lebih bagus, karena lebih mudah menyelaraskan dan mengubah properti. Namun antarmukanya sama, secara harfiah tidak berubah selama 25 tahun
Barusan saya menyalakan VS2022 dan membuat aplikasi ini dalam waktu kurang dari 60 detik: https://imgur.com/a/qHOCasJ
Ada dua hal yang membuat saya tertarik pada VB. Pertama, bisa menggambar GUI sendiri; untuk ukuran saat itu, membuat perangkat lunak yang “terlihat seperti perangkat lunak” dengan usaha minimal terasa sangat keren dan memberdayakan
Yang kedua, untuk membuat GUI, alih-alih VB kita harus bergulat dengan library kelas. Saat itu OOP benar-benar sulit dipahami bagi programmer hobi seperti saya, dan bahkan untuk membuat aplikasi “hello world” paling sederhana di Windows atau Mac pun diperlukan instruksi berhalaman-halaman
Dalam beberapa dekade berikutnya, tuntutan terhadap GUI berkualitas tinggi meningkat, dan pada saat yang sama kemampuan pemrograman yang dibutuhkan untuk membuat GUI kecil lewat kode tampaknya juga menjadi lebih umum. Mungkin karena bahasa-bahasa pemrograman secara bertahap membuatnya lebih mudah
Sekarang, untuk GUI pada level yang saya butuhkan, saya lebih puas menuliskannya langsung dengan kode, dan dalam kasus saya membiarkan Tkinter menaruhnya dengan tata letak default yang cukup layak. Para korban saya—maksud saya pengguna—tidak menuntut sesuatu yang lebih baik
Ini cukup mirip dengan pendekatan Interface Builder di Xcode yang dipakai untuk aplikasi macOS dan iOS
Seperti yang dikatakan orang lain, ini berjalan baik sampai Anda harus mendukung ukuran layar, tata letak, animasi, interaksi sentuh, dan sebagainya
Setelah membuat baik aplikasi native desktop maupun aplikasi berbasis browser, menurut saya setelah melewati kurva belajar, ada efisiensi dalam menuliskan tata letak widget sebagai teks lewat kode atau markup
Setahu saya Qt dan wxWidgets juga punya fitur tata letak otomatis, tetapi karena dilakukan di atas C++, pengalamannya bisa kurang mulus. Sejauh ini form designer Visual Studio menuntut penempatan piksel manual, sehingga makin kompleks GUI-nya, makin membosankan
Metode drag-and-drop kontrol mudah dipelajari sehingga bagus untuk pemula, tetapi begitu jumlah kontrol sekitar selusin saja, waktu yang dipakai untuk menyeret, menyelaraskan, dan mengubah ukurannya secara manual mulai terasa. Pada GUI berbasis markup atau yang dibuat secara prosedural, perhitungan tata letak seperti ini dikerjakan untuk kita
UI Windows era 1995–2001 benar-benar terasa seperti puncak Windows
Sangat jelas dan rapi. Visual C++ dan Visual Basic saat itu memang tidak sempurna, tetapi cukup untuk menyelesaikan pekerjaan
XP sudah di depan mata, dan menurut saya setelah itu semuanya menurun
Sedikit keluar topik, tetapi ini dibuat dengan Avalonia, yang baru pertama kali saya dengar. Ada yang pernah memakainya? Janji untuk membuat aplikasi lintas platform yang indah dari satu codebase .NET terdengar mengesankan, tapi saya penasaran apakah dalam praktiknya memang sebaik itu
https://avaloniaui.net/
Melihat ini benar-benar menyenangkan
Saya adalah salah satu developer awal yang membuat sisi “visual” dari Visual Basic
Waktu itu namanya Ruby, dan tidak ada hubungannya dengan bahasa pemrograman Ruby. Rencananya ini akan menjadi shell yang bisa dikustomisasi untuk Windows 3.0. Gagasannya, pengguna Windows perorangan bisa membuat lingkungan desktop pribadi mereka sendiri menggunakan editor visual dan “gizmos”; gizmos ini kemudian mendapat nama yang jauh lebih membosankan, yaitu “controls”
Microsoft, mungkin dengan bijak, menilai bahwa ini lebih cocok sebagai tool untuk developer daripada tool untuk pengguna akhir, lalu menggabungkan Ruby dengan Basic untuk membuat Visual Basic
Jika Anda pernah membuat kontrol kustom VBX, silakan salahkan saya atas API yang mengerikan itu
Dan kalau Anda penasaran dari mana ungkapan “fire an event” berasal, jawabannya bisa ditemukan di tulisan Retool tentang VB: https://retool.com/visual-basic
Peringatan konten: ada ungkapan terkait narkoba. Anggap saja ini semacam “tanyakan apa saja”
Dengan sedikit promosi diri yang agak tanpa malu, saya sedang mencari pekerjaan. Di IBM, tim kami baru-baru ini terkena dampak cukup besar dalam PHK, dan kami kehilangan McDonald's, satu-satunya pelanggan khusus kami
Saya tahu banyak bahasa dan framework, tetapi tidak tahu semuanya. Memangnya ada yang tahu semuanya?
Saya suka bekerja bersama untuk memahami kebutuhan pelanggan. Seperti semua programmer, saya juga menikmati coding, tetapi coding hanyalah sarana untuk membuat pelanggan senang
Kalau tertarik, Anda bisa menemukan saya di sini: http://linkedin.geary.com/, http://resume.geary.com/
Saya orang yang menulis komentar panjang penuh antusiasme di atas. Saya ingin duduk sekitar satu jam di Zoom dan mendengarkan cerita tentang masa itu, lalu jika videonya diunggah di sini, saya rasa orang-orang akan menyukainya
Saya sama sekali tidak punya pengalaman wawancara maupun kanal media, tetapi saya akan berusaha sebaik mungkin untuk mengajukan pertanyaan menarik. Kalau tertarik, kirim email saja. Bisa ditemukan di profil saya
Apakah ini juga terkait dengan MS Dialog Editor?
Kalau menelusuri kodenya, terlihat bahwa penulis hanya mengimplementasikan hal minimum untuk membuat demo yang keren
Misalnya, fungsi yang didukung hanya dua: MsgBox dan InputBox: https://github.com/BAndysc/AvaloniaVisualBasic6/blob/383a005...
Meski begitu, melihat riwayat commit-nya, tetap mengesankan bahwa sesuatu yang serumit ini dibuat hanya dalam 4 hari. Ini juga titik awal yang bagus untuk dikembangkan menjadi IDE lengkap
Sayangnya fitur lanjutan seperti syntax highlighting dan auto-completion belum ada. Saya belum menjalankannya, tetapi karena saya memakai macOS, saya menduga debugger juga tidak ada
Kalau bicara masa kecil saya juga, perjalanan pengembangan saya awalnya dimulai dengan Turbo Pascal lalu beralih ke Delphi 7. Delphi cukup mirip dengan VB6, jadi saya merancang aplikasi dengan menyeret komponen ke form
Aplikasi pertama yang saya buat adalah klon Notepad++, dan kodenya masih ada, tetapi kualitasnya sangat buruk sampai saya malu setiap kali melihatnya
Dukungan bahasa VB6 juga terbatas. Ini lebih mirip mainan atau proof of concept, tetapi melihat respons yang positif membuat saya ingin mengimplementasikan lebih banyak fitur. Terutama karena format penyimpanannya kompatibel dengan VB6. Mungkin tetap akan jadi mainan, tetapi bukankah bisa menjadi mainan yang benar-benar berfungsi?
Versi web bisa dibuka di browser: https://bandysc.github.io/AvaloniaVisualBasic6/
Koreksi: penyebabnya sudah ditemukan. Opsi Enhance your security on the web di Edge membuatnya jauh lebih lambat. Jika opsi ini dimatikan, masalah performanya teratasi
Saya benar-benar merindukan komponen frame di aplikasi zaman sekarang. Sepertinya semua orang menganggap judul tebal dan sedikit ruang kosong di bagian akhir sudah cukup untuk mengelompokkan item
fieldsetyang tampilannya seperti itu. Tetapi terlalu banyak framework CSS yang merusaknya. Saya sebenarnya suka tampilannyaUntuk mengeceknya, masukkan berikut ini ke file HTML kosong dan lihat bagaimana dirender: Frame1, HTML, CSS, JavaScript
Terkait itu, satu hal penting lain yang menghilang adalah TabView yang benar. Saya tidak tahu siapa yang pertama kali bersikeras menyebut satu baris tombol biasa sebagai TabView, tetapi mungkin Apple, dan itu buruk sekali. Sebab, seperti saat GroupBox tidak ada, tidak ada batas yang menunjukkan bahwa kontrol di bawahnya berada di atas view dari tab yang dipilih. Rasanya ini hal yang sudah semestinya jelas