[Code Review] Tarih Değeri Nereden Gelmeli?

[Code Review] Tarih Değeri Nereden Gelmeli?

Kod geliştirmesi yaparken belirli kayıtları çekmek için o anki zamanı parametre olarak göndeririz. Bir çok uygulamada bununla ilgili bir sorun yaşanmaz ancak senkron olmayan ve özellikle fiziksel olarak aynı olasa da sanal olarak farklı yerlerde olan sunucuların saatlerinin farklı olmasından ötürü zamanlama hataları olabilir. Şirkette yaşadığım bir sorundan yine yola çıkıyorum… Siparişler siteden verildikten sonra […]

SQL Pivot

SQL Pivot

Şirketlerde özellikle üst yönetim çok yakından takip ettiği raporlar vardır. Bu raporlarda bilgiler genellikle farklı tablolarda duran kayıtların bir araya gelmesiyle alt alta olacak şekilde sıralanır. Yönetim katına bu şekilde rapor sunulamayacağına göre bu verileri anlamlı bir hale getirmek için ek bir kod geliştirmesine gerek vardır. Bu yazıda anlattığım senaryo başıma geldiği için uygun ve performanslı olacak […]

WebClient ile SSL Sertikifa ve Proxy Kullanımı

WebClient ile SSL Sertikifa ve Proxy Kullanımı

Geliştirdiğimiz uygulamaları test etmek için bazen periyodik HTTP Request ler yapmamız gerekebilir. Test ortamımız bazen bir proxy arkasında veya özel SSL sertifikalarıyla erişilebilir şekilde olabilir. Şirkette buna benzer bir durumla karşılaştım bugün ve öğrendiklerimi de hem hatırlamak için hem de paylaşmak adına yazmak istedim. SSL Sertifikası Eklemek SSL sertifikaları bir kaç çeşit olabiliyor, ancak hepsinin amacı […]

Yo Dostum Yo

Yo Dostum Yo

Yeni bir trend başlıyor ve takip etmek lazım değil mi? Yo belki ilk defa duydunuz belki duydunuz ama inanmadınız ve burun kıvırdınız. Çok açık bir gerçek var, gereksiz gibi gözükse de aslında yatırım aldıklarını duymak sizi biraz şaşırtabilir. Bunun üzerine bir kaç arkadaşım ufak tefek eğlenceli uygulamalar yazmaya başladı. Bir tanesi kahve hazır olduğunda listesindeki herkese Yo […]

WCF Hata Ayıklaması

WCF Hata Ayıklaması

WCF servisleri üzerinde hata ayıklaması zor olabilir. Bunun için config dosyanıza aşağıdaki kod parçacığını eklemeniz yeterlidir. Bu sayede WCF servisinize ait bütün hareketleri incelemiş olacaksınız.

Bu kodu eklediğinizde C:\ dizini altında trace.svclog üzerine kaydedilecektir. Bilgisayarınıza Microsoft Service Trace Viewer kurarsanız log içindeki kayıtları daha kolay inceleyebilirsiniz.

WCF Ayarlama

WCF Ayarlama

Yeni geliştirdiğimiz çoğu projede WCF (Windows Communication Foundation) kullanarak geliştiriyoruz. Bu yüzden servislerin düzgün ayarlanması hem çalışmaları hem de istenilen performansı düzgün vermesi açısından son derece önemli. Geçtiğimiz günlerde bir servisi yanlış ayarlamam yüzünden biraz sıkıntı yaşanmasına sebep oldum. Bunun için öncelikle özür dilemem gerekiyor. 😐 Sonrasında tecrübe ettiğim bir konu olduğu için yazıya dökmek […]

AsyncOperationManager kullanımı

AsyncOperationManager kullanımı

Asenkron işlemleri incelemeye devam ediyorum ve şirket içinde büyük verilerin anlık olarak işlenmesi veya yer değiştirmesi gerektiğinden dolayı bu konu ile ilgili olarak bir sürü yazı peş peşe geliyor olacak. Bu seferki yazıda AsyncOperationManager adındaki sınıfın nasıl kullanıldığını sizlerle paylaşıyor olacağım. Belirli noktalarda özellikle Component geliştirilirken ve performans gerektiren noktalarda AsyncOperationManager sınıfı ve ona bağlı sınıfların kullanılması […]

