Windows HPC Server 2008 Lansmanı

Yağız Gönüler tarafından yayınlanmıştır 5. Kasım 2008 08:46



Günümüzde toplumları ve ekonomileri ileriye taşıyan verimliliğin ve rekabet gücünün temelinde inovasyon bulunuyor. İnovasyonun başarısı ise karmaşık ve ileri derecede hesaplama gücü gerektiren problemlerin çözülebilmesine bağlıdır.

Gerek akademik kurumlarda, gerekse de iş dünyasında bu alanda yapılan çalışmalarda, karmaşık modellemeleri ve uzun süren hesaplamaları çözmek için gerekli kaynağı Yüksek Başarımlı Hesaplama sağlar.

Microsoft şimdi bu alanda benzersiz bir çözüm sunuyor. Verimli, esnek ve ekonomik yüksek başarımlı hesaplama çözümleri sağlayan Windows HPC Server 2008, halen bilinen araç ve teknolojiler ile kolayca kurulabilen ve yönetilebilen mükemmel bir çözüm oluşturuyor.

Microsoft HPC Server 2008'in tanıtılacağı Boğaziçi Üniversitesi'ndeki bu özel etkinliğin detayları aşağıda bulunmakta.

Tarih & Saat
:
12 Kasım 2008 Çarşamba, 14:00 - 19:00
Yer
:
Boğaziçi Universitesi
Garanti Kültür Merkezi Ayhan Şahenk Salonu, Uçaksavar İstanbul
Haritayı görmek için tıklayın.
Sunum Dili
:
İngilizce, Simültane Tercüman ile Türkçe çeviri yapılacaktır.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: ,

Activity | Windows

Bir yazılımcının 3. ödevi: ScreenSaver

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:54

Aslında not defteri uygulamasıyla bu uygulama arasında kararsız kalmıştım ancak baktım ki not defteri uygulamasında farklı kaynaklarda bolca örnek var. Ekran koruyucusu daha çok ilgi çeker diye hemen hazırlıklara başladım.

 

Tasarım olarak ne kullanacağız diye merak ediyorsunuzdur mutlaka. Cevap veriyorum: Form. Ancak bu formun birkaç özelliği olacak. Bu özellikleri veremezseniz yada vermeyi unutursanız ekran koruyucusundan cevap alamazsınız.

 

Maddeler halinde kullanacağımız formun özelliklerini veriyorum:

 

-Forecolor, Backcolor: Black (Arka plan ve font rengi siyah ayarlanıyor)

-Tranceparencykey: Transparent (Transparan olacak)

-WindowState: Maximized (Form ekranı kaplayacak şekilde ayarlanıyor)

-Opacity: %20 (Şeffaflık yüzde yirmi olarak ayarlanıyor)

-FormBorderStyle: None (Border kabul etmiyoruz)

-AutoScaleMode: Inherit

 

 

Bu özellikler yoluyla formumuz simsiyah olacak ve hiçbir özelliği bulunmayacak. Zaten ekran koruyucusu da çalıştığında ekranımız simsiyah olacak. Bir anlık panikle korkmayınız bu durumdan J

 


Formun görünümünü buraya eklememe gerek yok zira simsiyah bir kutu düşünün aynısı. Görüntü olarak kötü duracağından eklemiyorum.

 


Evet artık kodlara geçiyorum ve burada yine her zaman olduğu gibi “kodların açıklamaları satır aralarında” diyorum. Tıpkı diğer tüm makalelerimde olduğu gibi.

 




'point; x ve y koordinatlarıyla belirlenen nokta objesidir

Dim pnt As New Point

'burada ise yazı tipimizi belirtiyoruz

Dim YaziTipi() As String = {"Times New Roman", "Tahoma", "Verdana", "Arial"}

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'formun açılışındaki daha doğrusu ekran koruyucusunun aktif hale geçtiği zamanda olacak eylemler

pnt.X = MousePosition.X

pnt.Y = MousePosition.Y 'ilk mouseun ilk standart degerlerını tutuyor

