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
  • Entity Framework 6 – Code First için Convention Nedir?

    Entity Framework takımı aldı başını gidiyor. Kim durduracak onları. Onlarda The Mask filmindeki karakter gibi “Somebody stop me!” demiyor ki… Aslında bakarsanız olaylar bana göre, Microsoft geliştirici takımlarının, diğer geliştiricilerin seslerini duymaya ve dikkate almaya başlamasından sonra epeyce gelişti. Microsoft’ un çeşitli takımlarının açtığı anketler sayesinde, geliştiricilerin talepleri dinleniyor, değerlendiriliyor ve kayda değer olanlar planlanıp peyder pey yeni sürümlere ilave ediliyor. Hatta takımların ortaya koyduğu “şu da olsa nasıl olur?” ruh halindeki öğeler de geliştiriciler tarafından oylanıyor ve aynı sürece dahil edilebiliyor.(Bloğumdaki takip ettiklerim listesinde bir kaç survey adresini bulabilirsiniz)

  • Tek Fotoluk İpucu–74–SequenceEqual<T>

    Diyelim ki uygulamanızda zaman zaman da olsa farklı referanslar da duran ve aynı tipte elemanlardan oluşan koleksiyonlarınız oluşuyor ve bunları yeri geldiğinde birbirleri ile kıyaslamak istiyorsunuz. Ne yaparsınız? Mantıksal olarak her iki koleksiyonu dolaşacak ortak bir döngü ile bire bir kıyaslama yolunu tercih edersiniz ama daha pratik yollar da var. Örneğin aşağıdaki gibi.

  • WCF Interceptors

    Hepimizin hafızasında yer eden ve defalarca seyretse de asla sıkılmayacağı kült filmler vardır. Hatta nesiller ilerledikçe, her neslin mutlaka en az bir kere uğradığı, uğraması gereken yapımlar vardır. The Godfather, Starwars, Matrix, The Good the bad and the ugly, Back to the future vb…Bunlardan birisi de benim için Mad Max’ dir. Serinin ilginç konusu dışında en çok dikkatimi çeken (pek çok erkeğin de dikkatini çetkiği üzere) filmde kullanılan araçlardır. Bunlardan birisi de o zamanlar yol devriyesi olarak görev yapan V8 motora sahip 1974 model Ford Falcon XB dir. Tabi bunu tahmin edeceğiniz üzere siyah renkli efsanevi Ford GT351 takip etmiştir. Detaylar için wikipedia’ dan bilgi alabilirsiniz Peki bizimle ne alakası var? Bu yazımızda farklı bir Interceptor kavramını göz önüne alıyor olacağız.

  • Tek Fotoluk İpucu–73–LINQ to Excel için Strongly Typed Tip Kullanmak

    Bir önceki ip ucunda LINQ to Excel Provider’ dan yararlanmış ve bir Excel dosyasını kolayca nasıl sorgulayabileceğimizi görmüştük. Peki ya Excel tablosunda yer alan satırları, kod tarafında oluşturacağımız Strongly Typed sınıflar içerisindeki özelliklere karşılık gelecek şekilde ifade edebiliyor olsaydık. Daha şık olmaz mıydı?

  • Tek Fotoluk İpucu–72–LINQ to Excel ile Basit Sorgulama

    Zaman zaman siz de benim gibi LINQ ile yazılmış çeşitli Provider’lara şöyle bir göz gezdirenlerden misiniz?

  • Tek Fotoluk İpucu–71–IQueryable veya IEnumerable

    Bu sefer ki ip ucumuz biraz daha kışkırtıcı aslında. Aşağıdaki fotoğrafı bir inceleyin öncelikle ve nasıl bir fark olabileceğini düşünmeye çalışın. Yani kafanızda kod parçasını debug etmeye gayret edin. (Visual Studio ve benzeri herhangibir geliştirme aracı kullanmamanız şiddetle tavsiye edilir)

  • Entity Framework Code First için Doğrulama(Validation) Stratejileri Webiner(Webcast) Kayıtları

    Geçtiğimiz günlerde Nedirtv?com topluluğu adına Entity Framework Code First modeli için kullanılabilen doğrulama (Validation) stratejilerini incelediğimiz bir Webiner (Webcast) gerçekleştirdik.

  • Entity Framework Code First için Doğrulama(Validation) Stratejileri

    Bir verinin çeşitli kurallara göre doğrulanması, verinin işlenmek üzere gönderilmeden önce yapılması gereken önemli işlemlerden birisidir. Özellikle Entity Framework gibi veri merkezli (Data-Centric) uygulama geliştirme alt yapılarında bu durum daha da önem arz etmektedir. Burada söz konusu olan, görsel bir kontrolün içerik denetiminden ziyade, çalışma zamanı Entity örneklerine ait özelliklerin (Property) değerlerinin denetlenmesidir. Çok doğal olarak verilerde tutarsızlıklara neden olabilecek çeşitli ihlallerin tespit edilmesi, toplanması, gerektiğinde son kullanıcıya bildirilmesi ya da farklı bir yere raporlanması/loglanması gerekmektedir. Peki verinin doğrulanmasından tam olarak beklentilerimiz neler olabilir? Bunu bir kaç gerçek hayat ihtiyacı ile cevaplayabiliriz.

  • Asp.Net Web API’ leri ASPX’ den Asenkron Çağırmak

    Bateri çalanları her zaman için büyük bir hayranlıkla izlerim/izlemişimdir. Özellikle 4 uzuvlarını da (iki kol iki ayak) kullanırlar ama daha da önemlisi tüm bu unsurları eş zamanlı olarak çalıştırabilirler. Sadece iki kolu çalıştırmak nispeten bir dereceye kadar kolay olabilir biz normal insan oğulları için ama bir de ayakları devreye sokmak. Hele de tüm bu hareketli parçalardan anlamlı bir melodi çıkartmak gerçekten çok ama çok zor bir iştir. Tabi eğitimler ile belirli seviyede bateri çalabilmek pek çok insan için mümkün olabilir ama tabi ritim tutturmak, ataklarda bulunmak veya çok uzun süre boyunca aynı tempoyu hiç bozulmadan devam ettirebilmek inanılmaz bir konsantrasyon veya yetenek gerektirmektedir. Peki bu eş zamanlı çalışabilme bir yazılımcı için ne ifade edebilir? Tabi ki de asenkron çalışan kod parçalarını.

  • Tek Fotoluk İpucu 70.5–Asp.Net Multiple File Upload

    Asp.Net 4.5 ile FileUpload kontrolüne gelen iki önemli özellik (Property) mevcuttur. Bunlardan birisi AllowMultiple, diğeri ise PostedFiles’ dır. Bu iki özelliği kullanarak birden fazla dosyanın, istemciden sunucu tarafına yüklenme işlemlerini (Multiple Upload Files) kolayca ele alabilirsiniz. Nasıl mı? Buyrun

  • Tek Fotoluk İpucu–70–Yine Newtonsoft Json.net ve dynamic

    Diyelim ki elimizde aşağıdaki gibi bir JSON içeriği var.

  • 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. Ama tabi zaman zaman uzmanlık alanım dışındaki konulara da merak salmıyor değilim. Örneğin mobil platform üzerine geliştirme yapmak gibi. Her ne kadar Microsoft bu konuda elinden geleni yapıp işi son yıllarda daha da kolaylaştırıp Windows Phone gibi güzel bir zemin hazırlamış olsa da çok nadiren o tarafa gidip geliyorum.

  • 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–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–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