AntiPatterns Ders Notlarım

Yazının bundan sonraki bölümlerinde, AntiPatterns konusuna hazırlanırken aldığım çalışma notlarının derlenmiş halini bulabilirsiniz. Çok fazla düzenlenmemiş halleri ile paylaşıyorum. Aralara kendi yorumlarımı da katmaya çalıştım tabi. Faydalı olmasını dilerim... [Daha fazla]

8. Geleneksel NedirTv Seminerleri

NedirTv topluluğunun 8nci kuruluş yıl dönümünü kutlamak için 1 Mart Cumartesi günü Bahçeşehir Üniversitesi – Türkan Şoray Konferans Salonu’ n da toplanıyoruz. Etkinlik programını aşağıda bulabilir ve EventBrite sitesinden kayıt yaptırabilirsiniz(ki gelmek isteyenler mutlaka kayıt yaptırması gerekiyor) Ben bu seneki etkinliğimizde Anti-Patterns ve NoSQL konularında yaptığım araştırma sonuçlarını aktarmaya çalışacağım. [Daha fazla]

NoSQL Maceraları–Redis ile Hello World

Bildiğiniz üzere bir süredir NoSQL veritabanı sistemlerinin, .Net tarafındaki kullanımlarını basit Hello World uygulamaları ile incelemeye çalışmaktayız. Bu günkü yazımıza konu olan ürün ise, popüler NoSQL sistemler arasında yer alan Redis. Oldukça popüler sayılabilecek olan bu ürünün kullanıcıları arasında hemen hemen her gün ziyaret ettiğimiz pek çok site bulunmakta. Stackoverflow, instagram, flickr, blizzard, github, disqus ve hatta guardian. Tabi dikkat çekici noktalardan birisi tüm bu örneklerin web tabanlı birer uygulama olması. [Daha fazla]

Asp.Net Temelleri–Eğlenceli GridView

Merhaba Arkadaşlar, Bir süre önce çalıştığım firmada ufak bir web uygulaması ihtiyacı ile karşılaştım. Bir kaç günlük efor isteyen bu basit işte, uzun süredir kullanmadığım eski dostumuz GridView kontrolü ile haşır neşir oldum. Onun bir kaç etkili özelliğini ve işe yarar ip uçlarını tekrardan hatır... [Daha fazla]

DevelopersTube Söyleşim

Merhaba Arkadaşlar, Değerli dostum ve yakın arkadaşım Uğur Umutluoğlu hocam’ın daveti ile canlı olarak gerçekleştirdiğimiz DevelopersTube söyleşimizi YouTube kanalından izleyebilirsiniz. Ağırlıklı olarak Yazılımcının Derman Bulunmaz Halleri’ ni irdelediğimiz söyleşimizde vaktimiz elverdiği ölçüde k... [Daha fazla]

Fluent Interface Prensibi ile Daha Okunabilir Kod Geliştirmek -2nci Yarı

Bir önceki görsel dersimizde Fluent Interface prensibini nasıl kullanabileceğimizi görmüştük. Bu sefer Generic tip kullanan bir versiyonunu geliştireceğiz. İşin içerisine Generic mimari Reflection kavramı ile Expression<> ve Func gibi tipleri de katacağız. Amacımız sadece belirli bir tip için değil bazı kıstaslara uyan her hangibir T tipi için Fluent Interface prensiplerini uygulatabilmek. Buyrun izleyelim. [Daha fazla]

Fluent Interface Prensibi ile Daha Okunabilir Kod Geliştirmek - 1nci Yarı

