Meraklı bir bilgisayar programcısının notları.

Merhaba! Ben Burak Selim Şenyurt - yazılım geliştirici, blogger ve öğrenme tutkunu.

Bu blogda yazılım mühendisliği, sistem tasarımı, programlama dilleri ve yeni teknolojiler üzerine yazılar paylaşıyorum. Özellikle .NET, Rust, Zig, yapay zeka araçları ve mimari konularına ilgi duyuyorum. Kendimi sürekli geliştirmeye ve yeni şeyler öğrenmeye adıyorum.

Arama · Arşiv


Maceralar

Toplam 1022 yazı Tüm arşiv Arama RSS
  • Tek Fotoluk İpucu–69–Newtonsoft JSON.Net ve dynamic Keyword

    Bildiğiniz üzere JSON (JavaScriptObjectNotation) oldukça kompakt bir veri formatı sunuyor. Çoğu durumda veriyi anlamlı şekilde saklarken, XML serileştirme yerine tercih ediyoruz. Nitekim daha az yer kaplamakla birlikte nesnel olarak anlaşılabilirliği daha yüksek. Özellikle MVC tarafında çok kıymetli. JSON ile.Net tarafında çalışırken ise işleri kolaylaştırmak adına Newtonsoft’ un NuGet ile indirebileceğimiz paketini kullanmaktayız.

  • Entity Framework 6 Alpha 1 ve async, await Özellikleri

    Doğruyu söylemek gerekirse yazılım hayatım boyunca en çok kurduğum cümlelerden birisi de sanıyorum ki şu olmuştur: “Microsoft’ un hızına yetişemiyoruz” Bazı açılardan bakıldığında bu özellikle nihayi ürün ile geliştirme yapanlar için bir handikap olarak görülebilir. Çünkü yeni sürümler genellikle geliştiricilerin ve ürün yöneticilerinin arzu ettikleri, görmek istedikleri kabiliyetleri içermektedir.

  • Tek Fotoluk İpucu–68–Reflection ile Workflow Activity Yüklemek, Çalıştırmak

    Diyelim ki elinizde içerisinde bi dünya Workflow Activity’ si olan bir kütüphane var. Ancak bu kütüphane projenize referans edilmiş değil. Fiziki bir klasörde tutulmakta. Siz de istiyorsunuz ki, bu kütüphane içerisinde yer alan herhangibir Workflow Activity’ sini örnekleyebileyim ve hatta Workflow çalışma zamanı motoruna devredip yürütebileyim. Aşağı yukarı yapmanız gereken şeyin içerisinde Reflection olduğunu tahmin ediyorsunuzdur. Belki de aşağıdaki gibi bir yaklaşım hayal ediyorsunuzdur

  • Windows Phone 7 Cihazlarda LINQ to SQL Kökenli Veritabanı ile Çalışmak

    Uzun zamandır bilgisayar yazılım teknolojileri ile ilgileniyor olmama rağmen zaman içerisinde belirli konularda uzmanlaşmaya çalıştığımı fark ettim. Bana göre normalde olması gereken bu. Nitekim insanın kapasitesini bilmesi ve her şeyden çok fazla anlamamaktansa, belirli bir konuda çok iyi bilgiye sahip olması daha anlamlıdır diye düşünüyorum

  • Tek Fotoluk İpucu 67.75–Asp.Net 4.5 ControlAttribute

    Asp.Net 4.5 ile gelen önemli tiplerden birisi de, System.Web.ModelBinding isim alanı (System.Web.dll assembly’ ı içerisindedir) altında yer alan ControlAttribute niteliğidir (Attribute). Metod parametrelerine uygulanabilen bu nitelik ile, veri bağlı kontrollerin (GridView gibi) filtre bazlı çalıştığı senaryolarda, filtreleme kriterinin/kriterlerinin nereden alınacağı, kod seviyesinde kolayca belirtilebilir. Aşağıdaki fotoğrafta görülen örnekte, albümlerin sorgulanmasında kullanılan ArtistId değerinin bir DropDownList öğesinden çekileceği, GetAlbums metodu içerisindeki Control niteliği yardımıyla ifade edilmiştir

  • Strongly Typed Data Control

    Malumunuz Web tarafı ile aram pek iyi değildir. Ancak .Net Framework’ ün her sürümünde genel olarak gelen yeniliklere bakmaya çalışıyorum/çalışmaktayım. Geçtiğimiz hafta içerisinde de Asp.Net 4.5 tarafında gelen yenilikleri incelemeye başladım. Bunlar arasında dikkatimi çekenlerden birisi de, Web Form’ larda veri bağlı kontroller (Data Bind Controls) için gelen strongly typed ve intelli-sense desteğiydi. Durumu daha iyi aktarabilmem için basit bir örnek üzerinden ilerlemeye çalışım. İlk etapta aşağıdaki gibi bir POCO (Plain OLD CLR object) tipimiz olduğunu düşünelim.

  • Tek Fotoluk İpucu 67.5–Asp.Net 4.5 No More DataBind

    Asp.Net 4.5 Web Forms tarafında gelen yeniliklerden birisi de, veri bağlı kontrolleri IQueryable veya IEnumerable tipinden arayüz referanslarına bağlarken DataBind fonksiyon çağrısı yapılması zorunluluğu olmamasıdır. Bu sayede Markup tarafında sadece Select metodunun bildirilmesi yeterli olmaktadır. Aşağıdaki ekran görüntüsünde olduğu gibi

  • Tek Fotoluk İpucu–66–Protokol ve Port Numarasını Bulmak

    Elimizde bir Uri nesne örneği olduğunu varsayalım. Bu Uri adres bilgisinden de port numarası ve protocol bilgisine ulaşmak istiyorsunuz. Aslında string tabanlı fonksiyonellikler ile bu iş gerçekleştirilebilir ama Regex tipini işin içerisine katar ve bir de Extension Method haline getirirsek tadından yinmez

  • Tek Fotoluk İpucu–67–Fibonacci, LINQ, Skip ve Take

    Biliyorsunuz.Net Framework 4.0 ile birlikte BigInteger tipi geldi ve çok büyük sayıları kullanabilir olduk. Şimdi diyelimki eğlencelik olsun diye Fibonacci sayılarının sonlu kümesine ve bu kümedende istediğiniz indexte başlayıp istediğiniz miktarda alabileceğiniz bir fonksiyonelliğe ihtiyacınız var. Ha bir de elinizin altında yield keyword’ ü. Taaaa.Net Framework 2.0 zamanlarından. Naparsınız?

  • Tek Fotoluk İpucu–65–Bir Web Sayfasının External Link’ lerini Yakalamak

    Diyelim ki her hangibir Uri tipinin işaret ettiği Web içeriğinde yer alan a href= takılarını yakalamak ve bir listeye doldurmak istediniz. Napardınız? Yoksa aşağıdaki gibi bir Extension Method mu geliştirirdiniz?

  • WCF 4.5–SingleWSDL

    Daha dün gibi hatırlıyorum. Windows Communication Foundation 4.0 ile gelen yenilikleri inceliyor, öğrendiklerimi derhal bloğumda paylaşıyordum. Zaman ya çok hızlı akıyor ya da Microsoft zamanın önünde koşuyor

  • WCF 4.5 WebSockets Kullanımı [Taslak]

    Bazen yemek yemek için dışarı çıkar ve daha önceden gitmediğimiz bir yere oturup hiç bakmadığımız tadlara yelken açarız. Bu, bazen çok başarılı sonuçlanır ve bize büyük bir keyif verir. Bazen de yapmış olduğumuz tercihlerimiz için pişmanlık duyarız. Hatta bazı zamanlarda yerken iyi gelen o tadlar, çıkışta büyük sıkıntılara yol açabilir

  • Tek Fotoluk İpucu 64 – Assembly Adresinden Object Üretmek

    Bazen reflection tekniklerini kullanarak harici assembly’ lar içerisinden bulduğumuz tiplerin örneklerini ürettirme ihtiyacı duyabiliriz. Bunun için kullanabileceğimiz pek çok yol vardır aslında. Örneğin tipin bulunduğu Assembly dosya adresini tutan bir string değişken üzerinden dahi istenilen nesne örneğinin üretilmesini sağlayabiliriz. Nasıl mı?

  • Tek Fotoluk İpucu 63–Uri Üzerinden Ping Sürelerine Bakmak

    Hani bazen komut satırından bir URL adresine talep gönderip cevap sürelerine bakarız. Peki kod tarafından bu işi nasıl taklit edebiliriz? Örneğin Uri tipine bir Extension Method dahil etsek nasıl olur? Buyrun öyleyse

  • WF Rule Engine’ i Dışarıdan Kullanmak

    Kurallar, kurallar, kurallar!Hayatın hemen her noktasında karşımıza tonlarca kural çıkar. Tabi mevzumuz kuralların zorlayıcılığı ve saire değil, kuralların ihlal edilmesi veya uyulması halinde gerçekleşen aksiyonların neler olduğu ile ilgilidir. Ki bu düşünce tarzı aslına bakarsanız iş dünyasının çekirdek süreçlerinden tutun, en ince ve hatta uç noktalarına kadar yayılır.

  • Tek Fotoluk İpucu 62–Byte Array için Sıkıştırma

    Kod içerisinde bir yerlerde öyle ya da böyle elde ettiğiniz ama boyutu azcık da olsa küçülebilse dediğiniz byte tipinden array’ ler olduğunu düşünün. Kimi zaman bir dosyanın içeriği olabileceği gibi, sistem içerisinde üretilmiş bir byte dizisi bile olabilir bu. Peki söz konusu içeriği var olan GZip veya Deflate algoritmalarına göre sıkıştırmak isterseniz

  • Tek Fotoluk İpucu 61–Primitive Olmayan Property’ leri Bulmak

    Diyelim ki bir değişkenin tipinin içerisinde yer aldığı Assembly’ daki diğer tiplerin Primitive olmayan (int,double,char vb) özelliklerini bulmak gibi bir ihtiyacınız var. Nasıl bir yol izlersiniz? Kuvvetle muhtemel Reflection’ dan yararlanırsınız. Hatta belki biraz da LINQ katarsınız işin içine. Ya da aklınızdan geçen tam olarak aşağıdaki gibi bir Extension Method’ dur

  • Kodla Saçmalamaca

    Programlamaya ister yeni başlamış olun ister yıllardır bu işin içerisinde bulunun, hızlı çözüm üretmek, analitik düşünmek ve olabildiğince işe yarar parçalar çıkartmak en büyük hedeflerimizden birisi olmalıdır. Elbette yıllar içerisinde elde edinilen, kazanılan tecrübe ve bilgi birikimine bağlı olarak kendinize ait bir geliştirme (Development) tarzı da ister istemez oluşacak ve hatta sonrasında değiştirilemez/değiştirilmesi zor bir alışkanlık haline gelecektir.

  • Text Template ve VSIX Project Template Kullanımı

    Çoğu zaman geliştiricilerin karşısına zaman kısıtı olan projelerde, sıklıkla tekrar eden çözümsel ihtiyaçlar çıkar. Örneğin, ürünün içerisinde n sayıda ekran kullanıldığını ve bunların aslında belirli bir noktaya kadar bir kaç parametre ile değişen ama standart kod içeriklerine sahip olduğunu düşünün. Hatta bu tip ekranları bir kaç proje için aynı şekilde ürettiğinizi.

  • Tek Fotoluk İpucu 60 - string Kökenli JSON İçeriği Ters Serileştirmek

    Tek Fotoluk İpucu 60‘da generic bir nesne örneğinin JSON formatında serileştirilmesini ve serileştirilen içeriğinde string olarak geriye döndürülmesini sağlayan bir extension metod geliştirmiştik. E tabi çok haklı olarak hani bunun ters serileştirmesi nerede diyebilirsiniz. Dediniz di mi?