Windows.Forms.Cursor.Hide() 'kursoru gızler

End Sub

 




Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove

' math namespace MATEMATİK

'ABS yuvarlama ıslemını yapıyor

If Math.Abs(pnt.X - e.X) > 6 Or Math.Abs(pnt.Y - e.Y) > 6 Then

Me.Close()

End If

'böylece ekran koruyucusu aktifken mouse hareket ettirildiğinde ekran koruyucumuz kapanıyor

End Sub

 

Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress

'herhangi bir tuşa basıldığında da formumuz yani ekran koruyucumuz kapanıyor

Me.Close()

End Sub

 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Static SayacEfekt As Integer ' bir değişken oluşturarak,sayının tutulması saglanıyor

SayacEfekt += 1 'Timer her calıstıgında sayacı bır arttırıyor

If SayacEfekt = 200 Then

SayacEfekt = 50 'sayac 200 olmuşsa onu tekrar 50 yapıyor

End If

 

If SayacEfekt > 20 Then 'sayac 20 den buyukse

'İŞLEMLER YAPILACAK

'----------------------------

Dim grf As Graphics = Me.CreateGraphics

Dim rnd As New Random 'random değer üretmek için

Dim fnt As New Font(YaziTipi(rnd.Next(YaziTipi.Length)), rnd.Next(8, 42))

Dim brs As New SolidBrush(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255), rnd.Next(255)))

'-----------

ElseIf SayacEfekt <= 20 Then '20 den kucukse 20 den az calısmısa

If Me.Opacity <= 100 Then 'formun goruntü yanı şeffaflık sevıyesı

Me.Opacity += 0.1 'her calıstıgında formu daha gorunur hale getırıyor

End If

End If

End Sub

End Class

 

Umarım 3 seriden oluşan bu makale dizisi işe yarar olmuştur. Ödev aşamasındaki ve uzmanlık yolundaki tüm yazılımcı adayları için ideal örnekler olduğuna inanıyorum. Herkese kolay gelsin, iyi ödevler ve bol şanslar.

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Articles | Software | Windows

Bir yazılımcının 2. ödevi: Lucky 7

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:53

Daha önceki örneğimizdeki gibi burada da fazla açıklama yapmıycam. Gerekli kod açıklamaları kodların satır aralarında mevcut olacak.

 

Yinede herhangi bir konuda takıldığınız noktalar olursa mail vasıtasıyla bana ulaşabilirsiniz. Aşağıdaki tasarımı yaptıktan sonra projemizde bir imagelist bir de timer nesnesi eklemeyi unutmuyoruz.

 

 

 

Görüldüğü üzere 3 picturebox, 1 button, 1 de sol üst köşede görüldüğü üzere label var.

 

Pictureboxlarda oyunumuzdaki para kazancı olan resimler görünecek.

 

Button oyunu başlatıyor. Oyun bittiğinde kazanılan yada kaybedilen para label1’de belirtiliyor.

 

Tabi tüm bunları sağlayacak timer ve imagelist nesnelerimizi unutmamamız gerek. Bunları da toolbox yardımıyla projemize ekliyoruz. Timer1’in interval değerini 300 olarak ayarladım. Enabled değeri ise false.

 

Imagelist’e istediğiniz herhangi 3 resmi ekleyebilirsiniz. Ben size olarak 100x100 belirttim.

 

 

 

 

Şimdi kodları yazmaya başlıyoruz. Tekrar belirtmemde fayda var –maillerde hep soruluyor- kodların açıklamaları satır aralarında mevcut.

 

 

 

Kolay gelsin diyor ve iyi eğlenceler diliyorum J

 

 

 

'iki değişken tanımlıyoruz

'bunlardan biri elbetteki sayaç

'diğeri ise para değerini tutacak

Dim sayac As Byte

Dim para As Integer

 

Private Sub BtnBasla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnBasla.Click

'basla buttonuna tıkladıktan sonra timer'ımız içinde startı veriyoruz

'sayacımızı sıfır olarak belirtiyoruz

Timer1.Start()

