Excel İçeriğini DataSet Olarak Sisteme Katmak 18 Mart 2014 Burak-Selim-Senyurt C# Bazen geliştirme ortamımız ile yazılan uygulamanın taşınacağı ortamlar arasında ciddi ve keskin farklılıklar bulunur. İki resim arasındaki 9 farkı bulunuzdan öte, geliştirici ekiplerinin bu farkları bilerek kodlama yapmasında yarar vardır. Tabi bazı yazılım ekiplerinde Development sunucularının sanallaştırılmış versiyonları üzerinde geliştirme yapabilme imkanı da vardır. [Daha fazla]
DevelopersTube–Yazılım Teknolojileri Seminerleri Ardından 17 Mart 2014 Burak-Selim-Senyurt NedirTv? Mart ayının başında gerçekleştirdiğimiz Nedirtv?com 8nci Kuruluş Yılı etkinliklerini kısaca özetlemeye çalıştığımız Google Hangout oturumunu aşağıdaki Youtube bağlantısından izleyebilirsiniz. Kızgın Yazılımcımız Nezih Tınas ve topluluk liderimiz Uğur Umutluoğlu hocalarımız ile gerçekleştirdiğimiz canlı yayında, seminer konularını kısaca değerlendirip, aklımızda kalanları dile getirmeye çalıştık. Yayınımıza daha sonradan katılan Burak Özkan arkadaşımızında, sunumlar ile ilişkili değerli geri bildirimlerini dinledik. [Daha fazla]
SOLID–Adım Adım Tanımak 10 Mart 2014 Burak-Selim-Senyurt Tasarım Prensipleri(Design Principles) SOLID basit bir kelime gibi görünse de, her harfinin ifade ettiği yazılım prensipleri göz önüne alındığında devasa bir evreni işaret etmekte. Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation ve son olarak Dependency Inversion. İşte bu görsel dersimizde bu prensipleri çok basit ve yüzeysel bir örnek üzerinden anlamaya çalışıyoruz. Önce ilkeleri ihlal ediyor, sonrasında bunları düzeltme yoluna gidiyoruz. [Daha fazla]
AntiPatterns Ders Notlarım 28 Şubat 2014 Burak-Selim-Senyurt Anti Patterns 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 17 Şubat 2014 Burak-Selim-Senyurt Anti Patterns, NedirTv?, NoSQL, Seminerler 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 11 Şubat 2014 Burak-Selim-Senyurt NoSQL 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]
DevelopersTube - Bankacılık ve Finans Uygulamaları 10 Şubat 2014 Burak-Selim-Senyurt Developers Tube, NedirTv? Merhaba Arkadaşlar, Değerli dostum Uğur Umutluoğlu hocamın davetlisi olarak gerçekleştirdiğimiz bu DevelopersTube söyleşisinde, genel hatları ve sorunları ile Bankacılık Uygulamaları üzerinde durmaya çalıştık. Sizler için de keyifli bir sohbet olduğunu ümit ediyoruz. Söyleşimizde temel olarak aşağı... [Daha fazla]
Asp.Net Temelleri–Eğlenceli GridView 26 Ocak 2014 Burak-Selim-Senyurt Asp.Net 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]
Şarkı Sözleri ve Eğlenceli Programlama 16 Ocak 2014 Burak-Selim-Senyurt WPF Mesela bir Windows Forms veya WPF(Windows Presentation Foundation) uygulaması olsa. Internete bağlanabildiği sürece istediğim sanatçının istenen albümündeki istediğim şarkının sözlerini getirse... [Daha fazla]
DevelopersTube Söyleşim 13 Ocak 2014 Burak-Selim-Senyurt Developers Tube, NedirTv? 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ı 06 Ocak 2014 Burak-Selim-Senyurt C# 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ı 23 Aralık 2013 Burak-Selim-Senyurt .Net Temelleri, C#, Tasarım Kalıpları(Design Patterns), Tasarım Prensipleri(Design Principles) 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 19 Aralık 2013 Burak-Selim-Senyurt NoSQL 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 14 Kasım 2013 Burak-Selim-Senyurt Seminerler 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 12 Kasım 2013 Burak-Selim-Senyurt NoSQL 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ış 03 Kasım 2013 Burak-Selim-Senyurt Team Foundation Server 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]
Çalışma Zamanında Generic Tip Üretmek, Generic Metod Çağırmak 01 Kasım 2013 Burak-Selim-Senyurt C# Merhaba Arkadaşlar, Bu görsel dersimizde çalışma zamanında kullanılabilecek örnek senaryolardan birisine daha değinmekteyiz. İlk amacımız Generic olarak tanımlanmış bir tipin çalışma zamanında üretilmesini sağlamak(Örneğin List<T> koleksiyonunun) Diğer amacımız ise generic bir metodun yine ça... [Daha fazla]
Tek Fotoluk İpucu 105–WsDiffMerge ile Dosya Karşılaştırmak 22 Ekim 2013 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Diyelim ki elimizde içeriklerini karşılaştırmak istediiğimiz iki dosya var (Bunlar Text tabanlı dosyalar olabileceği gibi C# veya VB.Net kod dosyaları da olabilir de) Ne yaparsınız? Gözle tarama? Ya da bir freeware program? Peki ya dosyalar arasında birleştirme(Merge... [Daha fazla]
Asp.Net 4.5–Asenkron HTTP Module Geliştirmek 13 Ekim 2013 Burak-Selim-Senyurt Asp.Net 4.5 İş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]
Çalışma Zamanında Class,Property, Module ve Assembly Üretmek 10 Ekim 2013 Burak-Selim-Senyurt C# Merhaba Arkadaşlar, Şöyle bir senaryo düşünelim; Bir Excel dosyasında yer alan sayfa ve kolon bilgilerini programatik ortamda ifade etmek istiyoruz. Ancak Excel dosyası oldukça büyük. Sheet ve kolon sayıları çok fazla. Bir şekilde dosyayı okumayı, kolon adları... [Daha fazla]
Dosya Satır Sayısını Bulmak 06 Ekim 2013 Burak-Selim-Senyurt C# 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) 24 Eylül 2013 Burak-Selim-Senyurt C#, Data Structures, Algorithms Ö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]
Sıfır Sabit Değeri ve Enum Sorunu 19 Eylül 2013 Burak-Selim-Senyurt C# C# konulu yeni bir bilmece ile karşı karşıyayız. Bu sefer kolay kolay fark edemeyebileceğimiz, basit ama irdelenmesi gereken bir vakayı göz önüne alacağız. [Daha fazla]
En Kısa Metni Bulmak 01 Eylül 2013 Burak-Selim-Senyurt Data Structures, Algorithms İş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]
Tek Fotoluk İpucu 104 : CustomReflectionContext ile Tipe Özellike Kazandırmak 28 Ağustos 2013 Burak-Selim-Senyurt Tek Fotoluk Ipucu Bir tipin çalışma zamanında Reflection ile yakalanabilen özelliklerine ilaveler yapmak ister miydiniz? Aslında bunun çok kolay bir yolu var. Tek yapmanız gereken CustomReflectionContext tipinden yeni bir sınıf üretmek ve bunu aşağıdakine benzer bir şekilde kullanmak Bir başka ipucunda görüşmek d... [Daha fazla]