Makale Özeti

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 !

Makale

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

use
Makalelerim

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
; }
public
haberlerim()
{

}
}

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