sayac = 0

End Sub

 

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

'timerin tick olayına yazdığımız kodlar burada

'3 farklı elemanımız olduğu için byte tipinde 3 değişken tanımlıyoruz

Dim rnd As New Random

Dim index1, index2, index3 As Byte

'rasgele resim sıralarını buluyor , 0,1 ve 2 olabılır

index1 = rnd.Next(0, 3)

index2 = rnd.Next(0, 3)

index3 = rnd.Next(0, 3)

 

'gosterılecek resım olarak imagelistteki rasgele sıradakileri gösteriyor

Resim1.Image = ImageList1.Images(index1)

Resim2.Image = ImageList1.Images(index2)

Resim3.Image = ImageList1.Images(index3)

sayac += 1

'burada ise kazanıp kazanılmadığını belirtiyoruz

'eğer timer durduğunda index1, 2 ve 3 birbirine eşitse

'kazanıldığına dair bir mesaj verip labelımızdaki para değerine +1000 ekliyoruz

If sayac = 10 Then

Timer1.Stop()

If index1 = index2 And index1 = index3 Then

MsgBox("Oleyyy... Yırttın...")

para = para + 1000

Label1.Text = para & "$"

'eğer kaybedildiyse para değerinden 100 düşüyoruz

Else

MsgBox("Yattı....")

para = para - 100

Label1.Text = para & "$"

End If

End If

End Sub

 

Private Sub Slot_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'formumuzun açılışında gerçekleştirecek eylemler burada

'önce bir inputbox vasıtasıyla kullanıcıdan para değeri girmesini istiyoruz

'en düşük para değeri 500 olmalı, onun altındaki değerlerle bu oyun oynanmıyor :)

para = InputBox("PARANIZI GİRİNİZ")

'burada ise eğer para 500'den küçükse paranın yeterli olmadığını belirten bir uyarı ekrana getiriyoruz

've oyunu kapatıyoruz

If para < 500 Then

MsgBox("Paranız yeterli değil, Min=500")

'Application.Exit() ' butun sayfaları kapatıyor

Me.Close()

'aksi durumlarda oyunu başlatıyor ve imageliste resimleri ekliyoruz

'bu arada proje klasörümüzde bir resim klasörü oluşturup 3 resim eklemeyi unutmayalım

Else

Resim1.Image = ImageList1.Images(0)

Resim2.Image = ImageList1.Images(1)

Resim3.Image = ImageList1.Images(2)

End If

End Sub

End Class



Bundan sonraki makalem de yine bir yazılımcının ilk ödevleri arasında yer alan bir program olacak. Ancak bu makaleyi yazdığım sıralarda henüz karar veremedim ne yapacağıma. Umarım işe yarar makalaler olmuştur şimdikiler.

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Articles | Software | Windows

Bir yazılımcının ilk ödevi: Hesap Makinesi

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:50

Yıl 2002. Visual Studio .Net, Framework ve dilleriyle tanıştığım yıl. İlk yaptığım programlardan biri. Daha doğrusu ödev demeliydim. Yeni başlayanlar için çok ideal..

Program hususunda çok açıklama yapmıycam zira kod açıklamaları zaten satırların arasında yazılı olacak. Yalnız bir windows programı olduğunu, başlıktan da anlaşıldığı gibi visual basic .net ile yazıldığını ve çalışması için .net framework’ün bilgisayarınızda yüklü olması gerektiğini belirtmek isterim.

Programın tasarımı aşağıda gördüğünüz gibi;


