Çalıştığım şirket C ++ Builder 6 kullanıyor. Tasarımdan beri yerel kod geliştiriyoruz. Amiral gemisi ürünümüz tamamen yerel kod ile yazılmıştır.
.NET Framework'e çan ve ıslıklarıyla girer. Düşüyorum, oltayı, ipi ve kurşunu. Yönetimi, .NET'in tüm yeni yazılım geliştirme için kesinlikle yeni çerçevemiz olması gerektiğine ve mevcut kod hattımızı en kısa sürede taşımaya başlamamız gerektiğine ikna ediyorum. Tüm faydaları ile ikna edici olmuyor. Teklifimi her zamanki gibi kabul ediyorlar.
Bu noktada ilk .NET uygulamamı geliştirmeye başladım. Her şey planlandığı gibi gidiyor. Proje, ürünümüzün sadece bir bileşenidir. Ve böylece bu yeni bileşen için bir yükleyici oluşturma noktasına geldim. Şirket olarak, kullanıcı için işleri olabildiğince kolaylaştırmaktan gurur duyuyoruz. Binlerce geliştiriciye sahip Microsoft bile bizim yaptığımız gibi yükleyiciler oluşturmuyor. Örneğin, Microsoft CRM'yi kurduğunuzda, yalnızca devam etmeden önce yüklenmesi gereken arızaların ve ön koşulların bir listesini alırsınız. Biz değil. Asla. Bir şeye ihtiyacınız olursa, sizin için kuracağız.
Bu, kurulumlarımızı çok kolay hissettiriyor. .NET Framework yüklü değil mi? Sorun değil! Bunu sizin için yapacağız. SQL Native istemcisine mi ihtiyacınız var? İnce!
Sorun şu ki, çözümümüzün tek bir bileşeni .NET ile yazıldığı için kurulum sürecini inanılmaz derecede karmaşık hale getiriyor. Ürünümüzü kurmaya bile başlamadan önce aşağıdakileri yapmam gerekiyor:
Ön koşulun yüklü olup olmadığını tespit edin
Değilse kurun
Başarıyla kurulduğunu doğrulayın
Sonraki ön koşul
.NET Framework'ü yüklemek için önce Windows Installer 4.5'e ihtiyacım var. Ancak farklı işletim sistemleri için farklı sürümler var, bu yüzden işletim sistemi algılaması ekliyorum ve doğru EXE'yi başlatıyorum. Oh, .NET çerçevesi zaten 2k8 ile paketlenmiştir ve yükleyici exe üzerinde çalışamaz, onu kurmak için OCSetup.exe'yi parametrelerle çalıştırmanız gerekir.
Ve böylece devam ediyor. Ardından SQL Express 2005'in yüklenmesi gerekir. Bağımlılıklar bir kez daha artıyor.
Yönetimle, Microsoft'un bile bunu kullanıcı için bu kadar kolaylaştırmadığını tartışıyorum. Onların cevabı, bu şekilde onlardan daha iyi olmamamız için hiçbir neden olmamasıdır. Yaklaşımlarını benimsemelerinin çok iyi nedenleri olduğunu düşünmem dışında bununla tartışamam.
Aniden, yükleyicimiz çok büyük. NET için tüm ön koşullar, yüklenecek tamamen ayrı bir EXE aralığı olan 64 bit desteğinden bahsetmemek bile. Artık kullanıcıların "hızlı" bir değerlendirme indirebilmesini istediğimiz noktaya geldi. Ne şaka ama. 30MB'lık bir uygulamayı çalıştırmak için 500MB indirmeniz gerekiyor. Yükleme paketinin çoğu ön koşullardır.
Yönetim, çok fazla bağımlılığımız / ön koşulumuz olduğunu düşünüyor. Tamamen anladım. NET çerçevesinden uzaklaşıp, kurulum açısından işlerin hala "kolay" olduğu yerel bölgeye geri dönmemizi öneriyorlar. Bu, bir parçamın büyük resimdeki faydaları, iyileştirilmiş geliştirme deneyimini, daha kolay bakımı ve genel kod kalitesini açıklayarak .NET için ayağa kalkmak istediği yerdir. Diğer tarafım onlarla gönülden hemfikir! NET'te geliştirme, kurulumu zorlaştıran çok sayıda başka önkoşul yüklemenizi gerektirir.
Evet, bazı .NET savunucuları, her şeyin yamalı ve güncellenmiş bir işletim sistemine yüklenmesi gerektiğini iddia edeceklerdir. Bu doğru, ancak tüm müşteriler buna sahip değil ve sadece "Üzgünüm, önce güncelle" demek yeterli olmayacak. Unutmayın, genel kullanıcı deneyiminden gurur duyuyoruz.
Şimdi tekrar yerel kod yazmayı düşünüyoruz ve geliştirme hızı ve .NET'in tüm güzellikleri açısından kaybettiğimizi biliyorum. Ama büyük resme baksanız da bakmasanız da küçük olsun bu alanda kazanıyoruz. Yerel kod geliştirme becerilerine sahip olduğumuz ve .NET aslında bizim için yeni bir zemin olduğu için, geri dönmek bile mantıklı.
Sorum şu: Eğer bu bir sorun olsa bile şirketinizin bu konudaki görüşü nedir ve tüm ürünlerimizi .NET'e taşımaya devam etmek istediğimi varsayarak yönetime önerdiğim iş durumu nasıl görünecek?