Zaman Uyumsuz İşlemler

Zaman Uyumsuz İşlemler

Uygulama geliştirirken her şeyin bir sıraya göre olmasına alışmış olabilirsiniz. Ancak bazı işlemlerin diğer işlemlerden bağımsız olması bu işlemleri aynı anda başlatarak zaman kazanmanızı sağlayabilir. Buna ek olarak kullanıcılarınız her seferinde donan ekranlar görsün istemiyorsanız zaman uyumsuz tasarım desenlerine başvurmanız gerekecektir. O zaman hızlıca bakalım zaman uyumsuz işlemler nasıl yapılır. Öncelikle, zaman uyumsuz işlem adını […]

[Code Review] Database İşlemleri

[Code Review] Database İşlemleri

Geliştirme yaparken dikkat edilmesi gereken noktalardan bir tanesi veri tabanları ile ilgili yapılan geliştirmeler… Bu geliştirmeleri kontrol edilmemesi uygulama tarafında bolca SqlException alınmasına veya bazı noktaların gözden kaçmasına sebep olabilir. Bugün yaşadığım bir sorun; bir uygulama içinde veri tabanından dönen bir sonucun direk olarak null ile kontrol edilmesi hata vermeyen ve false olarak değerlendirilen bir kontrol. […]

Çoklu kayıtların silinmesi

Çoklu kayıtların silinmesi

Yine şirkette bir şeylerle uğraşırken değişik bir şeye ihtiyacım oldu. Bir tablo var ve içindeki kayıtlarda tekrar eden belirli alanlara göre bir birinin aynısı olan kayıtlar var. Bu kayıtlardan geriye bir tane kalacak şekilde güncelleme yapılması gerekiyor. Daha önceden bununla ilgili olarak hepsini pasif yapıp sonrasında pasif olanlardan TOP 1 alıp onu aktifleştirmeyi yapıyordum. Daha […]

Veri Tabanı (Database)

Veri Tabanı (Database)

Bilişim işiyle uğraşan herkesin duyduğu, aslında satış, pazarlama, depo – stok departmanlarında çalışanlarının ve iş analistlerinin çokça kullandığı bir uygulamanın genel adı. Genel adı olarak söylüyorum çünkü alternatif ve özellikler bakımından  çok fazla çeşidi bulunmakta. Nedir, ne değildir, türleri basit olarak nedir bunlara biraz değinmeye çalışacağım. Veri Tabanı Nedir? Veri tabanı; verilerin güvenli olarak saklanmasına, verinin […]

Fotoğraflar ve Koordinatlar

Fotoğraflar ve Koordinatlar

Bugün şirkette farklı bir talep ile uğraştım. Bu yazıda bu talep içerisinde bulduğum ve faydalı gördüğüm bir bilgi paylaşacağım. Öncelikle gelen talepten kısaca bahsedeyim. Talep; bir görsel üzerindeki koordinat bilgisinin alınması ve veri tabanına kaydedilmesi. İlk olarak bir görsel içerisine ek bilgileri nasıl eklenebileceğine baktım. Değiştirilebilir resim dosyası formatı (Exif) sayesinde yapılabildiğini ve bu bilgileri […]

XML Serialization – Kodları Sadeleştirmek

XML Serialization – Kodları Sadeleştirmek

Yakın zamanda XML konusunu kapatıp, JSON ve farklı veri dosyalarıyla ilgili bilgiler aktarmaya başlayacağımı umuyorum. 🙂 Ama öncesinde bir okuyucudan gelen soru üzerine yaptığımız örnek hakkında size bilgi vermek istiyorum. Arada sırada işinize yarayabilecek bir şey. Tam uyumaya hazırlanıyorken, telefonuma bir mail geldi saate baktım 00:53. Önemli bir şey olabilir düşüncesiyle okumaya başladım. Mail’ i […]

XML Serialization Kısayolları

XML Serialization Kısayolları

