XML - Tanıyalm

XML - Tanıyalım

Kısaca WPF 

Windows Presentation Foundation (WPF), windows işletim sistemleri için arayüzler geliştirmek için tasarlanmıştır. Zengin kullanıcı arayüzleri oluşturabilmek için bizlere çok büyük kolaylıklar sağlar. Windows Presentation Foundation (WPF), web uygulamalarındaki gibi windows uygulamaları geliştirmemizi sağlıyor. Windows Presentation Foundation (WPF), Windows XP, Windows Server 2003 ve Vista sistemlerinde çalışıyor fakat genel olarak Vista için geliştirilmişdir. 

Daha detaylı bilgi için http://wpf.netfx3.com adresine bakınız. 

XAML Nedir? 

EXtensible Application Markup Language (XAML), Zamel olarak okunan ve .net uygulamaları için statik yada dinamik kullanıcı arayüzleri oluşturmak için microsoftun geliştirmiş olduğu yeni bir markup(işretleme) dilidir. XML tabanlı çalışır ve XML’in tüm özelliklerini kullanır. Uzantısı *.xaml dir. XAML, Windows Vistada Kullanıcı arayüzleri oluşturmak için kullanılır fakat Windows XP veya Windows Server 2003’de uygulanabilir. 

XAML, Uygulama kodundan kullanıcı arayüzü kodundan ayırmak için geldi. Bu yapı Javanın kullandığı MVC(Model View Controller)’a çok benzer. XAML, Windows vista ve .NET 3.0 ile uygulamalar geliştirmek için WPF’e bağlıdır.   

XAML aynı XML gibidir. XML’in tüm özelliklerini kullanır. XML için geçerli olan tüm kurallar XAML içinde geçerlidir. Örnek olarak başlatılan her element sonlandırılmak zorundadır yada büyük küçük harf duyarlılığı. Her bir XAML Elementi .NET CLR Class’ını temsil eder. 

XAML’in WPF ile birleşmesi yazılımcılar için zengin kullanıcı arayüzleri geliştirmelerini sağlıyor, bu ASP.NET deki code behind ile code inline modeline benziyor. Yani ister ayrı bir dosya içerisine yada inline olarak uygulama kodlarını yazabiliriz. Yani uygulama katmanı ile sunum katmanını tamamen birbirinden bağımsız hale getirebiliyoruz. 

XAML, BAML dosyalarını derler. BAML XAML’den daha küçüktür ve okumak için daha basittir bu yüzden yüklenmesi çok hızlıdır. 

XAML Elementleri 

Her bir XAML Elementi .NET CLR Class’nı temsil eder. Çoğu XAML elementi System.Windows.UIElement, System.Windows.FrameworkElement, System.Windows.FrameworkContentElement and System.Windows.ContentElement’den inherit edilir. 

Ø        Root Elementleri                    :  Windows ve Page elementlerini root elementini çok sık kullanır. Bu elementler diğer elementleri içerir ve XAML dosyaları için root elementtir.

Ø        Panel Elementleri                   : Bu elementler kullanıcı arayüzleri için layoutlar sağlar. Temel panel elementleri StackPanel, DockPanel, Grid ve Canvas’ dir.

Ø        Control Elementleri    : Bu element XAML kontrollerinin farklı tiplerini tanımlar ve onları kişişelleştirmemizi sağlar.

Ø        Geometric Elementler : Bu element arayüzümüz üzerinde geometric grafikler ve şekiller çizmemize yardım eder. Bazı Geometric elementler; LineGeometry, EllipseGeometry, PathGeometry ve LineSegment’ dir.

Ø        Document Elementleri            :  Bu elementler dökümanın sunumu istendiğinde işimize yarayacaktır. 2 ana grubu vardır. Inline ve Block elementler. Bazı inline elementler; Bold, LineBreak ve Italic. Bazı Block elementler; 

, ve gibi HTML Elementleridir. 

Stack Panel Kullanımına bir örnek; 

 

XAML Attribututelari

 

