Perusahaan tempat saya bekerja menggunakan C ++ Builder 6. Kami telah mengembangkan kode asli sejak konsepsi. Produk andalan kami ditulis sepenuhnya dalam kode asli.
Memasuki .NET Framework dengan lonceng dan peluitnya. Aku terjatuh, hook, line, dan sinker. Saya meyakinkan manajemen bahwa .NET benar-benar harus menjadi kerangka kerja baru kami untuk semua pengembangan perangkat lunak baru dan bahwa kami harus mulai memigrasi garis kode yang ada secepatnya. Dengan semua keuntungan itu tidak perlu banyak meyakinkan. Mereka menerima lamaran saya seperti biasa.
Pada titik ini saya mulai mengembangkan aplikasi .NET pertama saya. Semuanya berjalan sesuai rencana. Proyek hanyalah salah satu komponen dari produk kami. Jadi saya langsung membuat penginstal untuk komponen baru ini. Sebagai perusahaan kami bangga membuat segala sesuatunya untuk pengguna semudah mungkin. Bahkan Microsoft dengan ribuan pengembang tidak membuat penginstal seperti yang kami lakukan. Saat Anda menginstal Microsoft CRM misalnya, Anda hanya akan mendapatkan daftar kegagalan dan prasyarat yang perlu diinstal sebelum Anda dapat melanjutkan. Bukan kita. Tidak pernah. Jika Anda membutuhkan sesuatu, kami akan menginstalnya untuk Anda.
Ini membuat penginstalan kami terasa sangat mudah. .NETFramework tidak terpasang? Tidak masalah! Kami akan melakukannya untuk Anda. Butuh klien SQL Native? Baik!
Masalahnya adalah ini, sekarang satu komponen tunggal dari solusi kami ditulis dalam .NET, itu memperumit proses instalasi dengan luar biasa. Bahkan sebelum saya dapat menginstal produk kami, saya perlu melakukan hal berikut:
Deteksi apakah prasyarat sudah diinstal
Instal jika tidak
Verifikasi bahwa itu berhasil dipasang
Prasyarat berikutnya
Untuk menginstal .NET Framework, saya memerlukan Penginstal Windows 4.5 terlebih dahulu. Tetapi ada versi yang berbeda untuk OS yang berbeda, jadi saya menambahkan deteksi OS dan meluncurkan EXE yang benar. Oh, .NET framework sudah dikemas dengan 2k8 dan exe penginstal tidak dapat berjalan di atasnya, Anda harus menjalankan OCSetup.exe dengan parameter untuk menginstalnya.
Dan begitu seterusnya. Kemudian SQL Express 2005 perlu diinstal. Ketergantungan meningkat sekali lagi.
Saya berdebat dengan manajemen bahwa bahkan Microsoft tidak membuatnya semudah ini bagi pengguna. Tanggapan mereka adalah bahwa tidak ada alasan bagi kami untuk tidak menjadi lebih baik dari mereka dengan cara ini. Saya tidak dapat membantahnya kecuali bahwa saya merasa ada alasan yang sangat bagus mengapa mereka melakukan pendekatan.
Tiba-tiba, pemasang kami sangat besar. Semua prasyarat untuk .NET, bahkan tidak berbicara tentang dukungan 64 bit yang memiliki rentang EXE terpisah untuk diinstal. Jadi sekarang sudah sampai pada titik di mana kami ingin pengguna dapat mengunduh evaluasi "cepat". Lelucon apa. Anda perlu mengunduh 500MB untuk menjalankan aplikasi 30MB. Sebagian besar paket penginstalan adalah prasyarat.
Manajemen merasa terlalu banyak ketergantungan / prasyarat. Saya mengerti sepenuhnya. Mereka menyarankan agar kami menjauh dari kerangka .NET, kembali ke tanah asal di mana segala sesuatunya masih "mudah" dalam hal pemasangan. Di sinilah salah satu bagian dari diri saya ingin membela .NET yang menjelaskan manfaat dalam gambaran besar, pengalaman pengembangan yang ditingkatkan, pemeliharaan yang lebih mudah, dan kualitas kode secara keseluruhan. Bagian lain dari diriku setuju dengan mereka dengan sepenuh hati! Mengembangkan di .NET hanya mengharuskan Anda menginstal terlalu banyak prasyarat lain yang mempersulit penginstalan.
Ya, beberapa pendukung NET akan mengklaim bahwa semuanya harus diinstal pada sistem operasi yang ditambal dan diperbarui. Ini benar, tetapi tidak semua pelanggan memiliki ini, dan hanya mengatakan "Maaf, perbarui dulu" tidak akan cukup. Ingat, kami bangga dengan pengalaman pengguna secara keseluruhan.
Kami sekarang mempertimbangkan untuk menulis kode asli lagi dan saya tahu kami kalah dalam hal kecepatan pengembangan dan semua keunggulan .NET. Tapi kami mendapatkan di bidang ini, baik kecil jika Anda melihat gambaran besarnya atau tidak. Karena kami memiliki keterampilan pengembangan kode asli dan .NET sebenarnya adalah tempat baru bagi kami, bahkan masuk akal untuk mundur.
Pertanyaan saya adalah ini: apa pandangan perusahaan Anda tentang masalah ini jika masalah itu benar-benar menjadi masalah dan seperti apa kasus bisnis yang saya usulkan kepada manajemen dengan asumsi saya ingin terus memigrasi semua produk kami ke .NET?