Linq Lookup

Aşağıdaki gibi iki adet kelime dizisi olduğunu varsayalım.

Amacımız ortak kelimeleri bulmak.

Lookup extension metodu sonuç olarak Dictionary döndürür.
Şunun gibi;

Benzer elemanlar True olarak işaretlenenler.

kaynak: Msdn

Powershell ile Dosya Arşivleme

Tek bir dosyayı arşivleme

Birden fazla dosyayı arşivleme

Bir klasörü arşivleme

Önemli bir bilgi de, arşivleme komutu .Net Framework System.IO.Compression.ZipArchive API’ sini kullandığı için maksimum 2gb dosya boyutu üzerinden işlem yapılabilir.

Arşivden tekrar çıkarmak için;

For Json

For Json, Sql Server 2016 yeniliklerinden belkide en önemlisi.

Bu versiyonu kullandığımız da sorgu sonuçlarını direk Json biçiminde ala bilmekteyiz. Teknik olarak for xml ile aynı işlevsellikte verileri dışa aktarabiliriz.
Günümüz modern web ve mobil uygulamaların sıkça tercih ettiği bir veri biçimi olduğundan Sql Server 2016 il yerleşik olmasa da baya bir destek geldiğini söyleyebiliriz.

MSSQL için Xml aynı zamanda bir veri tipi iken Json değildir. Buna karşın Json verilerini nvarchar olarak saklayıp özel fonksiyonlar ile sorgulayabilirsiniz.

Basit bir örnek yapalım.
t­sql

json result

Şimdi örneği biraz ileri götürelim.
İstemci uygulamasının web olduğunu ve Js tabanlı bir DataGrid kullandığımızı varsayalım.
Örneğin Bootgrid. Bootgrid, verileri listelemek ve sayfalamak için bizden aşağıdaki gibi biçimde Json verisi ister.

Şimdi ihtiyacımız olan verileri Json olarak dışarı aktaran t-­sql kodunu yazalım.

Son olarak klasik Ado.Net ile verileri alalım.

Elbette ki de sadece bu kadar değil. DB seviyesinde bir kaç numara daha yapmanızı sağlayacak hareketler mevcut. Neler mi?

OPENJSON

Bu fonksiyon, nvarchar biçimde ki json verisini tablo verisine çevirmeye yarıyor.

Normal şartlarda “for json” komutu uyumluluk seviyesi 2014 de de çalışsa bile bu tip fonksiyonlarda ise mutlaka 2016 olması gerekiyor.

t­-sql

sonuç

Product Table

OPEN_VALUE

Json biçiminde saklı veri üzerine işlem yapmanıza olanak verir. Aşağıdaki gibi bir ürün tablosu tasarlayalım.

Product Table / Design

PropersitesÖzellikler tahmin edeceğiniz gibi Json biçiminde veri saklayacak. Amacımız, tüm ürünlerin özellik tanımları eşit olmayacağından dolayı şema bağımsız bir yapı elde etmek.
Örnek veri ekleyelim.

Select atalım ama detaylı olsun 🙂

For Json

JSON_MODIFY

Json formatında saklı verileri güncellemek için kullanılır. Bir önceki örnekten devam edelim.

Benim gibi veritabanı seviyesinde çok iş yapmayı sevmiyorsanız pek kullanacağını sanmam. Lakin bilmekte fayda var yoksa problemleri nasıl çözeceğiz 🙂

Postal ile e-posta gönderme

Önceleri uygulama içinde dinamik yani içeriği çalışma zamanı değişkenlik gösteren  e-­posta gönderileri için ;

App_Data klasörünün altına şablonlartemplate oluşturup, değişken alanlarını küme parantezler ile belirliyor

daha sonra ise biçimlendirip gönderiyordum.

Şimdilerde ise Postal kullanıyorum.

Kullandığınız sürüme göre paketi kuruyoruz.

Kurulum sonrası View klasörünün altına “Emails” adından yeni bir klasör oluşuyor. Bundan sonra şablonlarımızı bunun altında cshtml uzantılı olarak ekliyoruz. Parametreleri de ViewBag ile belirtiyoruz.

Son olarak controller de gönderiyoruz.

Daha detaylı bilgi için ürünün sayfasına bakabilirsiniz..