AWS Lambda Üzerinde .Net Core Koşturmak 12 Ocak 2018 Burak-Selim-Senyurt .Net Core, AWS Bu yazımızda Amazon Web Service'lerinden Lambda ürününü kullanmaya çalışıyoruz. Geliştireceğimiz basit bir Asp.Net Core Web API hizmetini Lambda üzerine fonksiyon olarak yerleştiriyoruz. [Daha fazla]
Nginx Üzerinde Web API Servisi Çalıştırmak 05 Ocak 2018 Burak-Selim-Senyurt .Net Core Nginx(Engine X olarak telafuz ediliyor) Kazakistan Almatı doğumlu bilgisyar programcısı Igor Sysoev tarafından 2002 yılında geliştirilmeye başlanmış ve 2004 yılında ürünleşmiş açık kaynak bir web sunucusudur. İlk olarak mail.ru için mail sunucu olarak geliştirilmiş ama sonrasında çok daha geniş yetenekler kazanarak web siteleri için Apache'den çok daha hızlı çalışabilen bir sunucu haline gelmiştir. Henüz doğrulayamadığım ama genel kabul görmüş bazı performans testlerine göre muadili olan Apache ve Lightpdd gibi ürünlere göre çok yüksek cevap süreleri ve minimum bellek tüketimi sağlamaktadır. Bu açılardan oldukça popüler olduğunu ifade edebiliriz. Yük dengeleme(Load Balancing), Sana sunucu(Virtual Host), Otomatik indeksleme ve ters vekil sunucu(Reverse Proxy) gibi temel özellikleri vardır. [Daha fazla]
.Net Core Tarafında SignalR Kullanımı 01 Ocak 2018 Burak-Selim-Senyurt Asp.Net Core Bir süre önce araştırmaya başladığım ama araya giren diğer konular(WebSockets ve CORS) nedeniyle askıda kalan SignalR ile ilgili West-World tarafında haftasonu önemli gelişmeler oldu. Öncelikle çalıştığım kaynaklardan yararlanarak aşağıdaki özet şekli oluşturdum ve bir örnek yapmaya karar verdim. [Daha fazla]
CORS(Cross-Origin Resource Sharing) 30 Aralık 2017 Burak-Selim-Senyurt .Net Core Bu yazımızda .Net Core WebAPI servislerine CORS(Cross-Orijin Resource Sharing) özelliklerinin nasıl eklenebildiğini inceliyoruz. Konuyu ele alırken CORS'un ne olduğuna da değinir ve örnekler ile açıklamaya çalışıyoruz. [Daha fazla]
Asp.Net Core Web API için Custom MiddleWare Yazmak 18 Aralık 2017 Burak-Selim-Senyurt .Net Core, Asp.Net Core Bu yazımızda IApplicationBuilder arayüzünü genişleterek özelleştirilmiş bir ara katman(MiddleWare) yazıyor ve bunu var olan pipeline'e ekleyerek çalışma zamanında ele alınmasını sağlıyoruz. [Daha fazla]
JWT(JSON Web Token) Kullanımı 08 Aralık 2017 Burak-Selim-Senyurt .Net Core Bu yazımızda .Net Core üzerinde Json Web Token'ların nasıl üretilebileceğini ve bir Web API hizmeti üzerinden nasıl sunulabileceğini incelemeye çalışıyoruz. [Daha fazla]
Apache Kafka ile Konuşmaya Çalışmak 01 Aralık 2017 Burak-Selim-Senyurt .Net Core Bu yazıda West-World'e Apache Kafka'yı kuruyoruz. Basit adımlardan sonra bir .Net Core uygulamasından yararlanarak Kafka ile haberleşmeye çalışıyoruz. [Daha fazla]
Go Web Sunucusunu Docker Üzerinden Yayınlamak 15 Kasım 2017 Burak-Selim-Senyurt GoLang Uzun zamandır Go ile kod yazmıyordum. Özlediğimi ifade edebilirim. Özellikle de kurallarını ve basitliğini. Ana paketteki programın başlangıç noktası olan main içerisinde HandleFunc isimli fonksiyondan yararlanarak root adrese gelecek olan talepleri indexHandler isimli operasyona yönlendiriyoruz. indexHandler içerisinde ise çok basit bir HTML içeriği bastırmaktayız. Elle tutulur bir şeyler olması açısından güncel zaman bilgisini, işletim sistemini, işlemcinin türevini yazdırdıktan sonra 0 ile 100 arasında üretilecek rastgele bir sayı da basıyoruz. [Daha fazla]
Docker Üzerinde .Net Core Uygulaması Çalıştırmak 10 Kasım 2017 Burak-Selim-Senyurt .Net Core Internet üzerinde Docker ile ilgili pek çok bilgi ve kaynağa ulaştım. Ama özellikle Asiye Yiğit'in Linkedin üzerinden paylaştığı yazılar giriş seviyesinde bilgi sahibi olmamı sağladı. Çıkarttığım notlardan yararlanarak konuyu kavramak için şekilleri tekrardan ele aldım ve kısa özet çıkarttım. Öncelikle bu notlarımı temize çekeceğim. Sonrasında Ubuntu üzerine Docker kuracağım. Ardından .Net Core 2.0 için basit bir Console uygulaması yazacağım. Son adımda ise bu uygulamayı Docker üzerinde ayağa kaldıracağım. Haydi gelin başlayalım. [Daha fazla]
Ubuntu'da İlk .Net Core Adımlarım 05 Kasım 2017 Burak-Selim-Senyurt .Net Core Bu yazımızda Ubuntu sistemi üzerine .Net Core 2.0 yükleyip basit bir Console uygulaması yazarak Linux üzerinde Hello World demeye çalışacağız. [Daha fazla]
Tek Fotoluk İpucu 160 - Bir Sertifikanın Base64 Encoded Değerini Bulmak 25 Ekim 2017 Burak-Selim-Senyurt Tek Fotoluk Ipucu Önceki yazımızda WsHttpBinding kullandığımız sertifika tabanlı bir WCF senaryo çalışmamız vardı. Aynı örneği göz önüne alarak BasicHttpBinding kullanabileceğimizi de belirtelim. Nitekim bu bağlayıcı tipi ile de Message tabanlı güvenliği sertifika bazlı gerçekleştirebiliriz. Bunun en gerekli sebeplerinden birisi de servis tüketicilerinin eski nesil uygulamalar olabilmesi sebebiyle sadece SOAP 1.1 haberleşme kurmasıdır. Olmaz demeyin oluyor. [Daha fazla]
WCF - Özelleştirilmiş UsernamePassword Validator Kullanımı 24 Ekim 2017 Burak-Selim-Senyurt WCF Bu makalemizde WCF tarafında Custom UserNamePasswordValidator kullanarak özel doğrulama işlemlerinin nasıl yapılabileceğini incelemeye çalışıyoruz. Senaryomuzda WsHttpBinding ve Message Based Security seçeneklerine yer veriyor, sertifika tabanlı bir alt yapı kurguluyoruz. [Daha fazla]
Asp.Net Core'da Bir WebSocket Macerası 18 Ekim 2017 Burak-Selim-Senyurt Asp.Net Core Web Sockets web uygulamalarında aynı anda çift yönlü haberleşmeye olanak sağlayan bir standart olarak karşımıza çıkmakta. Bu yazıda Asp.Net Core 2.0 tarafında Web Sockets kullanımına bakacağız. [Daha fazla]
.NET Core 2.0 ile Basit Bir Web API Geliştirmek 04 Ekim 2017 Burak-Selim-Senyurt Asp.Net Web API Bir süredir de .Net Core tarafına bakmak ve servis geliştirme noktasında neler yapılabileceğini incelemek istiyordum. İşlerden boşluk bulduğum bir sırada Web API nasıl yazılır araştırayım ve yaptığım örneği bloğuma ekleyeyim istedim. [Daha fazla]
Python - Flask ile Basit Bir Web Uygulaması Geliştirmek 10 Ağustos 2017 Burak-Selim-Senyurt python Python tarafında Flask paketini kullanarak web uygulamaları geliştirmek oldukça basit. Bu yazımızda şablon(template) kullanarak bir Web sayfasından Post işlemi gerçekleştirmeyi deneyeceğiz. [Daha fazla]
GoLang - Redis ile Anlaşmak 04 Ağustos 2017 Burak-Selim-Senyurt GoLang, NoSQL Bir Cumartesi gecesiydi. Dışarıda hava nemli ve sıcaktı. Bir süre önce başlayan yağmurun sesi çalışma odama tatlı tatlı geliyordu. Biraz da toprak kokusu. Evde el ayak çekilmiş sakin bir ortam oluşmuştu. GoLang öğrenme çalışmaları devam ediyordu. Dili ufak ufak kavramaya başlamıştım ama örnek senaryolar işleterek ilerlemem gerektiğini de biliyordum. Derken aklıma eskiden .Net tarafında kullandığım NoSQL sistemlerinden olan Redis ile ilgili bir şeyler yapmak geldi. [Daha fazla]
GoLang - Unit Test Yazmak 27 Temmuz 2017 Burak-Selim-Senyurt GoLang Aranızda birim test(Unit Test) yazmayan hala var mı? diyerek konuya giriş yapmak istiyorum. Yazdığımız atomik fonksiyonelliklerin taşınan ortamlarda başımızı ağrıtmasını istemiyorsak birim testleri mutlaka yazmalıyız. Belki birim testler uygulama geliştirme süresini uzatabilirler ancak uzun vadede kalp krizi geçirme riskini de azaltırlar. Üstelik test senaryoları sayesinde gerçekten ne yapmak istediğimizin farkında olarak da hareket edebiliriz. Eğer test güdümlü yaklaşımla ilerliyorsak bilinçli olarak yaptırılan hata sonrası kodun çalışır hale getirilmesi ve iyileştirilmesi(Refactoring) de önemli kazanımlarımızdır. [Daha fazla]
GoLang - Google ProtoBuf Kullanımı 23 Temmuz 2017 Burak-Selim-Senyurt GoLang Veriyi kullandığımız dile göre çeşitli şekillerde ifade edebiliriz. Eğer nesne yönelimli bir dil kullanıyorsak buradaki başrol oyuncumuz sınıflar olacaktır. Verinin nesnel olarak ifade edilişinde rol olan sınıf ve benzeri tipler, çalışma zamanında taşıdıkları içerikleri ile hareket halindedir. Bu hareket aynı uygulamana alanında olabileceği gibi uygulamalar arasında da gerçekleşebilir. Veri ağ üzerinde de hareket edebilir. Verinin bu şekilde dolaşımı sırasında bazen serileştirilmesi de gerekir. Tabii bu noktada karşımıza platform bağımsızlık, okunabilirlik, genişletilebilirlik ve performans gibi kriterler çıkar. [Daha fazla]
WCF Servis Yolunda Debelenirken 18 Temmuz 2017 Burak-Selim-Senyurt WCF Geçtiğimiz günlerde çalıştığım turuncu bankada bölümüm değişti. Yeni bölümümdeki ilk görevim ise ServiceStack yerini alabilecek bir çatının oluşturulması konusunda bir takım POC çalışmalarının yapılması. Önemli hedeflerden birisi Servislerin IIS bağımsız dinamik olarak ayağa kaldırılması ve servislere gidip gelen mesajların yakalanabildiğinin görülmesi. Epey zamandır WCF alt tarafında çalışmamıştım. Pas tuttuğumu itiraf edeyim. Tabii yazının konusu devam etmekte olan POC çalışmasının tamamını anlatmak değil ancak dinamik olarak host edilen servislere gelen ve servisten dönen mesajları nasıl yakalayabiliriz bunun bir yolunu göstermeye çalışacağım. [Daha fazla]
GoLang - Bir ORM Denemesi 17 Temmuz 2017 Burak-Selim-Senyurt GoLang Veri depolamanın en popüler yolu NoSQL veya RDBMS bazlı sistemler. 90lı yıllardan beri program yazan insanlar için de özellikle Microsoft SQL Server, Oracle ve sonrasında gelen MySQL ya da SQLite gibi yapılar da oldukça fazla oranda kullanılmaktalar. E tabii bildiğiniz üzere bu serüvenin ortalarında bir yerlerde SQL dili ve RDBMS'in yapısının, programcıların kodlama mantığına biraz ters gelişi de vuku buldu. Sonuçta SQL tarafındaki varlıkların programatik ortamda ve özellikle nesne yönelimli(Object Oriented) dünyada nasıl daha anlamlı ele alınabileceğinin yollar�� araştırıldı. Artık popüler olma zamanı nesne ilişkilendirmelerini sağlayan araçlardaydı. Yani Object Relational Mapping(O/RM) konusu gündemdeydi. Neredeyse bütün programlama çatılarının bu tip araçlarla yakın ilişkisi bulunmakta. Hibernate ve Entity Framework gibi en azından ülkemizde adını sıklıkla duyduğumuz araçlar dışında farklı pek çok ürün de bulunmakta. Ben de GoLang tarafında SQLite operasyonlarını incelemeye çalışırken "bir O/RM aracı var mıdır?" sorusuna cevap ararken buldum kendimi. Murat Hoca'nın kitabı, GoLang'in resmi dokümanları, Stackoverflow konuları derken gitub üzerinden sunulan GORM ile karşlılaştım. [Daha fazla]
GoLang - REST Servisimizi SQLite'a Bağlayalım 10 Temmuz 2017 Burak-Selim-Senyurt GoLang Son yazılarımızda GoLang ile web uygulamalarının geliştirilmesi üzerinde duruyoruz. Yeni şeyler öğrendikçe bunları farklı örnekler üzerinden denemeye gayret ediyorum. Bu sefer HTTP yönlendiricimizi SQLite ile çalışan basit bir REST servisi haline getirmeye çalışacağız. [Daha fazla]
GoLang - Static Web İçeriği ve JSON Üretimi 01 Temmuz 2017 Burak-Selim-Senyurt GoLang Bir önceki yazımızda yönlendiricileri tanımaya çalışmış ve github üzerinden sunulan httpRouter paketini kullanarak dinamik HTML içeriği ürettiğimiz bir örnek geliştirmiştik. HttpRouter paketi oldukça ilgimi çekti ve çeşitli örnekler ile konuyu pekiştirmeye çalıştım. Bu yeni örneğimizde static web içeriğini ve gelen taleplere göre JSON bazlı çıktı üretecek yönlendirme işlemlerini ele almaya çalışacağız. Başrol oyuncusu olarak yine Star Wars dünyasından bir kaç modeli kullanmaya gayret edeceğiz. Bu kez şu adresten yararlandığımı ifade edebilirim. [Daha fazla]
Python - PEP8 Uyumlu Kod Geliştirmek 27 Haziran 2017 Burak-Selim-Senyurt python Geçtiğimiz günlerde senelik kişisel gelişim döngümün ikinci yarısının ilk konusu olan Python'a başladım. Yine bir önceki yılın aynı dönemlerinde Raspberry Pi ile ilgili olarak Python üzerine bir şeyler yapmaya çalışmıştım. Döngünün bir sonraki adımında yine Python ile başbaşayım. Head First Python, A Brain Friendly Guilde isimli kitabı takip ediyorum. Her örneği tek tek yapmaya çalışıyorum. Bayram tatilinde ilgimi çeken bir konu ile karşılaştım. Yazdığımız python kodlarının PEP8(Python Enhancement Proposals) adı verilen standartlara uygun olup olmadığının tespiti. [Daha fazla]
GoLang - Yönlendiriciler (Routers) 26 Haziran 2017 Burak-Selim-Senyurt GoLang Yönlendirme(Routers) mekanizmaları özellikle anlamlı http taleplerinde önemli bir rol oynar. Bir tarayıcının URL satırından gelen ifadelerin sunucu tarafında ele alınması sırasında işleri kolaylaştırıcı kütüphaneler de bulunmaktadır. Sevgili Murat Özalp'ın kitabında ilerlerken GO'nun built-in yönlendirme mekanizmaları dışında github üzerinden sunulan pek çok basit ve kullanışlı çatının daha olduğunu öğrendim. Tabii burada bahsedilen kütüphaneler ağırlıklı olarak web taleplerinin bir eşleştirme koduna göre uygun fonksiyonlara yönlendirilmesi ve cevaplandırılması ile alakalıydı. [Daha fazla]
GoLang - Ticker ile Periyodik İş Çalıştırma 18 Haziran 2017 Burak-Selim-Senyurt GoLang GO dilinin en güçlü yanlarından birisi eş zamanlı programlama(Concurrent Programming) kabiliyetlerinde sunduğu performans ve kullanım kolaylıkları. Daha önceden şu yazıda Concurrency konusunu GoRoutine ve Channel kavramları üzerinden incelemeye çalışmıştım. Çalıştığım kaynaklarda ilerledikçe eş zamanlı programlama konusunda yeni şeyler de öğrendim. Bunlardan birisi time paketinden yer alan time tipi. Bu tipin NewTimer ve NewTicker isimli iki önemli fonksiyonu bulunuyor. [Daha fazla]