28 Kasım 2015 Cumartesi

Hayatı kolaylaştıran kısayollar

Merhaba, bu yazımda developerların işine yarayacağını düşündüğüm birkaç kısa yoldan bahsetmek istiyorum.

Belki farkındasınızdır, yazılım geliştirmede eylemlerinde yeni bir modul vb. bir şey yazmıyorsak, özellikle bug fix işlemlerinde aslında zamanımızın çoğunu problemi teşhis etmek için harcarız. Burada farkında olmadan aslında çok daha kısa sürede erişebileceğimiz bir bilgiye wizardları kullanarak fazladan zaman harcarız.

Senaryo 1
Veritabanı kaynaklı bir problem vardır ve bir stored procedure nin incelenmesi gerekiyordur. İncelemek için sql server mng studio üzerinden server explorer üzerinden sp mizi bulup sağ click yapıp modify diye erişebiliriz. Bu ortalama splerimizin fazlalığına göre 10 ile 30 saniyemizi alır.
Çözüm:
Bu işlemi 2 saniyede yapmak da mümkündür.  Öncelikle bir ayar yapmamız lazım.
Sql Server Mng Studio üzerinden Tools>Options>Environment>Keyboard Shortcust alanına giriyoruz ve istediğimiz bir kısayol kombinasyonuna "sp_helptext" yazıyoruz.

Şimdi Query ekranımıza sp mizi yapıştırdıktan sonra Ctrl+T ve Ctrl+f1 tuşlarından sonra Query Result ekranında prosedurun içeriğine erişmiş olacağız. Burada kullanılan Ctrl+T kombinasyonu işlemimizin text formatında output vermesi içindir. Bu işlem bittiğinde Ctrl+D yapıp query result ekranını tekrar grid formatına alabilirsiniz. Bu ekranda kullandığınız diğer komutlar için kısayollar tanımlayabilirsiniz.

Senaryo 2
Bunu aslında yazmayacaktım ama pek çok developerin halen bu durumun farkında olmadığını görünce yazmaya karar verdim. Jquery yada dom hatalarında çoğu developer console.log komutunu kullanarak hata tespiti yapmaya çalışıyor. Yanlış değil, ancak log ettiğiniz veriden başkasını göremiyorsunuz ve bu da kısa zamanda doğru teşhis yapmanızı zorlaştırıyor.
Çözüm:
Basit, problemli kodlarınızın arasına "debugger;" yazın ve inspect element modunda hatalı process i tekrar yapın, işlem debugger i gördüğünde duracaktır ve siz de ne gelmiş ne gelmemiş o scope üzerindeki tüm herşeye konsol üzerinden erişebileceksiniz.

Senaryo 3
Uzun satırlara sahip bir js dosyanız var, ancak bir yerlerde dalgınlıkla bir parantezi unutmuş yada silmişsiniz. Bu hatayı bulmak için tarayıcıyı açmalısınız ve dom hatasından yola çıkarak hatalı bölgeyi tespit etmeye çalışırsınız, ancak dom hatası da her zaman doğru yeri göstermez ve bir parantez için gereksiz yere nöron yakarsınız (:
Çözüm:
Bu link üzerinden ulaşacağınız Vs eklentisi ilgili dosyada sizi hiç uğraştırmadan hatalı satır ı size bildirecektir. Hata mesajını almak için Ctrl+S yapmanız yeterli.

Ve Ctrl+K+D, Ctrl+M+M, Ctrl+M+O. Bu kısayolları bilmeyen bir Jr. iseniz bunları da visual studio üzerinde deneyin (:

PostJSON metodu

Merhaba, jquery getJSON metodunu biliriz çoğumuz, tek satırda ajax get sorgusu yapmamızı sağlayan bir metot olur kendisi. Ama iş post yapmaya gelince postJSON gibi bir jquery metodu malesef yok, klasik ajax sorgusu yazmak zorundayız.

Ancak aşağıdaki fonksiyonu yazdığımız zaman nur topu gibi bir postJSON metodumuz olacak.

    $.postJSON = function (url, data, callback) {
        return $.ajax({
            url: url,
            type: 'POST',
            data: JSON.stringify(data),
            contentType: 'application/json',
            success: callback
        });
    };

 Artık uzun uzun post ajax kodları yazmamıza gerek kalmadı.

9 Kasım 2015 Pazartesi

Sql Server String Data Split Parse

Merhaba, bu yazımda birden fazla veriyi tek parametre üzerinde göndermek istediğimizde Sql Server tarafında bu verilerin nasıl parse edileceğini anlatacağım.

Bazı özel durumlarda application performansından fazla harcamamak adına birden fazla veriyi tek bir parametre olarak göndermek isteyebiliriz. Örneğin bir checkboxlist checked verisini.

Aşağıdaki fonksiyon gönderdiğiniz veriyi parse edip table formatında geri döndürdükten sonra içinde dönebilirsiniz.

Örnek Verimiz: "2_5_67_55_66" olsun

Fonksiyonumuz aşağıdaki gibi olacak;

CREATE FUNCTION FN_SPLIT_STRING

    @STRING NVARCHAR(MAX), 
    @DELIMITER CHAR(1) 

RETURNS @OUTPUT TABLE(SPLITDATA NVARCHAR(MAX) 

BEGIN 
    DECLARE @START INT, @end INT 
    SELECT @START = 1, @END = CHARINDEX(@DELIMITER, @STRING) 
    WHILE @START < LEN(@STRING) + 1 BEGIN 
        IF @END = 0  
            SET @END = LEN(@STRING) + 1 
        INSERT INTO @OUTPUT (SPLITDATA)VALUES(SUBSTRING(@STRING, @START, @END - @START)) 
        SET @START = @END + 1 
        SET @END = CHARINDEX(@DELIMITER, @STRING, @START) 
    END 
    RETURN 
END

Şimdi örnek veri üzerinden giderek aşağıdaki gibi bir sorgu çalıştıralım.

SELECT *from FN_SPLIT_STRING('2_5_67_55_66','_')

Output format aşağıdaki gibi olacaktır.

SPLITDATA
2
5
67
55
66