Textbox ve Button kontrolleri dışında hiçbirşey yok. Aşağıda kodlar yer almakta. Çok iyi takip ederseniz ilk okuyuşunuzda anlamanız mümkün. Açıklamalarıda sürekli olarak altlarında olacak. Kolay gelsin..

   
'formun load, yani açılış esnasında gerçekleştirilen eylemleri burada

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        'd isminde bir değişken tanımladım

        'bu değişkenin tipi double yani tam,kesirli ve ondalık sayılarıları tanimlayabiliyor

        Dim d As Double

        'bir for döngüsü kurdum

        'bu döngü formun açılışın saydamdan belirgine olmasını sağlayacak

        For d = 0 To 1 - 0.1 Step +0.1

            'd'nin degerini 0 olarak tanimladim

            'her 0.1'lik artışta sistemi 5 salise durduruyorumki saydamlık anlaşılsın

            System.Threading.Thread.Sleep(50)

            'burada uygulama 2 iş birden yapabilir hale geliyor

            Application.DoEvents()

            'opacity yani saydamlık derecesini d değişkenine atadım

            Me.Opacity = d

            'programı yeniledim

            'böylece program açılırken en saydamdan en donuk hale geldi

            Me.Refresh()

        Next d

    End Sub

    '3 tane değişken tanımladım

    'islemsecildi değişkeni boolean(evet/hayır) olarak seçtim ve

    'varsayılan olarak "hayır" değerini verdim

    Private islemsecildi As Boolean = False

    'sayi değişkenine sayı değerlerini tutması için double değeri verdim

    Private sayi As Double

    'islem degiskenine metin degeri tutacagi icin string degeri verdim

    Private islem As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click, Button5.Click, Button6.Click, Button7.Click, Button8.Click, Button9.Click, Button10.Click

        'üzerinde rakam yazan tüm buttonlardan herhangi birine tıklandığında

        'yapılacak işlemleri belirtiyoruz

        If Not islemsecildi Then

            txtsayi.Text &= sender.text

        Else

            'islemsecildinin degeri varsa

            'sayı olarak senderdaki sayıyı atıyoruz

            txtsayi.Text = sender.text

            'daha sonra tekrar islemsecildiyi false olarka belirtiyoruz

            'yani ilk haline döndürüyoruz

            islemsecildi = False

        End If

    End Sub

Private Sub btncarp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncarp.Click, btnbol.Click, btncikar.Click, btntopla.Click

        'çarp, böl, topla yada çıkar buttonlarına basıldığında

        'islem değişkeni çağrımızı yapacağımız sendera işi gönderecek

        islem = sender.text

        'bunu bir try catch kontrolüyle gerçekleştiriyoruz

        Try

            'sayımız, textboxda yazan sayı

            sayi = txtsayi.Text

            'boolean değerli işlemsecildi değişkenimize evet değeri atıyoruz

            islemsecildi = True

        Catch ex As Exception

            'işlem yapıldığında aksi bir durum oluşursa hata mesajı yayınlanacak

            MsgBox("Sayı düzgün formatta girilmedi")

        Finally

            'son olarak işlem düzgün olarak tamamlandığında

            'sayı yazan yer ve sayı hafızası temizlenecek

            txtsayi.Text = ""

            txtsayi.Focus()

        End Try

    End Sub

   

Private Sub btnesit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnesit.Click

        'üzerinde eşittir yazılı buttona basıldıktan sonra bir select case döngüsüyle

        'eşittirden önce çarpı denildiyse çarpıcak, bölü dediyse bölünecek vs..

        Select Case islem

            Case "*"

                sayi *= txtsayi.Text

            Case "/"

                sayi /= txtsayi.Text

            Case "-"

                sayi -= txtsayi.Text

            Case "+"

                sayi += txtsayi.Text

        End Select

        'döngü bittiğinde sayı, textboxa yazdırılacak

        txtsayi.Text = sayi

    End Sub

   
Private Sub btntemizle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btntemizle.Click

        'üzerinde c yazan temizle butonuyla hem textboxı boşaltıyoruz

        'hemde hafızadaki sayıyı sıfırlıyoruz

        sayi = 0

        islemsecildi = False

        txtsayi.Text = ""

        txtsayi.Focus()

End Sub

Private Sub Button17_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkapa.Click

        'kapat buttonuna tıklandığında nasıl form açılırken en saydamdan

        'en donuğa geliyorsa bundada aynısı oluyor

        'dolayısıyla kod açıklamalarını tekrar yazmıyorum

        Dim d As Double

        For d = 1 To 0 + 0.2 Step -0.2

            System.Threading.Thread.Sleep(50)

            Application.DoEvents()

            Me.Opacity = d

            Me.Refresh()

        Next d

        'burada programı kapatıyoruz

        Environment.Exit(0)

    End Sub






