DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 2 misafir, 1 mobil kullanıcı
25
Cevap
3582
Tıklama
0
Öne Çıkarma
Cevap: Yeni mezunum hangisi ASP.NET vs PHP? (2. sayfa)
G
12 yıl (781 mesaj)
Yüzbaşı

Uğraşmış cevap vermiş amatör ruhlara yön göstermişsiniz. Sağolun emeğinize sağlık.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @hdamar
M
12 yıl (134 mesaj)
Çavuş

Asp.net biliyorum ama işime yaramıyor.. Tavsiyem PHP



-
12 yıl (346 mesaj)
Teğmen

quote:

Orijinalden alıntı: hdamar

Merhaba,

Yaklaşık 10 senedir IT sektöründeyim. Bir çok büyük projede kıdemli yazılım geliştirici ve/veya proje yöneticisi olarak bulundum. Son bir kaç yıldırda CTO olarak çalışmaktayım. Şuan, yakında Türkiye içinde duyuracağımız büyük bir e-ticaret projesini yönetmekteyim. Bu süreç içerisinde Software, Network ve Security alanlarında yoğun pratik deneyim edindim.

Şimdi sorularına gelecek olursak;
* Benimde ekibimin hala bir kısmı tamamlanmış değil, eleman alımlarımız sürüyor. Peki, neden deneyimli kişileri alıyoruz?
-> IT projeleri hepinizin bildiği gibi yüksek maliyetli teknoloji yatırımlarıdır. Teknoloji etkeni işin içine girdiğinde risk seviyesini düşük tutmak mümkün değildir. İstersen milyar dolar bütçen olsun 18/19 yaşındaki bir çocuk çıkıp Facebook diye bir proje yapıyor senin sosyal network kısmın bir anda sıfırlanıyor. Sıfırlanması ile de kalmıyor, yarışabilmek için extra maliyetler çıkartıyor. Şimdi bu global çapta bir örnekti.

Türkiye şartlarında zaten IT sektörü malüm, ağır vergiler ve yüksek sahip olma maliyetleri ile en zor şekilde ilerliyor. Kimsenin open source veya yenilikçi projelere destek vermediği veya az destek verdiği bir ortamda kalkıp Facebook yapamıyorsunuz, yapsanız bile dikkate alınmıyorsunuz. Örn: Crytek firması ve Crysis. Sizce direkt USA'ya mı gitmişlerdi? Hayır, Türkiye'de ismini vermek istemediğim firmalardan red yiyince, EA Games'in yolunu tuttular. Sonuç? Dünya çapında üst sıralarda satış rakamlarına ulaştılar. Türkiye'ye faydası ne oldu? Ekonomik = 0; Teknolojik = 0; Oyun alanında; Global çapta full Türkçe bir oyunumuz oldu sadece.

Özetle; Yeni ve deneyimsiz elemanların oryantasyon süreci proje maliyetlerindeki en açık ve göze batan kalemdir. Neden? Çünkü, ölü yatırım olarak bakılır ve bu kişilerin hata yapma olasılığı yüksek olduğundan kritik iş yönetimine dahil projedeki hiç bir parçanın sorumluluğu veremez. Biz IT yöneticileri her ne kadar bu kişileri normal karşılasakta, ay sonu yöneticilere hazırlanan raporda, direkt göze batan maliyet kalemlerindendir. Yönetici tarafında bu kişiler; Ben eğitiyorum, yarın bir gün biraz eli iş tuttuğunda çekip gidebilir veya Şimdi iş versek ve hatalı yapsa, kontrol için 2. bir kıdemli kişiyi meşgul edecek. Bunu almazsam o kıdemli kişinin ona harcayacağı haftalık 15/20 saatlik çalışma süresini aktif proje süresine dahil edebilirim.

Bir bakıma da haklılar bence. Neden?
-> Çünkü; bir çok IT projesinin ilk yatırım maliyeti yüksek, uzun vadede kar getirebilecek yapıdadır. Bu da ilk sene hep finansmanın eritileceği, sonunda proje fail olursa yüksek zarar demek. Neden?
--> Çünkü; Senin projenin inovasyonu, rakiplerinin senin inavasyonunu implimente etme süresi kadardır! (BURASI ÇOK ÖNEMLİ!!!) Biraz daha açacak olursam; Sen gittin Twitter yaptı, iyi güzel. Rakiplerin sosyal medyadaki Facebook, Google+, Badoo, MySpace v.s... Şimdi sen bu projeyi çıkarttığında ilk 3/4 ay içerisinde yoğun reklam ve hızlı feedback'ler ile tutundurmalısın. Yoksa; rakiplerin senin yaptığını kendi sistemlerine entegre ederlerse, büyüme gibi bir şansın kalmıyor. Bu hızlı feedback olayıda yüksek finansman ve sağlam bir IT ekibi ile oluyor.

