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.
-
Tek Fotoluk İpucu-44 (Mail Adresi Doğru mu?)
Aslında bu soruya cevap vermek özellikle web developer’lar için son derece kolay. RegularExpressionValidator kontrolünde uygun deseni seçip kontole hatalı mail adresi girilmesi engellenebilir. Ama yine de bazen tedbiri elden bırakmamakta yarar vardır. Söz gelimi bir mail adres listesine toplu mail atacağımız bir senaryoyu göz önüne alalım. Geliştirdiğimiz kodlarda mail adreslerinin doğru olup olmadığını çok basit bir hile ile kontrol edebiliriz. Nasıl mı?
-
T-SQL ile Eğlenmeye Devam(İkinci Devre)
Hatırlayacağınız üzere geçtiğimiz günlerde kafayı T-SQL ile bozmuş ve can sıkıntısından eğlenceli ifadeler yazmaya çalışmıştım. Sanırım söz konusu bu eğlence sonraki günlere de sirayet etti ve yine bir kaç eğlenceli T-SQL sorgusu ile karşınızdayım (İnsan ne oldum dememeli ne olacağım demeli belki de…Ben ki SQL’ den nefret eden bir birey olarak bu hale geldiysem…)
-
T-SQL ile Dinlenmece Eğlenmece
Hiç canınızın sıkıldığı ve böyle bir buhran anına girdiğinizde SQL Server Management Studio’yu açıp T-SQL ile eğlenceli bir şeyler yapmaya çalıştığınız oldu mu? Açıkçası geçtiğimiz günlerde böyle sıkkın ve bıkkın bir ruh halindeyken ve konuşmak istediğim tüm arkadaşlarım yoğunken, ekranımda duran Management Studio’daki bembeyaz ve bomboş Query penceresi ile muhabbet etmeye karar verdim. Aslında amacım basitti. Daha önceki tecrübelerime dayanarak ihtiyaçlar dahilinde kullandığım T-SQL ifadelerini şöyle bir tekrar etmeye çalışacak ve siz değerli okurlarıma bir blog girdisi olarak sunacaktım. Aklıma geldikçe ihtiyaçlarımın T-SQL karşılıklarını yazmaya başladım. Düşündüğüm ilk gereksinim, sistemimde yüklü olan kaç veritabanı olduğunu ve bunlara ait bazı temel bilgileri edinmekti…İşte serüvenimiz bu ilk sorgumuz ile başlıyor.
-
Tek Fotoluk İpucu-43(Active Directory Connection String Bilgisini Almak)
Oldu da domain üzerinde çalışırken Active Directory’nin bağlantı bilgisine ihtiyaç duydunuz? Bu özellikle AD ile.Net tarafında çalışırken size gerekli olan önemli bir bilgidir. Nasıl mı elde edebiliriz? Aslında basit bir teknik var. Garantisi yok ama en azından ben şirket makinemde başarılı bir şekilde test edebildiğimi söyleyebilirim
-
Parallel Programming–Reduction
Neredeyse son bir kaç saattir yoğun bir şekilde Wolfenstein isimli bilgisayar oyununu oynamaktaydım. Aslında çok fazla bilgisayar oyunu oynayan birisi değilimdir. Hatta bu oyunun ilk versiyonunu çok çok uzun zaman önce oynadığımı ve arada çok az oyunla haşır neşir olduğumu itiraf edebilirim
-
Tek Fotoluk İpucu-42(ExecuteQuery ile Injection' dan Korunmak)
LINQ to SQL kullandığımız durumlarda bildiğiniz gibi dışarıdan SQL sorgularını da icra ettirebilmekteyiz. Bu amaçla DataContext tipinin ExecuteQuery metodu kullanılmakta. Ancak özellikle SQL Injection saldırılarına karşı dikkatli olmamız gerekiyor. Bu nedenle söz konusu metodun placeholder kullanımına izin veren versiyonunu ele almamızda yarar olduğu kanısındayım. Nasıl mı?
-
Tek Fotoluk İpucu-41(Let Keyword)
LINQ sorgularını pek çoğumuz etkin bir şekilde kullanıyoruzdur. Ama belki aralarda atladığımız keyword’ler de vardır. Mesela Let. Çık sık kullanmasakta oldukça işimize yarayan bir anahtar kelimedir. Söz gelimi onu bir ifadeye eşitleyip LINQ sorgusunun hatırlamasını sağlayabilir, koşul olarak değerlendirebilir hatta anonymoust tip içerisine bile dahil edebiliriz. Tipik olarak sorgu içinde bir değişken mantığında ele almış oluruz. Nasıl mı?
-
Task Relations–Continuation Metodları
Böylesine yağmurlu ve sabah trafiğinin tavan yaptığı bir günde size ne Radyo Eksen’ deki güzel melodiler, ne de okuduğunuz mizah dergisindeki karikatürler iyi gelmiyorsa, başka bir şeyle uğraşmanın yeridir diyebilirim. Ben bu sıkıntıyı aşmak ve kendimi daha iyi hissetmek adına bir makale daha yazmaya karar verdim ve hemen Windows Live Writer programını açtım.
-
Tek Fotoluk İpucu-40(Sebze Çorbası)
Hani böyle annemiz zamanında içinde yok yok dedirtecek türden çorbalar yapmıştır. Her çeşit sebzenin konulduğu… Hah işte bu fotoğrafta ona benziyor. İçinde generic mimari var, reflection var, dynamic tip kullanımı var. Olay gayet basit. Çalışma zamanında generic tipleri dinamik olarak üretip kullanmak istediğinizi düşünün. Bunu nasıl sağlarsınız? İşte basit bir örnek
-
Tek Fotoluk İpucu-39(Dynamic Delegate Üretmek)
Bazen çalışma zamanına ilişkin yapmamız gereken atraksiyonlar olur. Söz gelimi çalışma zamanında bir delegate tipinin dinamik olarak üretilmesini ve yürütülmesini isteyebiliriz? Peki bu nasıl olacak? İşin içerisine birazcık Reflection katarak tabiki de
-
Tek Fotoluk İpucu-38(Delegate Chain)
Arada sırada temelleri de hatırlamak gerekir değil mi? Söz gelimi bir delegate zincirini nasıl kurar ve aynı parametreler için nasıl çalıştırırsınız? İşte size örnek
-
SSIS - Programatik Olarak Variable Değeri Set Etmek
Beni tanıyanlar SQL ailesini pek sevmediğimi ve biraz uzak durmaya çalışmak istediğimi bilirler. Ne varki bazen iş hayatının gerçekleri ile karşı karşıya kalırız ve mecburen SQL ailesinin bazı fertleri ile yakın ilişkiler içerisine gireriz.
-
Tek Fotoluk İpucu-37(Faydalı Interface Tiplerinden IComparer<T>)
.Net içerisinde pek çok faydalı Interface tipi bulunmaktadır. Örneğin kendi tiplerinizin sıralama işlemlerini öğrenebilmesi için kullanabileceğimiz IComparer. Nasıl kullanıldığını merak ediyor musunuz? İşte size basit bir fotoğraf.
-
Tek Fotoluk İpucu-36(Config Dosyasına Kolay Ulaşım)
.Net Framework 2.0 ile birlikte gelen Configuration API’sini hepimiz biliyoruzdur. Bu API sayesinde config dosya içeriklerinin Managed karşılıkları olan tiplere ulaşmamız son derece kolay. Aslına bakarsanız pek çok uygulamada config dosyası içerisinde ConnectionStrings ve AppSettings kısımlarını sıklıkla kullandığımızı görmekteyiz. Bu içeriklere daha efektif ve performanslı erişim için belki bir Wrapper tip işimizi görebilir. Nasıl mı?
-
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?