Saya punya satu sore untuk memuji manfaat. NET lebih dari VB6 ... apa yang harus saya katakan? [Tutup]

9

Perusahaan saya adalah perusahaan rekayasa kecil yang terdiri atas dua puluh orang. Semua pemrograman aplikasi di sini dilakukan di VB6 oleh dua orang, yang telah belajar sendiri VB6 dari latar belakang perakitan saat bekerja di sini selama 25+ tahun terakhir, dan saya sendiri.

Akibatnya, kode VB6 penuh dengan bau kode yang menghebohkan, seperti berton-ton variabel yang diketik secara ketat , fungsi yang sangat panjang, ratusan variabel global publik (beberapa di antaranya lebih disukai daripada melewati argumen dan mengembalikan nilai,) dan bukan objek tunggal. kelas. Refactoring hampir tidak mungkin, dan perubahan apa pun membutuhkan penggalian kode terlalu banyak, dan sekali dibuat, selalu menimbulkan lebih banyak lubang.

Bos saya menyadari bahwa VB6 adalah teknologi mati, dan bersedia mendengarkan permintaan saya untuk pindah ke .NET untuk pengembangan baru. Kami bergerak maju ke .NET, tetapi dia melihatnya sebagai cara untuk menjaga kompatibilitas dengan OS Windows yang lebih baru, bukan sebagai cara untuk menulis kode yang lebih baik.

Bagaimana saya bisa menjelaskan manfaat dari .NET bahasa lebih dari VB6, di luar sekadar up-to-date-ness? Apa yang bisa saya katakan untuk menekankan bahwa pindah ke .NET adalah langkah yang baik tetapi juga itu berarti paradigma pemrograman kita saat ini juga harus mulai berubah? Segera setelah bos saya mendengar bahwa Visual Basic .NET terlihat seperti VB6, saya tahu bahwa insting pertamanya adalah dengan hanya mengonversi kode berantakan lama kami menjadi .NET.

Saya mengerti bahwa hal itu akan mustahil untuk pola pikir perubahan siapa pun dalam satu sore, tapi bagaimana saya bisa setidaknya meyakinkan bos saya perakitan-toting bahwa hal-hal seperti variabel kuat-mengetik, kelas kustom, dan bidang swasta bukan Total buang-buang waktu dan energi?

dlras2
sumber
4
Pengembang VB6 adalah jenis yang sekarat? Coba rekrut pengembang .NET dan pengembang VB6. Lihat berapa banyak CV yang Anda dapatkan untuk masing-masing. Fakta bahwa setelah 2 timer lama pensiun, tidak akan ada penggantian (atau lebih tepatnya, penggantian yang sangat mahal ) harus cukup dari argumen.
Oded
3
Saya menghargai bahwa ia mungkin mencoba , tetapi kebanyakan pengembang yang menghargai diri sendiri akan menghindari bahasa yang mati. Tidak yakin kapan MS akan berhenti mendukung VB6, tetapi semakin sulit untuk menemukan sumber daya (dan produk akhir kehidupan adalah argumen lain terhadap VB6). Tidak yakin seberapa banyak ini akan membantu, tetapi lakukan studi: msdn.microsoft.com/en-us/vstudio/ms788708.aspx - 2008 adalah akhir dari IDE. Dan saya suka "Perjanjian Dukungan Kustom mungkin tersedia dari Microsoft" - berapa biayanya, saya bertanya-tanya ...
Oded
1
@Oded Sayangnya, tidak satu pun dari argumen ini yang benar-benar menyentuh fakta bahwa VB.NET dapat digunakan sebagai pengganti VB6, variabel publik global, dan sebagainya. Setelah kami menggunakan .NET , bagaimana sebenarnya kami menggunakan semua manfaatnya?
dlras2
1
Mungkin dijelaskan dengan contoh. Apakah ada beberapa masalah yang sulit dipecahkan di VB6 yang akan lebih mudah diselesaikan di VB. NET? Bisakah Anda mengambil beberapa contoh dari basis kode Anda dan menunjukkan bagaimana mereka dapat dibersihkan menjadi kode yang lebih baik di. NET yang tidak mungkin dengan fitur-fitur di VB6?
FrustratedWithFormsDesigner
1
@DanRasmussen VB.NET tidak dapat mengimpor proyek VB6 dengan benar (belum?). Tidak mudah untuk memutakhirkan.

Jawaban:

16