Şimdiye kadar bahsettiğim konuların hepsini bir bütün olarak düşünürsek, bu kadar maliyet ve risk ortamında hiç deneyimi olmayan, hata yapmaya açık ve oryantasyon süreci maliyetlerine sahip bir kişi kim işe alır?

Diğer taraftan bakarsakta; kimse işe almazsa, bu kişiler nasıl deneyim kazanacaklar?
--> Bir dilde deneyim kazanmak için evde bir proje geliştirebilirsin, gitar çalmayı öğrenmek için 10 adımda kolay gitar serisini izleyebilirsin ama büyük IT ekiplerine dahil olmak istiyorsan yapabilecek tek şeyin iyi veya kötü şartlarına bakmadan doğru firmalardan beklediğin ücretin altındada olsa deneyim kazanana kadar çalışmandır. Fakat bunu doğru ayarlamalısın, çünkü IT alanında körelme ve gerileme çok hızlıdır. Bunca yılın ardından hala her ay 500 sayfadan fazla kitap, 70'den fazla makale okumaktayım. Yani IT alanında çalışıyorsan, ömür boyu eğitim sistemini benimsemen gerek. Ben 10 sene çalıştım, 20 sene çalıştım diye bir şey yok. 50 senede çalışsan, senin çalışmaya başladığın gün ile bugün kullanılan teknolojiler bir değil ve IT alanında en çok IT yöneticilerinin yaptığı hatalardan biri; HER DURUMDA TEK BİR DOĞRU YOKTUR! Proje planı hazırlarken, hımm şu C# olsun bu Windows Mobile olsun buda SQL Server olsun diyemezsiniz. Çünkü aynı işleri yapabilen bir sürü teknoloji var. Örn: Java, Oracle, Android bunlarda bir önceki saydığımız teknolojileri gerçekleyebilir. Ama asıl hesaplanması gereken TCO dediğimiz Total Cost of Ownership yani toplam sahip olma maliyetidir. Piyasada C# bilen çok, Oracle pahallı ama Android mobile piyasada daha ağır. Dengeleri iyi hesaplamak gerek.

Neyse konuyu çok esnettik. Tekrar sorularına dönecek olursak;
ASP.NET mi PHP mi? Bana sorarsan, Linux tarafında olduğumdan, open source vizyonunu desteklediğimden ve daha bir çok nedenden PHP diyeceğim. FAKAT Şu Konuyu iyi anlayalım; bu soru yıllardır her geek ortamında tartışılır. Burada asıl olan dilin gücündende öte, teknolojinin support network'nün geniş olmasıdır.

PHP tarafından bakalım;
Gerçekçi olursak milyonlarca veya yüzbinlerce falan geliştiricisi yok. PHP'nin SVN'ne commit eden toplasan 100 kişi civarındadır. PHP'yi kullanan kişilerden bahsetmiyorum, dili geliştiren kişileri kast ediyorum. Destekleyen kaç tane firma var? Zend Corp. ve Ez.NO System var. Türkiye'de hangisi var? Hiçbiri. Peki ben Türkiye'de PHP ile proje geliştirisem bir problemde kimden destek alabilirim? Yetkinliği bilindik bir otorite tarafından onaylanmış hiç bir firma yok. En azından benim bildiğim yok. Peki, kullanılan framework'lerin yetkili bir çözüm ortağı var mı? Şimdiye kadar rastlamadım. Kullanabileceğimiz; Zend FW, CodeIgniter, CakePHP, Symfony var bilindik olarak. Bu tablodanda anlaşılacağı üzere, eğer PHP ile Türkiye'de uygulama geliştiriyorsanız; kendi bilginize ve ekibinize güvenmekten başka bir çareniz yok. Eğer deneyimli bir proje yöneticiniz var ise PHP sizi yüksek TCO maliyetlerinden kurtardığı gibi open source olması nedeni ile extra güvenlikte sağlamış oluyor. Linux'ün güvenliği zaten yıllardır tartışılmasız bir gerçek.

