Aplikasi yang sangat luas dimulai sebagai sistem berbasis akses (untuk penyimpanan basis data). Formulir ditulis dalam VB5 dan / atau VB6. Ketika .Net menjadi perlengkapan di komunitas pengembangan, modul-modul tertentu telah ditulis ulang. Ini tampaknya sangat canggung dan berpotensi mahal hanya untuk mempertahankan karena teknologi silang dan kerja ekstra untuk membuat kedua teknologi senang satu sama lain. Tentu saja, aplikasi ini menggunakan campuran ODBC OleDb dan MySql.
Apakah Anda berpikir menghabiskan waktu dan sumber daya untuk sepenuhnya mengembangkan kembali aplikasi di bawah. Net akan lebih hemat biaya? Dalam upaya mengembangkan aplikasi yang lebih stabil, tidakkah masuk akal untuk menggunakan .Net? Atau terus mengejar bug Access, menambahkan fitur baru di .Net (yang mungkin atau mungkin tidak membuat bug baru antara .Net dan Access), dan menulis ulang modul Access lama ke dalam modul .Net di bawah batasan waktu yang mencegah desain dan pengembangan yang tepat?
Perbarui Aplikasi menggunakan OleDb dan MySql - Saya mengoreksi pernyataan saya sebelumnya.
Juga, untuk memberikan dukungan lebih lanjut untuk penulisan ulang: Saya telah menemukan bahwa ketika "porting" ke Net dimulai, kode VBA / VB6 yang ada pada dasarnya diterjemahkan ke dalam ekuivalen. Net. Dari pemahaman saya, tidak ada yang dilakukan untuk meningkatkan kinerja, atau memanfaatkan perpustakaan atau teknologi baru.
Menurut pendapat saya, ini menciptakan aplikasi yang sangat rapuh dan tidak stabil. Dengan setiap pembaruan baru, ini menjadi lebih dan lebih terlihat. Sebagai teknisi help desk, saya perhatikan ada peningkatan masalah yang dilaporkan. Pelanggan yang menggunakan perangkat lunak telah memperhatikan peningkatan masalah dan mengomentarinya.
sumber
Jawaban:
Banyak orang tidak ingin menulis ulang aplikasi dari awal dan kadang-kadang saya setuju dengan alasannya. Tetapi sebagian besar waktu saya menemukan menulis ulang aplikasi solusi yang paling tidak menyakitkan dan apa pun yang ditulis dalam Access harus porting ke .NET - PERIODE. Jangan salah paham, Access memiliki tempatnya dan dapat menyediakan banyak fungsionalitas bagi organisasi, tetapi jika itu berubah menjadi aplikasi lengkap yang diandalkan orang-orang maka itu sudah keluar dari Access.
Mungkin tidak akan butuh banyak waktu untuk port VBA yang ada ke. NET dalam konversi satu untuk satu. Tapi itu mungkin bukan solusi yang bagus jika VBA tidak terlalu bagus untuk memulai. Desain ulang / penulisan ulang akan membutuhkan waktu lebih lama untuk ditulis tetapi dalam jangka panjang akan lebih mudah untuk dipertahankan.
Saya hampir selalu di kamp menulis ulang dari awal di mana Access yang bersangkutan dan tidak pernah menyesalinya sekali pun.
sumber
Saya setuju dengan pendekatan refactoring. Sangat mungkin bahwa ini akan menjadi proses yang lambat yang mungkin membutuhkan waktu berbulan-bulan untuk diselesaikan, tetapi dengan memindahkan satu fitur / bagian pada suatu waktu memiliki keuntungan besar termasuk:
Semoga berhasil
sumber
Biasanya merupakan praktik yang tidak disarankan untuk "menulis ulang" aplikasi dari awal (yang merupakan dorongan normal yang dirasakan oleh sebagian besar programmer setidaknya beberapa kali dalam hidup mereka) karena Anda akan pergi dari aplikasi dengan set fitur yang dikenal (dan bug yang dikenal juga!) ke aplikasi dengan kemungkinan set fitur yang lebih rendah dan yang lebih penting - bug yang tidak dikenal. Pengguna bisa frustrasi, dll.
Anda mungkin akan lebih baik jika Anda perlahan-lahan refactored aplikasi Anda selama periode waktu tertentu, sehingga berevolusi arsitektur itu selama periode waktu yang lebih lama.
sumber
Tantangan besar yang saya alami dengan penulisan ulang skala itu adalah harus mempertahankan dua basis kode pada saat yang sama. Jika Anda memperbaiki bug di sistem lawas, Anda harus memastikan fungsionalitas berfungsi dengan benar di sistem yang baru, dan sebaliknya. Memutakhirkan satu modul pada satu waktu meminimalkan sakit kepala pemeliharaan itu.
Rangkaian uji regresi lengkap yang berjalan pada sistem warisan dan penggantian juga akan membantu.
sumber
Saya setuju dengan Jas, jangan menulis ulang aplikasi hanya untuk menulis ulang. Mereka mungkin tidak perlu didebug atau ditingkatkan, jadi mengapa membuang-buang waktu? Namun, jika Anda merasa ada perubahan dalam keahlian dari pengembang baru Anda yang disewa dari Access ke .NET, Anda mungkin harus bermigrasi sebelum terlambat. Tampaknya tidak mungkin, tetapi pertimbangan yang mungkin.
Meskipun mungkin tidak menguntungkan dari sudut pandang pengembangan, bagaimana perbedaan aplikasi yang tersebar di sekitar mempengaruhi pengguna? Apakah ini membutuhkan lebih banyak pelatihan pengguna? Apakah mereka membuat lebih banyak kesalahan. Apakah ini meningkatkan jumlah panggilan dukungan karena mereka tidak dapat menemukan sesuatu?
sumber
"Apakah Anda pikir menghabiskan waktu dan sumber daya untuk sepenuhnya mengembangkan kembali aplikasi di bawah. Net akan lebih hemat biaya?"
Ini bukan pertanyaan yang bisa dijawab di sini.
Dari atas piramida persyaratan: seseorang membuat keputusan yang dia harap dapat dibenarkan dengan rencana bisnis. Dalam rencana bisnis itu harus menyatakan berapa jam + biaya tambahan yang diperlukan untuk mengkonversi aplikasi dan dalam rencana bisnis yang sama manfaatnya dinyatakan juga dalam hal uang.
Itulah cara untuk melakukannya. Jika tidak ada rencana bisnis untuk itu. maka jawabannya adalah untuk pertama bekerja pada rencana bisnis yang dapat dilacak ke beberapa kasus penggunaan tingkat tinggi untuk membuat analisis dampak untuk memverifikasi awal proyek.
Jika pendorong asli dari tujuan bisnis yang mengarah pada perubahan bahkan tidak didasarkan pada uang maka orang ini mungkin adalah orang yang membayar semuanya sehingga harus dilakukan.
Jika tidak ada rencana bisnis tetapi "sudah selesai" maka cobalah untuk membuat dan menyajikannya kepada manajemen tingkat atas. Termasuk kasus penggunaan tingkat tinggi, biaya, jam untuk mendesain ulang, membangun, biaya tambahan untuk operasi, pelatihan baru untuk admin dan pengguna akhir, manajemen proyek dan risiko potensial.
IMHO ini bukan pertanyaan teknis.
sumber