C# 6.0 – İstisna Filtreleri

   İstisna Filtreleri (Exception Filters), bence C# 6 ile birlikte gelen önemli, bir o kadar da dikkatle yaklaşılması gereken bir yenilik. Alışa geldiğimiz try-catch bloklarında yakalanan istisnanın hangi iş mantığı bloğunca işleneceği tek bir kritere bağlıdır; istisnanın türü. C# 6 ile birlikte bu mantık bir adım ileri taşınarak ek bir kontrol cümleciği ile daha iyi...
Okumaya devam...

C# 6.0 – Static Using Cümlecikleri

   Hızla C#’ın bir sonraki sürümünde karışılacağımız yenilikleri sizlerle paylaşırken sırada görece basit; ama kod yazarken seveceğiniz bir yenilik var. Dil geliştiricilerin bu sürümde özellikle derleyiciye yoğunlaştığını düşünürsek bu makalemde detaylarını paylaşacağım static using cümleciği gibi sözdizimsel ‘şekerlemelerin’ de eklenmiş olmasına şaşırmamak lazım.    Static using cümlecikleri ile birlikte kaynak kodumuzda using ifadesi ile belirttiğimiz...
Okumaya devam...

C# 6.0 – Expression Bodied Functions

   C# 6 ile birlikte gelen yenilikleri incelediğimiz makale serisinde sırada Expression Bodied Functions (İfade Gövdeli Fonksiyonlar) var. Expression Bodied Functions ile birlikte; Lambda ifadeleri ile birlikte tanıştığımız sadeleşmiş fonksiyon ifadelerindeki kullanım kolaylığı sınıfların üye fonksiyonlarına da taşınmakta. Buna göre artık basit fonksiyonlarımızı lambda ifadelerine benzer şekilde tanımlayabilmemiz mümkün oluyor.    Yukarıdaki fonksiyonu ele alalım....
Okumaya devam...

C# 6.0 – Primary Constructors

   C# 6 makale serisinde hızla ilerlemeye devam ederken sıra geldi Primary Constructers konusuna değinmeye. Önceki  konuları incelerken, özellikle de Pattern Matching (desen eşleştirme) konusunda eminim ki fark etmişsinizdir; C#’ta giderek artan bir şekilde fonksiyonel programlama etkileri hissedilmekte. Özellikle F# dilinin bu etkide önemli bir payı olduğunu söylememiz mümkün. Kuşkusuz ki; Primary Constructers’da bu etkilerle...
Okumaya devam...

C# 6.0 – Auto-Property İyileştirmeleri

   C# 6’nın çıkış tarihi yaklaşırken önceki paylaşımlarında olduğu gibi planlanan özeillikleri yanında artık netleşmiş ve CTP’ler ile karşımıza çıkan özelliklerini anlatmanın zamanı geldi. Bu makalemde bu yeniliklerden Auto-Property’ler üzerinde yapılmış olan iyileştirmelerden bahsedeceğim.    C# dilinin gelişimini mercek altına aldığımızda CLR seviyesinde yapılan iyileştirmeler yanında, hatta çok daha fazla şekilde dil yapılarında iyileştirmelerin yapıldığını...
Okumaya devam...

C# 6.0 – Desen Eşleştirme (Taslak Önerisi)

   Özellikle Roslyn projesinin .NET Compiler Platform adıyla açık kaynak olarak geliştirilmeye devam etmesi ardından C# 6 çalışmaları da ivmelendi. Açık kaynak kod geliştiricilerinden destek gelmesi ve C#’a yeni özellikler katma isteği bu ivmenin dinamikleri arasında yer alıyor. Çalışmalar hızla devam ederken, geçtiğimiz hafta içerisinde yeni bir gelişme yaşandı. C# diline yeni bir özellik eklenmesi...
Okumaya devam...

C# 6.0 – Record Sınıfı (Taslak Önerisi)

   Özellikle Roslyn projesinin .NET Compiler Platform adıyla açık kaynak olarak geliştirilmeye devam etmesi ardından C# 6 çalışmaları da ivmelendi. Açık kaynak kod geliştiricilerinden destek gelmesi ve C#’a yeni özellikler katma isteği bu ivmenin dinamikleri arasında yer alıyor. Çalışmalar hızla devam ederken, geçtiğimiz hafta içerisinde yeni bir gelişme yaşandı. C# diline yeni bir özellik eklenmesi...
Okumaya devam...

Raspberry Pi – Mono ile GPIO işlemleri

   Raspberry Pi’mize mono kurulumunu gerçekleştirdikten sonra sıra geldi eğlenceli şeyler yapmaya. Bu makalemde, birlikte ilk GPIO işlemimizi gerçekleştireceğiz.    Raspberry Pi üzerinde yer alan GPIO pinlerini kullanmak malesef ki mono ile birlikte gelen hazır bir kütüphane bulunmuyor. Hemen üzülmeyin, C# içerisinde GPIO kullanımının bir kaç farklı yolu bulunuyor. Bu yöntemlere geçmeden, Raspberry Pi üzerinde...
Okumaya devam...

Raspberry Pi GPIO Kütüphanesi Yayında

   Mono ile geliştirdiğiniz Raspberry Pi uygulamalarınızda GPIO pinlerini yönetmekte kullanabileceğiniz RPI.GPIO kütüphanesi yayınlandı.    WiringPi kütüphanesi üzerime C# wrapper olarak geliştirilen Enterprisecoding RPI.GPIO kütüphanesi kaynak kodlarına https://github.com/fatihboy/RPI.GPIO adresinden erişebilirsiniz. Visual Studio üzerinde geliştirdiğiniz projelerinizde kullanabileceğiniz NuGet paketini ise aşağıdaki şekilde paket konsolundan yükleyebilirsiniz; PM> Install-Package Enterprisecoding.RPI.GPIO...
Okumaya devam...

Profesyonel Projelerimizde Dependency Injection Yaklaşımı

   Dependency Injection makele serisinde geldiğimiz noktada sıra geldi bir solution üzerinden konuyu örneklemeye. Aslında, bu makalemde paylaşacaklarım örneklemeden öte olacak. Amacım iş hayatınızda kullanabileceğiniz bir yaklaşım, bir metodolojiyi sizlerle paylaşmak. Bu sebeple dikkatle okumanızı tavsiye ederim. Öncelikle, gevşek bağlı (loosely coupled) uygulamalar geliştirmenin ne kadar önemli olduğunu bir kez daha hatırlatmak isterim. Hatta önemli...
Okumaya devam...