ASP.NET tarafından bakalım;
ASP.NET'i bildiğiniz gibi Microsoft geliştirmektedir. .NET platformunun bir parçası olan ASP.NET, 100'den fazla .NET platformundaki dil ile geliştirilebilmektedir. Nasıl konusu derin bir mevzu, özetle .NET ile geliştirilen tüm programlar ara bir dil'e dönüştürülüp, compile ediliyor v.s. konumuzun dışına çıkmayalım. Microsoft MVP programı ile dünya çapında teknolojilerine akreditasyon sağlamaktadır. Dünyanın farklı noktalarındaki Microsoft teknolojileri üzerine deneyim kazanmış ve bu bilgilerini paylaşan kişilere MVP ünvanını vermektedir. Microsoft teknolojileri ile uygulama geliştirirken takıldığınız bir durumda hem Microsoft tarafından yerinde desteğe kadar hizmet alabilmektesiniz hemde ilk yatırım veya start-up projelerinde MVP'lere yönlendirilerek deneyimli kişilerin ağzından projenizin ve yapmak istediklerinizin bir analizini duymaktasınız. Bu süreç sizi hem probleminizin çözümüne hemde mimari hatalarına karşı korumaya almaktadır. Maliyet tarafında bakarsak; Microsoft'un hemen hemen tüm teknolojieri ücretlidir. ASP.NET free fakat development ortamı pahallı.
ASP.NET geliştirmek için;

* Ekipteki her developer'ın Visual Studio IDE'sine ihtiyacı olacak. (Volume lisans şeklinde almanız gerekecek.)
* Windows desktop O/S. (VS'yu nereye yükleyeceksiniz? Windows 7/8'de ücretli) X her makine başı maliyet.
* Windows Server O/S. (Application'ı nerede publish edeceksiniz?) X Makine başına lians, CPU başına lisans veya anlaştığınız data center aracılığı ile SPLA ile kiralayacaksınız.
* SQL Server Database. (Yine Standart, Enterprise v.s. olmak üzere sürümleri ve Server/CPU/Core başına lisanslama modellerine gidebilir veya SPLA ile kiralayabilirsiniz.)
* Support hizmeti. (Saatlik ücret ile hesaplanıyor ve emin olun ucuz değil)
* MS'e bağlı teknolojilerden ilerlerseniz; Exchange Server, BizTalk server v.s. bunların hepsi Yüksek Maliyet X Maliyet üssü Maliyet olarak geri yansıyacaktır.

Bunların hepsini karşılayabiliyorsanız, bir üst stage'i de değerlendirmeye almalısınız. Nedir o? Java teknolojileri. J2SE, J2ME, J2EE v.s...
ASP.NET ile ilgili olarak son söyleceklerim; Microsoft'un teknolojilerini kullanmaya başlarsanız, teknoloji çeşitliliğinizi kaybetmeye başlarsanız. Microsoft tüm ürünlerini sadece kendi teknolojileri ile uyumlu çalışacak şekilde BİLEREK geliştirmektedir. Her ne kadar ülkemiz adına Microsoft Türkiye güzel desteklerde bulunsada global çapta değerlendirdiğimde; "Tüm dünyanın kullandığı teknolojileri kullanıp, geliştirmek yerine kendim gerek olmadığı halde yeni bir tanesini yapayım ve tüm dünyayı bunu kullanmaya zorlıyım" Vizyanonu her zaman soğuk bakmamı sağlamıştır ve bundan sonrada vizyonlarında köklü bir değişiklik olacağını düşünmediğimden teknolojilerine ve kendilerine sıcak bakamıyorum. MVP v.s. ünvanlarındaki kişilerde bunları biliyor fakat işleri bu olduğundan yüksek ses ile dile getirmekten çekinmekteler. Neyse konu biraz senin sorularından benim düşüncelerime doğru kaydı :) Tekrar toparlayalım.

Tüm bir e-ticaret projesini sıfırdan kendim yapmak istiyorum demişsin; bu düşüncen güzel fakat e-Ticaret projeleri zahmetli ve detaylı projelerdir. İşin içinde para olan her proje gibi bu projede güvenliğin en üst düzeyde tutulması gereken projelerdendir. Öncelikle PHP ile Open Source geliştirilmekte olan e-Ticaret projelerini incelemeni ve hangi step'lerin handle edildiğini iyi analiz etmeni öneririm. Günümüzde e-Ticaret sadece cart'a bir product atıp bunun parasını kredi kartından charge ettirmekten ibaret değil. Bu işin muhasebe tarafı ile lojistik tarafı ile 3. parti sağlayıcılar ile olan entegrasyonu var. Big Picture'ı gördüğünde ne kadar devasa bir otomasyon modeli olduğunu anlayabilirsin. Her transaction'a özel case'leri management etmek, raporlamak, bilgiyi dağıtmak/toplamak hep birer yüksek iş süreci.

İlk aşamada direkt bir e-Ticaret projesi yapmak, bu işe yeni girmiş kişiler için çok ağır olabilir. Çünkü; bir framework kullanmanız gerekiyor. Tüm case'leri öngöremeyebilirsiniz ve mimari hataları yapabilirsiniz. Sonunda problemli ve doğru çalışmayan bir uygulama ortaya çıkar veya bitmeden sizi bıktırarak başarısızlık ile sonuçlanabilir. Bu da sizin motivasyonunuzu negatif etkileyebilir, bu nedenle daha basit projelerden başlarsanız iyi olur. Örn: Blog, basit CMS'ler gibi.

Web programlama ile ilgili söylemek istediğim diğer bir konu; gerçi yazı o kadar uzadı ki bir süre sonra okunabilirliğini kaybedecek diye korkuyorum artık. :) Web programlama sadece PHP bilginizden oluşmaz. İyi bir network ve system bilginizinde olması gerekmektedir. Web uygulaması geliştiriyorsanız; server'lar ve network'ler üzerinde koşacak uygulamlar ile haşır neşir olacaksınız demektir. Bu da socket programlama, web servisleri, server taraflı uygulama geliştirme ihtiyaçlarını getirebilmektedir. En basitinden şöyle bir örnek vereyim; eğer bir video sitesi tarzı bir web application geliştiriyorsanız. TCP/IP ile UDP protocollerinin çalışmasını bilmiyorsanız, streaming'de UDP yerine TCP kullanarak gereksiz network yükü oluşturabilirsiniz. Bildiğiniz gibi TCP sisteminde paketler handshake yapmaktadır. Yani bir paketi hedef makineye gönerdiğinizde geri dönüp hey ben gittim haberim olsun demesidir :) UDP ise yürü git ne halin varsa gör; Giden gider, kısmetinse döner gelir mantığı ile çalışıyor :) Eğitim veya danışmanlık verdiğim firmalardaki kişilere bu şekilde anlattığımda şok oluyorlar ama bir çoğuna şimdi sorun hala hatırlarlar :)