Jawaban Singkat: Tidak ada yang dapat Anda lakukan untuk mengubah pikiran mereka berdasarkan kriteria yang Anda cantumkan dalam pertanyaan yang semuanya bersifat teknis . Ini setara dengan perdebatan agama . Rute tercepat menuju kegagalan adalah dengan menghadirkan argumen yang bukan dari sudut pandang audiens, dalam hal ini pemilik bisnis .

Jawaban yang Lebih Panjang: Perubahan dalam bisnis didorong oleh satu hal dan hanya satu hal. Untung di garis bawah.

... bagaimana saya setidaknya bisa meyakinkan bos saya yang sedang berkumpul tentang hal-hal seperti variabel yang sangat diketik, kelas khusus, dan bidang pribadi bukanlah pemborosan waktu dan energi?

Mereka tidak hanya dapat membuang-buang waktu dan energi, tetapi yang lebih penting mereka menghabiskan uang Anda ! Anda harus dapat menunjukkan secara kuantitatif bahwa saran Anda akan menghasilkan untung besar dari waktu ke waktu. Hanya mengklaim kode bersih adalah "lebih baik" tidak cukup, karena kode bersih harganya jauh lebih mahal untuk diproduksi.

Jika Anda dapat mengartikulasikan bagaimana biaya menggunakan teknologi modern akan mengarah ke ($COST + X) * TIME = $PROFIT, di mana nomor postiveX non-sepele dan relatif singkat Anda dapat membuat skenario yang menarik.TIME

Cara lain untuk menghitung ROI (Return On Investment)

Formula ROI

Jika ROI / ROR ini merupakan angka sepele, terutama dalam jangka waktu yang lama, Anda juga tidak memiliki banyak kasus bisnis.

Bagaimana perusahaan Anda benar-benar menghasilkan uang?

berapa baris kode? berapa banyak pelanggan? berapa pendapatan setahun yang dihasilkan perangkat lunak ini? Apakah sebagian besar pendapatan mendukung kontrak? atau lisensi baru? Apakah target pasar stabil? memperluas? tertular? Apakah perangkat lunak itu pemimpin kerugian bagi beberapa produk lain yang jauh lebih menguntungkan?

Sulit bagi pebisnis yang baik untuk mengabaikan uang yang ada di atas meja.

Tentu saja Anda harus dapat mendukung pernyataan Anda dengan fakta-fakta sulit. Ini berarti Anda harus dapat memberikan bilangan real yang menunjukkan Anda benar-benar memahami bisnis yang sebenarnya dan bukan hanya rincian teknis akademik.

Bukan hanya Pro

Juga memberikan analisis risiko terperinci dan risiko apa yang akan $COSTterjadi jika itu terjadi, akan meyakinkan mereka bahwa Anda memiliki kasus yang realistis dan tidak hanya mengeluh bahwa Anda tidak ingin lagi melakukan VB6.

Mengajari anjing tua trik baru

... Apa yang bisa saya katakan untuk menekankan bahwa pindah ke .NET adalah langkah yang baik jika dan hanya jika paradigma pemrograman kita saat ini juga mulai berubah? ...

Mengubah atau Tidak Mengubah paradigma pemrograman agar se-idiomatis mungkin dari teknologi baru adalah bagian dari analisis risiko. Tetapi ini adalah argumen yang terpisah hanya setelah Anda membuktikan ada uang yang signifikan untuk dibuat dengan membuat perubahan di tempat pertama.

Orang bisnis cenderung mendengarkan kasus bisnis seperti halnya orang teknis cenderung mendengarkan kasus teknis. Semua kasus Anda dalam pertanyaan Anda mendukung manfaat teknis yang paling akademis dalam situasi Anda.

Ramalan

Saya membuat beberapa asumsi di sini aplikasi VB6, toko kecil, beberapa pengembang, 2 pengembang / pemilik bisnis lama menunjuk ke aplikasi ceruk pasar yang mungkin sudah matang (bug dan bekerja di sekitar dikenal), cukup lengkap fitur dan relatif stabil, terlepas dari dari "kekacauan" basis kode. Hal ini membuat saya percaya bahwa basis pengguna kecil juga tidak tumbuh secara dramatis dari tahun ke tahun, yang membawa saya ke kesimpulan berikut.

Bahwa benar-benar tidak akan ada alasan bisnis yang nyata untuk mengubah arah teknis dengan aplikasi ini. Dan porting ke VB.Net juga membuang-buang waktu karena Anda hanya akan memiliki kekacauan tetapi sekarang dengan lebih banyak, dan 2/3 dari tim pengembangan tidak didedikasikan untuk mempelajari sesuatu yang baru. Semoga berhasil.

