156 toplam yazı
23 October 2021 en yeni yazı
15 July 2009 ilk yazı
20 Bu sayfadaki yazılar

Bu kategorideki yazılar

  • Genel

    Tek Fotoluk İpucu 121 - Code Contracts ve Immutable Type

    Bazı durumlarda tanımladığımız tiplerin Immutable olmasını isteriz. Bildiğiniz üzere bir nesne örneğinin özellikleri ile nitelenen durumunun (State) çalışma zamanı boyunca değişmesini istemiyorsak Immutable hale getirebiliriz.

  • Genel

    Tek Fotoluk İpucu 120 - Bir Listeden N Sayıda Benzersiz Nesne Çekmek

    Vaktiyle zamanında (bugün aslında) çalışmakta olduğumuz projede şöyle bir ihtiyacımız oldu; “Bir Oracle tablosundan Entity Framework aracılığı ile çektiğimiz nesne koleksiyonundan benzersiz olan n sayıdakini elde etmek” Elbette bu işi önce SQL tarafında halledip, sonrasında EF tarafına aktarmayı da tercih edebilirdik. Ancak değerli çalışma arkadaşım ile konuyu tartışırken fikir fikri doğurdu ve ortaya şöyle bir ihtiyaç daha çıktı. “Ya bunu T tipinde elemanlardan oluşan herhangi bir koleksiyon üzerinde, herhangi bir kritere göre yaptırmak istesek…”

  • Genel

    Tek Fotoluk İpucu 119 - En Keyifli Validation

    Hani şu NuGet paketlerine bakıyoruz ya bir süredir. Hatta bazılarını alıp basit Hello World uygulamalarını geliştiriyoruz. Aslında nasıl kullanıldıklarını öğrenmenin dışında GitHub gibi Repository’ler üzerinde tutulan kodlarına bakamamızda da büyük yarar var biliyor musunuz? Çünkü çoğu, nesne yönelimli programlamanın temel dinamiklerini içeriyor ve hatta yazılım prensipleri ile tasarım kalıplarını başarılı bir şekilde uyguluyor.

  • Genel

    Tek Fotoluk İpucu 118 - Fluent Command Line Parser ile Hello World

    Nesne Yönelimli Programlama Dillerinin (Object Oriented Programming Languages) kullanıcılarını büyülediği pek çok nokta var. Örneğin Fluent API’ler bunlardan sadece birisi ve getirdiği güzellikleri pek çok bağımsız üründe de görebiliyoruz (Bu arada Fluent API geliştirilmesi ile ilgili olarak şu eski anlatıma bakabilirsiniz)

  • Genel

    Tek Fotoluk İpucu 117 - LINQtoExcel ile Hello World

    Yine çok sıkıldığınız günlerden biri ve siz şöyle bir yarım saatlik kodlama uğraşı arıyorsunuz. Hani yeni birNuGet paketi denesem nasıl olur diyorsunuz belki de. Hatta azcık da zorlayıcı bir paket olsa, yükleyince hemen çalışmasa ama çok da vaktimi almasa derdindesiniz. Bir bakıyorsunuz karşınızda Excel dosyalarında LINQ (Language INtegrated Query) sorguları yazabilmenizi sağlayan LINQtoExcel. Hemen örnek bir Exceldosyası oluşturuyorsunuz belki de.

  • Genel

    Tek Fotoluk İpucu 116 - Sayısal mı?

    Oldu ya geliştirdiğiniz projenin bir yerinde, koda düşen metinsel bazı değişkenlerin sayısal olup olmadığını tespit etme ihtiyacı duydunuz. Söz gelimi bir Excel dokümanı içerisinden aldığınız hücre değerlerinin sayısallığını kontrol etmek ve buna göre program akışını yönlendirmek gerekiyor.

  • Genel

    Tek Fotoluk İpucu 115 - C# 6.0 Pratikleri (Dictionary Initializer)

    Bir önceki tek fotoluk ipucunda belirttiğimiz üzere C# 6.0 ile dile kazandırılan bazı kabiliyetler kodun kolay okunabilir olması açısında önem arz ediyorlar. Örneğin generic bir Dictionary koleksiyonunu örneklemek için aşağıdaki fotoğrafta görülen yeni yazım dizimini kullanabiliyoruz. Daha okunabilir ve anlaşılır olduğu şüphesiz.

  • Genel

    Tek Fotoluk İpucu 114 - C# 6.0 Pratikleri (Expression-Bodied Function ve String Interpolation)

    Eric Vogel’e göre C# 6.0 ile birlikte dile kazandırılan yenilikler kodun daha kolay okunabilmesini sağlamaktaymış. Örneğin Expression-Bodied fonksiyonlar bu kapsamda değerlendirilebilirler. Diyelim ki elinizde bir POCO (Plain Old CLR Object) tipi var ve ToString metodunu ezeceksiniz (Override). Dile gelen yeni kabiliyetler ile söz konusu metodu aşağıdaki gibi yazma imkanımız var. (Metod gövdesinde string Interpolation özelliğini kullandığımıza da dikkat edelim)

  • Genel

    Tek Fotoluk İpucu 113 - Dapper.Net ile Hello World

    Gecenin bir yarısı. Bilgisayarınızın başındasınız. Önünüzde Visual Studio. Yanınızda kahveniz/çayınız. Canınız da sıkılmış. Acaba ne yapsam da vaktimi iyi değerlendirebilsem diye düşünüyorsunuz. Böyle hallerde şöyle bir NuGet paketi bulup araştırmak bünyeye iyi gelebiliyor. Bunun için Nuget Must Haves isimli siteyi ziyaret edebilirsiniz.

  • Genel

    Tek Fotoluk İpucu 112 - Acaba Bu Dosya Microsoft Office Open XML(OOXML) Formatında mı?

    Diyelim ki bir yerlerde saklanmış ve kod tarafında byte[] array olarak ifade ediebilecek çeşitli tipte dosya içerikleriniz var ve siz bunların Microsoft Office Open XML formatında olup olmadıklarını anlamak istiyorsunuz. Bir süreci başlatmadan önce DB gibi bir ortamda duran dosyaların gerçekten de istenen tipte olup olmadığını anlamak kritik bir operasyon olabilir. Peki bu tip bir kontrolü gerçekleştirmek için nasıl bir kod parçasına ihtiyacımız olur?

  • Genel

    TFİ 111 - Dosya Adı İçinden Geçersiz Karakterleri Çıkartmak

    Diyelim ki elinizde bir takım dosya adları var. Bu dosya adları herhangi bir kaynaktan okunuyor. Ancak bazı dosya adlarında geçersiz karakterler yer aldığını tespit ediyorsunuz (?: < vb) Siz de dosya adlarını kendi uygulamanız içerisinde değerlendirirken bu geçersiz karakterlerden arındırarak hareket etmek niyetindesiniz. Ne yaparsınız? Bunun için bir genişletme fonksiyonu (extension method) yazmak isteseniz nasıl hareket edersiniz? Yoksa aşağıdaki gibi bir metod işinize yarar mı?

  • Genel

    TFİ 110 - Control Tipini Extend Edip Basit Bind İşlemleri Gerçekleştirmek

    Diyelim ki, geliştirdiğiniz Windows Forms tabanlı ekranlarınızdaki kontrollerin içerikleri farklı bir veri kaynağından (Strongly Typed özellikte) geliyor ve siz bunları kontrollerin ilgili özelliklerine bağlayacak generic özellikte bir metod geliştirmek istiyorsunuz. Doğrudan özelliklere değer set etmek ile uğraşabilirsiniz de ama, veri kaynağından okuma yapan kod parçasının içerisinde bu işlemi merkezileştirmeyi de düşünüyorsunuz. Ancak ilk adım olarak Control türevli tipler için bir Extension metod üzerinden özelliklere değer bağlama işlemlerini yapmak istiyorsunuz. Nasıl bir yol izlersiniz? Aşağıdaki ip ucu işinize yarayabilir mi?

  • Genel

    Visual Basic 6.0 ile Nostalji Rüzgarı

    Üniversiteye girdiğim 1993 yılında, 2 kredilik Bilgisayar Programlama dersimizin ana konusu GWBasic dili idi. Aynı yıl Microsoft, Visual Basic 3.0 sürümünü duyurmuştu. Onunla tanışmam 1995 yılını bulacaktı. 486 DX-33 işlemcili bilgisayarımda, Delphi’ den sonra sık sık kurcaladığım program geliştirme ortamlarından birisi olmuştu. O zamanlar benim gibiler için sadece olay güdümlü ve nesne tabanlı bir dil değil, daha da önemlisi Windows platformunda hızlı geliştirme yapmaya olanak sağlayan inanılmaz bir araçtı (Rapid Application Development-RAD)

  • Genel

    Tek Fotoluk İpucu 108–Property Value Dump

    Projelerinizde, temel tiplerden (Primitive Types) özellikler içeren yalın nesne örnekleri döndüren servis metodlarını tüketir misiniz? Mutlaka bir yerlerde kullanıyorsunuzdur. Bu tipler bazen kurum dışı servis üreticileri tarafından hazırlanmış olabilirler. Hatta bazıları içlerinde 50ye yakın özellik (Property) de barındırabilir. Ve bazen projenizin özellikle log atan kısımlarında bu nesnelerin belirli tiplerden oluşan özelliklerine ait değerleri olduğu gibi yazdırmak istersiniz.

  • Genel

    Tek Fotoluk İpucu 107 - XML Üretiminde LINQ Kullanmak

    Diyelim ki elinizde bir biri ile ilişkili tiplere ait nesne örneklerini içeren bir koleksiyon var. Söz gelimi bu koleksiyon, kütüphanenizde yer alan kitaplar ve yazarlarını tuttuğunuz generic bir List örneği olsun. Bu listenin XML formatında bir çıktısını sunmak istediğinizi düşünelim. Elinizin altında XElement, XAttribute gibi tipler ve LINQ gibi harika bir sorgulama dili olduğunun da farkındasınız. Nasıl bir ifade yazarsınız? Aşağıdakine benzer olabilir mi?

  • Genel

    Tek Fotoluk İpucu 106 - XDocument.Load için Proxy Bildirimi

    Şirkette üzerinizdeki işler hafiflemiş durumda. Epeydir de yoğun çalışıyordunuz. Şöyle bir ara vermek istediniz. En azından bir on beş dakikanız serbest. Internette gezinebilirseniz de ama…Başka bir şeylere de bakılabilir. Öyleyse antrenman sorusu geliyor.

  • Genel

    Tek Fotoluk İpucu 105–WsDiffMerge ile Dosya Karşılaştırmak

    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) işlemi de uygulamak isterseniz? Aslında hem karşılaştırma hem de birleştirme işlemleri için zaten yanı başınızda duran bir araç var biliyor musunuz? VsDiffMerge

  • Genel

    Tek Fotoluk İpucu 104 : CustomReflectionContext ile Tipe Özellike Kazandırmak

    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

  • Genel

    Tek Fotoluk İpucu 103–Database.Query ve dynamic Avantajı

    SQL gibi bir veri kaynağına erişmek için pek çok yol olduğunu gayet iyi biliyoruz. Hatta bu işi öğrenmeye başladığımız ilk zamanları hatırlayın. Connection’ın açılması, Command hazırlanması, bir DataAdapter’dan yararlanılarak DataTable/DataSet doldurulması ve DataReader ile veri setinin ileri yönlü dolaşılması ve benzeri tiplerle uğraşırız. Hatta Entity Framework gibi alt yapılar da kendi içlerinde bu temel türlerin ata tiplerinden fazlasıyla yararlanmaktadır.

  • Genel

    Tek Fotoluk İpucu 102–Ne Zaman XmlInclude Gerekir?

    Diyelim ki elinizde Role isimli bir sınıf var. Hatta bu sınıftan türemiş Manager ve Worker isimli iki ayrı sınıf daha var. Hatta Role tipinden Employees isimli bir listeyi özellik (Property) olarak içeren Company isimli başka bir sınıf daha var…Derken Company sınıfına ait bir nesne örneğini çalışma zamanında XML serileştirmek istediniz. Klasik olarak XmlSerializer tipini işin içerisine kattınız. Peki ya sonra? Aldınız InvalidOperationException hatasını oturdunuz aşağıya