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 101–Team Project Process Template

    Bazı komut satırı araçları oldukça işlevseldir ve çoğunlukla tercih edilir. Örneğin TFS üzerinde bir Team Project silinmek istendiğinde, tfsdeleteproject komut satırı aracına başvrulur. Peki şirketinizde kurulu olan TFS üzerindeki Team Project örneklerinin kullandıkları Process Template’ leri yine bir komut satırı aracı ile öğrenmek isteseydiniz, nasıl bir yol izlerdiniz? Aşağıdaki fotoğraf size bir ipucu verebilir belki de

  • Genel

    Tek Fotoluk İpucu 100–AutoMapper Kullanımı

    Bildiğiniz üzere şu yazımızda nesneler arası özellik (Property) eşleştirmelerinin nasıl yapılabileceğini incelemeye çalışmıştık. Ancak işin çok daha profesyonel bir boyutu var. Örneğin tipler arası özellik adları birbirlerinden farklı olabilir ve bu nedenle bir haritayı önceden söylemeniz gerekebilir. Neyseki NuGet üzerinden yayınlanan AutoMapper kütüphanesi çok gelişmiş özellikleri ile buna imkan vermektedir. Söz gelimi aşağıdaki fotoğraf özellik adlarının farklı olması halinde bile AutoMapper ile başarılı bir şekilde eşleştirme yapılabileceğini göstermektedir.

  • Genel

    Tek Fotoluk İpucu 97–Google Shortener URL Hizmetini C# ile Kullanmak

    Malumunuz bazen Web adreslerine ait URL satırları epeyce uzun olabiliyorlar ve bunları saklamak gibi amaçlarla kullanmak istediğimizde, genellikle kısaltma yoluna gitmeyi tercih ediyoruz (Sanırım kimse 20 haneye sığdırılabilecek 200 karakterlik bir URL bilgisi ile uğraşmak istemez) Bir URL adresini kısaltmak için kullanılabilecek pek çok global hizmet bulunmakta. Bunlardan birisi de Google’ ın Shortener servisi (ki bu adresten de görebileceğiniz gibi kendisi de epeyce kısa Smile). Peki bir tarayıcı ile bu söz konusu servise kolayca gönderebildiğimiz bir talebi kod tarafında C# ile gerçekleştirmek isteseydiniz nasıl bir yol izlersiniz? Aşağıdaki gibi olabilir mi?

  • Genel

    Tek Fotoluk İpucu 94–WMI ile Disk Bilgilerini Okumak

    WMI (Windows Management Instrumentation) maceralarımıza devam etmeye ne dersiniz? Eğer biraz daha kasarsak, geniş bir WMI kütüphanesi bile oluşturabiliriz. Bu fotoğrafımıza konu olan güncel senaryomuz ise şöyle; İşletim sistemi tarafından Map edilmiş Disk bilgilerine nasıl ulaşabiliriz? Sadece Hard Disk’ ler değil. Bağlı olduğumuz Network Driver’ ları da öğrenmek istediğimizi varsalayım

  • Genel

    Tek Fotoluk İpucu 93–WMI ile Processor Bilgisini Okumak

    Hatırlayacağınız üzere bir önceki Tek Fotoluk İpucunda, Win32PhysicalMemory isimli WMI (Windows Management Instrumentation) tipinden yararlanarak, makinede takılı olan RAM’ ler hakkında temel bilgileri nasıl alabileceğimizi incelemiştik. Bu seferki ipucumuzda ise işlemci bilgilerini okumaya çalışıyor olacağız. Aşağıdaki fotoğrafta görüldüğü gibi.

  • Genel

    Tek Fotoluk İpucu 92–WMI ile RAM Bilgilerini Almak

    Diyelim ki uygulamanız içerisinden, çalışmakta olduğu Windows işletim sistemi tabanlı makinenize ait fiziki RAM bilgilerini almak istiyorsunuz. Örneğin markasını, hangi slota takılı olduğunu, boyutunu, tipini vs…

  • Genel

    Tek Fotoluk İpucu 91–Timestamp Veriyi String Olarak Okumak

    Diyelim ki SQL Server üzerinde duran tablolarda timestamp veri tipinden alanlar bulunmakta ve siz bu alanları belki bir Backoffice uygulamasında belki bir admin panelde, kullanıcalara göstermek istiyorsunuz. Normal şartlarda bilindiği üzere bu alan bir byte[] array olarak elde edilmektedir. Dolayısıyla timestamp içeriği taşıyan bu byte[] array’ in anlamlı bir string tipine dönüştürülmesi okunurluğu açısından şarttır. Ne yaparsınız? Belki basit bir extension method’ u bu amaçla projeye dahil edebilirsiniz. Aynen aşağıda görüldüğü gibi.

  • Genel

    Tek Fotoluk İpucu 90–Office Ailesinin Versiyonlarını Öğrenmek

    Diyelim ki yazmış olduğunuz ürünü kuracağınız/kurduğunuz Windows platformunda yüklü olan Office ürünleri var ise, bunların versiyonlarını öğrenmeniz gerekiyor. Ne yaparsınız? Bilinen bir kaç yol var (önreğin bunlardan birisi Late Binding nedeniyle yavaş olan dynamic kelimesinin de kullanıldığı Activator.CreateInstance metodu) ama en hızlılarından birisi, Registery ayarlarına bakmak. Hatta bir de işin içerisine Enum sabiti kattığımızı ve hatta ona bir Extension metod olarak bu işlevselliği dahil ettiğimizi düşünelim. Aynen aşağıdaki fotoğrafta görüldüğü gibi

  • Genel

    Tek Fotoluk İpucu 89–Exif Bilgilerini Okumak

    Takip edenler amatör düzeye yaklaşmaya çalışan/çabalayan fotoğrafçılık tutkunu birisi olduğumu bilirler. Hatta okullarda “Fotoğrafçı ve Hataları…” konulu bir ders konusu olabilecek kadar iddialı bir foto bloğumda da bulunmaktadır. Bu bloğa fotoğraf yüklerken her seferinde yapmak zorunda olduğum ama bundan çok fazla derecede sıkıldığım bir işlemde fotoğrafların exif bilgilerini öğrenip yazmaktır. Oysaki Image tipine eklenebilecek bir Extension metod ve fotoğrafa ait bazı özellik bilgilerinden yararlanarak ISO, EV, Focal Length gibi istediğim temel bilgilere ulaşabilirim. Nasıl mı? Aynen aşağıdaki fotoğrafta görüldüğü gibi

  • Genel

    Tek Fotolok İpucu 88–Task.WaitAll out, Parallel.Invoke in

    Bildiğiniz üzere paralel çalışmasını istediğimiz görevler olduğunda genellikle bunları birer Task halinde üretir ve bir dizi içerisinde toplarız (En azından TPL-Task Parallel Library geldikten sonra böyle yapmakta olduğumuzu ifade edebiliriz) Görevleri Task tipinden bir dizi içerisinde toplamamızın sebebi ise genellikle WaitAll gibi bir çağrıya ihtiyaç duyabilecek olmamızdır.

  • Genel

    Tek Fotoluk İpucu 87–Enum Sabitleri ile Attribute Kullanımı

    Bazen uygulamalarımızda kullandığımız Enum sabitlerinin içerikleri anlaşılabilir kelimelerden oluşmayabilir. Örneğin AR101,BR103 isimli Enum değerleri çalışma zamanında nasıl yorumlanabilirler. Mantıklı isimler verebilecek olsak da bazen bu değerler sistemin kendisi için anlamlı olabilirler. Ancak dilerseniz enum sabiti değerlerini, kendi geliştireceğiniz nitelikler (Attribute) ile donatabilir ve çalışma zamanına ek bilgiler sunabilirsiniz. Hem de basit bir extension metod yardımıyla bu fonksiyonelliğin kolayca ulaşılabilir olmasını sağlayabilirsiniz. Nasıl mı? İşte size bir örnek

  • Genel

    Tek Fotoluk İpucu 86–Zahmetsizce Encryption (ProtectedMemory)

    Bir önceki tek fotoluk ipucunda ProtectedData sınıfından yararlanmış ve basitçe bir byte dizisinin nasıl şifrelenebileceğini/çözümlenebileceğini görmüştük. Hatırlarsanız veriyi Current User ve Local Machine seviylerinde ele alabiliyorduk. DPAPI’ nin kullanıldığı veri odaklı bu tekniğin yanında, bellek üzerinde yer alan bir içeriğin Process bazında şifrelenmesi/çözümlenmesi de mümkündür. Aynı Process (SameProcess), farklı Process (CrossProcess) veya aynı giriş (SameLogon) bilgisi için…Üstelik son derece de kolay bir şekilde. Nasıl mı?

  • Genel

    Tek Fotoluk İpucu 85–Zahmetsizce Encryption(ProtectedData)

    Cryptography denilince.Net Framework tarafında epey bir çözüm bulunmakta. Bazıları oldukça karmaşıktır ve simetrik yada a-simetrik olmalarına bağlı olaraktan, ortak noktalarından birisi de, tekniğe göre kullanılan Vector-Key değerlerinin tutulması/bilinmesi gibi zorunluluklardır.

  • Genel

    Tek Fotoluk İpucu 84–WCF içerisinde Property Kullanımı

    Malum bildiğiniz üzere get ve set bloklarından oluşan özellikler (Properties) aslına bakarsanız arka planda (IL-Intermediate Language) birer metod olarak ifade edilirler. Bu teoriden yola çıkarsak bir servis içerisine özellik (Property) yazıp get,set metoldarını operasyon olarak dış dünyaya sunabiliriz

  • Genel

    Tek Fotoluk İpucu 83–XML, XAML, XmlDataProvider ve Master Child Binding

    Diyelim ki elinizde aşağıdaki gibi Master-Child veri ilişkisi içeren (1 gruba bağlı birden fazla albüm) bir XML dosyası var.

  • Genel

    Tek Fotoluk İpucu 82–Internete Bağlı mıyız? (Round II)

    Bir önceki ipucumuzda wininet.dll WinAPI kütüphanesinden yararlanarak, internet’ e bağlı olup olmadığımızı nasıl öğrenebileceğimizin fotoğrafını çekmiştik. Tahmin edeceğiniz üzere söz konusu senaryo için tek yol bu değil. Örneğin aşağıdaki gibi bir kullanımı da tercih edebilirsiniz.

  • Genel

    Tek Fotoluk İpucu 98–Stopwatch ile Performans Ölçümü

    Diyelim ki elinizde çeşitli tipte ve sayıda fonksiyon var ve bunların çalışma zamanındaki işleyiş sürelerini hesaplamak istiyorsunuz. Normal şartlarda her metoda gidip DateTime tipini ele alarak süre ölçümleri yapabiliriz. Ya da Delegate sınıfına bir genişletme fonksiyonu yazarak sorunu halletmeye çalışırız. Aynen aşağıdaki ekran görüntüsünde olduğu gibi.

  • Genel

    Tek Fotoluk İpucu 96–10Mb Üstü XML Dosyaları

    Geçtiğimiz günlerde bloğumdaki içeriği yedeklemek için dışarı aktardım. Yaklaşık olarak 20Mb büyüklüğündeki XML içeriğini, sonrasında Visual Studio 2012 ile açıp incelemek istedim. Ancak bulunduğu ortamdaki Visual Studio 2012, 10 Mb üstü XML içeriğini açamayacağını, ille de açmak istiyorsam Registery’ de bu konu ile ilişkili değeri değiştirme gerektiğini söyledi. Sonuç olarak aşağıdaki düzenlemeyi yaparak bu kısıtlamayı aşabilirsiniz.

  • Genel

    Tek Fotoluk İpucu 95–OfType<T>

    LINQ (Language INtegrated Query) tarafını her ne kadar yoğun kullanıyor olsak da gözümüzden kaçırdığımız, dikkat etmediğimiz, yerine yeni geliştirmeler yaptığımız ama aslında bizim kullanmamızı bir köşede bekleyen fonksiyonlar vardır.

  • Genel

    Tek Fotoluk İpucu 99–Tipler Arası Property Eşleştirme

    Özellikle ORM araçlarının ele alındığı uygulamalarda bazen Entity içeriklerini sistem içerisinde dolaştıran ve nispeten daha az sayıda özellik (asıl ihtiyaç olunanları) taşıyan tiplere ihtiyaç duyarız. Business Object veya Data Transfer Object gibi isimler de verirler bunlara.