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: 1 misafir
25
Cevap
3587
Tıklama
0
Öne Çıkarma
Yeni mezunum hangisi ASP.NET vs PHP?
Y
14 yıl (52 mesaj)
Çavuş
Konu Sahibi

Merhaba arkadaşlar , geçen sene üniversiteden mezun oldum elektronik mühendisiyim.Yazılım işine girmeye karar verdim.

İlk başta yazılımda çok tecrübeli bir insan değilim.4.5 aydır sanırsam kendimi geliştirmeye başladım.
Bir kaç sorum olucak sizlere

Kullanabildiğim diller(if-else diil sadece) : html5,css3,javascript,jquery,c#, (çok az mssql ve asp.net)



=============================================================================

1-)PROJE TABANLI BAŞTAN SONA! E-TİCARET SİTELERİ YAPMAK İSTİYORUM.
HAZIR KOD KULLANMAK İSTEMİYORUM.ASP.NET Mİ PHP Mİ ?

2-)EĞER ASP.NET KULLANIRSAM SANAL POS DA , SİTE GÜVENLİĞİNDE vs SORUN ÇIKARTIRMI?

3-)HANGİSİNİ ÖNCE YUTMALIYIM ? MSSQL Mİ YOKSA ASP.NET Mİ? HANGİSİNDEN BAŞLAMALIYIM ?

=============================================================================



Bir not olarakda işsizim . Bir kaç yerle görüşmem oldu.Yeni mezun olduğum için referans istiyorlar.Şimdilik
malum elimde referans yok,küçük küçük projeler var tabi ki.Kendimi geliştirden sonra da görüşmeye gerek kalmayacak öle gözüküyor.
Açıkcası kendimi geliştirebileceğim bir şirket bulamadım.O şirketlere de ileride program yazmak isterim

Samimi olmak gerekirse yazılım sektöründe o kadar geniş çaplı boşluk varki, tecrübeli insanlar eleman yetiştirmek istemiyor..
Çok kriterli eleman arıyorlar,bütün işi elemana yüklüyorlar.Millette hazıra alışmış 500-600 e siteyi yaptırırım,keyfime bakarım diyor.
Güncelleme diyince ot gibi kalıyorlar tabi.Forumdaki bazı arkadaşlarda dikkat ettim hazır script i para ile satmaya çalışıyor!


Bu işi iyi yapan arkadaşlardan tecrübelerini ve önerilerini paylaşmasını istiyorum!
Hem kendim için hemde forumdaki arkadaşlar için
Saygılarr



G
14 yıl (1400 mesaj)
Yüzbaşı

E-ticatret yada herhangi bir geniş çaplı proje yapıcaksan ki bu projenin muhakkak veritabanı olur. Veritabanını ben yapıcam diyeceksen ilk önce veritabanı kısmını halletmen lazım MSSQL,MYSQL,ORACLE bunlardan birini öğren zaten birini öğrendiğinde diğerlerinide kullanma açısından pek zorlanmazsın...

PHP mi? ASP.NET mi? dersen ben C# programlama dilini kullanan biri olarak ASP.NET derim...
Sanal pos yada site güvenliğinde sorun çıkıp çıkmaması sana bağlı...ASP.NET in böyle bir dez avantajı yok olsaydı hepsiburada* gibi büyük bir proje asp.net ile yazılmazdı herhalde





< Bu mesaj bu kişi tarafından değiştirildi GarbageCollector -- 13 Ocak 2012; 16:02:35 >
Bu mesaja 1 cevap geldi.
K
14 yıl (13797 mesaj)
Yarbay

valla 300-500 bakmıcaksın dişini sıkıp bi işe girip 1 sene sızlanmayacaksın. ondan sonra dünyalar senın :) elektrik - elektronik mühendisliğinden mezun yazılımcı olmak da büyük dezavantaj. programcılık okumuş bir adam daha cazip gelri benim için.


Bu mesaja 1 cevap geldi.
F
14 yıl (3 mesaj)
Er

Mobil yazılıma yönelmeni öneririm. En azından HTML5'e daha fazla eğilirsen cross-platform uygulamalar yazabilirsin.


Bu mesaja 1 cevap geldi.
P
14 yıl (713 mesaj)
Yüzbaşı

sen güvenli kodlama tekniklerini kapmışsan php ya da asp.net hiç fark etmez.fakat madem ki c# ile başlangıç yapmışsın, asp.net ile devam et derim.birde hangi üni den mezun olduğunuzu sorabilir miyim?buraya yazmak istemezseniz pm atın lütfen


Bu mesaja 1 cevap geldi.
K
14 yıl (289 mesaj)
Yüzbaşı

Merhaba.
Hayırlı olsun.
Öncelikle bu işte önemli olan azim ve çalışmaktır.
Şehir ve isimler saklı kalmak üzere elektonik muhendisi olupta programcılık hakkı ile yapan tanıdıklarım var.
Öncelikle düşük ücretli de olsa bir işe girmeniz sizin için faydalıdır.
2. bulunduğunuz yerde dernekler vardır muhakkak yada makine odasının çeşitli kurumlarla ortak açıtğı kurslar vardır. Muhakkak.
Onlar ın fiyatları gayet makuldur. Eğitmeni bir araştırın size hitap ediyorsa gidin.

