• open source olması çok çok büyük bir hamle. en başta çok pahalı bir hamle, microsoft her satır kodun legal problem yaratma bedelini ödemiş ve gelecekteki risklerin hepsini göze almış.

    ancak microsoft kendisine baya büyük bir alan açmış oldu. en başta cloud pazarında azure'dan bağımsız olarak .net teknoloji olarak yerini sağlamlaştırabilecek imkana kavuştu. bu hem pazarı hem beraberinde azure'u besleyecek.

    oracle karşısında çok büyük bir kaldıraç elde etti. sihirli değnek değil ama sırf cross platform diye ortalıkta rahat rahat pijamalarıyla takılan oracle'ın java'yla ilgili stratejilerinde vites değiştirmesi gerekecek.

    uzun vadede windows store uygulamalarının sayısını arttıracak olaylar zincirini kıvılcımlamış oldu. windows store can çekişiyordu, yakında "windows sürümünü çıkartmayanı dövüyorlar" dedirtebilecek bir imkan elde etti. xamarin'in mono yerine .net core'a geçeceğini farz ederek, umarak diyorum.

    gördüğüm kadarıyla yurtdışında da geliştiricileri çok heyecanlandırmış. uzun zamandır microsoft'tan gördüğüm en büyük ve en radikal hamlelerden biri. steve ballmer'ın gitmesi bu kadar mı uğurlu gelir arkadaş?
  • .net'ten anladığım şey şu;

    diyelim ki hallederiz kadir lotodan parayı vuruyor ve kendine holding kuruyor.(microsoft) bu holdingin alt kolu hallederiz aş.(.net)

    hallederiz aş'nin amacı bir evde oluşabilecek sorunlara çözüm üretmek.
    .net'in amacı yazılım geliştirme aşamasındaki sorunlara çözüm üretmek.

    bir evin tesisat, doğalgaz, elektrik, elektronik gibi sorunları standart hale geliyor ve bu sorunları çözmek için buna uygun elemanlar, ekipman alıp o konuda uzman bir şirket kuruluyor.

    misal kadir elektronik'te elektronik mühendisleri, teknisyenleri çalışırken kontrol kalemi, avometre, direnç, transistör, vb. ekipmanlar varken kadir halı yıkamada halı yıkamadan anlayan kişiler çalışırken halı yıkama makinesi, deterjan, elektrikli süpürge vs ekipmanlar bulunuyor.

    bunu .net'e uyarlarsak asp.net web siteleri için hazırlanmış bir framework. yani haliyle bu framework'te web sayfası geliştirmek için classlar, metotlar ve propertyler varken, unity oyun geliştirme ile ilgili bir oyun motoru(bir nevi gelişmiş framework) ve haliyle oyun ile ilgili class'lar, metotlar ve property'ler mevcut.

    bir evi komple yenilediğimizi düşünelim. tesisatçı, parkeci, elektrikçi, elektronikçi belli bir uyum içinde çalışmalıdır ki sağlıklı bir sonuç elde edebilelim.

    işte bu uyumu kadir aş sağlarken yazılımda bu uyumu .net sağlıyor. .net aslında bütün framework, class vesairelerin uyum içinde çalışmasını sağlayan bir sistem.

    bu sistemin arkasında kim var? bill gates. bill gates'in arkasında kimler var? dış güçler. demek ki hallederiz kadir'in arkasında da dış güçler var.

    benim .net'ten anladığım şey bu. yanlışım varsa düzeltirseniz sevinirim.

    peşin edit: benim gibi henüz yazılımcı değil de yazılımcık olanların kafasını en çok karıştıran şey .net, .net framework, .net framework core üçlüsüydü. burada berbat bir isimlendirme, bir strateji hatası, onun düzeltilmesi mevcut sanırım. bu amerikalılar harbiden isim verme konusunda berbatlar. adamlar kaptan amerikanın öldüğü çizgi romanın adını da kaptan amerika'nın ölümü olarak vermişti.

    şimdi benim bundan da anladığım şey şu;

    yukarıda anlatmaya çalıştığım yapı 1 ocak 2002'de .net framework adı altında çıkıyor. fakat sadece windows platformunda çalışıyor. dünyada 8 milyar insan var. yarısı microsoft kullanmasa 4 milyar potansiyel müşterinin kaybı demek. haliyle insanlar buna pek yanaşmıyor.

    en sonunda bill bu böyle gitmez diyerek .net framework'ü sadece windows platformunda çalışacak şekilde çıkartmaya devam ediyor fakat multi platform(ios, linux vb yerlerde de çalışan) çalışan .net framework core'u 27 haziran 2016'da çıkartıyor. .net framework'e ek olarak .net framework core, performans olarak çok daha gelişmiş bir halde ve ek bir çok özellik mevcut.

    şimdi burada da şöyle bir sorun var. .net framework hem daha hantal hem tek platform çalışıyor. .net framework core hem multi platform hem daha performanslı.

    yani 5 liraya 1 tane meybuz mu almak istersiniz 3 tane magnum mu? haliyle herkes 3 tane magnumu seçiyor, yani .net framework core'da çalışıyor, kimse .net framework'ün yüzüne bakmıyor.

    bill bu mallığı nihayet fark ediyor.(dünyayı yöneteceğine şirketi yönet önce bill)

    .net framework'ü 4.8 sürümünde 18 nisan 2019'da tamemen iptal ediyor.
    .net framework core'un da adını .net olarak değiştiriyor.
    10 kasım 2020'de .net 5.0 ile bu kafa karışıklığı bitiyor.

    artık .net adı altında tek bir platformda çalışılıyor. yeni sürümler .net 6(long term support), .net 7(son sürüm) .net 8(yeni gelecek olan) adları altında kafa karışıklığı ve yukarıda anlattığım abukluklar olmadan düzgün bir biçimde geliyor.

    buradan da anladığım bu. yanlışım varsa söylerseniz değiştiririm.
  • bugün .net ile beraber react, angular, vue gibi spa'ları kodlayabilirsiniz, mvc, razor page, blazor gibi server tabanlı çözümler yapabilirsiniz microsoft bunların dokümantasyonunu sunduğu gibi resmi templateleri de var.
    servislerinizi dockerize edip linux'da yayınlabilirsiniz. .net core'dan itibaren mac, linux gibi os'larda rahatça kodlama yaparsanız. artı olarak visual studio gibi bir efsane ideyi kullanabilirsiniz. .net maui ile ios ve androide uygulama geliştirebilirsiniz. .net deki sadece linq bile diğer frameworkler kopyalamaya çalışıyor. yani djangoyla falan kıyaslamak komik oluyor. derdiniz performans ise node.js'den de yaklaşık 7 kat hızlı. millet heralde webformla sürükle bırak yapıyoruz sanıyor. ayrıca stackoverflowun 2021 anketinde en çok sevilen backend frameworkü seçilmişti.

    edit: en sevilen frameworkler
    mobil geliştirme için .net maui
    mac'de editör için vs code
  • %100 microsoft teknolojisi.

    hatri sayilir bir sure java kastiktan sonra, c# insana ilk etapta cok heyecan verici geliyor. en uygun ide olan visual studio'da iki tiklama ile yapabildiklerinize sasiyorsunuz.. ancak aci gercekler zamanla aciga cikiyor:

    - arka planda binlerce satir sacma sapan kod yigiliyor.

    son derece basit bir web servisi icin otomatiklestirilmis proseduru izledigimizde, arka planda 100 bilemedin 200 satirda halledilebilecek is icin 1000 kusur satir kod biriktigini hayretle gorduk. java manyagi ekip arkadasim bu duruma gicik oldu ve kodu kendisi yazarak ~150 satira cekti; hem compiler rahatladi hem de server. hani kassak 100'e de inecek o kod, adimiz gibi eminiz.

    - visual studio, windows formu hazirlarken koda mudahale etmenizden nefret ediyor! oyle ki, kod uzerinde calistiktan sonra form designer'a dondugunuzde bazi kontrollerin (ne hikmetse ozellikle combobox'larin) uctugunu sinirle gozlemliyoruz!

    - kutuphane genis ama darmadagin.. aradiginiz sey kimi zaman tamamen alakasiz bir yerlerde karsiniza cikiyor.

    - yakin zamanda ciddi guvenlik aciklari vardi; kimisi security kutuphanesinde! ms bu guvenlik aciklarini son guvenlik guncellemeleri ile kapatmis durumda; ama eminim ki bir ms klasigi daha yakinda..

    - web servisleri, formlar, binding... gibi artik kemiklesmis yapilarda size gercekten hiz kazandiriyor, iyi calisiyor. ama oldu ki nispeten daha az populer bir yapi/teknoloji kullanacaksaniz yandiniz!

    ornek: bir projede serialization kullanmaya karar verdik.. java tecrubemizden olsa gerek, object.serialize() gibi basit bir seyler bekliyorduk. megersem, kolaylastiralim/modernlestirelim diye dusunmus elemanlar ve 3 farkli secenek sunmuslar bu islem icin. tam da bu ana kadar her sey pek guzel pek iyiydi...

    ama bundan sonrasi birden kabusa donusuverdi... formatter'lardan 2'si malesef yemedi. (aldigimiz hata mesajlari da tam evlere senlik. mesela birisi suydu: "object is too complicated to be serialized"! nesi complicated a ibiş? alti ustu 3 tane float, bir tane de buna benzer obje iceriyor???). buna benzer bir suru sacma-sapan hatalar aldik; ki her birisi icin forumlarda sdk'yi uninstall/reinstall etmekten tutun, farkli bir admin hesabi ile sisteme girmeye kadar binbir farkli sebekce cozum onerisi vardi. uzatmayayim, sonunda 2 dakikalik isi 1 gun harcayarak hallettik; gel gor ki java kullanarak 1-2 kb'i gecmeyen serialization islemi bize 40 kb'a patladi.

    - her seyi gectim; en temel uygulama gelistirme islemi icin kullanmak durumunda oldugunuz teknolojiler beni rahatsiz ediyor bir kere: microsoft windows isletim sistemi, iis, microsoft sql server, microsoft visual sourcesafe... tekellesmenin onde gideni bu; cogu durumda baska seceneginiz yok..

    bu noktada bir ornek daha vermeden gecemeyecegim; 1 yil once turkiye'nin onde gelen kurumlarindan birisinde stajimi yapmistim. zamanla, kendilerine coder diyen calisanlarin yazdiklari igrenc otesi kodlari gorup saskina donmustum. oyle ki, en basit uygulamada bile bir alt kattaki canavarvari serverdan yanit gelmesi 5 saniye surebiliyordu (ve hayir, network sorunsuz isliyordu).

    zamanla sorunu anlamistim: oldukca janjanli gorunen bu kurumda yazilim gelistirme isi .net ile yapilmaktaydi. tabii ki teknolojinin sucu yok bu iste pek: ama ms'in klasik mantigini gormemek imkansizdi: iki tiklama ile orta derecede projeleri halletmek mumkundu. tabii verimlilik filan hak getire... siz buna bir de calisanlarin "aha tamam calisiyor, is bitmistir! eheheh.." yaklasimlarini ekleyin...

    kisacasi; evet gercekten .net ile iki saniye icinde harikalar yaratmaniz mumkun. bunun icin 4 yil kasip bilgisayar egitimi almaniza da gerek yok; bilge adam vs gibi yogurdun kaymagi duskunu bir kursa milyarlari bayilirsiniz ve cidden bir kac ay icinde c#/vb ile sakir sakir uygulama gelistirebilir hale gelirsiniz.

    tabii bu hazir kahve mantigi ile, abartisiz 500 mhz. islemcili bir server'in rahatlikla host edecegi server uygulamalari icin dual opteron islemcili bilmem kac gigahertz serverlara abandikca abanirsiniz. ama sorun etmenin alemi yok tabii;

    "aha tamam calisiyor, is bitmistir! eheheh.." nasilsa..
  • sürükle bırak mantığının bokunu çıkarmış platform, önüne gelen deli proje yazarım yazdığım projeyi 10 dakikada bitiririm deyip iş başvurusu yapıyor bugün bunu gördüm, .net ile ne isterseniz yaparım diyen birine eklediğin griddeki şu alanı şöyle yap şurası da böyle olsun dediğiniz de ama olur mu bu hazır component bunun burası böyle şurası da şöyle değiştiremezsin cevabını almanız muhtemel, bu durumda lamer kavramının yanında develomer kavramını da yaratmıştırtır kendisi bizlere. iki tık bir drag drop al sana program diyen programcıların cirit atmasına ön ayak olmuştur.
  • yazdığınız her kodun ister istemez "open source" olduğu platform. müşterilerinize verdiğiniz her ".exe" dosyasının içi görülebiliyor kabak gibi. herkesin bildiği muhasebe, stok vb. sistemler yapıyorsanız pek sorun değil ama kritik kodlarınızı (mesela parmak izi tanıma) hoplayıp zıplayıp dll dosyalarına gömmek, p/invoke ile çalıştırmak zorunda kalıyorsunuz ki bu da aynı dll dosyasını hem arm işlemcilere göre hem de x86 işlemcilere göre üretmenizi filan gerektiriyor. windows mobile ile rahat rahat kod yazar çalıştırırım diye düşünmeyin yani. açık kaynak koduyla verdiğinizi unutmayın. *
  • kaçak kullanamayacağınız, professional versiyonunu alamayacağınız zımbırtı. zira kendisi windows üzerinde çalışan bir runtimedan ve c++, c# gibi dillerde bu runtime'ı kullanmak için ihtiyaç duyacağınız kütüphanelerden oluşan bir geliştirme platformu ve bu platformu kullanmak için bir lisansa ihtiyacınız yok. özgür yazılım değil ama beleş yazılım yani.

    geliştirme ortamı olan visual studiodan bahsediyorsanız ayrı. ha, ona da para vermek zorunda değilsiniz, express edition'unu indirin tepe tepe kullanın. kimseye zırnık koklatmanıza gerek yok.
  • web üzerine çalışan hemen her yazılımcının, bilmesi gerektiği iddia edilen, microsoft teknolojileri tabanlı platform.
    (bkz: asp.net)

    bir kaç farklı "öğrenmelisin" önerisinden sonra, tatilimi asp.net kitabımla geçirmeye karar verdim ve kitabın ilk bölümündeki .net platformuna giriş kısmından öğrendiklerimi yazayım da belki bir faydam dokunur diye düşünerek de bu başlığın altına geldim.

    .net ; microsoft'un kendi ürettiği yazılım geliştirme teknolojilerini tek çatı altında topladığı platformun adı. yani sadece web değil, masaüstü veya mobil uygulama geliştirmek için de bu çatı altına girip, bildiğiniz tek programlama dili ile işinizi gücünüzü halledebiliyorsunuz. daha doğrusu her platform için farklı programlama dili öğrenmenize gerek kalmayan bir teknoloji. okuduklarıma dayanarak, bu duruma uyuz olanlar ve bu durumu ölümüne savunanlar olarak yazılımcılar ikiye ayrılmış durumda. henüz başlangıçta olduğum için ben tarafsız olmayı tercih ediyorum.

    .net mimarisi üzerine iki kelam edecek olursak; en alt katmanda, clr yani common language runtime adında, ortak dil çalışma platformu yer alıyor. görevi; .net'de yazılan kodun, işletim sisteminin anlayacağı bir dile çevirmek. bunu yaparken de öncelikle msil dediğimiz ara bir dile çeviriyor. bunun nedeni ise platformda bulunan farklı diller. yani diyor ki c# ile yazdığın kodun assembly'e çevrilmesi ile vb.net'te geliştirilen uygulamanın kodlarını assembly'e dönüştürmek farklı işler. böyle ara bir dil olsun, dirliğimiz birliğimiz bozulmasın. sonra da bu msil'e dönüştürdüğün kodları jit adını verdiğimiz derleyiciler yardımı ile assembly'e dönüştürüp işletimi sistemi üzerinde çalıştırma var. hafıza durumumuza göre, performansımızı belirleyecek jit'in versiyonları var. ama tabi bu kısımların hepsi teknik, hepsi framework'un senin haberin olmadan arka planda yaptığı şeyler.o yüzden bilemekte fayda var ama çok da şey yapmamak lazım diye düşünüyorum.

    her neyse, ileride bu platformda çalışıp, çalışmayacağımı bilemiyorum. şimdilik hayırlısı deyip kendi adıma yazılım kuşağının bugünlük sonuna geliyorum.
  • kendi tecrübesizliğini platforma yükleyenler olduğunu görüyoruz bu başlıkta. geçmişten günümüze şu anda açık ara en çok kullanılan platformlardan birisidir.
    ayrica visual studio ya bok atmayın, allah çarpar. siz nasıl ideler kullanıyorsunuz hakikaten çok merak ediyorum...
hesabın var mı? giriş yap