Bu dersimizde Xml dosyası ile neler yapabileceğimize değindikten sonra bir xml dosyasının yönetimi için gereken CRUD ve ek işlemleri nasıl yapılacağına dair bir örnek yapacağız.
Xml çok esnek bir yapıya sahiptir. Bu yüzden de kullanım alanı çok geniştir.Daha çok e-ticaret sitelerinde hizmet veya ürün sağlayıcılardan aldığımız bilgilerin işlenmesinde ve entegrasyonunda kullanılır. Xml ile (CDATA[]) html,script kodlarımızı saklayabiliriz. Bir sitenin tamamı xml yardımıyla da oluşturulabilir ya da sitemizdeki bazı kısımların xml ile oluşturabiliriz. Örneğin; anket, haber, reklam alanları (adrotator) gibi pek çok yerde kullanıcının doğrudan ilişkili olmadığı yerlerde kullanabiliriz. Blogsa'nın son sürümüne dikkat ettiyseniz, sitenin neredeyse yarısı xml teknolojisinden yararlanılarak oluşturulmuştur. Böylece veritabanına bağımlı olmayan bir site oluşturulmuştur. Bu da bilindiği gibi çok büyük bir avantajdır.
Şimdi örneğimizi yapmaya başlayalım.
İlk olarak visual studio yu açarak yeni bir web site oluşturuyoruz.
Örneğimizde bilgisayarların bir kaç özelliğini barındıran bir xml dosyası oluşturdum. Aşağıdaki resimde bu bilgilerin nasıl ayarlandığını görebilirsiniz.
Daha sonra yapacağımız işlemlere gore sitenin hiyerarşik yapısını oluşturuyoruz (classları vs.)
Burada gördüğünüz gibi App_Code özel klasörü içerisinde entity ve service klasörleri oluşturulmuş. CompEntity class'ı bizim her bir elemanın yani bilgisayarın özelliklerini birer property şeklinde tanımladık. CompService isimli class ise yapacağımız işlemlerin tamanını burada tanımlanan metodlarda yapıyoruz. Bu class'ı kullanacağımız sayfa içerisinde methodların dış kısmında oluşturarak bütün sayfa boyunca kullanabiliriz. Bu class'lara ait diagramlar aşağıdaki şekildedir.
Şimdi classlarda bulunan methodları açıklamaya çalışacağım. Fields kısmında XML_PATH adındanda anlaşılacağı gibi bir xml dosyasının yerini string olarak yazacağımız bir sabit tanımladım.
Methodların isimlerinden de anlayacağınız gibi CRUD işlemlerinin tamanı sağlanıyor. Ek olarak toplam adet, tamamını silme, List türünden elemanları verme gibi bir takım işlemlerde var.
Methodlara dikkat ederseniz bazılarına parametre olarak CompEntity nesnesi(class) gönderilmiştir. Hemen kod kısmına geçelim.Örneğin ekleme işlemi;
Şimdi yukarıda yazdığımız method nasıl kullanacağımıza geldi.
Xml çok esnek bir yapıya sahiptir. Bu yüzden de kullanım alanı çok geniştir.Daha çok e-ticaret sitelerinde hizmet veya ürün sağlayıcılardan aldığımız bilgilerin işlenmesinde ve entegrasyonunda kullanılır. Xml ile (CDATA[]) html,script kodlarımızı saklayabiliriz. Bir sitenin tamamı xml yardımıyla da oluşturulabilir ya da sitemizdeki bazı kısımların xml ile oluşturabiliriz. Örneğin; anket, haber, reklam alanları (adrotator) gibi pek çok yerde kullanıcının doğrudan ilişkili olmadığı yerlerde kullanabiliriz. Blogsa'nın son sürümüne dikkat ettiyseniz, sitenin neredeyse yarısı xml teknolojisinden yararlanılarak oluşturulmuştur. Böylece veritabanına bağımlı olmayan bir site oluşturulmuştur. Bu da bilindiği gibi çok büyük bir avantajdır.
Şimdi örneğimizi yapmaya başlayalım.
İlk olarak visual studio yu açarak yeni bir web site oluşturuyoruz.
Örneğimizde bilgisayarların bir kaç özelliğini barındıran bir xml dosyası oluşturdum. Aşağıdaki resimde bu bilgilerin nasıl ayarlandığını görebilirsiniz.
Daha sonra yapacağımız işlemlere gore sitenin hiyerarşik yapısını oluşturuyoruz (classları vs.)
Burada gördüğünüz gibi App_Code özel klasörü içerisinde entity ve service klasörleri oluşturulmuş. CompEntity class'ı bizim her bir elemanın yani bilgisayarın özelliklerini birer property şeklinde tanımladık. CompService isimli class ise yapacağımız işlemlerin tamanını burada tanımlanan metodlarda yapıyoruz. Bu class'ı kullanacağımız sayfa içerisinde methodların dış kısmında oluşturarak bütün sayfa boyunca kullanabiliriz. Bu class'lara ait diagramlar aşağıdaki şekildedir.
Şimdi classlarda bulunan methodları açıklamaya çalışacağım. Fields kısmında XML_PATH adındanda anlaşılacağı gibi bir xml dosyasının yerini string olarak yazacağımız bir sabit tanımladım.
Methodların isimlerinden de anlayacağınız gibi CRUD işlemlerinin tamanı sağlanıyor. Ek olarak toplam adet, tamamını silme, List türünden elemanları verme gibi bir takım işlemlerde var.
Methodlara dikkat ederseniz bazılarına parametre olarak CompEntity nesnesi(class) gönderilmiştir. Hemen kod kısmına geçelim.Örneğin ekleme işlemi;
PHP:
public **** AddComp(CompEntity compItem) { // xd nesnesi field olarak tanımladığımız için oradan bir nesne üretiyoruz. xd = new Xml********(); xd.Load(XML_PATH); // parametre olarak aldığımız compItem nesnesini kullanarak elementleri oluşturuyoruz. XmlElement xe0 = xd.CreateElement("Id"); xe0.InnerText = compItem._Id.ToString(); XmlElement xe1 = xd.CreateElement("Brand"); xe1.InnerText = compItem._Brand; XmlElement xe2 = xd.CreateElement("Description"); xe2.InnerText = compItem._Description; XmlElement xe3 = xd.CreateElement("Price"); xe3.InnerText = compItem._Price.ToString(); XmlNode newNode = xd.CreateNode(XmlNodeType.Element, "Computer", ""); newNode.AppendChild(xe0); newNode.AppendChild(xe1); newNode.AppendChild(xe2); newNode.AppendChild(xe3); xd.********Element.AppendChild(newNode); xd.Save(XML_PATH); }
PHP:
// nesneyi oluşturup özelliklerini belirtiyoruz. CompEntity myItem = new CompEntity { _Id = System.Guid.NewGuid().ToString().Replace("-", ""), _Brand = "Casper", _Description = "heyoo", _Price = Convert.ToDecimal(12) }; service.AddComp(myItem);
Yukarıda nesneye ait bilgileri direct olarak ekledim. Siz bunları textbox'lardan alabilirsiniz. Bu derste sadece ekleme işlemine değinmiş olduk. Eğer diğer işlemlerinde nasıl yapıldığını merak ediyorsanız aşağıdan uygulamanın kodlarını indirebilirsiniz.
Umarım iyi anlatabilmişimdir. İyi çalışmalar...