Bir önceki gönderimde (Zen Coding) bahsettiğim Zen Coding ile ilgili yeni bir kaynak buldum. Bu kod için Visual Studio Add-in'i geliştirmeye başlayacağımı söylemiştim. Konu ile ilgilenip, Python kodlarını .NET ortamında compile etmeyi denemeye başladım. Tam IronPython ve IronPyhton Studio ile içli dışlı olmuşken ve bir noktaya gelmişken, Amerika'nın daha önce keşfedildiğini fark ettim...

Einar Regilsson'un Blog'unda, konu ile ilgili bir çalışma yaptığını gördüm. Blog yazısını buradan okuyabilirsiniz. Yazının sonlarına doğru "an installer" linki ile setup dosyasına, "the source" linki ile de kaynak kodlarına erişebilirsiniz. Emeğe saygı olarak hotlink yapmıyorum. Aslında mantık konusunda doğru yolda ilerlediğimi kaynak kodlara baktığımda görmüş oldum. Regilsson da IronPython modülünü kullanarak çalışma yapmıştı. Tek farkı kodu olduğu gibi Python kaynağında bırakıp, on-the-fly compile işlemini IronPython ile yapmış.

Add-in'i çektim, denedim. Hem Visual Studio 2005 hem de 2008'de sorunsuz olarak çalıştı. Kurulumdan sonra Visual Studio'nuz içerisinden bir kısayol ataması yapmanız gerekiyor sadece. Kısaca adımlar şöyle;

  1. Visual Studio kapalı iken Add-in kurulumunu tamamlayın.
  2. Visual Studio'yu açın, "Tools" menüsünden "Add-in Manager..." seçeneğini seçin.
  3. Listede "ZenCoding" karşısındaki iki işaret kutusunu da seçip onaylayın.
  4. "Tools" menüsünden "Options..." seçeneğini seçin.
  5. "Environment" dalından "Keyboard" yaprağını seçin.
  6. Komut listesinden "ZenCoding.VisualStudio.ZenCodingAddIn.Expand" seçeneğini seçin.
  7. "Use new shortcut in" kutusundan "HTML Editor Source View" seçeneğini seçin (eğer ZenCoding özelliklerinin code-behind dosyaları, resource dosyaları gibi diğer bütün yerlerde aktif olmasını istiyorsanız seçimi "Global" olarak bırakabilirsiniz).
  8. "Press shortcut keys" kutusunda istediğiniz kısayolu tuşlayın (ben CTRL+E kullanmayı tercih ettim).
  9. Kutuyu onaylayarak çıkın.
Evet böylelikle ZenCoding add-in'i kullanıma hazır hale gelmiş oluyor. Hemen bir aspx dosyası açıp denemeye başlayabilirsiniz.

table#tblMain.tblClass>th.tblHeaderClass+tr#trSub_$.tblRowClass*5>td#tdSub_$.tblCellClass*3

Yazıp CTRL+E yaptığınızda şu çıktıyı görmek korkunç güzel birşey :)

<table id="tblMain" class="tblClass">
<th class="tblHeaderClass"></th>
<tr id="trSub_1" class="tblRowClass">
<td id="tdSub_1" class="tblCellClass"></td>
<td id="tdSub_2" class="tblCellClass"></td>
<td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_2" class="tblRowClass">
<td id="tdSub_1" class="tblCellClass"></td>
<td id="tdSub_2" class="tblCellClass"></td>
<td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_3" class="tblRowClass">
<td id="tdSub_1" class="tblCellClass"></td>
<td id="tdSub_2" class="tblCellClass"></td>
<td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_4" class="tblRowClass">
<td id="tdSub_1" class="tblCellClass"></td>
<td id="tdSub_2" class="tblCellClass"></td>
<td id="tdSub_3" class="tblCellClass"></td>
</tr>
<tr id="trSub_5" class="tblRowClass">
<td id="tdSub_1" class="tblCellClass"></td>
<td id="tdSub_2" class="tblCellClass"></td>
<td id="tdSub_3" class="tblCellClass"></td>
</tr>
</table>

Bir süre sonra kısa bir video hazırlayıp yazıyı editlemeyi düşünüyorum. Vakit bulabilirsem tabi...

-- Ekleme 25.11.2009 18:25
Bahsettiğim videoyu hazırladım ve yükledim. Hem kurulum sonrası ilk ayarların yapılışını hem de bir örnek uygulamayı gösterdim. Umarım işinize yarar, iyi seyirler: http://screencast.com/t/ODkxOTY1MjQt

Bir çok yaygın Javascript framework'ünün üzerine oturduğu temel hep aynı; CSS seçimi. CSS seçimi ile ne kastediyoruz, bir veya daha fazla nesneyi, CSS için kullandığımız tanımlama sentaksları ile yakalamak. Daha sonrasında da bunu manipüle etmek.

Örneğin;
<div class="test">
<span id="spn1">
<span id="spn2">
<span id="spn3">
</div>
Bu kodda bütün spn1, spn2, spn3'leri yakalayıp içine test yazdırmak jQuery ile tek satır bir koddur:
$('div.test span').html('test');
Prototype, Mootools, Midori... diğer bütün frameworkler de aynı veya benzer söz dizimleri ile bu işlemi gerçekleştirebilirler (yeri gelmişken Türk bir yazılımcı Aycan Gülez'in -http://twitter.com/aycangulez- elinden çıkan Midori'ye tekrar saygı/tebrik).

Yazının konusuna yaklaşırsak, CSS seçicileri mantığını tam tersten değerlendiren bir proje ile karşılaştım. Zen Coding, bir çok farklı editör desteği ile (maalesef Visual Studio yok) verilen CSS seçicisini genişleterek HTML'ini sunuyor. Aslında uygulama metin bazlı bir girdi alıp, metin bazlı bir çıktı veren bir uygulama. Visual Studio add-in'i yazma planlarım var :)

Ne anlatmak istediğimi örneklerle görmek için video'ya bir gözatın:


Kendi sitesindeki bir online editor ile denemek için de http://zen-coding.ru/demo adresini ziyaret edebilirsiniz.

İlgi çekici bir proje. Dediğim gibi Visual Studio add-in yapma planlarım var. Eğer tamamlarsam bu blog aracılığı ile sizinle paylaşıyor olacağım...

Copyright Ali INAL ©2009 - Creative Commons Licence
preload preload preload

Taşındık!


Ali's Surprisingly Web blog'u, artık yeni, güçlü ve daha esnek altyapısıyla yeni adresinden yayın yapıyor. Yeni adresimiz: http://surprisingly.web.tr. Bu eski blog sayfalarındaki bütün içerik, yeni blog altyapısına da taşındı. Arzu ederseniz sizi yeni blog'umda ağırlamak isterim.
Yeni blog'a gitmek istiyorum Bu sayfayı okumak istiyorum

We've Moved!


Ali's Surprisingly Web Blog is now serving from a new, stronger and flexible system with a brand new address. Our new address: http://surprisingly.web.tr. Also we've migrated all old content from this blog to our new blog. If you wish, I want to welcome yo to my new blog.
I want to visit new blog I want to stay and read this page