Private
Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown

        'programın güzel özelliklerinden biri mouse kullanmadan da rakamların girilebileceği

        'ancak numpad değerlerinin sadece pclerde çalışacağını, laptoplarda olmayacağını belirteyim

        Select Case e.KeyCode

            'klavyeden 0'a basıldığında textboxa rakamı yazacak

            'diğer tuşlalarda da aynı işlem gerçekleşecek

            Case Keys.NumPad0

                txtsayi.Text = 0

            Case Keys.NumPad1

                txtsayi.Text = 1

            Case Keys.NumPad2

                txtsayi.Text = 2

            Case Keys.NumPad3

                txtsayi.Text = 3

            Case Keys.NumPad4

                txtsayi.Text = 4

            Case Keys.NumPad5

                txtsayi.Text = 5

            Case Keys.NumPad6

                txtsayi.Text = 6

            Case Keys.NumPad7

                txtsayi.Text = 7

            Case Keys.NumPad8

                txtsayi.Text = 8

            Case Keys.NumPad9

                txtsayi.Text = 9

        End Select

    End Sub

End Class

Bundan sonraki makalem yine bir yazılımcının ilk ödevleri arasında yer alan bir program olacak.

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Articles | Software | Windows

VB.Net ile işletim sistemi bilgilerini almak

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:39
Makale aynı zamanda System.Management namespacei için güzel bir örnek oluşturacak. Kodlarımızda kullanacağımız WblObjectQuery işletim sistemi bilgilerini görmek için kullanılan bir System.Management nesnesi. Bu nesne yoluyla win32_OperatingSystem tablosuna bağlanıp işimize yarayacak bilgileri çekeceğiz.

 

Öncelikle aşağıdaki formu oluşturuyoruz. 2 textbox ve 2 buttondan oluşuyor. Textboxlarımızın birine işletim sistemimizin türü, diğerine ise işletim sistemimizin dili geliyor. Buttonların hiçbir özelliği yok. Sadece görsel amaçlı, textboxta ne yazıyorsa orada da yazmasını istiyoruz.

 

 

 

 

 

Şimdi kod bölümüne geçiyoruz. Öncelikle System.IO ve System.Management sınıflarını projemize import ediyoruz.

 

Imports System.IO

Imports System.Management

 

Daha sonra formumuzun load özelliğine kodlarımızı yazıyoruz. Kodların açıklamaları satır aralarında yer alacaktır. Böylece kodlarken neyi neden yazdığınızı da anlayabileceksiniz.

 

'makalenin basinda söyledigim gibi WqlObjectQuery'i kullanarak

' win32_OperatingSystem tablosuna bağlanıp verileri çekiyoruz

Dim objectQuery As New WqlObjectQuery("select * from win32_OperatingSystem")

Dim searcher As New ManagementObjectSearcher(objectQuery)

Dim share As ManagementObject

'a parametresi sistem dilinin değerini taşıyacak

Dim a As String

'os parametresi ise isletim sistemimizin türünü tutacak

Dim os As String

For Each share In searcher.Get()

'win32_OperatingSystem tablosundaki name alanını

'isimize yarayacak sekilde cekiyoruz

a = share("Name")

Dim split1 As String()

split1 = Split(a, "|")

os = split1(0)

'hem textbox2ye hemde button2ye isletim sistemimizin türünü yazdiriyoruz

TextBox2.Text = os

Button2.Text = os

Next share

'simdi ise isletim sistemimizin dilini ögrenecegiz

For Each share In searcher.Get()

'yine win32_OperatingSystem tablosunun

' Locale alanindaki veriyi okuyoruz

a = share("Locale")

'belirli global degiskenler var

'örnegin 0409 ingilizceyi temsil ediyoruz

'ben önemli dillerin kodlarini aldim