S-POS ve güvenlik konusunda soruna gelecek olursak; artık bir çok firma 3D secure kullanmaktadır, bu nedenle hangi programlama dilini kullanırsan kullan, charging işlemini 3D'ye çıkartırsan senin üzerinden çıkıp, bankanın process'ne girdiğinden güvenlik kısmını pek düşünmene gerek kalmıyor. Doğru bir SSL sertifikası, bilindik güvenlik açıklarına karşı yazılımsal ve donanımsal önlem aldıktan sonra extra bir şey yapmana gerek yok. Tabii enterprise seviye bir uygulama ise araya bir tane WAF(Web Application Firewall) koymanda fayda var. Önerim; Citrix NetScaler kullanılmasıdır. Daha alt seviye için F5 ürünleride kullanılabilir.

DB mi Programlama dili mi? Hangisini önce tutmalıyım demişsin;
--> Aslında hepimizin yaptığı şey database programlamaktır. Bildiğin kaç tane DB kullanmayan uygulama var? DB kullanmadan, yani veri tutma ihtiyacı duymadan web'te çalışan uygulamaların kaçı ticari firmaların iş modelinde?
Eğer profesyonel uygulamalar geliştirmek istiyorsan DB tarafında iyi programlama yapabilmek gerekir. DB tarafında yapabildiğin herşeyi orada yapman gerek. Aslında her teknolojiyi kendi cycle'ı içerisinde bitirmen gerek. Bu hem veri bütünlüğünü korur hemde, oluşabilecek bir bug'ta tek bir teknoloji üzerinde debugging yapmanı sağlar. Özellikle distributed-based mimarilerde bu çok önemlidir. Bu arada kafanıza takılmasın diye DB kullanmayan uygulamalara örnek vereyim :) Framework'ler, Fizik Motorları, Encryption/Decryption uygulaması v.s... ama daha öncede söylediğim gibi kaç tane firma bunlardan üretiyor? ve bu firmalarda iş bulabilme ihtimaliniz ne kadar? :) Che'nin de dediği gibi; "Gerçekçi ol, imkansızı iste!" :)

Sanırım bu yazı bitmeyecek :) Artık bu cevap hem senin için hemde bu işe yeni başlamış aklına benzer sorular takılan herkes için faydalı olur. Tekrar, tekrar anlatmaktansa, söz uçsun, yazı kalsın. :)

Aramıza hoş geldin :) Başarılar dilerim.

Hocam her kelimesini tek tek okudum öyle şeyler anlatmışsınızki insanın aklında hiç bir soru kalmıyor.Bu yazının için teşekkür ediyorum.


