Makale Özeti

Bu makalede Visual Studio 2005 ile birlikte gelen Strongly Typed Resources kavramını ele alarak bir örnek uygulama geliştiriyor olacağız.

Makale

.NET Assembly’leri kodun yanısıra grafikler, ses dosyaları gibi binary kaynaklarıda içerebilmektedirler. .NET ilk versiyonundan bu yana kaynak kullanımını destekliyor olsa da, Visual Studio tasarım aşamasında entegre bir çözüm sunmamaktaydı. Sonuç olarak grafik verilerini depolama ihtiyacı olan uygulama geliştiriciler bu dosyaları tasarım aşamasında destekleyen Picturebox veya ImageList gibi bir kontrole yüklüyorlar böylece dosya otomatik olarak uygulama kaynak dosyasına ekleniyordu.

Visual Studio 2005 ile birlikte, kaynak dosyalarının kullanımı son derece kolaylaştı. Daha da iyisi, strongly typed yapı ile birlikte geliştirme sürecinde her an, kodun istediğiniz noktasından bu kaynaklara erişmek mümkün hale geldi.

Makalenin devamında bir örnek uygulama ile devam ediyor olacağız. Yeni bir windows uygulaması oluşturarak başlayabiliriz.

Yeni bir kaynak eklemek için Solution Explorer penceresinde projenizi sağ tuşla tıklayarak Properties komutunu vermekle başlayalım. Bu komut sonrasında uygulama ile ilgili tanımlamalarınızı gerçekleştirebileceğiniz konfigurasyon paneli açılır. Açılan panelden Resources sekmesine gidiyoruz.

 

Bu ekrandaki en önemli noktalardan biri, ekleyeceğimiz kaynağın türünü seçmemize yardımcı olan listbox.

 

Detay paneli, eklediğiniz kaynak türüne göre değişiklik gösterecektir. String eklediğiniz esnada bir grid görürken, grafik eklediğiniz esnada eklenen her grafiğin önizlemesini gösteren bir panel görüntülenecektir.

Uygulamanın görsel tasarımı aşağıdaki gibidir.

  

Uygulama konfigurasyon ekranının Resources sekmesinden ilk olarak iki adet grafik türünde kaynak ekliyorum. Kaynak dosyaları ekledikten sonra Resources sekmesinin görünümü şu şekilde oluyor:

 

Bu noktadan sonra uygulama çalıştırıldığı anda uygulama kaynak dosyasından tr adlı grafiği PictureBox1 kontrolüne yükleyeceğiz.

 

Gördüğünüz gibi eklenen tüm kaynakları IntelliSense’te görmek ve buradan kolayca erişerek kullanmak mümkün.

Bu noktadan sonra uygulamanın görsel kısmında kullanılacak metinleri resource dosyasına ekliyoruz:

 

Ve uygulama çalıştığında varsayılan dil seçimi Türkçe olduğu için (şimdilik uygulamamız son seçilen dili hatırlayamıyor) Türkçe değerler kontrollere yükleniyor.

Bu noktadan sonra uygulamaya şu kodları ekliyor ve uygulamayı çalıştırıyoruz:

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

        ChangeLang("tr")

    End Sub

 

    Private Sub TürkçeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TürkçeToolStripMenuItem.Click

        ChangeLang("tr")

        İngilizceToolStripMenuItem.Checked = False

        TürkçeToolStripMenuItem.Checked = True

    End Sub

 

    Private Sub İngilizceToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles İngilizceToolStripMenuItem.Click

        ChangeLang("en")

        TürkçeToolStripMenuItem.Checked = False

        İngilizceToolStripMenuItem.Checked = True

    End Sub

 

    Sub ChangeLang(ByVal lang As String)

        Select Case lang

            Case "tr"

                PictureBox1.Image = My.Resources.tr

                Label1.Text = My.Resources.LGN_TR

                Label2.Text = My.Resources.PWD_TR

                Button1.Text = My.Resources.LGN_TR

                DilSeçimiToolStripMenuItem.Text = My.Resources.MNU_LANG_TR

                İngilizceToolStripMenuItem.Text = My.Resources.EN_TR

                TürkçeToolStripMenuItem.Text = My.Resources.TR_TR

            Case "en"

                PictureBox1.Image = My.Resources.en

                Label1.Text = My.Resources.LGN_EN

                Label2.Text = My.Resources.PWD_EN

                Button1.Text = My.Resources.LGN_EN

                DilSeçimiToolStripMenuItem.Text = My.Resources.MNU_LANG_EN

                İngilizceToolStripMenuItem.Text = My.Resources.EN_EN

                TürkçeToolStripMenuItem.Text = My.Resources.TR_EN

        End Select

    End Sub

 

Uygulamayı çalıştırdığımızda Türkçe olarak karşımıza geliyor:

 

Menüden dil seçimini kolayca değiştirebiliyoruz..

  

 

Gördüğünüz gibi Strongly Typed Resources özelliği ve IntelliSense entegrasyonu, uygulama geliştirme sürecinde kaynak kullanımını son derece kolaylaştırmaktadır.

Kadir SÜMERKENT
http://www.sumerkent.com

 

Örnek proje dosyası. Visual Studio 2005 Beta 2 ile geliştirilmiştir.