Glorfindel
sumber
2
sayangnya biaya penulisan ulang (ditambah pelatihan, ditambah keahlian memperoleh) biasanya melebihi biaya untuk menjaga aplikasi tetap berjalan, setidaknya dalam jangka pendek dan menengah. Namun dalam jangka panjang, Anda menghadapi risiko penulisan ulang itu sendiri mungkin perlu ditulis ulang dalam $ next_new_technology.
gbjbaanb
4
+1 debat agama. Jika OP ingin bekerja di .NET ia harus mendapatkan pekerjaan di toko .NET; Saya akan mengatakan pindah dari VB6 ke .NET di perusahaan ini adalah risiko utama dengan keuntungan yang dipertanyakan.
Kirk Broadhurst
Jawaban yang bagus, kecuali Anda membaca bagiannya tentang "Refactoring hampir tidak mungkin, dan perubahan apa pun memerlukan penggalian kode terlalu banyak, dan sekali dibuat, sepertinya selalu menimbulkan lebih banyak lubang." Ini adalah pernyataan terakhir yang bernilai bagi bisnis. Menunjukkan bahwa mereka tidak dapat mengubah basis kode tanpa biaya bisnis yang signifikan adalah argumen yang sangat valid sesuai dengan jawaban Anda. Tentu saja, metrik harus ada di sana untuk mendukung pernyataan itu.
@ GlenH7 secara pribadi saya pikir apa yang Anda kutip adalah pendapat pribadi yang dramatis dan retorika karena OP tidak menunjukkan keprihatinan apa pun selain mendorong pendapat dan agenda pribadi mereka. Jawaban saya adalah mengusulkan bahwa mereka tidak mempertimbangkan apa yang menjadi pendorong perubahan sesungguhnya dan bukan apa yang mereka pikirkan atau pikirkan. Maksud saya adalah perubahan inkremental dalam jangka panjang yang "mahal" akan selalu lebih murah daripada apa yang mereka usulkan dalam jumlah waktu yang sama. Membuat apa yang mereka katakan, dan apa yang Anda kutip dari argumen bisnis yang tidak dapat dipertahankan.
Setuju bahwa ada tingkat retorika dalam pernyataan itu. Beberapa toko (dan bukan, itu bukan toko kecil) melacak kegagalan / lolos sehingga dimungkinkan untuk menghasilkan metrik keras tentang bug. OTOH, sebagian besar toko tidak menyimpan informasi itu dan itu tidak lebih dari "firasat" yang tidak terlalu berarti dalam presentasi bisnis.
11

Saya memiliki pelanggan yang produk andalannya ditulis dalam VB6 dan dikelola oleh 3 orang. Saya datang untuk membantu mereka karena mereka memiliki pasangan yang ingin mereka memanggil layanan web. Itu sangat sulit dilakukan dari VB6, tetapi mudah dari VB.NET atau C #, dan saya menulis mereka. NET assembly yang melihat ke VB6 seperti komponen COM sehingga mereka bisa menyebutnya. Kemudian mereka perlu menawarkan layanan web kepada seseorang. Kemudian mereka ingin menulis utilitas mandiri kecil dan itu akan perlu untuk mengenkripsi dan mendekripsi beberapa informasi, dan untuk menguraikan beberapa XML. Saya mengajar mereka untuk menulisnya di .NET. Selama 5 tahun terakhir ini, semakin banyak kode mereka dalam. NET meskipun produk unggulan tidak menyusut sama sekali. Ada bagian yang mereka benci - setiap aplikasi memilikinya - dan di mana mereka dapat, mereka mengeluarkan bagian-bagian ini (sekarang mulai menyusut) dan menempatkannya ke dalam layanan atau utilitas terpisah. Sisanya akan dikonversi holus-bolus ke .NET. Yup, nama variabel yang buruk dan semuanya - menurut saya ada banyak manfaat untuk pindah ke .NET bahkan jika mereka tidak mengubah paradigma pemrograman mereka saat ini. Ini termasuk:

  • Anda dapat menggunakan Visual Studio terbaru dengan pencarian yang lebih baik, Intellisense yang lebih baik, build yang lebih cepat, dll
  • Anda dapat berintegrasi dengan sistem kontrol sumber yang layak (yaitu bukan VSS)
  • ada pustaka yang datang dengan .NET gratis yang membuat karya pendek seperti enkripsi, parsing XML, pemrosesan gambar, dan banyak lagi
  • internasionalisasi dan pelokalan jauh lebih mudah pada proyek .NET (ini, dengan pertanyaan dari pelanggan Kanada yang besar yang membutuhkan versi Prancis dan Inggris, mungkin telah memberi keseimbangan bagi klien saya)
  • pustaka kontrol yang murah (Telerik, Infragistics, ComponentOne dll) memberi Anda kemampuan luar biasa dengan hampir tanpa biaya
  • akan jauh lebih mudah untuk menemukan bantuan sementara, seperti siswa musim panas, dalam keadaan di mana waktu yang dihabiskan untuk mengajar mereka VB6 tidak sepadan (jangan bahas perasaan Anda tentang mengajarkannya kepada karyawan penuh waktu yang baru)
  • aplikasi Anda akan sadar UAC, sehingga akan berjalan lebih baik pada Vista, 7, dan 8. Ini tidak perlu dijalankan dalam mode kompatibilitas XP

