Category Archives: C#

Raspberry Pi – Windows IoT Core; Merhaba Dünya
Windows IoT Core’u Raspberry Pi 2’ye kurduysanız şimdi sıra geldi ilk adımlarımızı atmaya. Herşeyden önce, Raspberry Pi 2’ye uzaktan nasıl bağlanacağımızı öğrenmekte fayda var. Windows IoT Core bir masaüstüne arayüzüne sahip olmadığı için yapılandırma işlerimizi uzaktan bağlanarak yapabiliriz. Bu konudaki yardımcımız da PowerShell’in uzaktan oturumları olacak. Varsayılan güvenlik ayarları nedeniyle PowerShell’den uzaktaki bir…

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…

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…

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….
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ı…
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…

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…
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…
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

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…