Makalemize başlamadan önce flash animasyonumuzu xml dosyamızı ve database imizi ayarlaryalım . Biraz uzun bir makale olucak sıkılmadan okursanız dewamında cok guzel bir haber gösterim kısmımız olucak !
Adım Adım Gidelim .
1.ADIM : SQL IŞLEMLERIMIZ [ DATABASE + TABLO YAPISINI OLUŞTURUP IÇERIK GIRMEK ]
create
databaseMakalelerim
useMakalelerim
create tabletbl_haber
(
Haberid int identity(1,1),
Haberbaslik nvarchar(max),
Haberkisayazi nvarchar(max),
HaberIcerik nvarchar(max)
)
Makalelerim adında oluşturduğum database imin içine tbl_haber adında tablomu oluşturdum . Şimdi içerisine bir kaç adet haber girelim .

tbl_haber tablomuzu açıp içerisine değerlerimizi girdik . Sql ile olan işimiz simdilik bitti . Tabiki içerik yönetimi olması icin ekle sil duzenle gibi işlemleride yapmamız gerekmektedir . Bizim amacımız sqldeki verileri okumak ve bunları xml olarak flash ın görmesini sağlamak .
2. ADIM : XML YAPIMIZI INCELEYELIM .
Xml yapımızı inceleyelim . Flash animasyonumuz bizden aşağıdaki formatda xml ister ...
<?
xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Başlık</title>
<link>sayfa url</link>
<description>Açıklama</description>
<copyright>copyright bilgilerimiz</copyright>
<pubDate>Oluşturulma Tarihi</pubDate>
<language>Dil bilgisi</language>
<webMaster>Siteyi Tasarlayanın Adı</webMaster>
<item>
<title>Haber Başlık</title>
<description>Haber İçerik</description>
<link>Haber Link</link>
</item>
<item>
<title>Haber Başlık</title>
<description>Haber İçerik</description>
<link>Haber Link</link>
</item>
<item>
<title>Haber Başlık</title>
<description>Haber İçerik</description>
<link>Haber Link</link>
</item>
</channel>
</rss>
Amacımız yukarıdaki formatda bir xml dosyasını c# ile sqldeki haber bilgilerini alarak dinamik sekilde xml dosyası oluşturmak olucakdır .
3. Adım : Yukarıdaki adımlarda önce Sql içerisinde database imizi oluşturduk daha sonra tablomuzu oluşturup içerisine verilerimizi girdik flash animasyonumuzun istedigi xml yapısını gördük . Artık bizim sqlden verilerimizi alıp içerde bunları xml e cevirip flash ile kullanmamız gerekmektedir . Şimdi biraz Code yazalım :)
C# da işlemlerimize başlamadan önce haber class ımızı yazalım ...
haberlerim.cs
public
class haberlerim
{
public inthaberid { get; set; }
public stringhaberbaslik { get; set; }
public stringhaberkisayazi { get; set; }
public stringhabericerik { get; set; }
publichaberlerim()
{
}
}
Yukarıda haberlerim sınıfımızı tamamladık .
Şimdi gidelim ve database imize baglanıp haberlerimizi çekelim .
databaseislemlerim.cs
tbl_haber tablomuzu açıp içerisine değerlerimizi girdik . Sql ile olan işimiz simdilik bitti . Tabiki içerik yönetimi olması icin ekle sil duzenle gibi işlemleride yapmamız gerekmektedir . Bizim amacımız sqldeki verileri okumak ve bunları xml olarak flash ın görmesini sağlamak . public
class databaseislemlerim
{
SqlConnectioncon;
SqlCommandcmd;
publicdatabaseislemlerim()
{
con = new SqlConnection("data source=.; initial catalog=Makalelerim; integrated security = true");
}
public voidBaglantiIslemlerim()
{
if(con.State == System.Data.ConnectionState.Closed)
{
con.Open();
}
else
{
con.Close();
}
}
public SqlDataReaderHaberlerimiAl()
{
cmd = new SqlCommand("Select * from tbl_haber", con);
BaglantiIslemlerim();
returncmd.ExecuteReader();
}
}
Yukarıda Sql server ımıza bağlanıp tbl_haber tablosundan verilerimizi çektik ve SqlDataReader olarak bir ust katmana aktardık . Şimdi Datayonetim sınıfı tanımlayıp aldıgımız bu ham veriyi ( SqlDataReader ) düzenleyip bir koleksionda toplayacağız .
Datayonetim.cs
public class datayonetim
{
databaseislemlerimislem;
SqlDataReaderReader;
publicdatayonetim()
{
islem = new databaseislemlerim();
}
public List<haberlerim> HaberlerimiAl()
{
List<haberlerim> Haberlerim = new List<haberlerim>();
Reader = islem.HaberlerimiAl();
while(Reader.Read())
{
Haberlerim.Add(new haberlerim()
{
haberid = Reader.GetInt32(0),
haberbaslik = Reader.GetString(1),
haberkisayazi = Reader.GetString(2),
habericerik = Reader.GetString(3),
});
}
Reader.Close();
islem.BaglantiIslemlerim();
returnHaberlerim;
}
}
Datayonetim sınıfımızda islem.HaberAl(); metotumuzdan gelen SqlDataReader while içerisinde Read(); olana kadar verilerimizi list<haberlerim> koleksiyonuna topladık . Şimdi elimizde sql server ımızdan gelen haberlerimiz list<T> olarak elimizde var . Şimdi verilerimizi uygun xml formatında kayıt edelim .
xmlislemlerim.cs
public XElementHaberXmlAl(List<haberlerim> Haberler)
{
List<XElement> d = new List<XElement>();
XElementitemlar;
foreach(haberlerimitem inHaberler)
{
itemlar = new XElement("item",
new XElement("title", item.haberbaslik),
new XElement("description", item.haberkisayazi),
new XElement("link", "haberdetay.aspx?id=", item.haberid));
d.Add(itemlar);
}
XElementx = new XElement("rss", new XAttribute("version", "2.0"),
new XElement("channel",
new XElement("title", "Cengiz Atilla - Haberler Uygulaması"),
new XElement("link", "http://www.cengizatilla.com"),
new XElement("description", "Flash Xml Csharp Kardesligi | :)"),
new XElement("copyright", "2009 Cengiz AT˜LLA"),
new XElement("pubDate", "06 - 06 - 2009"),
new XElement("language", "tr-TR"),
new XElement("webMaster", "Cengiz Atilla"),
d));
returnx;
}
Xml işlemleri sınıfımızda HaberAlXml(List<haberlerim> haberler) metotumuz parametre olarak list<haberlerim> tipinden koleksiyon istemektedir . Biz datayonetim.cs sınıfımızda bu sekilde database tarafından gelen verilerimizi düzenlemiştik . ( Verilerimiz Hazır )
HaberAlXml metotumuz içerisinde flash animasyonumuzun istediği xml şemasına uygun verilerimizi yazdık ve geriye XElement tipinde deger döndürdük.
Şimdi default.aspx sayfamızda flash animasyonumuzu koyalım ve bir adet buton atalım .
<body>
<form id="form1" runat="server">
<div>
</div>
<table cellpadding="0" cellspacing="0" style="width: 935px">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="898" height="29">
<param name="movie" value="ewsflow.swf">
<param name="quality" value="high">
<embed src="ewsflow.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="898" height="29"></embed></object>
</td>
</tr>
<tr>
<td style="text-align: center">
<asp:Button ID="btn_xml" runat="server" onclick="btn_xml_Click" Text="Yeni Haberleri Yükle" Width="541px" />
</td>
</tr>
</table>
</form>
</body>
Yukarıda default.aspx sayfamıza flash animasyonumuzu ve bir adet buton ekledik . Butona tıkladıgımız zaman xml dosyamız oluşucaktır .
Şimdi default.aspx.cs sınıfımıza gidelim ve son işlemimiz olan butona tıklama olayını yazalım .
default.aspx.cs
public partial class _Default: System.Web.UI.Page
{
xmlislemlerimxmlislem;
datayonetimyonetim;
protected voidPage_Load(objectsender, EventArgse)
{
xmlislem = new xmlislemlerim();
yonetim = new datayonetim();
}
protected voidbtn_xml_Click(objectsender, EventArgse)
{
XElementelement = xmlislem.HaberXmlAl(yonetim.HaberlerimiAl());
stringyol = Server.MapPath(".\\");
element.Save(yol + "ar.xml");
}
}
Artık butona bastıgımız zaman ;
- Sql server ımıza baglanıp tbl_haber icerisindeki haberleri alıcak ve datayonetim katmanına ( SqlDataReader ) tipinden vericektir .
- Datayonetim sınıfımız verileri alıp list<haberlerim> koleksiyonunda toplayacaktır
- Xmlislemleri sınıfımız HaberXmlAl metot u ile verileri XElement olarak bize geri vericektir .
- element.save metot unu kullanarakda xml dosyamızı olusturacagız .
- Flash ımızda yeni xml dosyasını okuyacaktır :)
Örnek Kodlar icin http://www.cengizatilla.com/images/Haberservis.rar linkinden indirebilirsiniz .
Cengiz ATİLLA
www.cengizatilla.com
atilla@cengizatilla.com