Masih ada lagi, tapi tentu itu cukup?

Masalah paradigma pemrograman, pengetikan yang kuat, kompiler adalah teman Anda, enkapsulasi adalah teman Anda dan seterusnya ada di pikiran saya (dan saya dibayar untuk mendapatkan pendapat ini) sepenuhnya terpisah. Jika Anda ingin mati di bukit itu, silakan, tetapi Anda akan sekarat dengan salinan VB6 terbuka.

Kate Gregory
sumber
Apa yang Anda maksudkan dengan paragraf penutup Anda?
dlras2
6
"Pindah ke .NET" dan "mari kita semua memprogram dengan cara yang berbeda" berbeda, dan bahwa jika Anda memilih untuk bertarung dengan yang kedua, bukan saja Anda tidak mungkin berhasil, Anda hampir pasti tidak akan memindahkannya. NET dengan pendekatan itu. Maksud saya, saya setuju mereka harus memprogram dengan cara yang berbeda. Tetapi jalur terbaik untuk .NET adalah "seperti apa yang Anda miliki sekarang, tetapi dengan saus cokelat dan taburan!"
Kate Gregory
Saya mengerti manfaat dari mendekati mereka sebagai masalah yang berbeda, tetapi masalahnya adalah bahwa mendekati mereka sebagai masalah yang terpisah hanya memastikan program yang sama-sama tidak dapat dipertahankan, hanya di .NET.
dlras2
1
Anda akan memiliki aplikasi yang lebih baik (kontrol yang lebih baik, lebih banyak fungsionalitas) dan beberapa proses yang lebih baik (menyelinap dalam kontrol sumber dan bahkan mungkin pelacakan item kerja) bersama dengan pengembang yang sekarang melihat bahwa hal itu dapat dilakukan secara berbeda, dan bahwa rasa sakit dari perubahan bernilai itu karena manfaat besar ini. Mereka akan jauh lebih reseptif terhadap hal berikutnya yang Anda minta dari mereka. Dan "unmaintainable" bukan biner. Kode tidak akan bagus, tetapi situasinya akan tetap lebih baik daripada sebelumnya. Anda akan memiliki kredibilitas terbukti juga.
Kate Gregory
8

Saya mulai dengan proyek VB6 beberapa tahun yang lalu (sistem ERP kustom perusahaan) dan saya perlahan-lahan telah memigrasikannya ke .NET. Itu sekitar setengah jadi.

Pertama-tama, mengkonversi dari VB6 ke VB.Net hampir selalu merupakan ide yang buruk (dan saya melakukan banyak penelitian tentang itu). Terlalu banyak perbedaan. Juga, jika bos Anda berpikir bahwa VB.Net adalah "sama seperti VB6" maka dia sepenuhnya salah dan Anda harus mengubah pandangannya dengan cepat.

Strategi saya adalah untuk menjaga dua basis kode terpisah dan memeliharanya secara terpisah dan kemudian perlahan-lahan memindahkan seluruh modul dari VB6 ke .NET tetapi hanya ketika ada perubahan signifikan yang akan terjadi pada modul itu, sehingga kami dapat mengamortisasi sebagian biaya. Meski begitu, menulis ulang adalah tugas besar yang mahal dan berisiko.