'siz daha cok ekleyebilir yada silebilirsiniz

If a = "0409" Then

TextBox1.Text = "English"

Button1.Text = "English"

ElseIf a = "0407" Then

TextBox1.Text = "German"

Button1.Text = "German"

ElseIf a = "040a" Then

TextBox1.Text = "Spanish"

Button1.Text = "Spanish"

ElseIf a = "040c" Then

TextBox1.Text = "French"

Button1.Text = "French"

ElseIf a = "0416" Then

TextBox1.Text = "PortBraz"

Button1.Text = "PortBraz"

ElseIf a = "0419" Then

TextBox1.Text = "Russian"

Button1.Text = "Russian"

ElseIf a = "0410" Then

TextBox1.Text = "Italian"

Button1.Text = "Italian"

ElseIf a = "0415" Then

TextBox1.Text = "Polish"

Button1.Text = "Polish"

'iste asil yakalamamiz gereken dil

'041f türkceyi temsil ediyor

ElseIf a = "041f" Then

TextBox1.Text = "Turkish"

Button1.Text = "Turkish"

End If

Next share

 

 

 

Projeyi çalıştırdığınızda aşağıdaki görüntüyü alacaksınız.
(İşletim sisteminizin Windows XP, dilinizin Türkçe olduğunu varsayıyorum.)

 

 

 

 

Böylelikle basit bir yolla nasıl işletim sistemi bilgilerini elde edebileceğinizi göstermiş oldum. Umarım bundan sonraki projelerinize bir katkısı olur.

 

Bu projenin kodlarında kullandığım Local ID’lerin listesine şuradan ulaşabilirsiniz:
http://www.microsoft.com/globaldev/reference/lcid-all.mspx

Kaynaklar:

- Microsoft
- Code Project

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Articles | Software | Windows

RSS Reader

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:30

Bu makalemde vb.net kullanarak xml ile bir rss okuma programının nasıl yapıldığını göstereceğim. Böylelikle günümüzde yaygın olarak kullanılan rss teknolojisini yakından tanıyıp bilgi edinmiş olacağız.

F

ormumuzun design bölümünde aşağıdaki resimde göründüğü gibi sadece textbox, button, listview ve browser kullanıyoruz. Toolbox üzerine sağ tıklayıp add/remove items sekmesini tıklayıp, com components tab sekmesinden Microsoft web tarayıcısını formumuza ekliyebiliriz. Ayrıca projemize add web reference diyerek aşağıdaki resimde textboxta yazan adresi ekliyoruz.

Öncelikle projemize 3 adet class ekliyoruz. Bunların isimlerini RssChannel, RssItemCollection ve RssItem olarak veriyoruz. Kodları aşağıdaki gibi yazıyoruz. Öncelikle RssChannel isimli classımızı oaşağıdaki gibi oluşturuyoruz;

Imports System.Xml

Imports System.Xml.XPath

 

