13-10-2022, Saat: 08:15
Merhabalar arkadaşlar,
bugün bana gelen bir soru üzerine bu yazıyı paylaşmaya karar verdim. Söz verdiğim gibi TMS ile ilgili bir video da gelecek. Ama bu sorunun cevabını video ile veremezdim. Özetle "PHP, ASP, ASP.NET veya JSP dururken neden Delphi ile web yazıyorsunuz şaşırıyorum" demiş bir arkadaşımız. Cevap biraz uzun olacak, kusura bakmayın.
İlk web sitemi ve basit web uygulamalarımı PHP ile yapmaya başladım. Sonrasında windows sunucu kullanımının yoğun olması ve IIS gibi imkanlar neticesinde klasik ASP kullanmaya başladım. Bahsettiğim yıllar 1993-1995 arası. Klasik ASP ile geliştirilmesi 2 yıl süren çok güzel kurumsal bir uygulama yaptık, bir çok firmaya da sattık. Uzun süre de kullanıldı. Değişen teknolojilere ve isteklere ayak uydurabilmek için bazı şeyleri ActiveX (OCX) ile çözüp ASP projemizde kullandık. Fakat sürekli değişen müşteri ihtiyaçları ve talepleri bizi sürekli zorlamaya devam etti.
Tam da bu istekleri nasıl yaparız nasıl ederiz diye düşünürken çok sevgili ! Microsoft, ASP.NET'i duyurdu. Bir baktık, klasik ASP ile elimizi kolumuzu bağlayan çoğu şey ASP.NET ile mümkün hale gelmiş, OOP desteği, harici bileşen kullanabilme vb. sayısız yeni özellik bizi cezbetti ve hadi dedik ASP.NET'e geçelim. Eeee, tabi klasik bir Microsoft hali, ASP projemizi ASP.NET'e çevirme imkanı yok! neymiş efendim, teknolojisi, altyapısı farklıymış, doğrudan bir güncelleme mümkün değilmiş...
Tamam dedik, oturduk, ASP.NET 1.1 sürümü ile projemizi SIFIRDAN tekrar yazdık. İyi, hoş, beğendik, eski kodları yenisine göre çevirmek için biraz zaman harcadık, bize 4-5 aya maloldu ama ortaya ASP.NET 1.1 ile yepyeni bir sürüm çıkardık.
Çok uzatmadan şöyle bir ayrıntıya da yer vereyim, projemizin gelişme sürecinde ASP.NET 1.1 sürümünden 3.5'e geçerken de göbeğimiz çatladı, neredeyse projeyi sıfırdan yazdık gibi oldu. Bu da şu demek; aynı teknolojinin farklı versiyonları arasında bile geçişte sorun yaşadık. Haftalarca geçiş için uğraştık.
Ama şöyle bir durum olmaya başladı, müşterilerimiz dediler ki "yahu, eski versiyon çok güzeldi, çok hızlıydı bu çok yavaş çalışıyor". Evet, ASP çok hızlıydı ama ASP.NET 'te bir o kadar hantal çalışıyordu. ViewState mekanizmaları vb. yüzünden asp.net sayfaları iş yükü yoğun sayfalarda performans sorunları yaşatıyordu. Bin pişman olduk ama bir süre de böyle idare ettik.
Çok uzatmayacağım, şöyle kısa kısa geçeyim. Sonra Microsoft ASP.NET MVC 'yi çıkardı. ASP'den ASP.NET'e geçişte "şöyle iyi, böyle iyi" dedikleri ASP.NET'e kendi ağızları ile " eski asp.net çok yavaştı, biz de hem daha düzenli geliştirme imkanı sağlayan hem de performans artışı getiren MVC'yi sunuyoruz" dediler.
E tabi, ASP.NET projesini ASP.NET MVC'ye taşıma yine YOK ! Oturacaksın yeniden yazacaksın !
Şimdilerde ASP.NET CORE çıkardılar, MVC'den CORE'a doğrudan proje çevrimi yine YOK! kullandıiğın componentler tamamen uyumsuz, sözde platform bağımsız olduğu için çoğu özellik ve kod kullanımları ya tamamen kaldırılmış ya da kullanım şekli değişmiş.
Yani demem o ki, Microsoft teknolojileri ile yaptığımız her işte gün geldi yarı yolda bırakıldık. Bir teknoloji sunuyorlar, oturuyorsun onunla projeler yapıyorsun, sonra bir bakmışsın "artık yok" diyorlar. Silverlight ile de proje yapıyorduk, şimdi nerede silverlight? Yerine bir alternatif de sunmadılar, Silverligt projemiz elimizde patladı.
Buraya kadar yazdıklarımın türkçe meali : Microsoft'un ipiyle kuyuya inilmez...
Delphi ile ilk web uygulamamızı IntraWEB ile yaptık. Hem form tasarımındaki özgürlükler, hem native bir exe dosyası olması, IIS gerektirmemesi vb. bir sürü güzelliği ile bir süre IntraWEB ile devam ettik. Delphi'nin güzelliği şu, Microsoft'un aksine, Delphi'nin eski sürümlerinde yaptığın bir projeyi yeni sürümlerde de sorunsuz açıp derleyebiliyorsun. IntraWEB 12 ile başladığımız yolculukta 14 sürümüne kadar sorunsuz olarak geldik. TMS'nin Intaweb bileşenleri ve CGDEVTOOLS'un JQuery kitaplıklarını kullanmamıza rağmen sıfır problemle versiyon geçişlerimiz oldu. Hala da kullanılmaya devam eden projelerimiz var.
Sonrasında UniGui'ye geçtik. Intraweb'e kıyasla görsel açıdan çok daha iyi olan unigui'yi hala kullanmaya devam ediyoruz. ilk kullanmaya başladığımız daha birinci sürüm bile çıkmamıştı. 0.9'lu sürümlerden şu anda 1.90 sürümüne kadar SIFIR PROBLEM ile geldik. Takıldığımız yerler muhakkak oldu, ama çok kısa sürelerde hallettik.
Hem IntraWEB'te hemde UniGui'de ister IIS üzerinde DLL yayınlama isterseniz de EXE dosyası olarak dağıtma imkanı var. Bir ana bilgisayara dosyaları attıktan sonra rahatlıkla kullanabiliyorsunuz. Fakat daha ileri projelerde, mesela hosting kullanılması gereken durumlar da oluyor ve hosting şirketine IIS üzerine şu DLL'i ekleyiverin diyemiyorsunuz. Ya bir sanal sunucu kiralamanız ve dosyaları oraya atmanız ya da kendi şirketinizde bulunan sunucuya DNS servisleri kurup web sitenizi oraya yönlendirmek gerekiyor. Yani hosting üzerinde bu projeleri yayınlamak baya bir sıkıntıydı. Ta ki TMS Web Core çıkana kadar. Onlarca formdan oluşan bir proje yapıyoruz, bir sürü component kullanıyoruz, ortaya her platformda sorunsuz olarak çalışabilen HTML5+CSS3 çıkıyor. Böylece hosting sorunumuz da kalmadı. Şu anda projelerimizin %90'ını TMS ile %10'unu da unigui ile yapıyoruz. Şu anda tüm Türkiye'den yüzbinlerce kişinin üye olduğu koskoca uygulamalarımızın arkasında Delphi var.
Microsoft'un sürekli değişen, değiştikçe eskiye uyumsuz hale gelen, bazen tamamen ortadan kaldırılan teknolojileri ile uğraşmak yerine Delphi kullanmaya karar verdiğimiz günden bu yana o kadar rahat çalışıyoruz ki anlatamam. Yöneticimizin " bir deneyelim bakalım, hele sen bir proje yap görelim" dediği Delphi, şu anda şirkette çalışan herkesin bilgisayarında ve herkes Delphi ile yazıyor.
Intraweb'ten TMS Web Core'a kadar Delphi ile web geliştirme yolculuğumuzda o kadar konforlu çalışıyoruz ve hızlı çözümler üretebiliyoruz ki bu deneyime hakikaten paha biçilemez. Özellikle TMS Web Core'a eklenen TMS FNC bileşen paketleri neredeyse bizim her ihtiyacımızı karşılıyor.
Microsoft teknolojileri ile ne kadar çok sorun yaşıyorsak, Delphi ile de bir o kadar rahatız. "Rahatlık" kelimesini bütün gün kod yazan arkadaşlarımız daha iyi anlarlar. "Runtime Paketi" kurmadan bir projeyi dağıtabilmek büyük özgürlük. IIS Kur, .Net Framework kur, .config dosyaları ayarla vb. gibi dertler yok. Hatırlıyorum, bir büyük şirkette IT ekibi sunucu üzerindeki IIS üzerinde .config dosyalarına müdahale etmemize izin vermemişlerdi, yıllardır sorunsuz çalışan uygulamalarını bozmamak için. "IIS'e dokunmayın da ne yaparsanız yapın" demişlerdi. Biz de mecburen başka bir sunucuya kurulum yapmıştık. Delphi'de böyle sorunlarımız hiç olmadı.
İşte bu yüzden web geliştirmede Delphi kullanıyoruz. Sanırım soruyu soran arkadaşımız için yeterli bir cevap olmuştur. Tabi bu .NET veya C# öğrenmeyin demek değil, öğrenin, kullanın, kendinizi geliştirin, sonuçta piyasada (maalesef) hala en aranan şeyler bunlar. Delphi'nin hala bir pazarlama sorunu çektiğini düşünüyorum, insanların aklı hala Delphi 7'de kalmış. Delphi ile yazıyorum dediğinde öcü görmüş gibi bakıyorlar. BTG'nin seminerler, toplantılar vb. yapması lazım. Bir dönem yapıyorlardı, hatta RAd Studio XE2'nin tanıtımına ben de gitmiştim bir otele. Ama o son gidişim oldu. Bir daha hiç böyle bir şey yapmadılar.
Buraya kadar okuyan herkese teşekkürlerimi sunuyorum.
Sevgiler, selamlar.
bugün bana gelen bir soru üzerine bu yazıyı paylaşmaya karar verdim. Söz verdiğim gibi TMS ile ilgili bir video da gelecek. Ama bu sorunun cevabını video ile veremezdim. Özetle "PHP, ASP, ASP.NET veya JSP dururken neden Delphi ile web yazıyorsunuz şaşırıyorum" demiş bir arkadaşımız. Cevap biraz uzun olacak, kusura bakmayın.
İlk web sitemi ve basit web uygulamalarımı PHP ile yapmaya başladım. Sonrasında windows sunucu kullanımının yoğun olması ve IIS gibi imkanlar neticesinde klasik ASP kullanmaya başladım. Bahsettiğim yıllar 1993-1995 arası. Klasik ASP ile geliştirilmesi 2 yıl süren çok güzel kurumsal bir uygulama yaptık, bir çok firmaya da sattık. Uzun süre de kullanıldı. Değişen teknolojilere ve isteklere ayak uydurabilmek için bazı şeyleri ActiveX (OCX) ile çözüp ASP projemizde kullandık. Fakat sürekli değişen müşteri ihtiyaçları ve talepleri bizi sürekli zorlamaya devam etti.
Tam da bu istekleri nasıl yaparız nasıl ederiz diye düşünürken çok sevgili ! Microsoft, ASP.NET'i duyurdu. Bir baktık, klasik ASP ile elimizi kolumuzu bağlayan çoğu şey ASP.NET ile mümkün hale gelmiş, OOP desteği, harici bileşen kullanabilme vb. sayısız yeni özellik bizi cezbetti ve hadi dedik ASP.NET'e geçelim. Eeee, tabi klasik bir Microsoft hali, ASP projemizi ASP.NET'e çevirme imkanı yok! neymiş efendim, teknolojisi, altyapısı farklıymış, doğrudan bir güncelleme mümkün değilmiş...
Tamam dedik, oturduk, ASP.NET 1.1 sürümü ile projemizi SIFIRDAN tekrar yazdık. İyi, hoş, beğendik, eski kodları yenisine göre çevirmek için biraz zaman harcadık, bize 4-5 aya maloldu ama ortaya ASP.NET 1.1 ile yepyeni bir sürüm çıkardık.
Çok uzatmadan şöyle bir ayrıntıya da yer vereyim, projemizin gelişme sürecinde ASP.NET 1.1 sürümünden 3.5'e geçerken de göbeğimiz çatladı, neredeyse projeyi sıfırdan yazdık gibi oldu. Bu da şu demek; aynı teknolojinin farklı versiyonları arasında bile geçişte sorun yaşadık. Haftalarca geçiş için uğraştık.
Ama şöyle bir durum olmaya başladı, müşterilerimiz dediler ki "yahu, eski versiyon çok güzeldi, çok hızlıydı bu çok yavaş çalışıyor". Evet, ASP çok hızlıydı ama ASP.NET 'te bir o kadar hantal çalışıyordu. ViewState mekanizmaları vb. yüzünden asp.net sayfaları iş yükü yoğun sayfalarda performans sorunları yaşatıyordu. Bin pişman olduk ama bir süre de böyle idare ettik.
Çok uzatmayacağım, şöyle kısa kısa geçeyim. Sonra Microsoft ASP.NET MVC 'yi çıkardı. ASP'den ASP.NET'e geçişte "şöyle iyi, böyle iyi" dedikleri ASP.NET'e kendi ağızları ile " eski asp.net çok yavaştı, biz de hem daha düzenli geliştirme imkanı sağlayan hem de performans artışı getiren MVC'yi sunuyoruz" dediler.
E tabi, ASP.NET projesini ASP.NET MVC'ye taşıma yine YOK ! Oturacaksın yeniden yazacaksın !
Şimdilerde ASP.NET CORE çıkardılar, MVC'den CORE'a doğrudan proje çevrimi yine YOK! kullandıiğın componentler tamamen uyumsuz, sözde platform bağımsız olduğu için çoğu özellik ve kod kullanımları ya tamamen kaldırılmış ya da kullanım şekli değişmiş.
Yani demem o ki, Microsoft teknolojileri ile yaptığımız her işte gün geldi yarı yolda bırakıldık. Bir teknoloji sunuyorlar, oturuyorsun onunla projeler yapıyorsun, sonra bir bakmışsın "artık yok" diyorlar. Silverlight ile de proje yapıyorduk, şimdi nerede silverlight? Yerine bir alternatif de sunmadılar, Silverligt projemiz elimizde patladı.
Buraya kadar yazdıklarımın türkçe meali : Microsoft'un ipiyle kuyuya inilmez...
Delphi ile ilk web uygulamamızı IntraWEB ile yaptık. Hem form tasarımındaki özgürlükler, hem native bir exe dosyası olması, IIS gerektirmemesi vb. bir sürü güzelliği ile bir süre IntraWEB ile devam ettik. Delphi'nin güzelliği şu, Microsoft'un aksine, Delphi'nin eski sürümlerinde yaptığın bir projeyi yeni sürümlerde de sorunsuz açıp derleyebiliyorsun. IntraWEB 12 ile başladığımız yolculukta 14 sürümüne kadar sorunsuz olarak geldik. TMS'nin Intaweb bileşenleri ve CGDEVTOOLS'un JQuery kitaplıklarını kullanmamıza rağmen sıfır problemle versiyon geçişlerimiz oldu. Hala da kullanılmaya devam eden projelerimiz var.
Sonrasında UniGui'ye geçtik. Intraweb'e kıyasla görsel açıdan çok daha iyi olan unigui'yi hala kullanmaya devam ediyoruz. ilk kullanmaya başladığımız daha birinci sürüm bile çıkmamıştı. 0.9'lu sürümlerden şu anda 1.90 sürümüne kadar SIFIR PROBLEM ile geldik. Takıldığımız yerler muhakkak oldu, ama çok kısa sürelerde hallettik.
Hem IntraWEB'te hemde UniGui'de ister IIS üzerinde DLL yayınlama isterseniz de EXE dosyası olarak dağıtma imkanı var. Bir ana bilgisayara dosyaları attıktan sonra rahatlıkla kullanabiliyorsunuz. Fakat daha ileri projelerde, mesela hosting kullanılması gereken durumlar da oluyor ve hosting şirketine IIS üzerine şu DLL'i ekleyiverin diyemiyorsunuz. Ya bir sanal sunucu kiralamanız ve dosyaları oraya atmanız ya da kendi şirketinizde bulunan sunucuya DNS servisleri kurup web sitenizi oraya yönlendirmek gerekiyor. Yani hosting üzerinde bu projeleri yayınlamak baya bir sıkıntıydı. Ta ki TMS Web Core çıkana kadar. Onlarca formdan oluşan bir proje yapıyoruz, bir sürü component kullanıyoruz, ortaya her platformda sorunsuz olarak çalışabilen HTML5+CSS3 çıkıyor. Böylece hosting sorunumuz da kalmadı. Şu anda projelerimizin %90'ını TMS ile %10'unu da unigui ile yapıyoruz. Şu anda tüm Türkiye'den yüzbinlerce kişinin üye olduğu koskoca uygulamalarımızın arkasında Delphi var.
Microsoft'un sürekli değişen, değiştikçe eskiye uyumsuz hale gelen, bazen tamamen ortadan kaldırılan teknolojileri ile uğraşmak yerine Delphi kullanmaya karar verdiğimiz günden bu yana o kadar rahat çalışıyoruz ki anlatamam. Yöneticimizin " bir deneyelim bakalım, hele sen bir proje yap görelim" dediği Delphi, şu anda şirkette çalışan herkesin bilgisayarında ve herkes Delphi ile yazıyor.
Intraweb'ten TMS Web Core'a kadar Delphi ile web geliştirme yolculuğumuzda o kadar konforlu çalışıyoruz ve hızlı çözümler üretebiliyoruz ki bu deneyime hakikaten paha biçilemez. Özellikle TMS Web Core'a eklenen TMS FNC bileşen paketleri neredeyse bizim her ihtiyacımızı karşılıyor.
Microsoft teknolojileri ile ne kadar çok sorun yaşıyorsak, Delphi ile de bir o kadar rahatız. "Rahatlık" kelimesini bütün gün kod yazan arkadaşlarımız daha iyi anlarlar. "Runtime Paketi" kurmadan bir projeyi dağıtabilmek büyük özgürlük. IIS Kur, .Net Framework kur, .config dosyaları ayarla vb. gibi dertler yok. Hatırlıyorum, bir büyük şirkette IT ekibi sunucu üzerindeki IIS üzerinde .config dosyalarına müdahale etmemize izin vermemişlerdi, yıllardır sorunsuz çalışan uygulamalarını bozmamak için. "IIS'e dokunmayın da ne yaparsanız yapın" demişlerdi. Biz de mecburen başka bir sunucuya kurulum yapmıştık. Delphi'de böyle sorunlarımız hiç olmadı.
İşte bu yüzden web geliştirmede Delphi kullanıyoruz. Sanırım soruyu soran arkadaşımız için yeterli bir cevap olmuştur. Tabi bu .NET veya C# öğrenmeyin demek değil, öğrenin, kullanın, kendinizi geliştirin, sonuçta piyasada (maalesef) hala en aranan şeyler bunlar. Delphi'nin hala bir pazarlama sorunu çektiğini düşünüyorum, insanların aklı hala Delphi 7'de kalmış. Delphi ile yazıyorum dediğinde öcü görmüş gibi bakıyorlar. BTG'nin seminerler, toplantılar vb. yapması lazım. Bir dönem yapıyorlardı, hatta RAd Studio XE2'nin tanıtımına ben de gitmiştim bir otele. Ama o son gidişim oldu. Bir daha hiç böyle bir şey yapmadılar.
Buraya kadar okuyan herkese teşekkürlerimi sunuyorum.
Sevgiler, selamlar.