Ada dua cara untuk mengintegrasikan VB6 yang ada dengan kode .NET baru (dan Anda mungkin akan melakukan itu untuk waktu yang sangat lama, jadi sebaiknya Anda terbiasa dengan ide itu). Cara pertama yang saya lakukan adalah mulai menulis modul kecil di .NET dan kemudian memiliki aplikasi VB6 utama meluncurkan .NET dieksekusi lewat beberapa parameter baris perintah. Ini berhasil, tetapi berhati-hatilah bahwa .NET memiliki waktu mulai start dari 4 hingga 10 detik, sehingga Anda terbatas pada apa yang dapat Anda lakukan dengan cara ini.

Setelah mulai terasa sangat menyakitkan, saya membalik strategi dan menggunakan metode dari artikel CodeProject ini untuk menampilkan formulir VB6 yang ada di aplikasi .NET utama saya. Setelah saya melewati rute ini, saya hanya bisa mengeluarkan satu waktu .NET startup, dan menggunakan ClickOnce untuk penyebaran, yang merupakan anugerah dibandingkan dengan bagaimana aplikasi VB6 dikerahkan sebelumnya.

Yang mengatakan, inilah keuntungan yang saya temukan di .NET lebih dari VB6:

  • Kerangka kerja ketekunan yang lebih baik (NHibernate, EntityFramework, Linq2Sql dll.)
  • LINQ (Saya tidak bisa cukup menekankan betapa pentingnya hal ini)
  • Generik!
  • Sintaks Lambda (memecahkan seluruh kelas masalah seperti "hole in the middle" dengan elegan)
  • Demikian Actiondan Funcjenis
  • Refleksi (sesuatu yang jarang Anda gunakan, tetapi ketika Anda melakukannya sangat besar)
  • Dukungan pengujian unit jauh lebih baik (tentu saja, saya ragu Anda akan meyakinkan karyawan Anda yang lain untuk pengujian unit, tetapi Anda harus)
  • ReSharper (dan alat refactoring / profiling lainnya) (10x lebih baik dari MZ-Tools)
  • ClickOnce dan / atau Setup / Installer Projects
  • Proyek Layanan Windows
  • Dukungan berorientasi objek yang sebenarnya (VB6 didasarkan pada COM dan sangat buruk dalam dept ini.)
  • Pengetikan statis
  • Dipanggang dalam dukungan XML
  • WPF dan Formulir Windows (Kontrol VB6 sangat terbatas)
  • WCF
  • Banyak lagi contoh kode online
  • Pengecualian (penanganan kesalahan VB6 benar-benar mengerikan jika dibandingkan)
  • Integrasi kontrol sumber Visual Studio
  • Decimal tipe (VB6 tidak pernah memiliki tipe desimal kelas satu, meskipun memiliki CDec)
  • Dukungan kelas satu untuk Guid
  • Dukungan kelas satu untuk bilangan bulat 64-bit
  • Perpustakaan koleksi yang lebih baik
  • ReportViewer
  • Multithreading, pustaka paralel tugas

Kerugian VB6:

  • Anda akan melihat kinerja itu. Mungkin tidak cukup untuk dikhawatirkan, tapi percayalah, Anda akan menyadarinya. VB6 mengkompilasi ke kode asli setelah semua.

Agar adil, berikut adalah beberapa kelemahan mempertahankan solusi gabungan VB6 / .NET:

  • Mempertahankan dua lapisan akses data (dengan asumsi aplikasi VB6 Anda sebenarnya memiliki satu)
  • Kabel ekstra untuk mengekspos layanan / formulir / dll. dari satu sisi ke sisi lain
  • Dua kali lipat kompleksitas / arsitektur yang ada di kepala Anda

Sekarang, seperti yang Anda mengisyaratkan, Anda benar-benar harus membangun kembali arsitektur Anda dari bawah ke atas jika Anda mulai menulis kode dalam .NET. Namun, sepertinya tidak ada orang di perusahaan Anda yang akrab dengan dunia pemrograman .NET dan / atau Java, yang merupakan asal banyak pola dan praktik yang umum bagi kerangka kerja perusahaan besar.

Jika Anda mengambil seseorang yang terbiasa menyeret tombol pada formulir, mengklik dua kali pada itu, dan menulis beberapa string SQL langsung di pengendali event klik, dan itu telah bekerja untuk mereka, sangat sulit untuk membuat mereka melihat keuntungan mengikuti SOLID prinsip desain. Di sisi lain, jika Anda menggigit peluru dan memutuskan bahwa semua kode baru akan tercakup 90% atau lebih besar dengan tes unit otomatis, maka Anda akan segera menyadari bahwa itu sangat sulit dilakukan kecuali jika Anda mengadopsi prinsip-prinsip desain SOLID.

