Merhabalar, Günümüzde belki’de en çok yaptığımız uygulamalardan biriside döviz kuru’dur. Bende bu uygulamayı yaptım. Ancak problemler ortaya çıktı. IMKB ara sıra yayınlamayı kesiyordu. Sitede hatalar meydana geliyordu. Bu problemlerden ötürü site hiç çalışmıyordu. Haliyle site yayından kaldırılıyor ve otomatik olarak app_offline.html ekleniyor ve site yayından çekiliyordu. Bu problemlerin önüne geçebilmek adına farklı bir uygulama yaptım.1-) IMKB sitesi ile bağlantı oluşturuluyor ve XML dosya okunuyor2-) IMKB ile bağlantı varsaa-) XML dosya okunuyorb-) Okunulan bilgiler projemde oluşturduğum XML dosyaya kayıt ediliyor.c-) IMKB sitesinde okunulan bilgiler sitede gösteriliyord-) işlem sonlandırılıyor.3-) IMKB ile bağlantı yoksaa-) En son kayıt edilen Projemde ki XML dosya okunuyorb-) Okunulan bilgiler sitede gösteriliyorc-) Proje sonlandırılıyor.evet yukarıdaki işlemleri şimdi birde kod kısmına dökelim 🙂 ilk olarak bir dosya oluşturalım (Tercihim User Control oluşturmanızdan yanadır)aspx.cs dosyasıusing System;using System.Data;using System.Web;using System.Xml;using System.IO;using DataComments;protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){Doviz();}}string dolarA, euroA;public void XmlAl(){try{TextWriter tw = new StreamWriter(Server.MapPath(“~/TempFile/Doviz.xml”));tw.WriteLine(DataComment.Datas(“http://www.tcmb.gov.tr/kurlar/today.xml”).ToString());tw.Close();}catch { }}public void Doviz(){FileStream fls;try{fls = new FileStream(“http://www.tcmb.gov.tr/kurlar/today.xml”, FileMode.Open);XmlAl();}catch{fls = new FileStream(Server.MapPath(“~/TempFile/Doviz.xml”), FileMode.Open);}XmlTextReader okuyucu = new XmlTextReader(fls);XmlDocument dokuman = new XmlDocument();dokuman.Load(okuyucu);XmlNode dolar = dokuman.SelectSingleNode(“/Tarih_Date/Currency[CurrencyName=’US DOLLAR’]”);XmlNode euro = dokuman.SelectSingleNode(“/Tarih_Date/Currency[CurrencyName=’EURO’]”);_Dolar.Text = double.Parse(dolar.ChildNodes[4].InnerText, new System.Globalization.CultureInfo(“en-US”)).ToString();_Euro.Text = double.Parse(dolar.ChildNodes[4].InnerText, new System.Globalization.CultureInfo(“en-US”)).ToString();okuyucu.Close();}
aspx sayfası TL
TL

ve birde projemize class dosyası verelim ve adını da wDataRead koyalım. İçeriği de aynen aşağıdaki gibi olsunnamespace wDataRead{public class DataRead{public static string Datas(string U){Uri S = new Uri(U);WebRequest Wreqst = WebRequest.Create(S);WebResponse Wrespns = Wreqst.GetResponse();Stream Stm = Wrespns.GetResponseStream();StreamReader Stmrdr = new StreamReader(Stm, Encoding.GetEncoding(“windows-1254”));U = Stmrdr.ReadToEnd();return U;}}}
projemiz bitti. Herkes istediği gibi kullanabilir umarım 🙂 Bu uygulama biraz daha geliştirilebilir. Mesela outputcache kullanılarak her saat başı verilerin çekilmesi sağlanır. Böylelikle projenizi daha az kasmış olur.SaygılarımlaHalit ÇOLAK.