FM takipçileri daha önce forumda 10 nisan'da üniversitemizde yapılacak olan .net seminerinden bahsettiğimi hatırlarlar. Seminer bugün gerçekleşti. Konuşmacı microsoft yetkilisi konuya oldukça hakim bir tablo çizdi. Seminer 3 saat süren tam bir beyin yıkama gösterisiydi. Ancak bu .net in iyi ve kötü yönlerine objektif olarak bakmama bir engel teşkil etmiyor. İlk olarak istanbulda yapılan bir akademik zirvenin görüntüleri ile başladı bir çok üniversiteden akademisyenler .net in ne kadar güzel ve gerekli bir şey olduğunu kendi okullarındaki ders programlarına .net konusunu nasıl ve neden entegre edeceklerini ilerde piyasa koşullarında .net in ne kadar gerekli olduğunu
anlattılar.
Ardından .net in en önemli özelliği olarak gösterilen platform bağımsız ve dil bağımsız oluşundan bahsedildi. Verilen örnek normal şartlar altında c++ bilen bir programcı işinden ayrılırsa bu bilgisinin java vb vesaire gibi dillerden birini kullanan programcı arıyan kurumlarda işe girmesi için işe yaramadığıydı. Oysa .net platformu ile bu ayrım ortadan kalkıyor. .net üzerinde yazılım geliştirmekte
uzmanlaşmış bir programcı için hangi dili kullandığının önemi kalmıyordu. Bu noktada .net uygulamaları geliştirmek için 37 farklı dil kullanılabileceği anlatıldı. Ayrıca .net in ürettiği kodların unix de dahil her platformda çalışacağından bahsedildi. Bu olay .net in programcı tarafından girilen kodları
common language runtime ile çalıştırmasıyla oluyormuş.
Daha sonra .net in her
dili desteklediği ancak resmi dilinin c# olduğu , bu dilin daha önce borland da delphi yi sun da ise java yı geliştiren ekip tarafından
yapıldığından bahsedildi. Bu saydede java ve delphi de eksik olan yönlerinde c# da tamamlandığı anlatıldı.
Bir sonraki aşamada .net in platform bağımsız olamasının teknik alt yapısı anlatıldı. Bu teknik alt yapı .net framework ve ado.net ile gerçekleşiyormuş. Ado.net ve xml vasıtası ile platform bağımsız ve hata oranı düşük biçimde veriye erişilirken .net framework serverlar
istemcileri tanıyarak ( pda cep telefonu vs. ) veriyi onların anlayabileceği şekle çevirip öyle gönderiyor. .net in bu platform bağımsızlığını meta data ile sağladığı anlatıldı. Meta datalarda her veri kendi üzerinde ne olduğu ve ne iş yaptığına dair etiketler taşıyor böylece registery ye olan bağımlılık ve dolayısı ile platform bağlılığı ortadan kalkıyor. Bu sayede
platformlar arası işbirliği şansı zahmetsizce doğmuş oluyor. Örneğin koç bilgi işlem departmanında sistem bir arıza verdiğinde cep
telefonu yardımıyla coğrafi konum olarak en yakındaki sistem yöneticisine ulaşılıp cep telefonuna mesajla sorun hakkında bilgi veriliyor ve gelmesi istenebiliyor.
Birazda asp.net`den bahsedildi. Asp.net in alt yapısı xml e dayanıyor ama visual basic
mantığı kullanılarak xml oluşturmak drag&drop ve formlar kullanılarak oldukça basitleştirilmiş. Böylece web servisleri hızlı biçimde yazılabiliyor. Bu servisler visualstudio.net kullanılarak mobil cihazlar içinde aynı
kolaylıkta yazılıp entegre emülatörler vasıtası ile test edilebiliyor.
Son olarakta .net in bugünkü konumunu göstermek için microsoft ve sun tarafından bağımsız bir firmaya yaptırılan .net server ve j2ee server karşılaştırması sunuldu. Bu sunumda .net server maliyet ve güvenilirlik açısından önde gözüküyordu.
SONUÇ:
Benim değerlendirmem .net şu an çalışıyor ve işe yarar gözüküyor. Yazdığım c++ kodunu web üzerinde çalışan bir uygulamaya dönüştürmek oldukça kolay ve üstelik her platform için ayrı kod geliştirmek zorunda da değilim. Linux
cephesinde buna yanıt ( o da yalnızca dil bağımsız yazılım geliştirme konusunda ) parrot la gelecek muhtemelen ama bu tabiki yetersiz. .net in görünürde rakibi yok gibi. ANCAK tabi ki açık noktalar var.
C++ desteği 2005 yılında sona eriyor. Yani bu tarihten sonra çıkacak uygulamalarla .net kodu geliştirmek için c# bilme zorunluluğu var. Daha açık anlatırsak, sizin çalıştığınız şirket o zamana kadar avantajlarından dolayı .net i tercih etmişse ve sizde c# bilmiyor ve yeni çıkan programlarla uygulama geliştirmeniz gerekiyorsa...
Konuşmacı bile "microsoft dendiğinde herkesin aklına güvenlik geliyor " dedi :) Ama .net ile çok katmanlı güvenlik yapısı sayesinde bu sorun ortadan kalkıyor diye de ekledi. Ancak seminer boyunca buna hiç değinmedi seminer sonundaki soru bölümünde bu konuyu özel olarak sormam üzerine .net ve güvenlik hakkında bir takım açıklamalar yaptı ama bunlar zaten bilinen eski ssl, sertifika, password auth., Cookie auth., gibi yöntemlerden ibaretti yani güvenlik konusunda GARP CEPHESİNDE DEĞİŞEN BİR ŞEY YOK.
Platform bağımsız? Kulağa hoş geliyor tabii. Ama sadece kulağa hoş gelmesi için tasarlanmış tonlarca cümleden biri gibi. Pratikte ne kadar anlamı var? Biraz bakmak lazım.
Verilen örnek normal şartlar altında c++ bilen bir programcı işinden ayrılırsa bu bilgisinin java vb vesaire gibi dillerden birini kullanan programcı arıyan kurumlarda işe girmesi için işe yaramadığıydı.
Sağlam C++ bildiğini somut olarak gösteren adamın başımın üstünde yeri var ;-) Böyle bir adam, inan bana iş bulmakta güçlük çekmez ;-)
Oysa .net platformu ile bu ayrım ortadan kalkıyor. .net üzerinde yazılım geliştirmekte uzmanlaşmış bir programcı için hangi dili kullandığının önemi kalmıyordu.
Hangi dili kullandığının önemi yok. Emin misin? Eğer bir ekip içinde çalışıyorsan, inan bana önemi var.
Ayrıca .net in ürettiği kodların unix de dahil her platformda çalışacağından bahsedildi.
Evet, MONO projesi güzel bir proje ancak hala tamamlanması gereken bir sürü class bildiğim kadarı ile. ROTOR projesi ise sadece akademik ortamda inceleme amaçlı sunulan bir yapı diye biliyorum.
Birazda asp.net`den bahsedildi. Asp.net in alt yapısı xml e dayanıyor ama visual basic mantığı kullanılarak xml oluşturmak drag&drop ve formlar kullanılarak oldukça basitleştirilmiş. Böylece web servisleri hızlı biçimde yazılabiliyor. Bu servisler visualstudio.net kullanılarak mobil cihazlar içinde aynı kolaylıkta yazılıp entegre emülatörler vasıtası ile test edilebiliyor.
ASP.NET´in mantığı ASP´ye dayanıyor. XML sözcüğünü zırt pırt kullanarak olsa olsa `HYPE´a yol açılır. Visual Basic mantığı, drag-drop programlama, aman ne güzel! Buna karşılık ben de sana son aylarda ASP.NET ile ilgili karşıma en çok çıkan makale türünün ne olduğunu söyleyeyim mi? Şu meşhur `GRID´nesnesini özelleştirmek için yazılması gereken tonlarca koda dair makale? Drag-drop? Geçiniz bir kalemde! Peki ya şu meşhur `VALIDATION´ kontrolü? Olduğu gibi kabul ederseniz ne ala, ama IDE´nin yani Visual Studio.NET´in ürettiği JavaScript koduna bakarsanız, allahına yan bakan bir kod olduğunu görecekseniz, bir müdahale etmeye kalkın bakalım ne kadar vaktinizi alıyor ;-) Web servisleri, alın size bir `buzzword´ daha. Web servisi nedir, ne değildir bunlardan bahsedildi mi acaba?
Son olarakta .net in bugünkü konumunu göstermek için microsoft ve sun tarafından bağımsız bir firmaya yaptırılan .net server ve j2ee server karşılaştırması sunuldu. Bu sunumda .net server maliyet ve güvenilirlik açısından önde gözüküyordu.
SONUÇ:
Benim değerlendirmem .net şu an çalışıyor ve işe yarar gözüküyor. Yazdığım c++ kodunu web üzerinde çalışan bir uygulamaya dönüştürmek oldukça kolay ve üstelik her platform için ayrı kod geliştirmek zorunda da değilim. Linux cephesinde buna yanıt ( o da yalnızca dil bağımsız yazılım geliştirme konusunda ) parrot la gelecek muhtemelen ama bu tabiki yetersiz. .net in görünürde rakibi yok gibi. ANCAK tabi ki açık noktalar var.
.NET´in görünürde rakibi yok? Bu biraz komik bir iddia olmuş, Internet üzerinde biraz araştırma yaparsan J2EE´ye tonlarca yatırım yapmış devasa işletmelerin .NET´le pek de ilgilenmediklerini göreceksin.
Bir de biraz paradoksa bir yaklaşım söz konusu, eğer bütün derdimiz web servisi yazmak ise ki bu durumda SOAP, XML, vs. gibi standarlar var değil mi? E ben oturur Linux üzerinde bu standartlara uygun bir servis yazarım istediğim dil ve araç ile sen de istediğin platform üzerinde yine aynı standartlara uygun bir şekilde benim servisimden veri çeken bir uygulama yazarsın istediğin araçla. .NET diye bir şey olmasa bunu yapamayacak mıyız? Web servisi kavramının kendisi standartları saymaz isek zaten FRAMEWORK bağımsız değil mi? Ve .NET bir FRAMEWORK değil mi? Peki, bu standartlara uygun iş güç yapmak için gerekli araçlar UNIX ortamlarında yok mu? Java ile, Perl ile ya da başka bir şey ile yazılamıyor mu? XML yollanıp gelen XML parse edilemiyor mu? Edilebiliyor, e o halde? Rakibi yoktur cümlesi biraz enteresan bir cümle olmuyor mu? Kavram kargaşası ve karambol yaratıp insanların kafasını karıştırmak pek hazzedilesi bir şey olmasa gerek ;-)
# C++ desteği 2005 yılında sona eriyor. Yani bu tarihten sonra çıkacak uygulamalarla .net kodu geliştirmek için c# bilme zorunluluğu var. Daha açık anlatırsak, sizin çalıştığınız şirket o zamana kadar avantajlarından dolayı .net i tercih etmişse ve sizde c# bilmiyor ve yeni çıkan programlarla uygulama geliştirmeniz gerekiyorsa...
... derim ki nasıl olsa bu alet 37 dilden birini destekliyordu. Ben de onlardan birini kullanırım, C# olması şart değil, misal içinde bulunduğum 5 kişilik ekipteki 4 kişi C# kullansın ne fark eder ben gider X.NET dilini kullanırım. Dil bağımsız ya ;-) Telaşa mahal yok di mi?
GARP CEPHESİNDE DEĞİŞEN BİR ŞEY YOK
Değişen bir şeyler var ama bu anlatılardan çok daha farklı, kapsamlı ve derin. Balonların ötesinde.