• 01-04-2008, 16:56:08
    #28
    Eposta Aktivasyonu Gerekmekte
    Nedir Response.Redirect ?
    Response.Redirect ASP’nin yönlendirme özelliğidir.Bu ifadeye gelindiğinde ASP sayfası çalışmasını durdurur ve belirtilen sayfayı açar.
    Hemen bir örnek yapalım.
    Aşağıda yonlendiren_sayfa dosyasının içeriği verilmiştir.
    <html>
    <head>
    <title>Response.Redirect</title>
    </head>
    <% @ Language=Vbscript Codepage=1254 %>
    <body>
    <% Response.Write “Bu sayfa sizi yonlendirilen_sayfa.asp’ye yönlendirecektir.
    Response.Redirect “yonlendirilen_sayfa.asp
    %>
    </body>
    Bu sayfada yonlendirilen_sayfa.asp dosyasına yönlendirdik.

    Aşağıda yonlendirilen_sayfa.asp dosyasının içeriği verilmiştir.
    <html>
    <head>
    <title>Response.Redirect</title>
    </head>
    <% @ Language=Vbscript Codepage=1254 %>
    <body>
    <% Response.Write “Bu sayfa yonlendiren_sayfa.asp tarafından yönlendirilmiştir.” %>
  • 01-04-2008, 16:56:52
    #29
    Eposta Aktivasyonu Gerekmekte
    ASP ile web programı yazarken en önemli unsurlardan biride formdan bilgi almaktır.Zaten bütün web programlama formlar ile yapılır.Ziyaretçi Defteri olsun , forum olsun hepsinde form öğelerini kullanırız.Ben size basit bir form ile bilgi alma örneği göstereceğim.Bunu geliştirip geliştirmemek tamamen sizin elinizde.
    Bu örneğimizde form_kullanimi.htm ile kullanacağımız formları oluşturucağız.Yani bir nevi tasarımını , iskeletini. form_isle.asp dosyası ise form_kullanımı.htm de girdiğimiz bilgilerin ekrana yazılmasını sağlayacak.Dikkat edin eğer form_kullanimi.htm dosyasında bir yazı yazmadan form_isle.asp ye bakmaya çalışırsanız browser bu sayfayı göstermez.
    Aşağıda form_kullanimi.htm dosyasının içeriği verilmiştir.

    <html>
    <head>
    <title>Form ile Bilgi Almak</title>
    </head>
    <body>
    <form method=”post” action=”form_isle.asp”>
    <b>Adınız :</b><input type=”text” name=”ad”>
    <b>Soyadınız : </b><input type”text” name=”soyad”>
    <input type=”submit” value=”Gönder”>
    </form>
    </body>
    </html>
    Bu dosyamızda ilk başta <form> tagının “action” özelliği ile dosyayı işleyecek dosyanın adını ve uzantısı girdik.ıki tane text ve bir tane submit butonu oluşturduk.Birinci texte “ad” ismini verdik.ıkincisine ise “soyad”.Bunlara bu adları vermemizin sebebi form_isle.asp dosyasında bunları kullanıcak olmamız.
    Aşağıda form_isle.asp dosyasının içeriği verilmiştir.
    <html>
    <head>
    <title>Form ile Bilgi Almak</title>
    </head>
    <% @ Language=VBscript codepage=1254 %>
    <body>
    <% dim ad,soyad
    ‘form_kullanimi.htm dosyasında textlere verdiğimiz isimleri hatırlıyor musun?
    ad=Request.Form(”ad”)
    soyad=Request.Form(”soyad”)
    %>
    <%=ad%>&nbsp;<%=soyad%>
    </body>
    </html>
    Bu dosyada kullandığımız “&nbsp;”boşluğun kodlanma şeklidir.Yapmamın sebebi ad ve soyad değişkenleri arasında hoş gözükmesi için bir blok boşluk bırakmak. ılk dosyada girdiğimiz “Ad ve Soyad”ı form_isle.asp de “Request” nesnesinin “form” metodu ile alıyoruz ve sayfaya yazdırıyoruz.
  • 01-04-2008, 16:57:26
    #30
    Eposta Aktivasyonu Gerekmekte
    Hepimiz çeşitli sitelerde Status bar’da bazı yazılar görmüşüzdür. Örneğin ASPnedir?com’da da bu şekilde bir mesaj var. Peki bunu nasıl yazıyoruz. Javascript’in window.status ve windows.defaultStatus özelliklerini kullanarak. Hemen bir örnek kod ile açıklayalım:
    <script language=javascript>
    window.status =’ASPnedir?com’;
    window.defaultStatus =’ASPnedir?com’;
    </script>
    Peki bu yazınızı nasıl hareket katabilirsiniz? ScollIn ve ScrollOut diye 2 farklı fonksiyon yazılım. Biri mesajı ekrana belirli bir zaman aralığında yazarken diğeride aynı şekilde silen bir fonksiyon. Hemen bunu da bir örnek kod ile inceleyelim:


    <SCRIPT language=JavaScript>


    <!– Begin
    var Message=” ASPnedir?com bir nedir?org Hizmetidir”;
    var place=1;
    function scrollIn() {
    window.status=Message.substring(0, place);
    if (place >= Message.length) {
    place=1;
    window.setTimeout(”scrollOut()”,100);
    } else {
    place++;
    window.setTimeout(”scrollIn()”,120);
    }
    }
    function scrollOut() {
    window.status=Message.substring(place, Message.length);
    if (place >= Message.length) {
    place=1;
    window.setTimeout(”scrollIn()”, 100);
    } else {
    place++;window.setTimeout(”scrollOut()”, 100); }
    }scrollIn()
    // End –>
    </SCRIPT>
    Görüldüğü gibi buradaki değerleri değiştirerek kendi zaman diliminizde farklı hareketli status bar mesajları yazabilirsiniz.
    Son olarak gelelim nasıl bu mesajı sabileyeceğimize. Mouse ile linlerin üzerine gidildiğinde anlık da olsa o linkin adresi status bar’da yine de görünecektir üstteki örneklerde peki biz ne yapabiliriz? Çözüm kolay tag’ine onmouseover ve onmouseout olaylarında window status’u korumasını söyleriz. Hemen yine kodla açıklayalım:

    <a OnMouseOver=”window.status = ‘ASPnedir?com’; return true;” OnMouseOut=”window.status = ‘ASPnedir?com’; return false;” href=index.asp style=font:bold >Ana Sayfa</a>
    ışte hepsi bu kadar.
  • 01-04-2008, 16:58:01
    #31
    Eposta Aktivasyonu Gerekmekte
    Birçok yönden bu bileşenler active-x kontrollerine benzer. Fakat, aktif sunucu bileşenleri tarayıcıya bir nesne göndermektense nesneyi sunucu üzerinde çalıştırmak için tasarlanmıştır. Bunun da, bu yazımızda göreceğimiz gibi birçok avantajı vardır.
    Sorulması gereken bir soru da şudur: Bu bileşenler nereden geliyor? Bunların bir kısmı ASP kurulumu sırasında sağlanır.
    Diğerleri de ya satın alınır ya da bedava bulunabilir. Bu yazıda microsoft tarafından sağlanan birçok nesnenin aslında ne kadar çok faydalı olduğunu göstermeye çalışacağım. Bu bileşenleri kullanmaya alışırsanız başkalarının sağladığı bileşenleride kendi sayfanızda kullanırken zorlanmazsınız.

    Bununla birlikte standart bileşenler vardır. Biz bu bileşeni bu yazımızda ele almayacağız. Dinamik web sitesi teknolojileri kullanmanın esaslarından bir tanesi de, farklı tipdeki veri tabanı yönetim sistemlerindeki bilgiyi doğrudan yayımlamaktır. Burada ihtiyaç duyulan veriyi toplamak ve bir veri tabanında saklamaktır. Bu hedefe, ASP kullanarak ulaşmak için özel fakat genel amaçlı bir bileşen olan Active-X veri nesneleri olarak bilinen bileşenin avantajlarını kullanacağız.

    Sunucu Bileşenleri:
    VBScript ve JSScript için kullanılabilir çeşitli script geliştirme nesnelerini görmüştük, şimdi bunların diğer bileşenlerle nasıl birlikte kullanıldıklarını göreceğiz. Buradaki önemli bir nokta da, sunucu bileşenleri ve hazır script geliştirme nesnelerinden bahsederken de bunları birbirine karıştırmamaktır. TextStream ve Dictionary gibi script geliştirme nesneleri script geliştirme ortamının birer parçasıdır. Bunlar ASP sisteminin bir parçası olan bir DLL tarafından oluşturulmuştur.
    Sunucu bileşenleri, script geliştirme dilleri DLL’lerinden farklıdır. Bunlar kendilerine ait DLL’lerin içinde oluşturulurlar. Mesela bu yazıda inceleyeceğimiz Content Linking bileşeni NextLink.DLL dosyasının içerisinde oluşturulur. Bu, sunucu üzerine kurulup kaydedildikten (register) sonra ASP’nin kurulumunda desteklediği tüm script geliştirme dilleri ile beraber kullanılabilir.
    Göreceğiniz gibi bazı sunucu bileşenleri daha önce gördüğümüz built-in script geliştirme nesnelerinin gücünü kullanır. Bu bileşenlerin herbirisine bakmadan önce genel olarak kullanacağımız sunucu bileşenlerine bakalım.

    Genel Bakış:
    Geçtiğimiz aylarda, ASP paketi tarafından sağlanan bileşenlerin kullanımının yönetimini gördük. Sunucu nesnesinin metodlarından birisini kullanarak browser capabilities bileşeninin bir kopyasını oluşturduk:

    Set NT = Server.CreateObject
    (“MSWC.BrowserType”)


    Bu nesne NT değişkenindeki nesne için bir referans oluşturur ve biz daha sonraki scriptlerimiz içinde nesne ile çalışabiliriz. Başka bir değişle bu nesnenin özelliklerinin bize uygun olanlarını kullanır ve metodlarının gerektiği kadarını koddan çağırırız.
    Standart bileşenlerin çoğu, web sitenizin veya şirket intranetinizin başarısı için belirli türdeki görevleri hedef edinmiştir. ASP kullanarak başarmak isteyeceğiniz şey kesinlikle yayımlamak istediğiniz bilginin türüne ve sitenizin genel amaçlarına bağlıdır. Hazır bir bileşeni kullanmak başlangıç için size bir yol gösterir.

    Bileşenleri Kullanmak:
    VBScript veya JSScript ile sunucu nesnesinin CreateObject metodunu kullanabiliriz. Bunu daha önce bir bileşenin kopyasını oluştururken anlatmışık. Ya da nesne referansını doğrudan bir değişkene atayarak daha sonra kodumuzda kullanabiliriz.

    <Object> Kullanmak:
    Başka bir yol olarak ASP’deki bir nesnenin kopyasını oluşturmak için <OBJECT> etiketini kullanabiliriz. Aynı yolla taryıcı üzerindeki bir Web sayfasındaki bir nesnenin kopyasını da oluşturabiliriz. ASP , HTML <OBJECT> etiketi için özel bir uygulama sağlar ve biz bunu sayfamıza bir nesne yerleştirmek için kullanabiliriz. Normal bir .asp dosyası içinde bir bileşenin kopyasını veya script geliştirme nesnesini tanımlamak için şöyle bir yazılım kullanırız:

    <Object
    Runat=Server ID=NesneReferansı ProgID=”Nesne Tanımlayıcı”>
    </Object>


    Nesne Referansı, Nesne Kopyası gibi bir isimdir. Bu isimler kodumuz içinde kullanacağımız nesneleri gösterir. Nesne Referansı Windows Registry içindeki bir nesnenin veya bileşenin ismidir. Mesela MSWC. Adrotator gibi. Böylelikle Ad Rotator nesnesinin bildirimini kodumuz içerisinde aşağıdaki gibi yapabiliriz:

    <Object
    Runat=Server ID=ObjAdRot ProgID=”MSWC.Adrotator”>
    </Object>


    Sunucu olarak ayarlanması gereken RUNAT özelliğine dikkat edin. PROGID,[Vendor.] Component [.Version]. formunda bir bileşeni veya nesneyi tanımlayan tek (unique) bir metin dizisidir.
    Ya da PROGID yerine nesnenin CLASSID’ sini kullanabiliriz:

    <Object
    Runat=Server ID=ObjAdRot ClassID=”Cisid: OACE4881-8305-11CF-9427-444553540000”>
    </Object>


    Çalışma Alanı:
    Normal bir .asp dosyası içerisinde CreateObject veya <OBJECT> etiketinin kullanılması genel olarak bir performans farkına sebep olmaz.Gerçek fark nesnenin yaratıldığı veya kopyalandığı noktadır. CreateObject metodu nesnenin kopyasını, çağnldığı zaman oluşturur. <OBJECT> etiketi ile tanımlanan bir nesne ise kendisine ilk referans verilen noktaya kadar gerçek olarak oluşturulmaz. Bu da bize, nesnenin global.asa dosyasında tanımlanıp .asp dosyasında gerçek olarak tanımlanmadığı yerlerde, kaynak kullanımını azaltmamıza veya sunucu performansını arttırmamıza olanak verir.
    Geçmiş sayılarda global.asa ve Session ve Application nesneleri ile karşılaşmıştık. Biz sadece bu dosya içerisinde nesnelerin kopyalarının oluşturmanın önemini anlamalıyız ve böylece bunlar Session veya Application’ da tanımlanan bir çalışma alanına sahip olurlar.
    Bunu <OBJECT> etiketi içinde SCOPE özelliğini koyarak sağlanz:

    <Object
    Runat=Server Scope=Session ID=ObjAdRot ProgID=”MSWC.Adrotator”>
    </Object>


    SCOPE için geçerli değerler Session.Application veya Page’dir. Eğer <OBJECT> etiketini normal bir .asp dosyası içinde kullanırsak ya Page’i kullanmalıyız ya da SCOPE özelliğini tamamen ihmal etmeliyiz. Eğer <OBJECT> etiketini global.asa içerisinde kullanırsak bir nesne oluştururuz, bu nesne ya mevcut oturumun tamamı için kullanılabilir olur ya da global olarak uygulamanın tamamen dışında olur.

    Bileşen Metodları:
    ASP içerisindeki bileşenleri kullanmamızın tüm sebebi sağladıkları ekstra işlevsellikten faydalanmaktır. Bu işlevselliğe sadece script geliştirme dillerini kullanarak erişmek ya mümkün değil ya da ulaşılsa bile etkisiz veya zordur. Bir nesnenin kopyası kullanılabilir olduğu zaman onun için bir referansımız olur ve ihtiyaç duyduğumuz sonuçlara ulaşmak için onun metodlannı çağırabilir, özelliklerini kullanabiliriz. Her bileşenin kendine özgü metodlan ve özellikleri vardır. Bu yüzden, bunlann ne olduğunu ve her birinin sağladığı argümanlan ve doğru yazılımlarını bilmeliyiz. Mesela, Content Linking bileşeni GetNextURL adındaki bir metoda sahipken, Advertisement Rotator bileşeni de GetAdvertisement metoduna sahiptir.
    Birçok bileşen metodu bir değer döndürür. Birçok durumda bu bizim istediğimiz birşeydir. Mesela Content Linking bileşeninin GetNextURL metodunun döndürdüğü URL gibi. Diğerleri ise, sadece dışardan değer alırlar. Mesela User Properties bileşeninin Append metodu gibi. Ayrıca bu metodlar işlemin başanlı olup olmadığından emin olmamız için True veya False değeri döndürürler.

    Standart Bileşenler :
    ASP onbir tane standart Sunucu bileşeni içerir. Bu bileşenleri bir sonraki makalemizde ayrıntılı olarak ele alacağız.
  • 01-04-2008, 16:58:39
    #32
    Eposta Aktivasyonu Gerekmekte
    Bu makalede ASP ile nasıl ping işleminin nasıl gerçekleştirileceğini ve sonuçlarının nasıl görüntülenebileceğini anlatacağız.
    Ancak bu yöntem ile ping çekmek çok kolay değildi. Öncelikle ping işlemini gerçekleştirmek ve elde edilen sonuçları bir dosyaya yazmak, daha sonra bu dosyadan satır satır sonuçları okuyarak ekrana yazdırmak gerekiyordu.
    Ping işlemini gerçekleştirmek isteyen birçok kişi olacağındandan, bir dosyaya yazdırma - tekrar okuma işlemlerinin gereksiz zaman almasından ve herkesin server üzerinde yazma izni olmamasından veya server üzerine bir dosya yazmanın getireceği güvenlik problemlerinden dolayı tercih edilebilecek bir yöntem olmadı.

    Makalemizde bir tanesinden bahsedeceğimiz ve ASP ile ping çekme işlemlerinde (komponente göre ek başka işlevler de olabilir) kullanılan komponentler ile işimiz gayet kolay bir hale geliyor. ASP kodumuzun içerisinde yazılacak olan birkaç satır ile ping işlemi basitce gerçekleştirilebilir.
    ASP ile ping işlemini gerçekleştirmek için kurulumu - kullanması gayet basit ve ücretsiz olan ServerObjects firmasına ait olan AspPing componentini kullanacağız. İçerisinde yardım ve örnek kodları içeren dosyaların olduğu ve boyutu 119 Kb olan bu componenti http://www.serverobjects.com/products.htm adresinden indirebilirsiniz.
    Dosyayı indirdikten sonra, içerisinde yer alan aspping.dll dosyası ile componenti register etmek gerekmektedir. Bu dosyayı komut satırında veya Start menüsünden Run’a basarak “regsvr32 x:\klasor_adi\aspping.dll” komutu ile register edebilirsiniz. Bazı sistemlerde register işleminden sonra komponenti kullanabilmek için sistemin restart edilmesi gerekebilmektedir.
    Not : DLL dosyasının sistem tarafından kullanılabilmesi için register işlemi sırasında belirtildiği adresten silinmemesi gerekmektedir. Bu sebeple dosyayı işletim sisteminin yer aldığı klasöre (Windows 2000 için Winnt) kopyalamanız ve oradan register etmeniz faydalı olacaktır.
    Komponenti sistemimize kaydettikten sonra ASP içerisinde kullanabilmek için aşağıdaki kodları kullanabilirsiniz :
    <html>
    <head>
    <title> ASP ile ping testi </title>
    </head>
    <body>
    <center> <h3> Ping Testi </h3> </center>
    <%
    ‘ Ping işlemini gerçekleştirmemizi sağlayacak nesneyi oluşturuyoruz.

    Set Pinger = Server.CreateObject(”AspPing.Conn”)

    ‘ Ping çekmek istediğimiz adresi belirtiyoruz. Bu adres ister
    IP adresi ister domainin adı olabilir.

    Pinger.RemoteHost = “www.aspnedir.com”

    ‘ Ping işleminin kaç defa tekrarlanacağını belirtiyoruz. Bu parametre
    belirtilmezse varsayılan olarak 1 defa gerçekleştirilir.

    Pinger.PingCount = 2

    ‘ Kaç byte’lık veri ile ping işleminin gerçekleşeceğini belirtiyoruz.
    Bu parametre belirtilmezse varsayılan olarak 32 byte ile işlem yapılır.
    Pinger.Blocksize = 64

    ‘ Ping işlemini gerçekleştiriyor ve sonucu ekrana yazdırıyoruz.
    İsterseniz sonucu bir değişkene atabilir, sonuç üzerinde amacınıza
    göre farklı işlemler gerçekleştirebilirsiniz.

    Response.Write “<pre>” & Pinger.Ping & “</pre>”

    ‘ İşlem tamamlandığı için oluşturduğumuz nesneyi kapatıyoruz.Set
    Pinger = nothing

    %>
    </body>
    </html>
  • 01-04-2008, 16:59:17
    #33
    Eposta Aktivasyonu Gerekmekte
    VB .Net ‘te Klasik COM Bileşenleri Ve Arayüzlerinin Kullanımı
    .Net öncesi dönemde, COM teknolojisini destekleyen dillerle bileşen (component) tabanlı programlar yazıyorduk. COM; basitçe yeni bileşenler yaratmak veya varolan bileşenleri uygulamalar yada başka bileşenler içerisinden kullanmak için Microsoft tarafından tanımlanmış bir teknolojidi idi. COM teknolojisi sayesinde dilden bağımsız bileşenler tasarlamak ve COM destekli diller arasında bu bileşenleri kullanmak mümkündür.
    Sizin de .Net ile tanışmadığımız dönemden, miras olarak kalmış ve bugün VB .Net uygulamalarınız içerisinden kullanmak istediğiniz COM bileşenleriniz olabilir. Bu isteğinizi gerçekleştirebilemenizi sağlayacak bilgiler yazının ilerleyen kısımlarında verilecektir. Ancak yazının konusu “VB .Net ‘te COM bileşenleri ve arayüzlerinin kullanılması” olduğu için COM teknolojisinin detaylarına girilmeyecektir. Bu sebeble COM teknolojisi ile ilgili temel kavramları bildiğinizi kabul ederek yazının bundan sonraki kısmına VB 6.0 ‘da birer COM bileşeni ve arayüzü içeren bir ActiweX DLL projesi yapıp daha sonra bu bileşeni, VB .Net ‘te ile yazacağımız uygulama tarafından referanse ederek kullanacağınız örnek bir uygulama ile devam edeceğiz.

    Yapacağımız örnek uygulama client / server mimari ile çalışan ve aritmetik hesapların yapılmasına yönelik basit bir uygulama olacak. Uygulamanın server tarafı VB 6.0 ile yazılmış bir COM bileşeninden, client tarafı ise VB .Net ile yazılmış ve bu COM server’ı kullanan bir windows uygulamasından oluşacaktır.
    1. Adım (Arayüzün Tanımlanması)
    VB 6.0 ‘da bunun yolu hiç bir implementasyon kodu içermeyen soyut bir sınıf tasarlamaktır.
    VB 6.0 ‘da MegaCalculator isminde ve türü ActiweX DLL olan yeni bir proje başlatın. Projeye eklenen sınıfın ismini IMegaCalc olarak değiştirin. (Sınıfın başında koyduğunuz I belirteci sınıfın bir interface olduğunu belirtmektedir) Bu sınıf soyut bir sınıf olduğu için sadece üyelerinin prototiplerini içermektedir. IMegaCalc sınıfının kodları aşağıda verilmiştir.

    ‘IMegaCalc SınıfıOption Explicit
    Public Sub AddInput(inputvalue As Integer)
    End Sub
    Public Sub DoCalculation()
    End Sub
    Public Function GetOutput() As Double
    End Function
    Public Sub Reset()
    End Sub
    Bu kodları yazdıktan sonra projeyi “File | Make MegaCalculator.dll” ile derleyebilirisiniz. Bu sayede dll olarak derlenmiş ve register edilmiş bir bileşen arayüzünüz oldu. Projenizi kaydedip VB 6.0 ‘dan çıkabilirsiniz.
    2. Adım (Bileşenin İmplementasyonu)
    Bu aşamada ise bileşenin operasyonel kodlarının bulunduğu yeni bir ActiweX DLL projesi yaratacağız. Bunun için VB 6.0 ‘da ismi MeanCalculator ve türü ActiweX DLL olan yeni bir proje başlatın. Proje açıldıktan sonra ilk işiniz “Project | Referances” seçeneğinden MegaCalculator projesini referanse etmek olsun. Bundan sonra projenize eklenen sınıfın ismini ise MeanCalculator olarak değiştirin. Aşağıda MeanCalculator sınıfının kodları verilmiştir.

    ‘MeanCalculator Sınıfı
    Option Explicit
    Implements IMegaCalc
    Dim mValue As Integer
    Dim mValues() As Double
    Dim mMean As Double
    Private Sub Class_Initialize()
    ‘Constructor
    IMegaCalc_Reset
    End Sub
    Private Sub IMegaCalc_AddInput(inputvalue As Integer)
    mValue = mValue + 1
    ReDim Preserve mValues(mValue)
    mValues(mValue) = inputvalue
    End Sub
    Private Sub IMegaCalc_DoCalculation()
    Dim value As Integer
    mMean = 0
    If mValue = 0 Then Exit Sub
    For value = 1 To mValue
    mMean = mMean + mValues(value)
    Next
    mMean = mMean / mValue
    End Sub
    Private Function IMegaCalc_GetOutput() As Double
    IMegaCalc_GetOutput = mMean
    End Function
    Private Sub IMegaCalc_Reset()
    mValue = 0
    End Sub
    Bu kodları yazdıktan sonra projenizi “File | Make MeanCalculator.dll” olarak derleyin. Artık projenizi kaydedip VB 6.0 ‘dan çıkabilirsiniz. (Bu projeyi ‘de bir önceki ile aynı dizine kaydetmeniz düzenli çalışabilmek açısından faydalı olacaktır !)
    3. Adım (Client Uygulamanın Yaratılması)
    Client uygulama VB .Net içerisinde yaratacağımız bir Windows Appilaction projesinden ibaret. Bu uygulamanın görevi ise; yarattığımız COM bileşenini (MeanCalculator.dll) kullanarak çeşitli işlemler yapmak. Client uygulamanın bu bileşendeki fonksiyonları kullanabilmesi için, bileşenin uygulamaya tanıtılması, yani referanse edilmesi gerekmektedir. Referanse etme işlemi VB 6.0 ‘dakine benzer tarzda ve şöyle yapılmaktadır; “Project | Add Referance” seçeneğinde COM tab ‘ına geçin ve listeden “MeanCalculator” ı bularak projenize ekleyin. Çıkan mesaj penceresinde “Yes” demeniz gerekmektedir ! Bu aşamada Solution Explorer ‘da referances seçeneğine baktığınızda “MeanCalculator” ve onun kendi içerisinde referanse ettiği, “MegaCalculator” ‘ın eklendiğini görebilirsiniz.
    Artık kullanıcı arabirimini yaratabilirsiniz. Arabirim için aşağıdaki resmi örnek alabilirsiniz ;
    TextBox’ların ismileri sırsıyla “txtInput” ve “txtOutput” tur. Arabirimi bu şekilde hazırladıktan sonra, artık client side kodları yazabiliriz.

    Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim oMean As MeanCalculator.MeanCalc
    Public Sub New()
    MyBase.New()
    ‘This call is required by the Windows Form Designer. InitializeComponent()
    ‘Add any initialization after the InitializeComponent() call
    oMean = New MeanCalculator.MeanCalc()
    End Sub
    Private Sub btnAdd_Click(…) Handles btnAdd.Click
    oMean.AddInput(CDbl(txtInput.Text))
    End Sub
    Private Sub btnCalculate_Click(…) Handles btnCalculate.Click
    oMean.DoCalculation()
    txtOutput.Text = oMean.GetOutput()
    End Sub
    Private Sub btnReset_Click(…) Handles btnReset.Click
    oMean.Reset()
    End Sub
    End Class
    Kodu kısaca incelersek, global olarak tanımlanmış oMean nesnesi; MeanCalculator namespace’indeki MeanCalc sınıfı türündendir. Ancak bu nesnenin türetilme işlemi form sınıfının constructor ‘ında yapılmıştır. Bunun amacı; form nesnesi türetilir türetilmez oMean nesnesinin de türetilmek istenmesidir. Daha sonra bu nesnenin metotları kullanılarak işlemler client side ‘ta arabirim ile etkileşimli olarak yapılmaktadır.
  • 01-04-2008, 17:00:00
    #34
    Eposta Aktivasyonu Gerekmekte
    Javascript’ te this operatörü bütün OOP detekleyen dillere olduğu gibi oldukça faydalıdır. This operatörünü kullanarak belirli bir nesne için değil, sonsuz nesne için işlem yapan fonksiyonlar yazabilir, hatta nesnenin tipine, ait olduğu forma vb. göre ayrı işlemler yaptırabiliriz.Örneğin bir e-ticaret uygulamasında ürünlerin listelendiği, her ürün için adet alanı bırakıp, kullanıcının adet alanına 0-255 arası bir sayı girdiği ürünleri sepete ekleyecek, her ürün için adet alanına nümerik olmayan veya 0-255 aralığının dışında bir değer girildiğinde kullanıcıyı uyaracak bir sayfa yapalım.
    Örneğimizde ürün bilgileri “urunler.mdb” dosyasında durmaktadır. Bütün işlemler “index.asp” dosyasında gerçekleşmektedir.
    index.asp
    <%@ LANGUAGE=”VBSCRIPT”%>
    <%
    dim constr
    constr=”provider=microsoft.jet.oledb.4.0;data source=” & server.MapPath(”urunler.mdb”)

    dim con
    dim rst
    dim sql
    set con=server.createobject(”adodb.connection”)
    set rst=server.createobject(”adodb.recordset”)
    con.open constr
    %>
    <html>
    <head>
    <SCRIPT LANGUAGE=”javascript”>
    <!–
    function check(txt)
    {
    if(isNaN(txt.value)||txt.value>255||txt.value<0)
    {
    alert(”Lütfen 0-255 arası bir sayı giriniz!”);
    txt.value=”0″;
    setFcs(txt);
    }
    }
    function setFcs(txt)
    {
    txt.focus();
    txt.select();
    }
    //–>
    </SCRIPT>
    </head>
    <body>
    <%
    sql=”select kod,ad,aciklama,fiyat from urunler”
    rst.open sql,con
    if not rst.EOF then
    %>
    <table>
    <form action=”sepet.asp” method=”get” name=”frm”>
    <%
    while not rst.EOF
    %>
    <tr>
    <td><%=rst.Fields(”ad”).Value%></td>
    </tr>
    <tr>
    <td><%=rst.Fields(”aciklama”).Value%></td>
    </tr>
    <tr>
    <td>Fiyat : <%=rst.Fields(”fiyat”).Value%>$</td>
    </tr>
    <tr>
    <td>Adet : <input type=”text” name=”adet<%=rst.Fields(”kod”).Value%>” value=”0″ onkeyup=”check(this);” onclick=”setFcs(this);”></td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    </tr>
    <%
    rst.MoveNext
    wend
    %>
    <tr>
    <td><input type=”submit” value=”Sepete Ekle” name=”submit”>
    </td>
    </tr>
    </form>
    <%
    else
    %>
    Ürün bulunamadı
    <%
    end if
    %>
    </table>
    </body>
    </html>
    <%
    set rst=nothing
    set con=nothing
    %>
  • 01-04-2008, 17:00:35
    #35
    Eposta Aktivasyonu Gerekmekte
    Javascript kullanırken “src=xxx.js” parametresini kullanarak birden fazla sayfada kullandığımız javascript fonksiyonlarını tek bir dosyada toplayabiliriz. Ancak bu statik bir çözümdür ve birçok sayfada dinamik bilgilere ihtiyaç duyarız.Bu yüzden işin içine Asp ‘ yi katarak database de dahil olmak üzere tüm server-side teknolojileri kullanarak çok daha esnek javascript uygulamaları yazabiliriz.

    Örneğin havadurumu bilgilerini içeren bir siteniz var (havadurumu.com) ve başka sitelerin de bu bilgileri kullanabilmesini istiyorsunuz. Bunun için bir web servisi yaratabilir ve xml aracılığıyla bilgi alışverişi yapabilirsiniz. Ancak bu tip basit uygulamalarda Asp & Javascript kullanarak oldukça kolay çözümler üretmek daha mantıklıdır.
    Örneğin bir müşteriniz sizin hava durumu bilgilerinizin belli bir ücret karşılığında kendi sitesinde de olmasını istiyor. Bu işi müşterinizin sayfasında hiçbir asp kodu olmadan ( connection string’ i vermek istemezsiniz )) halledebilirsiniz. Yani Asp destekleyen bir sunucuda olması gerekmez. Çünkü müşterinin sayfasındaki kod tamamen client-side çalışır.
    Örneğimizde hava durumu bilgileri “hava.mdb” dosyasında durmaktadır. “Hava.asp” dosyası db’ den havadurumu bilgilerini çekip response.write ile javascript ile kullanabileceğimiz client-side değişkenlere atar. “index.html” sayfasında da bu bilgileri document.write metoduyla sayfada istediğimiz yere yazdırabiliriz.
    PLAIN TEXT
    ASP:
    1. <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<%@ LANGUAGE=”VBSCRIPT”%>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<%[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dim constr[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]constr=”provider=microsoft.jet.oledb.4.0;data source=” & server.MapPath(”hava.mdb)[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dim con[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dim rst[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dim sql[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dim ist1,ist2,ank1,ank2[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]set con=server.createobject(adodb.connection)[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]set rst=server.createobject(adodb.recordset)[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]con.open constr[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]sql=”select top 2 derece1,derece2 from hava where datevalue(tarih)=’”& datevalue(date()) &”‘ order by sira”[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]rst.open sql,con[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]if not rst.eof then[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]ist1=rst.Fields(”derece1″).Value[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]ist2=rst.Fields(”derece2″).Value[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]rst.MoveNext[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]if not rst.EOF then[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]ank1=rst.Fields(”derece1″).Value[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]ank2=rst.Fields(”derece2″).Value[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]end if[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]end if[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]set rst=nothing[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]set con=nothing[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]%>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<!–[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]var istHava=”<%=ist1%>” + “/” + “<%=ist2%>”;[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]var ankHava=”<%=ank1%>” + “/” + “<%=ank2%>”;[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]//–>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]index.html[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<html>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<body>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<head>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<script language=”javascript” src=”hava.asp”></script>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]</head>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]</body><body>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]HAVA DURUMU<br /><br />[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]İstanbul : <script language=”javascript”>document.write(istHava);</script>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<br />[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]Ankara : <script language=”javascript”>document.write(ankHava);</script>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<br />[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]</body>[/FONT]
    2. [FONT='Courier New', Courier, monospace]</html> [/FONT]



    Gördüğünüz gibi hiç asp kodu olmamasına rağmen html sayfamızdaki havadurumu bilgileri dinamik olarak gelmektedir.
    Bu örnek aynı klasörde olan “hava.asp” dosyasının çağırmaktadır. Başka bir siteden bu bilgileri almak için
    PLAIN TEXT
    CODE:
    1. [FONT='Courier New', Courier, monospace]<script language=”javascript” src=”hava.asp”></script> [/FONT]



    satırını
    PLAIN TEXT
    CODE:
    1. [FONT='Courier New', Courier, monospace]<script language=”javascript” src=”http://www.havadurumu.com/hava.asp”></script> [/FONT]



    olarak değiştirmemiz yetecektir.
  • 01-04-2008, 17:01:26
    #36
    Eposta Aktivasyonu Gerekmekte
    ASP.net ile XML formatındaki bir dosyaya ulaşmayı ve XML formatındaki dosyadan veri okumayı göreceğiz.
    Kisaca koddan bahsetmek gerekirse once
    DataSet objDataSet = new DataSet();
    Komut satiri ile bir yeni bir dataset objesi yaratiyoruz. Daha sonraki satirda veri.Xml satirinda ki bilgileri datasetin içine gömüyoruz. Bir sonraki kodlarda XML formatindaki bir dosyadan okumak bu kadar kolay peki ya XML bir dosyaya yazmak veri eklemek nasil oluyor? gibi bilgiler. Yani veriyi istedigimizx gibi degistirebiliriz ne demek istedigimi asagidaki kodlara bakip daha iyi anliyacaksiniz.

    okul.xml adi ile dosyamizi kaydedelim
    PLAIN TEXT
    XML:
    1. <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<?xml version="1.0" ?>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<okullar>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <okul>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] <adi>Avcilar Ilkokolu</adi>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <yeri>Avcilar</yeri>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] </okul>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <okul>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] <adi>Fatih Fen Lisesi</adi>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <yeri>Beylikduzu</yeri>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] </okul>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <okul>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] <adi>Bogazici Universitesi</adi>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] <yeri>Bebek</yeri>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] </okul>[/FONT]
    2. [FONT='Courier New', Courier, monospace]</okullar> [/FONT]



    Böylece XML dosyamızı hazırlamış olduk şimdi bu dosyaya ulaşıp içindeki veriyi okumayı görelim.
    PLAIN TEXT
    ASP:
    1. <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data" %>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data.OleDb" %>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<script language="C#" runat="server">[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]void Page_Load(object sender, EventArgs e)[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]{[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataSet objDataSet = new DataSet();[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.ReadXml(Server.MapPath("okul.xml"));[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dgOkul.DataSource = objDataSet.Tables[0].DefaultView;[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dgOkul.DataBind();[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]}[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]</script>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<html>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<body>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<asp ataGrid ID="dgOkul" Runat="server" />[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]</body>[/FONT]
    2. [FONT='Courier New', Courier, monospace]</html> [/FONT]


    ile okul.xml adlı dosyaya bağlanıp içindeki bilgileri ekrana döktük. Çıktı ise aşağıdaki şekilde olacaktır.
    adi yeri
    Avcilar Ilkokulu Avcilar
    Fatih Fen Lisesi Belikduzu
    Bogazici Universitesi Bebek
    PLAIN TEXT
    CODE:
    1. [FONT='Courier New', Courier, monospace]DataSet objDataSet = new DataSet(); [/FONT]



    Komut satırı ile bir yeni bir dataset objesi yaratıyoruz. Daha sonraki satırda okul.xml dosyasında ki bilgileri datasetin içine gömüyoruz. Bir sonraki satirda dgOkul adli DataGridimizin kaynak verisi olarak okudugumuz XML dosyayı göstertiyoruz.
    PLAIN TEXT
    ASP:
    1. <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data" %>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<%@ Import NameSpace="System.Data.OleDb" %>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<script language="C#" runat="server">[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]void Page_Load(object sender, EventArgs e)[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]{[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataSet objDataSet = new DataSet();[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.ReadXml(Server.MapPath("okul.xml"));[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dgOkul.DataSource = objDataSet.Tables[0].DefaultView;[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dgOkul.DataBind();[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]//Varolan satirda degisiklik yapiyoruz[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]objDataSet.Tables["okul"].Rows[0]["adi"] = "kasimpasa lisesi";[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.Tables["okul"].Rows[0]["yeri"] = "kasimpasa";[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]//Yeni bir satir ekliyoruz[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]DataTable objTable = null;[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataRow objNewRow = null;[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objTable = objDataSet.Tables["okul"];[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]objNewRow["adi"] = "besiktas anadolu lisesi";[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objNewRow["yeri"] = "besiktas";[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]objTable.Rows.Add(objNewRow);[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]//Simdi bunu farkli bir XML dosyasi olarak kaydedelim okul1.xml adi ile[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet.WriteXml(Server.MapPath("okul1.xml"));[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]//XML dosyadan okuyalim[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]DataSet objDataSet2 = new DataSet();[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]objDataSet2.ReadXml(Server.MapPath("okul1.xml"));[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace] [/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]dgOkul1.DataSource = objDataSet2.Tables[0].DefaultView;[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]dgOkul1.DataBind();[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]}[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]</script>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<html>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<body>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<table>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<tr>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]<td><asp ataGrid id="dgOkul" runat="server" /></td>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]<td><asp ataGrid id="dgOkul1" runat="server" /></td>[/FONT]
      <LI style="FONT-WEIGHT: normal; COLOR: #f73b3b; FONT-STYLE: normal; FONT-FAMILY: 'Courier New', Courier, monospace">[FONT='Courier New', Courier, monospace]</tr>[/FONT]
      <LI style="FONT-WEIGHT: bold; COLOR: #7bbe54">[FONT='Courier New', Courier, monospace]</table>[/FONT]
    2. [FONT='Courier New', Courier, monospace]</body> [/FONT]



    Yukarida ki kodun çıktısı aşağıdaki gibi olacaktır.
    adi yeri
    Avcilar Ilkokolu Avcilar
    Fatih Fen Lisesi Beylikduzu
    Bogazici Universitesi Bebek
    adi yeri
    kasimpasa lisesi kasimpasa
    Fatih Fen Lisesi Beylikduzu
    Bogazici Universitesi Bebek
    besiktas anadolu lisesi besiktas
    Kısaca kodda neler yaptığımızdan bahsedeyim. İlk bölümde yaptiğımız bir önceki kod ile ayni okul.xml dosyamızı ekranda görüntülüyoruz Daha Sonra ilk satırımızda değişiklik yapıyoruz.
    objDataSet.Tables["okul"].Rows[0]["adi"] = "kasimpasa lisesi";
    Satırı ile okul table'ındaki birinci satırda bulunan adi isimli alana kasimpasa lisesini atıyoruz. Daha sonraki makalelerimizde XML konusuna daha ayrintılı değineceğiz.
    Bundan sonra yaptığımız önce yeni bir DataTable ve DataRow tanımlamak. Ve bunlara yeni ekliyecegimiz değikenleri atıyoruz. Ve ekleme işlemini gerçeklestiriyoruz. Bunları okul1.xml dosyası altında kaydedip ekrana basıyoruz.