Bir .Net Geliştiricisinin Ruby ile İmtihanı

Yaklaşık 15 yıldır aktif olarak yazılım geliştirme işinde yer alıyorum. Son 4 yıldır ise bir bankanın kurumsal çözümlerinde çalışıyorum. Tüm yazılım hayatım boyunca ağırlıklı olarak .Net platformu üzerinde çalıştım. Zaman ilerledikçe sürekli olarak aynı şeylerle uğraşmamın beni paslandırdığını gördüm. İçimdeki araştırmacı kişiliği uyandıracak, beni tekrardan keyiflendirecek bir şeyler gerekiyordu. Sonuç olarak çok sıkıldığım bir günün devamında "yeni ne öğrenebilirim?" diye araştırmaya karar verdim. Daha önceden Java ile ilgili bir maceram olmuş ve 24 bölümlük bir makale serisi hazırlayabilmiştim. O zamanlar epeyce keyif alıyordum. Bu kez düşünce yapım biraz daha farklıkaştı. Çocuklara nasıl programlama öğretilebilir fikrinden yola çıktım. İlk iş bir Lego yapmaktı ? ve devamı geldi... [Daha fazla]

IIS RESTful API Hello World

Öğrendiğime göre Microsoft IIS(Internet Information Services) takımı yönetimsel işlemler için Asp.Net Core teknolojisini kullanan RESTFul tipinden bir servis üzerinde çalışmalar yapmakta. Micro Service mimarisi benimsenerek geliştirilen alt yapı, kullanıcılarına IIS Administration ile ilgili gerekli fonksiyonellikleri modern bir API olarak sunuyor. API, Self-Hosted Window Service olarak yayınlanmakta. In-Proc çalışmalar için Hostable Web Core yapısına da sahip. Aşağıdaki şekil teknik mimarisi hakkında biraz daha fikir verecektir. (Takımın çizdiği mimari resim kadar başarılı değil ama bakmadan çizmeye çalışırsanız konuyu güzelce pekiştirebilirsiniz) [Daha fazla]

Tek Fotoluk İpucu 131 - Servisim Yaşıyor mu?

Böyle yeni bir şeyler öğrenmek için enerji bulamadığım vakitler oluyor zaman zaman. Ya çevremdekilerin ya da işlerin etkisi ile azalır enerjim. Bir şeyler öğrenmeyince de kendimi kötü hissettiğimden en azından genişletme metodu(Extension Method) yazmaya çalışayım da pas tutmayım derim. Tabii önce konu seçmek gerekir. Bu kez aklıma "bir servisin yaşayıp yaşamadığını nasıl anlarım?" sorusu takıldı. Mesela bir Uri için Http durum kodu bilgisinin 200 olmasını kontrol eden bir genişletme metodu yazabilirdim. Örneğin aşağıdaki fotoğrafta görüldüğü gibi. [Daha fazla]

Instagram REST Servislerinin .Net Tarafında Basit Kullanımı

Neredeyse hepimizin sosyal ağ üzerinde hesapları bulunuyor. Facebook, Twitter, Instagram, Youtube, Flickr ve benzerlerini bunlara örnek olarak verebiliriz. Bu ağlar pek tabii kendi hizmetlerini geliştiricilerin kullanımına da uzun zamandır açmış durumdalar. Geliştirici olarak bizleri bu kısım daha çok ilgilendiriyor. Peki bu tip ağlar geliştiricilere kendi hizmetlerini nasıl sunuyorlar? Bunun en bilinen ve ortak yanı pek tabii ki servisler şeklinde yayınlanmaları. Burada kullanılacak olan servislerin istemci uygulamaların ne tipte olduğuna bakılmaksızın ortak bir standartta çalışması önemli. İşte bu noktada devreye REST(Representational State Transfer) yaklaşımını benimseyen servisler geliyor. [Daha fazla]

Business Delegate Pattern

Epey zamandır tasarım kalıpları tarafına bakmadığımı fark ettim. Hem kalıpları tekrar etmek hem de yeni bir şeyler var mı diye internette gezinirken JEE tarafında sıklıkla başvurulan Business Delegate isimli bir desene rastladım. Aslında delegate dediğimiz zaman bir işi başkasına devrettiğimizi düşünebiliriz (Delegasyon ile ilgili olarak internette resim ararken de işte yandaki gibi eğlenceli bir tanesine rastladım) Business Delegate kalıbı temel olarak sunum katmanı(presentation layer) ile iş katmanını(Business Layer) arasındaki iletişimde aynı isimli fonksiyonların ele alınmasında değerlendiriliyor. Zaten adından da anlaşılacağı üzere sunum katmanındaki bir fonksiyonelliğin asıl iş katmanındaki karşılığına devredilmesi söz konusu. Burada önemli noktalardan birisi talebi olan nesnenin talep ile ilgili içeriği(Context diyebiliriz) aynen ikinci bir nesneye delege etmesidir. [Daha fazla]