Öncelikle Etiket bulutu oluşturmanın en önemli sebebi blog tarzı  yaptığımız web sayfalarının daha çabuk indexlenmesi için etiket tag ları  eklemek isteriz.Genel de wordpress ve joomla tarzı open code  yazılımlarda bu hazır gelir, ancak kendimiz kodladığımız web  sayfalarında bunu bizim oluşturmamız gerekir.
Web sayfamızın  hazır olduğunu ve makale ekleme sistemimiz yapmış olarak kabul ediyorum  ben daha bunu yaptığım için buna deyinmeyeceğim, eklediğimiz yazılara  nasıl etiket bulutu entegre ederiz ve yazıların okunma kısmında nasıl  etkileri yazının altına çağırırız bunu gösterecem aynı zaman da  sitemizin yan tarafından rast gele belli sayıda etiket çağırıp  listeleyeceğiz
Örnek olarak
Yandaki  etkiet bulutu yapacağız, tabi daha şata fatlaı bir gösterim  istiyorsanız hazır css ve ajax kullanırık gösterim kısmını daha  şatafatlı yapabilirsiniz, şimdilik sistemin nasıl olduğunu anlamız için  en sade şekline değineceğiz.
 
 
 
 
 

Etiket  bulutumuzun veritabanı kısmını yapıyoruz makale_id eklediğimiz  etiketlerin hangi yazıya ait olduğunu belirtir, etiket ise eklediğimiz  kelimeler için, veri tabanına kayıt yaparken etkiket kısmında  kelimelerin arasına virgül koyarak kelime veya kelime gruplarını  ayırarak veri tabanına teker teker kaydedeceğiz.
 
 
 

Yukarıdaki  resimde de görüldüğü üzere makalemize etiketleri eklerken kelimeler  arasına virgül koyarak döngü içerine alıp kelimeleri teker teker  kaydedeceğiz.
  // etiket bulutu yapma
        OleDbCommand son_ky_id = new OleDbCommand("select * from yazilar order by id desc", baglanti);
        OleDbDataReader sk_id = son_ky_id.ExecuteReader();
        sk_id.Read();
        // son eklenen makalenin id değeri okundu
Burada  son makale_id sini okuma sebebi makalemizi ekledikten sonra etkiket  bulutunu ekliyoruz yani her iki aynı butonun altına ekliyoruz. haliyle  son eklenen yazı bu etiket bulunun yazısı olduğu için onun id sini alıp  etiket bulutunda makale_id olarak kaydediyoruzki link verme işlemi doğru  olsun.
        string makale_id = sk_id["id"].ToString();
        
        // etkietleri ayırıp bir diziye kaydetme sonrasında veritabanına kaydetme
        string etiket = tags_text.Text.ToString();
        string[] etkiketd = etiket.Split(',');        
        for (int i = 0; i < etkiketd.Length; i++)
        {
                OleDbCommand komut_tags = new OleDbCommand("insert into  tags (etiket,makale_id) values (@etiket,@makale_id)", baglanti);
            komut_tags.Parameters.AddWithValue("etiket", etkiketd[i].ToString());
            komut_tags.Parameters.AddWithValue("makale_id", makale_id.ToString()); //makalemizin id değeri
            komut_tags.ExecuteNonQuery();
        }
        baglanti.Close();
bu kısımda makalemiz ekleyip hemen altında etiket bulutmuzun bir diziye atayıp her kelime grubunu teker teker kaydediyoruz.
Etiket Bulutu Okuma
İşlemin son aşaması ise eklediğimiz etiketleri listelemek, Makalemiz okumak istediğimizde devamı oku veya başlığı tıkladığımız id değerine bağlı olarak yazıyı detay.aspx tarzı bir sayfada gösteririz giden id değeri hem yazının gösterimini sağlarken hemde o id değerine bağlı etiketlerin yazının altında görüntülenmesini sağlar.
 baglanti.Open();
        //etiket çalışmaları
        OleDbCommand etiket_komut = new OleDbCommand("select * from tags where makale_id=" + Request.QueryString["id"], baglanti);//etkiket bağlantısı
        OleDbDataReader e_dr = etiket_komut.ExecuteReader();//etiket için okuma
        DataTable etiket_tb = new DataTable();
        etiket_tb.Load(e_dr);
        DataList1.DataSource = etiket_tb.DefaultView;
        DataList1.DataBind();
Ana Sayfadaki Etiket Bulutu Okuma Bölümünü ise Master.Page Sayfamızda ilgili yere Bir DataList ekleyerek daha kolay listeleme ve link verme için ekliyoruz.AccessDataSource ile de veritabanımızdan RastGele 10 Adet Etiket secip çekiyoruz
<asp:DataList ID="DataList2" runat="server" DataSourceID="etiket_bulutu" 
                            RepeatDirection="Horizontal" RepeatLayout="Flow">
                <AlternatingItemStyle Wrap="True" />
                <ItemTemplate>                       
                    <asp:HyperLink ID="HyperLink10" runat="server" Font-Underline="False" 
                                        ForeColor="#666666" NavigateUrl='<%# Eval("makale_id", "detay.aspx?id={0}") %>' 
                                        Text='<%# Eval("etiket") %>' Font-Names="verdana" Font-Size="Small"></asp:HyperLink>                              
                   
                </ItemTemplate>
            </asp:DataList>
          <asp:AccessDataSource ID="etiket_bulutu" runat="server" 
                  DataFile="~/App_Data/XXXX.mdb" 
                  SelectCommand="SELECT top 10 * FROM [tags] Order By Rnd(-10000000*TimeValue(Now())*[etiket_id])">
              </asp:AccessDataSource>                        
Sonunda  etiket bulutumuzu oluşturup hem yazıların altında ilgili etiketleri  çekip listeledik, hemde ana sayfamızda devamlı olarak rastgele 10 tane  farklı etiket çekip onları listeledik, her sayfa yenilenmesinde etiketler değişecektir.
İyi çalışmalar... Adem KORKMAZ