Jadi, Anda harus benar-benar melihat kenyataan situasi. Dalam kasus saya, saya adalah satu-satunya programmer, dan saya bertekad untuk membuat semua kode baru diuji unit, meskipun saya tidak punya pengalaman dengannya. Saya tidak bisa cukup menekankan betapa ini berdampak negatif pada apa yang bisa saya lakukan pada minggu pertama, bahkan bulan-bulan pertama. Namun, saya bertekad untuk melakukannya, dan saya menerima dukungan dari manajemen. Kebanyakan orang tidak memiliki kemewahan itu. Sekarang saya punya banyak kode dan saya baru saja menyelesaikan refactoring besar dengan hampir tidak ada masalah.

Secara realistis, Anda tidak akan melakukan tes unit, yang berarti lebih sulit untuk membenarkan prinsip-prinsip seperti injeksi ketergantungan kepada rekan satu tim Anda. Anda harus menjual .NET pada manfaat selain manfaat arsitektur. Anda harus fokus pada dukungan perpustakaan yang lebih baik dan alat yang lebih baik. Itulah satu-satunya hal yang akan beresonansi. Saya akan menyarankan yang berikut dalam demo Anda:

  • Buat proyek Windows Forms (menjauh dari WPF dan xaml - ini terlalu mengejutkan)
  • Terhubung ke database SQL (beberapa database uji)
  • Gunakan Linq2Sql atau EntityFramework untuk menghasilkan model data untuk itu
  • Buat kelas repositori yang memiliki metode untuk mengembalikan beberapa daftar entitas
  • Tulis kueri dalam metode itu menggunakan LINQ, tunjukkan intellisense
  • Tunjukkan bahwa LINQ bekerja pada semua objek, bukan hanya entitas
  • Tunjukkan bahwa jika Anda mengubah database dan membuat ulang model, Anda mendapatkan kesalahan kompilasi
  • Jatuhkan DataGridViewdi jendela utama
  • Peragakan penyatuan data dengan mengisi kisi-kisi dengan entitas dari repositori
  • Tunjukkan semua hal keren tentang grid yang jauh lebih baik daripada VB6
  • Buat file .rdlc (laporan)
  • Buat laporan sederhana di dalam Visual Studio
  • Jatuhkan penampil laporan di jendela dan render laporan di dalam penampil laporan
  • (Jelas Anda perlu ReportViewer diinstal dan sudah melakukan semua ini terlebih dahulu)
  • Munculkan masalah "hole in the middle" dan kemudian tunjukkan pemecahannya dengan membuat metode yang menggunakan Actionparameter. Lakukan ini terlebih dahulu dengan melewati metode lain sebagai parameter, dan kemudian meniup pikiran mereka dengan melewati delegasi anonim menggunakan sintaks lambda
  • Menunjukkan generik dengan menggunakan List<T>dan Dictionary<T1,T2>koleksi kelas dan menunjukkan bagaimana menciptakan kuat kode diketik (VB6 memiliki hal serupa, tapi itu dinamis diketik)
  • Tulis foreachloop yang memalukan paralel, gunakan System.Diagnostics.Stopwatchuntuk mengukur waktu yang diperlukan untuk mengeksekusi, kemudian gunakan pustaka paralel tugas untuk mengubah loop menjadi Parallel.Foreachloop dan perlihatkan kecepatan, dengan asumsi Anda menggunakan mesin multi-core.
  • Tunjukkan kemampuan untuk menambahkan penangan pengecualian global (ini adalah sesuatu yang tidak bisa dilakukan VB6)

Itu yang akan saya lakukan.

Scott Whitlock
sumber
1

Tampaknya bagi saya bahwa ini adalah situasi di mana Anda harus mengenakan topi politisi Anda alih-alih pemrograman Anda. Anda harus sangat berhati-hati bagaimana Anda membuat argumen dan bahwa Anda tidak memusuhi audiens Anda. Pastikan bahwa Anda menunjukkan kelebihan .Net alih-alih menunjukkan kelemahan VB. Memperdebatkan kelemahan VB akan menempatkan rekan kerja Anda pada posisi di mana mereka perlu mempertahankan keputusan mereka dan memaksa mereka untuk mengakui bahwa bahasa yang memiliki investasi besar adalah bahasa yang buruk. Sebagai gantinya, perlihatkan kepada mereka bagaimana pindah ke .NET akan menambah alat yang mereka miliki untuk mereka dan membuat hidup mereka lebih mudah.