Bu mesaja 1 cevap geldi.
A
12 yıl (3 mesaj)
Er

bana göre en iyi dil bildiğin dildir, sonucta her dilin kendine göre artıları ve eksileri muhakkak olacaktır. önemli olan senin hangisi daha hakim olduğundur...


Bu mesaja 1 cevap geldi.
A
12 yıl (99 mesaj)
Çavuş

Bu dediklerin iki dillede yapılabilir ve hiç bir sorun yaşamazsın hangisi hoşuna gidiyorsa daha kolay ögreniceksen ondan basla derim ben



A
12 yıl (45 mesaj)
Çavuş

quote:

Orijinalden alıntı: hdamar

Merhaba,

Yaklaşık 10 senedir IT sektöründeyim. Bir çok büyük projede kıdemli yazılım geliştirici ve/veya proje yöneticisi olarak bulundum. Son bir kaç yıldırda CTO olarak çalışmaktayım. Şuan, yakında Türkiye içinde duyuracağımız büyük bir e-ticaret projesini yönetmekteyim. Bu süreç içerisinde Software, Network ve Security alanlarında yoğun pratik deneyim edindim.

Şimdi sorularına gelecek olursak;
* Benimde ekibimin hala bir kısmı tamamlanmış değil, eleman alımlarımız sürüyor. Peki, neden deneyimli kişileri alıyoruz?
-> IT projeleri hepinizin bildiği gibi yüksek maliyetli teknoloji yatırımlarıdır. Teknoloji etkeni işin içine girdiğinde risk seviyesini düşük tutmak mümkün değildir. İstersen milyar dolar bütçen olsun 18/19 yaşındaki bir çocuk çıkıp Facebook diye bir proje yapıyor senin sosyal network kısmın bir anda sıfırlanıyor. Sıfırlanması ile de kalmıyor, yarışabilmek için extra maliyetler çıkartıyor. Şimdi bu global çapta bir örnekti.

Türkiye şartlarında zaten IT sektörü malüm, ağır vergiler ve yüksek sahip olma maliyetleri ile en zor şekilde ilerliyor. Kimsenin open source veya yenilikçi projelere destek vermediği veya az destek verdiği bir ortamda kalkıp Facebook yapamıyorsunuz, yapsanız bile dikkate alınmıyorsunuz. Örn: Crytek firması ve Crysis. Sizce direkt USA'ya mı gitmişlerdi? Hayır, Türkiye'de ismini vermek istemediğim firmalardan red yiyince, EA Games'in yolunu tuttular. Sonuç? Dünya çapında üst sıralarda satış rakamlarına ulaştılar. Türkiye'ye faydası ne oldu? Ekonomik = 0; Teknolojik = 0; Oyun alanında; Global çapta full Türkçe bir oyunumuz oldu sadece.

Özetle; Yeni ve deneyimsiz elemanların oryantasyon süreci proje maliyetlerindeki en açık ve göze batan kalemdir. Neden? Çünkü, ölü yatırım olarak bakılır ve bu kişilerin hata yapma olasılığı yüksek olduğundan kritik iş yönetimine dahil projedeki hiç bir parçanın sorumluluğu veremez. Biz IT yöneticileri her ne kadar bu kişileri normal karşılasakta, ay sonu yöneticilere hazırlanan raporda, direkt göze batan maliyet kalemlerindendir. Yönetici tarafında bu kişiler; Ben eğitiyorum, yarın bir gün biraz eli iş tuttuğunda çekip gidebilir veya Şimdi iş versek ve hatalı yapsa, kontrol için 2. bir kıdemli kişiyi meşgul edecek. Bunu almazsam o kıdemli kişinin ona harcayacağı haftalık 15/20 saatlik çalışma süresini aktif proje süresine dahil edebilirim.

Bir bakıma da haklılar bence. Neden?
-> Çünkü; bir çok IT projesinin ilk yatırım maliyeti yüksek, uzun vadede kar getirebilecek yapıdadır. Bu da ilk sene hep finansmanın eritileceği, sonunda proje fail olursa yüksek zarar demek. Neden?
--> Çünkü; Senin projenin inovasyonu, rakiplerinin senin inavasyonunu implimente etme süresi kadardır! (BURASI ÇOK ÖNEMLİ!!!) Biraz daha açacak olursam; Sen gittin Twitter yaptı, iyi güzel. Rakiplerin sosyal medyadaki Facebook, Google+, Badoo, MySpace v.s... Şimdi sen bu projeyi çıkarttığında ilk 3/4 ay içerisinde yoğun reklam ve hızlı feedback'ler ile tutundurmalısın. Yoksa; rakiplerin senin yaptığını kendi sistemlerine entegre ederlerse, büyüme gibi bir şansın kalmıyor. Bu hızlı feedback olayıda yüksek finansman ve sağlam bir IT ekibi ile oluyor.