XAML attributeları .net Classındaki Properties’lerle aynıdır...  Inline yada Expcilit attribute tanımlayabiliriz.  Her attributet ana elementin özelliklerini inherit eder yada onları override eder. Bazı XAML elementleri diğer elementler içinde onların özelliklerini alır. Bunlara Attached Properties attributetelar denir.

 

XAML Syntax;

 

This is a button

 Bir buton oluşturduk ve özelliklerini belirledik. İlk element nesnenin tipini belirtiyor. Alt elementlerde nesne tipini ve nesne tipinin özelliğini yada eventini belirtir. belirtiyor.  

Neden XAML? 

Ø        Kullanıcı arayüzleri oluşturmak XAML ile çok basittir.

Ø        Önceki UI Dizayn teknikleri için kullanılan kodlardan daha kısadır.

Ø        Dizayn edilen arayüz diğer ortamlarda taşınması ve sunulması basittir. Örneğin Web yada Windows uygulamaları üzerinde geliştirdiğimiz arayüzleri kullanabiliriz.

Ø        Dinamik arayüz geliştirmek XAML ile çok kolaydır. 

Nasıl XAML Geliştiririm? 

Windows Vista, Windows XP ve Windows server 2003 ile XAML ve WPF geliştirebiliriz. Visual Studioda XAML ve WPF geliştirmek için WinFX SDK ve Visual Studio 2005 Extensions for WinFX kurulum dosyalarını indirmemiz ve kurmamız gereklidir. WinFXSDK’yı yükleyerek XAML için geliştirme aracına sahip olacağız. Visual studio extension ile de gelişmiş bir debuging mekanizmasına sahip olacağız. 

ÖRNEK

Evet, ilk XAML uygulamamızı gerçekleştiriyoruz. Ben gerçekten çok heyecanlıyıım (:

Visual Studio’u çalıştıralım ve yeni bir proje oluşturalım;

 NET Framework 3.0 adında yeni bir proje tipi geldiğini görüyoruz. Burada WPF ile ilgili yeni proje tipleri yer almaktadır. Biz Windows Application (WPF)’i seçiyoruz.

 

 

Yukarıda da belirttiğimiz gibi form desing’i için gerekli kodlar Xaml içerisinde tutuluyor. Kodlarımızı yazacağımız kısım ise yine *.xaml.cs içerisinde olacak. Bu örneğimiz içerisinde bir button’a tıkladığımızda textbox içerisinde o anki saati görüntüleyeceğiz. Formum üzerine toolbox penceresinden bir button ve textbox ekliyorum.

 

 

Farklo kontrollerin ve kontrol tablarınında eklendiğini görüyoruz. Bunlarıda ilerleyen zamanlardas sizlere aktarıyor olacağım.

 

 

Kontrollerimizi forma ekledikten sonra aynı html deki gibi tüm propertyleri ve eventleri geldi. Button için yeni bir event yazalım. Önce Xaml tarafında bunu belirleyelim.

 

Click="AbiSaatKac" VerticalAlignment="Bottom">

                        Saat Kaç ?

 

Butona tıklandığında AbiSaatKac isimli metoda gidecek ve onun altına yazacağımız kodları çalıştıracak. Şimdi formun code kısmına gidelim.

 

        void AbiSaatKac(object sender, RoutedEventArgs e)

        {

            MyTextBox.Text = DateTime.Now.ToShortTimeString ();

        }

Yukarıdaki metodu oluşturdum. Butona tıkladığımızda Textbox içerisine o anki saati yazacak.

Butona tıklayalım;

Bu makalenin de sonuna geldik, Olumlu ve olumsuz tüm görüşleriniz için şimdiden teşekkür ederim.

Örnek Kodlar için mail adresimi kullanabilirsinizinfo@semgoksu.com

 

Sem GÖKSU MVP (Microsoft Most Valuable Professional)

MCP (Microsoft Certified Professional)

MCAD (Microsoft Certified Application Developer)MCTS (Microsoft Certified Technology Specialist)

Döküman Arama

Başlık :

Kapat