Bir önceki yazımda söz verdiğim kısa yolları sizlerle paylaşmak istiyorum. Daha önceki yazılarımızda yazdığımız çoğu şey bir nesnenin nasıl XML’ e dönüştürülebileceğiyle ilgiliydi. Bu sefer gerçek dünya örneklerinden yola çıkarak bunun tersini yani XML verilerini nasıl sınıflara daha hızlı dönüştürebileceğimize bakacağız. Göstereceğim iki yöntem için aşağıdaki XML dosyasını kullanacağız.

İlk kısayolumuz Microsoft SDK içersinde yer […]

XML Serialization Püf Noktaları

XML Serialization Püf Noktaları

Daha önceden yazdığım XML Serialization yazısının devamı olarak düşünebileceğiniz bir yazıyla sizlerleyim. Bu yazıda daha önceden yaptığımızın aksine biraz daha farklı olarak oluşturduğumuz XML formatını nasıl değiştireceğimize bakacağız. Öncelikle bir önceki yazıda kullandığımız Person sınıfını tekrar hatırlayalım.

İlk olarak Person sınıfına departman bilgisini ekleyelim. Departman bilgisini Section sınıfını ile aşağıdaki gibi tanımlayalım.

Person […]

XML Serialization ve Deserialization

XML Serialization ve Deserialization

Yine bilindik cümlelerimle giriş yapmak yerine bu sefer direk konuya giriyorum. 🙂 Bu yazıda Serialization’ ın ne olduğunu, nerelerde kullanılabileceğini ve XML ile bunun nasıl yapılabileceğini anlatmaya çalışacağım. Serialization Nedir? Serialization ya da serileştirme diyebileceğim kavram dil bağımsız olarak düşünülmesi gerekir. Genellikle veri saklama ve veri taşıma gibi işlemlerde kullanılan serileştirme; bir veri yapısının veya […]

[Code Review] Trigger Çoklu Update

[Code Review] Trigger Çoklu Update

Triggerlarla çalışıyorken bir sorun ile daha karşılaşmak beni gerçekten üzdü. Bu seferki hata çalışabilir diye düşünüp çalışmayan bir kurguyla alaklı. Bir trigger yazdım ve bu trigger sayesinde Service Broker üzerine bazı bilgilerin geçmesini istiyorum. Yazdığım trigger;

şeklinde. Bu trigger’ ı tetiklemek için;

çalıştırdığımda sadece ilk kayıt için Service Broker tarafında mesaj oluştuğunu farkketim. […]

Veri Taşıma

Veri Taşıma

A veri tabanından B veri tabanına bilgileri aktarmanın değişik amaçları olabilir. Bu amaçlardan bir tanesi canlıda çalışan uygulamaların kullandığı verinin sağlanması veya var olan verilerin güncellenmesi ise; zaman ayırıp uygun yapının bulunması, kurgulanması ve geliştirilip çalışır hale getirilmesi ciddi zaman demektir. Bu zamanı azaltmak için kullandığınız veri tabanlarının neler desteklediğini bilmek ve bunlara göre uygun […]

[Code Review] SQL Değer Atama

[Code Review] SQL Değer Atama

Şirketteki bazı uygulamalarımız arasında bilgi transferi yapılması için trigger kullanıyoruz. Çarşamba günü yayına aldığım bir trigger güncellemesi bizim uygulamamız için düzgün çalışırken, aynı tabloyu kullanan bazı uygulamalar için hata vermeye başlamış. İlk incelemeleri yaparken diğer uygulamaların tam bilgilerle gelmediğini farkkettim. Daha detaylı inceleme yaptığımız zaman çok ufak bir hata ile karşılaştık. Bu ufak hata sql […]

[Performance] Sınıf İlklemenin En İyi Yolu Nedir?

[Performance] Sınıf İlklemenin En İyi Yolu Nedir?

Kod geliştirirken en çok kullanılan kavram sınıflar (class) ve bu sınıfların içerisindeki özellikler (properties). Sınıfları ilklerken (initialize) bir çok yöntem kullanılabilir, ancak bunlardan en performanslısı hangisi?