Şimdiye kadar bahsettiğim konuların hepsini bir bütün olarak düşünürsek, bu kadar maliyet ve risk ortamında hiç deneyimi olmayan, hata yapmaya açık ve oryantasyon süreci maliyetlerine sahip bir kişi kim işe alır?

Diğer taraftan bakarsakta; kimse işe almazsa, bu kişiler nasıl deneyim kazanacaklar?
--> Bir dilde deneyim kazanmak için evde bir proje geliştirebilirsin, gitar çalmayı öğrenmek için 10 adımda kolay gitar serisini izleyebilirsin ama büyük IT ekiplerine dahil olmak istiyorsan yapabilecek tek şeyin iyi veya kötü şartlarına bakmadan doğru firmalardan beklediğin ücretin altındada olsa deneyim kazanana kadar çalışmandır. Fakat bunu doğru ayarlamalısın, çünkü IT alanında körelme ve gerileme çok hızlıdır. Bunca yılın ardından hala her ay 500 sayfadan fazla kitap, 70'den fazla makale okumaktayım. Yani IT alanında çalışıyorsan, ömür boyu eğitim sistemini benimsemen gerek. Ben 10 sene çalıştım, 20 sene çalıştım diye bir şey yok. 50 senede çalışsan, senin çalışmaya başladığın gün ile bugün kullanılan teknolojiler bir değil ve IT alanında en çok IT yöneticilerinin yaptığı hatalardan biri; HER DURUMDA TEK BİR DOĞRU YOKTUR! Proje planı hazırlarken, hımm şu C# olsun bu Windows Mobile olsun buda SQL Server olsun diyemezsiniz. Çünkü aynı işleri yapabilen bir sürü teknoloji var. Örn: Java, Oracle, Android bunlarda bir önceki saydığımız teknolojileri gerçekleyebilir. Ama asıl hesaplanması gereken TCO dediğimiz Total Cost of Ownership yani toplam sahip olma maliyetidir. Piyasada C# bilen çok, Oracle pahallı ama Android mobile piyasada daha ağır. Dengeleri iyi hesaplamak gerek.

Neyse konuyu çok esnettik. Tekrar sorularına dönecek olursak;
ASP.NET mi PHP mi? Bana sorarsan, Linux tarafında olduğumdan, open source vizyonunu desteklediğimden ve daha bir çok nedenden PHP diyeceğim. FAKAT Şu Konuyu iyi anlayalım; bu soru yıllardır her geek ortamında tartışılır. Burada asıl olan dilin gücündende öte, teknolojinin support network'nün geniş olmasıdır.

PHP tarafından bakalım;
Gerçekçi olursak milyonlarca veya yüzbinlerce falan geliştiricisi yok. PHP'nin SVN'ne commit eden toplasan 100 kişi civarındadır. PHP'yi kullanan kişilerden bahsetmiyorum, dili geliştiren kişileri kast ediyorum. Destekleyen kaç tane firma var? Zend Corp. ve Ez.NO System var. Türkiye'de hangisi var? Hiçbiri. Peki ben Türkiye'de PHP ile proje geliştirisem bir problemde kimden destek alabilirim? Yetkinliği bilindik bir otorite tarafından onaylanmış hiç bir firma yok. En azından benim bildiğim yok. Peki, kullanılan framework'lerin yetkili bir çözüm ortağı var mı? Şimdiye kadar rastlamadım. Kullanabileceğimiz; Zend FW, CodeIgniter, CakePHP, Symfony var bilindik olarak. Bu tablodanda anlaşılacağı üzere, eğer PHP ile Türkiye'de uygulama geliştiriyorsanız; kendi bilginize ve ekibinize güvenmekten başka bir çareniz yok. Eğer deneyimli bir proje yöneticiniz var ise PHP sizi yüksek TCO maliyetlerinden kurtardığı gibi open source olması nedeni ile extra güvenlikte sağlamış oluyor. Linux'ün güvenliği zaten yıllardır tartışılmasız bir gerçek.

