Apakah Anda mendesain ulang sepenuhnya di bawah. Net?


8

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.


4
Anda perlu membuktikan kepada atasan Anda (atau siapa pun yang akan memutuskan) bahwa itu membuahkan hasil. Jika itu cukup buruk, Anda mungkin akan mendapatkan goahead. Jangan meremehkan tugas menulis ulang - Anda AKAN menghabiskan lebih banyak waktu daripada yang Anda harapkan untuk menjadikannya kualitas produksi.

1
Mengapa aplikasi menggunakan ODBC dan MySql?
kirk.burleson

Jawaban:


16

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.


Semua orang di sini memiliki jawaban yang baik dan telah memberi saya jeda untuk mempertimbangkan sudut pandang mereka. Pandangan Anda, @Walter, adalah di mana saya berada. Saya tidak menganggap VB ditulis dengan buruk dengan cara apa pun. Tapi itu VB. The toko telah menulis VB sejak awal. Saya orang baru dengan pengalaman VB.Net dan C #. Saya telah diberi kelonggaran untuk menulis dalam bahasa C #. Jadi, tentu saja, saya punya ide dan ingin menerapkannya.
IAbtract

7
+1 1M untuk "apa pun yang ditulis dalam Access harus porting ke .NET - PERIOD". Akses adalah mainan.
Steven A. Lowe

1
Saya bisa membuktikan jawaban Walters. Saya secara pribadi telah bekerja dalam sebuah proyek untuk menulis ulang layanan web C ++ kereta di C # (.Net 2.0) dan aplikasi web ASP.Net 1.1 di ASP.Net 2.0 dengan AJAX untuk bank besar Australia. Proyek ini benar-benar sukses dan kami adalah tim kecil dengan fokus 5. Dua hal yang harus saya tunjukkan. 1. Kami berkomitmen untuk mendukung masalah produksi di versi lama hingga versi baru siap tetapi tidak menambahkan fitur baru. 2. Kecuali benar-benar kritis tidak ada fitur baru yang ditambahkan ke kode ditulis ulang, hanya fitur fungsional dengan salinan fitur dengan bug diperbaiki, peningkatan kinerja dll.
softveda

1
Jika semua orang tahu VB, memilih C # daripada VB.net adalah pilihan yang buruk. Hanya karena memiliki {} tidak berarti ini yang terbaik untuk setiap solusi. VB akan lebih cocok dalam hal ini.
gbjbaanb

Dan inilah mengapa Anda tidak harus melompat ke "mari menulis ulang" - Pratik (atau penggantinya) sekarang mendukung proyek ASP.NET 2.0 / Ajax / .NET framework 2.0 kuno yang berharap mereka dapat menulis ulang dalam sesuatu yang modern, mungkin C + +11 :-)
gbjbaanb

5

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:

  1. Fitur produk dipertahankan.
  2. kemampuan untuk memberikan rilis baru dipertahankan.
  3. Tekanan waktu dihilangkan.

Semoga berhasil


Refactoring telah berlangsung selama setidaknya satu tahun dan dijadwalkan akan berlanjut selama satu atau dua tahun ke depan. Tampaknya sumber daya dapat berupa: (1) lebih baik digunakan untuk mempertahankan kondisi aplikasi saat ini dan memperbaiki bug, dan (2) mendesain aplikasi agar sepenuhnya .Net dan memigrasi fitur .Net saat ini ke dalam desain yang baru. Tampaknya, dengan inti .Net yang baik, aplikasi bisa lebih fleksibel, stabil, dan lebih toleran dalam menambahkan fitur baru.
IAbtract

Membaca pertanyaan itu, sepertinya aplikasi itu sudah porting, seperti untuk daripada daripada refactoring, yang akan melibatkan pengorganisasian kembali, perubahan, dan pengujian.
Michael Shaw

2

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.


Pengguna sudah frustrasi. Debugging .Net jauh lebih ramah dan lebih cepat daripada mencoba men-debug Access. Juga, kerangka kerja yang luas yang dibangun di atas teknologi yang, sejujurnya, tidak dimaksudkan untuk penggunaan dan fungsi yang luas seperti itu adalah bencana yang menunggu untuk terjadi - terutama, IMO, ketika Anda mulai mencoba untuk mengintegrasikan teknologi baru. Mengintegrasikan .Net ke Access sering kali berarti Anda tidak menggunakan .Net untuk potensi penuh karena keterbatasan akses.
IAbtract

1

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.


Inilah tantangannya ... apa pun yang diperbaiki di pangkalan Access harus diuji untuk kompatibilitas dengan pangkalan .Net - dan sebaliknya.
IAbstrak

Kelemahan lain dari penulisan ulang dari awal adalah bahwa pengguna tidak mendapatkan apa-apa sampai Anda selesai. Setidaknya dengan mengganti satu modul pada satu waktu, mereka memiliki kesempatan untuk melihat beberapa perbaikan segera.
Larry Coleman

0

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?


Perubahan terbesar dalam modul individu refactoring adalah cara bentuk mencari ujung depan, dan pindah ke MySql di ujung belakang. Ada beberapa perubahan fungsional kecil yang harus dilakukan pengguna. Tetapi sebagian besar, ada pelatihan ulang terlepas dari jumlah modifikasi, fitur baru, dll. Kami biasanya mengalami crash pada Access (formulir, data, dll.) Yang memaksa restart program meskipun bagian .Net masih memiliki beberapa tingkat responsif.
IAbstract

0

"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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.