OneNote üzerinden Blog Post yayınlama

Blog yazmak için güzel bir html editor bulmak biraz sorunlu bir iş bence, özellike blog'unuzu kendiniz kodladıysanız dahada sıkıntı bir konu. Hazır bir blogengine kullanıyorsanız işiniz daha kolay olabilir ancak Wordpress ve DotNetBlogEngine için bile editorlerin word veya onenote kadar başaırlı olduğunu söylemek yalan olur. Çok fazla blog yazma geçmişi olmayan biri olarak yeni yeni alternatif yollar araken fark ettimki OneNote uygulaması üzerinden blog post yayınlayabiliyoruz. Örneğin şuanda ben bu yazıyı OneNote 2013 üzerinde yazıyorum.

   

Sol üstteki File buttonuna bastığınızda açılan bencerede Send bölümünde Send to Blog ifadesini göreceksiniz. (Üstteki resimde olduğu gibi) Buna bastığınızda MetaWeblog api kullanarak blog'unuza postu gönderebilirsiniz. Bu butona bastığınızda sizin için bir word dosyası açıyor.

   

   

Bu açılan word dosyasındaki Blog Post toolu sayesinde Insert Category bölümünden postunuza kategori ekliyebiliyorsunuz ve Publish / Publish as Draft seçenekleri ile postunuzu yayınlayabiliyorsunuz.

   

Gelelim teknik olarak blog'unuz ile word'un dolayısıyla OneNote'un nasıl konuştuğuna. Blog'uğunuzda MetaWeblog api olması gerekli. Bildiğim kadarıyla bu wordpresste yüklü olarak geliyor. Ben DotNetBlogEngine kullanıyorum ve içerisinde zaten bu api mevcut, word size iletişim kurabilmek için blog'unuz MetaWeblog api adresini ve kullanıcı adı şifresini istiyor bunları girdikten sonra blog postunuz blog'unuzdaki yerini alıyor.


Azure Storage - Queue .Net SDK?

Daha önce kuyruk yapısının nasıl çalıştığından bahsetmiştim şimdi ise kod kısmına değinelim.

Kuyruk çok karmaşık bir yapı olmadığından dolayı kodlamasıda oldukça basit.

İlk önce tüm Azure servislerinde olduğu gibi bağlanmamız gerekli ardından ise bir kaç farklı method ile tüm işlerimizi halledebiliriz.

   

Bağlantı

   

// Storage Account bilgilerimizi AppSettingsden okuyoruz ve bir CloudStorageAccount instance'i olusturuyoruz

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);

   

// Kuyruk islemlerimiz icin bir CloudQueueClient yaratiyoruz

CloudQueueClient queueClient = storageAccount.CreateCloumdQueueClient();

// myqueue ismindeki kuyrugumun referansını alıyoruz

CloudQueue queue = queueClient.GetQueueReference("myqueue");

// eger myqueue yok ise yaratiyoruz.

queue.CreateIfNotExists();

   

Yeni Mesaj Ekleme

// yeni bir mesaj yaratıyoruz

CloudQueueMessage message = new CloudQueueMessage("First Message");

//Mesajı kuyruga ekliyoruz

queue.AddMessage(message);

   

PeekMessage

CloudQueueMessage peekedMessage = queue.PeekMessage();

// yukaridaki satir ile siradi mesaji okuduk ama mesaj hala kuyrukta kalmaya devam ediyor, sadece bir göz attık diyebiliriz.

   

Mesajı Alma ve Silme

// siradaki mesaji aldik.
CloudQueueMessage retrievedMessage = queue.GetMessage();

//mesaji isleyecek kodu buraya yaziyor.

//mesaji isledik ve isimzi bitti, mesaji kuyruktan siliyoruz.
queue.DeleteMessage(retrievedMessage);

   

Yukaridaki mesaj alma ve silme işleminde dikkat edilmesi gereken önemli bir nokta var,

GetMessage() komutundan sonra varsayılan olarak 30 saniyeliğine mesaj kuyrukta görünmez hale gelir ancak kuyruktan silinmez. Eğer 30 saniye icerisinde DeleteMessage() methodunu çağırmazsanız mesaj tekrar kuyrukta belirecektir. Buda mesajin tekrar işlenmesine sebep olacaktır.

   

Sınırlamalar

  • Bir mesaj en fazla 64 kb olabilir
  • Lease/Lock süresi: 7 gün maximum.
  • Queue maximum 200gb olabilir.
  • Bir mesaj kuyrukta en fazla 7 gün durabilir.
  • Saniyede maximum 2000 mesaj kuyruktan gecebilir.