ASP.NET tarafından bakalım;
ASP.NET'i bildiğiniz gibi Microsoft geliştirmektedir. .NET platformunun bir parçası olan ASP.NET, 100'den fazla .NET platformundaki dil ile geliştirilebilmektedir. Nasıl konusu derin bir mevzu, özetle .NET ile geliştirilen tüm programlar ara bir dil'e dönüştürülüp, compile ediliyor v.s. konumuzun dışına çıkmayalım. Microsoft MVP programı ile dünya çapında teknolojilerine akreditasyon sağlamaktadır. Dünyanın farklı noktalarındaki Microsoft teknolojileri üzerine deneyim kazanmış ve bu bilgilerini paylaşan kişilere MVP ünvanını vermektedir. Microsoft teknolojileri ile uygulama geliştirirken takıldığınız bir durumda hem Microsoft tarafından yerinde desteğe kadar hizmet alabilmektesiniz hemde ilk yatırım veya start-up projelerinde MVP'lere yönlendirilerek deneyimli kişilerin ağzından projenizin ve yapmak istediklerinizin bir analizini duymaktasınız. Bu süreç sizi hem probleminizin çözümüne hemde mimari hatalarına karşı korumaya almaktadır. Maliyet tarafında bakarsak; Microsoft'un hemen hemen tüm teknolojieri ücretlidir. ASP.NET free fakat development ortamı pahallı.
ASP.NET geliştirmek için;

* Ekipteki her developer'ın Visual Studio IDE'sine ihtiyacı olacak. (Volume lisans şeklinde almanız gerekecek.)
* Windows desktop O/S. (VS'yu nereye yükleyeceksiniz? Windows 7/8'de ücretli) X her makine başı maliyet.
* Windows Server O/S. (Application'ı nerede publish edeceksiniz?) X Makine başına lians, CPU başına lisans veya anlaştığınız data center aracılığı ile SPLA ile kiralayacaksınız.
* SQL Server Database. (Yine Standart, Enterprise v.s. olmak üzere sürümleri ve Server/CPU/Core başına lisanslama modellerine gidebilir veya SPLA ile kiralayabilirsiniz.)
* Support hizmeti. (Saatlik ücret ile hesaplanıyor ve emin olun ucuz değil)
* MS'e bağlı teknolojilerden ilerlerseniz; Exchange Server, BizTalk server v.s. bunların hepsi Yüksek Maliyet X Maliyet üssü Maliyet olarak geri yansıyacaktır.

Bunların hepsini karşılayabiliyorsanız, bir üst stage'i de değerlendirmeye almalısınız. Nedir o? Java teknolojileri. J2SE, J2ME, J2EE v.s...
ASP.NET ile ilgili olarak son söyleceklerim; Microsoft'un teknolojilerini kullanmaya başlarsanız, teknoloji çeşitliliğinizi kaybetmeye başlarsanız. Microsoft tüm ürünlerini sadece kendi teknolojileri ile uyumlu çalışacak şekilde BİLEREK geliştirmektedir. Her ne kadar ülkemiz adına Microsoft Türkiye güzel desteklerde bulunsada global çapta değerlendirdiğimde; "Tüm dünyanın kullandığı teknolojileri kullanıp, geliştirmek yerine kendim gerek olmadığı halde yeni bir tanesini yapayım ve tüm dünyayı bunu kullanmaya zorlıyım" Vizyanonu her zaman soğuk bakmamı sağlamıştır ve bundan sonrada vizyonlarında köklü bir değişiklik olacağını düşünmediğimden teknolojilerine ve kendilerine sıcak bakamıyorum. MVP v.s. ünvanlarındaki kişilerde bunları biliyor fakat işleri bu olduğundan yüksek ses ile dile getirmekten çekinmekteler. Neyse konu biraz senin sorularından benim düşüncelerime doğru kaydı :) Tekrar toparlayalım.

Tüm bir e-ticaret projesini sıfırdan kendim yapmak istiyorum demişsin; bu düşüncen güzel fakat e-Ticaret projeleri zahmetli ve detaylı projelerdir. İşin içinde para olan her proje gibi bu projede güvenliğin en üst düzeyde tutulması gereken projelerdendir. Öncelikle PHP ile Open Source geliştirilmekte olan e-Ticaret projelerini incelemeni ve hangi step'lerin handle edildiğini iyi analiz etmeni öneririm. Günümüzde e-Ticaret sadece cart'a bir product atıp bunun parasını kredi kartından charge ettirmekten ibaret değil. Bu işin muhasebe tarafı ile lojistik tarafı ile 3. parti sağlayıcılar ile olan entegrasyonu var. Big Picture'ı gördüğünde ne kadar devasa bir otomasyon modeli olduğunu anlayabilirsin. Her transaction'a özel case'leri management etmek, raporlamak, bilgiyi dağıtmak/toplamak hep birer yüksek iş süreci.

İlk aşamada direkt bir e-Ticaret projesi yapmak, bu işe yeni girmiş kişiler için çok ağır olabilir. Çünkü; bir framework kullanmanız gerekiyor. Tüm case'leri öngöremeyebilirsiniz ve mimari hataları yapabilirsiniz. Sonunda problemli ve doğru çalışmayan bir uygulama ortaya çıkar veya bitmeden sizi bıktırarak başarısızlık ile sonuçlanabilir. Bu da sizin motivasyonunuzu negatif etkileyebilir, bu nedenle daha basit projelerden başlarsanız iyi olur. Örn: Blog, basit CMS'ler gibi.

Web programlama ile ilgili söylemek istediğim diğer bir konu; gerçi yazı o kadar uzadı ki bir süre sonra okunabilirliğini kaybedecek diye korkuyorum artık. :) Web programlama sadece PHP bilginizden oluşmaz. İyi bir network ve system bilginizinde olması gerekmektedir. Web uygulaması geliştiriyorsanız; server'lar ve network'ler üzerinde koşacak uygulamlar ile haşır neşir olacaksınız demektir. Bu da socket programlama, web servisleri, server taraflı uygulama geliştirme ihtiyaçlarını getirebilmektedir. En basitinden şöyle bir örnek vereyim; eğer bir video sitesi tarzı bir web application geliştiriyorsanız. TCP/IP ile UDP protocollerinin çalışmasını bilmiyorsanız, streaming'de UDP yerine TCP kullanarak gereksiz network yükü oluşturabilirsiniz. Bildiğiniz gibi TCP sisteminde paketler handshake yapmaktadır. Yani bir paketi hedef makineye gönerdiğinizde geri dönüp hey ben gittim haberim olsun demesidir :) UDP ise yürü git ne halin varsa gör; Giden gider, kısmetinse döner gelir mantığı ile çalışıyor :) Eğitim veya danışmanlık verdiğim firmalardaki kişilere bu şekilde anlattığımda şok oluyorlar ama bir çoğuna şimdi sorun hala hatırlarlar :)

