.Net Günlükleri — .Net 5 geliyor ama ne anlama geliyor?

Orhun Begendi
4 min readJun 18, 2019

--

Merhabalar herkese,

Herhangi bir düzene bağlı kalmadan aklımdakileri karaladığım bu seride Microsoft’un son açıkladıklarını kısaca bir yorumlamak istedim. Yorumlamalar tamamen subjektif olup tamamı bana ait düşüncelerdir.

Mayısın başında takip ettiyseniz Build 2019 yapıldı. Baya ilginç teknolojiler tanıttılar. Özellikle Azure tarafında baya güzel özellikler geliyor gibi duruyor.

Neler dediler?

Yaptıkları terminal baya güzel olmuş. Bunu yıllardır insanlar istediği için gelmesi değil bu kadar geç gelmesi şaşırtıcı oldu. Kanımca çok fail eden bir şirket imajından Microsoft yaptı mı böyle yapar imajına dönmek istediklerini gayet net bir biçimde gösteriyor. Zaten yaptıkları Open Source atılımları ve VS Code projeleri bu açıdan mihenk taşı oldu. Tabi bu bardağın dolu tarafı! Diğer bir açıdan bakınca bu Open Source proje kardeşim, burada hata olur, bir PR bozmuş bunu nabalım diyip işin içinden çıkıyor. Şahsen ben Production seviyesinde 3 kritik hata yaşadım. Helper’ları çöp gibi yapmışlar ama nabalım Open Source böyle bir şey diyip kapattılar issue’ları. Haksız değiller tabi çoğu Open Source proje böyle oluyor genelde. Ama itiraf etmeliyim ki böyle yaparak üzerindeki okları açık kaynak felsefesine doğru yönlendirdiler, çok zekice hamle.

.Net 5 olacak dediler. Bu olay baya karışık bir olay neden şimdi açıkladılar emin değilim. Gideceği nokta o zaten ama bir sorunu Google’lamak gerçekten zorlaşacak eski .net yeni .net yani dotnet falan derken keyword seçimi iyice karışır dolayısıyla mantıklar ve runtime’larda karışır iyice gibi geldi. Çok mantıklı değil bence.

JIT ortaklaştırıyoruz dediler. Yani Java’da yapmışlardı bunu sonra Oracle alıp bok etti bu byte code mantıklarını, umarım öyle olmaz ne diyelim.

C# çok acayip olacak dediler. Baktım gerçekten o nedir ya dedim. Kullanılmayacak sırf bulunsun diye tonla özellik. İlginç bir şekilde default value içeren reference type object’ler var. Şimdi mülakatta reference type vs value type sorusu sorunca string bir value type mı oldu yoksa hala reference type mı? Ben bile emin değilim artık.

WSL çok iyi buna kötü diyen varsa sırf haterlıktandır. CI’lar için de dev ortamı içinde çok güzel işleyen bir sistem.

Kubernetes on Azure’da çok güzel şeyler anlattılar. Keşke böyle bir ortam olsada böyle geliştirme yapsak dedim resmen.

GraphQL için sonunda adam akıllı çözüm sundular. Artık ferah ferah kullanabiliriz ve şu aptal RESTful ameleliğinden kurtuluruz. Gerçekten Rest kurallarına uyacak diye bir sayfa render etmek için 45 request atmak kadar aptalca bir şey olamaz.

En boş yatırım ise Microsoft Edge. Ya kimse kullanmıyor hala geliştiriyorlar. Gerçi Chrome yakın zamanda milletin elinde kalacak orada farklı browser arayışları olan kişileri toplamak için yapıyor da boşa hamle. Bu da çok uzak olmayan bir gelecekte sonlandırılır.

.Net’in geleceğine bir bakalım

.Net 5 olcak her şey birleşecek dediler. 2020'yi bulacakmış adım adım. Roadmap’e Github’dan bakabilirsiniz. Orada da anlatmışlar. Adamların tek derdi her yer C# olsun .Net olsun. Python ve o community varken ML’de kütüphanesiz bir şekilde ML.Net çıkartmak nedendir bilmem. Gerçekten çok paraları var herhalde.

2020'de böyle bir resim içerisinde çalışacakmışız

Microsoft projelerinde aktif çalışan bir kaç kişiden öğrendiğime göre sırf tüm platformlarda varız, tek dil, tek runtime, tek ide, tüm platformlar gibi bir laf edebilmek için Xamarin’i almışlar. Bu tek dil falan olayları için fikri kimden aldılar acaba? Aklıma biri geldi alakasız.

.Net’te neler olacak, developerlar’a neler olacak?

Bir kaç teknolojiyi hayatımızdan çıkarıp yenilerini sokacaklar. Muadilleri değil ama bunu kullanın diye bir diretme içine girdiler. Artık WebForms, WCF, WF(workflow) hayatımızda olmayacak. WinForms Windows’da var ama diğer platformlara gelir mi belirsiz şu an.

WCF olmadan nasıl SOAP yazıcak, ASP.NET tek başına yetmiyor diyenler olabilir. Burada bence çok iyi olacak bir teknolojiyi core olarak sisteme sokuyorlar. O da gRPC. Daha iyi bir RPC protokolü. Google zaten yıllardır kullanıyor.

Birde Blazor geliyor ki, hiç uğraşmadım çok da açmadı beni açıkcası. Yani Frontend framework’leri var, Asp.Net falan var. Şu an çözemediğim bir sorunu çözmüyor. WebAssembly biraz gelişsin bakarız ileri de diyorum. Her teknolojiye kafalama atlamamak lazım. Hele Microsoft’sa bu iyice dikkat etmek lazım. Adamlar kafasına göre proje sonlandırıyor.

Release tarihleri böyle olacakmış

Yukarıdaki resme göre pozisyon almakta fayda var. Şu an çalıştığınız şirket zaten hala .Net 4.5 falan kullanıyor muhtemelen ama siz kendinize yatırım yapıp bu tip şeylere hazırlıklı olun. Başka işlerde çalışırken ilginç projelerle uğraşırken bu tip teknolojiler size inanılmaz hız katabilir. .Net kullanmıyor olsanız bile bakmakta fayda var. Herkesin microservices ile geliştirme yaptığı ortamda sizin servisiniz basit bir işi yapması gereken bir servis olabilir. Bunu hızlıca belki gRPC ile kodlayıp biraz övgü toplamayı becerebilirsiniz.

Son açıklamalardan sonra DB write/read yapan, basit logicler işleyen, ya da basit bir SOAP servisi için .Net kullanmaya devam edeceğim. Data process ve FE işlerini desteklemesi açısından hala .Net ve IDE hantallığı probleminden dolayı nodeJS’le devam edebilirim ama .Net’te bu konuda boş değil bir ara deneyip Production’da görmeyi umuyorum. Yeni favorim Golang’le bir web servis yazdım ama gerçekten beğenmedim, güzel dil, güzel bir yapısı var ama render vb. işlerde aşması gereken çok sorun var. Şu an bir render engine ve web framework olarak Golang ekosistemini seçmek için ya erken ya uygun değil. Biraz daha kurcalayıp bilgi topladıktan sonra belki bu konu hakkında blog yazabilirim.

Herkese iyi okumalar.

Saygılarımla.

--

--

Orhun Begendi

Senior Enginner, Tech Lead, Hardcore Developer, Software Craftsman.