Keşfedilmesi, anlaşılması ve okunması kolay kod geliştirmek, özellikle dışarıya açık arayüzü bulunan API’ ler için oldukça önemlidir. Bir Domain Specific Language’ in olmassa olmazı kodun kolayca keşfedilebilirliğidir. Ruby ve Scala gibi diller built-in olarak bu kolaylığı sunarlar. LINQ(Language INtegrated Query) ifadeleri, zincir şeklinde bir birlerine bağlanabilen Extension metodlar ile aynı esnekliği vermektedir. Test süreçlerinde kullanılan pek çok Mock nesne API’si benzer kabiliyetlere sahiptir. Tüm bunlar aynı prensipten yararlanır. Fluent Interface… Bu görsel dersimizde Martin Fowler tarafından yıllar önce ortaya konan yaklaşımın uygulanışını incelemeye çalışıyoruz. [Daha fazla]

NoSQL Maceraları - MemCached ile Hello World

Web uygulamalarında ele alınan performans arttırma kriterlerinden birisi de Caching tekniklerinden yararlanılmasıdır. Özellike veri odaklı çalışan web uygulamaları göz önüne alındığında, nesnelerin bellekte tutulması/getirilmesi, sık görülen geliştirme tekniklerinden birisidir. Pek tabi bu senaryo biraz daha geniş çaplı düşünüldüğünde, bir web sunucusunda yer alan n sayıda uygulamanın tamamı için kullanılabilecek bellek tabanlı bir depolama alanı da söz konusu olacaktır/olmuştur. [Daha fazla]

Y.T.Ü. Finans ve Yazılım Günleri

Merhaba Arkadaşlar, Bundan 20 yıl önce Y.T.Ü. Matematik Mühendisliği bölümünü kazandım. Kim bilebilirdi ki 19 yıl sonra okulun davetlisi olarak bir etkinlikte konuşma fırsatı bulacağımı. Geçtiğimiz sene Kalite ve Verimlilik Kulübü’ nün düzenlediği Finans ve Yazılım Günleri etkinliğinde “Geleceğin P... [Daha fazla]

NoSQL Maceraları - db4o ile Hello World

Apache Cassandra, RavendDb, Dex, StsDb derken sıra geldi nesne veritabanlarından(Object Database) birisi olan db4o’ ya(Database for Objects şeklinde çevirebiliriz sanırım) Object tipinden bir NoSQL(Not-Only SQL) veritabanı olan db4o ürününün, Java ve .Net platformları için sürümleri bulunmaktadır(Hatta Mono desteği de mevcuttur). Aslında %100 Java ile geliştirilmiştir ve açık kaynak Sharpen ile C# diline de çevrilmiştir. Bu da onun popüler olmasını sağlayan unsurlardan bir tanesidir(Yazının hazırlandığı tarih itibariyle .Net Framework 3.5/4.0 ve platformlarını hedef alan versiyonları vardı) [Daha fazla]

TFS Version Control Hizmetine Kısa Bir Bakış

TFS Web Services kullanımlarını incelediğimiz bu yazımızda, en popüler hizmetlerden birisi olan Work Item Tracking servisine odaklamıştık. Bu servisten yararlanarak özellikle template bazlı öğelerin(Task, Bug, Product Back Log Item gibi) nasıl okunabileceğini öğrenmiştik. Çok doğal olarak daha pek çok servis kullanımı söz konusu. Önemli olan nokta, ilgili servislerin TFS Client Object Model üzerinden kullanılabileceğidir. [Daha fazla]

Asp.Net 4.5–Asenkron HTTP Module Geliştirmek

İşte bu günkü konumuzda HttpModule tipleri içerisindeki işlemleri asenkron olarak nasıl yaptırabileceğimizi incelemeye çalışıyor olacağız. Bildiğiniz üzere .Net Framework 4.0 ile hayatımıza giren Task ve doğal olarak Task Parallel Library kavramı, 4.5 sürümünde gelen async ve await anahtar kelimeleri ile birlikte alt yapının pek çok noktasında daha sık görülmeye başladı. Bu açıdan bakıldığında Asp.Net 4.5 tarafında da ilgili anahtar kelime ve Task tiplerini kullanarak bazı senkronize edilmiş işlemlerin asenkron hale getirilmesi sağlanabilmekte. [Daha fazla]

