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 1030 yazı Tüm arşiv Arama RSS
  • Tek Fotoluk İpucu-35(DeflateStream ile Sıkıştırmak)

    Diyelim ki uygulama içerisinde kullandığınız büyük boyutlu bir byte dizisi var. Aslında bu diziyi bellek üzerinde sıkıştırarak daha az yer tutacak şekilde de kullanma şansınız olabilir. DelfateStream tipi bu anlmada işinize yarayacak Compress ve Decompress metodlarını içermektedir. İşte size örnek bir kullanım. Lorem Ipsum’u byte seviyesinde sıkıştırıyoruz. E decompress kısmı da size kaldı.

  • Tek Fotoluk İpucu-34(Güncel Process için Bellek Bilgileri)

    Çalıştırdığımız.Net tabanlı uygulamaların anlık bellek tüketimlerini kod içerisinden ölçümlemek ve hatta loglamak iyi bir fikir olabilir. Hatta bu çıktıyı XML formatında dış dünyaya da sunabiliriz. Basit anlamda aşağıdaki fotoğraf size ipucu verecektir kanaatindeyim.

  • Barrier Class, Sıralama Algoritmaları ve At Yarışı

    At yarışlarına pek ilgim yoktur aslında ama tam da bu günlerde okuduğum kitap nedeniyle, paralel programlama ile aralarında sıkı bir ilişki olduğunu ifade edebilirim. Bildiğiniz üzere bu yarışların pek çok meraklısı bulunmaktadır. Özellikle yarışları stadyumdan seyredenler oldukça heyecanlıdır. Gerçi yarışın başlamasından önceki tahminler tam başlangıç anında yerini endişeye bırakır. Bizim gibi yazılımcılar için önemli olan ise başlangıç anıdır. Neden mi? Bazen bir yarışa başlanırken, yarışa iştirak eden katılımcıların start düzlüğünde bir arada yer almalarını bekleriz. At yarışlarındaki başlangıç kapıları bu işe yaramaktadır. Tahmin edeceğiniz gibi bu kapılar atların başlangıç işareti gelmeden hareket etmelerini engellemek üzere tasarlanmışlardır.

  • WCF Data Services– Annotations Builder

    Yağmurlu bu sonbahar günlerinde eminim ki kimse hüzünlenmek, kara kara düşünmek istemez. Ama bazen o kadar garip sorunlar ile karşı karşıya kalırız ki…Ne yapacağımızı bilemeyiz ve kara kara düşünürüz. Mesela ben bu girişi yazdığım sırada, aslında tamamlamış olduğum makalenin sonucunda bir yere varamamış ve beklentilerimi karşılayamamış birisi modundayım. Neden mi? Gelin anlatayım.

  • EF 4.2 ile Code–First Development

    Teknolojinin hızına inanın ki yetişilemiyor. Her gün yeni bir bilim ve teknoloji haberi var dünyada. Ancak bir geçek daha var ki o da Microsoft, Google, Apple gibi devlerin de hızına yetişilememsi. Örneğin daha henüz 2011 Mix’ te RTM olarak duyurulan Entity Framework 4.1 sürümü üzerine geçtiğimiz günlerde 4.2 RC (Release Candidate) duyuruldu. Ben de bunun üzerine yeni sürümde Code-First Development’ ın nasıl uygulandığını anlamak ve görmek istedim. Haydi gelin keşfetmeye başlayalım.

  • Tek Fotoluk İpucu-33(Xml Cast)

    Varsayalım ki elimizde kendi geliştirdiğimiz tipler ve kullandığımız List koleksiyonları var. Ve olduda bir yerde bu koleksiyonların içeriklerinin XML çıktılarına ihtiyaç duyduk. Basit bir Extension method geliştirebilir miyiz acaba?

  • Karmaşık Değil Son Derece Basit

    Kurumsal eğitim vermenin en güzel yanlarından birisi de, gelenlerin istekleri ve talepleri doğrultusunda gerçek hayat örneklerini daha kolay bir şekilde kodlayabilmeniz ve gösterebilmenizdir. Söz gelimi geçtiğimiz hafta içerisinde vermeye başladığım ve makaleyi yazdığım tarih itibariyle devam etmekte olan bir eğitim sırasında, Binary ve XML Serileştirme konularını anlatırken, sahip olduğumuz dil ve framework materyallerinden bazılarını iç içe ve ne kadar etkili kullanabildiğimizi gördük. Bu durumdan esinlenerek sizlere de bir gerçek hayat örneği aktarmaya çalışmak isterim.

  • Haydi Bir Captcha Kontrolü Yazalım

    Şu sıralarda kurumsal bir Asp.Net eğitimi vermekteyim. Eğitim içeriği oldukça geniş ve güzel konuları içermekte. Bunlardan bir tanesi de Asp.Net uygulamalarında Captcha doğrulamasının kullanımı. Bildiğiniz üzere web ortamı üzerinde özellikle Form veri girişlerinin yapıldığı senaryolarda akıllı robotların gereksiz yere post atma işlemlerini engellemek çok önemlidir.

  • Tek Fotoluk İpucu-32(Environment Verisini XML Olarak Sunmak)

    System.Environment tipi içerisinde son derece yararlı ortam bilgileri bulunmaktadır. Bu bilgileri elde etmek son derece kolaydır. Hatta dilerseniz bunları XML formatında dış dünyaya sunabilirsinizde. Nasıl mı?

  • Tek Fotoluk İpucu-31(Hashing)

    Hiç bir zaman kullanıcılarımıza ait şifreleri açık formatta saklamamamız gerekir. En basit anlamda söz konusu verileri Hash’leyerek tutmak en doğrusudur. Bu anlamda.Net tarafında kullanımı son derece basit olan Hash algoritma tipleri mevcuttur. Nasıl kullanıldığını merak ediyor musunuz?

  • Tek Fotoluk İpucu-30 (Entity Sorgusundan Excel Dosyasına)

    .Net Framework 4.0’ ın getirdiği pek çok yenilik sayesinde Office gibi API’leri kullanmamız çok daha fazla kolaylaştı. Örneğin bir Entity sorgusunun sonucunu Excel dosyasına aktarmak için daha basit kodlamalar yapabiliyoruz. Nasıl mı?

  • Eager Loading, Lazy Loading, Explicit Loading

    Şöyle basit tek bir Main metodu içerisinde, Entity Framework’teki Loading çeşitlerini görmek ister miydiniz? Öyleyse aşağıdaki kod bloğu oldukça işinize yarayacaktır diye düşünüyorum. Senaryolar oldukça basit. Meşhur Chinook veritabanında yer alan Artist ve buna bağlı Album tablolarını ele alıyoruz.

  • Tek Fotoluk İpucu-29 (Ne Kadar TextBox Varsa)

    Kaliteli kod yazmak için aslında biraz titiz düşünmek gerekir. Söz gelimi bir Windows programlamada bir Container kontrol içerisindeki tüm TextBox’ların içeriğini temizlemek istediğiniz bir durumda nasıl kodlama yaparsınız? İşin içerisine Recursive metod formatını katabilirsiniz. Hatta bunu bir Extension Method haline de getirebilirsiniz. Nasıl mı?

  • Tek Fotoluk İpucu-28(Bir Klasörün Yaklaşık Toplam Boyutunu Bulmak)

    Bir klasörün tüm içeriğinin toplam boyutunu öğrenmek isteyebiliriz. Bunun için DirectoryInfo tipine bir ExtensionMethod eklersek de güzel olur. Hatta bu metodun alt klasörleri de gezebilmesi için Recursive olarak yazılması da gerekir. Nasıl mı?

  • Tek Fotoluk İpucu-27(FileInfo Bilgisinin Tamamını İndirmek)

    FileInfo tipi yardımıyla bir dosyanın pek çok özelliğine erişebiliriz bildiğiniz üzere. Peki tüm bu bilgileri tek bir String içerisinde toplamak ister misiniz? Söz gelimi loglamalarda bu oldukça işe yarayabilir. Hatta bunu bir Extension method olarak da yazabiliriz. Nasıl mı?

  • Tek Fotoluk İpucu-26 (Runtime Method Çağrımı)

    Sanırım bir önceki tek fotoluk ipucunda çalışma zamanındaki bir nesne özelliğinin değerinin nasıl alınabileceğini görmüştük. Elbette reflection konulu işlerde bir nesne örneğinin bir metodunun çağırılması da söz konusu olabilir. Nasıl mı?

  • Tek Fotoluk İpucu-25 (Runtime Value ve Extension Method)

    Özellikle Reflection kullandığımız bazı çalışma zamanı senaryolarında, nesnelerin özellik değerlerini elde etmek istediğimiz durumlar da söz konusu olabilir. Çok basit bir senaryo göz önüne alındığında bunun için bir Extension method dahi geliştirebiliriz. Nasıl mı?

  • Tek Fotoluk İpucu-24(DataContractJsonSerializer ve Extension Method)

    Extension metodlar çok ama çok işimize yarayabiliyor. Örneğin serileştirilebilir herhangibir tipin Json formatındaki çıktısının string tipinden döndüren bir extension metodu geliştirebilirsiniz. Nasıl mı?

  • Tek Fotoluk İpucu-23 (BinaryFormatter, DataSet, Extension Methods)

    Bu kez elimde bir DataSet, Binary serileştirme için BinaryFormatter ve tabiki Extension Method kabiliyeti var. Ne yapabiliriz? Belki de bir DataSet’in Binary formatta Serialize, DeSerialize işlemlerini üstlenen genişletme metodlarını yazabiliriz. Ben Serialize kısmını yazdım. Gerisi size kalmış

  • Tek Fotoluk İpucu-22 (GetCommandLineArgs)

    Zaman zaman komut satırından çalışan Console uygulamaları geliştiririz ve bu programlar genellikle komut satırı parametreleri alarak çalışırlar. Çoğunlukla Main metodunun string[] tipinden parametresini kullanırız. Peki Environment tipinin de komut satırı argümanlarını alabilmemiz için bir metod sunduğunu biliyor muydunuz?