Public Class RssChannel

 

    Private mTitle As String

    Private mDescription As String

    Private mLink As String

    Private mItems As New RssItemCollection

 

 

    Public Property Items() As RssItemCollection

        Get

            Return mItems

        End Get

        Set(ByVal Value As RssItemCollection)

            mItems = Value

        End Set

    End Property

    Public Property Title() As String

        Get

            Return mTitle

        End Get

        Set(ByVal Value As String)

            mTitle = Value

        End Set

    End Property

    Public Property Description() As String

        Get

            Return mDescription

        End Get

        Set(ByVal Value As String)

            mDescription = Value

        End Set

    End Property

    Public Property Link() As String

        Get

            Return mLink

        End Get

        Set(ByVal Value As String)

            mLink = Value

        End Set

    End Property

 

 

    Public Shared Function GetRssChannel(ByVal Url As String) As RssChannel

        Dim Rc As New RssChannel

        Dim Xd As XPathDocument

 

        Try

            Xd = New XPathDocument(Url) 'adresteki xml belgesini okuyor, ve bir belge gıbı goruyor

        Catch ex As Exception

            MsgBox(ex.Message) 'okuma sırasında bir hata verırse

        End Try

 

        Dim Xp As XPathNavigator = Xd.CreateNavigator 'ayırac oluşturuyor

        Dim Ni As XPathNodeIterator 'bir ayaırac oluşturuyor verılen sorguya gore belge uzerınde ayırma ıslemını gerçeklesştiriyor

        'title

        Ni = Xp.Select("/rss/channel/title")

        Ni.MoveNext()

        Rc.Title = Ni.Current.Value

 

        Ni = Xp.Select("/rss/channel/description")

        Ni.MoveNext()

        Rc.Description = Ni.Current.Value

 

        Ni = Xp.Select("/rss/channel/link")

        Ni.MoveNext()

        Rc.Link = Ni.Current.Value

 

        Ni = Xp.Select("/rss/channel/item")

        While Ni.MoveNext

            Dim Ri As New RssItem 'yeni bir haber oluşturuyor

            Dim Ni2 As XPathNodeIterator

            Ni2 = Ni.Current.Select("link") 'item>Link

            Ni2.MoveNext()

            Ri.Link = Ni2.Current.Value

 

            Ni2 = Ni.Current.Select("description") 'item>description

            Ni2.MoveNext()

            Ri.Description = Ni2.Current.Value

 

            Ni2 = Ni.Current.Select("title") 'item>title

            Ni2.MoveNext()

            Ri.Title = Ni2.Current.Value

 

            Rc.Items.Add(Ri) ' haberi ekliyor Channel'a

        End While

 

        Return Rc

 

    End Function

 

End Class

Şimdi ise RssItem isimli classımızı aşağıdaki gibi oluşturuyoruz;

Public Class RssItem

    Private mTitle As String

    Private mLink As String

    Private mDescription As String

 

    Public Property Title() As String

        Get

            Return mTitle

        End Get

        Set(ByVal Value As String)

            mTitle = Value

        End Set

    End Property

    Public Property Link() As String

        Get

            Return mLink

        End Get

        Set(ByVal Value As String)

            mLink = Value

        End Set

    End Property

    Public Property Description() As String

        Get

            Return mDescription

        End Get

        Set(ByVal Value As String)

            mDescription = Value

        End Set

    End Property

 

End Class

Class oluşturmak işlemimizi RssItemCollection isimli classımızı da aşağıdaki gibi oluşturarak tamamlıyoruz;

Public Class RssItemCollection

    Inherits CollectionBase

 

    Public Function Add(ByVal Rssitem As RssItem) As Integer

        Return list.Add(Rssitem)

    End Function

 

    Default Public Property Items(ByVal index As Integer) As RssItem

        Get

            Return List(index)

        End Get

        Set(ByVal Value As RssItem)

            list(index) = Value

        End Set

    End Property

 

End Class1

En son olarak Formumuzun code behind kısmına aşağıdaki kodlarımızı yazıyoruz. Böylelikle adres getir buttonu tıklama işlemini, listview üzerindeki tek ve çift tıklama işlemlerini programlıyoruz;

Public Class Form1

    Inherits System.Windows.Forms.Form

 

    Dim RC As RssChannel

 

    Private Sub BtnAdresGetir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdresGetir.Click

 

        RC = RssChannel.GetRssChannel(txtAdres.Text)

        Me.Text = RC.Title

        Me.ListView1.Items.Clear()

        For Each ri As RssItem In RC.Items

            Dim Li As New ListViewItem(ri.Title)

            Li.Tag = ri

            ListView1.Items.Add(Li)

        Next

 

    End Sub

 

    Private Sub ShowDescription(ByVal Desc As String)

        Dim Fs As New IO.FileStream("Temp.htm", IO.FileMode.Create)

        Dim Sw As New IO.StreamWriter(Fs, System.Text.Encoding.GetEncoding(1254))

        Sw.Write("<HTML><BODY>")

        Sw.Write(Desc)

        Sw.Write("</BODY></HTML>")

        Sw.Close() : Fs.Close()

     &n