S-POS ve güvenlik konusunda soruna gelecek olursak; artık bir çok firma 3D secure kullanmaktadır, bu nedenle hangi programlama dilini kullanırsan kullan, charging işlemini 3D'ye çıkartırsan senin üzerinden çıkıp, bankanın process'ne girdiğinden güvenlik kısmını pek düşünmene gerek kalmıyor. Doğru bir SSL sertifikası, bilindik güvenlik açıklarına karşı yazılımsal ve donanımsal önlem aldıktan sonra extra bir şey yapmana gerek yok. Tabii enterprise seviye bir uygulama ise araya bir tane WAF(Web Application Firewall) koymanda fayda var. Önerim; Citrix NetScaler kullanılmasıdır. Daha alt seviye için F5 ürünleride kullanılabilir.

DB mi Programlama dili mi? Hangisini önce tutmalıyım demişsin;
--> Aslında hepimizin yaptığı şey database programlamaktır. Bildiğin kaç tane DB kullanmayan uygulama var? DB kullanmadan, yani veri tutma ihtiyacı duymadan web'te çalışan uygulamaların kaçı ticari firmaların iş modelinde?
Eğer profesyonel uygulamalar geliştirmek istiyorsan DB tarafında iyi programlama yapabilmek gerekir. DB tarafında yapabildiğin herşeyi orada yapman gerek. Aslında her teknolojiyi kendi cycle'ı içerisinde bitirmen gerek. Bu hem veri bütünlüğünü korur hemde, oluşabilecek bir bug'ta tek bir teknoloji üzerinde debugging yapmanı sağlar. Özellikle distributed-based mimarilerde bu çok önemlidir. Bu arada kafanıza takılmasın diye DB kullanmayan uygulamalara örnek vereyim :) Framework'ler, Fizik Motorları, Encryption/Decryption uygulaması v.s... ama daha öncede söylediğim gibi kaç tane firma bunlardan üretiyor? ve bu firmalarda iş bulabilme ihtimaliniz ne kadar? :) Che'nin de dediği gibi; "Gerçekçi ol, imkansızı iste!" :)

Sanırım bu yazı bitmeyecek :) Artık bu cevap hem senin için hemde bu işe yeni başlamış aklına benzer sorular takılan herkes için faydalı olur. Tekrar, tekrar anlatmaktansa, söz uçsun, yazı kalsın. :)

Aramıza hoş geldin :) Başarılar dilerim.

Eline sağlık kardeşim, gerçekten güzel bir yazı olmuş.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.