Anasayfa
- Hepsi
- .NET Core
- ASP.NET
- Azure
- Bilim Kurgu
- C#.NET
- Hayata Dair
- Microsoft SQL Server
- Motivasyon
- Nesne Yönelimli Programlama
- OOP Prensipleri
- Öykü
- Tasarım Desenleri
- Web API
- Windows Application
- Yazılım Araçları
- Yeni Başlayanlar
Mini Öykü: Cahit ve Asal
Kitabı masasına bırakırken iyice düşüncelere dalmıştı. Saat altıya geliyordu. Bugün de doğru dürüst alışveriş yapan bir müşteri girmemişti dükkana. Aslında son birkaç gündür böyle olması, ona düşünme fırsatı veriyordu. Bir şeyler okuyor, notlar alıyor ve sürekli sorular soruyordu. Doğru işi mi yapıyordu? Gerçekten de hayali bir kırtasiye işletmek miydi? Kısılıp kalmıştı işte. Mecburiyetler onu bu […]
Bir Web API’nin Test Serüvenleri
Yazılım süreçleri gün geçtikçe karmaşıklaşıyor. Yeni çıkan teknolojiler, geliştirilmesi gereken özellikler, arttırılması gereken performanslar ve tüm bunlara uyum sağlayabilen geliştirici bir takım oluşturmak zor mesele… İşte bu problemlerin çözümünün bir parçası olarak Test Driven Development (TDD) çıkıyor karşımıza. Basitçe; test edilebilir kod yazmamızı salık veren bu anlayış, en azından geliştiricileri olası tüm ihtimalleri değerlendirme konusunda […]
ASP.NET Core Web API ile JSON PATCH Kullanımı
Bu hayatı, istesek de istemesek de dinamik bir biçimde yaşıyoruz. Hemen hiçbir şey aynı kalmıyor. Özellikle, yaşam alanımızdaki birçok varlığı zaman içinde güncelliyor, tamamen yeniliyoruz. Örneğin, oturma odanızdaki koltuklarınız bir süre sonra işlevsiz bir hale geldiğinde (ya da canınız sıkıldığında) onları yenileme ihtiyacı duyuyorsunuz. Ya da kim bilir belki de evinize yeni bir oda eklemeyi […]
.NET CORE ile RESTful Servislerde Basit Authentication İşlemi
Merhaba sevgili dostlar! Güvenlik deyince aklınıza ne geliyor? Şahsen benim aklıma gelen ilk şey riskler oluyor. Hangi meslekte olursa olsun, bu durum geçerlidir sanırım. Hele ki bir sistem kuruyorsanız, güvenlik konusunda ne kadar paranoyak olursanız o kadar iyi. Elbette konumuz bir .Net Core ile web API üzerinde güvenlik alt yapısına giriş yapmak ama ondan önce, […]
Zihin Çıkmazı
Tam olarak bilmediği bir noktadaydı. Kendini tarif et deseler, ne ruh halini anlatabilirdi, ne bedenini tasvir edebilirdi ne de çevresinde gördüklerini aktarabilirdi. Tam bir bilinmezlikte, mutlak bir hiçlik noktasındaydı. Buraya nasıl gelmişti? Geçmişte nasıl biriydi? Nelerden hoşlanıyordu ve nelerden nefret ediyordu? Belki bu soruları ona sorsanız, hatırlaması çok ama çok yavaş olurdu. Ancak neyse ki […]
Iterator Design Pattern
Merhaba sevgili dostlar! Iterator Design Pattern ile tasarım desenleri dizisine devam ediyoruz! .NET framework içinde birçok yerde kullanılan bu deseni gelin tanımaya başlayalım. Elbette yine daha önceki yazılarda da olduğu gibi önce problemi anlayarak başlayalım. Problem Uygulama geliştirirken en çok kullandığımız veri yapısı herhalde koleksiyonlardır. Hatta özellikle veritabanı uygulamaları geliştirirken, genellikle veriyi bir koleksiyon biçiminde […]
Command Design Pattern
Selam millet! Command Design Pattern ile tasarım desenleri yolculuğumuza devam ediyoruz. Neymiş bu Command Pattern, hangi işimizi çözüyormuş gelin daha yakından inceleyelim. Bu tasarım desenimiz de davranışsal tasarım kategorisi altında yer alıyor. Demek ki yine değişen durumlara nesnelerin verdiği tepkiyi ayarlamamız gerekiyor. Eğer merak ettiyseniz, saatlerimizi ayarlayalım dalış başlıyor. PROBLEM Yazılım geliştirmenin hem iyi hem […]
Chain of Responsibility Design Pattern
Selam dostlar! Tasarım Desenlerini ele aldığımız makale serisine Chain of Responsibility (CoR) ile devam ediyoruz! Bu tasarım deseni ile temel tasarım desenlerinin üçüncü kategorisi olan Davranışsal Tasarım Desenlerine (behavioral design patterns) giriş yapmış oluyoruz. Mademki yeni bir kategoriyi ele alıyoruz, o zaman önce bu kategoride yer alan tüm tasarım desenlerinin ortak yönlerini anlamaya çalışalım. İlk […]
Proxy Design Pattern
Selam Millet! Proxy Design Pattern ile tasarım desenlerini incelemeye devam ediyoruz! Hiç vakit kaybetmeyelim ve önce problemi anlamaya çalışalım! Problem Geliştirdiğiniz bir uygulamada, bellek üzerinde büyük kaynak harcayan bir nesneye ihtiyaç duyduğunuzu varsayalım. Örneğin bu nesne bir resim üzerine işlem yapıyor olabilir. Haliyle böyle maliyetli bir nesneyi her zaman bellekte tutmak istemezsiniz. Sadece istemciden talep […]
İki Arada Bir Deredeyim, Neredeyim?
Hislerim olduğuna göre ben varım evet evet. Kesinlikle ölmedim ben. Hala bilinçli bir varlığım. Zihnimin ince kumlarında yüzüyor kelimelerim. Bilmediğim bir yerdeyim. Kolumda zaman ölçer yok. Tam bir bilinmezim. Anılarım var. Hatırlıyorum. Bir çizgideyim. Neden ve sonuçları hala düşünebiliyorum. Sesleri de duyuyorum. Görüyorum da. Demek ki hala varım. Varım ama şu anı tam anlamıyla kavrayamıyorum. […]
Flyweight Design Pattern
Selam dostlar! Flyweight Design Pattern ile yolculuğumuza devam ediyoruz. Diğer tasarım desenlerinde yaptığımız gibi önce problemi ele alarak başlayalım. Bir uygulamanın arayüzünü geliştirirken, aynı veriyi farklı biçimlerde sunmak isteriz. Burada hedeflerden biri, son kullanıcının görsel ihtiyacını tatmin etmektir elbette. Ancak işin bir de performans kısmı var. Hadi örneğimizi biraz daha detaylandıralım. Bir masaüstü uygulaması geliştirdiğinizi […]
Façade Design Pattern
Selam millet! Hiç düşündünüz mü; hayatımızda kullandığımız cihazların yaptığı işler gittikçe daha karmaşık bir hale geliyor. Fakat buna rağmen, kullanım şekilleri oldukça basitleşiyor. Bu durum, sanırım adı konulmamış bir mühendislik prensibi. Arkada yapılan iş ne kadar karmaşık olursa olsun, ürünün kullanımı basit olsun. Mesela tam otomatik bir çamaşır makinesini ele alın. Kullanıcı, deterjan ve yumuşatıcı […]
Decorator Design Pattern
Selam sana ey dost! Design Patterns serisinin, Decorator Design Pattern yazısına hoş geldiniz! Hadi, hiç vakit kaybetmeden bu desenin nasıl bir probleme çözüm olacağını anlamaya çalışalım. Problem Farz edin ki var olan bir nesnenin sınıfına müdahale etmeden, ekstra bir fonksiyon ya da özellik eklemek istiyorsunuz. Şimdi hemen diyeceksiniz ki “tamam canım, bu sınıftan türeyen yeni […]
Composite Design Pattern
Merhaba nesne yönelimli programlama tekniği sevenler! Upuzun bir aradan sonra tekrar karşınızdayım. Tasarım desenleri makalelerimize kaldığımız yerden devam ediyoruz. Sırada Composite Design Pattern var. Hadi bakalım başlıyoruz muhabbete! Yine her zaman olduğu gibi; bu tasarım deseninin hangi probleme çözüm olarak geliştirildiğinin üzerinde durmamız gerekiyor. Efendim problemimiz şöyle: iç içe geçebilen yani hiyerarşik bir koleksiyonu, bellekte [...]
Dinamik Zihin yayında!
Merhaba sevgili dostlar. Size, müthiş bir haber vermek istiyorum bu yazıda. Uzun zamandır hayalini kurduğum bir oluşumu sonunda başlatmış bulunuyorum. Dinamik Zihin ‘den bahsediyorum. Ben, çok uzun süredir yazılım eğitmeniyim. Bu mesleğe başladığım günden bu yana, gittikçe daha fazla tutku ile bağlandığımı belirtmeliyim. Bunun en büyük sebebi de, insanların hayatlarına bir biçimde dokunmanın verdiği o […]
Bridge Design Pattern
Selam dostlar! Yapısal Tasarım Desenlerini konu alan yazılarımıza, Bridge Design Pattern deseni ile devam ediyoruz. Daha önceki yazılarımızda olduğu gibi, bu yazımızda da önce problemi anlamaya çalışalım dilerseniz. Yalnız şimdi yazıya böyle ciddi başladım ya, nerede nasıl kıvırsam da olayı bir yerde goygoya bağlasam diye düşünüyorum. Sevgili okur, öyle bir yazı yazmak istiyorum ki; senin […]
Adapter Design Pattern
Adapter Design Pattern Merhaba sevgili dostlar! Tasarım desenleri incelediğimiz makale serimize devam ediyoruz. Eğer önceki makaleleri de takip etmişseniz, Yaratımsal Tasarım Desenleri (Creational Design Patterns) kategorimizi tamamladığımızı biliyorsunuz demektir. Peki o halde, sırada hangi kategori var dersiniz? Efendim sıradaki tasarım deseni kategorimiz Yapısal (Structural) Tasarım Desenleri ismini alıyor. Bu ada bakarak söz konusu kategorideki desenleri, […]
Singleton Design Pattern
Merhaba sevgili dostlar! Bu yazımda, Yaratımsal Tasarım Desenleri (Creational Design Pattern) kategorisinde bulunan Singleton Design Pattern konusunu ele alacağım. Hani şu, ne kadar “tasarım desenleri” eğitimi alırsanız alın, kaç tane makale okursanız okuyun, aklınızda en fazla kalacak desenden bahsediyorum: Singleton Design Pattern. Daha önceki tasarım deseni makalelerinde olduğu gibi, önce problemin ne olduğunu anlamamız gerekiyor. Uygulamanızda […]
Prototype Design Pattern
Merhaba sevgili pattern severler; Köşemizin bu haftaki konuğu: Prototype Design Pattern. Kendisine hoş geldin diyoruz. Prototype: Hoş bulduk Şişman Adam. Beni davet ettiğin için ben teşekkür ederim. Evet; okurlarımız seni çok merak ediyorlar. Bize biraz kendinden bahseder misin? Prototype: Elbette. Ben de Yaratımsal Tasarım Kalıpları (Creational Design Patterns) kategorisi altında yer alan desenlerden biriyim. Haliyle […]
Builder Design Pattern
Merhaba sevgili dostlar; tasarım desenleri makale serimize Builder Design Pattern ile devam ediyoruz. Bu arada tabii, bir önceki yazıdan yalnızca bir hafta sonra makale yazmam beni de çok şaşırtıyor elbette. Aman diyeyim tahtaya vurun da nazar değmesin. Her neyse. Konsantrasyonumuzu bozmadan konumuza dönüp muhabbetimize devam edelim. Efendim; Builder Design Pattern de yaratımsal tasarım desenleri (Creational Design […]
Abstract Factory Design Pattern
Merhaba Sevgili Dostlar; Buralara uğramayalı epey bir zaman oldu. Geldim bir baktım her taraf toz içinde kalmış. Dedim en iyisi ben biraz temizlik yapayım. Ortalığa çeki düzen vereyim. Bir de en son planladığım tasarım desenleri serisine bir makale ekleyeyim. Hayır, gören de birkaç seriden oluşan bilim kurgu senaryosu yazdığımı zanneder. Neyse. Kendime çok kızmadan (pis!), […]
Geleceği Kodlayan Çocuklar
Yeniden başlıyoruz… Umutlarımızı, hayallerimizi her gün yeniden yeşertiyoruz. Kime sorarsak soralım, gelecekte çok daha iyi bir durumda olmak istediğini duyuyoruz. Üstelik hem kendi adına hem de içinde bulunduğu toplum adına herkes aynı fikirde: “Gelecek, bugünden daha iyi olmalı.” Evet olmalı. Ancak bunun için ne yapıyoruz? Her ne olursa olsun, geleceğe dönük olarak atılabilecek en iyi […]
Süper Kahraman Kompleksi
Sabah erkenden kalk. Mümkünse biraz yürüyüş yap. Duşunu al ve hafif bir kahvaltı yap. Ardından işinin başına geç. Yap, rutin ya da dinamik bir iş yapman fark etmez. Sadece yap. Sonra, mesaiden sonra, bambaşka bir hayat başlasın… Nasıl bir hayat başlıyor mesaiden sonra? Gün içerisinde çektiğin çileye karşılık, kendine ödül mü veriyorsun? Yoksa gün içinde […]
Diplerde ve Doruklarda
Kusmak! Tüm öfkeni, (saklasan da orada olan) nefretini kusmak! Hiç bilmediğin bir yerde ve bir anda avazın çıktığı kadar haykırmak! Tüm arzularının en derininde yer alan o patlamayı yaşamak. İletişimin yüzlerce yönüyletıkanan algıları, bir çırpıda temizlemek… Sonra da sakinlik… O çıldırtıcı, o karanlık ve sessiz, o derin sakinlik… Odaklandığın hedefin sürekli değişmesiyle yerini yeniden öfkeye […]
Takım Çalışmasına Yatkın mısınız?
“Takım çalışmasına yatkın mısınız?” Zırva! Yok kardeşim öyle bir şey! Canlı olmanın fıtratında öyle bir şey yok! Metrobüse, metroya binerken bile “önce ben bincem” diyen adam, “Takım çalışmasına yatkın mısınız” sorusuna bir cevaplar veriyor ki sorma… Sanırsın ki her akşam bir sosyal sorumluluk projesinde görev alıyor. Kadınlar ve erkekler, yeni mezunlar ve emekliler; durun ve […]
Nesne Yönelimli Programlama Temelleri Kitabı
Nesne Yönelimli Programlama Temelleri Kitabı hazır! Merhaba dostlar. Uzun bir süredir yazmakta olduğum (ve hala bitmemiş olan 😀 ) nesne yönelimli programlama yazılarının bir kısmını, “Nesne Yönelimli Programlama Temelleri Kitabı” isimli bir e-kitap haline getirerek derledim. Maksat, arşivleyebileceğiniz ve isterseniz çıktısını alabileceğiniz ama en önemlisi keyif alacağınız hatta kahkaha atacağınız (tamam Türkay abartma) bir kitap […]
Coyote & Roadrunner
Uzun bir süredir yaşadığım toplumu, insanları ve olayları gözlemliyorum. Bu sadece bu yüzyıla mı özgü bilmiyorum ama gördüğüm kadarı ile insanların çok büyük bir çoğunluğu kendisini tamamlanmamış hissediyor. Gündelik yaşamlarının içinde verdikleri kısa molalarda, birden tüm duruşları değişiyor ve yavaşlıyorlar. Ama bunun dışında karmaşık, gergin, yoğun ve hızlı bir tempoya sahipler. Arzular ve ihtiyaçlar birbirine […]
Factory Method Design Pattern
Hi guys (başlığın tamamı İngilizce olunca, yazıya da böyle başlamak geldi içimden)! Efendim, bir önceki makalemizde “Tasarım Desenleri” konusuna giriş yapacağımı söylemiştim. Şimdi de bu serinin ilk makalesini kaleme alma vakti. Öncelikle, kategorinin adını açıklayarak başlayalım işe. Yaratımsal (creational) tasarım desenleri, karmaşık bir mimaride sınıftan bir örnek (instance) üretirken kullanılan desenlerdir. Tasarım desenleri yazımda da […]
Tasarım Desenlerine Giriş
Merhaba sevgili dostlar! Önceki makalelerimizde SOLID prensiplerine odaklanmıştık. Haliyle artık tasarım desenleri (design patterns) konusu ile nesne yönelimli programlama okyanusunun derinliklerine doğru yelken açıyor olacağız (an itibariyle acaba nasıl kıvırsam diye kıvranıyorum ama nafile… Bir gün makale yazma konusunda istikrarı yakalayacağıma eminim. Ama ne zaman işte onu bilmiyorum 🙁 ). Sevgili dostlar; “tasarım deseni” ismi […]
Şok algısı ve sonuçları
Şok, her zaman daha öğreticidir. Bu, tamamen nerede durduğunuz ve ne hedeflediğiniz ile ilgili bir durummuş gibi gözükebilir. Ya da üzerine milyonlarca başka anlam yükleyebileceğiniz minik bir cümledir yalnızca. Yine de bu savı dile getiren kişi olarak cümleye yüklediğim anlamı kendim izah edeyim…
Kadınların yazılım mesleğini seçmesi için 5 neden
Özel olarak yazılım geliştirme, genel olarak IT işi sadece erkeklere özgü bir meslekmiş gibi algılanır. Oysa bu bilimsel veri içermeyen ve hatta oldukça ayrımcı bir bakış açısıdır. Burada; bilimsel olmasa da mantıksal açıdan kadının her mesleği olduğu gibi yazılım işini de mükemmel bir biçimde icra edebileceğini göstereceğiz. Aynı anda birçok işi yapabilirler Yazılım geliştiriciler; çoğunlukla […]
Başlangıcı ararken…
Başlangıç noktasını arıyorsunuz değil mi? Hayalinizdeki o en büyük, en zevk alacağınız sizi en çok “siz” yapacak olan işe nereden başlayacağınız konusunda uzun uzun düşünüyorsunuz. Hangi fırsatı değerlendireceksiniz, kime güveneceksiniz, beklentileriniz ne olacak, ne zaman harekete geçmeniz sizin için daha uygun? Sorulacak ve yanıtını bulmaya çalışacağınız birçok soru daha…
Dependency Injection Pattern Üzerine
Merhaba sevgili yazılım aşıkları! Bu yazımızda Dependency Injection Pattern (bağlılığı enjekte etme deseni) üzerine konuşacağız. Konuya geçmeden önce hemen belirteyim; bu yazıda, IoC (Inversion of Control) Container konusunu ele almayı planlamıyorum. Sadece Dependency Injection’a odaklanacağız.
Dependency Inversion Principle – DIP- (Bağlılığı Tersine Çevirme Prensibi)
Merhaba sevgili dostlar! SOLID tasarım prensiplerini anlattığım makale serisinin sonuna gelmiş bulunuyoruz. Dependency Inversion Principle (Bağlılığı tersine çevirme – bu arada itiraf ediyorum; bu prensiplerin Türkçesini yazınca çok tuhaf oluyorum) prensibi… Dilerseniz yine bu prensibin temel cümlesini ele alarak başlayalım.
Loose Coupling – Gevşek Bağlılık Prensibi
Merhaba sevgili tasarım prensiplerine meraklı dostlarım. Bu yazımda SOLID tasarım prensiplerinin içinde olmayan fakat Enterprise tasarım prensipleri içerisinde sayabileceğimiz Loose Coupling (Gevşek Bağlantı) İlkesinden bahsedeceğim. Böylece Interface’e daha farklı bir gözle bakabilir ve ISP (Interface Segregation Principle) ile DIP (Dependency Inversion Principle) prensiplerindeki kavramlara daha net bir yaklaşım sergileyebiliriz.
Interface Segregation Principle – ISP – (Arayüzlerin Ayrımı Prensibi)
Merhaba her türlü prensibi en iyi şekilde öğrenerek; nesne yönelimli programlamanın kral adayı olan sevgili dostlarım (yuh, Bu nasıl bir giriş!). Bu yazımda sizlere SOLID’in I’si olan Interface Segregation Prensibini (ISP) anlatacağım. Aslında bu prensibi ilk bakışta SRP (Single Responsibility Principle) ilkesinin Interface üzerine uygulanması olarak düşünebilirsiniz. Yanılmış da olmazsınız. Fakat ben yine de konuyu, […]
Liskov Substitution Principle – LSP – ( Liskov Yerdeğiştirme Prensibi)
Merhaba sevgili yazılım dostları SOLID prensiplerini irdelemeye Liskov Substitution Principle ile devam ediyoruz. Bu yazımda, sayın Barbara Liskov hanımın hayatımıza katmış olduğu prensibi anlatacağım. Hali hazırda MIT (Massachusetts Institute of Technology) programlama metodolojileri grup liderliği yapan bu dahi kadın bakın 1988 yılında Data Abstraction and Hierarchy adlı kitabında ne demiş?
Sınıf düzeyinde OCP uygulanması
Selam sana ey yazılım dostu! Bir önceki OCP (Open-Closed Principle – Açık–Kapalı Prensibi) yazımda, söz konusu prensibi bir metoda uygulamıştım. Bu yazımda ise aynı prensibi, sınıf düzeyinde uygulayacağım.
Open Closed Principle – OCP – (Açık-Kapalı Prensibi)
Merhaba sevgili yazılımcı dostlarım… Ne zaman, “bundan sonra her hafta makale yazacağım” desem bir de bakıyorum ki iki yazım arasında beş ay var. Şimdi size bunun sebebini anlatıp, bahaneler bulmak istemiyorum. Sonuç olarak, bir “Şişman Adam” klasiği işte…
Single Responsibility Principle – SRP- Temel Metotlardan Çok Katmanlı Mimariye-2
Merhaba sevgili dostlar! Bir önceki Single Responsibility Principle (SRP) makalemizde, prensibi çok temel olarak incelemiş ve örneği de basit tutmuştuk. Bu yazımda ise, işin biraz daha detayına inmeyi planlıyorum.
Okyanustaki mesaj şişesi
Günaydın! Şu an saat kaç olursa olsun ve siz nerede olursanız olun, günaydın! Çünkü şu an tam olarak uyandığınız an. Ya da en azından benim öyle. Aslına bakarsanız bu blog yazısı, şimdiye dek yazdıklarımdan çok daha farklı olacak. Hoş gerçi bunu, ilk girişten anlamışsınızdır zaten.
Trakya Üniversitesi Nesne Yönelimli Programlama Semineri
Merhaba millet! Geçtiğimiz hafta, 2 Mayıs Perşembe günü Trakya Üniversitesinde gerçekleştirdiğim Nesne Yönelimli Programlama seminerini sizlerle paylaşmak istiyorum. Tabiat olarak yolculukları çok seven bir adamım. Fakat uzun zamandır otobüs seyahati yapmıyordum. Doğal olarak 2 Mayıs sabahı, üç saatlik Kadıköy – Edirne yolculuğu da beni heyecanlandırdı. Aslında bu heyecanın kendisi bile günümün iyi geçeceği konusunda bir […]
Single Responsibility Principle (SRP) – Tek Sorumluluk Prensibi-1
Merhaba sevgili dostlarım! Söz verdiğim gibi prensipleri incelemeye başlıyoruz. İlk ele alacağımız prensip ise başlıktan anladığınız üzere “Single Responsibility Principle”. Öncelikle altını çizmek istediğim bir durum var. Bu prensipten başlamamın sebebi, en önemli olması değil, SOLID kısaltmasının ilk harfi olmasıdır yanlış anlaşılmasın.
Nesne Yönelimli Tasarım Prensipleri – Giriş
Merhaba, geliştirdiği her uygulamada nesne yönelimli programlama tekniklerini kullanan yazılımcı dostlarım! Bu yazımda sizlere nesne yönelimli tasarım prensiplerinden bahsedeceğim. Yani temel olarak; “projede kullandığım sınıfları nasıl daha iyi nasıl tasarlarım” konusuna eğileceğiz.
Daha İyi Yenilmenin Kuralları
Hedefi olmayan bir insan yaşamı düşünülebilir mi? Belki de insanları yeryüzünde yaşayan diğer canlılardan ayıran en büyük özellik, onlardan çok daha fazla hedefe sahip olmalarıdır. Sadece karnımızı doyurmak, barınmak yani kısaca “hayatta kalmak” gibi bir hedefimiz yok bizim. Çevremizdeki bireylerle iyi iletişim kurmak, bir yaşam standardına erişmek, ekonomik özgürlüğe kavuşmak, takdir görmek, bazı toplulukların içinde […]
Nereden Başlasak, Nasıl Yapsak?
İnsanın hayallerini gerçekleştirmesini sağlayan veya onları engelleyen o kadar çok parametre var ki. Elinde olan karmakarışık birçok sonuçtan tek bir nedene ulaşmaya çalışmak çoğu zaman çok yorucu ve zordur. Fakat üzerinde durup düşünülmesi gereken bir başka şey daha var. O nedeni bulmak gerçekten gerekli mi? Birçoğumuz, doğal bir gözlem yeteneğine sahibiz. Etrafımızda olan bir olayı […]
Windows Azure Üzerinde Web Sitesi Yayınlamak
Pşşt!! Yazılımcı, n’aber? Efendim bu yazımızda da başlıktan da anlaşılacağı üzere, Microsoft’un bulut bilişim platformu olan Windows Azure ürünü üzerinde, nasıl proje yayınlayacağımızı konuşacağız. Dilerseniz önce projemizi oluşturalım sonra yayınlama kısmına geçelim.
SQL Server 2012’de Sorgu Sayfalama (Query Pagination)
Merhaba millet! Hemen konuya giriyorum; Web uygulaması geliştiren bütün yazılım geliştiricilerinin mutlaka karşılaşmış olduğu bir sorun vardır: Sayfalama. Hemen örneklendirelim, bir e-ticaret sitesinin web sayfasında ürünleri listeleyeceksiniz ve yaklaşık 150 ürün var. Hepsini bir sayfada göstermektense elbette sayfalama işlemi yapacaksınız. Ama bir dakika! Nerede sayfalayacaksınız? Tüm datayı belleğe (RAM) atıp, kod ile mi sayfalayacaksınız yoksa […]
Microsoft Azure ile Bulutlara Yolculuk I: Yürütme Modelleri
Son birkaç yıldır, herkesin dilinde bir bulut bilişimdir gidiyor. Peki, nedir acaba bu bulut bilişim? Neyi hedefliyor ve bilişim dünyasına gerçekten ne kazandıracak? Belki de en önemlisi, biz yazılımcılara nasıl bir hayat vadediyor bulut?
Nesne Yönelimli Programlama – 9: Interface
Merhaba; yazılım dünyasının merdivenlerini tırmanmaktan vazgeçmeyen dostlarım. Başlıktan da anladığınız üzere; Muhteşem Yüzyıl dizisinden daha heyecanlı olan (ya da bana öyle geliyor 🙂 ) yazı dizimize Interface konusu ile devam ediyoruz.
Nesne Yönelimli Programlama – 8- Abstract Class
Merhaba yazılım dostları. Nesne Yönelimli Programlama makale serisine (keşke tüm hızıyla diyebilseydim ama, kaplumbağa yavaşlığıyla) devam ediyoruz.
Nesne Yönelimli Programlama -7- Event ve Delegate Methods
Merhaba ey yazılıma gönül verenler… Nesne yönelimli programlama yazı dizimize kaldığımız yerden devam ediyoruz. Bu yazımda sizlere, OOP’nin anlaşılması belki de en zor konularından biri olan event (olay) ve delegate (delege) metodlardan bahsedeceğim.
Nesne Yönelimli Programlama -6- Access Modifiers
Merhaba dostlarım… Nesne yönelimli programlama serimize devam ediyoruz. Bu yazımda size, erişim düzenleyicilerden (Access modifiers) bahsedeceğim. Aslına bakarsanız, bu yazıyı yazarken içimden bir ses; “şişman adam bak bu makale çok kısa olacak, hem zaten heryerden öğrenilebilecek bir konu, ayrıca çok kolay niye yazıyorsun ki?” diye soruyor. Benim düşüncem ise şöyle yanıt veriyor; “evet basit bir […]
Nesne Yönelimli Programlama -5- Polymorphism
Merhaba sevgili yazılım aşıkları. Nesne yönelimli programlama konulu eğitsel makale serimize devam ediyoruz. Bu yazımda ele alacağım konu, “çok biçimlilik” olarak türkçeye çevrilebilecek olan ve yine, nesne yönelimli programlama kavramının temellerinden olan polymorphism olacak.
Nesne Yönelimli Programlama –4- Inheritance
Merhaba can dostlarım. Öncelikle sizleri, altı ay kadar beklettiğim için özür diliyorum… Nesne Yönelimli Programlama makalelerimize (başlıktan da anladığınız üzere) devam ediyoruz. Bu makalemizde, OOP’nin altın kurallarından olan miras kavramından bahsediyor olacağız. Hemen bir ipucu ile başlayalım… Bu miras, tam olarak genetik miras anlamındadır. Yani ebeveynden çocuğa geçen göz rengi gibi. Biz de class’ lar […]
Nesne Yönelimli Programlama –3- Constructor Kavramı ve Class Tasarımı
Merhaba arkadaşlar… Yine uzunca bir aradan sonra karşınızdayım. Bu bloğu takip eden ve “birşey yazmıyor bu adam” diye bana sitem eden tüm dostlarımdan da özür diliyorum. Nesne Yönelimli Programlama hakkında yazdığımız makale dizimizin bu üçüncü bölümünde Constructor kavramından bahsediyor olacağım. Bu konuya girmeden önce bir konuya açıklık getirmek istiyorum. Bazı arkadaşlardan ” çok basit konularda […]
Nesne Yönelimli Programlama -2- Encapsulation
Merhaba sevgili dostlar… Nesne Yönelimli Programlama konusundaki eğitsel makalemize encapsulation (kapsülleme) konusuyla devam ediyoruz. Lafı hiç eveleyip gevelemeden konumuza girelim… Bir önceki makalemizde oluşturduğumuz Ayakkabı class’ını hatırlayalım… Bu class’ın içinde bulunan özellikleri public erişim düzenleyicisi (Access Modifiers) ile tanımlamıştım. Ancak makalemin sonunda, böyle yapmanın çok mantıklı olmadığını, bazı özellikleri kısıtlamam (yalnızca okuma ya da yazma […]
Nesne Yönelimli Programlama – 1
Merhaba ey dostlar… Bu günlerde, günlük hayatımızda yaptığımız birçok “rutin” eylemin önüne anlamsız bir espri gibi yapışan bir cümleyle başlamak istiyorum… Evet, ne felsefi bir giriş oldu değil mi? Ama o başlangıcı henüz yapmadığımın da farkında mısınız? Peki, tamam uzatmıyorum… İşte geliyor; “2008’in son makalelerini yazıyorum” (bakınız ne kadar kararsız bir cümle ‘son makaleler’ ne […]
.NET 4.0’da Varyans (Kovaryans ve Kontravaryans) Kavramı
Merhaba; yenilikleri hızlıca kavrayıp bir an önce uygulayan yazılımcı dostlarım. Bu yazımda yine, bir çok kaynakta .net 4.0 yeniliği olarak geçen fakat, anlaşılması pek de kolay olmayan konudan bahsedeceğim: Varyans.
Windows Forms uygulamalarında hata geri bildirimi
Selam sana .NET dostu! Çoğu zaman, bir uygulama geliştirirken; o uygulamada (elbette uygulama çalışırken) meydana gelecek hataların, bir şekilde bir yere kaydedilmesini veya uygulama geliştiriciye e-posta ile gönderilmesini isteriz. İşte bu olaya hata geri bildirimi (error feedback) diyoruz.
Eminim son kararım, kesin çözüm Mutex
Selam… Bir önceki yazımda, bir Windows Forms uygulamasının, birden fazla çalışmasını istemediğimiz durumda ne yapabileceğimize dair bir çözüm ortaya atmıştık. Bu çözüm de, kaba hatları ile şöyleydi; uygulama çalışırken, aynı isimde başka process’ler olup olmadığına bakıyor, varsa uygulamayı açmıyordu. Fakat bu çözümde eksik bir taraf var. O da şu; kullanıcı .exe dosyasının adını değiştirirse ne […]
MEF (Managed Extensibility Framework) de neymiş?
Dostlarım merhaba; Meraklı her yazılımcı, yeni bir teknoloji ile karşılaştığında şöyle bir yerlere (belki de sadece zihnine) notlar alır, neyi nasıl öğrenmesi gerektiğini planlar ve bazen benim yaptığım gibi bunların hepsini unutur (yoksa üşenir mi?). Efendim, .NET 4.0 ilk duyurulduğunda, yeni ne var diye oradan buradan birşeyler araştırırken MEF diye yeni bir framework geliştirildiğini okumuştum. […]
Extension Metodlar
Merhaba dostlar. .NET 3.0 ile birlikte gelen Extension Metodları inceleme fırsatınız oldu mu? Olmadıysa, mutlaka inceleyin derim. Çok seviceksinizJ Şahsen ben, kodlamaya yeni başladığım zamandan bu yana, nesnelerin “hazır” metodlarına kendi yazdığım metodu eklemenin hayalini kurdum. İşte o hayal Extension metod sayesinde gerçek oldu. O kadar çok işinize yarıyor ki anlatamam (Anlatamaz mıyım? Ne işim […]
Windows uygulamanız üzerinde GDI+ yardımı ile font diyalogu oluşturmak
Merhaba sevgili dostlar. Birçoğumuz Windows uygulaması yazarken, kendi font diyalogumuzu yapma ihtiyacı duymuşuzdur. Lafı uzatmadan hemen uygulamaya geçelim… Öncelikle formumu resimdeki gibi tasarladım: Kod tarafında yapmam gereken şey, öncelikle cmbFonts isimli combobox nesnemi doldurmak. Öyleyse; form’un Load’ına aşağıdaki kodu yazıyorum: foreach (FontFamily ff in FontFamily.Families) { cmbFonts.Items.Add(ff.Name); } Buraya kadar tamamdır. […]
Custom Control Oluşturmak 3: Klasör Görüntüleyici (TreeView)
Selam dostlar! Sanırım, bu başlığı okuduktan sonra, kesin “şişman adam’ın TreeView’a karşı takıntısı var” diye düşüneceksiniz. Tamam kabul ediyorum. Şu ListDisplay kontrollere karşı büyük sempatim var. Hem kullanması hem de (elbette) kodlaması çok eğlenceli.
Custom Control Oluşturmak 2:Resim Önizleme Kontrolü
Merhaba yazılım dostu… Bu yazımızda da, kendi kontrollerimizi oluşturmaya devam edeceğiz. Bu kez, verilen klasör içindeki .JPG uzantılı resimlerin önizlemesini (thumbnail) asenkron olarak gösterecek bir kontrol yazıyor olacağız. Bu uygulamamıza, bir önceki kontrolümüzden farklı olarak Windows Forms Control Library açarak başlıyoruz: Projemizi açtığımızda, Class’ın adı, default olarak “UserControl1.cs” olarak gelecektir. Bu ismi, “ResimGoruntuleyicisi.cs” olarak değiştirerek […]
Custom Control Oluşturmak 1: Otomatik Progress Bar
Merhaba dostlar. Uzun zamandır yazmak istediğim bir konuydu bu aslında. Kısmet bugüneymiş. C#.NET ile Windows uygulaması geliştirirken; bazen, “yahu şöyle bir kontrol olsaydı ne de güzel olurdu” dediğimiz olmuştur. İşte bu cümleyi sarf ettiğiniz anda, Custom Control kavramı devreye girer ve bize “kendi kontrolünü kendin yap” der. Bunu yapabilmemiz için de, bize birkaç farklı seçenek […]
TreeView Kontrolünde Drag-Drop İşlemi
Merhaba dostlar. Bazı Windows uygulamalarında, kontroller arası sürükle-bırak işlemlerini kullanmamız gerekebilir. Birazdan yapacağımız uygulamada, söz konusu işlemi TreeView kontrolleri arasında yapacağız. Öncelikle aşağıdaki formu tasarlayarak işe başlayalım: Burada amacımızı bir kez daha belirtelim; her iki TreeView kontrolünden de birbirlerine, sürükle-bırak işlemi ile TreeNode nesnesi taşımak. Bu taşıma sonrasında, sürükleme işlemini başlattığım TreeView kontrolünden, sürüklenen […]
Enterprise Library Üzerine…
Merhaba arkadaşlar… Bu yazımızda size, .NET yazılım geliştiricilerinin büyük yardımcılarından biri olan Enterprise Library’ den bahsedeceğim. Microsoft yazılım geliştiricilerinin, profesyonel uygulamalarda kullanılmak üzere geliştirdikleri geniş bir kütüphanedir Enterprise Library. Bu kütüphaneyi ücretsiz olarak buradan indirebilirsiniz. Karmaşık ve büyük ölçekli uygulamalarda; en çok karşılaşılan problemlerin çözümlenmesine yardımcı olan Enterprise Library, bu çözümleri uygulama katmanları (application blocks) […]
Windows Form Uygulamasının, Aynı Anda Birden Fazla Çalışmasını Önlemek
Merhaba .NET dostu! Bu sitenin takipçileri; yazının başlığına bakınca, "şişman adam iyice bunadı, bu konuyu daha önce yazmıştı!" diye tepki gösterebilir. Lütfen efendim... O kadar önyargılı olmayalım. Bu yazıyı da okuyun, sonra karar verirsiniz. Ne demek istediğimi birazdaha açayım isterseniz. Önceki makalede (Yazdığınız uygulamanın, aynı anda birden fazla çalıştırılmasını engellemek); aynı sorunu ele almış ve [...]
Visual Studio’da Snippet Oluşturma
Merhaba yazılımı hayat felsefesi yapan sevgili dostlarım! Ocak ayından beri blogla ilgilenmiyorum farkındayım ama inanın vicdanım hiç de rahat etmedi. Bir yandan “yazmam” gerekenler bir yandan “paylaşmam” gerekenler ve sanırım biraz da herkesin baş düşmanı “tembellik” ile boğuşuyordum. Her neyse, uzun bir aradan sonra karşınıza biraz eğlenceli bir konu ile çıkmak istedim açıkçası. Bildiğiniz gibi […]
T4 Kod Oluşturucu (T4 Vendetta)
Merhaba yazılım kuzuları (bir bu kalmıştı söylemediğim, bu da oldu ya tamam artık). Uzun zamandır yazmayı düşündüğüm ama fırsat bulamadığım (üşendiğim) bir konu ile karşınızdayım. Text Template Transformation Toolkit yani kısaca T4 (ben nedense Vendetta kelimesini de ekliyorum V4 Vendetta hesabı…) hakkında biraz konuşacağız.
Opsiyonel ve İsimlendirilmiş Parametreleri Duymayan Var Mı?
Merhaba koda her türlü takla attırmaktan zevk alan dostlarım. Bu yazımda, .NET 4.0’ın C# diline getirmiş olduğu bir yenilikten bahsediyor olacağım. Şimdi diyeceksiniz ki, .NET 4.0 çıkalı bir yıldan fazla oldu. Canlarım benim oldu olmasına da siz hiç kullandınız mı onu deyin bana. Sonuçta bu tarz dil değişikliklerinin amacı hayatımızı kolaylaştırmak. Dolayısıyla aslolan, bilmek değil […]
Yazılım Felsefesi Üzerine
Merhaba ey yazılım yolcusu… Uzun zamandır, kafamın içinde sürekli kelimeler dolaşmakta bu yazıyı yazabilmek için… Herşeyin temeline, ‘önce’sine yazılım gözüyle bakabilmek ve gösterebilmek için. Aslında nasıl bir tarihi görev üstlendiğimizi anlatabilmek için. Aslında, insanlığın yaratılışı ile başladı herşey. Yo hayır şaka yapmıyorum kesinlikle! Bu yazının içeriği size fantastik gelebilir belki. Ama kendinizi bana bırakın, bırakın […]
ASP.NET 4.0 ve ValidateRequest Problemi
Merhaba arkadaşlar; daha bugün deneyimlediğim ve taze taze paylaşmak istediğim bir konu bu. Öncelikle, bir / sayfasının @Page direktifinin bir üyesi olan ValidateRequest özelliğinin ne olduğundan kısaca bahsedelim.
Nasıl Yazılımcı Olunur?
Saat gece yarısını çoktan geçmiş. Bilgisayarınızın başında oturuyorsunuz. Facebook’da video izliyorsunuz. Bir yandan da MSN açık, arkadaşınız ile yazışıyorsunuz.Yaklaşık bir saat önce de, en son aldığınız oyununuzu zevkle oynadınız ve bitirdiniz. Nereden baksanız 6-7 saattir makinenizin önündesiniz. Bir anda, beyninizin derinliklerinden bir ses duyuyorsunuz: “Bilgisayar hayatının neresinde? Onunla neler yapıyorsun?” Böyle bir soruya verdiğiniz cevap, […]