Cara ideal saya untuk membuat argumen ini adalah menemukan tugas atau bagian kode yang setiap orang terus komplain dan memperbaikinya menggunakan .NET. Saya tidak terlalu terbiasa dengan VB, tapi di sini ada daftar singkat tugas-tugas menjengkelkan yang mungkin akan dibuat lebih mudah dengan menggunakan .NET daripada VB.

  • Manipulasi String
  • Parsing XML
  • Mencari / Mencocokkan / Regex
  • Matematika (bahasa yang lebih baru biasanya memiliki perpustakaan matematika yang lebih cepat dan lebih komprehensif)
  • Bangunan / desain GUI

Pilih salah satu dari tugas-tugas di atas, atau tugas lain yang khusus untuk proyek yang biasanya Anda kerjakan, dan duduklah bersama mereka dan tulislah beberapa kode, dari awal, yang menangani masalah dengan cepat dan mudah. Sebenarnya menunjukkan proses penulisan kode akan memamerkan alat-alat yang membawa versi VS yang lebih baru ke meja dan memberikan bukti bahwa pindah ke .NET tidak akan membuat hidup siapa pun lebih sulit.

Menuju hal ini, Anda benar-benar, secara positif harus melakukan pekerjaan rumah Anda. Jika Anda tidak yakin bagaimana alat bekerja, atau memiliki kode yang tidak berfungsi dengan benar, Anda tidak akan pernah bisa memenangkannya ke pihak Anda.

TwentyMiles
sumber
0

Hal pertama yang Anda katakan adalah bahwa VB6 tidak lagi didukung oleh Microsoft. Meskipun Anda dapat tetap menjalankannya, Anda harus memahami bahwa opsinya dalam jangka panjang adalah nihil. Saya bahkan tidak tahu apakah aplikasi VB6 akan berjalan di Windows8, atau apakah IDE itu sendiri akan berjalan di Win8.

Jadi, Anda secara efektif harus menulis ulang pada akhirnya, dan jika itu masalahnya, Anda sebaiknya mulai sekarang daripada nanti, memberi Anda banyak waktu untuk mencari tahu teknologi baru mana yang ingin Anda gunakan (sementara VB.NET terdengar ideal, ini adalah kesempatan Anda untuk mencoba sesuatu yang lebih canggih, seperti membuat aplikasi berfungsi pada iPad).

Dalam jangka pendek, Anda dapat mengurangi sedikit masalah dengan memperkenalkan bagian baru sebagai komponen COM untuk dikonsumsi oleh aplikasi, semoga komponen ini akan tetap ada ketika penulisan ulang yang tidak terhindarkan terjadi.

Saya tidak akan repot-repot dengan argumen teknis mengapa. NET lebih baik daripada VB6. Anda akan sampai pada argumen yang kalah di sana, teknologi itu sendiri tidak pernah menyelesaikan masalah. Terserah Anda bagaimana Anda menerapkan teknologi itu, dan jika aplikasi VB6 menyelesaikan masalah untuk Anda, tidak ada argumen untuk dijawab. Anda dapat berbicara tentang kemudahan perawatan, atau ketersediaan staf yang berpengalaman, tetapi begitu Anda mengakui bahwa staf Anda yang ada tidak memiliki keahlian dalam teknologi baru dan harus dilatih, dan kemudian mengambil waktu untuk sepenuhnya mencapai kecepatan. dengan itu. Anda juga harus menjawab pertanyaan tentang bagaimana banyak penulisan ulang berakhir lebih buruk daripada proyek asli (kadang-kadang karena kurangnya keahlian, kadang-kadang karena desain yang terlalu besar).

gbjbaanb
sumber
MS akan mendukung VB6 pada PC Intel / AMD yang menjalankan Windows 8. Anda tidak dapat menulis aplikasi Metro di VB6, tetapi Anda juga tidak dapat menulis aplikasi Metro di .NET. Keduanya dibangun di atas Win32. Setidaknya kode yang ditulis dalam C # untuk .NET seharusnya lebih mudah untuk port ke WinRT untuk dijalankan di Metro, tetapi jangan mengandalkannya sebagai pembangunan kembali yang sederhana.
Scott Whitlock
0