Herkes a dil b dil der. Ama öncelikle olan programlama mantığını öğrenmenizdir. Mantığı öğrendiğinizde geri kalan dilin yazım kurallarını öğrenmek olacaktır. Bu da biraz zaman alsada öğrenilebilir.
Evet çoğunlula millet hazır şablonları alıp bu şekilde satmaya çalışıyor.

Eğer arkadaşlarında dediği gibi c# üzerine başladı iseniz devam edin. Asp.Net e geçin.
Ancak muhakkak sql öğrenin. her zaman bir veritabanına ihtiyacımız var.

Bol bol örnek yapın.


Bu mesaja 1 cevap geldi.
D
14 yıl (1100 mesaj)
Yüzbaşı

Dostum Temelin C# sa Sende Ona Devam Et Derim (yani ASPX), Bir Yerden Sonra Zaten Yeni Diller Kolay Gelir. Ama Bir Yere Çabuk Gelmen İçin ASP.NET =)


Bu mesaja 1 cevap geldi.
T
14 yıl (65 mesaj)
Çavuş

Ben C# Asp.net üzerinde devam ediyorum. ama bu ile yeni başlayan biri olsam, robot programlama veya arkadaşın dediği gibi mobil uygulama (iphone vs vs) başlardım.


Bu mesaja 2 cevap geldi.
U
14 yıl (694 mesaj)
Yüzbaşı

3 yıldır yazılım uzmanlığı yapan birisi olarak kaçırdığın bir noktaya değinmek istiyorum. Gerçekten büyük bir projede çalışırken bir çok kez şunu fark edeceksin; Amerika'yı yeniden keşfetmeye gerek yok :)


Bu mesaja 1 cevap geldi.
A
14 yıl (716 mesaj)
Yüzbaşı

Kurumsal projeler ASP.NET ağırlıklı. C# ta biliyormuşsun. O halde ASP.NET projelerinde C# kullanarak güzel şeyler başarabilirsin.


Bu mesaja 1 cevap geldi.
A
14 yıl (513 mesaj)
Yüzbaşı

http://www.gorselegitim.org/category/E-Ticaret.aspx

asp.net ile yapacagım diyorsan bu eleman adım adım anlatmış,40 adet felan video var hepsi yaklaşık 45dk-1saat arası yalnız biraz zamanını alır.Türkçe görsel eğitim seti işte :)





< Bu mesaj bu kişi tarafından değiştirildi aligur16 -- 22 Ocak 2012; 1:01:57 >

O
14 yıl (3269 mesaj)
Yüzbaşı

quote:

Orijinalden alıntı: targit

Ben C# Asp.net üzerinde devam ediyorum. ama bu ile yeni başlayan biri olsam, robot programlama veya arkadaşın dediği gibi mobil uygulama (iphone vs vs) başlardım.

robot programlama nasıl oluyor açar mısınız ?



L
14 yıl (206 mesaj)
Teğmen

Online rezervasyon sistemi yazan bir sirkette 4 senedir yazilim uzmani olarak calismaktayim. Projeler ilk baslarda asp ydi fakat 2 senedir .net te gelistiriyoruz. Degismeyen birsey var sql. Hangi dili kullanirsan kullan onemli olan nokta sql bilmendir. Yoksa dunyanin en optimizr kodunu yaz stored larin yada sorgularin optimize olmadigi surece o program yada web sitesi 5 para etmez. Sonuc olarak ne yap et sql i iyi ogren. C# kullancaksanda mssql ogreneceksin demektir.


Bu mesaja 1 cevap geldi.
H
14 yıl (94 mesaj)
Çavuş

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.





< Bu mesaj bu kişi tarafından değiştirildi hdamar -- 4 Şubat 2012; 3:30:55 >
Bu mesaja 6 cevap geldi.
G
13 yıl (222 mesaj)
Teğmen

Sayın hdamar ;

Yazınız bir solukta okudum. İstifade ettiğim çok konu oldu. Teşekkürler...



K
13 yıl (13797 mesaj)
Yarbay

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.

bende okumamıştım, şimdi okudum. gayet başarılı ve açıklayıcı. bu arada bahsettiğin "büyük bir e-ticaret projesi" boynere mi ait?



P
13 yıl (2 mesaj)
Er

normalde uzun yazıları ilk 2 cümlede aman buda tırt der okumam ama yazınızı tek solukta okudum hatta yorum yazmak için üye olmaya çalıştım ama zaten üye olduğumu öğrendim :D


Bu mesaja 1 cevap geldi.
İ
13 yıl (1041 mesaj)
Teğmen

hocam bu yazılarınızı seri haline getirmenizi tavsiye ederim, her hafta yeni bölümü yayınlanırsa hiç fena olmaz hem sürükleyici hem bi sonraki bölüm merak uyandırır



J
13 yıl (333 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.



Bu mesaja 1 cevap geldi.
H
13 yıl (94 mesaj)
Çavuş

Herkese iyi dilekleri için teşekkürler.