Kenalan yuk sama XAML!
Pernah mendengar tentang WPF? atau Silverlight? Mungkin sebagian dari Anda ada yang belum tau siapa aktor penting di balik keduanya. Bukan Jet Li, bukan pula J-Lo.. dia adalah XAML! Dibaca dengan "zammel", huruf a dibaca e seperti huruf e pada kata 'ember', lalu huruf e dibaca seperti huruf e pada kata 'elang'.. iya, zammel! Dan mungkin juga sebagian dari Anda ada yang belum pernah tau sama sekali tentang WPF dan Silverlight. Jangan khawatir, di website ini nanti kita akan bersama-sama belajar tentang keduanya :)

Lalu, apa itu XAML? XAML adalah sebuah bahasa markup berbasis XML yang dikembangkan oleh Microsoft, yang memiliki kepanjangan Extensible Application Markup Language. Bahasa ini merupakan bahasa declarative untuk membangun tampilan visual (yang lebih sering kita sebut user interface) dari sebuah aplikasi, yang sekali lagi berbasiskan XML. Kalau anda sudah terbiasa dengan bahasa markup XML, anda akan familiar dan lebih cepat belajar tentang XAML. Kita intip yuk isi file XAML itu seperti apa ;))
Berikut salah satu contoh sebuah file XAML sederhana bernama Login.xaml:
<UserControl x:Class="MengenalXAML.Login"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="300" Height="310">
<Canvas>
<TextBlock x:Name="TextBlockUsername" Text="User name:" Canvas.Left="10" Canvas.Top="10" />
<TextBox x:Name="TextBoxUsername" Canvas.Left="100" Canvas.Top="10" Width="150" />
<TextBlock x:Name="TextBlockPassword" Text="Password:" Canvas.Left="10" Canvas.Top="40" />
<PasswordBox x:Name="Password" Canvas.Left="100" Canvas.Top="40" Width="150" />
</Canvas>
</UserControl>
File Login.xaml di atas merupakan definisi sebuah user interface dalam bentuk dokumen XML. User interface yang dihasilkan oleh XAML tersebut akan menjadi seperti ini:

Paradigma declarative programming dalam mendefinisikan user interface ini tentunya merupakan sebuah terobosan yang luar biasa. Di dalam declarative programming, seorang programmer dipersilahkan untuk mendeskripsikan perilaku program yang dibuatnya tanpa harus menentukan flow program tersebut. Adam Nathan di dalam bukunya yang berjudul Windows Presentation Foundation Unleashed menyebutkan:
The combination of WPF and XAML is similar to using HTML to define a user interface, but with an incredible range of expressiveness
Saya pribadi ingin menggarisbawahi potongan kutipan "an incredible range of expressiveness". Kita bisa dengan sangat ekspresif mendefinisikan user interface sesuai dengan kebutuhan dan keinginan kita. Cukup dengan mendeklarasikan elemen-elemen user interface beserta dengan atribut-atributnya di dalam sebuah file (berbasis) XML, dan... voila! Kita tidak hanya mendapatkan sebuah tampilan visual seperti yang biasa kita dapatkan dari Windows form atau aplikasi web, tetapi kita juga bisa mendapatkan user experience yang mengagumkan melalui animasi-animasi dan efek-efek yang dihasilkan oleh WPF dan/atau Silverlight.
Dengan keberadaan XAML, model dan tampilan (user interface) dari aplikasi yang kita kembangkan bisa dipisahkan dengan baik. Dan satu hal yang menarik, peran dan kontribusi seorang graphic designer dalam pengembangan software dapat lebih ditingkatkan, terlebih lagi dengan adanya tool yang sangat membantu graphic designer dalam merancang sebuah file XAML seperti Microsoft Expression Blend.
Di awal tulisan saya menyebutkan XAML merupakan aktor penting bagi WPF dan Silverlight. Namun keberadaan XAML sendiri tidaklah mutlak diperlukan. Elemen-elemen WPF juga dapat digunakan pada bahasa .NET walaupun tanpa menggunakan file XAML.
Ingin mengenal XAML lebih dalam? Ingin tau bagaimana cara merancang sebuah user interface dengan XAML? Bagaimana XAML terkompilasi di dalam aplikasi kita? Apa sih WPF, Silverlight itu? Bagaimana cara membangun aplikasi WPF dan Silverlight? Tool-tool apa saja yang bisa kita gunakan dan bagaimana cara menggunakannya? Kita bahas bersama di kesempatan yang lain yaa :)