Beri dia analogi "mobil lama baru vs mobil":

Ya, keduanya mungkin akan membawa Anda ke tujuan. Namun mobil baru tidak perlu engkol , tidak perlu tersedak , tidak perlu peta , rodanya tidak mengunci ketika Anda mengerem tajam, dan akhirnya Anda jauh lebih mungkin berjalan jauh dari kecelakaan mobil .

  • VB6 adalah warisan, itu adalah COBOL baru
  • .NET memiliki kerangka kerja yang lebih baik
  • .NET memiliki perkakas yang lebih baik
  • .NET memiliki kinerja yang lebih baik
  • .NET memiliki IDE yang lebih baik
  • .NET memiliki dukungan bahasa yang lebih baik
  • .NET memiliki fitur yang lebih baik
  • .NET memiliki dukungan komunitas yang lebih baik
Malam gelap
sumber
7
Analogi mobil biasanya gagal, dan analogi Anda tidak berbeda. Suatu hal yang mobil tua memiliki bahwa mobil baru tidak adalah yang dibayar! Jika Anda memiliki taksi dan dibayar dan itu membuat Anda lebih banyak uang daripada biaya pemeliharaan, dan sebuah mobil baru akan dikenakan biaya lebih banyak uang untuk membayar daripada yang dibuat yang lebih suka Anda miliki sebagai orang bisnis?
2
@JarrodRoberson Sudah dibayar, tetapi mereka cenderung melakukan rem down lebih sering, dan setelah beberapa saat tidak lagi berfungsi. Analogi mobil itu bagus. :)
Steven Jeuris
1
Sebenarnya analogi mobil ini bagus. Bos OP membuat taksi itu berjalan dan OP harus mempertimbangkan itu ketika mendekatinya. Pergantian penuh tidak dapat terjadi lebih dari sehari, tetapi mari kita mulai memindahkan bit, mengubah potongan, satu demi satu.
ZJR
1
Pemilik bisnis merancang dan membangunnya sendiri. Kemungkinan besar telah membayar sendiri berkali-kali, dan pemeliharaan untuk semua maksud dan tujuan gratis karena hanya ada 3 pengembang dan dia adalah salah satunya. Seperti yang saya katakan, analogi mobil itu mengerikan, yang ini terutama terjadi dan Anda membuat poin saya untuk saya dengan argumen Anda yang benar-benar keluar dari bisnis yang bijaksana. Perangkat lunak baru paling-paling akan menjadikannya tahun laba yang jauh lebih kecil dari tahun ke tahun dan kehilangan uangnya untuk periode waktu yang paling tidak pasti.
2
Aplikasi tidak memiliki entropi keausan seperti halnya benda fisik, mereka juga tidak mengalami atrofi secara alami, sehingga mereka tidak aus , juga tidak terurai tanpa menggunakan analogi dengan barang fisik, terutama mobil yang tidak berlaku. Sebuah aplikasi akan berjalan selamanya selama melayani tujuannya. Satu perusahaan tempat saya bekerja beberapa tahun yang lalu memiliki mesin berbasis MS-DOS tua yang mengendalikan pembaca kartu di pintu. Gagasan bahwa perangkat lunak usang adalah konyol. Oleh karena itu, rencana akhir kehidupan yang baik harus selalu ada. Bahkan jika rencana itu adalah untuk tidak pernah menulis ulang perangkat lunak.
0

Pertama saya pikir Anda harus mengubah pertanyaan (bukan pada stackexchange tetapi dalam perusahaan Anda). Ini tidak begitu banyak mengapa. Net lebih baik dari VB6, tetapi lebih seperti karena VB6 tidak lagi didukung sekarang saatnya untuk pindah, tetapi untuk apa. Tanyakan kepada para pemangku kepentingan seperti apa seharusnya teknologi 'baru' itu? Mungkin bukan .Net.

Tapi sepertinya Anda perlu pindah ke teknologi baru DAN mendapatkan beberapa pola dan praktik pemrograman yang baik. Jawaban untuk bagian kedua jauh lebih sulit. Anda mungkin harus melakukannya di bagian kecil aplikasi dan membuktikannya layak sementara, itu lebih stabil, lebih mudah dirawat, dll.

fader gelap
sumber
-1

Beri tahu atasan Anda untuk menulis dua iklan yang diinginkan. Satu untuk pengembang C #. Satu untuk ahli VB6. Letakkan mereka di sana. Bandingkan hasil.

Erik Reppen
sumber