Dosya Satır Sayısını Bulmak

Malum Bankaların sistemleri halen daha eski olabildiğinden, bölümler arası veya uygulamalar arası veri aktarmanın en popüler yollarından birisi olarak Text tabanlı dosya formatları göz önüne alınmaktadır. Bazen onlarca megabyte' ı aşan ve milyonlarca satırdan oluşabilen düzenli text dosyaları söz konusu olur ve bunların bir şekilde uygulamaların konuştuğu veritabanı ortamlarına işlenerek, ilişkisel veri bütünlüğü içerisinde yerlerini alması beklenir. [Daha fazla]

Sıralama Algoritmaları - Hangisi Daha Hızlı (Bubble, Quick, Insertion, Selection, Shell, Merge, Heap)

Özellikle bu algoritmaların dil bağımsız olan Pseudo Code içeriklerinden yararlanarak her hangi bir dile uygulanmaya çalışılması üzerine epeyce kafa yormuşuzdur. C, C++, Java, Basic, Pascal ve benzeri temel programlama derslerinde edindiğimiz bilgiler ile bu algoritmaları yazmak için çokça uğraşmışızdır. Tabi üzülerek söylemeliyim ki ben üniversite yıllarındayken Bubble ve Quick Sort sıralama algoritmalarından fazlasını ne yazık ki göremedim. [Daha fazla]

En Kısa Metni Bulmak

İşte geçtiğimiz hafta içerisinde de Internet üzerinden araştırma yaparken enteresan bir konu ile karşılaştım. Aslında konuyu isimlendirmek oldukça zor ama bir optimizasyon işlemi olduğunu ifade edebilirim. Sorun n sayıda kelimenin saklanmak istendiği bir durumda ortaya çıkıyor. İstenen, bu kelimeleri birleştirerek saklamak ancak bunu yaparkende olabilecek en kısa cümleyi elde ederek ilgili depolama işlemini gerçekleştirmek. Öyleki, üretilen cümle hem çok kısa olmalı hem de tüm kelimeleri içermeli. [Daha fazla]

TFS OData Desteği

Özellikle ALM(Application Lifecycle Management) gibi geniş konuların uygulandığı ürünlerin değerlendirildiği firmalar ve kalabalık ekipleri düşünüldüğünde, bu heterojenlik kendini iyiden iyiye hissettir. Dolayısıyla ürünün geliştiriciler açısından ne kadar ve nasıl genişletilebileceği önem kazanır... [Daha fazla]

MigraDoc ile PDF Rapor Üretimi - Hello World

Özellikle veri odaklı(Data-Centric) çalışan uygulamalar düşünüldüğünde çeşitleri ne olursa olsun raporlama, işin oldukça önemli bir parçasını oluşturmaktadır. Ağırlıklı olarak rapora ihtiyaç duyan pozisyonlar, söz konusu raporları çeşitli ortamlarda görmek isteyen elemanlardır. Örneğin bunları Web arayüzünde açabilmeyi, Excel veya Word formatındaki dosyalara çıktı olarak alabilmeyi ve mobil cihazlarından takip edebilmeyi isterler. Günümüzün pek çok modern uygulaması zaten bu tip çıktıların alınmasını standart olarak olanak sunmaktadır. [Daha fazla]

Nedir Bu MSBuild?

Microsoft Build Engine aslında başlı başına bir platformdur. Kısaca MSBuild olarak anılmaktadır ve bir uygulamanın inşa edilmesi noktasında devreye giren XML(eXtensible Markup Language) tabanlı bir Script bütününü esas alır. Kısacası uygulamanın inşa edilmesi sırasındaki aşamalar XML tabanlı bir akış olarak ifade edilebilmektedir. MSBuild platformunun en önemli özelliği ise, inşa sürecinde Visual Studio gibi bir araca ihtiyaç duymuyor oluşudur... [Daha fazla]